nestjs-profiler 1.0.25 → 1.0.26

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 (36) hide show
  1. package/README.md +120 -6
  2. package/collectors/event-collector.d.ts +18 -0
  3. package/collectors/event-collector.js +254 -0
  4. package/collectors/event-collector.js.map +1 -0
  5. package/common/profiler-options.interface.d.ts +8 -0
  6. package/common/profiler.model.d.ts +25 -0
  7. package/controllers/profiler.controller.d.ts +13 -1
  8. package/controllers/profiler.controller.js +103 -17
  9. package/controllers/profiler.controller.js.map +1 -1
  10. package/middleware/profiler-auth.middleware.d.ts +10 -0
  11. package/middleware/profiler-auth.middleware.js +110 -0
  12. package/middleware/profiler-auth.middleware.js.map +1 -0
  13. package/package.json +2 -2
  14. package/profiler.module.js +78 -0
  15. package/profiler.module.js.map +1 -1
  16. package/services/entity-explorer.service.d.ts +1 -1
  17. package/services/entity-explorer.service.js +7 -7
  18. package/services/entity-explorer.service.js.map +1 -1
  19. package/services/health.service.js +23 -8
  20. package/services/health.service.js.map +1 -1
  21. package/services/profiler.service.d.ts +10 -1
  22. package/services/profiler.service.js +103 -35
  23. package/services/profiler.service.js.map +1 -1
  24. package/services/route-explorer.service.d.ts +23 -1
  25. package/services/route-explorer.service.js +136 -10
  26. package/services/route-explorer.service.js.map +1 -1
  27. package/services/template-builder.service.d.ts +1 -0
  28. package/services/template-builder.service.js +184 -83
  29. package/services/template-builder.service.js.map +1 -1
  30. package/services/view.service.d.ts +1 -1
  31. package/services/view.service.js +30 -23
  32. package/services/view.service.js.map +1 -1
  33. package/views/events.html +763 -0
  34. package/views/layout.html +31 -9
  35. package/views/login.html +277 -0
  36. package/views/routes.html +405 -37
@@ -21,8 +21,9 @@ const entity_explorer_service_1 = require("../services/entity-explorer.service")
21
21
  const route_explorer_service_1 = require("../services/route-explorer.service");
22
22
  const health_service_1 = require("../services/health.service");
23
23
  const code_quality_service_1 = require("../services/code-quality.service");
