adonisjs-server-stats 1.4.0 → 1.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/README.md +272 -142
  2. package/dist/configure.d.ts.map +1 -1
  3. package/dist/src/controller/debug_controller.d.ts +2 -2
  4. package/dist/src/controller/debug_controller.d.ts.map +1 -1
  5. package/dist/src/controller/server_stats_controller.d.ts +1 -1
  6. package/dist/src/controller/server_stats_controller.d.ts.map +1 -1
  7. package/dist/src/dashboard/chart_aggregator.d.ts.map +1 -1
  8. package/dist/src/dashboard/chart_aggregator.js +8 -8
  9. package/dist/src/dashboard/dashboard_controller.d.ts +12 -97
  10. package/dist/src/dashboard/dashboard_controller.d.ts.map +1 -1
  11. package/dist/src/dashboard/dashboard_controller.js +244 -522
  12. package/dist/src/dashboard/dashboard_routes.d.ts.map +1 -1
  13. package/dist/src/dashboard/dashboard_routes.js +7 -2
  14. package/dist/src/dashboard/dashboard_store.d.ts +6 -3
  15. package/dist/src/dashboard/dashboard_store.d.ts.map +1 -1
  16. package/dist/src/dashboard/dashboard_store.js +54 -78
  17. package/dist/src/dashboard/integrations/cache_inspector.d.ts.map +1 -1
  18. package/dist/src/dashboard/integrations/queue_inspector.d.ts.map +1 -1
  19. package/dist/src/dashboard/migrator.d.ts.map +1 -1
  20. package/dist/src/dashboard/migrator.js +3 -1
  21. package/dist/src/dashboard/models/stats_event.d.ts +1 -1
  22. package/dist/src/dashboard/models/stats_event.d.ts.map +1 -1
  23. package/dist/src/dashboard/models/stats_query.d.ts +1 -1
  24. package/dist/src/dashboard/models/stats_query.d.ts.map +1 -1
  25. package/dist/src/dashboard/models/stats_request.d.ts +2 -2
  26. package/dist/src/dashboard/models/stats_request.d.ts.map +1 -1
  27. package/dist/src/dashboard/models/stats_request.js +1 -1
  28. package/dist/src/dashboard/models/stats_trace.d.ts +1 -1
  29. package/dist/src/dashboard/models/stats_trace.d.ts.map +1 -1
  30. package/dist/src/debug/debug_store.d.ts +6 -6
  31. package/dist/src/debug/debug_store.d.ts.map +1 -1
  32. package/dist/src/debug/debug_store.js +10 -10
  33. package/dist/src/debug/email_collector.d.ts +0 -9
  34. package/dist/src/debug/email_collector.d.ts.map +1 -1
  35. package/dist/src/debug/email_collector.js +6 -28
  36. package/dist/src/debug/event_collector.d.ts +1 -1
  37. package/dist/src/debug/event_collector.d.ts.map +1 -1
  38. package/dist/src/debug/event_collector.js +17 -17
  39. package/dist/src/debug/query_collector.d.ts +1 -1
  40. package/dist/src/debug/query_collector.d.ts.map +1 -1
  41. package/dist/src/debug/query_collector.js +13 -14
  42. package/dist/src/debug/ring_buffer.d.ts.map +1 -1
  43. package/dist/src/debug/route_inspector.d.ts +1 -1
  44. package/dist/src/debug/route_inspector.d.ts.map +1 -1
  45. package/dist/src/debug/route_inspector.js +12 -12
  46. package/dist/src/debug/trace_collector.d.ts.map +1 -1
  47. package/dist/src/debug/trace_collector.js +6 -5
  48. package/dist/src/edge/client/dashboard.css +516 -171
  49. package/dist/src/edge/client/dashboard.js +2756 -1662
  50. package/dist/src/edge/client/debug-panel.css +476 -133
  51. package/dist/src/edge/client/debug-panel.js +1496 -1043
  52. package/dist/src/edge/client/stats-bar.css +64 -30
  53. package/dist/src/edge/client/stats-bar.js +598 -319
  54. package/dist/src/edge/plugin.d.ts +1 -1
  55. package/dist/src/edge/plugin.d.ts.map +1 -1
  56. package/dist/src/edge/plugin.js +41 -59
  57. package/dist/src/edge/views/stats-bar.edge +1 -1
  58. package/dist/src/index.d.ts +1 -1
  59. package/dist/src/index.d.ts.map +1 -1
  60. package/dist/src/middleware/request_tracking_middleware.d.ts +4 -4
  61. package/dist/src/middleware/request_tracking_middleware.d.ts.map +1 -1
  62. package/dist/src/middleware/request_tracking_middleware.js +7 -6
  63. package/dist/src/prometheus/prometheus_collector.d.ts +1 -1
  64. package/dist/src/prometheus/prometheus_collector.d.ts.map +1 -1
  65. package/dist/src/provider/server_stats_provider.d.ts +1 -1
  66. package/dist/src/provider/server_stats_provider.d.ts.map +1 -1
  67. package/dist/src/provider/server_stats_provider.js +33 -32
  68. package/dist/src/types.d.ts +2 -2
  69. package/dist/src/utils/json_helpers.d.ts +8 -0
  70. package/dist/src/utils/json_helpers.d.ts.map +1 -0
  71. package/dist/src/utils/json_helpers.js +21 -0
  72. package/dist/src/utils/mail_helpers.d.ts +13 -0
  73. package/dist/src/utils/mail_helpers.d.ts.map +1 -0
  74. package/dist/src/utils/mail_helpers.js +26 -0
  75. package/dist/src/utils/math_helpers.d.ts +8 -0
  76. package/dist/src/utils/math_helpers.d.ts.map +1 -0
  77. package/dist/src/utils/math_helpers.js +11 -0
  78. package/dist/src/utils/time_helpers.d.ts +12 -0
  79. package/dist/src/utils/time_helpers.d.ts.map +1 -0
  80. package/dist/src/utils/time_helpers.js +32 -0
  81. package/dist/src/utils/transmit_client.d.ts +9 -0
  82. package/dist/src/utils/transmit_client.d.ts.map +1 -0
  83. package/dist/src/utils/transmit_client.js +20 -0
  84. package/package.json +35 -29
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Shared time/range utilities for dashboard store, controller, and chart aggregator.
3
+ */
4
+ const RANGE_MAP = {
5
+ '5m': 5,
6
+ '15m': 15,
7
+ '30m': 30,
8
+ '1h': 60,
9
+ '6h': 360,
10
+ '24h': 1440,
11
+ '7d': 10080,
12
+ };
13
+ /** Convert a range string (e.g. '1h', '7d') to total minutes. */
14
+ export function rangeToMinutes(range) {
15
+ return RANGE_MAP[range] ?? 60;
16
+ }
17
+ /** Convert a range string to a SQLite-compatible datetime cutoff. */
18
+ export function rangeToCutoff(range) {
19
+ const minutes = rangeToMinutes(range);
20
+ return toSqliteTimestamp(new Date(Date.now() - minutes * 60_000));
21
+ }
22
+ /** Convert a Date to a SQLite-compatible datetime string (YYYY-MM-DD HH:MM:SS). */
23
+ export function toSqliteTimestamp(date) {
24
+ return date.toISOString().replace('T', ' ').slice(0, 19);
25
+ }
26
+ /** Round a bucket timestamp string down to the nearest N minutes. */
27
+ export function roundBucket(bucket, minutes) {
28
+ const date = new Date(bucket.replace(' ', 'T') + 'Z');
29
+ const ms = minutes * 60_000;
30
+ const rounded = new Date(Math.floor(date.getTime() / ms) * ms);
31
+ return toSqliteTimestamp(rounded);
32
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Try to locate and read the @adonisjs/transmit-client build file.
3
+ * Returns the file contents wrapped to expose `window.Transmit`, or
4
+ * an empty string if the package is not installed.
5
+ *
6
+ * @param packageJsonPath - Absolute path to a package.json for require resolution
7
+ */
8
+ export declare function loadTransmitClient(packageJsonPath: string): string;
9
+ //# sourceMappingURL=transmit_client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transmit_client.d.ts","sourceRoot":"","sources":["../../../src/utils/transmit_client.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAYlE"}
@@ -0,0 +1,20 @@
1
+ import { readFileSync } from 'node:fs';
2
+ import { createRequire } from 'node:module';
3
+ /**
4
+ * Try to locate and read the @adonisjs/transmit-client build file.
5
+ * Returns the file contents wrapped to expose `window.Transmit`, or
6
+ * an empty string if the package is not installed.
7
+ *
8
+ * @param packageJsonPath - Absolute path to a package.json for require resolution
9
+ */
10
+ export function loadTransmitClient(packageJsonPath) {
11
+ try {
12
+ const req = createRequire(packageJsonPath);
13
+ const clientPath = req.resolve('@adonisjs/transmit-client/build/index.js');
14
+ const src = readFileSync(clientPath, 'utf-8');
15
+ return `(function(){var __exports={};(function(){${src.replace(/^export\s*\{[^}]*\}\s*;?\s*$/m, '')}\n__exports.Transmit=Transmit;})();window.Transmit=__exports.Transmit;})()`;
16
+ }
17
+ catch {
18
+ return '';
19
+ }
20
+ }
package/package.json CHANGED
@@ -1,7 +1,22 @@
1
1
  {
2
2
  "name": "adonisjs-server-stats",
3
- "version": "1.4.0",
3
+ "version": "1.5.2",
4
4
  "description": "Real-time server monitoring for AdonisJS v6 applications",
5
+ "keywords": [
6
+ "adonisjs",
7
+ "debug",
8
+ "devtools",
9
+ "metrics",
10
+ "monitoring",
11
+ "server-stats"
12
+ ],
13
+ "license": "MIT",
14
+ "author": "",
15
+ "files": [
16
+ "dist",
17
+ "README.md",
18
+ "LICENSE"
19
+ ],
5
20
  "type": "module",
6
21
  "main": "./dist/src/index.js",
7
22
  "types": "./dist/src/index.d.ts",
@@ -71,28 +86,32 @@
71
86
  "import": "./dist/configure.js"
72
87
  }
73
88
  },
