nestjs-profiler 1.0.10 → 1.0.11

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 (105) hide show
  1. package/{dist/libs/nestjs-profiler/analyzers → analyzers}/explain-analyzer.js +3 -1
  2. package/analyzers/explain-analyzer.js.map +1 -0
  3. package/{dist/libs/nestjs-profiler/collectors → collectors}/cache-collector.js +1 -4
  4. package/collectors/cache-collector.js.map +1 -0
  5. package/{dist/libs/nestjs-profiler/collectors → collectors}/log-collector.js +1 -3
  6. package/collectors/log-collector.js.map +1 -0
  7. package/{dist/libs/nestjs-profiler/collectors → collectors}/mongo-collector.js +8 -11
  8. package/collectors/mongo-collector.js.map +1 -0
  9. package/{dist/libs/nestjs-profiler/collectors → collectors}/mysql-collector.js +1 -4
  10. package/collectors/mysql-collector.js.map +1 -0
  11. package/{dist/libs/nestjs-profiler/collectors → collectors}/postgres-collector.js +1 -5
  12. package/collectors/postgres-collector.js.map +1 -0
  13. package/{dist/libs/nestjs-profiler/controllers → controllers}/profiler.controller.js +0 -5
  14. package/controllers/profiler.controller.js.map +1 -0
  15. package/{dist/libs/nestjs-profiler/interceptors → interceptors}/request-profiler.interceptor.js +1 -2
  16. package/interceptors/request-profiler.interceptor.js.map +1 -0
  17. package/package.json +43 -130
  18. package/{dist/libs/nestjs-profiler/profiler-logger.js → profiler-logger.js} +0 -1
  19. package/profiler-logger.js.map +1 -0
  20. package/{dist/libs/nestjs-profiler/services → services}/entity-explorer.service.js +3 -2
  21. package/services/entity-explorer.service.js.map +1 -0
  22. package/{dist/libs/nestjs-profiler/services → services}/profiler.service.js +2 -4
  23. package/services/profiler.service.js.map +1 -0
  24. package/{dist/libs/nestjs-profiler/services → services}/route-explorer.service.js +3 -2
  25. package/services/route-explorer.service.js.map +1 -0
  26. package/{dist/libs/nestjs-profiler/services → services}/template-builder.service.js +0 -1
  27. package/services/template-builder.service.js.map +1 -0
  28. package/{dist/libs/nestjs-profiler/services → services}/view.service.js +0 -1
  29. package/services/view.service.js.map +1 -0
  30. package/{dist/libs/nestjs-profiler/storage → storage}/in-memory-profiler-storage.js +4 -2
  31. package/storage/in-memory-profiler-storage.js.map +1 -0
  32. package/dist/libs/nestjs-profiler/analyzers/explain-analyzer.js.map +0 -1
  33. package/dist/libs/nestjs-profiler/collectors/cache-collector.js.map +0 -1
  34. package/dist/libs/nestjs-profiler/collectors/log-collector.js.map +0 -1
  35. package/dist/libs/nestjs-profiler/collectors/mongo-collector.js.map +0 -1
  36. package/dist/libs/nestjs-profiler/collectors/mysql-collector.js.map +0 -1
  37. package/dist/libs/nestjs-profiler/collectors/postgres-collector.js.map +0 -1
  38. package/dist/libs/nestjs-profiler/controllers/profiler.controller.js.map +0 -1
  39. package/dist/libs/nestjs-profiler/interceptors/request-profiler.interceptor.js.map +0 -1
  40. package/dist/libs/nestjs-profiler/package.json +0 -38
  41. package/dist/libs/nestjs-profiler/profiler-logger.js.map +0 -1
  42. package/dist/libs/nestjs-profiler/services/entity-explorer.service.js.map +0 -1
  43. package/dist/libs/nestjs-profiler/services/profiler.service.js.map +0 -1
  44. package/dist/libs/nestjs-profiler/services/route-explorer.service.js.map +0 -1
  45. package/dist/libs/nestjs-profiler/services/template-builder.service.js.map +0 -1
  46. package/dist/libs/nestjs-profiler/services/view.service.js.map +0 -1
  47. package/dist/libs/nestjs-profiler/src/views/cache.html +0 -50
  48. package/dist/libs/nestjs-profiler/src/views/dashboard.html +0 -73
  49. package/dist/libs/nestjs-profiler/src/views/detail.html +0 -66
  50. package/dist/libs/nestjs-profiler/src/views/entities.html +0 -76
  51. package/dist/libs/nestjs-profiler/src/views/js/dashboard.js +0 -24
  52. package/dist/libs/nestjs-profiler/src/views/js/entities.js +0 -37
  53. package/dist/libs/nestjs-profiler/src/views/js/layout-config.js +0 -15
  54. package/dist/libs/nestjs-profiler/src/views/js/layout.js +0 -143
  55. package/dist/libs/nestjs-profiler/src/views/js/queries.js +0 -28
  56. package/dist/libs/nestjs-profiler/src/views/layout.html +0 -252
  57. package/dist/libs/nestjs-profiler/src/views/logs.html +0 -37
  58. package/dist/libs/nestjs-profiler/src/views/not_found.html +0 -15
  59. package/dist/libs/nestjs-profiler/src/views/partials/cache_row.html +0 -20
  60. package/dist/libs/nestjs-profiler/src/views/partials/detail_query_row.html +0 -33
  61. package/dist/libs/nestjs-profiler/src/views/partials/entity_row.html +0 -39
  62. package/dist/libs/nestjs-profiler/src/views/partials/log_row.html +0 -19
  63. package/dist/libs/nestjs-profiler/src/views/partials/metadata_sidebar.html +0 -27
  64. package/dist/libs/nestjs-profiler/src/views/partials/pagination.html +0 -9
  65. package/dist/libs/nestjs-profiler/src/views/partials/query_row.html +0 -34
  66. package/dist/libs/nestjs-profiler/src/views/partials/request_row.html +0 -25
  67. package/dist/libs/nestjs-profiler/src/views/partials/route_row.html +0 -12
  68. package/dist/libs/nestjs-profiler/src/views/queries.html +0 -65
  69. package/dist/libs/nestjs-profiler/src/views/routes.html +0 -41
  70. package/dist/libs/nestjs-profiler/storage/in-memory-profiler-storage.js.map +0 -1
  71. /package/{dist/libs/nestjs-profiler/analyzers → analyzers}/explain-analyzer.d.ts +0 -0
  72. /package/{dist/libs/nestjs-profiler/collectors → collectors}/cache-collector.d.ts +0 -0
  73. /package/{dist/libs/nestjs-profiler/collectors → collectors}/log-collector.d.ts +0 -0
  74. /package/{dist/libs/nestjs-profiler/collectors → collectors}/mongo-collector.d.ts +0 -0
  75. /package/{dist/libs/nestjs-profiler/collectors → collectors}/mysql-collector.d.ts +0 -0
  76. /package/{dist/libs/nestjs-profiler/collectors → collectors}/postgres-collector.d.ts +0 -0
  77. /package/{dist/libs/nestjs-profiler/common → common}/profiler-options.interface.d.ts +0 -0
  78. /package/{dist/libs/nestjs-profiler/common → common}/profiler-options.interface.js +0 -0
  79. /package/{dist/libs/nestjs-profiler/common → common}/profiler-options.interface.js.map +0 -0
  80. /package/{dist/libs/nestjs-profiler/common → common}/profiler.model.d.ts +0 -0
  81. /package/{dist/libs/nestjs-profiler/common → common}/profiler.model.js +0 -0
  82. /package/{dist/libs/nestjs-profiler/common → common}/profiler.model.js.map +0 -0
  83. /package/{dist/libs/nestjs-profiler/controllers → controllers}/profiler.controller.d.ts +0 -0
  84. /package/{dist/libs/nestjs-profiler/index.d.ts → index.d.ts} +0 -0
  85. /package/{dist/libs/nestjs-profiler/index.js → index.js} +0 -0
  86. /package/{dist/libs/nestjs-profiler/index.js.map → index.js.map} +0 -0
  87. /package/{dist/libs/nestjs-profiler/interceptors → interceptors}/request-profiler.interceptor.d.ts +0 -0
  88. /package/{dist/libs/nestjs-profiler/middleware → middleware}/profiler.middleware.d.ts +0 -0
  89. /package/{dist/libs/nestjs-profiler/middleware → middleware}/profiler.middleware.js +0 -0
  90. /package/{dist/libs/nestjs-profiler/middleware → middleware}/profiler.middleware.js.map +0 -0
  91. /package/{dist/libs/nestjs-profiler/profiler-logger.d.ts → profiler-logger.d.ts} +0 -0
  92. /package/{dist/libs/nestjs-profiler/profiler.module.d.ts → profiler.module.d.ts} +0 -0
  93. /package/{dist/libs/nestjs-profiler/profiler.module.js → profiler.module.js} +0 -0
  94. /package/{dist/libs/nestjs-profiler/profiler.module.js.map → profiler.module.js.map} +0 -0
  95. /package/{dist/libs/nestjs-profiler/services → services}/entity-explorer.service.d.ts +0 -0
  96. /package/{dist/libs/nestjs-profiler/services → services}/profiler.service.d.ts +0 -0
  97. /package/{dist/libs/nestjs-profiler/services → services}/route-explorer.service.d.ts +0 -0
  98. /package/{dist/libs/nestjs-profiler/services → services}/template-builder.service.d.ts +0 -0
  99. /package/{dist/libs/nestjs-profiler/services → services}/view.service.d.ts +0 -0
  100. /package/{dist/libs/nestjs-profiler/src → src}/assets/favicon.ico +0 -0
  101. /package/{dist/libs/nestjs-profiler/src → src}/assets/logo.png +0 -0
  102. /package/{dist/libs/nestjs-profiler/storage → storage}/in-memory-profiler-storage.d.ts +0 -0
  103. /package/{dist/libs/nestjs-profiler/storage → storage}/profiler-storage.interface.d.ts +0 -0
  104. /package/{dist/libs/nestjs-profiler/storage → storage}/profiler-storage.interface.js +0 -0
  105. /package/{dist/libs/nestjs-profiler/storage → storage}/profiler-storage.interface.js.map +0 -0
