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,149 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.TagController = void 0;
16
+ const common_1 = require("@nestjs/common");
17
+ const tag_service_1 = require("../core/tag.service");
18
+ const nestlens_config_1 = require("../nestlens.config");
19
+ const api_guard_1 = require("./api.guard");
20
+ let TagController = class TagController {
21
+ constructor(tagService) {
22
+ this.tagService = tagService;
23
+ }
24
+ /**
25
+ * Get all tags with their counts
26
+ */
27
+ async getAllTags() {
28
+ const tags = await this.tagService.getAllTags();
29
+ return { data: tags };
30
+ }
31
+ /**
32
+ * Get entries by tag(s)
33
+ */
34
+ async getEntriesByTags(tagsParam, logic, limit) {
35
+ const tags = tagsParam.split(',').map(t => t.trim()).filter(Boolean);
36
+ const entries = await this.tagService.findByTags(tags, logic || 'OR', limit ? parseInt(limit, 10) : 50);
37
+ return { data: entries };
38
+ }
39
+ /**
40
+ * Get tags for a specific entry
41
+ */
42
+ async getEntryTags(id) {
43
+ const tags = await this.tagService.getEntryTags(id);
44
+ return { data: tags };
45
+ }
46
+ /**
47
+ * Add tags to an entry
48
+ */
49
+ async addTagsToEntry(id, body) {
50
+ await this.tagService.addTags(id, body.tags);
51
+ const tags = await this.tagService.getEntryTags(id);
52
+ return { success: true, data: tags };
53
+ }
54
+ /**
55
+ * Remove tags from an entry
56
+ */
57
+ async removeTagsFromEntry(id, body) {
58
+ await this.tagService.removeTags(id, body.tags);
59
+ const tags = await this.tagService.getEntryTags(id);
60
+ return { success: true, data: tags };
61
+ }
62
+ // ==================== Monitored Tags ====================
63
+ /**
64
+ * Get all monitored tags
65
+ */
66
+ async getMonitoredTags() {
67
+ const tags = await this.tagService.getMonitoredTagsWithCounts();
68
+ return { data: tags };
69
+ }
70
+ /**
71
+ * Add a monitored tag
72
+ */
73
+ async addMonitoredTag(body) {
74
+ const tag = await this.tagService.addMonitoredTag(body.tag);
75
+ return { success: true, data: tag };
76
+ }
77
+ /**
78
+ * Remove a monitored tag
79
+ */
80
+ async removeMonitoredTag(tag) {
81
+ await this.tagService.removeMonitoredTag(tag);
82
+ return { success: true };
83
+ }
84
+ };
85
+ exports.TagController = TagController;
86
+ __decorate([
87
+ (0, common_1.Get)(),
88
+ __metadata("design:type", Function),
89
+ __metadata("design:paramtypes", []),
90
+ __metadata("design:returntype", Promise)
91
+ ], TagController.prototype, "getAllTags", null);
92
+ __decorate([
93
+ (0, common_1.Get)('entries'),
94
+ __param(0, (0, common_1.Query)('tags')),
95
+ __param(1, (0, common_1.Query)('logic')),
96
+ __param(2, (0, common_1.Query)('limit')),
97
+ __metadata("design:type", Function),
98
+ __metadata("design:paramtypes", [String, String, String]),
99
+ __metadata("design:returntype", Promise)
100
+ ], TagController.prototype, "getEntriesByTags", null);
101
+ __decorate([
102
+ (0, common_1.Get)('entry/:id'),
103
+ __param(0, (0, common_1.Param)('id', common_1.ParseIntPipe)),
104
+ __metadata("design:type", Function),
105
+ __metadata("design:paramtypes", [Number]),
106
+ __metadata("design:returntype", Promise)
107
+ ], TagController.prototype, "getEntryTags", null);
108
+ __decorate([
109
+ (0, common_1.Post)('entry/:id'),
110
+ __param(0, (0, common_1.Param)('id', common_1.ParseIntPipe)),
111
+ __param(1, (0, common_1.Body)()),
112
+ __metadata("design:type", Function),
113
+ __metadata("design:paramtypes", [Number, Object]),
114
+ __metadata("design:returntype", Promise)
115
+ ], TagController.prototype, "addTagsToEntry", null);
116
+ __decorate([
117
+ (0, common_1.Delete)('entry/:id'),
118
+ __param(0, (0, common_1.Param)('id', common_1.ParseIntPipe)),
119
+ __param(1, (0, common_1.Body)()),
120
+ __metadata("design:type", Function),
121
+ __metadata("design:paramtypes", [Number, Object]),
122
+ __metadata("design:returntype", Promise)
123
+ ], TagController.prototype, "removeTagsFromEntry", null);
124
+ __decorate([
125
+ (0, common_1.Get)('monitored'),
126
+ __metadata("design:type", Function),
127
+ __metadata("design:paramtypes", []),
128
+ __metadata("design:returntype", Promise)
129
+ ], TagController.prototype, "getMonitoredTags", null);
130
+ __decorate([
131
+ (0, common_1.Post)('monitored'),
132
+ __param(0, (0, common_1.Body)()),
133
+ __metadata("design:type", Function),
134
+ __metadata("design:paramtypes", [Object]),
135
+ __metadata("design:returntype", Promise)
136
+ ], TagController.prototype, "addMonitoredTag", null);
137
+ __decorate([
138
+ (0, common_1.Delete)('monitored/:tag'),
139
+ __param(0, (0, common_1.Param)('tag')),
140
+ __metadata("design:type", Function),
141
+ __metadata("design:paramtypes", [String]),
142
+ __metadata("design:returntype", Promise)
143
+ ], TagController.prototype, "removeMonitoredTag", null);
144
+ exports.TagController = TagController = __decorate([
145
+ (0, common_1.Controller)(`${nestlens_config_1.NESTLENS_API_PREFIX}/api/tags`),
146
+ (0, common_1.UseGuards)(api_guard_1.NestLensGuard),
147
+ __metadata("design:paramtypes", [tag_service_1.TagService])
148
+ ], TagController);
149
+ //# sourceMappingURL=tag.controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag.controller.js","sourceRoot":"","sources":["../../src/api/tag.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ import { OnModuleDestroy } from '@nestjs/common';
2
+ import { Entry, EntryType } from '../types';
3
+ import { StorageInterface } from './storage/storage.interface';
4
+ import { TagService } from './tag.service';
5
+ import { FamilyHashService } from './family-hash.service';
6
+ import { NestLensConfig } from '../nestlens.config';
7
+ export declare class CollectorService implements OnModuleDestroy {
8
+ private readonly storage;
9
+ private readonly config;
10
+ private readonly tagService?;
11
+ private readonly familyHashService?;
12
+ private readonly logger;
13
+ private buffer;
14
+ private flushTimer;
15
+ private readonly BUFFER_SIZE;
16
+ private readonly FLUSH_INTERVAL;
17
+ private isPaused;
18
+ private pausedAt?;
19
+ private pauseReason?;
20
+ constructor(storage: StorageInterface, config: NestLensConfig, tagService?: TagService | undefined, familyHashService?: FamilyHashService | undefined);
21
+ /**
22
+ * Apply filter to an entry
23
+ */
24
+ private applyFilter;
25
+ /**
26
+ * Pause recording
27
+ */
28
+ pause(reason?: string): void;
29
+ /**
30
+ * Resume recording
31
+ */
32
+ resume(): void;
33
+ /**
34
+ * Get recording status
35
+ */
36
+ getRecordingStatus(): {
37
+ isPaused: boolean;
38
+ pausedAt?: Date;
39
+ pauseReason?: string;
40
+ };
41
+ /**
42
+ * Collect an entry
43
+ * Uses discriminated union pattern - the type parameter determines the expected payload type
44
+ */
45
+ collect<T extends EntryType>(type: T, payload: Extract<Entry, {
46
+ type: T;
47
+ }>['payload'], requestId?: string): Promise<void>;
48
+ /**
49
+ * Collect and save immediately (for critical entries like exceptions)
50
+ * Uses discriminated union pattern - the type parameter determines the expected payload type
51
+ */
52
+ collectImmediate<T extends EntryType>(type: T, payload: Extract<Entry, {
53
+ type: T;
54
+ }>['payload'], requestId?: string): Promise<Entry | null>;
55
+ /**
56
+ * Apply auto-tagging and family hash to a saved entry
57
+ */
58
+ private applyAutoTagging;
59
+ /**
60
+ * Save entries with retry logic
61
+ */
62
+ private saveWithRetry;
63
+ /**
64
+ * Flush buffer to storage
65
+ */
66
+ flush(): Promise<void>;
67
+ /**
68
+ * Start periodic flush timer
69
+ */
70
+ private startFlushTimer;
71
+ /**
72
+ * Stop flush timer and flush remaining entries
73
+ */
74
+ shutdown(): Promise<void>;
75
+ /**
76
+ * Lifecycle hook - cleanup on module destroy
77
+ */
78
+ onModuleDestroy(): Promise<void>;
79
+ }
80
+ //# sourceMappingURL=collector.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collector.service.d.ts","sourceRoot":"","sources":["../../src/core/collector.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,eAAe,EAAY,MAAM,gBAAgB,CAAC;AACvF,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAW,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAmB,MAAM,oBAAoB,CAAC;AAErE,qBACa,gBAAiB,YAAW,eAAe;IAYpD,OAAO,CAAC,QAAQ,CAAC,OAAO;IAExB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAEvB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAE5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAjBrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqC;IAC5D,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAO;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IACvC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,CAAO;IACxB,OAAO,CAAC,WAAW,CAAC,CAAS;gBAIV,OAAO,EAAE,gBAAgB,EAEzB,MAAM,EAAE,cAAc,EAEtB,UAAU,CAAC,EAAE,UAAU,YAAA,EAEvB,iBAAiB,CAAC,EAAE,iBAAiB,YAAA;IAKxD;;OAEG;YACW,WAAW;IAWzB;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAS5B;;OAEG;IACH,MAAM,IAAI,IAAI;IASd;;OAEG;IACH,kBAAkB,IAAI;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE;IAQlF;;;OAGG;IACG,OAAO,CAAC,CAAC,SAAS,SAAS,EAC/B,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC,SAAS,CAAC,EAC/C,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC;IA2BhB;;;OAGG;IACG,gBAAgB,CAAC,CAAC,SAAS,SAAS,EACxC,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC,CAAC,SAAS,CAAC,EAC/C,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAgCxB;;OAEG;YACW,gBAAgB;IAuB9B;;OAEG;YACW,aAAa;IAiB3B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgC5B;;OAEG;IACH,OAAO,CAAC,eAAe;IAQvB;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ/B;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;CAGvC"}
@@ -0,0 +1,255 @@
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 CollectorService_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.CollectorService = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const storage_interface_1 = require("./storage/storage.interface");
19
+ const tag_service_1 = require("./tag.service");
20
+ const family_hash_service_1 = require("./family-hash.service");
21
+ const nestlens_config_1 = require("../nestlens.config");
22
+ let CollectorService = CollectorService_1 = class CollectorService {
23
+ constructor(storage, config, tagService, familyHashService) {
24
+ this.storage = storage;
25
+ this.config = config;
26
+ this.tagService = tagService;
27
+ this.familyHashService = familyHashService;
28
+ this.logger = new common_1.Logger(CollectorService_1.name);
29
+ this.buffer = [];
30
+ this.flushTimer = null;
31
+ this.BUFFER_SIZE = 100;
32
+ this.FLUSH_INTERVAL = 1000; // 1 second
33
+ this.isPaused = false;
34
+ this.startFlushTimer();
35
+ }
36
+ /**
37
+ * Apply filter to an entry
38
+ */
39
+ async applyFilter(entry) {
40
+ if (!this.config.filter)
41
+ return true;
42
+ try {
43
+ const result = this.config.filter(entry);
44
+ return result instanceof Promise ? await result : result;
45
+ }
46
+ catch (error) {
47
+ this.logger.warn(`Filter callback error: ${error}`);
48
+ return true; // Fail-open - don't block collection on filter errors
49
+ }
50
+ }
51
+ /**
52
+ * Pause recording
53
+ */
54
+ pause(reason) {
55
+ if (!this.isPaused) {
56
+ this.isPaused = true;
57
+ this.pausedAt = new Date();
58
+ this.pauseReason = reason;
59
+ this.logger.log(`Recording paused${reason ? `: ${reason}` : ''}`);
60
+ }
61
+ }
62
+ /**
63
+ * Resume recording
64
+ */
65
+ resume() {
66
+ if (this.isPaused) {
67
+ this.isPaused = false;
68
+ this.pausedAt = undefined;
69
+ this.pauseReason = undefined;
70
+ this.logger.log('Recording resumed');
71
+ }
72
+ }
73
+ /**
74
+ * Get recording status
75
+ */
76
+ getRecordingStatus() {
77
+ return {
78
+ isPaused: this.isPaused,
79
+ pausedAt: this.pausedAt,
80
+ pauseReason: this.pauseReason,
81
+ };
82
+ }
83
+ /**
84
+ * Collect an entry
85
+ * Uses discriminated union pattern - the type parameter determines the expected payload type
86
+ */
87
+ async collect(type, payload, requestId) {
88
+ // Skip collection if paused
89
+ if (this.isPaused) {
90
+ return;
91
+ }
92
+ // Entry construction is type-safe: type and payload are correlated via the generic constraint
93
+ const entry = {
94
+ type,
95
+ payload,
96
+ requestId,
97
+ };
98
+ // Apply filter
99
+ const shouldCollect = await this.applyFilter(entry);
100
+ if (!shouldCollect) {
101
+ return;
102
+ }
103
+ this.buffer.push(entry);
104
+ // Flush if buffer is full
105
+ if (this.buffer.length >= this.BUFFER_SIZE) {
106
+ await this.flush();
107
+ }
108
+ }
109
+ /**
110
+ * Collect and save immediately (for critical entries like exceptions)
111
+ * Uses discriminated union pattern - the type parameter determines the expected payload type
112
+ */
113
+ async collectImmediate(type, payload, requestId) {
114
+ // Skip collection if paused
115
+ if (this.isPaused) {
116
+ return null;
117
+ }
118
+ // Entry construction is type-safe: type and payload are correlated via the generic constraint
119
+ const entry = {
120
+ type,
121
+ payload,
122
+ requestId,
123
+ };
124
+ // Apply filter
125
+ const shouldCollect = await this.applyFilter(entry);
126
+ if (!shouldCollect) {
127
+ return null;
128
+ }
129
+ try {
130
+ const savedEntry = await this.storage.save(entry);
131
+ // Apply auto-tagging and family hash after saving
132
+ await this.applyAutoTagging(savedEntry);
133
+ return savedEntry;
134
+ }
135
+ catch (error) {
136
+ this.logger.error(`Failed to save entry: ${error}`);
137
+ throw error;
138
+ }
139
+ }
140
+ /**
141
+ * Apply auto-tagging and family hash to a saved entry
142
+ */
143
+ async applyAutoTagging(entry) {
144
+ if (!entry.id)
145
+ return;
146
+ try {
147
+ // Generate and save family hash
148
+ if (this.familyHashService) {
149
+ const familyHash = this.familyHashService.generateFamilyHash(entry);
150
+ if (familyHash) {
151
+ await this.storage.updateFamilyHash(entry.id, familyHash);
152
+ entry.familyHash = familyHash;
153
+ }
154
+ }
155
+ // Auto-tag the entry
156
+ if (this.tagService) {
157
+ await this.tagService.autoTag(entry);
158
+ }
159
+ }
160
+ catch (error) {
161
+ // Don't fail the save if tagging fails
162
+ this.logger.warn(`Failed to apply auto-tagging to entry ${entry.id}: ${error}`);
163
+ }
164
+ }
165
+ /**
166
+ * Save entries with retry logic
167
+ */
168
+ async saveWithRetry(entries, maxRetries = 3) {
169
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
170
+ try {
171
+ return await this.storage.saveBatch(entries);
172
+ }
173
+ catch (error) {
174
+ if (attempt === maxRetries) {
175
+ this.logger.error(`Failed to save entries after ${maxRetries} attempts`, error);
176
+ throw error;
177
+ }
178
+ this.logger.warn(`Save attempt ${attempt} failed, retrying...`);
179
+ await new Promise(r => setTimeout(r, 100 * attempt));
180
+ }
181
+ }
182
+ // This should never be reached, but TypeScript needs it
183
+ throw new Error('Unreachable code');
184
+ }
185
+ /**
186
+ * Flush buffer to storage
187
+ */
188
+ async flush() {
189
+ if (this.buffer.length === 0)
190
+ return;
191
+ let entries = [...this.buffer];
192
+ this.buffer = [];
193
+ // Apply batch filter if configured
194
+ if (this.config.filterBatch) {
195
+ try {
196
+ const result = this.config.filterBatch(entries);
197
+ entries = result instanceof Promise ? await result : result;
198
+ }
199
+ catch (error) {
200
+ this.logger.warn(`Batch filter callback error: ${error}`);
201
+ // Fail-open - continue with original entries on filter error
202
+ }
203
+ }
204
+ // Skip if all entries were filtered out
205
+ if (entries.length === 0)
206
+ return;
207
+ try {
208
+ const savedEntries = await this.saveWithRetry(entries);
209
+ // Optimized: Apply auto-tagging in parallel instead of sequentially
210
+ await Promise.all(savedEntries.map(entry => this.applyAutoTagging(entry)));
211
+ }
212
+ catch (error) {
213
+ this.logger.error(`Failed to flush entries: ${error}`);
214
+ // Put entries back in buffer
215
+ this.buffer = [...entries, ...this.buffer];
216
+ }
217
+ }
218
+ /**
219
+ * Start periodic flush timer
220
+ */
221
+ startFlushTimer() {
222
+ this.flushTimer = setInterval(() => {
223
+ this.flush().catch((err) => {
224
+ this.logger.error(`Flush timer error: ${err}`);
225
+ });
226
+ }, this.FLUSH_INTERVAL);
227
+ }
228
+ /**
229
+ * Stop flush timer and flush remaining entries
230
+ */
231
+ async shutdown() {
232
+ if (this.flushTimer) {
233
+ clearInterval(this.flushTimer);
234
+ this.flushTimer = null;
235
+ }
236
+ await this.flush();
237
+ }
238
+ /**
239
+ * Lifecycle hook - cleanup on module destroy
240
+ */
241
+ async onModuleDestroy() {
242
+ await this.shutdown();
243
+ }
244
+ };
245
+ exports.CollectorService = CollectorService;
246
+ exports.CollectorService = CollectorService = CollectorService_1 = __decorate([
247
+ (0, common_1.Injectable)(),
248
+ __param(0, (0, common_1.Inject)(storage_interface_1.STORAGE)),
249
+ __param(1, (0, common_1.Inject)(nestlens_config_1.NESTLENS_CONFIG)),
250
+ __param(2, (0, common_1.Optional)()),
251
+ __param(3, (0, common_1.Optional)()),
252
+ __metadata("design:paramtypes", [Object, Object, tag_service_1.TagService,
253
+ family_hash_service_1.FamilyHashService])
254
+ ], CollectorService);
255
+ //# sourceMappingURL=collector.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collector.service.js","sourceRoot":"","sources":["../../src/core/collector.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import { Entry } from '../types';
2
+ /**
3
+ * Service for generating family hashes to group similar entries
4
+ *
5
+ * Family hashes allow grouping similar exceptions, queries, etc.
6
+ * to identify recurring issues and reduce noise in the dashboard.
7
+ */
8
+ export declare class FamilyHashService {
9
+ private readonly logger;
10
+ /**
11
+ * Generate a family hash for an entry
12
+ * Returns undefined if no meaningful hash can be generated
13
+ */
14
+ generateFamilyHash(entry: Entry): string | undefined;
15
+ /**
16
+ * Hash an exception based on name, file, and line number
17
+ */
18
+ private hashException;
19
+ /**
20
+ * Hash a query based on normalized SQL
21
+ */
22
+ private hashQuery;
23
+ /**
24
+ * Hash a log entry based on context and message pattern
25
+ */
26
+ private hashLog;
27
+ /**
28
+ * Hash a command based on command name and handler
29
+ */
30
+ private hashCommand;
31
+ /**
32
+ * Hash a gate based on gate name, action, and subject type
33
+ */
34
+ private hashGate;
35
+ /**
36
+ * Hash a batch operation based on name and operation
37
+ */
38
+ private hashBatch;
39
+ /**
40
+ * Extract file and line information from stack trace
41
+ */
42
+ private extractStackInfo;
43
+ /**
44
+ * Normalize file path to remove node_modules and project root
45
+ */
46
+ private normalizeFilePath;
47
+ /**
48
+ * Normalize SQL query by removing specific values
49
+ */
50
+ private normalizeQuery;
51
+ /**
52
+ * Normalize error message by removing specific values
53
+ */
54
+ private normalizeErrorMessage;
55
+ /**
56
+ * Normalize subject by removing IDs and specific values
57
+ */
58
+ private normalizeSubject;
59
+ /**
60
+ * Create SHA256 hash of input, truncated to 16 characters
61
+ */
62
+ private hash;
63
+ }
64
+ //# sourceMappingURL=family-hash.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"family-hash.service.d.ts","sourceRoot":"","sources":["../../src/core/family-hash.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC;;;;;GAKG;AACH,qBACa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;IAE7D;;;OAGG;IACH,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS;IAmBpD;;OAEG;IACH,OAAO,CAAC,aAAa;IAmBrB;;OAEG;IACH,OAAO,CAAC,SAAS;IAejB;;OAEG;IACH,OAAO,CAAC,OAAO;IAoBf;;OAEG;IACH,OAAO,CAAC,WAAW;IAanB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAgBhB;;OAEG;IACH,OAAO,CAAC,SAAS;IAYjB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAwBxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAazB;;OAEG;IACH,OAAO,CAAC,cAAc;IAkBtB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAoB7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAWxB;;OAEG;IACH,OAAO,CAAC,IAAI;CAOb"}