devtools-nestjs 2.0.5 → 2.1.0

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 (44) hide show
  1. package/dist/adapters/typeorm-setup.d.ts +10 -0
  2. package/dist/adapters/typeorm-setup.d.ts.map +1 -0
  3. package/dist/adapters/typeorm-setup.js +77 -0
  4. package/dist/adapters/typeorm-setup.js.map +1 -0
  5. package/dist/interceptors/toolbar.interceptor.d.ts.map +1 -1
  6. package/dist/interceptors/toolbar.interceptor.js +1 -1
  7. package/dist/interceptors/toolbar.interceptor.js.map +1 -1
  8. package/dist/profiler.module.d.ts.map +1 -1
  9. package/dist/profiler.module.js +4 -0
  10. package/dist/profiler.module.js.map +1 -1
  11. package/dist/profiler.types.d.ts +1 -0
  12. package/dist/profiler.types.d.ts.map +1 -1
  13. package/dist/views/icons/icons.d.ts +2 -0
  14. package/dist/views/icons/icons.d.ts.map +1 -0
  15. package/dist/views/icons/icons.js +20 -0
  16. package/dist/views/icons/icons.js.map +1 -0
  17. package/dist/views/layout.d.ts +1 -0
  18. package/dist/views/layout.d.ts.map +1 -1
  19. package/dist/views/layout.js +112 -88
  20. package/dist/views/layout.js.map +1 -1
  21. package/dist/views/panels/cache-panel.d.ts.map +1 -1
  22. package/dist/views/panels/cache-panel.js +14 -14
  23. package/dist/views/panels/cache-panel.js.map +1 -1
  24. package/dist/views/panels/database-panel.d.ts.map +1 -1
  25. package/dist/views/panels/database-panel.js +16 -15
  26. package/dist/views/panels/database-panel.js.map +1 -1
  27. package/dist/views/panels/exception-panel.d.ts.map +1 -1
  28. package/dist/views/panels/exception-panel.js +5 -10
  29. package/dist/views/panels/exception-panel.js.map +1 -1
  30. package/dist/views/panels/log-panel.d.ts.map +1 -1
  31. package/dist/views/panels/log-panel.js +25 -28
  32. package/dist/views/panels/log-panel.js.map +1 -1
  33. package/dist/views/panels/request-panel.js +3 -3
  34. package/dist/views/panels/request-panel.js.map +1 -1
  35. package/dist/views/panels/route-panel.js +3 -3
  36. package/dist/views/panels/route-panel.js.map +1 -1
  37. package/dist/views/panels/time-panel.d.ts.map +1 -1
  38. package/dist/views/panels/time-panel.js +13 -10
  39. package/dist/views/panels/time-panel.js.map +1 -1
  40. package/dist/views/toolbar.d.ts +4 -3
  41. package/dist/views/toolbar.d.ts.map +1 -1
  42. package/dist/views/toolbar.js +87 -114
  43. package/dist/views/toolbar.js.map +1 -1
  44. package/package.json +2 -1
