nestjs-profiler 1.0.24 → 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 (42) hide show
  1. package/README.md +167 -5
  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 +22 -1
  8. package/controllers/profiler.controller.js +161 -15
  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 +82 -0
  15. package/profiler.module.js.map +1 -1
  16. package/services/code-quality.service.d.ts +65 -0
  17. package/services/code-quality.service.js +216 -0
  18. package/services/code-quality.service.js.map +1 -0
  19. package/services/entity-explorer.service.d.ts +1 -1
  20. package/services/entity-explorer.service.js +7 -7
  21. package/services/entity-explorer.service.js.map +1 -1
  22. package/services/health.service.d.ts +59 -0
  23. package/services/health.service.js +190 -0
  24. package/services/health.service.js.map +1 -0
  25. package/services/profiler.service.d.ts +10 -1
  26. package/services/profiler.service.js +103 -35
  27. package/services/profiler.service.js.map +1 -1
  28. package/services/route-explorer.service.d.ts +23 -1
  29. package/services/route-explorer.service.js +136 -10
  30. package/services/route-explorer.service.js.map +1 -1
  31. package/services/template-builder.service.d.ts +3 -0
  32. package/services/template-builder.service.js +191 -84
  33. package/services/template-builder.service.js.map +1 -1
  34. package/services/view.service.d.ts +1 -1
  35. package/services/view.service.js +34 -23
  36. package/services/view.service.js.map +1 -1
  37. package/views/code-quality.html +573 -0
  38. package/views/events.html +763 -0
  39. package/views/health.html +468 -0
  40. package/views/layout.html +50 -10
  41. package/views/login.html +277 -0
  42. package/views/routes.html +405 -37
@@ -60,15 +60,20 @@ let ViewService = class ViewService {
60
60
  template = this.interpolate(template, data);
61
61
  return template;
62
62
  }
