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.
- package/README.md +167 -5
- package/collectors/event-collector.d.ts +18 -0
- package/collectors/event-collector.js +254 -0
- package/collectors/event-collector.js.map +1 -0
- package/common/profiler-options.interface.d.ts +8 -0
- package/common/profiler.model.d.ts +25 -0
- package/controllers/profiler.controller.d.ts +22 -1
- package/controllers/profiler.controller.js +161 -15
- package/controllers/profiler.controller.js.map +1 -1
- package/middleware/profiler-auth.middleware.d.ts +10 -0
- package/middleware/profiler-auth.middleware.js +110 -0
- package/middleware/profiler-auth.middleware.js.map +1 -0
- package/package.json +2 -2
- package/profiler.module.js +82 -0
- package/profiler.module.js.map +1 -1
- package/services/code-quality.service.d.ts +65 -0
- package/services/code-quality.service.js +216 -0
- package/services/code-quality.service.js.map +1 -0
- package/services/entity-explorer.service.d.ts +1 -1
- package/services/entity-explorer.service.js +7 -7
- package/services/entity-explorer.service.js.map +1 -1
- package/services/health.service.d.ts +59 -0
- package/services/health.service.js +190 -0
- package/services/health.service.js.map +1 -0
- package/services/profiler.service.d.ts +10 -1
- package/services/profiler.service.js +103 -35
- package/services/profiler.service.js.map +1 -1
- package/services/route-explorer.service.d.ts +23 -1
- package/services/route-explorer.service.js +136 -10
- package/services/route-explorer.service.js.map +1 -1
- package/services/template-builder.service.d.ts +3 -0
- package/services/template-builder.service.js +191 -84
- package/services/template-builder.service.js.map +1 -1
- package/services/view.service.d.ts +1 -1
- package/services/view.service.js +34 -23
- package/services/view.service.js.map +1 -1
- package/views/code-quality.html +573 -0
- package/views/events.html +763 -0
- package/views/health.html +468 -0
- package/views/layout.html +50 -10
- package/views/login.html +277 -0
- package/views/routes.html +405 -37
package/services/view.service.js
CHANGED
|
@@ -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
|
|
67
|
-
|
|
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
|
'<': '<',
|
|
117
128
|
'>': '>',
|
|
118
129
|
'"': '"',
|
|
119
|
-
"'": '''
|
|
130
|
+
"'": ''',
|
|
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) +
|
|
138
|
+
return Math.floor(interval) + 'y ago';
|
|
128
139
|
interval = seconds / 2592000;
|
|
129
140
|
if (interval > 1)
|
|
130
|
-
return Math.floor(interval) +
|
|
141
|
+
return Math.floor(interval) + 'mo ago';
|
|
131
142
|
interval = seconds / 86400;
|
|
132
143
|
if (interval > 1)
|
|
133
|
-
return Math.floor(interval) +
|
|
144
|
+
return Math.floor(interval) + 'd ago';
|
|
134
145
|
interval = seconds / 3600;
|
|
135
146
|
if (interval > 1)
|
|
136
|
-
return Math.floor(interval) +
|
|
147
|
+
return Math.floor(interval) + 'h ago';
|
|
137
148
|
interval = seconds / 60;
|
|
138
149
|
if (interval > 1)
|
|
139
|
-
return Math.floor(interval) +
|
|
140
|
-
return Math.floor(seconds) +
|
|
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
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
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
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
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
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,uCAAyB;AACzB,2CAA6B;AAGtB,IAAM,WAAW,GAAjB,MAAM,WAAW;
|
|
1
|
+
{"version":3,"file":"view.service.js","sourceRoot":"","sources":["../../../libs/nestjs-profiler/src/services/view.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,uCAAyB;AACzB,2CAA6B;AAGtB,IAAM,WAAW,GAAjB,MAAM,WAAW;IAGtB;QAGE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAKD,MAAM,CAAC,QAAgB;QACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,QAAQ,OAAO,CAAC,CAAC;QAC/D,OAAO,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,QAAgB,EAAE,OAAY,EAAE;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,QAAQ,OAAO,CAAC,CAAC;QAC/D,IAAI,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAG3C,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAE5C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAKD,gBAAgB,CACd,KAAa,EACb,OAAe,EACf,YAAoB,UAAU,EAC9B,cAAuB,KAAK;QAE5B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QAC5D,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAE3C,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,EAAE,CAC7B,SAAS,KAAK,GAAG;YACf,CAAC,CAAC,0BAA0B;YAC5B,CAAC,CAAC,oDAAoD,CAAC;QAC3D,MAAM,UAAU,GAAG,CAAC,GAAW,EAAE,EAAE,CACjC,SAAS,KAAK,GAAG;YACf,CAAC,CAAC,iBAAiB;YACnB,CAAC,CAAC,uCAAuC,CAAC;QAE9C,MAAM,IAAI,GAAG;YACX,KAAK;YACL,OAAO;YACP,SAAS;YACT,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;YAC3C,WAAW,EAAE,0BAA0B;YACvC,aAAa,EAAE,oDAAoD;YACnE,aAAa,EAAE,MAAM,CAAC,SAAS,CAAC;YAChC,cAAc,EAAE,MAAM,CAAC,UAAU,CAAC;YAClC,aAAa,EAAE,MAAM,CAAC,SAAS,CAAC;YAChC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC;YAC1B,cAAc,EAAE,MAAM,CAAC,UAAU,CAAC;YAClC,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC;YAC9B,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC;YAC5B,eAAe,EAAE,MAAM,CAAC,YAAY,CAAC;YACrC,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC;YAC9B,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC;YACnC,iBAAiB,EAAE,MAAM,CAAC,cAAc,CAAC;YACzC,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC;YAC9B,gBAAgB,EAAE,UAAU,CAAC,SAAS,CAAC;YACvC,iBAAiB,EAAE,UAAU,CAAC,UAAU,CAAC;YACzC,gBAAgB,EAAE,UAAU,CAAC,SAAS,CAAC;YACvC,aAAa,EAAE,UAAU,CAAC,MAAM,CAAC;YACjC,iBAAiB,EAAE,UAAU,CAAC,UAAU,CAAC;YACzC,eAAe,EAAE,UAAU,CAAC,QAAQ,CAAC;YACrC,cAAc,EAAE,UAAU,CAAC,OAAO,CAAC;YACnC,eAAe,EAAE,UAAU,CAAC,QAAQ,CAAC;YACrC,kBAAkB,EAAE,UAAU,CAAC,YAAY,CAAC;YAC5C,eAAe,EAAE,UAAU,CAAC,QAAQ,CAAC;YACrC,iBAAiB,EAAE,UAAU,CAAC,WAAW,CAAC;YAC1C,oBAAoB,EAAE,UAAU,CAAC,cAAc,CAAC;SACjD,CAAC;QAEF,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAExC,OAAO,MAAM,CAAC;IAChB,CAAC;IAKO,YAAY,CAAC,QAAgB;QACnC,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAMO,WAAW,CAAC,QAAgB,EAAE,IAAS;QAG7C,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACrE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC,CAAC,CAAC;QAGH,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACjE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAKO,UAAU,CAAC,IAAY;QAC7B,MAAM,GAAG,GAA2B;YAClC,GAAG,EAAE,OAAO;YACZ,GAAG,EAAE,MAAM;YACX,GAAG,EAAE,MAAM;YACX,GAAG,EAAE,QAAQ;YACb,GAAG,EAAE,QAAQ;SACd,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IAKD,OAAO,CAAC,SAAiB;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;QAE5D,IAAI,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;QAClC,IAAI,QAAQ,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;QAExD,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;QAC7B,IAAI,QAAQ,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;QAEzD,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;QAC3B,IAAI,QAAQ,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;QAExD,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC;QAC1B,IAAI,QAAQ,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;QAExD,QAAQ,GAAG,OAAO,GAAG,EAAE,CAAC;QACxB,IAAI,QAAQ,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;QAExD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IACvC,CAAC;IAKD,cAAc,CAAC,UAAkB;QAC/B,IAAI,UAAU,IAAI,GAAG;YAAE,OAAO,yBAAyB,CAAC;QACxD,IAAI,UAAU,IAAI,GAAG;YAAE,OAAO,+BAA+B,CAAC;QAC9D,IAAI,UAAU,IAAI,GAAG;YAAE,OAAO,2BAA2B,CAAC;QAC1D,OAAO,6BAA6B,CAAC;IACvC,CAAC;IAKD,cAAc,CAAC,MAAc;QAC3B,MAAM,MAAM,GAA2B;YACrC,GAAG,EAAE,2BAA2B;YAChC,IAAI,EAAE,6BAA6B;YACnC,GAAG,EAAE,+BAA+B;YACpC,KAAK,EAAE,+BAA+B;YACtC,MAAM,EAAE,yBAAyB;SAClC,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,2BAA2B,CAAC;QAC9D,OAAO,8EAA8E,OAAO,KAAK,MAAM,SAAS,CAAC;IACnH,CAAC;IAKD,gBAAgB,CAAC,QAAgB;QAC/B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,kGAAkG,CAAC;QAC5G,CAAC;QACD,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,OAAO,kGAAkG,CAAC;QAC5G,CAAC;QACD,OAAO,mGAAmG,CAAC;IAC7G,CAAC;IAKD,gBAAgB,CAAC,KAAa;QAC5B,IAAI,KAAK,KAAK,OAAO;YAAE,OAAO,wCAAwC,CAAC;QACvE,IAAI,KAAK,KAAK,MAAM;YAClB,OAAO,iDAAiD,CAAC;QAC3D,OAAO,2CAA2C,CAAC;IACrD,CAAC;IAKD,sBAAsB,CAAC,EAAU;QAC/B,MAAM,MAAM,GAA2B;YACrC,GAAG,EAAE,2BAA2B;YAChC,GAAG,EAAE,+BAA+B;YACpC,GAAG,EAAE,yBAAyB;YAC9B,KAAK,EAAE,+BAA+B;SACvC,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,2BAA2B,CAAC;QAC1D,OAAO,wFAAwF,OAAO,KAAK,EAAE,SAAS,CAAC;IACzH,CAAC;IAKD,mBAAmB,CAAC,MAAc;QAChC,MAAM,MAAM,GAA2B;YACrC,GAAG,EAAE,6BAA6B;YAClC,IAAI,EAAE,yBAAyB;YAC/B,OAAO,EAAE,6BAA6B;YACtC,IAAI,EAAE,yBAAyB;SAChC,CAAC;QACF,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,2BAA2B,CAAC;QAC9D,OAAO,wFAAwF,OAAO,KAAK,MAAM,SAAS,CAAC;IAC7H,CAAC;CACF,CAAA;AArOY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;;GACA,WAAW,CAqOvB"}
|