@@ -1,162 +1,135 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ToolbarRenderer = void 0;
4
+ const icons_1 = require("./icons/icons");
4
5
  class ToolbarRenderer {
5
- render(token, toolbarPath, registry) {
6
+ render(token, toolbarPath, registry, method, statusCode, duration, memory) {
6
7
  const collectors = registry.getAll();
7
8
  const blocks = collectors
8
9
  .map(c => {
9
- const icon = this.renderIcon(c.getIcon());
10
- const name = c.name;
11
10
  const data = c.getData();
12
- const textPieces = this.renderTextPieces(name, data);
13
- const statusClass = this.getStatusClass(data);
11
+ const icon = this.renderBlockIcon(c.name, data, c.getIcon());
12
+ const text = this.renderBlockText(c.name, data);
13
+ const statusClass = this.getStatusClass(c.name, data);
14
14
  return `
15
- <div class="sf-toolbar-block sf-toolbar-block-${name} sf-toolbar-status-${statusClass}">
16
- <a href="${toolbarPath}/${token}?panel=${name}" target="_profiler">
17
- <div class="sf-toolbar-icon">${icon}</div>
15
+ <div class="sf-toolbar-block sf-toolbar-block-${c.name}">
16
+ <a href="${toolbarPath}/${token}?panel=${c.name}" target="_profiler">
17
+ <div class="sf-toolbar-icon">${icon}${text}</div>
18
18
  </a>
19
- <div class="sf-toolbar-info">${textPieces}</div>
19
+ <div class="sf-toolbar-info">${this.renderBlockInfo(c.name, data)}</div>
20
20
  </div>`;
21
21
  })
22
22
  .join('');
23
23
  return `
24
24
  <style>
25
- .sf-toolbar { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; position: fixed; bottom: 0; left: 0; right: 0; z-index: 99999; background: #1a1a2e; color: #e0e0e0; font-size: 13px; display: flex; align-items: stretch; box-shadow: 0 -2px 10px rgba(0,0,0,0.3); min-height: 36px; }
26
- .sf-toolbar-block { display: flex; align-items: stretch; border-right: 1px solid #2a2a3e; position: relative; cursor: pointer; }
27
- .sf-toolbar-block:hover { background: #252540; }
28
- .sf-toolbar-block a { display: flex; align-items: center; text-decoration: none; color: #e0e0e0; padding: 4px 10px; }
29
- .sf-toolbar-icon { display: flex; align-items: center; gap: 5px; white-space: nowrap; }
30
- .sf-toolbar-icon svg { width: 18px; height: 18px; fill: currentColor; }
31
- .sf-toolbar-info { display: none; position: absolute; bottom: 100%; left: 0; background: #1a1a2e; border: 1px solid #2a2a3e; padding: 8px; min-width: 200px; white-space: nowrap; box-shadow: 0 -2px 10px rgba(0,0,0,0.3); }
32
- .sf-toolbar-block:hover .sf-toolbar-info { display: block; }
33
- .sf-toolbar-info-piece { padding: 4px 8px; display: flex; gap: 8px; }
34
- .sf-toolbar-info-piece b { min-width: 80px; color: #888; }
35
- .sf-toolbar-status-green { color: #4caf50; }
36
- .sf-toolbar-status-yellow { color: #ff9800; }
37
- .sf-toolbar-status-red { color: #f44336; }
38
- .sf-toolbar-status-default { color: #e0e0e0; }
39
- .sf-toolbar-token { padding: 4px 10px; display: flex; align-items: center; margin-left: auto; font-size: 11px; color: #666; }
40
- .sf-toolbar-token strong { color: #999; margin: 0 4px; }
41
- .sf-toolbar-value { font-weight: 600; }
42
- .sf-toolbar-label { color: #888; font-size: 11px; }
25
+ .sf-toolbarreset{--sf-bg:#1a1a2e;--sf-bg-hover:#252540;--sf-border:#2a2a3e;--sf-text:#e0e0e0;--sf-text-muted:#888;--sf-font:system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;--sf-font-mono:'JetBrains Mono','Fira Code',ui-monospace,monospace;--sf-green:#4caf50;--sf-yellow:#ff9800;--sf-red:#f44336;--sf-blue:#4fc3f7;--sf-white:#fff;all:initial;direction:ltr}
26
+ .sf-toolbarreset *{box-sizing:content-box;vertical-align:baseline;letter-spacing:normal}
27
+ .sf-toolbarreset{font:11px var(--sf-font);background:var(--sf-bg);color:var(--sf-text);position:fixed;bottom:0;left:0;right:0;z-index:99999;display:flex;align-items:stretch;box-shadow:inset 0 1px 0 var(--sf-border),0 -1px 8px rgba(0,0,0,.5);padding:0 4px;min-height:36px;text-transform:none;direction:ltr}
28
+ .sf-toolbar-block{display:flex;align-items:stretch;position:relative;cursor:default;flex-shrink:0}
29
+ .sf-toolbar-block a{display:flex;align-items:center;text-decoration:none;color:var(--sf-text);padding:0 10px;white-space:nowrap;transition:background .15s;font-size:11px;line-height:36px;height:36px}
30
+ .sf-toolbar-block a:hover{background:var(--sf-bg-hover)}
31
+ .sf-toolbar-icon{display:flex;align-items:center;gap:6px}
32
+ .sf-toolbar-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;flex-shrink:0}
33
+ .sf-toolbar-icon .sf-toolbar-value{font-weight:600;font-size:12px;color:var(--sf-white);margin-right:2px}
34
+ .sf-toolbar-icon .sf-toolbar-label{color:var(--sf-text-muted);font-size:11px}
35
+ .sf-toolbar-info{display:none;position:absolute;bottom:100%;left:-1px;background:var(--sf-bg);border:1px solid var(--sf-border);border-bottom:none;min-width:220px;white-space:nowrap;box-shadow:0 -4px 12px rgba(0,0,0,.4);z-index:99998}
36
+ .sf-toolbar-block:hover .sf-toolbar-info{display:block}
37
+ .sf-toolbar-info-piece{padding:6px 12px;display:flex;gap:12px;font-size:12px;line-height:1.5;border-bottom:1px solid var(--sf-border)}
38
+ .sf-toolbar-info-piece:last-child{border-bottom:none}
39
+ .sf-toolbar-info-piece b{min-width:80px;color:var(--sf-text-muted);font-weight:500}
40
+ .sf-toolbar-info-piece .sf-toolbar-status{font-weight:600}
41
+ .sf-toolbar-status-green{color:var(--sf-green)}
42
+ .sf-toolbar-status-yellow{color:var(--sf-yellow)}
43
+ .sf-toolbar-status-red{color:var(--sf-red)}
44
+ .sf-toolbar-status-default{color:var(--sf-text)}
45
+ .sf-toolbar-token{margin-left:auto;padding:0 12px;display:flex;align-items:center;font-size:10px;color:var(--sf-text-muted);white-space:nowrap;gap:4px}
46
+ .sf-toolbar-token strong{color:var(--sf-text);font-weight:600}
47
+ .sf-toolbar-spacer{flex:1}
48
+ @media(max-width:768px){.sf-toolbar-icon .sf-toolbar-label,.sf-toolbar-icon .sf-toolbar-value{display:none}}
43
49
  </style>
44
- <div class="sf-toolbar" id="sfwdt${token}">
50
+ <div class="sf-toolbarreset" id="sfwdt${token}">
45
51
  ${blocks}
46
- <div class="sf-toolbar-token">TOKEN: <strong>${token}</strong></div>
52
+ <div class="sf-toolbar-spacer"></div>
53
+ <div class="sf-toolbar-token">
54
+ ${method || ''} ${statusCode ? `<span class="sf-toolbar-status-${statusCode >= 400 ? 'red' : 'green'}">${statusCode}</span>` : ''}
55
+ ${duration ? `<span>${duration}ms</span>` : ''}
56
+ ${memory ? `<span>${memory}MB</span>` : ''}
57
+ <strong>${token}</strong>
58
+ </div>
47
59
  </div>
48
60
  <script>
49
- (function() {
50
- var token = '${token}';
51
- var toolbarUrl = '${toolbarPath}';
52
- var toolbar = document.getElementById('sfwdt' + token);
53
-
54
- var xhr = new XMLHttpRequest();
55
- xhr.open('GET', toolbarUrl + '/' + token, true);
56
- xhr.onload = function() {
57
- if (xhr.status === 200) {
58
- // toolbar loaded
59
- }
60
- };
61
- xhr.send();
62
-
63
- var originalFetch = window.fetch;
64
- window.fetch = function(url, opts) {
65
- return originalFetch.apply(this, arguments).then(function(response) {
66
- var dt = response.headers.get('X-Debug-Token');
67
- if (dt && dt !== token) {
68
- token = dt;
69
- var wdt = document.getElementById('sfwdt' + dt);
70
- if (!wdt) {
71
- var div = document.querySelector('.sf-toolbar');
72
- if (div) div.parentNode.removeChild(div);
73
- setTimeout(function() {
74
- var xhr2 = new XMLHttpRequest();
75
- xhr2.open('GET', toolbarUrl + '/' + dt, true);
76
- xhr2.send();
77
- }, 100);
78
- }
79
- }
80
- return response;
81
- });
82
- };
83
-
84
- var origSend = XMLHttpRequest.prototype.send;
85
- XMLHttpRequest.prototype.send = function(body) {
86
- this.addEventListener('load', function() {
87
- var dt = this.getResponseHeader('X-Debug-Token');
88
- if (dt && dt !== token) {
89
- token = dt;
90
- var wdt = document.getElementById('sfwdt' + dt);
91
- if (!wdt) {
92
- var div = document.querySelector('.sf-toolbar');
93
- if (div) div.parentNode.removeChild(div);
94
- setTimeout(function() {
95
- var xhr2 = new XMLHttpRequest();
96
- xhr2.open('GET', toolbarUrl + '/' + dt, true);
97
- xhr2.send();
98
- }, 100);
99
- }
100
- }
101
- });
102
- return origSend.call(this, body);
103
- };
104
- })();
61
+ (function(){var t='${token}',p='${toolbarPath}';
62
+ var o=XMLHttpRequest.prototype.send;XMLHttpRequest.prototype.send=function(b){this.addEventListener('load',function(){var d=this.getResponseHeader('X-Debug-Token');if(d&&d!==t){t=d;var e=document.querySelector('.sf-toolbarreset');if(e)e.remove();var x=new XMLHttpRequest;x.open('GET',p+'/'+d,true);x.send()}});return o.call(this,b)};
63
+ var f=window.fetch;window.fetch=function(u,o){return f.apply(this,arguments).then(function(r){var d=r.headers.get('X-Debug-Token');if(d&&d!==t){t=d;var e=document.querySelector('.sf-toolbarreset');if(e)e.remove();setTimeout(function(){var x=new XMLHttpRequest;x.open('GET',p+'/'+d,true);x.send()},100)}return r})};})();
105
64
  </script>`;
106
65
  }
107
- renderIcon(iconName) {
108
- const icons = {
109
- request: `<svg viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V6h16v12zM6 10h2v2H6v-2zm0 4h8v2H6v-2zm10 0h2v2h-2v-2zm-6-4h8v2h-8v-2z"/></svg>`,
110
- time: `<svg viewBox="0 0 24 24"><path d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z"/></svg>`,
111
- exception: `<svg viewBox="0 0 24 24"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>`,
112
- route: `<svg viewBox="0 0 24 24"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"/></svg>`,
113
- log: `<svg viewBox="0 0 24 24"><path d="M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H5.17L4 17.17V4h16v12zM7 9h10v2H7V9zm0 3h7v2H7v-2z"/></svg>`,
114
- database: `<svg viewBox="0 0 24 24"><path d="M12 3C7.58 3 4 4.79 4 7v10c0 2.21 3.58 4 8 4s8-1.79 8-4V7c0-2.21-3.58-4-8-4zm6 14c0 1.1-2.69 2-6 2s-6-.9-6-2v-2.23c1.43.83 3.58 1.23 6 1.23s4.57-.4 6-1.23V17zm0-4c0 1.1-2.69 2-6 2s-6-.9-6-2v-2.23c1.43.83 3.58 1.23 6 1.23s4.57-.4 6-1.23V13zm0-4c0 1.1-2.69 2-6 2s-6-.9-6-2V7c0-1.1 2.69-2 6-2s6 .9 6 2v2z"/></svg>`,
115
- cache: `<svg viewBox="0 0 24 24"><path d="M19 10V8c0-1.1-.9-2-2-2h-2V4c0-1.1-.9-2-2-2h-2c-1.1 0-2 .9-2 2v2H7c-1.1 0-2 .9-2 2v2c-1.1 0-2 .9-2 2v2c0 1.1.9 2 2 2v2c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2v-2c1.1 0 2-.9 2-2v-2c0-1.1-.9-2-2-2zm-6-6h2v2h-2V4zm0 4h2v2h-2V8zM7 8h2v2H7V8zm0 4h2v2H7v-2zm10 8H7v-2h10v2zm0-4H7v-2h10v2zm0-4H7v-2h10v2z"/></svg>`,
116
- };
117
- return icons[iconName] || icons.request;
66
+ renderBlockIcon(name, data, iconName) {
67
+ return icons_1.ICONS[name] || icons_1.ICONS[iconName] || icons_1.ICONS.request;
118
68
  }
119
- renderTextPieces(name, data) {
69
+ renderBlockText(name, data) {
70
+ switch (name) {
71
+ case 'request':
72
+ return `<span class="sf-toolbar-value">${data.method || 'GET'}</span><span class="sf-toolbar-label">${data.statusCode || 200}</span>`;
73
+ case 'time':
74
+ return `<span class="sf-toolbar-value">${data.totalDuration || 0}</span><span class="sf-toolbar-label">ms</span>`;
75
+ case 'exception':
76
+ return data.hasException
77
+ ? `<span class="sf-toolbar-value sf-toolbar-status-red">ERR</span>`
78
+ : `<span class="sf-toolbar-value sf-toolbar-status-green">OK</span>`;
79
+ case 'route':
80
+ return `<span class="sf-toolbar-label">${data.route?.split('/').pop() || '/'}</span>`;
81
+ case 'log':
82
+ return `<span class="sf-toolbar-value">${data.totalLogs || 0}</span><span class="sf-toolbar-label">logs</span>`;
83
+ case 'database':
84
+ return `<span class="sf-toolbar-value">${data.totalQueries || 0}</span><span class="sf-toolbar-label">db</span>`;
85
+ case 'cache':
86
+ return `<span class="sf-toolbar-value">${data.totalOperations || 0}</span><span class="sf-toolbar-label">cache</span>`;
87
+ default:
88
+ return `<span class="sf-toolbar-label">${name}</span>`;
89
+ }
90
+ }
91
+ renderBlockInfo(name, data) {
120
92
  switch (name) {
121
93
  case 'request':
122
94
  return `
123
- <div class="sf-toolbar-info-piece"><b>Method</b><span>${data.method || 'GET'}</span></div>
124
- <div class="sf-toolbar-info-piece"><b>Status</b><span>${data.statusCode || 200}</span></div>
125
- <div class="sf-toolbar-info-piece"><b>URL</b><span style="max-width:300px;overflow:hidden;text-overflow:ellipsis">${data.path || '/'}</span></div>
95
+ <div class="sf-toolbar-info-piece"><b>Method</b><span class="sf-toolbar-status">${data.method || 'GET'}</span></div>
96
+ <div class="sf-toolbar-info-piece"><b>Status</b><span class="sf-toolbar-status-${data.statusCode >= 400 ? 'red' : 'green'}">${data.statusCode || 200}</span></div>
97
+ <div class="sf-toolbar-info-piece"><b>URL</b><span style="max-width:350px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap">${data.path || '/'}</span></div>
126
98
  <div class="sf-toolbar-info-piece"><b>IP</b><span>${data.ip || '-'}</span></div>`;
127
99
  case 'time':
128
100
  return `
129
- <div class="sf-toolbar-info-piece"><b>Duration</b><span>${data.totalDuration || 0} ms</span></div>
130
- <div class="sf-toolbar-info-piece"><b>Memory</b><span>${data.peakMemory || 0} MB</span></div>`;
101
+ <div class="sf-toolbar-info-piece"><b>Duration</b><span class="sf-toolbar-status">${data.totalDuration || 0} ms</span></div>
102
+ <div class="sf-toolbar-info-piece"><b>Peak Memory</b><span>${data.peakMemory || 0} MB</span></div>`;
131
103
  case 'exception':
132
104
  if (data.hasException) {
133
- return `<div class="sf-toolbar-info-piece"><b>Error</b><span style="color:#f44336">${data.message || 'Unknown'}</span></div>`;
105
+ return `<div class="sf-toolbar-info-piece"><b>Error</b><span class="sf-toolbar-status-red">${data.message || 'Unknown'}</span></div>`;
134
106
  }
135
- return `<div class="sf-toolbar-info-piece"><b>Errors</b><span>0</span></div>`;
107
+ return `<div class="sf-toolbar-info-piece"><b>Errors</b><span class="sf-toolbar-status-green">0</span></div>`;
136
108
  case 'route':
137
109
  return `
138
110
  <div class="sf-toolbar-info-piece"><b>Route</b><span>${data.route || '/'}</span></div>
139
111
  <div class="sf-toolbar-info-piece"><b>Controller</b><span>${data.controller || 'unknown'}</span></div>`;
140
112
  case 'log':
141
- return `<div class="sf-toolbar-info-piece"><b>Logs</b><span>${data.totalLogs || 0} total</span></div>`;
113
+ return `
114
+ <div class="sf-toolbar-info-piece"><b>Total Logs</b><span class="sf-toolbar-status">${data.totalLogs || 0}</span></div>
115
+ ${data.logCounts ? Object.entries(data.logCounts).map(([level, count]) => `<div class="sf-toolbar-info-piece"><b>${level}</b><span>${count}</span></div>`).join('') : ''}`;
142
116
  case 'database':
143
117
  return `
144
- <div class="sf-toolbar-info-piece"><b>Queries</b><span>${data.totalQueries || 0}</span></div>
145
- <div class="sf-toolbar-info-piece"><b>Duration</b><span>${data.totalDuration || 0} ms</span></div>`;
118
+ <div class="sf-toolbar-info-piece"><b>Total Queries</b><span class="sf-toolbar-status">${data.totalQueries || 0}</span></div>
119
+ <div class="sf-toolbar-info-piece"><b>Total Time</b><span>${data.totalDuration || 0} ms</span></div>
120
+ <div class="sf-toolbar-info-piece"><b>Average</b><span>${data.averageDuration || 0} ms</span></div>`;
146
121
  case 'cache':
147
122
  return `
148
- <div class="sf-toolbar-info-piece"><b>Operations</b><span>${data.totalOperations || 0}</span></div>
149
- <div class="sf-toolbar-info-piece"><b>Hit rate</b><span>${data.hitRate || 0}%</span></div>`;
123
+ <div class="sf-toolbar-info-piece"><b>Total Ops</b><span class="sf-toolbar-status">${data.totalOperations || 0}</span></div>
124
+ <div class="sf-toolbar-info-piece"><b>Hit Rate</b><span class="sf-toolbar-status-${data.hitRate > 80 ? 'green' : data.hitRate > 50 ? 'yellow' : 'default'}">${data.hitRate || 0}%</span></div>`;
150
125
  default:
151
126
  return `<div class="sf-toolbar-info-piece"><b>Data</b><span>collected</span></div>`;
152
127
  }
153
128
  }
154
- getStatusClass(data) {
155
- const exception = data.hasException;
156
- const statusCode = data.statusCode;
157
- if (exception)
129
+ getStatusClass(name, data) {
130
+ if (name === 'exception' && data.hasException)
158
131
  return 'red';
159
- if (statusCode && statusCode >= 400)
132
+ if (name === 'request' && data.statusCode >= 400)
160
133
  return 'yellow';
161
134
  return 'green';
162
135
  }
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar.js","sourceRoot":"","sources":["../../src/views/toolbar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toolbar.js","sourceRoot":"","sources":["../../src/views/toolbar.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "devtools-nestjs",
3
- "version": "2.0.5",
3
+ "version": "2.1.0",
4
4
  "description": "A development tool for NestJS that gives detailed profiling information about request execution — inspired by Symfony's WebProfilerBundle",
5
5
  "keywords": [
6
6
  "nestjs",
@@ -32,6 +32,7 @@
32
32
  "@nestjs/core": "^11.0.0",
33
33
  "@types/node": "^22.0.0",
34
34
  "rxjs": "^7.8.0",
35
+ "typeorm": "^1.1.0",
35
36
  "typescript": "^5.5.0"
36
37
  }
37
38
  }