63
- renderWithLayout(title, content, activeTab = 'requests') {
63
+ renderWithLayout(title, content, activeTab = 'requests', authEnabled = false) {
64
64
  const layoutPath = path.join(this.viewsPath, 'layout.html');
65
65
  let layout = this.loadTemplate(layoutPath);
66
- const active = (tab) => activeTab === tab ? 'bg-indigo-600 text-white' : 'text-slate-300 hover:bg-slate-800 hover:text-white';
67
- const activeIcon = (tab) => activeTab === tab ? 'text-indigo-300' : 'text-slate-400 group-hover:text-white';
66
+ const active = (tab) => activeTab === tab
67
+ ? 'bg-indigo-600 text-white'
68
+ : 'text-slate-300 hover:bg-slate-800 hover:text-white';
69
+ const activeIcon = (tab) => activeTab === tab
70
+ ? 'text-indigo-300'
71
+ : 'text-slate-400 group-hover:text-white';
68
72
  const data = {
69
73
  title,
70
74
  content,
71
75
  activeTab,
76
+ authEnabled: authEnabled ? 'true' : 'false',
72
77
  activeClass: 'bg-indigo-600 text-white',
73
78
  inactiveClass: 'text-slate-300 hover:bg-slate-800 hover:text-white',
74
79
  summaryActive: active('summary'),
@@ -79,7 +84,10 @@ let ViewService = class ViewService {
79
84
  routesActive: active('routes'),
80
85
  cacheActive: active('cache'),
81
86
  httpCallsActive: active('http-calls'),
87
+ healthActive: active('health'),
82
88
  liveLogsActive: active('live-logs'),
89
+ codeQualityActive: active('code-quality'),
90
+ eventsActive: active('events'),
83
91
  summaryIconClass: activeIcon('summary'),
84
92
  requestsIconClass: activeIcon('requests'),
85
93
  queriesIconClass: activeIcon('queries'),
@@ -87,8 +95,11 @@ let ViewService = class ViewService {
87
95
  entitiesIconClass: activeIcon('entities'),
88
96
  routesIconClass: activeIcon('routes'),
89
97
  cacheIconClass: activeIcon('cache'),
98
+ eventsIconClass: activeIcon('events'),
90
99
  httpCallsIconClass: activeIcon('http-calls'),
100
+ healthIconClass: activeIcon('health'),
91
101
  liveLogsIconClass: activeIcon('live-logs'),
102
+ codeQualityIconClass: activeIcon('code-quality'),
92
103
  };
93
104
  layout = this.interpolate(layout, data);
94
105
  return layout;
@@ -116,7 +127,7 @@ let ViewService = class ViewService {
116
127
  '<': '&lt;',
117
128
  '>': '&gt;',
118
129
  '"': '&quot;',
119
- "'": '&#039;'
130
+ "'": '&#039;',
120
131
  };
121
132
  return String(text).replace(/[&<>"']/g, (m) => map[m]);
122
133
  }
@@ -124,20 +135,20 @@ let ViewService = class ViewService {
124
135
  const seconds = Math.floor((Date.now() - timestamp) / 1000);
125
136
  let interval = seconds / 31536000;
126
137
  if (interval > 1)
127
- return Math.floor(interval) + "y ago";
138
+ return Math.floor(interval) + 'y ago';
128
139
  interval = seconds / 2592000;
129
140
  if (interval > 1)
130
- return Math.floor(interval) + "mo ago";
141
+ return Math.floor(interval) + 'mo ago';
131
142
  interval = seconds / 86400;
132
143
  if (interval > 1)
133
- return Math.floor(interval) + "d ago";
144
+ return Math.floor(interval) + 'd ago';
134
145
  interval = seconds / 3600;
135
146
  if (interval > 1)
136
- return Math.floor(interval) + "h ago";
147
+ return Math.floor(interval) + 'h ago';
137
148
  interval = seconds / 60;
138
149
  if (interval > 1)
139
- return Math.floor(interval) + "m ago";
140
- return Math.floor(seconds) + "s ago";
150
+ return Math.floor(interval) + 'm ago';
151
+ return Math.floor(seconds) + 's ago';
141
152
  }
142
153
  getStatusClass(statusCode) {
143
154
  if (statusCode >= 500)
@@ -150,11 +161,11 @@ let ViewService = class ViewService {
150
161
  }
151
162
  getMethodBadge(method) {
152
163
  const badges = {
153
- 'GET': 'bg-blue-100 text-blue-800',
154
- 'POST': 'bg-green-100 text-green-800',
155
- 'PUT': 'bg-orange-100 text-orange-800',
156
- 'PATCH': 'bg-yellow-100 text-yellow-800',
157
- 'DELETE': 'bg-red-100 text-red-800',
164
+ GET: 'bg-blue-100 text-blue-800',
165
+ POST: 'bg-green-100 text-green-800',
166
+ PUT: 'bg-orange-100 text-orange-800',
167
+ PATCH: 'bg-yellow-100 text-yellow-800',
168
+ DELETE: 'bg-red-100 text-red-800',
158
169
  };
159
170
  const classes = badges[method] || 'bg-gray-100 text-gray-800';
160
171
  return `<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full ${classes}">${method}</span>`;
@@ -177,20 +188,20 @@ let ViewService = class ViewService {
177
188
  }
178
189
  getCacheOperationBadge(op) {
179
190
  const badges = {
180
- 'get': 'bg-blue-100 text-blue-800',
181
- 'set': 'bg-purple-100 text-purple-800',
182
- 'del': 'bg-red-100 text-red-800',
183
- 'reset': 'bg-orange-100 text-orange-800',
191
+ get: 'bg-blue-100 text-blue-800',
192
+ set: 'bg-purple-100 text-purple-800',
193
+ del: 'bg-red-100 text-red-800',
194
+ reset: 'bg-orange-100 text-orange-800',
184
195
  };
185
196
  const classes = badges[op] || 'bg-gray-100 text-gray-800';
186
197
  return `<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full uppercase ${classes}">${op}</span>`;
187
198
  }
188
199
  getCacheResultBadge(result) {
189
200
  const badges = {
190
- 'hit': 'bg-green-100 text-green-800',
191
- 'miss': 'bg-red-100 text-red-800',
192
- 'success': 'bg-green-100 text-green-800',
193
- 'fail': 'bg-red-100 text-red-800',
201
+ hit: 'bg-green-100 text-green-800',
202
+ miss: 'bg-red-100 text-red-800',
203
+ success: 'bg-green-100 text-green-800',
204
+ fail: 'bg-red-100 text-red-800',
194
205
  };
195
206
  const classes = badges[result] || 'bg-gray-100 text-gray-800';
196
207
  return `<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full uppercase ${classes}">${result}</span>`;
@@ -1 +1 @@
1
- {"version":3,"file":"view.service.js","sourceRoot":"","sources":["../../../libs/nestjs-profiler/src/services/view.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"view.service.js","sourceRoot":"","sources":["../../../libs/nestjs-profiler/src/services/view.service.ts"],"names":[],"mappings":"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"}