nestlens 0.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 (359) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +145 -0
  3. package/dist/__tests__/api/api.controller.spec.d.ts +2 -0
  4. package/dist/__tests__/api/api.controller.spec.d.ts.map +1 -0
  5. package/dist/__tests__/api/api.controller.spec.js +982 -0
  6. package/dist/__tests__/api/api.controller.spec.js.map +1 -0
  7. package/dist/__tests__/api/api.guard.spec.d.ts +2 -0
  8. package/dist/__tests__/api/api.guard.spec.d.ts.map +1 -0
  9. package/dist/__tests__/api/api.guard.spec.js +572 -0
  10. package/dist/__tests__/api/api.guard.spec.js.map +1 -0
  11. package/dist/__tests__/api/dashboard.controller.spec.d.ts +2 -0
  12. package/dist/__tests__/api/dashboard.controller.spec.d.ts.map +1 -0
  13. package/dist/__tests__/api/dashboard.controller.spec.js +474 -0
  14. package/dist/__tests__/api/dashboard.controller.spec.js.map +1 -0
  15. package/dist/__tests__/api/tag.controller.spec.d.ts +2 -0
  16. package/dist/__tests__/api/tag.controller.spec.d.ts.map +1 -0
  17. package/dist/__tests__/api/tag.controller.spec.js +280 -0
  18. package/dist/__tests__/api/tag.controller.spec.js.map +1 -0
  19. package/dist/__tests__/collector.service.spec.d.ts +2 -0
  20. package/dist/__tests__/collector.service.spec.d.ts.map +1 -0
  21. package/dist/__tests__/collector.service.spec.js +240 -0
  22. package/dist/__tests__/collector.service.spec.js.map +1 -0
  23. package/dist/__tests__/core/collector.service.spec.d.ts +2 -0
  24. package/dist/__tests__/core/collector.service.spec.d.ts.map +1 -0
  25. package/dist/__tests__/core/collector.service.spec.js +526 -0
  26. package/dist/__tests__/core/collector.service.spec.js.map +1 -0
  27. package/dist/__tests__/core/family-hash.service.spec.d.ts +2 -0
  28. package/dist/__tests__/core/family-hash.service.spec.d.ts.map +1 -0
  29. package/dist/__tests__/core/family-hash.service.spec.js +1117 -0
  30. package/dist/__tests__/core/family-hash.service.spec.js.map +1 -0
  31. package/dist/__tests__/core/pruning.service.spec.d.ts +2 -0
  32. package/dist/__tests__/core/pruning.service.spec.d.ts.map +1 -0
  33. package/dist/__tests__/core/pruning.service.spec.js +224 -0
  34. package/dist/__tests__/core/pruning.service.spec.js.map +1 -0
  35. package/dist/__tests__/core/storage/sqlite.storage.spec.d.ts +2 -0
  36. package/dist/__tests__/core/storage/sqlite.storage.spec.d.ts.map +1 -0
  37. package/dist/__tests__/core/storage/sqlite.storage.spec.js +853 -0
  38. package/dist/__tests__/core/storage/sqlite.storage.spec.js.map +1 -0
  39. package/dist/__tests__/core/tag.service.spec.d.ts +2 -0
  40. package/dist/__tests__/core/tag.service.spec.d.ts.map +1 -0
  41. package/dist/__tests__/core/tag.service.spec.js +994 -0
  42. package/dist/__tests__/core/tag.service.spec.js.map +1 -0
  43. package/dist/__tests__/family-hash.service.spec.d.ts +2 -0
  44. package/dist/__tests__/family-hash.service.spec.d.ts.map +1 -0
  45. package/dist/__tests__/family-hash.service.spec.js +325 -0
  46. package/dist/__tests__/family-hash.service.spec.js.map +1 -0
  47. package/dist/__tests__/filters/api-filters.spec.d.ts +2 -0
  48. package/dist/__tests__/filters/api-filters.spec.d.ts.map +1 -0
  49. package/dist/__tests__/filters/api-filters.spec.js +172 -0
  50. package/dist/__tests__/filters/api-filters.spec.js.map +1 -0
  51. package/dist/__tests__/filters/entry-factories.d.ts +20 -0
  52. package/dist/__tests__/filters/entry-factories.d.ts.map +1 -0
  53. package/dist/__tests__/filters/entry-factories.js +288 -0
  54. package/dist/__tests__/filters/entry-factories.js.map +1 -0
  55. package/dist/__tests__/filters/filter-contract.spec.d.ts +2 -0
  56. package/dist/__tests__/filters/filter-contract.spec.d.ts.map +1 -0
  57. package/dist/__tests__/filters/filter-contract.spec.js +230 -0
  58. package/dist/__tests__/filters/filter-contract.spec.js.map +1 -0
  59. package/dist/__tests__/filters/filter-test-data.d.ts +26 -0
  60. package/dist/__tests__/filters/filter-test-data.d.ts.map +1 -0
  61. package/dist/__tests__/filters/filter-test-data.js +374 -0
  62. package/dist/__tests__/filters/filter-test-data.js.map +1 -0
  63. package/dist/__tests__/filters/storage-filters.spec.d.ts +2 -0
  64. package/dist/__tests__/filters/storage-filters.spec.d.ts.map +1 -0
  65. package/dist/__tests__/filters/storage-filters.spec.js +699 -0
  66. package/dist/__tests__/filters/storage-filters.spec.js.map +1 -0
  67. package/dist/__tests__/filters/test-utils.d.ts +23 -0
  68. package/dist/__tests__/filters/test-utils.d.ts.map +1 -0
  69. package/dist/__tests__/filters/test-utils.js +54 -0
  70. package/dist/__tests__/filters/test-utils.js.map +1 -0
  71. package/dist/__tests__/nestlens.module.spec.d.ts +2 -0
  72. package/dist/__tests__/nestlens.module.spec.d.ts.map +1 -0
  73. package/dist/__tests__/nestlens.module.spec.js +620 -0
  74. package/dist/__tests__/nestlens.module.spec.js.map +1 -0
  75. package/dist/__tests__/pruning.service.spec.d.ts +2 -0
  76. package/dist/__tests__/pruning.service.spec.d.ts.map +1 -0
  77. package/dist/__tests__/pruning.service.spec.js +142 -0
  78. package/dist/__tests__/pruning.service.spec.js.map +1 -0
  79. package/dist/__tests__/setup.d.ts +7 -0
  80. package/dist/__tests__/setup.d.ts.map +1 -0
  81. package/dist/__tests__/setup.js +24 -0
  82. package/dist/__tests__/setup.js.map +1 -0
  83. package/dist/__tests__/tag.service.spec.d.ts +2 -0
  84. package/dist/__tests__/tag.service.spec.d.ts.map +1 -0
  85. package/dist/__tests__/tag.service.spec.js +482 -0
  86. package/dist/__tests__/tag.service.spec.js.map +1 -0
  87. package/dist/__tests__/watchers/batch.watcher.spec.d.ts +2 -0
  88. package/dist/__tests__/watchers/batch.watcher.spec.d.ts.map +1 -0
  89. package/dist/__tests__/watchers/batch.watcher.spec.js +515 -0
  90. package/dist/__tests__/watchers/batch.watcher.spec.js.map +1 -0
  91. package/dist/__tests__/watchers/cache.watcher.spec.d.ts +2 -0
  92. package/dist/__tests__/watchers/cache.watcher.spec.d.ts.map +1 -0
  93. package/dist/__tests__/watchers/cache.watcher.spec.js +395 -0
  94. package/dist/__tests__/watchers/cache.watcher.spec.js.map +1 -0
  95. package/dist/__tests__/watchers/command.watcher.spec.d.ts +2 -0
  96. package/dist/__tests__/watchers/command.watcher.spec.d.ts.map +1 -0
  97. package/dist/__tests__/watchers/command.watcher.spec.js +598 -0
  98. package/dist/__tests__/watchers/command.watcher.spec.js.map +1 -0
  99. package/dist/__tests__/watchers/dump.watcher.spec.d.ts +2 -0
  100. package/dist/__tests__/watchers/dump.watcher.spec.d.ts.map +1 -0
  101. package/dist/__tests__/watchers/dump.watcher.spec.js +724 -0
  102. package/dist/__tests__/watchers/dump.watcher.spec.js.map +1 -0
  103. package/dist/__tests__/watchers/event.watcher.spec.d.ts +2 -0
  104. package/dist/__tests__/watchers/event.watcher.spec.d.ts.map +1 -0
  105. package/dist/__tests__/watchers/event.watcher.spec.js +316 -0
  106. package/dist/__tests__/watchers/event.watcher.spec.js.map +1 -0
  107. package/dist/__tests__/watchers/exception.watcher.spec.d.ts +2 -0
  108. package/dist/__tests__/watchers/exception.watcher.spec.d.ts.map +1 -0
  109. package/dist/__tests__/watchers/exception.watcher.spec.js +495 -0
  110. package/dist/__tests__/watchers/exception.watcher.spec.js.map +1 -0
  111. package/dist/__tests__/watchers/gate.watcher.spec.d.ts +2 -0
  112. package/dist/__tests__/watchers/gate.watcher.spec.d.ts.map +1 -0
  113. package/dist/__tests__/watchers/gate.watcher.spec.js +683 -0
  114. package/dist/__tests__/watchers/gate.watcher.spec.js.map +1 -0
  115. package/dist/__tests__/watchers/http-client.watcher.spec.d.ts +2 -0
  116. package/dist/__tests__/watchers/http-client.watcher.spec.d.ts.map +1 -0
  117. package/dist/__tests__/watchers/http-client.watcher.spec.js +888 -0
  118. package/dist/__tests__/watchers/http-client.watcher.spec.js.map +1 -0
  119. package/dist/__tests__/watchers/job.watcher.spec.d.ts +2 -0
  120. package/dist/__tests__/watchers/job.watcher.spec.d.ts.map +1 -0
  121. package/dist/__tests__/watchers/job.watcher.spec.js +513 -0
  122. package/dist/__tests__/watchers/job.watcher.spec.js.map +1 -0
  123. package/dist/__tests__/watchers/log.watcher.spec.d.ts +2 -0
  124. package/dist/__tests__/watchers/log.watcher.spec.d.ts.map +1 -0
  125. package/dist/__tests__/watchers/log.watcher.spec.js +428 -0
  126. package/dist/__tests__/watchers/log.watcher.spec.js.map +1 -0
  127. package/dist/__tests__/watchers/mail.watcher.spec.d.ts +2 -0
  128. package/dist/__tests__/watchers/mail.watcher.spec.d.ts.map +1 -0
  129. package/dist/__tests__/watchers/mail.watcher.spec.js +425 -0
  130. package/dist/__tests__/watchers/mail.watcher.spec.js.map +1 -0
  131. package/dist/__tests__/watchers/model.watcher.spec.d.ts +2 -0
  132. package/dist/__tests__/watchers/model.watcher.spec.d.ts.map +1 -0
  133. package/dist/__tests__/watchers/model.watcher.spec.js +675 -0
  134. package/dist/__tests__/watchers/model.watcher.spec.js.map +1 -0
  135. package/dist/__tests__/watchers/notification.watcher.spec.d.ts +2 -0
  136. package/dist/__tests__/watchers/notification.watcher.spec.d.ts.map +1 -0
  137. package/dist/__tests__/watchers/notification.watcher.spec.js +595 -0
  138. package/dist/__tests__/watchers/notification.watcher.spec.js.map +1 -0
  139. package/dist/__tests__/watchers/query/types.spec.d.ts +2 -0
  140. package/dist/__tests__/watchers/query/types.spec.d.ts.map +1 -0
  141. package/dist/__tests__/watchers/query/types.spec.js +292 -0
  142. package/dist/__tests__/watchers/query/types.spec.js.map +1 -0
  143. package/dist/__tests__/watchers/query.watcher.spec.d.ts +2 -0
  144. package/dist/__tests__/watchers/query.watcher.spec.d.ts.map +1 -0
  145. package/dist/__tests__/watchers/query.watcher.spec.js +597 -0
  146. package/dist/__tests__/watchers/query.watcher.spec.js.map +1 -0
  147. package/dist/__tests__/watchers/redis.watcher.spec.d.ts +2 -0
  148. package/dist/__tests__/watchers/redis.watcher.spec.d.ts.map +1 -0
  149. package/dist/__tests__/watchers/redis.watcher.spec.js +634 -0
  150. package/dist/__tests__/watchers/redis.watcher.spec.js.map +1 -0
  151. package/dist/__tests__/watchers/request.watcher.spec.d.ts +2 -0
  152. package/dist/__tests__/watchers/request.watcher.spec.d.ts.map +1 -0
  153. package/dist/__tests__/watchers/request.watcher.spec.js +1017 -0
  154. package/dist/__tests__/watchers/request.watcher.spec.js.map +1 -0
  155. package/dist/__tests__/watchers/schedule.watcher.spec.d.ts +2 -0
  156. package/dist/__tests__/watchers/schedule.watcher.spec.d.ts.map +1 -0
  157. package/dist/__tests__/watchers/schedule.watcher.spec.js +338 -0
  158. package/dist/__tests__/watchers/schedule.watcher.spec.js.map +1 -0
  159. package/dist/__tests__/watchers/view.watcher.spec.d.ts +2 -0
  160. package/dist/__tests__/watchers/view.watcher.spec.d.ts.map +1 -0
  161. package/dist/__tests__/watchers/view.watcher.spec.js +564 -0
  162. package/dist/__tests__/watchers/view.watcher.spec.js.map +1 -0
  163. package/dist/api/api.controller.d.ts +193 -0
  164. package/dist/api/api.controller.d.ts.map +1 -0
  165. package/dist/api/api.controller.js +562 -0
  166. package/dist/api/api.controller.js.map +1 -0
  167. package/dist/api/api.guard.d.ts +77 -0
  168. package/dist/api/api.guard.d.ts.map +1 -0
  169. package/dist/api/api.guard.js +294 -0
  170. package/dist/api/api.guard.js.map +1 -0
  171. package/dist/api/dashboard.controller.d.ts +49 -0
  172. package/dist/api/dashboard.controller.d.ts.map +1 -0
  173. package/dist/api/dashboard.controller.js +472 -0
  174. package/dist/api/dashboard.controller.js.map +1 -0
  175. package/dist/api/index.d.ts +5 -0
  176. package/dist/api/index.d.ts.map +1 -0
  177. package/dist/api/index.js +21 -0
  178. package/dist/api/index.js.map +1 -0
  179. package/dist/api/tag.controller.d.ts +65 -0
  180. package/dist/api/tag.controller.d.ts.map +1 -0
  181. package/dist/api/tag.controller.js +149 -0
  182. package/dist/api/tag.controller.js.map +1 -0
  183. package/dist/core/collector.service.d.ts +80 -0
  184. package/dist/core/collector.service.d.ts.map +1 -0
  185. package/dist/core/collector.service.js +255 -0
  186. package/dist/core/collector.service.js.map +1 -0
  187. package/dist/core/family-hash.service.d.ts +64 -0
  188. package/dist/core/family-hash.service.d.ts.map +1 -0
  189. package/dist/core/family-hash.service.js +281 -0
  190. package/dist/core/family-hash.service.js.map +1 -0
  191. package/dist/core/index.d.ts +4 -0
  192. package/dist/core/index.d.ts.map +1 -0
  193. package/dist/core/index.js +20 -0
  194. package/dist/core/index.js.map +1 -0
  195. package/dist/core/pruning.service.d.ts +16 -0
  196. package/dist/core/pruning.service.d.ts.map +1 -0
  197. package/dist/core/pruning.service.js +71 -0
  198. package/dist/core/pruning.service.js.map +1 -0
  199. package/dist/core/storage/index.d.ts +3 -0
  200. package/dist/core/storage/index.d.ts.map +1 -0
  201. package/dist/core/storage/index.js +19 -0
  202. package/dist/core/storage/index.js.map +1 -0
  203. package/dist/core/storage/sqlite.storage.d.ts +60 -0
  204. package/dist/core/storage/sqlite.storage.d.ts.map +1 -0
  205. package/dist/core/storage/sqlite.storage.js +929 -0
  206. package/dist/core/storage/sqlite.storage.js.map +1 -0
  207. package/dist/core/storage/storage.interface.d.ts +122 -0
  208. package/dist/core/storage/storage.interface.d.ts.map +1 -0
  209. package/dist/core/storage/storage.interface.js +5 -0
  210. package/dist/core/storage/storage.interface.js.map +1 -0
  211. package/dist/core/tag.service.d.ts +71 -0
  212. package/dist/core/tag.service.d.ts.map +1 -0
  213. package/dist/core/tag.service.js +568 -0
  214. package/dist/core/tag.service.js.map +1 -0
  215. package/dist/dashboard/public/assets/BatchesPage-DFT4fKlJ.js +1 -0
  216. package/dist/dashboard/public/assets/CachePage-CRy1Tjb8.js +1 -0
  217. package/dist/dashboard/public/assets/ClickableBadge-CV5J3THx.js +1 -0
  218. package/dist/dashboard/public/assets/CommandsPage-DdRnTm-W.js +1 -0
  219. package/dist/dashboard/public/assets/DashboardPage-CjaRZXYy.js +26 -0
  220. package/dist/dashboard/public/assets/DataTable-B6o9H8lh.js +88 -0
  221. package/dist/dashboard/public/assets/DumpsPage-DO8y1RTg.js +1 -0
  222. package/dist/dashboard/public/assets/EntryDetailPage-By-YcAGL.js +125 -0
  223. package/dist/dashboard/public/assets/EventsPage-u-r4AiT4.js +1 -0
  224. package/dist/dashboard/public/assets/ExceptionsPage-DXUcARr1.js +6 -0
  225. package/dist/dashboard/public/assets/GatesPage-DpeP7CDZ.js +1 -0
  226. package/dist/dashboard/public/assets/HttpClientPage-BJ4-5E6t.js +1 -0
  227. package/dist/dashboard/public/assets/JobsPage-Dv3KaX2x.js +1 -0
  228. package/dist/dashboard/public/assets/LogsPage-D0Q3yDb1.js +1 -0
  229. package/dist/dashboard/public/assets/MailPage-Bf8C6WF6.js +1 -0
  230. package/dist/dashboard/public/assets/ModelsPage-BMHncI5y.js +1 -0
  231. package/dist/dashboard/public/assets/NotificationsPage-D5-I-Oxb.js +1 -0
  232. package/dist/dashboard/public/assets/QueriesPage-oNp0i6Gt.js +1 -0
  233. package/dist/dashboard/public/assets/RedisPage-_GeS2OD8.js +1 -0
  234. package/dist/dashboard/public/assets/RequestsPage-BCwqu9US.js +1 -0
  235. package/dist/dashboard/public/assets/SchedulePage-CR0P-oX6.js +1 -0
  236. package/dist/dashboard/public/assets/ViewsPage-Dsy5ECRA.js +1 -0
  237. package/dist/dashboard/public/assets/calendar-DfK3x-6B.js +6 -0
  238. package/dist/dashboard/public/assets/circle-check-big-DcsYW8y8.js +6 -0
  239. package/dist/dashboard/public/assets/format-BFldcnCk.js +1 -0
  240. package/dist/dashboard/public/assets/index-DmeA1maE.css +1 -0
  241. package/dist/dashboard/public/assets/index-rkbGYdU7.js +351 -0
  242. package/dist/dashboard/public/assets/types-Cldoe2db.js +1 -0
  243. package/dist/dashboard/public/assets/vendor-B2nVRih0.js +43 -0
  244. package/dist/dashboard/public/assets/zap-DqtRi0JM.js +6 -0
  245. package/dist/dashboard/public/index.html +15 -0
  246. package/dist/dashboard/public/nestlens-icon.svg +9 -0
  247. package/dist/index.d.ts +22 -0
  248. package/dist/index.d.ts.map +1 -0
  249. package/dist/index.js +69 -0
  250. package/dist/index.js.map +1 -0
  251. package/dist/nestlens.config.d.ts +216 -0
  252. package/dist/nestlens.config.d.ts.map +1 -0
  253. package/dist/nestlens.config.js +57 -0
  254. package/dist/nestlens.config.js.map +1 -0
  255. package/dist/nestlens.module.d.ts +10 -0
  256. package/dist/nestlens.module.d.ts.map +1 -0
  257. package/dist/nestlens.module.js +211 -0
  258. package/dist/nestlens.module.js.map +1 -0
  259. package/dist/types/entry.types.d.ts +368 -0
  260. package/dist/types/entry.types.d.ts.map +1 -0
  261. package/dist/types/entry.types.js +3 -0
  262. package/dist/types/entry.types.js.map +1 -0
  263. package/dist/types/index.d.ts +4 -0
  264. package/dist/types/index.d.ts.map +1 -0
  265. package/dist/types/index.js +20 -0
  266. package/dist/types/index.js.map +1 -0
  267. package/dist/types/request.types.d.ts +9 -0
  268. package/dist/types/request.types.d.ts.map +1 -0
  269. package/dist/types/request.types.js +3 -0
  270. package/dist/types/request.types.js.map +1 -0
  271. package/dist/types/tag.types.d.ts +32 -0
  272. package/dist/types/tag.types.d.ts.map +1 -0
  273. package/dist/types/tag.types.js +3 -0
  274. package/dist/types/tag.types.js.map +1 -0
  275. package/dist/watchers/batch.watcher.d.ts +48 -0
  276. package/dist/watchers/batch.watcher.d.ts.map +1 -0
  277. package/dist/watchers/batch.watcher.js +185 -0
  278. package/dist/watchers/batch.watcher.js.map +1 -0
  279. package/dist/watchers/cache.watcher.d.ts +19 -0
  280. package/dist/watchers/cache.watcher.d.ts.map +1 -0
  281. package/dist/watchers/cache.watcher.js +158 -0
  282. package/dist/watchers/cache.watcher.js.map +1 -0
  283. package/dist/watchers/command.watcher.d.ts +32 -0
  284. package/dist/watchers/command.watcher.d.ts.map +1 -0
  285. package/dist/watchers/command.watcher.js +174 -0
  286. package/dist/watchers/command.watcher.js.map +1 -0
  287. package/dist/watchers/dump.watcher.d.ts +52 -0
  288. package/dist/watchers/dump.watcher.d.ts.map +1 -0
  289. package/dist/watchers/dump.watcher.js +234 -0
  290. package/dist/watchers/dump.watcher.js.map +1 -0
  291. package/dist/watchers/event.watcher.d.ts +20 -0
  292. package/dist/watchers/event.watcher.d.ts.map +1 -0
  293. package/dist/watchers/event.watcher.js +123 -0
  294. package/dist/watchers/event.watcher.js.map +1 -0
  295. package/dist/watchers/exception.watcher.d.ts +15 -0
  296. package/dist/watchers/exception.watcher.d.ts.map +1 -0
  297. package/dist/watchers/exception.watcher.js +117 -0
  298. package/dist/watchers/exception.watcher.js.map +1 -0
  299. package/dist/watchers/gate.watcher.d.ts +40 -0
  300. package/dist/watchers/gate.watcher.d.ts.map +1 -0
  301. package/dist/watchers/gate.watcher.js +200 -0
  302. package/dist/watchers/gate.watcher.js.map +1 -0
  303. package/dist/watchers/http-client.watcher.d.ts +34 -0
  304. package/dist/watchers/http-client.watcher.d.ts.map +1 -0
  305. package/dist/watchers/http-client.watcher.js +259 -0
  306. package/dist/watchers/http-client.watcher.js.map +1 -0
  307. package/dist/watchers/index.d.ts +19 -0
  308. package/dist/watchers/index.d.ts.map +1 -0
  309. package/dist/watchers/index.js +35 -0
  310. package/dist/watchers/index.js.map +1 -0
  311. package/dist/watchers/job.watcher.d.ts +27 -0
  312. package/dist/watchers/job.watcher.d.ts.map +1 -0
  313. package/dist/watchers/job.watcher.js +190 -0
  314. package/dist/watchers/job.watcher.js.map +1 -0
  315. package/dist/watchers/log.watcher.d.ts +26 -0
  316. package/dist/watchers/log.watcher.d.ts.map +1 -0
  317. package/dist/watchers/log.watcher.js +122 -0
  318. package/dist/watchers/log.watcher.js.map +1 -0
  319. package/dist/watchers/mail.watcher.d.ts +26 -0
  320. package/dist/watchers/mail.watcher.d.ts.map +1 -0
  321. package/dist/watchers/mail.watcher.js +154 -0
  322. package/dist/watchers/mail.watcher.js.map +1 -0
  323. package/dist/watchers/model.watcher.d.ts +54 -0
  324. package/dist/watchers/model.watcher.d.ts.map +1 -0
  325. package/dist/watchers/model.watcher.js +343 -0
  326. package/dist/watchers/model.watcher.js.map +1 -0
  327. package/dist/watchers/notification.watcher.d.ts +48 -0
  328. package/dist/watchers/notification.watcher.d.ts.map +1 -0
  329. package/dist/watchers/notification.watcher.js +215 -0
  330. package/dist/watchers/notification.watcher.js.map +1 -0
  331. package/dist/watchers/query/index.d.ts +3 -0
  332. package/dist/watchers/query/index.d.ts.map +1 -0
  333. package/dist/watchers/query/index.js +19 -0
  334. package/dist/watchers/query/index.js.map +1 -0
  335. package/dist/watchers/query/query.watcher.d.ts +27 -0
  336. package/dist/watchers/query/query.watcher.d.ts.map +1 -0
  337. package/dist/watchers/query/query.watcher.js +167 -0
  338. package/dist/watchers/query/query.watcher.js.map +1 -0
  339. package/dist/watchers/query/types.d.ts +60 -0
  340. package/dist/watchers/query/types.d.ts.map +1 -0
  341. package/dist/watchers/query/types.js +55 -0
  342. package/dist/watchers/query/types.js.map +1 -0
  343. package/dist/watchers/redis.watcher.d.ts +43 -0
  344. package/dist/watchers/redis.watcher.d.ts.map +1 -0
  345. package/dist/watchers/redis.watcher.js +225 -0
  346. package/dist/watchers/redis.watcher.js.map +1 -0
  347. package/dist/watchers/request.watcher.d.ts +21 -0
  348. package/dist/watchers/request.watcher.d.ts.map +1 -0
  349. package/dist/watchers/request.watcher.js +287 -0
  350. package/dist/watchers/request.watcher.js.map +1 -0
  351. package/dist/watchers/schedule.watcher.d.ts +25 -0
  352. package/dist/watchers/schedule.watcher.d.ts.map +1 -0
  353. package/dist/watchers/schedule.watcher.js +168 -0
  354. package/dist/watchers/schedule.watcher.js.map +1 -0
  355. package/dist/watchers/view.watcher.d.ts +51 -0
  356. package/dist/watchers/view.watcher.d.ts.map +1 -0
  357. package/dist/watchers/view.watcher.js +219 -0
  358. package/dist/watchers/view.watcher.js.map +1 -0
  359. package/package.json +86 -0
