adonisjs-server-stats 1.6.2 → 1.6.11
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 +1 -0
- package/dist/core/api-client.d.ts.map +1 -1
- package/dist/core/dashboard-api.d.ts +2 -1
- package/dist/core/dashboard-api.d.ts.map +1 -1
- package/dist/core/dashboard-data-controller.d.ts +2 -0
- package/dist/core/dashboard-data-controller.d.ts.map +1 -1
- package/dist/core/debug-data-controller.d.ts +1 -0
- package/dist/core/debug-data-controller.d.ts.map +1 -1
- package/dist/core/history-buffer.d.ts.map +1 -1
- package/dist/core/index.js +404 -361
- package/dist/core/server-stats-controller.d.ts +1 -0
- package/dist/core/server-stats-controller.d.ts.map +1 -1
- package/dist/core/sparkline.d.ts.map +1 -1
- package/dist/react/core/api-client.d.ts.map +1 -1
- package/dist/react/core/dashboard-api.d.ts +2 -1
- package/dist/react/core/dashboard-api.d.ts.map +1 -1
- package/dist/react/core/dashboard-data-controller.d.ts +2 -0
- package/dist/react/core/dashboard-data-controller.d.ts.map +1 -1
- package/dist/react/core/debug-data-controller.d.ts +1 -0
- package/dist/react/core/debug-data-controller.d.ts.map +1 -1
- package/dist/react/core/history-buffer.d.ts.map +1 -1
- package/dist/react/core/server-stats-controller.d.ts +1 -0
- package/dist/react/core/server-stats-controller.d.ts.map +1 -1
- package/dist/react/core/sparkline.d.ts.map +1 -1
- package/dist/src/collectors/app_collector.d.ts.map +1 -1
- package/dist/src/collectors/db_pool_collector.d.ts.map +1 -1
- package/dist/src/collectors/redis_collector.d.ts.map +1 -1
- package/dist/src/controller/debug_controller.d.ts +3 -1
- package/dist/src/controller/debug_controller.d.ts.map +1 -1
- package/dist/src/controller/debug_controller.js +25 -20
- package/dist/src/dashboard/chart_aggregator.js +42 -41
- package/dist/src/dashboard/dashboard_controller.d.ts.map +1 -1
- package/dist/src/dashboard/dashboard_controller.js +7 -5
- package/dist/src/dashboard/dashboard_store.d.ts +61 -19
- package/dist/src/dashboard/dashboard_store.d.ts.map +1 -1
- package/dist/src/dashboard/dashboard_store.js +677 -474
- package/dist/src/dashboard/integrations/config_inspector.d.ts +4 -0
- package/dist/src/dashboard/integrations/config_inspector.d.ts.map +1 -1
- package/dist/src/dashboard/integrations/config_inspector.js +16 -2
- package/dist/src/dashboard/migrator.d.ts.map +1 -1
- package/dist/src/dashboard/migrator.js +30 -4
- package/dist/src/data/data_access.d.ts.map +1 -1
- package/dist/src/data/data_access.js +40 -7
- package/dist/src/debug/debug_store.d.ts.map +1 -1
- package/dist/src/debug/debug_store.js +17 -7
- package/dist/src/debug/email_collector.d.ts +2 -0
- package/dist/src/debug/email_collector.d.ts.map +1 -1
- package/dist/src/debug/email_collector.js +17 -13
- package/dist/src/debug/event_collector.d.ts +7 -1
- package/dist/src/debug/event_collector.d.ts.map +1 -1
- package/dist/src/debug/event_collector.js +46 -17
- package/dist/src/debug/query_collector.d.ts +12 -0
- package/dist/src/debug/query_collector.d.ts.map +1 -1
- package/dist/src/debug/query_collector.js +35 -5
- package/dist/src/debug/ring_buffer.d.ts +14 -0
- package/dist/src/debug/ring_buffer.d.ts.map +1 -1
- package/dist/src/debug/ring_buffer.js +48 -2
- package/dist/src/debug/trace_collector.d.ts +1 -0
- package/dist/src/debug/trace_collector.d.ts.map +1 -1
- package/dist/src/debug/trace_collector.js +4 -1
- package/dist/src/define_config.d.ts.map +1 -1
- package/dist/src/define_config.js +5 -1
- 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/debug-panel.js +1 -1
- package/dist/src/edge/client/stats-bar.js +1 -1
- package/dist/src/edge/client-vue/dashboard.js +5 -5
- package/dist/src/edge/client-vue/debug-panel-deferred.js +2 -2
- package/dist/src/edge/client-vue/debug-panel.js +2 -2
- package/dist/src/edge/client-vue/stats-bar.js +3 -3
- package/dist/src/engine/request_metrics.d.ts.map +1 -1
- package/dist/src/engine/request_metrics.js +33 -3
- package/dist/src/log_stream/log_stream_provider.js +1 -1
- package/dist/src/log_stream/log_stream_service.d.ts +1 -0
- package/dist/src/log_stream/log_stream_service.d.ts.map +1 -1
- package/dist/src/log_stream/log_stream_service.js +13 -3
- package/dist/src/prometheus/prometheus_collector.d.ts +14 -3
- package/dist/src/prometheus/prometheus_collector.d.ts.map +1 -1
- package/dist/src/prometheus/prometheus_collector.js +209 -198
- package/dist/src/provider/server_stats_provider.d.ts.map +1 -1
- package/dist/src/provider/server_stats_provider.js +17 -31
- package/dist/src/stubs/config.stub +3 -0
- package/dist/src/types.d.ts +12 -0
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/logger.d.ts +7 -5
- package/dist/src/utils/logger.d.ts.map +1 -1
- package/dist/src/utils/logger.js +27 -5
- package/package.json +6 -2
|
@@ -5,7 +5,7 @@ import { StatsEngine } from '../engine/stats_engine.js';
|
|
|
5
5
|
import { LogStreamService } from '../log_stream/log_stream_service.js';
|
|
6
6
|
import { setShouldShow, setTraceCollector, setDashboardPath, setExcludedPrefixes, setOnRequestComplete, } from '../middleware/request_tracking_middleware.js';
|
|
7
7
|
import { registerAllRoutes } from '../routes/register_routes.js';
|
|
8
|
-
import { log, dim, bold } from '../utils/logger.js';
|
|
8
|
+
import { log, dim, bold, setVerbose } from '../utils/logger.js';
|
|
9
9
|
export default class ServerStatsProvider {
|
|
10
10
|
app;
|
|
11
11
|
intervalId = null;
|
|
@@ -52,6 +52,9 @@ export default class ServerStatsProvider {
|
|
|
52
52
|
log.warn('no config found — is config/server_stats.ts set up?');
|
|
53
53
|
return;
|
|
54
54
|
}
|
|
55
|
+
// Re-apply verbose setting from resolved config so the logger
|
|
56
|
+
// respects it even if defineConfig() ran in a separate context.
|
|
57
|
+
setVerbose(config.verbose);
|
|
55
58
|
log.info('booting...');
|
|
56
59
|
// Wire up the per-request shouldShow callback
|
|
57
60
|
if (config.shouldShow) {
|
|
@@ -403,7 +406,7 @@ export default class ServerStatsProvider {
|
|
|
403
406
|
const stats = await this.engine.collect();
|
|
404
407
|
if (transmit && config.channelName) {
|
|
405
408
|
;
|
|
406
|
-
transmit.broadcast(config.channelName,
|
|
409
|
+
transmit.broadcast(config.channelName, stats);
|
|
407
410
|
}
|
|
408
411
|
if (prometheusCollector) {
|
|
409
412
|
;
|
|
@@ -614,43 +617,23 @@ export default class ServerStatsProvider {
|
|
|
614
617
|
const debugStore = this.debugStore;
|
|
615
618
|
const dashStore = this.dashboardStore;
|
|
616
619
|
let lastQueryId = 0;
|
|
617
|
-
let lastEventId = 0;
|
|
618
|
-
let warnedPersistOnce = false;
|
|
619
620
|
setOnRequestComplete(({ method, url, statusCode, duration, trace }) => {
|
|
620
621
|
if (!dashStore.isReady())
|
|
621
622
|
return;
|
|
622
|
-
//
|
|
623
|
-
|
|
624
|
-
const newQueries =
|
|
625
|
-
if (
|
|
626
|
-
lastQueryId =
|
|
623
|
+
// O(K) collection of new queries since last seen ID — avoids
|
|
624
|
+
// copying the entire 500-item ring buffer on every request.
|
|
625
|
+
const newQueries = debugStore.queries.getQueriesSince(lastQueryId);
|
|
626
|
+
if (newQueries.length > 0) {
|
|
627
|
+
lastQueryId = newQueries[newQueries.length - 1].id;
|
|
627
628
|
}
|
|
628
|
-
//
|
|
629
|
-
|
|
630
|
-
const newEvents = allEvents.filter((e) => e.id > lastEventId);
|
|
631
|
-
if (allEvents.length > 0) {
|
|
632
|
-
lastEventId = allEvents[allEvents.length - 1].id;
|
|
633
|
-
}
|
|
634
|
-
// Persist asynchronously (fire-and-forget)
|
|
635
|
-
dashStore
|
|
636
|
-
.persistRequest({
|
|
629
|
+
// Queue for batch persistence (flushed every 500ms)
|
|
630
|
+
dashStore.persistRequest({
|
|
637
631
|
method,
|
|
638
632
|
url,
|
|
639
633
|
statusCode,
|
|
640
634
|
duration,
|
|
641
635
|
queries: newQueries,
|
|
642
636
|
trace: trace ?? null,
|
|
643
|
-
})
|
|
644
|
-
.then((requestId) => {
|
|
645
|
-
if (requestId !== null && newEvents.length > 0) {
|
|
646
|
-
return dashStore.recordEvents(requestId, newEvents);
|
|
647
|
-
}
|
|
648
|
-
})
|
|
649
|
-
.catch((err) => {
|
|
650
|
-
if (!warnedPersistOnce) {
|
|
651
|
-
warnedPersistOnce = true;
|
|
652
|
-
log.warn('failed to persist request data — ' + (err?.message || 'unknown error'));
|
|
653
|
-
}
|
|
654
637
|
});
|
|
655
638
|
});
|
|
656
639
|
// ── Transmit streaming for real-time dashboard updates ────────
|
|
@@ -667,6 +650,9 @@ export default class ServerStatsProvider {
|
|
|
667
650
|
if (!this.transmitChannels.includes(dashChannel)) {
|
|
668
651
|
this.transmitChannels.push(dashChannel);
|
|
669
652
|
}
|
|
653
|
+
// Broadcast overview metrics every 30s (not 5s) to reduce SQLite
|
|
654
|
+
// pool pressure. Each broadcast runs 5+ sequential queries on the
|
|
655
|
+
// single-connection pool, blocking all dashboard API reads.
|
|
670
656
|
this.dashboardBroadcastTimer = setInterval(async () => {
|
|
671
657
|
try {
|
|
672
658
|
if (!dashStore.isReady())
|
|
@@ -684,7 +670,7 @@ export default class ServerStatsProvider {
|
|
|
684
670
|
catch {
|
|
685
671
|
// Silently ignore
|
|
686
672
|
}
|
|
687
|
-
},
|
|
673
|
+
}, 30_000);
|
|
688
674
|
}
|
|
689
675
|
}
|
|
690
676
|
/** Return diagnostics state for the Internals endpoint. */
|
|
@@ -699,7 +685,7 @@ export default class ServerStatsProvider {
|
|
|
699
685
|
},
|
|
700
686
|
dashboardBroadcast: {
|
|
701
687
|
active: this.dashboardBroadcastTimer !== null,
|
|
702
|
-
intervalMs:
|
|
688
|
+
intervalMs: 30_000,
|
|
703
689
|
},
|
|
704
690
|
debugBroadcast: {
|
|
705
691
|
active: this.debugBroadcastTimer !== null,
|
package/dist/src/types.d.ts
CHANGED
|
@@ -510,6 +510,16 @@ export interface ServerStatsConfig {
|
|
|
510
510
|
dashboard?: boolean | DashboardConfig;
|
|
511
511
|
/** Advanced options. */
|
|
512
512
|
advanced?: AdvancedConfig;
|
|
513
|
+
/**
|
|
514
|
+
* Enable verbose logging during initialization.
|
|
515
|
+
*
|
|
516
|
+
* When `true`, the package logs detailed info messages about each
|
|
517
|
+
* boot step (SQLite init, migrations, route registration, etc.).
|
|
518
|
+
* When `false` (the default), only warnings are logged.
|
|
519
|
+
*
|
|
520
|
+
* @default false
|
|
521
|
+
*/
|
|
522
|
+
verbose?: boolean;
|
|
513
523
|
}
|
|
514
524
|
/**
|
|
515
525
|
* Fully resolved configuration with all defaults applied.
|
|
@@ -537,5 +547,7 @@ export interface ResolvedServerStatsConfig {
|
|
|
537
547
|
devToolbar?: DevToolbarOptions;
|
|
538
548
|
/** Optional access-control callback. */
|
|
539
549
|
shouldShow?: (ctx: import('@adonisjs/core/http').HttpContext) => boolean;
|
|
550
|
+
/** Whether verbose informational logging is enabled. Always present after `defineConfig()`. */
|
|
551
|
+
verbose: boolean;
|
|
540
552
|
}
|
|
541
553
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAChE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEjD;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;AAMnD;;;;;;;;;GASG;AACH,MAAM,WAAW,WAAW;IAG1B,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAA;IAEnB,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAA;IAEd,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAA;IAEnB,0DAA0D;IAC1D,YAAY,EAAE,MAAM,CAAA;IAEpB;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAA;IAEd;;;;;OAKG;IACH,UAAU,EAAE,MAAM,CAAA;IAElB;;;;;;;;;;;OAWG;IACH,YAAY,EAAE,MAAM,CAAA;IAEpB,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAA;IAIjB;;;;;OAKG;IACH,iBAAiB,EAAE,MAAM,CAAA;IAEzB;;;;;;;;OAQG;IACH,iBAAiB,EAAE,MAAM,CAAA;IAEzB;;;;;;;;;;OAUG;IACH,SAAS,EAAE,MAAM,CAAA;IAEjB,iDAAiD;IACjD,qBAAqB,EAAE,MAAM,CAAA;IAI7B,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAA;IAElB,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAA;IAElB,iEAAiE;IACjE,aAAa,EAAE,MAAM,CAAA;IAErB,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAA;IAIjB,sDAAsD;IACtD,OAAO,EAAE,OAAO,CAAA;IAEhB,kDAAkD;IAClD,iBAAiB,EAAE,MAAM,CAAA;IAEzB,sDAAsD;IACtD,qBAAqB,EAAE,MAAM,CAAA;IAE7B,uDAAuD;IACvD,cAAc,EAAE,MAAM,CAAA;IAEtB;;;;;;;;;;OAUG;IACH,YAAY,EAAE,MAAM,CAAA;IAIpB,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAA;IAEnB,0DAA0D;IAC1D,YAAY,EAAE,MAAM,CAAA;IAEpB,qDAAqD;IACrD,YAAY,EAAE,MAAM,CAAA;IAEpB,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAA;IAEnB,gEAAgE;IAChE,gBAAgB,EAAE,MAAM,CAAA;IAIxB,8CAA8C;IAC9C,eAAe,EAAE,MAAM,CAAA;IAEvB,+CAA+C;IAC/C,eAAe,EAAE,MAAM,CAAA;IAEvB,gDAAgD;IAChD,gBAAgB,EAAE,MAAM,CAAA;IAExB,iDAAiD;IACjD,mBAAmB,EAAE,MAAM,CAAA;IAE3B,gDAAgD;IAChD,kBAAkB,EAAE,MAAM,CAAA;IAE1B,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAA;IAIpB,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAA;IAEnB,wDAAwD;IACxD,eAAe,EAAE,MAAM,CAAA;IAEvB,0DAA0D;IAC1D,aAAa,EAAE,MAAM,CAAA;IAIrB,uEAAuE;IACvE,eAAe,EAAE,MAAM,CAAA;IAEvB,0DAA0D;IAC1D,iBAAiB,EAAE,MAAM,CAAA;IAEzB,4DAA4D;IAC5D,gBAAgB,EAAE,MAAM,CAAA;IAExB,gEAAgE;IAChE,mBAAmB,EAAE,MAAM,CAAA;CAC5B;AAMD;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,qEAAqE;IACrE,YAAY,EAAE,MAAM,CAAA;IAEpB,mDAAmD;IACnD,cAAc,EAAE,MAAM,CAAA;IAEtB,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAA;IAErB,oDAAoD;IACpD,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,OAAO,EAAE,OAAO,CAAA;IAEhB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAE7B;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,SAAS,EAAE,CAAA;IAEnB;;;;;;;;;OASG;IACH,gBAAgB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IAEnC;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf;;;;;;;;;;;;;;;;OAgBG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAE7B;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,MAAM,CAAA;IAEtB;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAA;CAC5B;AAMD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,SAAS,EAAE,CAAA;IACnB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;CAC9B;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAA;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAMD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,UAAU,GAAG,MAAM,CAAA;IAE/B;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IAEpB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;IAEzB;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,eAAe,EAAE,CAAA;IAEvC;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IAEpB;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,IAAI,CAAA;IAE/C;;;;;;;;OAQG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAA;IAE9B;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,qBAAqB,EAAE,WAAW,KAAK,OAAO,CAAA;IAMxE,kDAAkD;IAClD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;IAC9B,kDAAkD;IAClD,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,qBAAqB,EAAE,WAAW,KAAK,OAAO,CAAA;IACvE,8EAA8E;IAC9E,OAAO,CAAC,EAAE,OAAO,GAAG,aAAa,CAAA;IACjC,qGAAqG;IACrG,SAAS,CAAC,EAAE,OAAO,GAAG,eAAe,CAAA;IACrC,wBAAwB;IACxB,QAAQ,CAAC,EAAE,cAAc,CAAA;IAEzB;;;;;;;;OAQG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAMD;;;;;;GAMG;AACH,MAAM,WAAW,yBAAyB;IACxC,kFAAkF;IAClF,UAAU,EAAE,MAAM,CAAA;IAElB,6DAA6D;IAC7D,SAAS,EAAE,UAAU,GAAG,MAAM,CAAA;IAE9B,oEAAoE;IACpE,WAAW,EAAE,MAAM,CAAA;IAEnB,uFAAuF;IACvF,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAA;IAExB,2EAA2E;IAC3E,UAAU,EAAE,MAAM,GAAG,eAAe,EAAE,CAAA;IAEtC,8FAA8F;IAC9F,UAAU,EAAE,OAAO,CAAA;IAEnB,kCAAkC;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,IAAI,CAAA;IAE/C,0CAA0C;IAC1C,UAAU,CAAC,EAAE,iBAAiB,CAAA;IAE9B,wCAAwC;IACxC,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,qBAAqB,EAAE,WAAW,KAAK,OAAO,CAAA;IAExE,+FAA+F;IAC/F,OAAO,EAAE,OAAO,CAAA;CACjB"}
|
|
@@ -2,16 +2,18 @@ export declare const dim: (s: string) => string;
|
|
|
2
2
|
export declare const bold: (s: string) => string;
|
|
3
3
|
export declare const green: (s: string) => string;
|
|
4
4
|
export declare const yellow: (s: string) => string;
|
|
5
|
+
/** Enable or disable verbose informational logging. */
|
|
6
|
+
export declare function setVerbose(enabled: boolean): void;
|
|
5
7
|
export declare const log: {
|
|
6
|
-
/** Tagged info message. */
|
|
8
|
+
/** Tagged info message. Only logs when verbose mode is enabled. */
|
|
7
9
|
info(message: string): void;
|
|
8
|
-
/** Tagged warning (yellow). */
|
|
10
|
+
/** Tagged warning (yellow). Always logs regardless of verbose setting. */
|
|
9
11
|
warn(message: string): void;
|
|
10
|
-
/** Tagged info with a blank line before. */
|
|
12
|
+
/** Tagged info with a blank line before. Only logs when verbose mode is enabled. */
|
|
11
13
|
section(message: string): void;
|
|
12
|
-
/** Bulleted list under a section heading. */
|
|
14
|
+
/** Bulleted list under a section heading. Only logs when verbose mode is enabled. */
|
|
13
15
|
list(heading: string, items: string[]): void;
|
|
14
|
-
/** Multi-line block (for code examples, hints, etc). */
|
|
16
|
+
/** Multi-line block (for code examples, hints, etc). Only logs when verbose mode is enabled. */
|
|
15
17
|
block(heading: string, lines: string[]): void;
|
|
16
18
|
};
|
|
17
19
|
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,GAAG,GAAI,GAAG,MAAM,WAAyB,CAAA;AACtD,eAAO,MAAM,IAAI,GAAI,GAAG,MAAM,WAAyB,CAAA;AACvD,eAAO,MAAM,KAAK,GAAI,GAAG,MAAM,WAA0B,CAAA;AACzD,eAAO,MAAM,MAAM,GAAI,GAAG,MAAM,WAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,GAAG,GAAI,GAAG,MAAM,WAAyB,CAAA;AACtD,eAAO,MAAM,IAAI,GAAI,GAAG,MAAM,WAAyB,CAAA;AACvD,eAAO,MAAM,KAAK,GAAI,GAAG,MAAM,WAA0B,CAAA;AACzD,eAAO,MAAM,MAAM,GAAI,GAAG,MAAM,WAA0B,CAAA;AAa1D,uDAAuD;AACvD,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,QAE1C;AAED,eAAO,MAAM,GAAG;IACd,mEAAmE;kBACrD,MAAM;IAKpB,0EAA0E;kBAC5D,MAAM;IAIpB,oFAAoF;qBACnE,MAAM;IAKvB,qFAAqF;kBACvE,MAAM,SAAS,MAAM,EAAE;IAOrC,gGAAgG;mBACjF,MAAM,SAAS,MAAM,EAAE;CAIvC,CAAA"}
|
package/dist/src/utils/logger.js
CHANGED
|
@@ -3,25 +3,47 @@ export const dim = (s) => `\x1b[2m${s}\x1b[0m`;
|
|
|
3
3
|
export const bold = (s) => `\x1b[1m${s}\x1b[0m`;
|
|
4
4
|
export const green = (s) => `\x1b[32m${s}\x1b[0m`;
|
|
5
5
|
export const yellow = (s) => `\x1b[33m${s}\x1b[0m`;
|
|
6
|
+
/**
|
|
7
|
+
* Whether verbose (informational) log output is enabled.
|
|
8
|
+
*
|
|
9
|
+
* When `false` (the default), `log.info`, `log.section`, `log.list`, and
|
|
10
|
+
* `log.block` are no-ops. `log.warn` always logs regardless of this flag.
|
|
11
|
+
*
|
|
12
|
+
* Call {@link setVerbose} to change this at runtime (typically once during
|
|
13
|
+
* provider boot, based on the user's `verbose` config option).
|
|
14
|
+
*/
|
|
15
|
+
let verbose = false;
|
|
16
|
+
/** Enable or disable verbose informational logging. */
|
|
17
|
+
export function setVerbose(enabled) {
|
|
18
|
+
verbose = enabled;
|
|
19
|
+
}
|
|
6
20
|
export const log = {
|
|
7
|
-
/** Tagged info message. */
|
|
21
|
+
/** Tagged info message. Only logs when verbose mode is enabled. */
|
|
8
22
|
info(message) {
|
|
23
|
+
if (!verbose)
|
|
24
|
+
return;
|
|
9
25
|
console.log(`${TAG} ${message}`);
|
|
10
26
|
},
|
|
11
|
-
/** Tagged warning (yellow). */
|
|
27
|
+
/** Tagged warning (yellow). Always logs regardless of verbose setting. */
|
|
12
28
|
warn(message) {
|
|
13
29
|
console.warn(`${TAG} ${yellow(message)}`);
|
|
14
30
|
},
|
|
15
|
-
/** Tagged info with a blank line before. */
|
|
31
|
+
/** Tagged info with a blank line before. Only logs when verbose mode is enabled. */
|
|
16
32
|
section(message) {
|
|
33
|
+
if (!verbose)
|
|
34
|
+
return;
|
|
17
35
|
console.log(`\n${TAG} ${message}`);
|
|
18
36
|
},
|
|
19
|
-
/** Bulleted list under a section heading. */
|
|
37
|
+
/** Bulleted list under a section heading. Only logs when verbose mode is enabled. */
|
|
20
38
|
list(heading, items) {
|
|
39
|
+
if (!verbose)
|
|
40
|
+
return;
|
|
21
41
|
console.log(`\n${TAG} ${heading}\n` + items.map((item) => ` ${dim('→')} ${bold(item)}`).join('\n'));
|
|
22
42
|
},
|
|
23
|
-
/** Multi-line block (for code examples, hints, etc). */
|
|
43
|
+
/** Multi-line block (for code examples, hints, etc). Only logs when verbose mode is enabled. */
|
|
24
44
|
block(heading, lines) {
|
|
45
|
+
if (!verbose)
|
|
46
|
+
return;
|
|
25
47
|
console.log(`\n${TAG} ${heading}\n` + lines.map((l) => ` ${l}`).join('\n'));
|
|
26
48
|
},
|
|
27
49
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "adonisjs-server-stats",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.11",
|
|
4
4
|
"description": "Real-time server monitoring for AdonisJS v6 applications",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"adonisjs",
|
|
@@ -119,6 +119,7 @@
|
|
|
119
119
|
"lint:fix": "oxlint --fix src/ configure.ts vite.config.*.ts vite-plugins/ --ignore-pattern 'src/edge/client/**' --ignore-pattern 'src/edge/client-vue/**'",
|
|
120
120
|
"format": "oxfmt src/ configure.ts vite.config.*.ts vite-plugins/",
|
|
121
121
|
"format:check": "oxfmt --check src/ configure.ts vite.config.*.ts vite-plugins/",
|
|
122
|
+
"test": "node --import tsx bin/test.ts",
|
|
122
123
|
"typecheck": "tsc --noEmit"
|
|
123
124
|
},
|
|
124
125
|
"devDependencies": {
|
|
@@ -126,6 +127,8 @@
|
|
|
126
127
|
"@adonisjs/lucid": "^21.0.0",
|
|
127
128
|
"@adonisjs/redis": "^9.0.0",
|
|
128
129
|
"@adonisjs/transmit": "^1.0.0",
|
|
130
|
+
"@japa/assert": "^4.2.0",
|
|
131
|
+
"@japa/runner": "^5.3.0",
|
|
129
132
|
"@julr/adonisjs-prometheus": "^1.4.0",
|
|
130
133
|
"@preact/preset-vite": "^2.9.0",
|
|
131
134
|
"@types/better-sqlite3": "^7.0.0",
|
|
@@ -142,6 +145,7 @@
|
|
|
142
145
|
"preact": "^10.25.0",
|
|
143
146
|
"react": "^19.2.4",
|
|
144
147
|
"react-dom": "^19.2.4",
|
|
148
|
+
"tsx": "^4.21.0",
|
|
145
149
|
"typescript": "^5.9.0",
|
|
146
150
|
"vite": "^7.3.1",
|
|
147
151
|
"vite-plugin-dts": "^4.5.4",
|
|
@@ -155,9 +159,9 @@
|
|
|
155
159
|
"@adonisjs/transmit-client": "^1.0.0",
|
|
156
160
|
"@julr/adonisjs-prometheus": "^1.4.0",
|
|
157
161
|
"better-sqlite3": "^7.0.0 || ^11.0.0",
|
|
158
|
-
"knex": "^3.0.0",
|
|
159
162
|
"bullmq": "^5.0.0",
|
|
160
163
|
"edge.js": "^6.0.0",
|
|
164
|
+
"knex": "^3.0.0",
|
|
161
165
|
"react": "^18.0.0 || ^19.0.0",
|
|
162
166
|
"react-dom": "^18.0.0 || ^19.0.0",
|
|
163
167
|
"vue": "^3.3.0"
|