24
+ const crypto_1 = require("crypto");
24
25
  let ProfilerController = class ProfilerController {
25
- constructor(profilerService, viewService, templateBuilder, entityExplorer, routeExplorer, healthService, codeQualityService) {
26
+ constructor(profilerService, viewService, templateBuilder, entityExplorer, routeExplorer, healthService, codeQualityService, profilerOptions) {
26
27
  this.profilerService = profilerService;
27
28
  this.viewService = viewService;
28
29
  this.templateBuilder = templateBuilder;
@@ -30,6 +31,13 @@ let ProfilerController = class ProfilerController {
30
31
  this.routeExplorer = routeExplorer;
31
32
  this.healthService = healthService;
32
33
  this.codeQualityService = codeQualityService;
34
+ this.profilerOptions = profilerOptions;
35
+ }
36
+ get authEnabled() {
37
+ return this.profilerOptions?.auth?.enabled === true;
38
+ }
39
+ renderLayout(title, content, activeTab) {
40
+ return this.viewService.renderWithLayout(title, content, activeTab, this.authEnabled);
33
41
  }
34
42
  async dashboard(res) {
35
43
  res.redirect('/__profiler/view/summary');
@@ -37,7 +45,7 @@ let ProfilerController = class ProfilerController {
37
45
  async requestsList(res) {
38
46
  const profiles = await this.profilerService.getDashboardData();
39
47
  const content = this.templateBuilder.buildDashboard(profiles);
40
- const html = this.viewService.renderWithLayout('Requests', content, 'requests');
48
+ const html = this.renderLayout('Requests', content, 'requests');
41
49
  res.header('Content-Type', 'text/html');
42
50
  res.send(html);
43
51
  }
@@ -63,21 +71,53 @@ let ProfilerController = class ProfilerController {
63
71
  return {
64
72
  status: 'error',
65
73
  message: `Connection failed: ${e.message}`,
66
- tip: 'Pass correct credentials in URL: ?user=YOUR_USER&password=YOUR_PASS&database=YOUR_DB'
74
+ tip: 'Pass correct credentials in URL: ?user=YOUR_USER&password=YOUR_PASS&database=YOUR_DB',
67
75
  };
68
76
  }
69
77
  }
78
+ async loginPage(res, returnTo) {
79
+ const html = this.viewService.render('login', {
80
+ returnTo: returnTo || '/__profiler',
81
+ });
82
+ res.header('Content-Type', 'text/html');
83
+ res.send(html);
84
+ }
85
+ async apiLogin(res, body) {
86
+ const auth = this.profilerOptions?.auth;
87
+ if (!auth || auth.enabled === false) {
88
+ const expiresAt = Date.now() + 24 * 60 * 60 * 1000;
89
+ res.json({ token: 'no-auth', expiresAt });
90
+ return;
91
+ }
92
+ const { username = '', password = '' } = body;
93
+ if (username === auth.username && password === auth.password) {
94
+ const expiresAt = Date.now() + 24 * 60 * 60 * 1000;
95
+ const token = (0, crypto_1.createHmac)('sha256', auth.password)
96
+ .update(`${auth.username}:${expiresAt}`)
97
+ .digest('hex');
98
+ res.json({ token, expiresAt, username: auth.username });
99
+ }
100
+ else {
101
+ res.status(common_1.HttpStatus.UNAUTHORIZED).json({ error: 'Invalid username or password.' });
102
+ }
103
+ }
104
+ async logout(res) {
105
+ const html = `<!DOCTYPE html><html><head><title>Signing out…</title>
106
+ <script>try{localStorage.removeItem('__profiler_auth');}catch(e){}window.location.replace('/__profiler/login');</script>
107
+ </head><body></body></html>`;
108
+ res.header('Content-Type', 'text/html').send(html);
109
+ }
70
110
  async detail(id, res) {
71
111
  const profile = await this.profilerService.getProfileDetail(id);
72
112
  if (!profile) {
73
113
  const content = this.templateBuilder.buildNotFound(id);
74
- const html = this.viewService.renderWithLayout('Profile Not Found', content);
114
+ const html = this.renderLayout('Profile Not Found', content);
75
115
  res.header('Content-Type', 'text/html');
76
116
  res.status(common_1.HttpStatus.NOT_FOUND).send(html);
77
117
  return;
78
118
  }
79
119
  const content = this.templateBuilder.buildDetail(profile);
80
- const html = this.viewService.renderWithLayout(`Request ${profile.id}`, content);
120
+ const html = this.renderLayout(`Request ${profile.id}`, content);
81
121
  res.header('Content-Type', 'text/html');
82
122
  res.send(html);
83
123
  }
@@ -90,54 +130,54 @@ let ProfilerController = class ProfilerController {
90
130
  async summary(res) {
91
131
  const stats = await this.profilerService.getSummaryStats();
92
132
  const content = this.templateBuilder.buildSummaryPage(stats);
93
- const html = this.viewService.renderWithLayout('Summary', content, 'summary');
133
+ const html = this.renderLayout('Summary', content, 'summary');
94
134
  res.header('Content-Type', 'text/html');
95
135
  res.send(html);
96
136
  }
97
137
  async listQueries(res) {
98
138
  const queries = await this.profilerService.getQueriesList();
99
139
  const content = this.templateBuilder.buildQueriesList(queries);
100
- const html = this.viewService.renderWithLayout('Database Queries', content, 'queries');
140
+ const html = this.renderLayout('Database Queries', content, 'queries');
101
141
  res.header('Content-Type', 'text/html');
102
142
  res.send(html);
103
143
  }
104
144
  async listLogs(res, page = 1) {
105
145
  const { logs, currentPage, totalPages, totalLogs } = await this.profilerService.getLogsList(page);
106
146
  const content = this.templateBuilder.buildLogsList(logs, currentPage, totalPages, totalLogs);
107
- const html = this.viewService.renderWithLayout('Application Logs', content, 'logs');
147
+ const html = this.renderLayout('Application Logs', content, 'logs');
108
148
  res.header('Content-Type', 'text/html');
109
149
  res.send(html);
110
150
  }
111
151
  async listEntities(res) {
112
152
  const entities = this.entityExplorer.getEntities();
113
153
  const content = this.templateBuilder.buildEntitiesList(entities);
114
- const html = this.viewService.renderWithLayout('Entity Explorer', content, 'entities');
154
+ const html = this.renderLayout('Entity Explorer', content, 'entities');
115
155
  res.header('Content-Type', 'text/html');
116
156
  res.send(html);
117
157
  }
118
158
  async listRoutes(res) {
119
159
  const routes = this.routeExplorer.getRoutes();
120
160
  const content = this.templateBuilder.buildRoutesList(routes);
121
- const html = this.viewService.renderWithLayout('Routes Explorer', content, 'routes');
161
+ const html = this.renderLayout('Routes Explorer', content, 'routes');
122
162
  res.header('Content-Type', 'text/html');
123
163
  res.send(html);
124
164
  }
125
165
  async listCache(res) {
126
166
  const cacheOps = await this.profilerService.getCacheList();
127
167
  const content = this.templateBuilder.buildCacheList(cacheOps);
128
- const html = this.viewService.renderWithLayout('Cache Operations', content, 'cache');
168
+ const html = this.renderLayout('Cache Operations', content, 'cache');
129
169
  res.header('Content-Type', 'text/html');
130
170
  res.send(html);
131
171
  }
132
172
  async listHttpCalls(res) {
133
173
  const calls = await this.profilerService.getHttpCallsList();
134
174
  const content = this.templateBuilder.buildHttpCallsList(calls);
135
- const html = this.viewService.renderWithLayout('Outbound HTTP', content, 'http-calls');
175
+ const html = this.renderLayout('Outbound HTTP', content, 'http-calls');
136
176
  res.header('Content-Type', 'text/html');
137
177
  res.send(html);
138
178
  }
139
179
  async healthPage(res) {
140
- const html = this.viewService.renderWithLayout('Health', this.templateBuilder.buildHealthPage(), 'health');
180
+ const html = this.renderLayout('Health', this.templateBuilder.buildHealthPage(), 'health');
141
181
  res.header('Content-Type', 'text/html');
142
182
  res.send(html);
143
183
  }
@@ -145,15 +185,23 @@ let ProfilerController = class ProfilerController {
145
185
  return this.healthService.runHealthCheck(force === 'true');
146
186
  }
147
187
  async codeQualityPage(res) {
148
- const html = this.viewService.renderWithLayout('Code Quality', this.templateBuilder.buildCodeQualityPage(), 'code-quality');
188
+ const html = this.renderLayout('Code Quality', this.templateBuilder.buildCodeQualityPage(), 'code-quality');
149
189
  res.header('Content-Type', 'text/html');
150
190
  res.send(html);
151
191
  }
152
192
  async codeQualityAudit(force) {
153
193
  return this.codeQualityService.runCheck(force === 'true');
154
194
  }
195
+ async eventsPage(res) {
196
+ const html = this.renderLayout('Event Tracking', this.templateBuilder.buildEventsPage(), 'events');
197
+ res.header('Content-Type', 'text/html');
198
+ res.send(html);
199
+ }
200
+ async eventsApi() {
201
+ return this.profilerService.getEventsList();
202
+ }
155
203
  async liveLogsPage(res) {
156
- const html = this.viewService.renderWithLayout('Live Logs', this.templateBuilder.buildLiveLogsPage(), 'live-logs');
204
+ const html = this.renderLayout('Live Logs', this.templateBuilder.buildLiveLogsPage(), 'live-logs');
157
205
  res.header('Content-Type', 'text/html');
158
206
  res.send(html);
159
207
  }
@@ -165,7 +213,7 @@ let ProfilerController = class ProfilerController {
165
213
  res.flushHeaders();
166
214
  this.profilerService.logEmitter.setMaxListeners(this.profilerService.logEmitter.getMaxListeners() + 1);
167
215
  res.write(`data: ${JSON.stringify({ level: 'system', message: 'Stream connected', timestamp: Date.now() })}\n\n`);
168
- let batch = [];
216
+ const batch = [];
169
217
  let batchTimer = null;
170
218
  const flush = () => {
171
219
  batchTimer = null;
@@ -264,6 +312,29 @@ __decorate([
264
312
  __metadata("design:paramtypes", []),
265
313
  __metadata("design:returntype", Promise)
266
314
  ], ProfilerController.prototype, "debugQuery", null);
315
+ __decorate([
316
+ (0, common_1.Get)('login'),
317
+ __param(0, (0, common_1.Res)()),
318
+ __param(1, (0, common_1.Query)('returnTo')),
319
+ __metadata("design:type", Function),
320
+ __metadata("design:paramtypes", [Object, String]),
321
+ __metadata("design:returntype", Promise)
322
+ ], ProfilerController.prototype, "loginPage", null);
323
+ __decorate([
324
+ (0, common_1.Post)('api/login'),
325
+ __param(0, (0, common_1.Res)()),
326
+ __param(1, (0, common_1.Body)()),
327
+ __metadata("design:type", Function),
328
+ __metadata("design:paramtypes", [Object, Object]),
329
+ __metadata("design:returntype", Promise)
330
+ ], ProfilerController.prototype, "apiLogin", null);
331
+ __decorate([
332
+ (0, common_1.Get)('logout'),
333
+ __param(0, (0, common_1.Res)()),
334
+ __metadata("design:type", Function),
335
+ __metadata("design:paramtypes", [Object]),
336
+ __metadata("design:returntype", Promise)
337
+ ], ProfilerController.prototype, "logout", null);
267
338
  __decorate([
268
339
  (0, common_1.Get)(':id'),
269
340
  __param(0, (0, common_1.Param)('id')),
@@ -357,6 +428,19 @@ __decorate([
357
428
  __metadata("design:paramtypes", [String]),
358
429
  __metadata("design:returntype", Promise)
359
430
  ], ProfilerController.prototype, "codeQualityAudit", null);
431
+ __decorate([
432
+ (0, common_1.Get)('view/events'),
433
+ __param(0, (0, common_1.Res)()),
434
+ __metadata("design:type", Function),
435
+ __metadata("design:paramtypes", [Object]),
436
+ __metadata("design:returntype", Promise)
437
+ ], ProfilerController.prototype, "eventsPage", null);
438
+ __decorate([
439
+ (0, common_1.Get)('api/events'),
440
+ __metadata("design:type", Function),
441
+ __metadata("design:paramtypes", []),
442
+ __metadata("design:returntype", Promise)
443
+ ], ProfilerController.prototype, "eventsApi", null);
360
444
  __decorate([
361
445
  (0, common_1.Get)('view/logs/live'),
362
446
  __param(0, (0, common_1.Res)()),
@@ -389,12 +473,14 @@ __decorate([
389
473
  ], ProfilerController.prototype, "serveJs", null);
390
474
  exports.ProfilerController = ProfilerController = __decorate([
391
475
  (0, common_1.Controller)('__profiler'),
476
+ __param(7, (0, common_1.Optional)()),
477
+ __param(7, (0, common_1.Inject)('PROFILER_OPTIONS')),
392
478
  __metadata("design:paramtypes", [profiler_service_1.ProfilerService,
393
479
  view_service_1.ViewService,
394
480
  template_builder_service_1.TemplateBuilderService,
395
481
  entity_explorer_service_1.EntityExplorerService,
396
482
  route_explorer_service_1.RouteExplorerService,
397
483
  health_service_1.HealthService,
398
- code_quality_service_1.CodeQualityService])
484
+ code_quality_service_1.CodeQualityService, Object])
399
485
  ], ProfilerController);
400
486
  //# sourceMappingURL=profiler.controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"profiler.controller.js","sourceRoot":"","sources":["../../../libs/nestjs-profiler/src/controllers/profiler.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profiler.controller.js","sourceRoot":"","sources":["../../../libs/nestjs-profiler/src/controllers/profiler.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { NestMiddleware } from '@nestjs/common';
2
+ import { ProfilerOptions } from '../common/profiler-options.interface';
3
+ export declare function setProfilerAuthOptions(options: ProfilerOptions): void;
4
+ export declare function buildSessionCookie(username: string, password: string): string;
5
+ export declare function clearSessionCookie(): string;
6
+ export declare function verifySessionCookie(cookieHeader: string | undefined, username: string, password: string): boolean;
7
+ export declare function createProfilerAuthMiddleware(): (req: any, res: any, next: () => void) => void;
8
+ export declare class ProfilerAuthMiddleware implements NestMiddleware {
9
+ use(_req: any, _res: any, next: () => void): void;
10
+ }
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.ProfilerAuthMiddleware = void 0;
10
+ exports.setProfilerAuthOptions = setProfilerAuthOptions;
11
+ exports.buildSessionCookie = buildSessionCookie;
12
+ exports.clearSessionCookie = clearSessionCookie;
13
+ exports.verifySessionCookie = verifySessionCookie;
14
+ exports.createProfilerAuthMiddleware = createProfilerAuthMiddleware;
15
+ const common_1 = require("@nestjs/common");
16
+ const crypto_1 = require("crypto");
17
+ const SESSION_TTL_MS = 24 * 60 * 60 * 1000;
18
+ const COOKIE_NAME = '__profiler_session';
19
+ let _authOptions = {};
20
+ function setProfilerAuthOptions(options) {
21
+ _authOptions = options;
22
+ }
23
+ function parseCookies(cookieHeader) {
24
+ if (!cookieHeader)
25
+ return {};
26
+ return Object.fromEntries(cookieHeader.split(';').map(pair => {
27
+ const idx = pair.indexOf('=');
28
+ if (idx === -1)
29
+ return [pair.trim(), ''];
30
+ return [pair.slice(0, idx).trim(), decodeURIComponent(pair.slice(idx + 1).trim())];
31
+ }));
32
+ }
33
+ function signToken(username, expiry, password) {
34
+ return (0, crypto_1.createHmac)('sha256', password)
35
+ .update(`${username}:${expiry}`)
36
+ .digest('hex');
37
+ }
38
+ function buildSessionCookie(username, password) {
39
+ const expiry = Date.now() + SESSION_TTL_MS;
40
+ const hmac = signToken(username, expiry, password);
41
+ const token = encodeURIComponent(`${username}:${expiry}:${hmac}`);
42
+ return `${COOKIE_NAME}=${token}; HttpOnly; SameSite=Strict; Path=/__profiler; Max-Age=${SESSION_TTL_MS / 1000}`;
43
+ }
44
+ function clearSessionCookie() {
45
+ return `${COOKIE_NAME}=; HttpOnly; SameSite=Strict; Path=/__profiler; Max-Age=0`;
46
+ }
47
+ function verifySessionCookie(cookieHeader, username, password) {
48
+ try {
49
+ const cookies = parseCookies(cookieHeader);
50
+ const raw = cookies[COOKIE_NAME];
51
+ if (!raw)
52
+ return false;
53
+ const parts = raw.split(':');
54
+ if (parts.length < 3)
55
+ return false;
56
+ const cookieUser = parts[0];
57
+ const expiry = parseInt(parts[1], 10);
58
+ const cookieHmac = parts.slice(2).join(':');
59
+ if (isNaN(expiry) || Date.now() > expiry)
60
+ return false;
61
+ if (cookieUser !== username)
62
+ return false;
63
+ const expected = signToken(username, expiry, password);
64
+ const expectedBuf = Buffer.from(expected, 'hex');
65
+ const actualBuf = Buffer.from(cookieHmac, 'hex');
66
+ if (expectedBuf.length !== actualBuf.length)
67
+ return false;
68
+ return (0, crypto_1.timingSafeEqual)(expectedBuf, actualBuf);
69
+ }
70
+ catch {
71
+ return false;
72
+ }
73
+ }
74
+ function createProfilerAuthMiddleware() {
75
+ return function profilerAuthMiddleware(req, res, next) {
76
+ const auth = _authOptions?.auth;
77
+ if (!auth || auth.enabled === false) {
78
+ return next();
79
+ }
80
+ const url = req.url || '';
81
+ if (url === '/login' ||
82
+ url.startsWith('/login?') ||
83
+ url === '/login/' ||
84
+ url === '/logout' ||
85
+ url.startsWith('/logout?')) {
86
+ return next();
87
+ }
88
+ if (url.startsWith('/assets/') || url.startsWith('/js/')) {
89
+ return next();
90
+ }
91
+ const cookieHeader = req.headers?.cookie;
92
+ const valid = verifySessionCookie(cookieHeader, auth.username, auth.password);
93
+ if (valid) {
94
+ return next();
95
+ }
96
+ const returnTo = encodeURIComponent(req.originalUrl || '/__profiler');
97
+ res.writeHead(302, { Location: `/__profiler/login?returnTo=${returnTo}` });
98
+ res.end();
99
+ };
100
+ }
101
+ let ProfilerAuthMiddleware = class ProfilerAuthMiddleware {
102
+ use(_req, _res, next) {
103
+ next();
104
+ }
105
+ };
106
+ exports.ProfilerAuthMiddleware = ProfilerAuthMiddleware;
107
+ exports.ProfilerAuthMiddleware = ProfilerAuthMiddleware = __decorate([
108
+ (0, common_1.Injectable)()
109
+ ], ProfilerAuthMiddleware);
110
+ //# sourceMappingURL=profiler-auth.middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profiler-auth.middleware.js","sourceRoot":"","sources":["../../../libs/nestjs-profiler/src/middleware/profiler-auth.middleware.ts"],"names":[],"mappings":";;;;;;;;;AAeA,wDAEC;AAqBD,gDAKC;AAED,gDAEC;AAED,kDA6BC;AAQD,oEAwCC;AA9HD,2CAA4D;AAC5D,mCAAqD;AAIrD,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAC3C,MAAM,WAAW,GAAG,oBAAoB,CAAC;AAOzC,IAAI,YAAY,GAAoB,EAAE,CAAC;AAEvC,SAAgB,sBAAsB,CAAC,OAAwB;IAC3D,YAAY,GAAG,OAAO,CAAC;AAC3B,CAAC;AAID,SAAS,YAAY,CAAC,YAAgC;IAClD,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,CAAC;IAC7B,OAAO,MAAM,CAAC,WAAW,CACrB,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACvF,CAAC,CAAC,CACL,CAAC;AACN,CAAC;AAED,SAAS,SAAS,CAAC,QAAgB,EAAE,MAAc,EAAE,QAAgB;IACjE,OAAO,IAAA,mBAAU,EAAC,QAAQ,EAAE,QAAQ,CAAC;SAChC,MAAM,CAAC,GAAG,QAAQ,IAAI,MAAM,EAAE,CAAC;SAC/B,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,SAAgB,kBAAkB,CAAC,QAAgB,EAAE,QAAgB;IACjE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC;IAC3C,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,QAAQ,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC,CAAC;IAClE,OAAO,GAAG,WAAW,IAAI,KAAK,0DAA0D,cAAc,GAAG,IAAI,EAAE,CAAC;AACpH,CAAC;AAED,SAAgB,kBAAkB;IAC9B,OAAO,GAAG,WAAW,2DAA2D,CAAC;AACrF,CAAC;AAED,SAAgB,mBAAmB,CAC/B,YAAgC,EAChC,QAAgB,EAChB,QAAgB;IAEhB,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QACjC,IAAI,CAAC,GAAG;YAAE,OAAO,KAAK,CAAC;QAEvB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAEnC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE5C,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM;YAAE,OAAO,KAAK,CAAC;QACvD,IAAI,UAAU,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAE1C,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QACvD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAEjD,IAAI,WAAW,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC1D,OAAO,IAAA,wBAAe,EAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACL,OAAO,KAAK,CAAC;IACjB,CAAC;AACL,CAAC;AAQD,SAAgB,4BAA4B;IACxC,OAAO,SAAS,sBAAsB,CAAC,GAAQ,EAAE,GAAQ,EAAE,IAAgB;QACvE,MAAM,IAAI,GAAG,YAAY,EAAE,IAAI,CAAC;QAGhC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YAClC,OAAO,IAAI,EAAE,CAAC;QAClB,CAAC;QAED,MAAM,GAAG,GAAW,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;QAGlC,IACI,GAAG,KAAK,QAAQ;YAChB,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;YACzB,GAAG,KAAK,SAAS;YACjB,GAAG,KAAK,SAAS;YACjB,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,EAC5B,CAAC;YACC,OAAO,IAAI,EAAE,CAAC;QAClB,CAAC;QAGD,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,OAAO,IAAI,EAAE,CAAC;QAClB,CAAC;QAGD,MAAM,YAAY,GAAuB,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC;QAC7D,MAAM,KAAK,GAAG,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE9E,IAAI,KAAK,EAAE,CAAC;YACR,OAAO,IAAI,EAAE,CAAC;QAClB,CAAC;QAGD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,WAAW,IAAI,aAAa,CAAC,CAAC;QACtE,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,8BAA8B,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC3E,GAAG,CAAC,GAAG,EAAE,CAAC;IACd,CAAC,CAAC;AACN,CAAC;AAOM,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAC/B,GAAG,CAAC,IAAS,EAAE,IAAS,EAAE,IAAgB;QACtC,IAAI,EAAE,CAAC;IACX,CAAC;CACJ,CAAA;AAJY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,mBAAU,GAAE;GACA,sBAAsB,CAIlC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "nestjs-profiler",
3
- "version": "1.0.25",
4
- "description": "A NestJS module for profiling HTTP requests, database queries, cache operations, outbound HTTP calls, application logs, package health, and code quality. Inspired by Symfony Profiler, it provides a web-based dashboard to inspect everything that happens inside a request — from DB queries to downstream API calls — in real time.",
3
+ "version": "1.0.26",
4
+ "description": "A NestJS module for profiling HTTP requests, database queries, cache operations, outbound HTTP calls, application logs, package health, code quality, and event tracking. Inspired by Symfony Profiler, it provides a web-based dashboard to inspect everything that happens inside a request — from DB queries to downstream API calls — in real time.",
5
5
  "author": "Mohamed Raslan",
6
6
  "main": "./index.js",
7
7
  "types": "./index.d.ts",
@@ -20,6 +20,7 @@ const mysql_collector_1 = require("./collectors/mysql-collector");
20
20
  const log_collector_1 = require("./collectors/log-collector");
21
21
  const cache_collector_1 = require("./collectors/cache-collector");
22
22
  const http_collector_1 = require("./collectors/http-collector");
23
+ const event_collector_1 = require("./collectors/event-collector");
23
24
  const health_service_1 = require("./services/health.service");
24
25
  const code_quality_service_1 = require("./services/code-quality.service");
25
26
  const explain_analyzer_1 = require("./analyzers/explain-analyzer");
@@ -64,6 +65,7 @@ let ProfilerModule = ProfilerModule_1 = class ProfilerModule {
64
65
  log_collector_1.LogCollector,
65
66
  cache_collector_1.CacheCollector,
66
67
  http_collector_1.HttpCollector,
68
+ event_collector_1.EventCollector,
67
69
  health_service_1.HealthService,
68
70
  code_quality_service_1.CodeQualityService,
69
71
  explain_analyzer_1.ExplainAnalyzer,
@@ -90,6 +92,82 @@ let ProfilerModule = ProfilerModule_1 = class ProfilerModule {
90
92
  catch (e) {
91
93
  console.warn('Profiler: Could not initialize Explorers. Ensure ProfilerModule is imported.', e);
92
94
  }
95
+ try {
96
+ const eventCollector = app.get(event_collector_1.EventCollector);
97
+ const container = app.container;
98
+ const modulesContainer = container.getModules();
99
+ const EVENT_LISTENER_METADATA = 'EVENT_LISTENER_METADATA';
100
+ const listenerMap = new Map();
101
+ const findFileForClass = (ctor) => {
102
+ if (!ctor?.name)
103
+ return '';
104
+ try {
105
+ const cache = require.cache;
106
+ for (const [filename, mod] of Object.entries(cache)) {
107
+ if (!mod?.exports)
108
+ continue;
109
+ const exp = mod.exports;
110
+ if (exp[ctor.name] === ctor)
111
+ return filename.replace(/\.js$/, '.ts');
112
+ if (exp?.default === ctor)
113
+ return filename.replace(/\.js$/, '.ts');
114
+ }
115
+ }
116
+ catch { }
117
+ return '';
118
+ };
119
+ const scanInstance = (instance) => {
120
+ if (!instance)
121
+ return;
122
+ const proto = Object.getPrototypeOf(instance);
123
+ if (!proto || proto === Object.prototype)
124
+ return;
125
+ const file = findFileForClass(instance.constructor);
126
+ Object.getOwnPropertyNames(proto).forEach((methodKey) => {
127
+ if (methodKey === 'constructor')
128
+ return;
129
+ try {
130
+ const method = proto[methodKey];
131
+ if (typeof method !== 'function')
132
+ return;
133
+ const meta = Reflect.getMetadata(EVENT_LISTENER_METADATA, method);
134
+ if (!meta)
135
+ return;
136
+ const metas = Array.isArray(meta) ? meta : [meta];
137
+ metas.forEach((m) => {
138
+ const events = Array.isArray(m.event)
139
+ ? m.event
140
+ : [m.event];
141
+ const name = `${instance.constructor.name}.${methodKey}`;
142
+ events.forEach((ev) => {
143
+ const existing = listenerMap.get(ev) ?? [];
144
+ existing.push({ name, file });
145
+ listenerMap.set(ev, existing);
146
+ });
147
+ });
148
+ }
149
+ catch {
150
+ }
151
+ });
152
+ };
153
+ for (const mod of modulesContainer.values()) {
154
+ const providers = [...mod.providers.values()];
155
+ for (const wrapper of providers) {
156
+ if (!wrapper?.instance || wrapper.isAlias)
157
+ continue;
158
+ scanInstance(wrapper.instance);
159
+ }
160
+ const controllers = [...(mod.controllers?.values() ?? [])];
161
+ for (const wrapper of controllers) {
162
+ if (!wrapper?.instance || wrapper.isAlias)
163
+ continue;
164
+ scanInstance(wrapper.instance);
165
+ }
166
+ }
167
+ eventCollector.setListenerNames(listenerMap);
168
+ }
169
+ catch {
170
+ }
93
171
  }
94
172
  };
95
173
  exports.ProfilerModule = ProfilerModule;
@@ -1 +1 @@
1
- {"version":3,"file":"profiler.module.js","sourceRoot":"","sources":["../../libs/nestjs-profiler/src/profiler.module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profiler.module.js","sourceRoot":"","sources":["../../libs/nestjs-profiler/src/profiler.module.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ export interface EntityDefinition {
7
7
  columns?: string[];
8
8
  }
9
9
  export declare class EntityExplorerService {
10
- private entities;
10
+ private static _entities;
11
11
  constructor();
12
12
  initialize(modulesContainer: any): void;
13
13
  getEntities(): EntityDefinition[];
@@ -8,13 +8,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
+ var EntityExplorerService_1;
11
12
  Object.defineProperty(exports, "__esModule", { value: true });
12
13
  exports.EntityExplorerService = void 0;
13
14
  const common_1 = require("@nestjs/common");
14
- let EntityExplorerService = class EntityExplorerService {
15
- constructor() {
16
- this.entities = [];
17
- }
15
+ let EntityExplorerService = EntityExplorerService_1 = class EntityExplorerService {
16
+ constructor() { }
18
17
  initialize(modulesContainer) {
19
18
  try {
20
19
  this.scan(modulesContainer);
@@ -24,7 +23,7 @@ let EntityExplorerService = class EntityExplorerService {
24
23
  }
25
24
  }
26
25
  getEntities() {
27
- return this.entities;
26
+ return EntityExplorerService_1._entities;
28
27
  }
29
28
  scan(modulesContainer) {
30
29
  if (!modulesContainer)
@@ -49,7 +48,7 @@ let EntityExplorerService = class EntityExplorerService {
49
48
  const key = `${d.connection}:${d.name}`;
50
49
  unique.set(key, d);
51
50
  });
52
- this.entities = Array.from(unique.values()).sort((a, b) => a.name.localeCompare(b.name));
51
+ EntityExplorerService_1._entities = Array.from(unique.values()).sort((a, b) => a.name.localeCompare(b.name));
53
52
  }
54
53
  isTypeOrmDataSource(instance) {
55
54
  return (instance &&
@@ -104,7 +103,8 @@ let EntityExplorerService = class EntityExplorerService {
104
103
  }
105
104
  };
106
105
  exports.EntityExplorerService = EntityExplorerService;
107
- exports.EntityExplorerService = EntityExplorerService = __decorate([
106
+ EntityExplorerService._entities = [];
107
+ exports.EntityExplorerService = EntityExplorerService = EntityExplorerService_1 = __decorate([
108
108
  (0, common_1.Injectable)(),
109
109
  __metadata("design:paramtypes", [])
110
110
  ], EntityExplorerService);