@@ -1,34 +0,0 @@
1
- <tr class="hover:bg-gray-50 border-b border-gray-100">
2
- <td class="p-4 align-middle w-1/2">
3
- <details class="group">
4
- <summary
5
- class="cursor-pointer font-medium text-gray-700 hover:text-indigo-600 flex items-center outline-none list-none">
6
- <svg class="w-4 h-4 mr-2 text-gray-400 group-open:rotate-90 transition-transform" fill="none"
7
- viewBox="0 0 24 24" stroke="currentColor">
8
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" />
9
- </svg>
10
- <span class="font-mono text-sm truncate max-w-xl">
11
- <span class="font-bold uppercase mr-1 pl-1 pr-1 bg-gray-100 rounded text-gray-600"
12
- style="font-size: 0.75rem;">{{ requestMethod }}</span> {{ requestUrl }}
13
- </span>
14
- <a href="/__profiler/{{ requestId }}" class="ml-2 text-gray-400 hover:text-blue-500"
15
- title="Go to Request">
16
- <svg class="w-4 h-4" fill="none" viewBox="0 0 24 24" stroke="currentColor">
17
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
18
- d="M13 5l7 7-7 7M5 5l7 7-7 7" />
19
- </svg>
20
- </a>
21
- </summary>
22
- <div class="mt-2 ml-6">
23
- <code
24
- class="text-sm text-indigo-600 font-mono block whitespace-pre-wrap max-h-96 overflow-y-auto bg-gray-50 p-2 rounded border border-gray-100">{{ sql }}</code>
25
- </div>
26
- </details>
27
- </td>
28
- <td class="p-4 align-middle whitespace-nowrap" data-duration="{{ duration }}">
29
- <span class="text-sm text-gray-500 font-medium">{{ duration }}ms</span>
30
- </td>
31
- <td class="p-4 align-middle text-gray-400 text-sm whitespace-nowrap text-right">
32
- {{ timeAgo }}
33
- </td>
34
- </tr>
@@ -1,25 +0,0 @@
1
- <tr class="hover:bg-gray-50 border-b border-gray-100">
2
- <td class="p-4 align-middle">
3
- {{{ methodBadge }}}
4
- </td>
5
- <td class="p-4 align-middle w-full">
6
- <a href="/__profiler/{{ id }}"
7
- class="text-indigo-600 hover:text-indigo-900 font-medium block truncate max-w-xl transition-colors">
8
- {{ url }}
9
- </a>
10
- </td>
11
- <td class="p-4 align-middle whitespace-nowrap">
12
- <span class="px-2.5 py-0.5 rounded-full text-xs font-medium {{{ statusClass }}}">
13
- {{ statusCode }}
14
- </span>
15
- </td>
16
- <td class="p-4 align-middle text-gray-500 text-sm whitespace-nowrap">
17
- {{ duration }}ms
18
- </td>
19
- <td class="p-4 align-middle text-gray-500 text-sm whitespace-nowrap text-center">
20
- {{{ queriesCount }}}
21
- </td>
22
- <td class="p-4 align-middle text-gray-400 text-xs whitespace-nowrap text-right">
23
- {{ timeAgo }}
24
- </td>
25
- </tr>
@@ -1,12 +0,0 @@
1
- <tr class="hover:bg-gray-50 transition-colors">
2
- <td class="px-6 py-4 whitespace-nowrap">
3
- {{{ methodBadge }}}
4
- </td>
5
- <td class="px-6 py-4 whitespace-nowrap">
6
- <code class="text-xs font-mono text-indigo-600 bg-indigo-50 px-2 py-1 rounded">{{ path }}</code>
7
- </td>
8
- <td class="px-6 py-4 whitespace-nowrap">
9
- <div class="text-sm font-medium text-gray-900">{{ controller }}</div>
10
- <div class="text-xs text-gray-500 mt-0.5">{{ handler }}()</div>
11
- </td>
12
- </tr>
@@ -1,65 +0,0 @@
1
- <div class="bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden">
2
- <div class="p-4 border-b border-gray-200 bg-gray-50 flex justify-between items-center">
3
- <div class="flex items-center space-x-4">
4
- <h2 class="font-semibold text-gray-700">Executed Queries</h2>
5
- <div class="relative">
6
- <div class="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none">
7
- <svg class="h-4 w-4 text-gray-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
8
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
9
- d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" />
10
- </svg>
11
- </div>
12
- <input id="search" name="search"
13
- class="block w-64 pl-9 pr-3 py-1.5 border border-gray-300 rounded-md leading-5 bg-white placeholder-gray-500 focus:outline-none focus:placeholder-gray-400 focus:ring-1 focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm"
14
- placeholder="Search queries..." type="search">
15
- </div>
16
- </div>
17
- <span class="text-xs text-gray-500 bg-white border border-gray-200 px-2 py-1 rounded-md">Last 100 requests
18
- context</span>
19
- </div>
20
- <div class="overflow-x-auto">
21
- <table class="w-full text-left border-collapse">
22
- <thead class="bg-gray-50 text-gray-500 uppercase text-xs tracking-wider font-medium">
23
- <tr>
24
- <th class="p-4 border-b border-gray-200">Request / Query</th>
25
- <th id="duration-header"
26
- class="p-4 border-b border-gray-200 w-32 cursor-pointer hover:bg-gray-100 select-none"
27
- title="Click to sort">Duration <span class="text-xs">↓</span></th>
28
- <th class="p-4 border-b border-gray-200 w-32 text-right">Happened</th>
29
- </tr>
30
- </thead>
31
- <tbody class="divide-y divide-gray-100">
32
- {{{ rows }}}
33
- </tbody>
34
- </table>
35
- </div>
36
- </div>
37
-
38
- <script>
39
- document.addEventListener('DOMContentLoaded', () => {
40
- // Duration Sorting
41
- const durationHeader = document.getElementById('duration-header');
42
- const tbody = document.querySelector('tbody');
43
- let durationAsc = false; // Default is descending (from backend)
44
-
45
- if (durationHeader && tbody) {
46
- durationHeader.addEventListener('click', () => {
47
- durationAsc = !durationAsc;
48
- const rows = Array.from(tbody.querySelectorAll('tr'));
49
-
50
- rows.sort((a, b) => {
51
- const durA = parseFloat(a.querySelector('[data-duration]')?.dataset.duration || 0);
52
- const durB = parseFloat(b.querySelector('[data-duration]')?.dataset.duration || 0);
53
-
54
- return durationAsc ? durA - durB : durB - durA;
55
- });
56
-
57
- rows.forEach(row => tbody.appendChild(row));
58
-
59
- // Update Arrow indication
60
- const arrow = durationHeader.querySelector('span');
61
- if (arrow) arrow.textContent = durationAsc ? '↑' : '↓';
62
- });
63
- }
64
- });
65
- </script>
@@ -1,41 +0,0 @@
1
- <div class="bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden">
2
- <div class="p-4 border-b border-gray-200 bg-gray-50 flex justify-between items-center">
3
- <div class="flex items-center space-x-4">
4
- <h2 class="font-semibold text-gray-700">Routes Explorer</h2>
5
- <div class="relative">
6
- <div class="absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none">
7
- <svg class="h-4 w-4 text-gray-400" fill="none" viewBox="0 0 24 24" stroke="currentColor">
8
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
9
- d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" />
10
- </svg>
11
- </div>
12
- <input id="search" name="search"
13
- class="block w-64 pl-9 pr-3 py-1.5 border border-gray-300 rounded-md leading-5 bg-white placeholder-gray-500 focus:outline-none focus:placeholder-gray-400 focus:ring-1 focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm"
14
- placeholder="Search routes..." type="search">
15
- </div>
16
- </div>
17
- <span class="text-xs text-gray-500 bg-white border border-gray-200 px-2 py-1 rounded-md">
18
- {{ totalRoutes }} Routes Found
19
- </span>
20
- </div>
21
- <div class="overflow-x-auto">
22
- <table class="min-w-full divide-y divide-gray-200">
23
- <thead class="bg-gray-50">
24
- <tr>
25
- <th scope="col"
26
- class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Method
27
- </th>
28
- <th scope="col"
29
- class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Path</th>
30
- <th scope="col"
31
- class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">
32
- Controller</th>
33
- </tr>
34
- </thead>
35
- <tbody class="bg-white divide-y divide-gray-200">
36
- {{{ rows }}}
37
- </tbody>
38
- </table>
39
- </div>
40
- {{{ emptyState }}}
41
- </div>
@@ -1 +0,0 @@
1
- {"version":3,"file":"in-memory-profiler-storage.js","sourceRoot":"","sources":["../../../libs/nestjs-profiler/src/storage/in-memory-profiler-storage.ts"],"names":[],"mappings":";;;AAGA,MAAa,uBAAuB;IACxB,QAAQ,GAAqB,EAAE,CAAC;IAChC,KAAK,GAAG,GAAG,CAAC;IAEpB,KAAK,CAAC,IAAI,CAAC,OAAuB;QAC9B,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;QACxE,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC;QAC3C,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC/B,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;gBACpC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YACxB,CAAC;QACL,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,GAAG;QACL,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;CACJ;AAvBD,0DAuBC"}