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,495 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * ExceptionWatcher Tests
5
+ *
6
+ * Tests for the exception filter that catches and collects exceptions.
7
+ * Follows AAA (Arrange-Act-Assert) pattern.
8
+ */
9
+ const common_1 = require("@nestjs/common");
10
+ const testing_1 = require("@nestjs/testing");
11
+ const collector_service_1 = require("../../core/collector.service");
12
+ const nestlens_config_1 = require("../../nestlens.config");
13
+ const exception_watcher_1 = require("../../watchers/exception.watcher");
14
+ describe('ExceptionWatcher', () => {
15
+ let watcher;
16
+ let mockCollector;
17
+ let mockResponse;
18
+ let mockConfig;
19
+ const createMockRequest = (overrides = {}) => ({
20
+ method: 'POST',
21
+ url: '/api/users',
22
+ originalUrl: '/api/users',
23
+ path: '/api/users',
24
+ body: { name: 'Test User' },
25
+ nestlensRequestId: 'req-123',
26
+ ...overrides,
27
+ });
28
+ const createMockResponse = () => {
29
+ const res = {
30
+ status: jest.fn().mockReturnThis(),
31
+ json: jest.fn().mockReturnThis(),
32
+ };
33
+ return res;
34
+ };
35
+ const createMockHost = (request, response, type = 'http') => ({
36
+ switchToHttp: () => ({
37
+ getRequest: () => request,
38
+ getResponse: () => response,
39
+ }),
40
+ getType: () => type,
41
+ });
42
+ const createWatcher = async (config) => {
43
+ const module = await testing_1.Test.createTestingModule({
44
+ providers: [
45
+ exception_watcher_1.ExceptionWatcher,
46
+ { provide: collector_service_1.CollectorService, useValue: mockCollector },
47
+ { provide: nestlens_config_1.NESTLENS_CONFIG, useValue: config },
48
+ ],
49
+ }).compile();
50
+ return module.get(exception_watcher_1.ExceptionWatcher);
51
+ };
52
+ beforeEach(() => {
53
+ mockCollector = {
54
+ collect: jest.fn(),
55
+ collectImmediate: jest.fn(),
56
+ };
57
+ mockResponse = createMockResponse();
58
+ mockConfig = {
59
+ enabled: true,
60
+ path: '/__nestlens',
61
+ watchers: {
62
+ exception: { enabled: true },
63
+ },
64
+ };
65
+ });
66
+ // ============================================================================
67
+ // Config Handling
68
+ // ============================================================================
69
+ describe('Config Handling', () => {
70
+ it('should be enabled when exception watcher config is true', async () => {
71
+ // Arrange
72
+ mockConfig.watchers = { exception: true };
73
+ watcher = await createWatcher(mockConfig);
74
+ const request = createMockRequest();
75
+ const host = createMockHost(request, mockResponse);
76
+ const error = new Error('Test error');
77
+ // Act
78
+ watcher.catch(error, host);
79
+ // Assert
80
+ expect(mockCollector.collectImmediate).toHaveBeenCalled();
81
+ });
82
+ it('should be disabled when exception watcher config is false', async () => {
83
+ // Arrange
84
+ mockConfig.watchers = { exception: false };
85
+ watcher = await createWatcher(mockConfig);
86
+ const request = createMockRequest();
87
+ const host = createMockHost(request, mockResponse);
88
+ const error = new Error('Test error');
89
+ // Act
90
+ watcher.catch(error, host);
91
+ // Assert
92
+ expect(mockCollector.collectImmediate).not.toHaveBeenCalled();
93
+ expect(mockResponse.status).toHaveBeenCalledWith(500);
94
+ });
95
+ it('should be enabled by default when watchers config is undefined', async () => {
96
+ // Arrange
97
+ mockConfig.watchers = undefined;
98
+ watcher = await createWatcher(mockConfig);
99
+ const request = createMockRequest();
100
+ const host = createMockHost(request, mockResponse);
101
+ const error = new Error('Test error');
102
+ // Act
103
+ watcher.catch(error, host);
104
+ // Assert
105
+ expect(mockCollector.collectImmediate).toHaveBeenCalled();
106
+ });
107
+ it('should handle object config with enabled property', async () => {
108
+ // Arrange
109
+ mockConfig.watchers = { exception: { enabled: true, ignoreExceptions: ['NotFoundException'] } };
110
+ watcher = await createWatcher(mockConfig);
111
+ const request = createMockRequest();
112
+ const host = createMockHost(request, mockResponse);
113
+ const error = new Error('Test error');
114
+ // Act
115
+ watcher.catch(error, host);
116
+ // Assert
117
+ expect(mockCollector.collectImmediate).toHaveBeenCalled();
118
+ });
119
+ });
120
+ // ============================================================================
121
+ // Exception Collection
122
+ // ============================================================================
123
+ describe('Exception Collection', () => {
124
+ beforeEach(async () => {
125
+ watcher = await createWatcher(mockConfig);
126
+ });
127
+ it('should collect exception with full payload', async () => {
128
+ // Arrange
129
+ const request = createMockRequest({
130
+ method: 'POST',
131
+ originalUrl: '/api/users/create',
132
+ body: { email: 'test@example.com' },
133
+ nestlensRequestId: 'req-456',
134
+ });
135
+ const host = createMockHost(request, mockResponse);
136
+ const error = new Error('Something went wrong');
137
+ error.stack = 'Error: Something went wrong\n at test.ts:10';
138
+ // Act
139
+ watcher.catch(error, host);
140
+ // Assert
141
+ expect(mockCollector.collectImmediate).toHaveBeenCalledWith('exception', expect.objectContaining({
142
+ name: 'Error',
143
+ message: 'Something went wrong',
144
+ stack: error.stack,
145
+ context: 'HTTP',
146
+ request: {
147
+ method: 'POST',
148
+ url: '/api/users/create',
149
+ body: { email: 'test@example.com' },
150
+ },
151
+ }), 'req-456');
152
+ });
153
+ it('should use collectImmediate for exceptions', async () => {
154
+ // Arrange
155
+ const request = createMockRequest();
156
+ const host = createMockHost(request, mockResponse);
157
+ const error = new Error('Critical error');
158
+ // Act
159
+ watcher.catch(error, host);
160
+ // Assert
161
+ expect(mockCollector.collectImmediate).toHaveBeenCalled();
162
+ expect(mockCollector.collect).not.toHaveBeenCalled();
163
+ });
164
+ it('should collect exception name and message', async () => {
165
+ // Arrange
166
+ const request = createMockRequest();
167
+ const host = createMockHost(request, mockResponse);
168
+ class CustomError extends Error {
169
+ constructor(message) {
170
+ super(message);
171
+ this.name = 'CustomError';
172
+ }
173
+ }
174
+ const error = new CustomError('Custom error occurred');
175
+ // Act
176
+ watcher.catch(error, host);
177
+ // Assert
178
+ expect(mockCollector.collectImmediate).toHaveBeenCalledWith('exception', expect.objectContaining({
179
+ name: 'CustomError',
180
+ message: 'Custom error occurred',
181
+ }), expect.any(String));
182
+ });
183
+ });
184
+ // ============================================================================
185
+ // Path Skipping
186
+ // ============================================================================
187
+ describe('Path Skipping', () => {
188
+ beforeEach(async () => {
189
+ watcher = await createWatcher(mockConfig);
190
+ });
191
+ it('should skip NestLens dashboard paths', async () => {
192
+ // Arrange
193
+ const request = createMockRequest({ path: '/__nestlens/dashboard' });
194
+ const host = createMockHost(request, mockResponse);
195
+ const error = new Error('Dashboard error');
196
+ // Act
197
+ watcher.catch(error, host);
198
+ // Assert
199
+ expect(mockCollector.collectImmediate).not.toHaveBeenCalled();
200
+ });
201
+ it('should skip NestLens API paths', async () => {
202
+ // Arrange
203
+ const request = createMockRequest({ path: '/__nestlens-api/entries' });
204
+ const host = createMockHost(request, mockResponse);
205
+ const error = new Error('API error');
206
+ // Act
207
+ watcher.catch(error, host);
208
+ // Assert
209
+ expect(mockCollector.collectImmediate).not.toHaveBeenCalled();
210
+ });
211
+ it('should collect exceptions on regular paths', async () => {
212
+ // Arrange
213
+ const request = createMockRequest({ path: '/api/users' });
214
+ const host = createMockHost(request, mockResponse);
215
+ const error = new Error('Regular error');
216
+ // Act
217
+ watcher.catch(error, host);
218
+ // Assert
219
+ expect(mockCollector.collectImmediate).toHaveBeenCalled();
220
+ });
221
+ it('should use custom NestLens path from config', async () => {
222
+ // Arrange
223
+ mockConfig.path = '/custom-debug';
224
+ watcher = await createWatcher(mockConfig);
225
+ const request = createMockRequest({ path: '/custom-debug/stats' });
226
+ const host = createMockHost(request, mockResponse);
227
+ const error = new Error('Debug error');
228
+ // Act
229
+ watcher.catch(error, host);
230
+ // Assert
231
+ expect(mockCollector.collectImmediate).not.toHaveBeenCalled();
232
+ });
233
+ });
234
+ // ============================================================================
235
+ // Ignored Exceptions
236
+ // ============================================================================
237
+ describe('Ignored Exceptions', () => {
238
+ it('should skip ignored exceptions by name', async () => {
239
+ // Arrange
240
+ mockConfig.watchers = {
241
+ exception: { enabled: true, ignoreExceptions: ['NotFoundException', 'UnauthorizedException'] }
242
+ };
243
+ watcher = await createWatcher(mockConfig);
244
+ class NotFoundException extends Error {
245
+ constructor() {
246
+ super('Not Found');
247
+ this.name = 'NotFoundException';
248
+ }
249
+ }
250
+ const request = createMockRequest();
251
+ const host = createMockHost(request, mockResponse);
252
+ const error = new NotFoundException();
253
+ // Act
254
+ watcher.catch(error, host);
255
+ // Assert
256
+ expect(mockCollector.collectImmediate).not.toHaveBeenCalled();
257
+ });
258
+ it('should collect non-ignored exceptions', async () => {
259
+ // Arrange
260
+ mockConfig.watchers = {
261
+ exception: { enabled: true, ignoreExceptions: ['NotFoundException'] }
262
+ };
263
+ watcher = await createWatcher(mockConfig);
264
+ const request = createMockRequest();
265
+ const host = createMockHost(request, mockResponse);
266
+ const error = new Error('Internal error');
267
+ // Act
268
+ watcher.catch(error, host);
269
+ // Assert
270
+ expect(mockCollector.collectImmediate).toHaveBeenCalled();
271
+ });
272
+ });
273
+ // ============================================================================
274
+ // HTTP Exception Handling
275
+ // ============================================================================
276
+ describe('HTTP Exception Handling', () => {
277
+ beforeEach(async () => {
278
+ watcher = await createWatcher(mockConfig);
279
+ });
280
+ it('should extract status code from HttpException', async () => {
281
+ // Arrange
282
+ const request = createMockRequest();
283
+ const host = createMockHost(request, mockResponse);
284
+ const error = new common_1.HttpException('Not Found', 404);
285
+ // Act
286
+ watcher.catch(error, host);
287
+ // Assert
288
+ expect(mockCollector.collectImmediate).toHaveBeenCalledWith('exception', expect.objectContaining({
289
+ code: 404,
290
+ }), expect.any(String));
291
+ expect(mockResponse.status).toHaveBeenCalledWith(404);
292
+ });
293
+ it('should respond with HttpException response', async () => {
294
+ // Arrange
295
+ const request = createMockRequest();
296
+ const host = createMockHost(request, mockResponse);
297
+ const error = new common_1.HttpException({ message: 'Bad Request', errors: ['Invalid email'] }, 400);
298
+ // Act
299
+ watcher.catch(error, host);
300
+ // Assert
301
+ expect(mockResponse.status).toHaveBeenCalledWith(400);
302
+ expect(mockResponse.json).toHaveBeenCalledWith({ message: 'Bad Request', errors: ['Invalid email'] });
303
+ });
304
+ it('should respond with 500 for non-HttpException', async () => {
305
+ // Arrange
306
+ const request = createMockRequest();
307
+ const host = createMockHost(request, mockResponse);
308
+ const error = new Error('Internal error');
309
+ // Act
310
+ watcher.catch(error, host);
311
+ // Assert
312
+ expect(mockResponse.status).toHaveBeenCalledWith(500);
313
+ expect(mockResponse.json).toHaveBeenCalledWith({
314
+ statusCode: 500,
315
+ message: 'Internal error',
316
+ error: 'Internal Server Error',
317
+ });
318
+ });
319
+ });
320
+ // ============================================================================
321
+ // Error Code Extraction
322
+ // ============================================================================
323
+ describe('Error Code Extraction', () => {
324
+ beforeEach(async () => {
325
+ watcher = await createWatcher(mockConfig);
326
+ });
327
+ it('should extract code property from custom errors', async () => {
328
+ // Arrange
329
+ const request = createMockRequest();
330
+ const host = createMockHost(request, mockResponse);
331
+ class DatabaseError extends Error {
332
+ constructor() {
333
+ super('Connection refused');
334
+ this.code = 'ECONNREFUSED';
335
+ this.name = 'DatabaseError';
336
+ }
337
+ }
338
+ const error = new DatabaseError();
339
+ // Act
340
+ watcher.catch(error, host);
341
+ // Assert
342
+ expect(mockCollector.collectImmediate).toHaveBeenCalledWith('exception', expect.objectContaining({
343
+ code: 'ECONNREFUSED',
344
+ }), expect.any(String));
345
+ });
346
+ it('should extract numeric code from errors', async () => {
347
+ // Arrange
348
+ const request = createMockRequest();
349
+ const host = createMockHost(request, mockResponse);
350
+ class SystemError extends Error {
351
+ constructor() {
352
+ super('Resource busy');
353
+ this.code = 11;
354
+ this.name = 'SystemError';
355
+ }
356
+ }
357
+ const error = new SystemError();
358
+ // Act
359
+ watcher.catch(error, host);
360
+ // Assert
361
+ expect(mockCollector.collectImmediate).toHaveBeenCalledWith('exception', expect.objectContaining({
362
+ code: 11,
363
+ }), expect.any(String));
364
+ });
365
+ it('should return undefined for errors without code', async () => {
366
+ // Arrange
367
+ const request = createMockRequest();
368
+ const host = createMockHost(request, mockResponse);
369
+ const error = new Error('Simple error');
370
+ // Act
371
+ watcher.catch(error, host);
372
+ // Assert
373
+ expect(mockCollector.collectImmediate).toHaveBeenCalledWith('exception', expect.objectContaining({
374
+ code: undefined,
375
+ }), expect.any(String));
376
+ });
377
+ });
378
+ // ============================================================================
379
+ // Context Detection
380
+ // ============================================================================
381
+ describe('Context Detection', () => {
382
+ beforeEach(async () => {
383
+ watcher = await createWatcher(mockConfig);
384
+ });
385
+ it('should detect HTTP context', async () => {
386
+ // Arrange
387
+ const request = createMockRequest();
388
+ const host = createMockHost(request, mockResponse, 'http');
389
+ // Act
390
+ watcher.catch(new Error('Test'), host);
391
+ // Assert
392
+ expect(mockCollector.collectImmediate).toHaveBeenCalledWith('exception', expect.objectContaining({
393
+ context: 'HTTP',
394
+ }), expect.any(String));
395
+ });
396
+ it('should detect RPC context', async () => {
397
+ // Arrange
398
+ const request = createMockRequest();
399
+ const host = createMockHost(request, mockResponse, 'rpc');
400
+ // Act
401
+ watcher.catch(new Error('Test'), host);
402
+ // Assert
403
+ expect(mockCollector.collectImmediate).toHaveBeenCalledWith('exception', expect.objectContaining({
404
+ context: 'RPC',
405
+ }), expect.any(String));
406
+ });
407
+ it('should detect WebSocket context', async () => {
408
+ // Arrange
409
+ const request = createMockRequest();
410
+ const host = createMockHost(request, mockResponse, 'ws');
411
+ // Act
412
+ watcher.catch(new Error('Test'), host);
413
+ // Assert
414
+ expect(mockCollector.collectImmediate).toHaveBeenCalledWith('exception', expect.objectContaining({
415
+ context: 'WebSocket',
416
+ }), expect.any(String));
417
+ });
418
+ it('should use raw type for unknown contexts', async () => {
419
+ // Arrange
420
+ const request = createMockRequest();
421
+ const host = createMockHost(request, mockResponse, 'graphql');
422
+ // Act
423
+ watcher.catch(new Error('Test'), host);
424
+ // Assert
425
+ expect(mockCollector.collectImmediate).toHaveBeenCalledWith('exception', expect.objectContaining({
426
+ context: 'graphql',
427
+ }), expect.any(String));
428
+ });
429
+ });
430
+ // ============================================================================
431
+ // Request Info Capture
432
+ // ============================================================================
433
+ describe('Request Info Capture', () => {
434
+ beforeEach(async () => {
435
+ watcher = await createWatcher(mockConfig);
436
+ });
437
+ it('should capture request method and URL', async () => {
438
+ // Arrange
439
+ const request = createMockRequest({
440
+ method: 'DELETE',
441
+ originalUrl: '/api/users/123',
442
+ });
443
+ const host = createMockHost(request, mockResponse);
444
+ // Act
445
+ watcher.catch(new Error('Delete error'), host);
446
+ // Assert
447
+ expect(mockCollector.collectImmediate).toHaveBeenCalledWith('exception', expect.objectContaining({
448
+ request: expect.objectContaining({
449
+ method: 'DELETE',
450
+ url: '/api/users/123',
451
+ }),
452
+ }), expect.any(String));
453
+ });
454
+ it('should capture request body', async () => {
455
+ // Arrange
456
+ const request = createMockRequest({
457
+ body: {
458
+ username: 'testuser',
459
+ email: 'test@example.com',
460
+ password: 'secret123',
461
+ },
462
+ });
463
+ const host = createMockHost(request, mockResponse);
464
+ // Act
465
+ watcher.catch(new Error('Validation error'), host);
466
+ // Assert
467
+ expect(mockCollector.collectImmediate).toHaveBeenCalledWith('exception', expect.objectContaining({
468
+ request: expect.objectContaining({
469
+ body: {
470
+ username: 'testuser',
471
+ email: 'test@example.com',
472
+ password: 'secret123',
473
+ },
474
+ }),
475
+ }), expect.any(String));
476
+ });
477
+ it('should use url when originalUrl is not available', async () => {
478
+ // Arrange
479
+ const request = createMockRequest({
480
+ originalUrl: undefined,
481
+ url: '/fallback/url',
482
+ });
483
+ const host = createMockHost(request, mockResponse);
484
+ // Act
485
+ watcher.catch(new Error('Test'), host);
486
+ // Assert
487
+ expect(mockCollector.collectImmediate).toHaveBeenCalledWith('exception', expect.objectContaining({
488
+ request: expect.objectContaining({
489
+ url: '/fallback/url',
490
+ }),
491
+ }), expect.any(String));
492
+ });
493
+ });
494
+ });
495
+ //# sourceMappingURL=exception.watcher.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exception.watcher.spec.js","sourceRoot":"","sources":["../../../src/__tests__/watchers/exception.watcher.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=gate.watcher.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gate.watcher.spec.d.ts","sourceRoot":"","sources":["../../../src/__tests__/watchers/gate.watcher.spec.ts"],"names":[],"mappings":""}