@@ -0,0 +1,185 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var BatchWatcher_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.BatchWatcher = exports.NESTLENS_BATCH_PROCESSOR = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const collector_service_1 = require("../core/collector.service");
19
+ const nestlens_config_1 = require("../nestlens.config");
20
+ /**
21
+ * Token for injecting batch processor service
22
+ */
23
+ exports.NESTLENS_BATCH_PROCESSOR = Symbol('NESTLENS_BATCH_PROCESSOR');
24
+ /**
25
+ * BatchWatcher tracks batch/bulk operations in NestJS applications.
26
+ * Monitors batch processing operations, capturing total/processed/failed items,
27
+ * duration, memory usage, and status.
28
+ */
29
+ let BatchWatcher = BatchWatcher_1 = class BatchWatcher {
30
+ constructor(collector, nestlensConfig, batchProcessor) {
31
+ this.collector = collector;
32
+ this.nestlensConfig = nestlensConfig;
33
+ this.batchProcessor = batchProcessor;
34
+ this.logger = new common_1.Logger(BatchWatcher_1.name);
35
+ this.batchTracking = new Map();
36
+ const watcherConfig = nestlensConfig.watchers?.batch;
37
+ this.config =
38
+ typeof watcherConfig === 'object'
39
+ ? watcherConfig
40
+ : { enabled: watcherConfig !== false };
41
+ }
42
+ onModuleInit() {
43
+ if (!this.config.enabled) {
44
+ return;
45
+ }
46
+ // Check if batch processor was provided
47
+ if (!this.batchProcessor) {
48
+ this.logger.debug('BatchWatcher: No batch processor found. ' +
49
+ 'To enable batch tracking, provide a batch processor service or call trackBatch() manually.');
50
+ return;
51
+ }
52
+ this.setupInterceptors();
53
+ }
54
+ setupInterceptors() {
55
+ if (!this.batchProcessor)
56
+ return;
57
+ // Try to wrap common batch processing methods
58
+ this.wrapMethod('process');
59
+ this.wrapMethod('processBatch');
60
+ this.wrapMethod('bulk');
61
+ this.wrapMethod('bulkProcess');
62
+ this.logger.log('Batch interceptors installed');
63
+ }
64
+ wrapMethod(methodName) {
65
+ if (!this.batchProcessor || typeof this.batchProcessor[methodName] !== 'function') {
66
+ return;
67
+ }
68
+ const originalMethod = this.batchProcessor[methodName].bind(this.batchProcessor);
69
+ this.batchProcessor[methodName] = async (name, items, options) => {
70
+ const batchId = `${name}-${Date.now()}`;
71
+ const startTime = Date.now();
72
+ const startMemory = this.config.trackMemory !== false
73
+ ? process.memoryUsage().heapUsed
74
+ : 0;
75
+ this.batchTracking.set(batchId, { startTime, startMemory });
76
+ try {
77
+ const result = await originalMethod(name, items, options);
78
+ const duration = Date.now() - startTime;
79
+ const memoryDelta = this.config.trackMemory !== false
80
+ ? process.memoryUsage().heapUsed - startMemory
81
+ : undefined;
82
+ this.batchTracking.delete(batchId);
83
+ // Extract results from the result object
84
+ const { processed, failed, errors } = this.parseResult(result, items.length);
85
+ // Track batch completed
86
+ this.collectEntry(name, methodName, items.length, processed, failed, duration, this.getBatchSize(options), 'completed', errors, memoryDelta);
87
+ return result;
88
+ }
89
+ catch (error) {
90
+ const duration = Date.now() - startTime;
91
+ const memoryDelta = this.config.trackMemory !== false
92
+ ? process.memoryUsage().heapUsed - startMemory
93
+ : undefined;
94
+ this.batchTracking.delete(batchId);
95
+ // Track batch failed
96
+ this.collectEntry(name, methodName, items.length, 0, items.length, duration, this.getBatchSize(options), 'failed', [error instanceof Error ? error.message : String(error)], memoryDelta);
97
+ throw error; // Re-throw to maintain original behavior
98
+ }
99
+ };
100
+ }
101
+ /**
102
+ * Manual tracking method for batch operations.
103
+ * Call this method to track batch operations that aren't automatically intercepted.
104
+ *
105
+ * @param name - Name of the batch operation
106
+ * @param operation - Type of operation (e.g., 'import', 'export', 'transform')
107
+ * @param totalItems - Total number of items to process
108
+ * @param processedItems - Number of items successfully processed
109
+ * @param failedItems - Number of items that failed
110
+ * @param duration - Duration in milliseconds
111
+ * @param options - Additional options (batchSize, errors, memory)
112
+ */
113
+ trackBatch(name, operation, totalItems, processedItems, failedItems, duration, options) {
114
+ const status = failedItems === 0 ? 'completed' :
115
+ processedItems > 0 ? 'partial' :
116
+ 'failed';
117
+ this.collectEntry(name, operation, totalItems, processedItems, failedItems, duration, options?.batchSize, status, options?.errors, options?.memory);
118
+ }
119
+ collectEntry(name, operation, totalItems, processedItems, failedItems, duration, batchSize, status = 'completed', errors, memory) {
120
+ const payload = {
121
+ name,
122
+ operation,
123
+ totalItems,
124
+ processedItems,
125
+ failedItems,
126
+ duration,
127
+ batchSize,
128
+ status,
129
+ errors,
130
+ memory,
131
+ };
132
+ this.collector.collect('batch', payload);
133
+ }
134
+ parseResult(result, totalItems) {
135
+ try {
136
+ if (typeof result === 'object' && result !== null) {
137
+ const r = result;
138
+ // Try to extract processed/failed counts
139
+ const processed = r.processed || r.successful || r.success || totalItems;
140
+ const errorsArray = Array.isArray(r.errors) ? r.errors : [];
141
+ const failed = r.failed || errorsArray.length || 0;
142
+ const errors = errorsArray.length > 0 ? errorsArray : (r.failures || []);
143
+ return {
144
+ processed: typeof processed === 'number' ? processed : totalItems,
145
+ failed: typeof failed === 'number' ? failed : 0,
146
+ errors: Array.isArray(errors) ? errors.map(String) : [],
147
+ };
148
+ }
149
+ // If result is not an object, assume all items were processed
150
+ return {
151
+ processed: totalItems,
152
+ failed: 0,
153
+ errors: [],
154
+ };
155
+ }
156
+ catch {
157
+ return {
158
+ processed: totalItems,
159
+ failed: 0,
160
+ errors: [],
161
+ };
162
+ }
163
+ }
164
+ getBatchSize(options) {
165
+ try {
166
+ if (typeof options === 'object' && options !== null) {
167
+ const o = options;
168
+ return (o.batchSize || o.chunkSize || o.size);
169
+ }
170
+ return undefined;
171
+ }
172
+ catch {
173
+ return undefined;
174
+ }
175
+ }
176
+ };
177
+ exports.BatchWatcher = BatchWatcher;
178
+ exports.BatchWatcher = BatchWatcher = BatchWatcher_1 = __decorate([
179
+ (0, common_1.Injectable)(),
180
+ __param(1, (0, common_1.Inject)(nestlens_config_1.NESTLENS_CONFIG)),
181
+ __param(2, (0, common_1.Optional)()),
182
+ __param(2, (0, common_1.Inject)(exports.NESTLENS_BATCH_PROCESSOR)),
183
+ __metadata("design:paramtypes", [collector_service_1.CollectorService, Object, Object])
184
+ ], BatchWatcher);
185
+ //# sourceMappingURL=batch.watcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch.watcher.js","sourceRoot":"","sources":["../../src/watchers/batch.watcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { OnModuleInit } from '@nestjs/common';
2
+ import { CollectorService } from '../core/collector.service';
3
+ import { NestLensConfig } from '../nestlens.config';
4
+ type Cache = any;
5
+ export declare class CacheWatcher implements OnModuleInit {
6
+ private readonly collector;
7
+ private readonly nestlensConfig;
8
+ private readonly cacheManager?;
9
+ private readonly logger;
10
+ private readonly config;
11
+ private originalMethods?;
12
+ constructor(collector: CollectorService, nestlensConfig: NestLensConfig, cacheManager?: Cache | undefined);
13
+ onModuleInit(): void;
14
+ private setupInterceptors;
15
+ private collectEntry;
16
+ private captureValue;
17
+ }
18
+ export {};
19
+ //# sourceMappingURL=cache.watcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.watcher.d.ts","sourceRoot":"","sources":["../../src/watchers/cache.watcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,YAAY,EAAY,MAAM,gBAAgB,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAEL,cAAc,EAEf,MAAM,oBAAoB,CAAC;AAI5B,KAAK,KAAK,GAAG,GAAG,CAAC;AAYjB,qBACa,YAAa,YAAW,YAAY;IAW7C,OAAO,CAAC,QAAQ,CAAC,SAAS;IAE1B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAG/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAfhC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;IACxD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,eAAe,CAAC,CAKtB;gBAGiB,SAAS,EAAE,gBAAgB,EAE3B,cAAc,EAAE,cAAc,EAG9B,YAAY,CAAC,EAAE,KAAK,YAAA;IASvC,YAAY;IAiBZ,OAAO,CAAC,iBAAiB;IA8EzB,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,YAAY;CAerB"}
@@ -0,0 +1,158 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var CacheWatcher_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.CacheWatcher = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const collector_service_1 = require("../core/collector.service");
19
+ const nestlens_config_1 = require("../nestlens.config");
20
+ // Try to import CACHE_MANAGER, but make it optional
21
+ let CACHE_MANAGER = 'CACHE_MANAGER';
22
+ try {
23
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
24
+ const cacheManager = require('@nestjs/cache-manager');
25
+ CACHE_MANAGER = cacheManager.CACHE_MANAGER;
26
+ }
27
+ catch {
28
+ // Module not installed, use string fallback
29
+ }
30
+ let CacheWatcher = CacheWatcher_1 = class CacheWatcher {
31
+ constructor(collector, nestlensConfig, cacheManager) {
32
+ this.collector = collector;
33
+ this.nestlensConfig = nestlensConfig;
34
+ this.cacheManager = cacheManager;
35
+ this.logger = new common_1.Logger(CacheWatcher_1.name);
36
+ const watcherConfig = nestlensConfig.watchers?.cache;
37
+ this.config =
38
+ typeof watcherConfig === 'object'
39
+ ? watcherConfig
40
+ : { enabled: watcherConfig !== false };
41
+ }
42
+ onModuleInit() {
43
+ if (!this.config.enabled) {
44
+ return;
45
+ }
46
+ // Check if cache manager was provided
47
+ if (!this.cacheManager) {
48
+ this.logger.debug('CacheWatcher: No cache manager found. ' +
49
+ 'To enable cache tracking, install and configure @nestjs/cache-manager.');
50
+ return;
51
+ }
52
+ this.setupInterceptors();
53
+ }
54
+ setupInterceptors() {
55
+ if (!this.cacheManager)
56
+ return;
57
+ // Store original methods
58
+ this.originalMethods = {
59
+ get: this.cacheManager.get?.bind(this.cacheManager),
60
+ set: this.cacheManager.set?.bind(this.cacheManager),
61
+ del: this.cacheManager.del?.bind(this.cacheManager),
62
+ reset: this.cacheManager.reset?.bind(this.cacheManager),
63
+ };
64
+ // Wrap get method
65
+ if (this.originalMethods.get) {
66
+ this.cacheManager.get = async (key) => {
67
+ const startTime = Date.now();
68
+ let hit = false;
69
+ let value;
70
+ try {
71
+ value = await this.originalMethods.get(key);
72
+ hit = value !== undefined && value !== null;
73
+ return value;
74
+ }
75
+ finally {
76
+ const duration = Date.now() - startTime;
77
+ this.collectEntry('get', key, hit, duration, value);
78
+ }
79
+ };
80
+ }
81
+ // Wrap set method
82
+ if (this.originalMethods.set) {
83
+ this.cacheManager.set = async (key, value, ttl) => {
84
+ const startTime = Date.now();
85
+ try {
86
+ return await this.originalMethods.set(key, value, ttl);
87
+ }
88
+ finally {
89
+ const duration = Date.now() - startTime;
90
+ this.collectEntry('set', key, undefined, duration, value, ttl);
91
+ }
92
+ };
93
+ }
94
+ // Wrap del method
95
+ if (this.originalMethods.del) {
96
+ this.cacheManager.del = async (key) => {
97
+ const startTime = Date.now();
98
+ try {
99
+ return await this.originalMethods.del(key);
100
+ }
101
+ finally {
102
+ const duration = Date.now() - startTime;
103
+ this.collectEntry('del', key, undefined, duration);
104
+ }
105
+ };
106
+ }
107
+ // Wrap reset method (clear all)
108
+ if (this.originalMethods.reset) {
109
+ this.cacheManager.reset = async () => {
110
+ const startTime = Date.now();
111
+ try {
112
+ return await this.originalMethods.reset();
113
+ }
114
+ finally {
115
+ const duration = Date.now() - startTime;
116
+ this.collectEntry('clear', '*', undefined, duration);
117
+ }
118
+ };
119
+ }
120
+ this.logger.log('Cache interceptors installed');
121
+ }
122
+ collectEntry(operation, key, hit, duration = 0, value, ttl) {
123
+ const payload = {
124
+ operation,
125
+ key,
126
+ hit,
127
+ value: this.captureValue(value),
128
+ ttl,
129
+ duration,
130
+ };
131
+ this.collector.collect('cache', payload);
132
+ }
133
+ captureValue(value) {
134
+ if (value === undefined || value === null)
135
+ return undefined;
136
+ try {
137
+ // Limit size to prevent huge cache values from bloating storage
138
+ const json = JSON.stringify(value);
139
+ const maxSize = 1024; // 1KB
140
+ if (json.length > maxSize) {
141
+ return { _truncated: true, _size: json.length };
142
+ }
143
+ return value;
144
+ }
145
+ catch {
146
+ return { _error: 'Unable to serialize value' };
147
+ }
148
+ }
149
+ };
150
+ exports.CacheWatcher = CacheWatcher;
151
+ exports.CacheWatcher = CacheWatcher = CacheWatcher_1 = __decorate([
152
+ (0, common_1.Injectable)(),
153
+ __param(1, (0, common_1.Inject)(nestlens_config_1.NESTLENS_CONFIG)),
154
+ __param(2, (0, common_1.Optional)()),
155
+ __param(2, (0, common_1.Inject)(CACHE_MANAGER)),
156
+ __metadata("design:paramtypes", [collector_service_1.CollectorService, Object, Object])
157
+ ], CacheWatcher);
158
+ //# sourceMappingURL=cache.watcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.watcher.js","sourceRoot":"","sources":["../../src/watchers/cache.watcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { OnModuleInit } from '@nestjs/common';
2
+ import { CollectorService } from '../core/collector.service';
3
+ import { NestLensConfig } from '../nestlens.config';
4
+ type CommandBus = any;
5
+ /**
6
+ * Token for injecting NestJS CQRS CommandBus
7
+ */
8
+ export declare const NESTLENS_COMMAND_BUS: unique symbol;
9
+ /**
10
+ * CommandWatcher tracks CQRS command execution in NestJS applications.
11
+ * Integrates with @nestjs/cqrs CommandBus to monitor command execution,
12
+ * capturing name, handler, status, duration, and results.
13
+ */
14
+ export declare class CommandWatcher implements OnModuleInit {
15
+ private readonly collector;
16
+ private readonly nestlensConfig;
17
+ private readonly commandBus?;
18
+ private readonly logger;
19
+ private readonly config;
20
+ private originalExecute?;
21
+ private readonly commandTracking;
22
+ constructor(collector: CollectorService, nestlensConfig: NestLensConfig, commandBus?: CommandBus | undefined);
23
+ onModuleInit(): void;
24
+ private setupInterceptors;
25
+ private getCommandName;
26
+ private getHandlerName;
27
+ private collectEntry;
28
+ private captureData;
29
+ private extractMetadata;
30
+ }
31
+ export {};
32
+ //# sourceMappingURL=command.watcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.watcher.d.ts","sourceRoot":"","sources":["../../src/watchers/command.watcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,YAAY,EAAY,MAAM,gBAAgB,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAEL,cAAc,EAEf,MAAM,oBAAoB,CAAC;AAI5B,KAAK,UAAU,GAAG,GAAG,CAAC;AAEtB;;GAEG;AACH,eAAO,MAAM,oBAAoB,eAAiC,CAAC;AAEnE;;;;GAIG;AACH,qBACa,cAAe,YAAW,YAAY;IAO/C,OAAO,CAAC,QAAQ,CAAC,SAAS;IAE1B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAG/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAX9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;IAC1D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAC9C,OAAO,CAAC,eAAe,CAAC,CAAyC;IACjE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6B;gBAG1C,SAAS,EAAE,gBAAgB,EAE3B,cAAc,EAAE,cAAc,EAG9B,UAAU,CAAC,EAAE,UAAU,YAAA;IAS1C,YAAY;IAiBZ,OAAO,CAAC,iBAAiB;IAkEzB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,YAAY;IAsBpB,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,eAAe;CAmBxB"}
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var CommandWatcher_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.CommandWatcher = exports.NESTLENS_COMMAND_BUS = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const collector_service_1 = require("../core/collector.service");
19
+ const nestlens_config_1 = require("../nestlens.config");
20
+ /**
21
+ * Token for injecting NestJS CQRS CommandBus
22
+ */
23
+ exports.NESTLENS_COMMAND_BUS = Symbol('NESTLENS_COMMAND_BUS');
24
+ /**
25
+ * CommandWatcher tracks CQRS command execution in NestJS applications.
26
+ * Integrates with @nestjs/cqrs CommandBus to monitor command execution,
27
+ * capturing name, handler, status, duration, and results.
28
+ */
29
+ let CommandWatcher = CommandWatcher_1 = class CommandWatcher {
30
+ constructor(collector, nestlensConfig, commandBus) {
31
+ this.collector = collector;
32
+ this.nestlensConfig = nestlensConfig;
33
+ this.commandBus = commandBus;
34
+ this.logger = new common_1.Logger(CommandWatcher_1.name);
35
+ this.commandTracking = new Map(); // commandId -> startTime
36
+ const watcherConfig = nestlensConfig.watchers?.command;
37
+ this.config =
38
+ typeof watcherConfig === 'object'
39
+ ? watcherConfig
40
+ : { enabled: watcherConfig !== false };
41
+ }
42
+ onModuleInit() {
43
+ if (!this.config.enabled) {
44
+ return;
45
+ }
46
+ // Check if command bus was provided
47
+ if (!this.commandBus) {
48
+ this.logger.debug('CommandWatcher: No command bus found. ' +
49
+ 'To enable command tracking, install and configure @nestjs/cqrs and provide CommandBus.');
50
+ return;
51
+ }
52
+ this.setupInterceptors();
53
+ }
54
+ setupInterceptors() {
55
+ if (!this.commandBus)
56
+ return;
57
+ // Store original execute method
58
+ this.originalExecute = this.commandBus.execute?.bind(this.commandBus);
59
+ if (!this.originalExecute) {
60
+ this.logger.warn('CommandBus does not have execute method');
61
+ return;
62
+ }
63
+ // Wrap execute method
64
+ this.commandBus.execute = async (command) => {
65
+ const startTime = Date.now();
66
+ const commandName = this.getCommandName(command);
67
+ const commandId = `${commandName}-${startTime}`;
68
+ this.commandTracking.set(commandId, startTime);
69
+ // Track command started
70
+ this.collectEntry(commandName, 'executing', 0, command, undefined, undefined);
71
+ try {
72
+ const result = await this.originalExecute(command);
73
+ const duration = Date.now() - startTime;
74
+ this.commandTracking.delete(commandId);
75
+ // Track command completed
76
+ this.collectEntry(commandName, 'completed', duration, command, result, undefined);
77
+ return result;
78
+ }
79
+ catch (error) {
80
+ const duration = Date.now() - startTime;
81
+ this.commandTracking.delete(commandId);
82
+ // Track command failed
83
+ this.collectEntry(commandName, 'failed', duration, command, undefined, error instanceof Error ? error.message : String(error));
84
+ throw error; // Re-throw to maintain original behavior
85
+ }
86
+ };
87
+ this.logger.log('Command interceptors installed');
88
+ }
89
+ getCommandName(command) {
90
+ if (!command)
91
+ return 'UnknownCommand';
92
+ // Try to get the constructor name
93
+ if (typeof command === 'object' && command.constructor) {
94
+ return command.constructor.name;
95
+ }
96
+ return 'UnknownCommand';
97
+ }
98
+ getHandlerName(command) {
99
+ try {
100
+ if (typeof command === 'object' && command !== null) {
101
+ // Try to extract handler information if available
102
+ // This is a best-effort approach as handler info might not be directly accessible
103
+ const handler = command.handler;
104
+ if (handler && typeof handler === 'string') {
105
+ return handler;
106
+ }
107
+ }
108
+ return undefined;
109
+ }
110
+ catch {
111
+ return undefined;
112
+ }
113
+ }
114
+ collectEntry(name, status, duration, command, result, error) {
115
+ const payload = {
116
+ name,
117
+ handler: this.getHandlerName(command),
118
+ status,
119
+ duration: duration > 0 ? duration : undefined,
120
+ payload: this.config.capturePayload !== false ? this.captureData(command) : undefined,
121
+ result: this.config.captureResult !== false ? this.captureData(result) : undefined,
122
+ error,
123
+ metadata: this.extractMetadata(command),
124
+ };
125
+ this.collector.collect('command', payload);
126
+ }
127
+ captureData(data) {
128
+ if (data === undefined || data === null)
129
+ return undefined;
130
+ try {
131
+ // Limit size to prevent huge payloads from bloating storage
132
+ const json = JSON.stringify(data);
133
+ const maxSize = this.config.maxPayloadSize || 64 * 1024; // 64KB default
134
+ if (json.length > maxSize) {
135
+ return { _truncated: true, _size: json.length };
136
+ }
137
+ return data;
138
+ }
139
+ catch {
140
+ return { _error: 'Unable to serialize data' };
141
+ }
142
+ }
143
+ extractMetadata(command) {
144
+ try {
145
+ if (typeof command === 'object' && command !== null) {
146
+ const metadata = {};
147
+ // Extract common metadata fields if they exist
148
+ const cmd = command;
149
+ if (cmd.timestamp)
150
+ metadata.timestamp = cmd.timestamp;
151
+ if (cmd.userId)
152
+ metadata.userId = cmd.userId;
153
+ if (cmd.correlationId)
154
+ metadata.correlationId = cmd.correlationId;
155
+ if (cmd.version)
156
+ metadata.version = cmd.version;
157
+ return Object.keys(metadata).length > 0 ? metadata : undefined;
158
+ }
159
+ return undefined;
160
+ }
161
+ catch {
162
+ return undefined;
163
+ }
164
+ }
165
+ };
166
+ exports.CommandWatcher = CommandWatcher;
167
+ exports.CommandWatcher = CommandWatcher = CommandWatcher_1 = __decorate([
168
+ (0, common_1.Injectable)(),
169
+ __param(1, (0, common_1.Inject)(nestlens_config_1.NESTLENS_CONFIG)),
170
+ __param(2, (0, common_1.Optional)()),
171
+ __param(2, (0, common_1.Inject)(exports.NESTLENS_COMMAND_BUS)),
172
+ __metadata("design:paramtypes", [collector_service_1.CollectorService, Object, Object])
173
+ ], CommandWatcher);
174
+ //# sourceMappingURL=command.watcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.watcher.js","sourceRoot":"","sources":["../../src/watchers/command.watcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAoF;AACpF,iEAA6D;AAC7D,wDAI4B;AAM5B;;GAEG;AACU,QAAA,oBAAoB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AAEnE;;;;GAIG;AAEI,IAAM,cAAc,sBAApB,MAAM,cAAc;IAMzB,YACmB,SAA2B,EAE5C,cAA+C,EAG/C,UAAwC;QALvB,cAAS,GAAT,SAAS,CAAkB;QAE3B,mBAAc,GAAd,cAAc,CAAgB;QAG9B,eAAU,GAAV,UAAU,CAAa;QAXzB,WAAM,GAAG,IAAI,eAAM,CAAC,gBAAc,CAAC,IAAI,CAAC,CAAC;QAGzC,oBAAe,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,yBAAyB;QAUrF,MAAM,aAAa,GAAG,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC;QACvD,IAAI,CAAC,MAAM;YACT,OAAO,aAAa,KAAK,QAAQ;gBAC/B,CAAC,CAAC,aAAa;gBACf,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,KAAK,KAAK,EAAE,CAAC;IAC7C,CAAC;IAED,YAAY;QACV,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,oCAAoC;QACpC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,wCAAwC;gBACxC,wFAAwF,CACzF,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC3B,CAAC;IAEO,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,UAAU;YAAE,OAAO;QAE7B,gCAAgC;QAChC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEtE,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,sBAAsB;QACtB,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,KAAK,EAAE,OAAgB,EAAoB,EAAE;YACrE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACjD,MAAM,SAAS,GAAG,GAAG,WAAW,IAAI,SAAS,EAAE,CAAC;YAEhD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YAE/C,wBAAwB;YACxB,IAAI,CAAC,YAAY,CACf,WAAW,EACX,WAAW,EACX,CAAC,EACD,OAAO,EACP,SAAS,EACT,SAAS,CACV,CAAC;YAEF,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAgB,CAAC,OAAO,CAAC,CAAC;gBACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBACxC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAEvC,0BAA0B;gBAC1B,IAAI,CAAC,YAAY,CACf,WAAW,EACX,WAAW,EACX,QAAQ,EACR,OAAO,EACP,MAAM,EACN,SAAS,CACV,CAAC;gBAEF,OAAO,MAAM,CAAC;YAChB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;gBACxC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAEvC,uBAAuB;gBACvB,IAAI,CAAC,YAAY,CACf,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,SAAS,EACT,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;gBAEF,MAAM,KAAK,CAAC,CAAC,yCAAyC;YACxD,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAEO,cAAc,CAAC,OAAgB;QACrC,IAAI,CAAC,OAAO;YAAE,OAAO,gBAAgB,CAAC;QAEtC,kCAAkC;QAClC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACvD,OAAO,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,CAAC;QAED,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAEO,cAAc,CAAC,OAAgB;QACrC,IAAI,CAAC;YACH,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACpD,kDAAkD;gBAClD,kFAAkF;gBAClF,MAAM,OAAO,GAAI,OAAmC,CAAC,OAAO,CAAC;gBAC7D,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAC3C,OAAO,OAAO,CAAC;gBACjB,CAAC;YACH,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,YAAY,CAClB,IAAY,EACZ,MAA4C,EAC5C,QAAgB,EAChB,OAAiB,EACjB,MAAgB,EAChB,KAAc;QAEd,MAAM,OAAO,GAA4B;YACvC,IAAI;YACJ,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YACrC,MAAM;YACN,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;YAC7C,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;YACrF,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS;YAClF,KAAK;YACL,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;SACxC,CAAC;QAEF,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC7C,CAAC;IAEO,WAAW,CAAC,IAAa;QAC/B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,SAAS,CAAC;QAE1D,IAAI,CAAC;YACH,4DAA4D;YAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,eAAe;YACxE,IAAI,IAAI,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;gBAC1B,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;YAClD,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAC;QAChD,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,OAAgB;QACtC,IAAI,CAAC;YACH,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACpD,MAAM,QAAQ,GAA4B,EAAE,CAAC;gBAE7C,+CAA+C;gBAC/C,MAAM,GAAG,GAAG,OAAkC,CAAC;gBAC/C,IAAI,GAAG,CAAC,SAAS;oBAAE,QAAQ,CAAC,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC;gBACtD,IAAI,GAAG,CAAC,MAAM;oBAAE,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;gBAC7C,IAAI,GAAG,CAAC,aAAa;oBAAE,QAAQ,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC;gBAClE,IAAI,GAAG,CAAC,OAAO;oBAAE,QAAQ,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;gBAEhD,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YACjE,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;CACF,CAAA;AA5LY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;IASR,WAAA,IAAA,eAAM,EAAC,iCAAe,CAAC,CAAA;IAEvB,WAAA,IAAA,iBAAQ,GAAE,CAAA;IACV,WAAA,IAAA,eAAM,EAAC,4BAAoB,CAAC,CAAA;qCAJD,oCAAgB;GAPnC,cAAc,CA4L1B"}
@@ -0,0 +1,52 @@
1
+ import { OnModuleInit } from '@nestjs/common';
2
+ import { CollectorService } from '../core/collector.service';
3
+ import { NestLensConfig } from '../nestlens.config';
4
+ type DumpService = any;
5
+ /**
6
+ * Token for injecting dump/export/import service
7
+ */
8
+ export declare const NESTLENS_DUMP_SERVICE: unique symbol;
9
+ /**
10
+ * DumpWatcher tracks database dumps, exports, imports, and migrations.
11
+ * Monitors data transfer operations, capturing operation type, format,
12
+ * record counts, file sizes, compression, and encryption status.
13
+ */
14
+ export declare class DumpWatcher implements OnModuleInit {
15
+ private readonly collector;
16
+ private readonly nestlensConfig;
17
+ private readonly dumpService?;
18
+ private readonly logger;
19
+ private readonly config;
20
+ private readonly dumpTracking;
21
+ constructor(collector: CollectorService, nestlensConfig: NestLensConfig, dumpService?: DumpService | undefined);
22
+ onModuleInit(): void;
23
+ private setupInterceptors;
24
+ private wrapMethod;
25
+ /**
26
+ * Manual tracking method for dump operations.
27
+ * Call this method to track dump/export/import operations that aren't automatically intercepted.
28
+ *
29
+ * @param operation - Type of operation ('export', 'import', 'backup', 'restore', 'migrate')
30
+ * @param format - Data format ('sql', 'json', 'csv', 'binary')
31
+ * @param options - Operation options (source, destination, recordCount, fileSize, etc.)
32
+ */
33
+ trackDump(operation: 'export' | 'import' | 'backup' | 'restore' | 'migrate', format: 'sql' | 'json' | 'csv' | 'binary', duration: number, status: 'completed' | 'failed', options?: {
34
+ source?: string;
35
+ destination?: string;
36
+ recordCount?: number;
37
+ fileSize?: number;
38
+ compressed?: boolean;
39
+ encrypted?: boolean;
40
+ error?: string;
41
+ }): void;
42
+ private collectEntry;
43
+ private getOperationType;
44
+ private parseResult;
45
+ private parseOptions;
46
+ private extractFormat;
47
+ private extractString;
48
+ private extractNumber;
49
+ private extractBoolean;
50
+ }
51
+ export {};
52
+ //# sourceMappingURL=dump.watcher.d.ts.map