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
@@ -8,14 +8,13 @@ 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 RouteExplorerService_1;
11
12
  Object.defineProperty(exports, "__esModule", { value: true });
12
13
  exports.RouteExplorerService = void 0;
13
14
  const common_1 = require("@nestjs/common");
14
15
  const constants_1 = require("@nestjs/common/constants");
15
- let RouteExplorerService = class RouteExplorerService {
16
- constructor() {
17
- this.routes = [];
18
- }
16
+ let RouteExplorerService = RouteExplorerService_1 = class RouteExplorerService {
17
+ constructor() { }
19
18
  initialize(modulesContainer, globalPrefix = '') {
20
19
  try {
21
20
  this.scan(modulesContainer, globalPrefix);
@@ -25,7 +24,7 @@ let RouteExplorerService = class RouteExplorerService {
25
24
  }
26
25
  }
27
26
  getRoutes() {
28
- return this.routes;
27
+ return RouteExplorerService_1._routes;
29
28
  }
30
29
  scan(modulesContainer, globalPrefix) {
31
30
  if (!modulesContainer)
@@ -33,7 +32,10 @@ let RouteExplorerService = class RouteExplorerService {
33
32
  const routes = [];
34
33
  const modules = [...modulesContainer.values()];
35
34
  for (const module of modules) {
36
- const controllers = [...module.controllers.values()];
35
+ const controllersMap = module.controllers;
36
+ if (!controllersMap || typeof controllersMap.values !== 'function')
37
+ continue;
38
+ const controllers = [...controllersMap.values()];
37
39
  for (const controllerWrapper of controllers) {
38
40
  const controller = controllerWrapper.instance;
39
41
  const metadata = controllerWrapper.metatype;
@@ -44,16 +46,27 @@ let RouteExplorerService = class RouteExplorerService {
44
46
  Object.getOwnPropertyNames(prototype).forEach(methodName => {
45
47
  if (methodName === 'constructor')
46
48
  return;
47
- const handler = prototype[methodName];
49
+ let handler;
50
+ try {
51
+ const descriptor = Object.getOwnPropertyDescriptor(prototype, methodName);
52
+ if (!descriptor || typeof descriptor.value !== 'function')
53
+ return;
54
+ handler = descriptor.value;
55
+ }
56
+ catch {
57
+ return;
58
+ }
48
59
  const methodPath = Reflect.getMetadata(constants_1.PATH_METADATA, handler);
49
60
  const requestMethod = Reflect.getMetadata(constants_1.METHOD_METADATA, handler);
50
61
  if (requestMethod !== undefined) {
51
62
  const fullPath = this.normalizePath(globalPrefix, controllerPath, methodPath);
63
+ const meta = this.extractHandlerMeta(prototype, methodName, fullPath);
52
64
  routes.push({
53
65
  path: fullPath,
54
66
  method: this.getRequestMethodName(requestMethod),
55
67
  controller: metadata.name,
56
- handler: methodName
68
+ handler: methodName,
69
+ ...meta,
57
70
  });
58
71
  }
59
72
  });
@@ -61,7 +74,7 @@ let RouteExplorerService = class RouteExplorerService {
61
74
  }
62
75
  const unique = new Map();
63
76
  routes.forEach(r => unique.set(`${r.method}:${r.path}`, r));
64
- this.routes = Array.from(unique.values()).sort((a, b) => a.path.localeCompare(b.path));
77
+ RouteExplorerService_1._routes = Array.from(unique.values()).sort((a, b) => a.path.localeCompare(b.path));
65
78
  }
66
79
  normalizePath(globalPrefix, controllerPath, methodPath) {
67
80
  const parts = [globalPrefix, controllerPath, methodPath].map(p => {
@@ -72,6 +85,118 @@ let RouteExplorerService = class RouteExplorerService {
72
85
  let path = '/' + parts.join('/');
73
86
  return path.replace(/\/+/g, '/');
74
87
  }
88
+ extractHandlerMeta(prototype, methodName, fullPath) {
89
+ try {
90
+ const ROUTE_ARGS_KEY = '__routeArguments__';
91
+ const RPT = { BODY: 3, QUERY: 4, PARAM: 5, HEADERS: 6 };
92
+ const rawArgs = Reflect.getMetadata(ROUTE_ARGS_KEY, prototype.constructor, methodName) || {};
93
+ const paramTypes = Reflect.getMetadata('design:paramtypes', prototype, methodName) || [];
94
+ const params = [];
95
+ let bodyDef;
96
+ const coveredPathParams = new Set();
97
+ for (const key of Object.keys(rawArgs)) {
98
+ const entry = rawArgs[key];
99
+ if (key.includes('__customRouteArgs__'))
100
+ continue;
101
+ const typeNum = parseInt(key.split(':')[0], 10);
102
+ if (isNaN(typeNum))
103
+ continue;
104
+ const paramIndex = entry?.index ?? parseInt(key.split(':')[1], 10);
105
+ const decoratorData = entry?.data;
106
+ const tsType = paramTypes[paramIndex];
107
+ const typeName = this.typeName(tsType);
108
+ const PRIMITIVES = ['string', 'number', 'boolean', 'object', 'array', 'any'];
109
+ const isPrimitive = PRIMITIVES.includes(typeName);
110
+ if (typeNum === RPT.PARAM) {
111
+ if (!decoratorData)
112
+ continue;
113
+ const name = decoratorData;
114
+ coveredPathParams.add(name);
115
+ const props = !isPrimitive ? this.extractDtoProperties(tsType) : undefined;
116
+ const file = !isPrimitive ? this.findDtoFile(tsType) : undefined;
117
+ params.push({ name, paramType: 'path', dataType: typeName, required: true, ...(props?.length ? { properties: props } : {}), ...(file ? { file } : {}) });
118
+ }
119
+ else if (typeNum === RPT.QUERY) {
120
+ const name = decoratorData || `query${paramIndex}`;
121
+ const props = !isPrimitive ? this.extractDtoProperties(tsType) : undefined;
122
+ const file = !isPrimitive ? this.findDtoFile(tsType) : undefined;
123
+ params.push({ name, paramType: 'query', dataType: typeName, required: false, ...(props?.length ? { properties: props } : {}), ...(file ? { file } : {}) });
124
+ }
125
+ else if (typeNum === RPT.HEADERS) {
126
+ const name = decoratorData || 'headers';
127
+ const props = !isPrimitive ? this.extractDtoProperties(tsType) : undefined;
128
+ const file = !isPrimitive ? this.findDtoFile(tsType) : undefined;
129
+ params.push({ name, paramType: 'header', dataType: typeName, required: false, ...(props?.length ? { properties: props } : {}), ...(file ? { file } : {}) });
130
+ }
131
+ else if (typeNum === RPT.BODY) {
132
+ const file = !isPrimitive ? this.findDtoFile(tsType) : undefined;
133
+ bodyDef = {
134
+ typeName: typeName,
135
+ properties: isPrimitive ? [] : this.extractDtoProperties(tsType),
136
+ ...(file ? { file } : {}),
137
+ };
138
+ }
139
+ }
140
+ const urlPathParams = [...fullPath.matchAll(/:([^/]+)/g)].map(m => m[1]);
141
+ for (const name of urlPathParams) {
142
+ if (!coveredPathParams.has(name)) {
143
+ params.push({ name, paramType: 'path', dataType: 'string', required: true });
144
+ }
145
+ }
146
+ return { params, body: bodyDef };
147
+ }
148
+ catch {
149
+ return { params: [] };
150
+ }
151
+ }
152
+ findDtoFile(ctor) {
153
+ if (!ctor?.name)
154
+ return '';
155
+ try {
156
+ const cache = require.cache;
157
+ for (const [filename, mod] of Object.entries(cache)) {
158
+ if (!mod?.exports)
159
+ continue;
160
+ const exp = mod.exports;
161
+ if (exp[ctor.name] === ctor || exp?.default === ctor) {
162
+ return filename.replace(/\.js$/, '.ts');
163
+ }
164
+ }
165
+ }
166
+ catch { }
167
+ return '';
168
+ }
169
+ typeName(ctor) {
170
+ if (!ctor)
171
+ return 'any';
172
+ switch (ctor) {
173
+ case String: return 'string';
174
+ case Number: return 'number';
175
+ case Boolean: return 'boolean';
176
+ case Object: return 'object';
177
+ case Array: return 'array';
178
+ default: return ctor.name || 'any';
179
+ }
180
+ }
181
+ extractDtoProperties(ctor) {
182
+ if (!ctor || typeof ctor !== 'function')
183
+ return [];
184
+ try {
185
+ const proto = ctor.prototype;
186
+ if (!proto)
187
+ return [];
188
+ return Object.getOwnPropertyNames(proto)
189
+ .filter(name => name !== 'constructor')
190
+ .map(name => {
191
+ const type = Reflect.getMetadata('design:type', proto, name);
192
+ return type ? { name, type: this.typeName(type) } : null;
193
+ })
194
+ .filter((p) => p !== null);
195
+ }
196
+ catch {
197
+ return [];
198
+ }
199
+ }
75
200
  getRequestMethodName(method) {
76
201
  switch (method) {
77
202
  case common_1.RequestMethod.GET: return 'GET';
@@ -87,7 +212,8 @@ let RouteExplorerService = class RouteExplorerService {
87
212
  }
88
213
  };
89
214
  exports.RouteExplorerService = RouteExplorerService;
90
- exports.RouteExplorerService = RouteExplorerService = __decorate([
215
+ RouteExplorerService._routes = [];
216
+ exports.RouteExplorerService = RouteExplorerService = RouteExplorerService_1 = __decorate([
91
217
  (0, common_1.Injectable)(),
92
218
  __metadata("design:paramtypes", [])
93
219
  ], RouteExplorerService);
@@ -1 +1 @@
1
- {"version":3,"file":"route-explorer.service.js","sourceRoot":"","sources":["../../../libs/nestjs-profiler/src/services/route-explorer.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"route-explorer.service.js","sourceRoot":"","sources":["../../../libs/nestjs-profiler/src/services/route-explorer.service.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ export declare class TemplateBuilderService {
6
6
  buildLiveLogsPage(): string;
7
7
  buildHealthPage(): string;
8
8
  buildCodeQualityPage(): string;
9
+ buildEventsPage(): string;
9
10
  buildSummaryPage(stats: Awaited<ReturnType<import('./profiler.service').ProfilerService['getSummaryStats']>>): string;
10
11
  private getMethodBadgeClass;
11
12
  buildDashboard(profiles: RequestProfile[]): string;