@solidxai/core 0.1.10-beta.21 → 0.1.10-beta.23

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 (476) hide show
  1. package/.claude/settings.local.json +15 -0
  2. package/CLAUDE.md +18 -0
  3. package/CURRENT_PROMPT +6 -0
  4. package/dist/commands/info.command.d.ts.map +1 -1
  5. package/dist/commands/info.command.js +0 -2
  6. package/dist/commands/info.command.js.map +1 -1
  7. package/dist/controllers/dashboard-user-layout.controller.d.ts +43 -0
  8. package/dist/controllers/dashboard-user-layout.controller.d.ts.map +1 -0
  9. package/dist/controllers/{dashboard-variable.controller.js → dashboard-user-layout.controller.js} +30 -30
  10. package/dist/controllers/dashboard-user-layout.controller.js.map +1 -0
  11. package/dist/controllers/dashboard.controller.d.ts +12 -42
  12. package/dist/controllers/dashboard.controller.d.ts.map +1 -1
  13. package/dist/controllers/dashboard.controller.js +71 -141
  14. package/dist/controllers/dashboard.controller.js.map +1 -1
  15. package/dist/decorators/dashboard-widget-data-provider.decorator.d.ts +3 -0
  16. package/dist/decorators/dashboard-widget-data-provider.decorator.d.ts.map +1 -0
  17. package/dist/decorators/dashboard-widget-data-provider.decorator.js +8 -0
  18. package/dist/decorators/dashboard-widget-data-provider.decorator.js.map +1 -0
  19. package/dist/dtos/create-dashboard-user-layout.dto.d.ts +10 -0
  20. package/dist/dtos/create-dashboard-user-layout.dto.d.ts.map +1 -0
  21. package/dist/dtos/create-dashboard-user-layout.dto.js +66 -0
  22. package/dist/dtos/create-dashboard-user-layout.dto.js.map +1 -0
  23. package/dist/dtos/dashboard-variable-options-query.dto.d.ts +7 -0
  24. package/dist/dtos/dashboard-variable-options-query.dto.d.ts.map +1 -0
  25. package/dist/dtos/dashboard-variable-options-query.dto.js +40 -0
  26. package/dist/dtos/dashboard-variable-options-query.dto.js.map +1 -0
  27. package/dist/dtos/dashboard-widget-data-request.dto.d.ts +12 -0
  28. package/dist/dtos/dashboard-widget-data-request.dto.d.ts.map +1 -0
  29. package/dist/dtos/dashboard-widget-data-request.dto.js +65 -0
  30. package/dist/dtos/dashboard-widget-data-request.dto.js.map +1 -0
  31. package/dist/dtos/update-dashboard-user-layout.dto.d.ts +11 -0
  32. package/dist/dtos/update-dashboard-user-layout.dto.d.ts.map +1 -0
  33. package/dist/dtos/{update-dashboard-layout.dto.js → update-dashboard-user-layout.dto.js} +34 -16
  34. package/dist/dtos/update-dashboard-user-layout.dto.js.map +1 -0
  35. package/dist/entities/dashboard-user-layout.entity.d.ts +11 -0
  36. package/dist/entities/dashboard-user-layout.entity.d.ts.map +1 -0
  37. package/dist/entities/dashboard-user-layout.entity.js +52 -0
  38. package/dist/entities/dashboard-user-layout.entity.js.map +1 -0
  39. package/dist/helpers/bootstrap.helper.js +1 -1
  40. package/dist/helpers/bootstrap.helper.js.map +1 -1
  41. package/dist/helpers/module-metadata-helper.service.d.ts.map +1 -1
  42. package/dist/helpers/module-metadata-helper.service.js +15 -4
  43. package/dist/helpers/module-metadata-helper.service.js.map +1 -1
  44. package/dist/helpers/solid-registry.d.ts +5 -9
  45. package/dist/helpers/solid-registry.d.ts.map +1 -1
  46. package/dist/helpers/solid-registry.js +13 -28
  47. package/dist/helpers/solid-registry.js.map +1 -1
  48. package/dist/index.d.ts +21 -5
  49. package/dist/index.d.ts.map +1 -1
  50. package/dist/index.js +21 -5
  51. package/dist/index.js.map +1 -1
  52. package/dist/interfaces.d.ts +24 -13
  53. package/dist/interfaces.d.ts.map +1 -1
  54. package/dist/interfaces.js.map +1 -1
  55. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts +1 -3
  56. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts.map +1 -1
  57. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js +2 -25
  58. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +1 -1
  59. package/dist/{repository/dashboard-layout.repository.d.ts → repositories/dashboard-user-layout.repository.d.ts} +5 -5
  60. package/dist/repositories/dashboard-user-layout.repository.d.ts.map +1 -0
  61. package/dist/{repository/dashboard-layout.repository.js → repositories/dashboard-user-layout.repository.js} +15 -10
  62. package/dist/repositories/dashboard-user-layout.repository.js.map +1 -0
  63. package/dist/seeders/module-metadata-seeder.service.d.ts +1 -6
  64. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  65. package/dist/seeders/module-metadata-seeder.service.js +1 -60
  66. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  67. package/dist/seeders/seed-data/solid-core-metadata.json +6236 -6645
  68. package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.d.ts +13 -0
  69. package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.d.ts.map +1 -0
  70. package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.js +55 -0
  71. package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.js.map +1 -0
  72. package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.d.ts +13 -0
  73. package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.d.ts.map +1 -0
  74. package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.js +52 -0
  75. package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.js.map +1 -0
  76. package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.d.ts +13 -0
  77. package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.d.ts.map +1 -0
  78. package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.js +52 -0
  79. package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.js.map +1 -0
  80. package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.d.ts +10 -0
  81. package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.d.ts.map +1 -0
  82. package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.js +62 -0
  83. package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.js.map +1 -0
  84. package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.d.ts +10 -0
  85. package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.d.ts.map +1 -0
  86. package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.js +82 -0
  87. package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.js.map +1 -0
  88. package/dist/services/dashboard-providers/mq-dashboard-provider-utils.d.ts +17 -0
  89. package/dist/services/dashboard-providers/mq-dashboard-provider-utils.d.ts.map +1 -0
  90. package/dist/services/dashboard-providers/mq-dashboard-provider-utils.js +130 -0
  91. package/dist/services/dashboard-providers/mq-dashboard-provider-utils.js.map +1 -0
  92. package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.d.ts +37 -0
  93. package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.d.ts.map +1 -0
  94. package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.js +112 -0
  95. package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.js.map +1 -0
  96. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.d.ts +10 -0
  97. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.d.ts.map +1 -0
  98. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.js +57 -0
  99. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.js.map +1 -0
  100. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.d.ts +10 -0
  101. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.d.ts.map +1 -0
  102. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.js +57 -0
  103. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.js.map +1 -0
  104. package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.d.ts +10 -0
  105. package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.d.ts.map +1 -0
  106. package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.js +100 -0
  107. package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.js.map +1 -0
  108. package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.d.ts +10 -0
  109. package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.d.ts.map +1 -0
  110. package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.js +55 -0
  111. package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.js.map +1 -0
  112. package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.d.ts +13 -0
  113. package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.d.ts.map +1 -0
  114. package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.js +52 -0
  115. package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.js.map +1 -0
  116. package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.d.ts +15 -0
  117. package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.d.ts.map +1 -0
  118. package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.js +60 -0
  119. package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.js.map +1 -0
  120. package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.d.ts +13 -0
  121. package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.d.ts.map +1 -0
  122. package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.js +51 -0
  123. package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.js.map +1 -0
  124. package/dist/services/dashboard-runtime.service.d.ts +31 -0
  125. package/dist/services/dashboard-runtime.service.d.ts.map +1 -0
  126. package/dist/services/dashboard-runtime.service.js +408 -0
  127. package/dist/services/dashboard-runtime.service.js.map +1 -0
  128. package/dist/services/dashboard-user-layout.service.d.ts +12 -0
  129. package/dist/services/dashboard-user-layout.service.d.ts.map +1 -0
  130. package/dist/services/{dashboard-variable.service.js → dashboard-user-layout.service.js} +11 -12
  131. package/dist/services/dashboard-user-layout.service.js.map +1 -0
  132. package/dist/services/module-metadata.service.js +1 -1
  133. package/dist/services/module-metadata.service.js.map +1 -1
  134. package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.d.ts +11 -0
  135. package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.d.ts.map +1 -0
  136. package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.js +59 -0
  137. package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.js.map +1 -0
  138. package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.d.ts +11 -0
  139. package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.d.ts.map +1 -0
  140. package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.js +60 -0
  141. package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.js.map +1 -0
  142. package/dist/services/solid-introspect.service.d.ts +1 -2
  143. package/dist/services/solid-introspect.service.d.ts.map +1 -1
  144. package/dist/services/solid-introspect.service.js +12 -24
  145. package/dist/services/solid-introspect.service.js.map +1 -1
  146. package/dist/solid-core.module.d.ts.map +1 -1
  147. package/dist/solid-core.module.js +43 -66
  148. package/dist/solid-core.module.js.map +1 -1
  149. package/dist/testing/adapters/ui/playwright-adapter.d.ts +1 -0
  150. package/dist/testing/adapters/ui/playwright-adapter.d.ts.map +1 -1
  151. package/dist/testing/adapters/ui/playwright-adapter.js +3 -0
  152. package/dist/testing/adapters/ui/playwright-adapter.js.map +1 -1
  153. package/dist/testing/steps/ui/index.d.ts.map +1 -1
  154. package/dist/testing/steps/ui/index.js +2 -0
  155. package/dist/testing/steps/ui/index.js.map +1 -1
  156. package/dist/testing/steps/ui/manual.step.d.ts +3 -0
  157. package/dist/testing/steps/ui/manual.step.d.ts.map +1 -0
  158. package/dist/testing/steps/ui/manual.step.js +56 -0
  159. package/dist/testing/steps/ui/manual.step.js.map +1 -0
  160. package/package.json +1 -1
  161. package/src/commands/info.command.ts +0 -2
  162. package/src/controllers/{dashboard-variable.controller.ts → dashboard-user-layout.controller.ts} +10 -10
  163. package/src/controllers/dashboard.controller.ts +70 -89
  164. package/src/decorators/dashboard-widget-data-provider.decorator.ts +6 -0
  165. package/src/dtos/create-dashboard-user-layout.dto.ts +41 -0
  166. package/src/dtos/dashboard-variable-options-query.dto.ts +20 -0
  167. package/src/dtos/dashboard-widget-data-request.dto.ts +34 -0
  168. package/src/dtos/update-dashboard-user-layout.dto.ts +45 -0
  169. package/src/entities/dashboard-user-layout.entity.ts +27 -0
  170. package/src/helpers/bootstrap.helper.ts +1 -1
  171. package/src/helpers/field-crud-managers/field-quality-check-fixes.md +36 -6
  172. package/src/helpers/module-metadata-helper.service.ts +21 -6
  173. package/src/helpers/solid-registry.ts +15 -36
  174. package/src/index.ts +21 -5
  175. package/src/interfaces.ts +32 -19
  176. package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +1 -34
  177. package/src/repositories/dashboard-user-layout.repository.ts +19 -0
  178. package/src/seeders/module-metadata-seeder.service.ts +0 -67
  179. package/src/seeders/seed-data/solid-core-metadata.json +6237 -6646
  180. package/src/services/1.js +6 -0
  181. package/src/services/dashboard-providers/README.md +603 -0
  182. package/src/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.ts +49 -0
  183. package/src/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.ts +45 -0
  184. package/src/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.ts +45 -0
  185. package/src/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.ts +58 -0
  186. package/src/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.ts +79 -0
  187. package/src/services/dashboard-providers/mq-dashboard-provider-utils.ts +165 -0
  188. package/src/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.ts +155 -0
  189. package/src/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.ts +51 -0
  190. package/src/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.ts +51 -0
  191. package/src/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.ts +95 -0
  192. package/src/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.ts +49 -0
  193. package/src/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.ts +45 -0
  194. package/src/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.ts +55 -0
  195. package/src/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.ts +44 -0
  196. package/src/services/dashboard-runtime.service.ts +488 -0
  197. package/src/services/dashboard-user-layout.service.ts +20 -0
  198. package/src/services/module-metadata.service.ts +1 -1
  199. package/src/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.ts +52 -0
  200. package/src/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.ts +51 -0
  201. package/src/services/solid-introspect.service.ts +19 -34
  202. package/src/solid-core.module.ts +43 -72
  203. package/src/testing/README.md +42 -4
  204. package/src/testing/adapters/ui/playwright-adapter.ts +4 -0
  205. package/src/testing/steps/ui/index.ts +2 -0
  206. package/src/testing/steps/ui/manual.step.ts +80 -0
  207. package/dist/controllers/dashboard-layout.controller.d.ts +0 -47
  208. package/dist/controllers/dashboard-layout.controller.d.ts.map +0 -1
  209. package/dist/controllers/dashboard-layout.controller.js +0 -204
  210. package/dist/controllers/dashboard-layout.controller.js.map +0 -1
  211. package/dist/controllers/dashboard-question-sql-dataset-config.controller.d.ts +0 -43
  212. package/dist/controllers/dashboard-question-sql-dataset-config.controller.d.ts.map +0 -1
  213. package/dist/controllers/dashboard-question-sql-dataset-config.controller.js +0 -179
  214. package/dist/controllers/dashboard-question-sql-dataset-config.controller.js.map +0 -1
  215. package/dist/controllers/dashboard-question.controller.d.ts +0 -45
  216. package/dist/controllers/dashboard-question.controller.d.ts.map +0 -1
  217. package/dist/controllers/dashboard-question.controller.js +0 -194
  218. package/dist/controllers/dashboard-question.controller.js.map +0 -1
  219. package/dist/controllers/dashboard-variable.controller.d.ts +0 -43
  220. package/dist/controllers/dashboard-variable.controller.d.ts.map +0 -1
  221. package/dist/controllers/dashboard-variable.controller.js.map +0 -1
  222. package/dist/decorators/dashboard-question-data-provider.decorator.d.ts +0 -3
  223. package/dist/decorators/dashboard-question-data-provider.decorator.d.ts.map +0 -1
  224. package/dist/decorators/dashboard-question-data-provider.decorator.js +0 -11
  225. package/dist/decorators/dashboard-question-data-provider.decorator.js.map +0 -1
  226. package/dist/decorators/dashboard-selection-provider.decorator.d.ts +0 -3
  227. package/dist/decorators/dashboard-selection-provider.decorator.d.ts.map +0 -1
  228. package/dist/decorators/dashboard-selection-provider.decorator.js +0 -11
  229. package/dist/decorators/dashboard-selection-provider.decorator.js.map +0 -1
  230. package/dist/dtos/create-dashboard-layout.dto.d.ts +0 -8
  231. package/dist/dtos/create-dashboard-layout.dto.d.ts.map +0 -1
  232. package/dist/dtos/create-dashboard-layout.dto.js +0 -53
  233. package/dist/dtos/create-dashboard-layout.dto.js.map +0 -1
  234. package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.d.ts +0 -12
  235. package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.d.ts.map +0 -1
  236. package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.js +0 -77
  237. package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.js.map +0 -1
  238. package/dist/dtos/create-dashboard-question.dto.d.ts +0 -17
  239. package/dist/dtos/create-dashboard-question.dto.d.ts.map +0 -1
  240. package/dist/dtos/create-dashboard-question.dto.js +0 -105
  241. package/dist/dtos/create-dashboard-question.dto.js.map +0 -1
  242. package/dist/dtos/create-dashboard-variable.dto.d.ts +0 -19
  243. package/dist/dtos/create-dashboard-variable.dto.d.ts.map +0 -1
  244. package/dist/dtos/create-dashboard-variable.dto.js +0 -103
  245. package/dist/dtos/create-dashboard-variable.dto.js.map +0 -1
  246. package/dist/dtos/create-dashboard.dto.d.ts +0 -17
  247. package/dist/dtos/create-dashboard.dto.d.ts.map +0 -1
  248. package/dist/dtos/create-dashboard.dto.js +0 -102
  249. package/dist/dtos/create-dashboard.dto.js.map +0 -1
  250. package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.d.ts +0 -8
  251. package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.d.ts.map +0 -1
  252. package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.js +0 -52
  253. package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.js.map +0 -1
  254. package/dist/dtos/update-dashboard-layout.dto.d.ts +0 -8
  255. package/dist/dtos/update-dashboard-layout.dto.d.ts.map +0 -1
  256. package/dist/dtos/update-dashboard-layout.dto.js.map +0 -1
  257. package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.d.ts +0 -13
  258. package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.d.ts.map +0 -1
  259. package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.js +0 -86
  260. package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.js.map +0 -1
  261. package/dist/dtos/update-dashboard-question.dto.d.ts +0 -18
  262. package/dist/dtos/update-dashboard-question.dto.d.ts.map +0 -1
  263. package/dist/dtos/update-dashboard-question.dto.js +0 -112
  264. package/dist/dtos/update-dashboard-question.dto.js.map +0 -1
  265. package/dist/dtos/update-dashboard-variable.dto.d.ts +0 -16
  266. package/dist/dtos/update-dashboard-variable.dto.d.ts.map +0 -1
  267. package/dist/dtos/update-dashboard-variable.dto.js +0 -101
  268. package/dist/dtos/update-dashboard-variable.dto.js.map +0 -1
  269. package/dist/dtos/update-dashboard.dto.d.ts +0 -18
  270. package/dist/dtos/update-dashboard.dto.d.ts.map +0 -1
  271. package/dist/dtos/update-dashboard.dto.js +0 -108
  272. package/dist/dtos/update-dashboard.dto.js.map +0 -1
  273. package/dist/entities/dashboard-layout.entity.d.ts +0 -9
  274. package/dist/entities/dashboard-layout.entity.d.ts.map +0 -1
  275. package/dist/entities/dashboard-layout.entity.js +0 -41
  276. package/dist/entities/dashboard-layout.entity.js.map +0 -1
  277. package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts +0 -14
  278. package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts.map +0 -1
  279. package/dist/entities/dashboard-question-sql-dataset-config.entity.js +0 -66
  280. package/dist/entities/dashboard-question-sql-dataset-config.entity.js.map +0 -1
  281. package/dist/entities/dashboard-question.entity.d.ts +0 -17
  282. package/dist/entities/dashboard-question.entity.d.ts.map +0 -1
  283. package/dist/entities/dashboard-question.entity.js +0 -77
  284. package/dist/entities/dashboard-question.entity.js.map +0 -1
  285. package/dist/entities/dashboard-variable.entity.d.ts +0 -16
  286. package/dist/entities/dashboard-variable.entity.d.ts.map +0 -1
  287. package/dist/entities/dashboard-variable.entity.js +0 -79
  288. package/dist/entities/dashboard-variable.entity.js.map +0 -1
  289. package/dist/entities/dashboard.entity.d.ts +0 -16
  290. package/dist/entities/dashboard.entity.d.ts.map +0 -1
  291. package/dist/entities/dashboard.entity.js +0 -64
  292. package/dist/entities/dashboard.entity.js.map +0 -1
  293. package/dist/mappers/dashboard-mapper.d.ts +0 -6
  294. package/dist/mappers/dashboard-mapper.d.ts.map +0 -1
  295. package/dist/mappers/dashboard-mapper.js +0 -62
  296. package/dist/mappers/dashboard-mapper.js.map +0 -1
  297. package/dist/repository/dashboard-layout.repository.d.ts.map +0 -1
  298. package/dist/repository/dashboard-layout.repository.js.map +0 -1
  299. package/dist/repository/dashboard-question-sql-dataset-config.repository.d.ts +0 -12
  300. package/dist/repository/dashboard-question-sql-dataset-config.repository.d.ts.map +0 -1
  301. package/dist/repository/dashboard-question-sql-dataset-config.repository.js +0 -34
  302. package/dist/repository/dashboard-question-sql-dataset-config.repository.js.map +0 -1
  303. package/dist/repository/dashboard-question.repository.d.ts +0 -12
  304. package/dist/repository/dashboard-question.repository.d.ts.map +0 -1
  305. package/dist/repository/dashboard-question.repository.js +0 -34
  306. package/dist/repository/dashboard-question.repository.js.map +0 -1
  307. package/dist/repository/dashboard-variable.repository.d.ts +0 -12
  308. package/dist/repository/dashboard-variable.repository.d.ts.map +0 -1
  309. package/dist/repository/dashboard-variable.repository.js +0 -34
  310. package/dist/repository/dashboard-variable.repository.js.map +0 -1
  311. package/dist/repository/dashboard.repository.d.ts +0 -13
  312. package/dist/repository/dashboard.repository.d.ts.map +0 -1
  313. package/dist/repository/dashboard.repository.js +0 -104
  314. package/dist/repository/dashboard.repository.js.map +0 -1
  315. package/dist/services/dashboard-layout.service.d.ts +0 -20
  316. package/dist/services/dashboard-layout.service.d.ts.map +0 -1
  317. package/dist/services/dashboard-layout.service.js +0 -120
  318. package/dist/services/dashboard-layout.service.js.map +0 -1
  319. package/dist/services/dashboard-question-sql-dataset-config.service.d.ts +0 -12
  320. package/dist/services/dashboard-question-sql-dataset-config.service.d.ts.map +0 -1
  321. package/dist/services/dashboard-question-sql-dataset-config.service.js +0 -38
  322. package/dist/services/dashboard-question-sql-dataset-config.service.js.map +0 -1
  323. package/dist/services/dashboard-question.service.d.ts +0 -23
  324. package/dist/services/dashboard-question.service.d.ts.map +0 -1
  325. package/dist/services/dashboard-question.service.js +0 -135
  326. package/dist/services/dashboard-question.service.js.map +0 -1
  327. package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.d.ts +0 -12
  328. package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.d.ts.map +0 -1
  329. package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.js +0 -55
  330. package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.js.map +0 -1
  331. package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.d.ts +0 -11
  332. package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.d.ts.map +0 -1
  333. package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.js +0 -45
  334. package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.js.map +0 -1
  335. package/dist/services/dashboard-variable.service.d.ts +0 -13
  336. package/dist/services/dashboard-variable.service.d.ts.map +0 -1
  337. package/dist/services/dashboard-variable.service.js.map +0 -1
  338. package/dist/services/dashboard.service.d.ts +0 -29
  339. package/dist/services/dashboard.service.d.ts.map +0 -1
  340. package/dist/services/dashboard.service.js +0 -171
  341. package/dist/services/dashboard.service.js.map +0 -1
  342. package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.d.ts +0 -12
  343. package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.d.ts.map +0 -1
  344. package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.js +0 -41
  345. package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.js.map +0 -1
  346. package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.d.ts +0 -12
  347. package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.d.ts.map +0 -1
  348. package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.js +0 -42
  349. package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.js.map +0 -1
  350. package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.d.ts +0 -25
  351. package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.d.ts.map +0 -1
  352. package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.js +0 -116
  353. package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.js.map +0 -1
  354. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.d.ts +0 -12
  355. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.d.ts.map +0 -1
  356. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.js +0 -37
  357. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.js.map +0 -1
  358. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.d.ts +0 -12
  359. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.d.ts.map +0 -1
  360. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.js +0 -38
  361. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.js.map +0 -1
  362. package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.d.ts +0 -12
  363. package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.d.ts.map +0 -1
  364. package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.js +0 -38
  365. package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.js.map +0 -1
  366. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.d.ts +0 -34
  367. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.d.ts.map +0 -1
  368. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.js +0 -90
  369. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.js.map +0 -1
  370. package/dist/services/question-data-providers/helpers.d.ts +0 -7
  371. package/dist/services/question-data-providers/helpers.d.ts.map +0 -1
  372. package/dist/services/question-data-providers/helpers.js +0 -25
  373. package/dist/services/question-data-providers/helpers.js.map +0 -1
  374. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.d.ts +0 -14
  375. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.d.ts.map +0 -1
  376. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.js +0 -71
  377. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.js.map +0 -1
  378. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.d.ts +0 -16
  379. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.d.ts.map +0 -1
  380. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.js +0 -93
  381. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.js.map +0 -1
  382. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.d.ts +0 -11
  383. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.d.ts.map +0 -1
  384. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.js +0 -49
  385. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.js.map +0 -1
  386. package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.d.ts +0 -11
  387. package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.d.ts.map +0 -1
  388. package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.js +0 -47
  389. package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.js.map +0 -1
  390. package/dist/services/sql-expression-resolver.service.d.ts +0 -12
  391. package/dist/services/sql-expression-resolver.service.d.ts.map +0 -1
  392. package/dist/services/sql-expression-resolver.service.js +0 -121
  393. package/dist/services/sql-expression-resolver.service.js.map +0 -1
  394. package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.d.ts +0 -16
  395. package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.d.ts.map +0 -1
  396. package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.js +0 -72
  397. package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.js.map +0 -1
  398. package/dist/subscribers/dashboard-question.subscriber.d.ts +0 -16
  399. package/dist/subscribers/dashboard-question.subscriber.d.ts.map +0 -1
  400. package/dist/subscribers/dashboard-question.subscriber.js +0 -72
  401. package/dist/subscribers/dashboard-question.subscriber.js.map +0 -1
  402. package/dist/subscribers/dashboard-variable.subscriber.d.ts +0 -16
  403. package/dist/subscribers/dashboard-variable.subscriber.d.ts.map +0 -1
  404. package/dist/subscribers/dashboard-variable.subscriber.js +0 -72
  405. package/dist/subscribers/dashboard-variable.subscriber.js.map +0 -1
  406. package/dist/subscribers/dashboard.subscriber.d.ts +0 -16
  407. package/dist/subscribers/dashboard.subscriber.d.ts.map +0 -1
  408. package/dist/subscribers/dashboard.subscriber.js +0 -71
  409. package/dist/subscribers/dashboard.subscriber.js.map +0 -1
  410. package/dist-tests/api/authenticate.spec.js +0 -119
  411. package/dist-tests/api/authenticate.spec.js.map +0 -1
  412. package/dist-tests/api/crud-service.findOne.cityMaster.spec.js +0 -97
  413. package/dist-tests/api/crud-service.findOne.cityMaster.spec.js.map +0 -1
  414. package/dist-tests/api/ping.spec.js +0 -21
  415. package/dist-tests/api/ping.spec.js.map +0 -1
  416. package/dist-tests/helpers/auth.js +0 -41
  417. package/dist-tests/helpers/auth.js.map +0 -1
  418. package/dist-tests/helpers/env.js +0 -11
  419. package/dist-tests/helpers/env.js.map +0 -1
  420. package/docs/grouping-enhancements.md +0 -89
  421. package/docs/java-spring/README.md +0 -3
  422. package/docs/java-spring/solid-core-module-deep-dive-report.md +0 -1317
  423. package/docs/seed-changes.md +0 -65
  424. package/docs/test-data-workflow.md +0 -200
  425. package/docs/type-declaration-import-issue.md +0 -24
  426. package/src/controllers/dashboard-layout.controller.ts +0 -106
  427. package/src/controllers/dashboard-question-sql-dataset-config.controller.ts +0 -93
  428. package/src/controllers/dashboard-question.controller.ts +0 -104
  429. package/src/decorators/dashboard-question-data-provider.decorator.ts +0 -7
  430. package/src/decorators/dashboard-selection-provider.decorator.ts +0 -7
  431. package/src/dtos/create-dashboard-layout.dto.ts +0 -31
  432. package/src/dtos/create-dashboard-question-sql-dataset-config.dto.ts +0 -42
  433. package/src/dtos/create-dashboard-question.dto.ts +0 -62
  434. package/src/dtos/create-dashboard-variable.dto.ts +0 -60
  435. package/src/dtos/create-dashboard.dto.ts +0 -61
  436. package/src/dtos/dashboard-variable-selection-dynamic-query.dto.ts +0 -29
  437. package/src/dtos/update-dashboard-layout.dto.ts +0 -30
  438. package/src/dtos/update-dashboard-question-sql-dataset-config.dto.ts +0 -49
  439. package/src/dtos/update-dashboard-question.dto.ts +0 -67
  440. package/src/dtos/update-dashboard-variable.dto.ts +0 -58
  441. package/src/dtos/update-dashboard.dto.ts +0 -65
  442. package/src/entities/dashboard-layout.entity.ts +0 -18
  443. package/src/entities/dashboard-question-sql-dataset-config.entity.ts +0 -37
  444. package/src/entities/dashboard-question.entity.ts +0 -46
  445. package/src/entities/dashboard-variable.entity.ts +0 -44
  446. package/src/entities/dashboard.entity.ts +0 -36
  447. package/src/mappers/dashboard-mapper.ts +0 -53
  448. package/src/repository/dashboard-layout.repository.ts +0 -17
  449. package/src/repository/dashboard-question-sql-dataset-config.repository.ts +0 -17
  450. package/src/repository/dashboard-question.repository.ts +0 -17
  451. package/src/repository/dashboard-variable.repository.ts +0 -17
  452. package/src/repository/dashboard.repository.ts +0 -101
  453. package/src/services/dashboard-layout.service.ts +0 -111
  454. package/src/services/dashboard-question-sql-dataset-config.service.ts +0 -25
  455. package/src/services/dashboard-question.service.ts +0 -150
  456. package/src/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.ts +0 -56
  457. package/src/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.ts +0 -37
  458. package/src/services/dashboard-variable.service.ts +0 -27
  459. package/src/services/dashboard.service.ts +0 -148
  460. package/src/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.ts +0 -43
  461. package/src/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.ts +0 -44
  462. package/src/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.ts +0 -114
  463. package/src/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.ts +0 -38
  464. package/src/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.ts +0 -40
  465. package/src/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.ts +0 -39
  466. package/src/services/question-data-providers/chartjs-sql-data-provider.service.ts +0 -121
  467. package/src/services/question-data-providers/helpers.ts +0 -30
  468. package/src/services/question-data-providers/prime-react-datatable-sql-data-provider.service.ts +0 -74
  469. package/src/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.ts +0 -115
  470. package/src/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.ts +0 -44
  471. package/src/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.ts +0 -41
  472. package/src/services/sql-expression-resolver.service.ts +0 -140
  473. package/src/subscribers/dashboard-question-sql-dataset-config.subscriber.ts +0 -61
  474. package/src/subscribers/dashboard-question.subscriber.ts +0 -62
  475. package/src/subscribers/dashboard-variable.subscriber.ts +0 -63
  476. package/src/subscribers/dashboard.subscriber.ts +0 -62