74
- "files": [
75
- "dist",
76
- "README.md",
77
- "LICENSE"
78
- ],
79
89
  "scripts": {
80
90
  "copy-assets": "cp -r src/stubs/config.stub dist/src/stubs/ && cp -r src/edge/views dist/src/edge/ && cp -r src/edge/client dist/src/edge/",
81
91
  "build": "tsc && npm run copy-assets",
82
92
  "dev": "tsc --watch",
83
93
  "prepublishOnly": "npm run build",
94
+ "lint": "oxlint",
95
+ "lint:fix": "oxlint --fix",
96
+ "format": "oxfmt",
97
+ "format:check": "oxfmt --check",
84
98
  "typecheck": "tsc --noEmit"
85
99
  },
86
- "keywords": [
87
- "adonisjs",
88
- "server-stats",
89
- "monitoring",
90
- "metrics",
91
- "debug",
92
- "devtools"
93
- ],
94
- "author": "",
95
- "license": "MIT",
100
+ "devDependencies": {
101
+ "@adonisjs/core": "^6.0.0",
102
+ "@adonisjs/lucid": "^21.0.0",
103
+ "@adonisjs/redis": "^9.0.0",
104
+ "@adonisjs/transmit": "^1.0.0",
105
+ "@julr/adonisjs-prometheus": "^1.4.0",
106
+ "@types/better-sqlite3": "^7.0.0",
107
+ "@types/node": "^22.0.0",
108
+ "better-sqlite3": "^11.10.0",
109
+ "bullmq": "^5.0.0",
110
+ "edge.js": "^6.0.0",
111
+ "oxfmt": "^0.35.0",
112
+ "oxlint": "^1.50.0",
113
+ "typescript": "^5.9.0"
114
+ },
96
115
  "peerDependencies": {
97
116
  "@adonisjs/core": "^6.0.0 || ^7.0.0-next || ^7.0.0"
98
117
  },
@@ -118,18 +137,5 @@
118
137
  "better-sqlite3": {
119
138
  "optional": true
120
139
  }
121
- },
122
- "devDependencies": {
123
- "@adonisjs/core": "^6.0.0",
124
- "@adonisjs/lucid": "^21.0.0",
125
- "@adonisjs/redis": "^9.0.0",
126
- "@adonisjs/transmit": "^1.0.0",
127
- "@julr/adonisjs-prometheus": "^1.4.0",
128
- "@types/better-sqlite3": "^7.0.0",
129
- "@types/node": "^22.0.0",
130
- "better-sqlite3": "^11.10.0",
131
- "bullmq": "^5.0.0",
132
- "edge.js": "^6.0.0",
133
- "typescript": "^5.9.0"
134
140
  }
135
141
  }