nestjs-devtools 1.2.0 → 1.2.1

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.
@@ -4,7 +4,7 @@ export declare class DevtoolsController {
4
4
  private readonly devtoolsService;
5
5
  private readonly collectors;
6
6
  constructor(devtoolsService: DevtoolsService, collectors?: AbstractCollector[]);
7
- getProfiler(req: any): string;
7
+ getProfiler(): string;
8
8
  getToolbarData(): Record<string, unknown>;
9
9
  getHistory(): {
10
10
  id: string;
@@ -22,10 +22,8 @@ let DevtoolsController = class DevtoolsController {
22
22
  this.devtoolsService = devtoolsService;
23
23
  this.collectors = collectors;
24
24
  }
25
- getProfiler(req) {
26
- const protocol = req.headers['x-forwarded-proto'] || req.protocol;
27
- const base = protocol + '://' + req.get('host');
28
- return (0, profiler_1.PROFILER_PAGE)(base);
25
+ getProfiler() {
26
+ return (0, profiler_1.PROFILER_PAGE)();
29
27
  }
30
28
  getToolbarData() {
31
29
  const panels = {};
@@ -51,9 +49,8 @@ exports.DevtoolsController = DevtoolsController;
51
49
  __decorate([
52
50
  (0, common_1.Get)(),
53
51
  (0, common_1.Header)('content-type', 'text/html'),
54
- __param(0, (0, common_1.Req)()),
55
52
  __metadata("design:type", Function),
56
- __metadata("design:paramtypes", [Object]),
53
+ __metadata("design:paramtypes", []),
57
54
  __metadata("design:returntype", void 0)
58
55
  ], DevtoolsController.prototype, "getProfiler", null);
59
56
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"devtools.controller.js","sourceRoot":"","sources":["../devtools.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAqF;AACrF,yDAAqD;AAErD,uDAA6D;AAC7D,iDAAmD;AAG5C,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC7B,YACmB,eAAgC,EAGhC,aAAkC,EAAE;QAHpC,oBAAe,GAAf,eAAe,CAAiB;QAGhC,eAAU,GAAV,UAAU,CAA0B;IACpD,CAAC;IAIJ,WAAW,CAAQ,GAAQ;QACzB,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC;QAClE,MAAM,IAAI,GAAG,QAAQ,GAAG,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChD,OAAO,IAAA,wBAAa,EAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAGD,cAAc;QACZ,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,IAAI,CAAC;gBACH,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;YAC/C,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;YACvF,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAGD,UAAU;QACR,OAAO,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC;IAClD,CAAC;IAGD,gBAAgB,CAAC,EAAU;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;QAClD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC;IAClD,CAAC;CACF,CAAA;AAvCY,gDAAkB;AAU7B;IAFC,IAAA,YAAG,GAAE;IACL,IAAA,eAAM,EAAC,cAAc,EAAE,WAAW,CAAC;IACvB,WAAA,IAAA,YAAG,GAAE,CAAA;;;;qDAIjB;AAGD;IADC,IAAA,YAAG,EAAC,MAAM,CAAC;;;;wDAWX;AAGD;IADC,IAAA,YAAG,EAAC,SAAS,CAAC;;;;oDAGd;AAGD;IADC,IAAA,YAAG,EAAC,aAAa,CAAC;;;;0DAIlB;6BAtCU,kBAAkB;IAD9B,IAAA,mBAAU,EAAC,YAAY,CAAC;IAIpB,WAAA,IAAA,iBAAQ,GAAE,CAAA;IACV,WAAA,IAAA,eAAM,EAAC,0CAAwB,CAAC,CAAA;qCAFC,kCAAe;GAFxC,kBAAkB,CAuC9B"}
1
+ {"version":3,"file":"devtools.controller.js","sourceRoot":"","sources":["../devtools.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA2E;AAC3E,yDAAqD;AAErD,uDAA6D;AAC7D,iDAAmD;AAG5C,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC7B,YACmB,eAAgC,EAGhC,aAAkC,EAAE;QAHpC,oBAAe,GAAf,eAAe,CAAiB;QAGhC,eAAU,GAAV,UAAU,CAA0B;IACpD,CAAC;IAIJ,WAAW;QACT,OAAO,IAAA,wBAAa,GAAE,CAAC;IACzB,CAAC;IAGD,cAAc;QACZ,MAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACxC,IAAI,CAAC;gBACH,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;YAC/C,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC;YACvF,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAGD,UAAU;QACR,OAAO,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,CAAC;IAClD,CAAC;IAGD,gBAAgB,CAAC,EAAU;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC;QAClD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC;IAClD,CAAC;CACF,CAAA;AArCY,gDAAkB;AAU7B;IAFC,IAAA,YAAG,GAAE;IACL,IAAA,eAAM,EAAC,cAAc,EAAE,WAAW,CAAC;;;;qDAGnC;AAGD;IADC,IAAA,YAAG,EAAC,MAAM,CAAC;;;;wDAWX;AAGD;IADC,IAAA,YAAG,EAAC,SAAS,CAAC;;;;oDAGd;AAGD;IADC,IAAA,YAAG,EAAC,aAAa,CAAC;;;;0DAIlB;6BApCU,kBAAkB;IAD9B,IAAA,mBAAU,EAAC,YAAY,CAAC;IAIpB,WAAA,IAAA,iBAAQ,GAAE,CAAA;IACV,WAAA,IAAA,eAAM,EAAC,0CAAwB,CAAC,CAAA;qCAFC,kCAAe;GAFxC,kBAAkB,CAqC9B"}
@@ -23,7 +23,7 @@ let DevtoolsFilter = class DevtoolsFilter {
23
23
  const response = context.switchToHttp().getResponse();
24
24
  const contentType = response.getHeader('content-type') ?? '';
25
25
  if (typeof data === 'string' && contentType.includes('text/html')) {
26
- return data.replace('</body>', (0, template_1.TOOLBAR_TEMPLATE)('/__devtools/data', '/__devtools') + '</body>');
26
+ return data.replace('</body>', (0, template_1.TOOLBAR_TEMPLATE)() + '</body>');
27
27
  }
28
28
  return data;
29
29
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"devtools.filter.js","sourceRoot":"","sources":["../devtools.filter.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAKwB;AACxB,+BAAuC;AACvC,yDAAqD;AACrD,iDAAsD;AAG/C,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,YAA6B,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;IAAG,CAAC;IAEjE,SAAS,CAAC,OAAyB,EAAE,IAAiB;QACpD,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CACvB,IAAA,UAAG,EAAC,CAAC,IAAI,EAAE,EAAE;YACX,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,WAAW,EAAE,CAAC;YACtD,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAE7D,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBAClE,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAA,2BAAgB,EAAC,kBAAkB,EAAE,aAAa,CAAC,GAAG,SAAS,CAAC,CAAC;YAClG,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;CACF,CAAA;AAjBY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAEmC,kCAAe;GADlD,cAAc,CAiB1B"}
1
+ {"version":3,"file":"devtools.filter.js","sourceRoot":"","sources":["../devtools.filter.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAKwB;AACxB,+BAAuC;AACvC,yDAAqD;AACrD,iDAAsD;AAG/C,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,YAA6B,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;IAAG,CAAC;IAEjE,SAAS,CAAC,OAAyB,EAAE,IAAiB;QACpD,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CACvB,IAAA,UAAG,EAAC,CAAC,IAAI,EAAE,EAAE;YACX,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,WAAW,EAAE,CAAC;YACtD,MAAM,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAE7D,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;gBAClE,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAA,2BAAgB,GAAE,GAAG,SAAS,CAAC,CAAC;YACjE,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;CACF,CAAA;AAjBY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAEmC,kCAAe;GADlD,cAAc,CAiB1B"}
@@ -1 +1 @@
1
- export declare const PROFILER_PAGE: (baseUrl: string) => string;
1
+ export declare const PROFILER_PAGE: () => string;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PROFILER_PAGE = void 0;
4
- const PROFILER_PAGE = (baseUrl) => `<!DOCTYPE html>
4
+ const PROFILER_PAGE = () => `<!DOCTYPE html>
5
5
  <html lang="en">
6
6
  <head>
7
7
  <meta charset="UTF-8">
@@ -97,7 +97,7 @@ const PROFILER_PAGE = (baseUrl) => `<!DOCTYPE html>
97
97
  </div>
98
98
  <script>
99
99
  (function() {
100
- var BASE = '${baseUrl}';
100
+ var BASE = window.location.pathname.replace(/\/__devtools\/?$/, '');
101
101
  function escape(s) { return s==null?'':String(s).replace(/[&<>"]/g,function(m){return {'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;'}[m]}); }
102
102
 
103
103
  document.querySelectorAll('[data-tab]').forEach(function(btn){
@@ -168,7 +168,7 @@ const PROFILER_PAGE = (baseUrl) => `<!DOCTYPE html>
168
168
  }
169
169
 
170
170
  function loadDashboard() {
171
- fetch(BASE+'/__devtools/data').then(function(r){return r.json()}).then(function(d){
171
+ fetch(BASE + '/__devtools/data').then(function(r){return r.json()}).then(function(d){
172
172
  var grid = document.getElementById('panel-grid');
173
173
  grid.innerHTML = '';
174
174
  var icons = {request:'🌐',performance:'⚡',database:'🗄️',routes:'📋',logs:'📝'};
@@ -194,7 +194,7 @@ const PROFILER_PAGE = (baseUrl) => `<!DOCTYPE html>
194
194
  }
195
195
 
196
196
  function loadHistory() {
197
- fetch(BASE+'/__devtools/history').then(function(r){return r.json()}).then(function(rows){
197
+ fetch(BASE + '/__devtools/history').then(function(r){return r.json()}).then(function(rows){
198
198
  var tbody = document.getElementById('history-body');
199
199
  tbody.innerHTML = '';
200
200
  if (!rows || rows.length === 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"profiler.js","sourceRoot":"","sources":["../../toolbar/profiler.ts"],"names":[],"mappings":";;;AAAO,MAAM,aAAa,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAgGlC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA4Hf,CAAC;AA5NI,QAAA,aAAa,iBA4NjB"}
1
+ {"version":3,"file":"profiler.js","sourceRoot":"","sources":["../../toolbar/profiler.ts"],"names":[],"mappings":";;;AAAO,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA4N3B,CAAC;AA5NI,QAAA,aAAa,iBA4NjB"}
@@ -1 +1 @@
1
- export declare const TOOLBAR_TEMPLATE: (dataUrl: string, profilerUrl?: string) => string;
1
+ export declare const TOOLBAR_TEMPLATE: () => string;
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TOOLBAR_TEMPLATE = void 0;
4
- const TOOLBAR_TEMPLATE = (dataUrl, profilerUrl) => {
4
+ const TOOLBAR_TEMPLATE = () => {
5
5
  const id = '__nestDevtools';
6
6
  const uid = Math.random().toString(36).slice(2, 8);
7
- const profilerHref = profilerUrl || dataUrl.replace(/\/data$/, '');
8
7
  return `<script id="${id}">
9
8
  (function(){
10
9
  var D=document, B=D.body, C='__nestDt'+'${uid}';
10
+ var p = window.location.pathname.replace(/\\/[^\\/]*$/,'') + '/__devtools';
11
11
  var c=D.createElement('div'); c.id=C;
12
- c.innerHTML='<div style="position:fixed;bottom:0;left:0;z-index:99999;font-family:-apple-system,BlinkMacSystemFont,\'Segoe UI\',Roboto,sans-serif;font-size:12px;background:#1f2937;color:#f3f4f6;border-top:2px solid #3b82f6;width:100%;box-shadow:0 -4px 12px rgba(0,0,0,0.35)"><div style="display:flex;align-items:center;height:34px;padding:0 8px;gap:4px;overflow-x:auto;white-space:nowrap;scrollbar-width:none"><span style="font-weight:800;font-size:13px;color:#60a5fa;padding:0 10px 0 4px;letter-spacing:-0.5px">NDev</span><div id="'+C+'-bar"></div><a href="${profilerHref}" target="_blank" style="color:#6b7280;text-decoration:none;padding:4px 8px;font-size:11px;margin-left:auto" title="Open profiler">&#x25A3;</a><span id="'+C+'-toggle" style="color:#6b7280;cursor:pointer;padding:4px 8px;font-size:14px">&#x2039;</span></div><div id="'+C+'-panel" style="display:none;border-top:1px solid #374151;background:#111827;font-size:12px;line-height:1.5"></div></div>';
12
+ c.innerHTML='<div style="position:fixed;bottom:0;left:0;z-index:99999;font-family:-apple-system,BlinkMacSystemFont,\'Segoe UI\',Roboto,sans-serif;font-size:12px;background:#1f2937;color:#f3f4f6;border-top:2px solid #3b82f6;width:100%;box-shadow:0 -4px 12px rgba(0,0,0,0.35)"><div style="display:flex;align-items:center;height:34px;padding:0 8px;gap:4px;overflow-x:auto;white-space:nowrap;scrollbar-width:none"><span style="font-weight:800;font-size:13px;color:#60a5fa;padding:0 10px 0 4px;letter-spacing:-0.5px">NDev</span><div id="'+C+'-bar"></div><a href="'+p+'" target="_blank" style="color:#6b7280;text-decoration:none;padding:4px 8px;font-size:11px;margin-left:auto" title="Open profiler">&#x25A3;</a><span id="'+C+'-toggle" style="color:#6b7280;cursor:pointer;padding:4px 8px;font-size:14px">&#x2039;</span></div><div id="'+C+'-panel" style="display:none;border-top:1px solid #374151;background:#111827;font-size:12px;line-height:1.5"></div></div>';
13
13
  B.appendChild(c);
14
14
 
15
15
  var lastActive=null;
@@ -65,7 +65,8 @@ const TOOLBAR_TEMPLATE = (dataUrl, profilerUrl) => {
65
65
  return String(s).replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quot;');
66
66
  }
67
67
 
68
- fetch('${dataUrl}').then(function(r){return r.json()}).then(function(d){
68
+ var furl = p + '/data';
69
+ fetch(furl).then(function(r){return r.json()}).then(function(d){
69
70
  var bar=D.getElementById(C+'-bar');
70
71
  var panels=[];
71
72
  if(d.request) panels.push(d.request);
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../toolbar/template.ts"],"names":[],"mappings":";;;AAAO,MAAM,gBAAgB,GAAG,CAAC,OAAe,EAAE,WAAoB,EAAE,EAAE;IACxE,MAAM,EAAE,GAAG,gBAAgB,CAAC;IAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAEnE,OAAO,eAAe,EAAE;;4CAEkB,GAAG;;kjBAEmgB,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAwDnjB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;UA4BR,CAAC;AACX,CAAC,CAAC;AA9FW,QAAA,gBAAgB,oBA8F3B"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../toolbar/template.ts"],"names":[],"mappings":";;;AAAO,MAAM,gBAAgB,GAAG,GAAG,EAAE;IACnC,MAAM,EAAE,GAAG,gBAAgB,CAAC;IAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEnD,OAAO,eAAe,EAAE;;4CAEkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAwFrC,CAAC;AACX,CAAC,CAAC;AA/FW,QAAA,gBAAgB,oBA+F3B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nestjs-devtools",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "description": "Symfony-style debug toolbar for NestJS applications",
5
5
  "keywords": [
6
6
  "nestjs",