@@ -0,0 +1,13 @@
1
+ import { MqMessageRepository } from "../../repository/mq-message.repository";
2
+ import { IDashboardWidgetDataProvider, IDashboardWidgetDataProviderContext, IDashboardWidgetDataResponseEnvelope } from "../../interfaces";
3
+ export declare class MqDashboardAvgElapsedKpiProvider implements IDashboardWidgetDataProvider {
4
+ private readonly mqMessageRepository;
5
+ constructor(mqMessageRepository: MqMessageRepository);
6
+ name(): string;
7
+ help(): string;
8
+ getData(widgetDefinition: Record<string, any>, ctxt: IDashboardWidgetDataProviderContext): Promise<IDashboardWidgetDataResponseEnvelope<{
9
+ value: number;
10
+ label: string;
11
+ }>>;
12
+ }
13
+ //# sourceMappingURL=mq-dashboard-avg-elapsed-kpi-provider.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mq-dashboard-avg-elapsed-kpi-provider.service.d.ts","sourceRoot":"","sources":["../../../src/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,4BAA4B,EAAE,mCAAmC,EAAE,oCAAoC,EAAE,MAAM,gBAAgB,CAAC;AAGzI,qBAEa,gCAAiC,YAAW,4BAA4B;IAE7E,OAAO,CAAC,QAAQ,CAAC,mBAAmB;gBAAnB,mBAAmB,EAAE,mBAAmB;IAG7D,IAAI,IAAI,MAAM;IAId,IAAI,IAAI,MAAM;IAIR,OAAO,CACT,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrC,IAAI,EAAE,mCAAmC,GAC1C,OAAO,CAAC,oCAAoC,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAuBrF"}
@@ -0,0 +1,55 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MqDashboardAvgElapsedKpiProvider = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const dashboard_widget_data_provider_decorator_1 = require("../../decorators/dashboard-widget-data-provider.decorator");
15
+ const mq_message_repository_1 = require("../../repository/mq-message.repository");
16
+ const mq_dashboard_provider_utils_1 = require("./mq-dashboard-provider-utils");
17
+ let MqDashboardAvgElapsedKpiProvider = class MqDashboardAvgElapsedKpiProvider {
18
+ constructor(mqMessageRepository) {
19
+ this.mqMessageRepository = mqMessageRepository;
20
+ }
21
+ name() {
22
+ return "MqDashboardAvgElapsedKpiProvider";
23
+ }
24
+ help() {
25
+ return "Returns average elapsed millis after applying dashboard variables.";
26
+ }
27
+ async getData(widgetDefinition, ctxt) {
28
+ const qb = await this.mqMessageRepository.createSecurityRuleAwareQueryBuilder("mqMessage");
29
+ (0, mq_dashboard_provider_utils_1.applyMqDashboardFilters)(qb, ctxt.variables ?? {});
30
+ qb.andWhere("mqMessage.elapsedMillis IS NOT NULL");
31
+ const raw = await qb
32
+ .select("AVG(mqMessage.elapsedMillis)", "avgElapsed")
33
+ .getRawOne();
34
+ const value = Number((0, mq_dashboard_provider_utils_1.toNumber)(raw?.avgElapsed, 0).toFixed(2));
35
+ return {
36
+ meta: {
37
+ providerName: this.name(),
38
+ generatedAt: new Date().toISOString(),
39
+ widgetName: ctxt.widgetName,
40
+ durationMs: 0,
41
+ },
42
+ data: {
43
+ value,
44
+ label: widgetDefinition?.name ?? "Avg Elapsed (ms)",
45
+ },
46
+ };
47
+ }
48
+ };
49
+ exports.MqDashboardAvgElapsedKpiProvider = MqDashboardAvgElapsedKpiProvider;
50
+ exports.MqDashboardAvgElapsedKpiProvider = MqDashboardAvgElapsedKpiProvider = __decorate([
51
+ (0, dashboard_widget_data_provider_decorator_1.DashboardWidgetDataProvider)(),
52
+ (0, common_1.Injectable)(),
53
+ __metadata("design:paramtypes", [mq_message_repository_1.MqMessageRepository])
54
+ ], MqDashboardAvgElapsedKpiProvider);
55
+ //# sourceMappingURL=mq-dashboard-avg-elapsed-kpi-provider.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mq-dashboard-avg-elapsed-kpi-provider.service.js","sourceRoot":"","sources":["../../../src/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,wHAAsG;AACtG,kFAA2E;AAE3E,+EAAiH;AAI1G,IAAM,gCAAgC,GAAtC,MAAM,gCAAgC;IACzC,YACqB,mBAAwC;QAAxC,wBAAmB,GAAnB,mBAAmB,CAAqB;IACzD,CAAC;IAEL,IAAI;QACA,OAAO,kCAAkC,CAAC;IAC9C,CAAC;IAED,IAAI;QACA,OAAO,oEAAoE,CAAC;IAChF,CAAC;IAED,KAAK,CAAC,OAAO,CACT,gBAAqC,EACrC,IAAyC;QAEzC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,mCAAmC,CAAC,WAAW,CAAC,CAAC;QAC3F,IAAA,qDAAuB,EAAC,EAAE,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QAClD,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAC;QAEnD,MAAM,GAAG,GAAG,MAAM,EAAE;aACf,MAAM,CAAC,8BAA8B,EAAE,YAAY,CAAC;aACpD,SAAS,EAAoC,CAAC;QAEnD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAA,sCAAQ,EAAC,GAAG,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,OAAO;YACH,IAAI,EAAE;gBACF,YAAY,EAAE,IAAI,CAAC,IAAI,EAAE;gBACzB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACrC,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,UAAU,EAAE,CAAC;aAChB;YACD,IAAI,EAAE;gBACF,KAAK;gBACL,KAAK,EAAE,gBAAgB,EAAE,IAAI,IAAI,kBAAkB;aACtD;SACJ,CAAC;IACN,CAAC;CACJ,CAAA;AAvCY,4EAAgC;2CAAhC,gCAAgC;IAF5C,IAAA,sEAA2B,GAAE;IAC7B,IAAA,mBAAU,GAAE;qCAGiC,2CAAmB;GAFpD,gCAAgC,CAuC5C","sourcesContent":["import { Injectable } from \"@nestjs/common\";\nimport { DashboardWidgetDataProvider } from \"src/decorators/dashboard-widget-data-provider.decorator\";\nimport { MqMessageRepository } from \"src/repository/mq-message.repository\";\nimport { IDashboardWidgetDataProvider, IDashboardWidgetDataProviderContext, IDashboardWidgetDataResponseEnvelope } from \"src/interfaces\";\nimport { applyMqDashboardFilters, toNumber } from \"src/services/dashboard-providers/mq-dashboard-provider-utils\";\n\n@DashboardWidgetDataProvider()\n@Injectable()\nexport class MqDashboardAvgElapsedKpiProvider implements IDashboardWidgetDataProvider {\n constructor(\n private readonly mqMessageRepository: MqMessageRepository,\n ) { }\n\n name(): string {\n return \"MqDashboardAvgElapsedKpiProvider\";\n }\n\n help(): string {\n return \"Returns average elapsed millis after applying dashboard variables.\";\n }\n\n async getData(\n widgetDefinition: Record<string, any>,\n ctxt: IDashboardWidgetDataProviderContext,\n ): Promise<IDashboardWidgetDataResponseEnvelope<{ value: number; label: string }>> {\n const qb = await this.mqMessageRepository.createSecurityRuleAwareQueryBuilder(\"mqMessage\");\n applyMqDashboardFilters(qb, ctxt.variables ?? {});\n qb.andWhere(\"mqMessage.elapsedMillis IS NOT NULL\");\n\n const raw = await qb\n .select(\"AVG(mqMessage.elapsedMillis)\", \"avgElapsed\")\n .getRawOne<{ avgElapsed?: string | number }>();\n\n const value = Number(toNumber(raw?.avgElapsed, 0).toFixed(2));\n return {\n meta: {\n providerName: this.name(),\n generatedAt: new Date().toISOString(),\n widgetName: ctxt.widgetName,\n durationMs: 0,\n },\n data: {\n value,\n label: widgetDefinition?.name ?? \"Avg Elapsed (ms)\",\n },\n };\n }\n}\n\n"]}
@@ -0,0 +1,13 @@
1
+ import { MqMessageRepository } from "../../repository/mq-message.repository";
2
+ import { IDashboardWidgetDataProvider, IDashboardWidgetDataProviderContext, IDashboardWidgetDataResponseEnvelope } from "../../interfaces";
3
+ export declare class MqDashboardFailedMessagesKpiProvider implements IDashboardWidgetDataProvider {
4
+ private readonly mqMessageRepository;
5
+ constructor(mqMessageRepository: MqMessageRepository);
6
+ name(): string;
7
+ help(): string;
8
+ getData(widgetDefinition: Record<string, any>, ctxt: IDashboardWidgetDataProviderContext): Promise<IDashboardWidgetDataResponseEnvelope<{
9
+ value: number;
10
+ label: string;
11
+ }>>;
12
+ }
13
+ //# sourceMappingURL=mq-dashboard-failed-messages-kpi-provider.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mq-dashboard-failed-messages-kpi-provider.service.d.ts","sourceRoot":"","sources":["../../../src/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,4BAA4B,EAAE,mCAAmC,EAAE,oCAAoC,EAAE,MAAM,gBAAgB,CAAC;AAGzI,qBAEa,oCAAqC,YAAW,4BAA4B;IAEjF,OAAO,CAAC,QAAQ,CAAC,mBAAmB;gBAAnB,mBAAmB,EAAE,mBAAmB;IAG7D,IAAI,IAAI,MAAM;IAId,IAAI,IAAI,MAAM;IAIR,OAAO,CACT,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrC,IAAI,EAAE,mCAAmC,GAC1C,OAAO,CAAC,oCAAoC,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAmBrF"}
@@ -0,0 +1,52 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MqDashboardFailedMessagesKpiProvider = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const dashboard_widget_data_provider_decorator_1 = require("../../decorators/dashboard-widget-data-provider.decorator");
15
+ const mq_message_repository_1 = require("../../repository/mq-message.repository");
16
+ const mq_dashboard_provider_utils_1 = require("./mq-dashboard-provider-utils");
17
+ let MqDashboardFailedMessagesKpiProvider = class MqDashboardFailedMessagesKpiProvider {
18
+ constructor(mqMessageRepository) {
19
+ this.mqMessageRepository = mqMessageRepository;
20
+ }
21
+ name() {
22
+ return "MqDashboardFailedMessagesKpiProvider";
23
+ }
24
+ help() {
25
+ return "Returns failed mq message count after applying dashboard variables.";
26
+ }
27
+ async getData(widgetDefinition, ctxt) {
28
+ const qb = await this.mqMessageRepository.createSecurityRuleAwareQueryBuilder("mqMessage");
29
+ (0, mq_dashboard_provider_utils_1.applyMqDashboardFilters)(qb, ctxt.variables ?? {}, { ignoreStage: true });
30
+ qb.andWhere("mqMessage.stage = :stage", { stage: "failed" });
31
+ const value = await qb.getCount();
32
+ return {
33
+ meta: {
34
+ providerName: this.name(),
35
+ generatedAt: new Date().toISOString(),
36
+ widgetName: ctxt.widgetName,
37
+ durationMs: 0,
38
+ },
39
+ data: {
40
+ value,
41
+ label: widgetDefinition?.name ?? "Failed",
42
+ },
43
+ };
44
+ }
45
+ };
46
+ exports.MqDashboardFailedMessagesKpiProvider = MqDashboardFailedMessagesKpiProvider;
47
+ exports.MqDashboardFailedMessagesKpiProvider = MqDashboardFailedMessagesKpiProvider = __decorate([
48
+ (0, dashboard_widget_data_provider_decorator_1.DashboardWidgetDataProvider)(),
49
+ (0, common_1.Injectable)(),
50
+ __metadata("design:paramtypes", [mq_message_repository_1.MqMessageRepository])
51
+ ], MqDashboardFailedMessagesKpiProvider);
52
+ //# sourceMappingURL=mq-dashboard-failed-messages-kpi-provider.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mq-dashboard-failed-messages-kpi-provider.service.js","sourceRoot":"","sources":["../../../src/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,wHAAsG;AACtG,kFAA2E;AAE3E,+EAAuG;AAIhG,IAAM,oCAAoC,GAA1C,MAAM,oCAAoC;IAC7C,YACqB,mBAAwC;QAAxC,wBAAmB,GAAnB,mBAAmB,CAAqB;IACzD,CAAC;IAEL,IAAI;QACA,OAAO,sCAAsC,CAAC;IAClD,CAAC;IAED,IAAI;QACA,OAAO,qEAAqE,CAAC;IACjF,CAAC;IAED,KAAK,CAAC,OAAO,CACT,gBAAqC,EACrC,IAAyC;QAEzC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,mCAAmC,CAAC,WAAW,CAAC,CAAC;QAC3F,IAAA,qDAAuB,EAAC,EAAE,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,EAAE,CAAC,QAAQ,CAAC,0BAA0B,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAE7D,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;QAClC,OAAO;YACH,IAAI,EAAE;gBACF,YAAY,EAAE,IAAI,CAAC,IAAI,EAAE;gBACzB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACrC,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,UAAU,EAAE,CAAC;aAChB;YACD,IAAI,EAAE;gBACF,KAAK;gBACL,KAAK,EAAE,gBAAgB,EAAE,IAAI,IAAI,QAAQ;aAC5C;SACJ,CAAC;IACN,CAAC;CACJ,CAAA;AAnCY,oFAAoC;+CAApC,oCAAoC;IAFhD,IAAA,sEAA2B,GAAE;IAC7B,IAAA,mBAAU,GAAE;qCAGiC,2CAAmB;GAFpD,oCAAoC,CAmChD","sourcesContent":["import { Injectable } from \"@nestjs/common\";\nimport { DashboardWidgetDataProvider } from \"src/decorators/dashboard-widget-data-provider.decorator\";\nimport { MqMessageRepository } from \"src/repository/mq-message.repository\";\nimport { IDashboardWidgetDataProvider, IDashboardWidgetDataProviderContext, IDashboardWidgetDataResponseEnvelope } from \"src/interfaces\";\nimport { applyMqDashboardFilters } from \"src/services/dashboard-providers/mq-dashboard-provider-utils\";\n\n@DashboardWidgetDataProvider()\n@Injectable()\nexport class MqDashboardFailedMessagesKpiProvider implements IDashboardWidgetDataProvider {\n constructor(\n private readonly mqMessageRepository: MqMessageRepository,\n ) { }\n\n name(): string {\n return \"MqDashboardFailedMessagesKpiProvider\";\n }\n\n help(): string {\n return \"Returns failed mq message count after applying dashboard variables.\";\n }\n\n async getData(\n widgetDefinition: Record<string, any>,\n ctxt: IDashboardWidgetDataProviderContext,\n ): Promise<IDashboardWidgetDataResponseEnvelope<{ value: number; label: string }>> {\n const qb = await this.mqMessageRepository.createSecurityRuleAwareQueryBuilder(\"mqMessage\");\n applyMqDashboardFilters(qb, ctxt.variables ?? {}, { ignoreStage: true });\n qb.andWhere(\"mqMessage.stage = :stage\", { stage: \"failed\" });\n\n const value = await qb.getCount();\n return {\n meta: {\n providerName: this.name(),\n generatedAt: new Date().toISOString(),\n widgetName: ctxt.widgetName,\n durationMs: 0,\n },\n data: {\n value,\n label: widgetDefinition?.name ?? \"Failed\",\n },\n };\n }\n}\n\n"]}
@@ -0,0 +1,13 @@
1
+ import { MqMessageRepository } from "../../repository/mq-message.repository";
2
+ import { IDashboardWidgetDataProvider, IDashboardWidgetDataProviderContext, IDashboardWidgetDataResponseEnvelope } from "../../interfaces";
3
+ export declare class MqDashboardInflightMessagesKpiProvider implements IDashboardWidgetDataProvider {
4
+ private readonly mqMessageRepository;
5
+ constructor(mqMessageRepository: MqMessageRepository);
6
+ name(): string;
7
+ help(): string;
8
+ getData(widgetDefinition: Record<string, any>, ctxt: IDashboardWidgetDataProviderContext): Promise<IDashboardWidgetDataResponseEnvelope<{
9
+ value: number;
10
+ label: string;
11
+ }>>;
12
+ }
13
+ //# sourceMappingURL=mq-dashboard-inflight-messages-kpi-provider.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mq-dashboard-inflight-messages-kpi-provider.service.d.ts","sourceRoot":"","sources":["../../../src/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,4BAA4B,EAAE,mCAAmC,EAAE,oCAAoC,EAAE,MAAM,gBAAgB,CAAC;AAGzI,qBAEa,sCAAuC,YAAW,4BAA4B;IAEnF,OAAO,CAAC,QAAQ,CAAC,mBAAmB;gBAAnB,mBAAmB,EAAE,mBAAmB;IAG7D,IAAI,IAAI,MAAM;IAId,IAAI,IAAI,MAAM;IAIR,OAAO,CACT,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrC,IAAI,EAAE,mCAAmC,GAC1C,OAAO,CAAC,oCAAoC,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAmBrF"}
@@ -0,0 +1,52 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MqDashboardInflightMessagesKpiProvider = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const dashboard_widget_data_provider_decorator_1 = require("../../decorators/dashboard-widget-data-provider.decorator");
15
+ const mq_message_repository_1 = require("../../repository/mq-message.repository");
16
+ const mq_dashboard_provider_utils_1 = require("./mq-dashboard-provider-utils");
17
+ let MqDashboardInflightMessagesKpiProvider = class MqDashboardInflightMessagesKpiProvider {
18
+ constructor(mqMessageRepository) {
19
+ this.mqMessageRepository = mqMessageRepository;
20
+ }
21
+ name() {
22
+ return "MqDashboardInflightMessagesKpiProvider";
23
+ }
24
+ help() {
25
+ return "Returns in-flight mq message count after applying dashboard variables.";
26
+ }
27
+ async getData(widgetDefinition, ctxt) {
28
+ const qb = await this.mqMessageRepository.createSecurityRuleAwareQueryBuilder("mqMessage");
29
+ (0, mq_dashboard_provider_utils_1.applyMqDashboardFilters)(qb, ctxt.variables ?? {}, { ignoreStage: true });
30
+ qb.andWhere("mqMessage.stage IN (:...stages)", { stages: mq_dashboard_provider_utils_1.MQ_INFLIGHT_STAGES });
31
+ const value = await qb.getCount();
32
+ return {
33
+ meta: {
34
+ providerName: this.name(),
35
+ generatedAt: new Date().toISOString(),
36
+ widgetName: ctxt.widgetName,
37
+ durationMs: 0,
38
+ },
39
+ data: {
40
+ value,
41
+ label: widgetDefinition?.name ?? "In Flight",
42
+ },
43
+ };
44
+ }
45
+ };
46
+ exports.MqDashboardInflightMessagesKpiProvider = MqDashboardInflightMessagesKpiProvider;
47
+ exports.MqDashboardInflightMessagesKpiProvider = MqDashboardInflightMessagesKpiProvider = __decorate([
48
+ (0, dashboard_widget_data_provider_decorator_1.DashboardWidgetDataProvider)(),
49
+ (0, common_1.Injectable)(),
50
+ __metadata("design:paramtypes", [mq_message_repository_1.MqMessageRepository])
51
+ ], MqDashboardInflightMessagesKpiProvider);
52
+ //# sourceMappingURL=mq-dashboard-inflight-messages-kpi-provider.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mq-dashboard-inflight-messages-kpi-provider.service.js","sourceRoot":"","sources":["../../../src/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,wHAAsG;AACtG,kFAA2E;AAE3E,+EAA2H;AAIpH,IAAM,sCAAsC,GAA5C,MAAM,sCAAsC;IAC/C,YACqB,mBAAwC;QAAxC,wBAAmB,GAAnB,mBAAmB,CAAqB;IACzD,CAAC;IAEL,IAAI;QACA,OAAO,wCAAwC,CAAC;IACpD,CAAC;IAED,IAAI;QACA,OAAO,wEAAwE,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,OAAO,CACT,gBAAqC,EACrC,IAAyC;QAEzC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,mCAAmC,CAAC,WAAW,CAAC,CAAC;QAC3F,IAAA,qDAAuB,EAAC,EAAE,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,EAAE,CAAC,QAAQ,CAAC,iCAAiC,EAAE,EAAE,MAAM,EAAE,gDAAkB,EAAE,CAAC,CAAC;QAE/E,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;QAClC,OAAO;YACH,IAAI,EAAE;gBACF,YAAY,EAAE,IAAI,CAAC,IAAI,EAAE;gBACzB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACrC,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,UAAU,EAAE,CAAC;aAChB;YACD,IAAI,EAAE;gBACF,KAAK;gBACL,KAAK,EAAE,gBAAgB,EAAE,IAAI,IAAI,WAAW;aAC/C;SACJ,CAAC;IACN,CAAC;CACJ,CAAA;AAnCY,wFAAsC;iDAAtC,sCAAsC;IAFlD,IAAA,sEAA2B,GAAE;IAC7B,IAAA,mBAAU,GAAE;qCAGiC,2CAAmB;GAFpD,sCAAsC,CAmClD","sourcesContent":["import { Injectable } from \"@nestjs/common\";\nimport { DashboardWidgetDataProvider } from \"src/decorators/dashboard-widget-data-provider.decorator\";\nimport { MqMessageRepository } from \"src/repository/mq-message.repository\";\nimport { IDashboardWidgetDataProvider, IDashboardWidgetDataProviderContext, IDashboardWidgetDataResponseEnvelope } from \"src/interfaces\";\nimport { applyMqDashboardFilters, MQ_INFLIGHT_STAGES } from \"src/services/dashboard-providers/mq-dashboard-provider-utils\";\n\n@DashboardWidgetDataProvider()\n@Injectable()\nexport class MqDashboardInflightMessagesKpiProvider implements IDashboardWidgetDataProvider {\n constructor(\n private readonly mqMessageRepository: MqMessageRepository,\n ) { }\n\n name(): string {\n return \"MqDashboardInflightMessagesKpiProvider\";\n }\n\n help(): string {\n return \"Returns in-flight mq message count after applying dashboard variables.\";\n }\n\n async getData(\n widgetDefinition: Record<string, any>,\n ctxt: IDashboardWidgetDataProviderContext,\n ): Promise<IDashboardWidgetDataResponseEnvelope<{ value: number; label: string }>> {\n const qb = await this.mqMessageRepository.createSecurityRuleAwareQueryBuilder(\"mqMessage\");\n applyMqDashboardFilters(qb, ctxt.variables ?? {}, { ignoreStage: true });\n qb.andWhere(\"mqMessage.stage IN (:...stages)\", { stages: MQ_INFLIGHT_STAGES });\n\n const value = await qb.getCount();\n return {\n meta: {\n providerName: this.name(),\n generatedAt: new Date().toISOString(),\n widgetName: ctxt.widgetName,\n durationMs: 0,\n },\n data: {\n value,\n label: widgetDefinition?.name ?? \"In Flight\",\n },\n };\n }\n}\n\n"]}
@@ -0,0 +1,10 @@
1
+ import { MqMessageRepository } from "../../repository/mq-message.repository";
2
+ import { IDashboardWidgetDataProvider, IDashboardWidgetDataProviderContext, IDashboardWidgetDataResponseEnvelope } from "../../interfaces";
3
+ export declare class MqDashboardLatencyTrendProvider implements IDashboardWidgetDataProvider {
4
+ private readonly mqMessageRepository;
5
+ constructor(mqMessageRepository: MqMessageRepository);
6
+ name(): string;
7
+ help(): string;
8
+ getData(widgetDefinition: Record<string, any>, ctxt: IDashboardWidgetDataProviderContext): Promise<IDashboardWidgetDataResponseEnvelope<any>>;
9
+ }
10
+ //# sourceMappingURL=mq-dashboard-latency-trend-provider.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mq-dashboard-latency-trend-provider.service.d.ts","sourceRoot":"","sources":["../../../src/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,4BAA4B,EAAE,mCAAmC,EAAE,oCAAoC,EAAE,MAAM,gBAAgB,CAAC;AAGzI,qBAEa,+BAAgC,YAAW,4BAA4B;IAE5E,OAAO,CAAC,QAAQ,CAAC,mBAAmB;gBAAnB,mBAAmB,EAAE,mBAAmB;IAG7D,IAAI,IAAI,MAAM;IAId,IAAI,IAAI,MAAM;IAIR,OAAO,CACT,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrC,IAAI,EAAE,mCAAmC,GAC1C,OAAO,CAAC,oCAAoC,CAAC,GAAG,CAAC,CAAC;CAgCxD"}
@@ -0,0 +1,62 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MqDashboardLatencyTrendProvider = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const dashboard_widget_data_provider_decorator_1 = require("../../decorators/dashboard-widget-data-provider.decorator");
15
+ const mq_message_repository_1 = require("../../repository/mq-message.repository");
16
+ const mq_dashboard_provider_utils_1 = require("./mq-dashboard-provider-utils");
17
+ let MqDashboardLatencyTrendProvider = class MqDashboardLatencyTrendProvider {
18
+ constructor(mqMessageRepository) {
19
+ this.mqMessageRepository = mqMessageRepository;
20
+ }
21
+ name() {
22
+ return "MqDashboardLatencyTrendProvider";
23
+ }
24
+ help() {
25
+ return "Returns average elapsed millis trend over time buckets after applying dashboard variables.";
26
+ }
27
+ async getData(widgetDefinition, ctxt) {
28
+ const bucket = (0, mq_dashboard_provider_utils_1.normalizeBucket)(ctxt?.providerContext?.bucket);
29
+ const qb = await this.mqMessageRepository.createSecurityRuleAwareQueryBuilder("mqMessage");
30
+ (0, mq_dashboard_provider_utils_1.applyMqDashboardFilters)(qb, ctxt.variables ?? {});
31
+ qb.andWhere("mqMessage.elapsedMillis IS NOT NULL");
32
+ const bucketExpr = `DATE_TRUNC('${bucket}', mqMessage.createdAt)`;
33
+ const rows = await qb
34
+ .select(bucketExpr, "bucket")
35
+ .addSelect("AVG(mqMessage.elapsedMillis)", "value")
36
+ .groupBy(bucketExpr)
37
+ .orderBy("bucket", "ASC")
38
+ .getRawMany();
39
+ const categories = rows.map((r) => new Date(r.bucket).toISOString());
40
+ const values = rows.map((r) => Number((0, mq_dashboard_provider_utils_1.toNumber)(r.value).toFixed(2)));
41
+ return {
42
+ meta: {
43
+ providerName: this.name(),
44
+ generatedAt: new Date().toISOString(),
45
+ widgetName: ctxt.widgetName,
46
+ durationMs: 0,
47
+ },
48
+ data: {
49
+ categories,
50
+ series: [{ name: "avg_elapsed_millis", data: values }],
51
+ bucket,
52
+ },
53
+ };
54
+ }
55
+ };
56
+ exports.MqDashboardLatencyTrendProvider = MqDashboardLatencyTrendProvider;
57
+ exports.MqDashboardLatencyTrendProvider = MqDashboardLatencyTrendProvider = __decorate([
58
+ (0, dashboard_widget_data_provider_decorator_1.DashboardWidgetDataProvider)(),
59
+ (0, common_1.Injectable)(),
60
+ __metadata("design:paramtypes", [mq_message_repository_1.MqMessageRepository])
61
+ ], MqDashboardLatencyTrendProvider);
62
+ //# sourceMappingURL=mq-dashboard-latency-trend-provider.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mq-dashboard-latency-trend-provider.service.js","sourceRoot":"","sources":["../../../src/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,wHAAsG;AACtG,kFAA2E;AAE3E,+EAAkI;AAI3H,IAAM,+BAA+B,GAArC,MAAM,+BAA+B;IACxC,YACqB,mBAAwC;QAAxC,wBAAmB,GAAnB,mBAAmB,CAAqB;IACzD,CAAC;IAEL,IAAI;QACA,OAAO,iCAAiC,CAAC;IAC7C,CAAC;IAED,IAAI;QACA,OAAO,4FAA4F,CAAC;IACxG,CAAC;IAED,KAAK,CAAC,OAAO,CACT,gBAAqC,EACrC,IAAyC;QAEzC,MAAM,MAAM,GAAG,IAAA,6CAAe,EAAC,IAAI,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;QAE9D,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,mCAAmC,CAAC,WAAW,CAAC,CAAC;QAC3F,IAAA,qDAAuB,EAAC,EAAE,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QAClD,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAC;QAEnD,MAAM,UAAU,GAAG,eAAe,MAAM,yBAAyB,CAAC;QAClE,MAAM,IAAI,GAAG,MAAM,EAAE;aAChB,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC;aAC5B,SAAS,CAAC,8BAA8B,EAAE,OAAO,CAAC;aAClD,OAAO,CAAC,UAAU,CAAC;aACnB,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC;aACxB,UAAU,EAA8C,CAAC;QAE9D,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAA,sCAAQ,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAErE,OAAO;YACH,IAAI,EAAE;gBACF,YAAY,EAAE,IAAI,CAAC,IAAI,EAAE;gBACzB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACrC,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,UAAU,EAAE,CAAC;aAChB;YACD,IAAI,EAAE;gBACF,UAAU;gBACV,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBACtD,MAAM;aACT;SACJ,CAAC;IACN,CAAC;CACJ,CAAA;AAhDY,0EAA+B;0CAA/B,+BAA+B;IAF3C,IAAA,sEAA2B,GAAE;IAC7B,IAAA,mBAAU,GAAE;qCAGiC,2CAAmB;GAFpD,+BAA+B,CAgD3C","sourcesContent":["import { Injectable } from \"@nestjs/common\";\nimport { DashboardWidgetDataProvider } from \"src/decorators/dashboard-widget-data-provider.decorator\";\nimport { MqMessageRepository } from \"src/repository/mq-message.repository\";\nimport { IDashboardWidgetDataProvider, IDashboardWidgetDataProviderContext, IDashboardWidgetDataResponseEnvelope } from \"src/interfaces\";\nimport { applyMqDashboardFilters, normalizeBucket, toNumber } from \"src/services/dashboard-providers/mq-dashboard-provider-utils\";\n\n@DashboardWidgetDataProvider()\n@Injectable()\nexport class MqDashboardLatencyTrendProvider implements IDashboardWidgetDataProvider {\n constructor(\n private readonly mqMessageRepository: MqMessageRepository,\n ) { }\n\n name(): string {\n return \"MqDashboardLatencyTrendProvider\";\n }\n\n help(): string {\n return \"Returns average elapsed millis trend over time buckets after applying dashboard variables.\";\n }\n\n async getData(\n widgetDefinition: Record<string, any>,\n ctxt: IDashboardWidgetDataProviderContext,\n ): Promise<IDashboardWidgetDataResponseEnvelope<any>> {\n const bucket = normalizeBucket(ctxt?.providerContext?.bucket);\n\n const qb = await this.mqMessageRepository.createSecurityRuleAwareQueryBuilder(\"mqMessage\");\n applyMqDashboardFilters(qb, ctxt.variables ?? {});\n qb.andWhere(\"mqMessage.elapsedMillis IS NOT NULL\");\n\n const bucketExpr = `DATE_TRUNC('${bucket}', mqMessage.createdAt)`;\n const rows = await qb\n .select(bucketExpr, \"bucket\")\n .addSelect(\"AVG(mqMessage.elapsedMillis)\", \"value\")\n .groupBy(bucketExpr)\n .orderBy(\"bucket\", \"ASC\")\n .getRawMany<{ bucket: string; value: string | number }>();\n\n const categories = rows.map((r) => new Date(r.bucket).toISOString());\n const values = rows.map((r) => Number(toNumber(r.value).toFixed(2)));\n\n return {\n meta: {\n providerName: this.name(),\n generatedAt: new Date().toISOString(),\n widgetName: ctxt.widgetName,\n durationMs: 0,\n },\n data: {\n categories,\n series: [{ name: \"avg_elapsed_millis\", data: values }],\n bucket,\n },\n };\n }\n}\n\n"]}
@@ -0,0 +1,10 @@
1
+ import { MqMessageRepository } from "../../repository/mq-message.repository";
2
+ import { IDashboardWidgetDataProvider, IDashboardWidgetDataProviderContext, IDashboardWidgetDataResponseEnvelope } from "../../interfaces";
3
+ export declare class MqDashboardMessagesOverTimeProvider implements IDashboardWidgetDataProvider {
4
+ private readonly mqMessageRepository;
5
+ constructor(mqMessageRepository: MqMessageRepository);
6
+ name(): string;
7
+ help(): string;
8
+ getData(widgetDefinition: Record<string, any>, ctxt: IDashboardWidgetDataProviderContext): Promise<IDashboardWidgetDataResponseEnvelope<any>>;
9
+ }
10
+ //# sourceMappingURL=mq-dashboard-messages-over-time-provider.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mq-dashboard-messages-over-time-provider.service.d.ts","sourceRoot":"","sources":["../../../src/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,4BAA4B,EAAE,mCAAmC,EAAE,oCAAoC,EAAE,MAAM,gBAAgB,CAAC;AAGzI,qBAEa,mCAAoC,YAAW,4BAA4B;IAEhF,OAAO,CAAC,QAAQ,CAAC,mBAAmB;gBAAnB,mBAAmB,EAAE,mBAAmB;IAG7D,IAAI,IAAI,MAAM;IAId,IAAI,IAAI,MAAM;IAIR,OAAO,CACT,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrC,IAAI,EAAE,mCAAmC,GAC1C,OAAO,CAAC,oCAAoC,CAAC,GAAG,CAAC,CAAC;CAqDxD"}
@@ -0,0 +1,82 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MqDashboardMessagesOverTimeProvider = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const dashboard_widget_data_provider_decorator_1 = require("../../decorators/dashboard-widget-data-provider.decorator");
15
+ const mq_message_repository_1 = require("../../repository/mq-message.repository");
16
+ const mq_dashboard_provider_utils_1 = require("./mq-dashboard-provider-utils");
17
+ let MqDashboardMessagesOverTimeProvider = class MqDashboardMessagesOverTimeProvider {
18
+ constructor(mqMessageRepository) {
19
+ this.mqMessageRepository = mqMessageRepository;
20
+ }
21
+ name() {
22
+ return "MqDashboardMessagesOverTimeProvider";
23
+ }
24
+ help() {
25
+ return "Returns time-series message counts by stage (and total) after applying dashboard variables.";
26
+ }
27
+ async getData(widgetDefinition, ctxt) {
28
+ const bucket = (0, mq_dashboard_provider_utils_1.normalizeBucket)(ctxt?.providerContext?.bucket);
29
+ const requestedSeries = Array.isArray(ctxt?.providerContext?.series) && ctxt.providerContext.series.length > 0
30
+ ? ctxt.providerContext.series
31
+ : ["total", "succeeded", "failed", "retrying"];
32
+ const qb = await this.mqMessageRepository.createSecurityRuleAwareQueryBuilder("mqMessage");
33
+ (0, mq_dashboard_provider_utils_1.applyMqDashboardFilters)(qb, ctxt.variables ?? {});
34
+ const bucketExpr = `DATE_TRUNC('${bucket}', mqMessage.createdAt)`;
35
+ const rows = await qb
36
+ .select(bucketExpr, "bucket")
37
+ .addSelect("mqMessage.stage", "stage")
38
+ .addSelect("COUNT(mqMessage.id)", "count")
39
+ .groupBy(bucketExpr)
40
+ .addGroupBy("mqMessage.stage")
41
+ .orderBy("bucket", "ASC")
42
+ .getRawMany();
43
+ const bucketToStageMap = new Map();
44
+ for (const row of rows) {
45
+ const key = new Date(row.bucket).toISOString();
46
+ const entry = bucketToStageMap.get(key) ?? {};
47
+ entry[row.stage] = (entry[row.stage] ?? 0) + (0, mq_dashboard_provider_utils_1.toNumber)(row.count, 0);
48
+ bucketToStageMap.set(key, entry);
49
+ }
50
+ const categories = Array.from(bucketToStageMap.keys()).sort();
51
+ const series = requestedSeries.map((seriesName) => {
52
+ const data = categories.map((category) => {
53
+ const stageMap = bucketToStageMap.get(category) ?? {};
54
+ if (seriesName === "total") {
55
+ return Object.values(stageMap).reduce((sum, value) => sum + value, 0);
56
+ }
57
+ return stageMap[seriesName] ?? 0;
58
+ });
59
+ return { name: seriesName, data };
60
+ });
61
+ return {
62
+ meta: {
63
+ providerName: this.name(),
64
+ generatedAt: new Date().toISOString(),
65
+ widgetName: ctxt.widgetName,
66
+ durationMs: 0,
67
+ },
68
+ data: {
69
+ categories,
70
+ series,
71
+ bucket,
72
+ },
73
+ };
74
+ }
75
+ };
76
+ exports.MqDashboardMessagesOverTimeProvider = MqDashboardMessagesOverTimeProvider;
77
+ exports.MqDashboardMessagesOverTimeProvider = MqDashboardMessagesOverTimeProvider = __decorate([
78
+ (0, dashboard_widget_data_provider_decorator_1.DashboardWidgetDataProvider)(),
79
+ (0, common_1.Injectable)(),
80
+ __metadata("design:paramtypes", [mq_message_repository_1.MqMessageRepository])
81
+ ], MqDashboardMessagesOverTimeProvider);
82
+ //# sourceMappingURL=mq-dashboard-messages-over-time-provider.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mq-dashboard-messages-over-time-provider.service.js","sourceRoot":"","sources":["../../../src/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,wHAAsG;AACtG,kFAA2E;AAE3E,+EAAkI;AAI3H,IAAM,mCAAmC,GAAzC,MAAM,mCAAmC;IAC5C,YACqB,mBAAwC;QAAxC,wBAAmB,GAAnB,mBAAmB,CAAqB;IACzD,CAAC;IAEL,IAAI;QACA,OAAO,qCAAqC,CAAC;IACjD,CAAC;IAED,IAAI;QACA,OAAO,6FAA6F,CAAC;IACzG,CAAC;IAED,KAAK,CAAC,OAAO,CACT,gBAAqC,EACrC,IAAyC;QAEzC,MAAM,MAAM,GAAG,IAAA,6CAAe,EAAC,IAAI,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;QAC9D,MAAM,eAAe,GAAa,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YACpH,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM;YAC7B,CAAC,CAAC,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QAEnD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,mCAAmC,CAAC,WAAW,CAAC,CAAC;QAC3F,IAAA,qDAAuB,EAAC,EAAE,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;QAElD,MAAM,UAAU,GAAG,eAAe,MAAM,yBAAyB,CAAC;QAClE,MAAM,IAAI,GAAG,MAAM,EAAE;aAChB,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC;aAC5B,SAAS,CAAC,iBAAiB,EAAE,OAAO,CAAC;aACrC,SAAS,CAAC,qBAAqB,EAAE,OAAO,CAAC;aACzC,OAAO,CAAC,UAAU,CAAC;aACnB,UAAU,CAAC,iBAAiB,CAAC;aAC7B,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC;aACxB,UAAU,EAA6D,CAAC;QAE7E,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAkC,CAAC;QACnE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC9C,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,IAAA,sCAAQ,EAAC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACpE,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9D,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;YAC9C,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACrC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACtD,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;oBACzB,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC1E,CAAC;gBACD,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;YACH,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,OAAO;YACH,IAAI,EAAE;gBACF,YAAY,EAAE,IAAI,CAAC,IAAI,EAAE;gBACzB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACrC,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,UAAU,EAAE,CAAC;aAChB;YACD,IAAI,EAAE;gBACF,UAAU;gBACV,MAAM;gBACN,MAAM;aACT;SACJ,CAAC;IACN,CAAC;CACJ,CAAA;AArEY,kFAAmC;8CAAnC,mCAAmC;IAF/C,IAAA,sEAA2B,GAAE;IAC7B,IAAA,mBAAU,GAAE;qCAGiC,2CAAmB;GAFpD,mCAAmC,CAqE/C","sourcesContent":["import { Injectable } from \"@nestjs/common\";\nimport { DashboardWidgetDataProvider } from \"src/decorators/dashboard-widget-data-provider.decorator\";\nimport { MqMessageRepository } from \"src/repository/mq-message.repository\";\nimport { IDashboardWidgetDataProvider, IDashboardWidgetDataProviderContext, IDashboardWidgetDataResponseEnvelope } from \"src/interfaces\";\nimport { applyMqDashboardFilters, normalizeBucket, toNumber } from \"src/services/dashboard-providers/mq-dashboard-provider-utils\";\n\n@DashboardWidgetDataProvider()\n@Injectable()\nexport class MqDashboardMessagesOverTimeProvider implements IDashboardWidgetDataProvider {\n constructor(\n private readonly mqMessageRepository: MqMessageRepository,\n ) { }\n\n name(): string {\n return \"MqDashboardMessagesOverTimeProvider\";\n }\n\n help(): string {\n return \"Returns time-series message counts by stage (and total) after applying dashboard variables.\";\n }\n\n async getData(\n widgetDefinition: Record<string, any>,\n ctxt: IDashboardWidgetDataProviderContext,\n ): Promise<IDashboardWidgetDataResponseEnvelope<any>> {\n const bucket = normalizeBucket(ctxt?.providerContext?.bucket);\n const requestedSeries: string[] = Array.isArray(ctxt?.providerContext?.series) && ctxt.providerContext.series.length > 0\n ? ctxt.providerContext.series\n : [\"total\", \"succeeded\", \"failed\", \"retrying\"];\n\n const qb = await this.mqMessageRepository.createSecurityRuleAwareQueryBuilder(\"mqMessage\");\n applyMqDashboardFilters(qb, ctxt.variables ?? {});\n\n const bucketExpr = `DATE_TRUNC('${bucket}', mqMessage.createdAt)`;\n const rows = await qb\n .select(bucketExpr, \"bucket\")\n .addSelect(\"mqMessage.stage\", \"stage\")\n .addSelect(\"COUNT(mqMessage.id)\", \"count\")\n .groupBy(bucketExpr)\n .addGroupBy(\"mqMessage.stage\")\n .orderBy(\"bucket\", \"ASC\")\n .getRawMany<{ bucket: string; stage: string; count: string | number }>();\n\n const bucketToStageMap = new Map<string, Record<string, number>>();\n for (const row of rows) {\n const key = new Date(row.bucket).toISOString();\n const entry = bucketToStageMap.get(key) ?? {};\n entry[row.stage] = (entry[row.stage] ?? 0) + toNumber(row.count, 0);\n bucketToStageMap.set(key, entry);\n }\n\n const categories = Array.from(bucketToStageMap.keys()).sort();\n const series = requestedSeries.map((seriesName) => {\n const data = categories.map((category) => {\n const stageMap = bucketToStageMap.get(category) ?? {};\n if (seriesName === \"total\") {\n return Object.values(stageMap).reduce((sum, value) => sum + value, 0);\n }\n return stageMap[seriesName] ?? 0;\n });\n return { name: seriesName, data };\n });\n\n return {\n meta: {\n providerName: this.name(),\n generatedAt: new Date().toISOString(),\n widgetName: ctxt.widgetName,\n durationMs: 0,\n },\n data: {\n categories,\n series,\n bucket,\n },\n };\n }\n}\n\n"]}
@@ -0,0 +1,17 @@
1
+ import { MqMessage } from "../../entities/mq-message.entity";
2
+ import { SelectQueryBuilder } from "typeorm";
3
+ export declare const MQ_INFLIGHT_STAGES: string[];
4
+ export interface MqDashboardVariables {
5
+ date?: any;
6
+ queueName?: string | string[];
7
+ stage?: string | string[];
8
+ messageBroker?: string | string[];
9
+ }
10
+ export interface ApplyMqDashboardFiltersOptions {
11
+ ignoreStage?: boolean;
12
+ ensureQueueJoin?: boolean;
13
+ }
14
+ export declare function applyMqDashboardFilters(qb: SelectQueryBuilder<MqMessage>, variables?: MqDashboardVariables, options?: ApplyMqDashboardFiltersOptions): SelectQueryBuilder<MqMessage>;
15
+ export declare function normalizeBucket(value: string | undefined): 'hour' | 'day' | 'week' | 'month';
16
+ export declare function toNumber(value: any, fallback?: number): number;
17
+ //# sourceMappingURL=mq-dashboard-provider-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mq-dashboard-provider-utils.d.ts","sourceRoot":"","sources":["../../../src/services/dashboard-providers/mq-dashboard-provider-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C,eAAO,MAAM,kBAAkB,UAA2D,CAAC;AAE3F,MAAM,WAAW,oBAAoB;IACjC,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,8BAA8B;IAC3C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,uBAAuB,CACnC,EAAE,EAAE,kBAAkB,CAAC,SAAS,CAAC,EACjC,SAAS,GAAE,oBAAyB,EACpC,OAAO,GAAE,8BAAmC,GAC7C,kBAAkB,CAAC,SAAS,CAAC,CAoB/B;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAM5F;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,SAAI,GAAG,MAAM,CAGzD"}
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MQ_INFLIGHT_STAGES = void 0;
4
+ exports.applyMqDashboardFilters = applyMqDashboardFilters;
5
+ exports.normalizeBucket = normalizeBucket;
6
+ exports.toNumber = toNumber;
7
+ exports.MQ_INFLIGHT_STAGES = ['pending', 'scheduled', 'started', 'retry', 'retrying'];
8
+ function applyMqDashboardFilters(qb, variables = {}, options = {}) {
9
+ applyDateFilter(qb, variables.date);
10
+ applyStringOrArrayFilter(qb, 'mqMessage.messageBroker', variables.messageBroker, 'messageBroker');
11
+ if (!options.ignoreStage) {
12
+ applyStringOrArrayFilter(qb, 'mqMessage.stage', variables.stage, 'stage');
13
+ }
14
+ if (options.ensureQueueJoin ||
15
+ (variables.queueName !== undefined && variables.queueName !== null && variables.queueName !== '')) {
16
+ qb.leftJoin('mqMessage.mqMessageQueue', 'mqMessageQueue');
17
+ }
18
+ if (variables.queueName !== undefined && variables.queueName !== null && variables.queueName !== '') {
19
+ applyStringOrArrayFilter(qb, 'mqMessageQueue.name', variables.queueName, 'queueName');
20
+ }
21
+ return qb;
22
+ }
23
+ function normalizeBucket(value) {
24
+ const v = `${value ?? ''}`.toLowerCase();
25
+ if (v === 'hour' || v === 'day' || v === 'week' || v === 'month') {
26
+ return v;
27
+ }
28
+ return 'hour';
29
+ }
30
+ function toNumber(value, fallback = 0) {
31
+ const n = Number(value);
32
+ return Number.isFinite(n) ? n : fallback;
33
+ }
34
+ function applyDateFilter(qb, dateVariable) {
35
+ const range = resolveDateRange(dateVariable);
36
+ if (range.from) {
37
+ qb.andWhere('mqMessage.createdAt >= :dashboardDateFrom', { dashboardDateFrom: range.from.toISOString() });
38
+ }
39
+ if (range.to) {
40
+ qb.andWhere('mqMessage.createdAt <= :dashboardDateTo', { dashboardDateTo: range.to.toISOString() });
41
+ }
42
+ }
43
+ function applyStringOrArrayFilter(qb, qualifiedColumn, value, paramKey) {
44
+ if (value === undefined || value === null || value === '') {
45
+ return;
46
+ }
47
+ const values = Array.isArray(value) ? value.filter((v) => !!v) : [value];
48
+ if (values.length === 0) {
49
+ return;
50
+ }
51
+ if (values.length === 1) {
52
+ qb.andWhere(`${qualifiedColumn} = :${paramKey}`, { [paramKey]: values[0] });
53
+ return;
54
+ }
55
+ qb.andWhere(`${qualifiedColumn} IN (:...${paramKey})`, { [paramKey]: values });
56
+ }
57
+ function resolveDateRange(dateVariable) {
58
+ if (!dateVariable)
59
+ return {};
60
+ if (Array.isArray(dateVariable) && dateVariable.length >= 2) {
61
+ return {
62
+ from: parseDate(dateVariable[0]),
63
+ to: parseDate(dateVariable[1]),
64
+ };
65
+ }
66
+ if (typeof dateVariable === 'object') {
67
+ const presetRange = resolvePresetRange(dateVariable.preset);
68
+ const from = parseDate(dateVariable.from ?? dateVariable.start ?? dateVariable.startDate) ?? presetRange.from;
69
+ const to = parseDate(dateVariable.to ?? dateVariable.end ?? dateVariable.endDate) ?? presetRange.to;
70
+ return { from, to };
71
+ }
72
+ if (typeof dateVariable === 'string') {
73
+ const presetRange = resolvePresetRange(dateVariable);
74
+ if (presetRange.from || presetRange.to) {
75
+ return presetRange;
76
+ }
77
+ const parsed = parseDate(dateVariable);
78
+ if (!parsed)
79
+ return {};
80
+ return { from: parsed, to: parsed };
81
+ }
82
+ return {};
83
+ }
84
+ function parseDate(value) {
85
+ if (!value)
86
+ return undefined;
87
+ const d = new Date(value);
88
+ if (Number.isNaN(d.getTime()))
89
+ return undefined;
90
+ return d;
91
+ }
92
+ function resolvePresetRange(preset) {
93
+ if (!preset)
94
+ return {};
95
+ const now = new Date();
96
+ const to = new Date(now);
97
+ switch (preset) {
98
+ case 'today': {
99
+ const from = new Date(now);
100
+ from.setHours(0, 0, 0, 0);
101
+ return { from, to };
102
+ }
103
+ case 'yesterday': {
104
+ const from = new Date(now);
105
+ from.setDate(from.getDate() - 1);
106
+ from.setHours(0, 0, 0, 0);
107
+ const end = new Date(from);
108
+ end.setHours(23, 59, 59, 999);
109
+ return { from, to: end };
110
+ }
111
+ case 'last_24_hours': {
112
+ const from = new Date(now);
113
+ from.setHours(from.getHours() - 24);
114
+ return { from, to };
115
+ }
116
+ case 'last_7_days': {
117
+ const from = new Date(now);
118
+ from.setDate(from.getDate() - 7);
119
+ return { from, to };
120
+ }
121
+ case 'last_30_days': {
122
+ const from = new Date(now);
123
+ from.setDate(from.getDate() - 30);
124
+ return { from, to };
125
+ }
126
+ default:
127
+ return {};
128
+ }
129
+ }
130
+ //# sourceMappingURL=mq-dashboard-provider-utils.js.map