@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
@@ -44,19 +44,34 @@ export class ModuleMetadataHelperService {
44
44
  const dashModuleName = kebabCase(moduleName);
45
45
  const folderPath = path.resolve(process.cwd(), 'module-metadata', dashModuleName);
46
46
  const filePath = path.join(folderPath, `${dashModuleName}-metadata.json`);
47
+
47
48
  // Check if filePath exists
48
49
  const fileExists = await this.fileService.exists(filePath);
49
- // this.logger.debug(`File exists: ${fileExists} at ${filePath}`);
50
- if (!fileExists) {
51
- // If the module is solid-core, try the fallback path, in case the current root directory is the solid core project
52
- if (dashModuleName === SOLID_CORE_MODULE_NAME) {
53
- const fallbackPath = path.resolve(process.cwd(), 'src', 'seeders', 'seed-data', `${dashModuleName}-metadata.json`);
50
+ if (fileExists) {
51
+ return filePath;
52
+ }
53
+
54
+ // If the module is solid-core, try the fallback path, in case the current root directory is the solid core project
55
+ if (dashModuleName === SOLID_CORE_MODULE_NAME) {
56
+ const fallbackPath = path.resolve(process.cwd(), 'src', 'seeders', 'seed-data', `${dashModuleName}-metadata.json`);
57
+ const fallbackExists = await this.fileService.exists(fallbackPath);
58
+ if (fallbackExists) {
54
59
  this.logger.debug(`Fallback path: ${fallbackPath}`);
55
60
  return fallbackPath;
56
61
  }
62
+
63
+ const consumingProjectFallbackPath = path.resolve(process.cwd(), 'node_modules', '@solidxai', 'core', 'src', 'seeders', 'seed-data', `${dashModuleName}-metadata.json`);
64
+ const consumingProjectFallbackExists = await this.fileService.exists(consumingProjectFallbackPath);
65
+ if (consumingProjectFallbackExists) {
66
+ this.logger.debug(`Fallback path: ${consumingProjectFallbackPath}`);
67
+ return consumingProjectFallbackPath;
68
+ }
57
69
  }
58
- return filePath;
70
+
71
+ this.logger.error(`Module metadata file not found for module: ${moduleName} at path: ${filePath}`);
72
+ return '';
59
73
  }
74
+
60
75
  async getModuleMetadataFolderPath(moduleName: string): Promise<string> {
61
76
  if (!moduleName) {
62
77
  return '';
@@ -7,7 +7,7 @@ import { CommonEntity } from 'src/entities/common.entity';
7
7
  import { Locale } from 'src/entities/locale.entity';
8
8
  import { SecurityRule } from 'src/entities/security-rule.entity';
9
9
  import { IScheduledJob } from 'src/services/scheduled-jobs/scheduled-job.interface';
10
- import { IDashboardQuestionDataProvider, IDashboardVariableSelectionProvider, IErrorCodeProvider, ISecurityRuleConfigProvider, ISelectionProvider, ISelectionProviderContext, ISolidDatabaseModule } from "../interfaces";
10
+ import { IDashboardWidgetDataProvider, IErrorCodeProvider, ISecurityRuleConfigProvider, ISelectionProvider, ISelectionProviderContext, ISolidDatabaseModule } from "../interfaces";
11
11
  import { ObjectLiteral } from 'typeorm';
12
12
 
13
13
  type ControllerMetadata = {
@@ -71,6 +71,7 @@ export class SolidRegistry {
71
71
  private seeders: Set<InstanceWrapper> = new Set();
72
72
  private scheduledJobProviders: Set<InstanceWrapper> = new Set();
73
73
  private selectionProviders: Set<InstanceWrapper> = new Set();
74
+ private dashboardWidgetDataProviders: Set<InstanceWrapper> = new Set();
74
75
  private computedFieldProviders: Set<InstanceWrapper> = new Set();
75
76
  private solidDatabaseModules: Set<InstanceWrapper> = new Set();
76
77
  private controllers: Set<ControllerMetadata> = new Set();
@@ -78,8 +79,6 @@ export class SolidRegistry {
78
79
  private securityRules: SecurityRule[] = [];
79
80
  private locales: Locale[] = [];
80
81
  private computedFieldMetadata: ComputedFieldMetadata[] = [];
81
- private dashboardVariableSelectionProviders: Set<InstanceWrapper> = new Set();
82
- private dashboardQuestionDataProviders: Set<InstanceWrapper> = new Set();
83
82
  private mailProviders: Set<InstanceWrapper> = new Set();
84
83
  private whatsappProviders: Set<InstanceWrapper> = new Set();
85
84
  private smsProviders: Set<InstanceWrapper> = new Set();
@@ -138,12 +137,8 @@ export class SolidRegistry {
138
137
  this.selectionProviders.add(selectionProvider);
139
138
  }
140
139
 
141
- registerDashboardVariableSelectionProvider(dashboardSelectionProvider: InstanceWrapper): void {
142
- this.dashboardVariableSelectionProviders.add(dashboardSelectionProvider);
143
- }
144
-
145
- registerDashboardQuestionDataProvider(dashboardQuestionDataProvider: InstanceWrapper): void {
146
- this.dashboardQuestionDataProviders.add(dashboardQuestionDataProvider);
140
+ registerDashboardWidgetDataProvider(provider: InstanceWrapper): void {
141
+ this.dashboardWidgetDataProviders.add(provider);
147
142
  }
148
143
 
149
144
  registerComputedFieldProvider(computedFieldProvider: InstanceWrapper): void {
@@ -232,6 +227,10 @@ export class SolidRegistry {
232
227
  return Array.from(this.selectionProviders);
233
228
  }
234
229
 
230
+ getDashboardWidgetDataProviders(): Array<InstanceWrapper> {
231
+ return Array.from(this.dashboardWidgetDataProviders);
232
+ }
233
+
235
234
  getSelectionProviderInstance<T extends ISelectionProviderContext>(name: string): ISelectionProvider<T> {
236
235
  const selectionProviders = this.getSelectionProviders();
237
236
 
@@ -243,19 +242,15 @@ export class SolidRegistry {
243
242
  }
244
243
  }
245
244
 
246
- getDashboardVariableSelectionProviders(): Array<InstanceWrapper> {
247
- return Array.from(this.dashboardVariableSelectionProviders);
248
- }
249
-
250
- getDashboardVariableSelectionProviderInstance<T extends ISelectionProviderContext>(name: string): IDashboardVariableSelectionProvider<T> {
251
- const dashboardSelectionProviders = this.getDashboardVariableSelectionProviders();
252
-
253
- for (let i = 0; i < dashboardSelectionProviders.length; i++) {
254
- const dashboardSelectionProvider = dashboardSelectionProviders[i];
255
- if (dashboardSelectionProvider.instance.name() === name) {
256
- return dashboardSelectionProvider.instance;
245
+ getDashboardWidgetDataProviderInstance(name: string): IDashboardWidgetDataProvider | undefined {
246
+ const providers = this.getDashboardWidgetDataProviders();
247
+ for (let i = 0; i < providers.length; i++) {
248
+ const provider = providers[i];
249
+ if (provider?.instance?.name?.() === name || provider?.name === name) {
250
+ return provider.instance as IDashboardWidgetDataProvider;
257
251
  }
258
252
  }
253
+ return undefined;
259
254
  }
260
255
 
261
256
  getErrorCodeProviders(): Array<InstanceWrapper> {
@@ -271,21 +266,6 @@ export class SolidRegistry {
271
266
  return undefined;
272
267
  }
273
268
 
274
- getDashboardQuestionDataProviders(): Array<InstanceWrapper> {
275
- return Array.from(this.dashboardQuestionDataProviders)
276
- }
277
-
278
- getDashboardQuestionDataProviderInstance<TContext, TData>(name: string): IDashboardQuestionDataProvider<TContext, TData> {
279
- const dashboardQuestionDataProviders = this.getDashboardQuestionDataProviders();
280
-
281
- for (let i = 0; i < dashboardQuestionDataProviders.length; i++) {
282
- const dasbhoardQuestionDataProvider = dashboardQuestionDataProviders[i];
283
- if (dasbhoardQuestionDataProvider.instance.name() === name) {
284
- return dasbhoardQuestionDataProvider.instance;
285
- }
286
- }
287
- }
288
-
289
269
  getComputedFieldProviders(): Array<InstanceWrapper> {
290
270
  return Array.from(this.computedFieldProviders);
291
271
  }
@@ -380,4 +360,3 @@ export class SolidRegistry {
380
360
  }
381
361
  }
382
362
  }
383
-
package/src/index.ts CHANGED
@@ -12,6 +12,7 @@ export * from './config/cache.options'
12
12
  export * from './decorators/active-user.decorator'
13
13
  export * from './decorators/solid-request-context.decorator'
14
14
  export * from './decorators/auth.decorator'
15
+ export * from './decorators/dashboard-widget-data-provider.decorator'
15
16
  export * from './decorators/computed-field-provider.decorator'
16
17
  export * from './decorators/scheduled-job-provider.decorator'
17
18
  export * from './decorators/is-not-in-enum.decorator'
@@ -107,6 +108,10 @@ export * from './dtos/update-chatter-message-details.dto'
107
108
  export * from './dtos/update-locale.dto'
108
109
  export * from './dtos/create-user-activity-history.dto'
109
110
  export * from './dtos/update-user-activity-history.dto'
111
+ export * from './dtos/dashboard-variable-options-query.dto'
112
+ export * from './dtos/dashboard-widget-data-request.dto'
113
+ export * from './dtos/create-dashboard-user-layout.dto'
114
+ export * from './dtos/update-dashboard-user-layout.dto'
110
115
 
111
116
  export * from './entities/action-metadata.entity'
112
117
  export * from './entities/common.entity'
@@ -146,13 +151,9 @@ export * from './entities/import-transaction.entity'
146
151
  export * from './entities/import-transaction-error-log.entity'
147
152
  export * from './entities/locale.entity'
148
153
  export * from './entities/user-activity-history.entity'
149
- export * from './entities/dashboard.entity'
150
- export * from './entities/dashboard-variable.entity'
151
- export * from './entities/dashboard-question.entity'
152
- export * from './entities/dashboard-layout.entity'
153
- export * from './entities/dashboard-question-sql-dataset-config.entity'
154
154
  export * from './entities/ai-interaction.entity'
155
155
  export * from './entities/model-sequence.entity'
156
+ export * from './entities/dashboard-user-layout.entity'
156
157
  export * from './entities/user-api-key.entity'
157
158
 
158
159
  export * from './enums/auth-type.enum'
@@ -312,6 +313,8 @@ export * from './services/queues/redis-subscriber.service'
312
313
  export * from './services/refresh-token-ids-storage.service'
313
314
  export * from './services/role-metadata.service'
314
315
  export * from './services/selection-providers/list-of-models-selection-provider.service'
316
+ export * from './services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service'
317
+ export * from './services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service'
315
318
  export * from './services/short-url/tiny-url.service'
316
319
  export * from './services/sms/Msg91BaseSMSService' //rename
317
320
  export * from './services/sms/Msg91OTPService' //rename
@@ -339,10 +342,23 @@ export * from './services/import-transaction.service'
339
342
  export * from './services/import-transaction-error-log.service'
340
343
  export * from './services/excel.service'
341
344
  export * from './services/csv.service'
345
+ export * from './services/dashboard-runtime.service'
342
346
  export * from './services/queues/publisher-factory.service'
343
347
  export * from './services/queues/database-publisher.service'
344
348
  export * from './services/queues/database-subscriber.service'
345
349
  export * from './services/ai-interaction.service'
350
+ export * from './services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service'
351
+ export * from './services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service'
352
+ export * from './services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service'
353
+ export * from './services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service'
354
+ export * from './services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service'
355
+ export * from './services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service'
356
+ export * from './services/dashboard-providers/mq-dashboard-messages-over-time-provider.service'
357
+ export * from './services/dashboard-providers/mq-dashboard-stage-distribution-provider.service'
358
+ export * from './services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service'
359
+ export * from './services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service'
360
+ export * from './services/dashboard-providers/mq-dashboard-latency-trend-provider.service'
361
+ export * from './services/dashboard-providers/mq-dashboard-recent-failures-provider.service'
346
362
 
347
363
  // Factories
348
364
  export * from './factories/mail.factory'
package/src/interfaces.ts CHANGED
@@ -12,10 +12,7 @@ import { CreateRoleMetadataDto } from './dtos/create-role-metadata.dto';
12
12
  import { CreateSecurityRuleDto } from './dtos/create-security-rule.dto';
13
13
  import { FieldMetadata } from './entities/field-metadata.entity';
14
14
  import { Media } from './entities/media.entity';
15
- import { DashboardQuestion } from './entities/dashboard-question.entity';
16
15
  import { ComputedFieldMetadata } from './helpers/solid-registry';
17
- import { SqlExpression } from './services/question-data-providers/chartjs-sql-data-provider.service';
18
- import { CreateDashboardDto } from './dtos/create-dashboard.dto';
19
16
  import { AiInteraction } from './entities/ai-interaction.entity';
20
17
  import { ActiveUserData } from './interfaces/active-user-data.interface';
21
18
  import { SecurityRuleConfig } from './dtos/security-rule-config.dto';
@@ -59,7 +56,7 @@ export interface ModuleMetadataConfiguration {
59
56
  smsTemplates?: CreateSmsTemplateDto[],
60
57
  mediaStorageProviders?: CreateMediaStorageProviderMetadataDto[]
61
58
  securityRules?: CreateSecurityRuleDto[],
62
- dashboards?: CreateDashboardDto[],
59
+ dashboards?: any[],
63
60
  }
64
61
 
65
62
  export enum SettingLevel {
@@ -166,27 +163,43 @@ export interface ISelectionProvider<T extends ISelectionProviderContext> {
166
163
  values(query: any, ctxt: T): Promise<readonly ISelectionProviderValues[]>;
167
164
  }
168
165
 
169
- export interface IDashboardVariableSelectionProvider<T extends ISelectionProviderContext> extends ISelectionProvider<T> {
166
+ export interface IDashboardWidgetDataProviderContext<TVariables = Record<string, any>, TProviderContext = Record<string, any>> {
167
+ moduleName: string;
168
+ dashboardName: string;
169
+ widgetName: string;
170
+ variables: TVariables;
171
+ providerContext: TProviderContext;
172
+ activeUser?: ActiveUserData;
173
+ }
174
+
175
+ export interface IDashboardWidgetDataResponseEnvelope<TData = any, TUiHints = Record<string, any>> {
176
+ meta: {
177
+ providerName: string;
178
+ generatedAt: string;
179
+ widgetName: string;
180
+ durationMs: number;
181
+ [key: string]: any;
182
+ };
183
+ data: TData;
184
+ uiHints?: TUiHints;
185
+ }
186
+
187
+ export interface IDashboardWidgetDataProvider<
188
+ TContext extends IDashboardWidgetDataProviderContext = IDashboardWidgetDataProviderContext,
189
+ TResponse = any,
190
+ > {
191
+ help(): string;
192
+ name(): string;
193
+ getData(
194
+ widgetDefinition: Record<string, any>,
195
+ ctxt: TContext,
196
+ ): Promise<IDashboardWidgetDataResponseEnvelope<TResponse> | any>;
170
197
  }
171
198
 
172
199
  export interface IMcpToolResponseHandler {
173
200
  apply(aiInteraction: AiInteraction);
174
201
  }
175
202
 
176
- export interface QuestionSqlDataProviderContext {
177
- // questionSqlDatasetConfig: QuestionSqlDatasetConfig;
178
- // questionId: number;
179
- // question: Question;
180
- expressions?: SqlExpression[]
181
- }
182
- export interface IDashboardQuestionDataProvider<TContext, TData> {
183
- help(): string;
184
-
185
- name(): string;
186
-
187
- getData(question: DashboardQuestion, ctxt?: TContext): Promise<TData[] | TData>;
188
- }
189
-
190
203
  /**
191
204
  * @deprecated Use `IEntityComputedFieldProvider` instead.
192
205
  */
@@ -2,12 +2,10 @@ import { Injectable, Logger } from '@nestjs/common';
2
2
  import { ModelMetadataService } from '../../services/model-metadata.service';
3
3
  import { SolidRegistry } from 'src/helpers/solid-registry';
4
4
  import { QueueMessage } from 'src/interfaces/mq';
5
- import { DashboardRepository } from 'src/repository/dashboard.repository';
6
5
  import { AiInteractionService } from 'src/services/ai-interaction.service';
7
6
  import { ModuleMetadataService } from 'src/services/module-metadata.service';
8
7
  import { PollerService } from 'src/services/poller.service';
9
8
  import { DatabaseSubscriber } from 'src/services/queues/database-subscriber.service';
10
- import { Not } from 'typeorm';
11
9
  import { McpResponse, QueuesModuleOptions, TriggerMcpClientOptions } from "../../interfaces";
12
10
  import { MqMessageQueueService } from '../../services/mq-message-queue.service';
13
11
  import { MqMessageService } from '../../services/mq-message.service';
@@ -24,9 +22,7 @@ export class TriggerMcpClientSubscriberDatabase extends DatabaseSubscriber<Trigg
24
22
  readonly aiInteractionService: AiInteractionService,
25
23
  readonly moduleMetadataService: ModuleMetadataService,
26
24
  readonly modelMetadataService: ModelMetadataService,
27
- private readonly solidRegistry: SolidRegistry,
28
- // private readonly dashboardService: DashboardService
29
- private readonly dashboardRepository: DashboardRepository
25
+ private readonly solidRegistry: SolidRegistry
30
26
 
31
27
  ) {
32
28
  super(mqMessageService, mqMessageQueueService, poller);
@@ -126,22 +122,6 @@ export class TriggerMcpClientSubscriberDatabase extends DatabaseSubscriber<Trigg
126
122
  populate: ['module']
127
123
  });
128
124
 
129
- // Get the list of dashboards
130
- // TODO: Ideally we should fetch dashboard like below, but used below approach to avoid below CLS issues for now.
131
- // Cannot set the key "filter". No CLS context available, please make sure that a ClsMiddleware/Guard/Interceptor has set up the context, or wrap any calls that depend on CLS with "ClsService#run"
132
- // const { records: existingDashboards } = await this.dashboardService.find({
133
- // fields
134
- // })
135
- const existingDashboards = await this.dashboardRepository.find(
136
- {
137
- where: {
138
- module: {
139
- name: Not('solid-core')
140
- }
141
- },
142
- }
143
- );
144
-
145
125
  const existingControllerAndTheirMethods = this.solidRegistry.getControllers();
146
126
 
147
127
 
@@ -164,14 +144,6 @@ export class TriggerMcpClientSubscriberDatabase extends DatabaseSubscriber<Trigg
164
144
  ].join('\n'))
165
145
  .join('\n\n');
166
146
 
167
- const dashboardsSection = (existingDashboards ?? [])
168
- .map(d => [
169
- `### ${d.displayName}`,
170
- `- name: ${d.name}`,
171
- `- description: ${d.description ?? ""}`,
172
- ].join('\n'))
173
- .join('\n\n');
174
-
175
147
  const computationProvidersSection = (existingComputationProviders ?? [])
176
148
  .map(m => [
177
149
  `### ${m.instance.name()}`,
@@ -213,11 +185,6 @@ You need to pull out the singularName for the model from the user prompt to matc
213
185
 
214
186
  ${modelsSection}
215
187
 
216
- ## LIST OF EXISTING DASHBOARDS
217
- Use the below list of dashboards to infer which dashboard the user is referring to.
218
-
219
- ${dashboardsSection}
220
-
221
188
  ## LIST OF EXISTING COMPUTED FIELD PROVIDERS
222
189
  Use the below list of computed field providers to infer which provider the user is referring to.
223
190
 
@@ -0,0 +1,19 @@
1
+ import { Injectable } from '@nestjs/common';
2
+ import { SecurityRuleRepository } from 'src/repository/security-rule.repository';
3
+ import { SolidBaseRepository } from 'src/repository/solid-base.repository' ;
4
+ import { RequestContextService } from 'src/services/request-context.service';
5
+ import { DataSource } from 'typeorm';
6
+ import { InjectDataSource } from '@nestjs/typeorm';
7
+ import { DashboardUserLayout } from '../entities/dashboard-user-layout.entity';
8
+
9
+ @Injectable()
10
+ export class DashboardUserLayoutRepository extends SolidBaseRepository<DashboardUserLayout> {
11
+ constructor(
12
+ @InjectDataSource("default")
13
+ readonly dataSource: DataSource,
14
+ readonly requestContextService: RequestContextService,
15
+ readonly securityRuleRepository: SecurityRuleRepository,
16
+ ) {
17
+ super(DashboardUserLayout, dataSource, requestContextService, securityRuleRepository);
18
+ }
19
+ }
@@ -3,12 +3,10 @@ import * as fs from 'fs';
3
3
  import * as path from 'path';
4
4
  import { v4 as uuidv4 } from 'uuid';
5
5
 
6
- import { CreateDashboardDto } from 'src/dtos/create-dashboard.dto';
7
6
  import { CreateEmailTemplateDto } from 'src/dtos/create-email-template.dto';
8
7
  import { CreateListOfValuesDto } from 'src/dtos/create-list-of-values.dto';
9
8
  import { CreateSecurityRuleDto } from 'src/dtos/create-security-rule.dto';
10
9
  import { CreateSmsTemplateDto } from 'src/dtos/create-sms-template.dto';
11
- import { DashboardRepository } from 'src/repository/dashboard.repository';
12
10
  import { SecurityRuleRepository } from 'src/repository/security-rule.repository';
13
11
  import { AuthenticationService } from 'src/services/authentication.service';
14
12
  import { EmailTemplateService } from 'src/services/email-template.service';
@@ -52,7 +50,6 @@ import { SavedFilters } from 'src/entities/saved-filters.entity';
52
50
  import { ScheduledJob } from 'src/entities/scheduled-job.entity';
53
51
  import { SecurityRule } from 'src/entities/security-rule.entity';
54
52
  import { ListOfValues } from 'src/entities/list-of-values.entity';
55
- import { Dashboard } from 'src/entities/dashboard.entity';
56
53
  import { FieldMetadata } from 'src/entities/field-metadata.entity';
57
54
  import { ModelMetadata } from 'src/entities/model-metadata.entity';
58
55
  import { PermissionMetadata } from 'src/entities/permission-metadata.entity';
@@ -88,7 +85,6 @@ export class ModuleMetadataSeederService {
88
85
  private readonly settingsRepo: SettingRepository,
89
86
  readonly securityRuleRepo: SecurityRuleRepository,
90
87
  readonly systemFieldsSeederService: SystemFieldsSeederService,
91
- readonly dashboardRepo: DashboardRepository,
92
88
  readonly scheduledJobRepository: ScheduledJobRepository,
93
89
  readonly savedFiltersRepo: SavedFiltersRepository,
94
90
  readonly dataSource: DataSource,
@@ -207,11 +203,6 @@ export class ModuleMetadataSeederService {
207
203
  const lovCounts = await this.seedListOfValues(moduleMetadata, overallMetadata);
208
204
  console.log(`${this.formatSeedResult(moduleMetadata.name, 'List Of Values', lovCounts)}`);
209
205
 
210
- currentStep = 'seedDashboards';
211
- this.logger.log(`Seeding Dashboards`);
212
- const dashboardCounts = await this.seedDashboards(moduleMetadata, overallMetadata);
213
- console.log(`${this.formatSeedResult(moduleMetadata.name, 'Dashboards', dashboardCounts)}`);
214
-
215
206
  currentStep = 'seedScheduledJobs';
216
207
  this.logger.log(`Seeding Scheduled Jobs`);
217
208
  const scheduledJobCounts = await this.seedScheduledJobs(moduleMetadata, overallMetadata);
@@ -271,15 +262,6 @@ export class ModuleMetadataSeederService {
271
262
  return { pruned, upserted: savedFilters?.length ?? 0 };
272
263
  }
273
264
 
274
- private async seedDashboards(moduleMetadata: CreateModuleMetadataDto, overallMetadata: any): Promise<{ pruned: number; upserted: number }> {
275
- this.logger.debug(`[Start] Processing dashboards for ${moduleMetadata.name}`);
276
- const dashboards: CreateDashboardDto[] = overallMetadata.dashboards;
277
- const pruned = this.enablePruning ? await this.pruneDashboards(dashboards, moduleMetadata.name) : 0;
278
- await this.handleSeedDashboards(dashboards);
279
- this.logger.debug(`[End] Processing dashboards for ${moduleMetadata.name}`);
280
- return { pruned, upserted: dashboards?.length ?? 0 };
281
- }
282
-
283
265
  private async seedListOfValues(moduleMetadata: CreateModuleMetadataDto, overallMetadata: any): Promise<{ pruned: number; upserted: number }> {
284
266
  this.logger.debug(`[Start] Processing List Of Values for ${moduleMetadata.name}`);
285
267
  const listOfValues: CreateListOfValuesDto[] = overallMetadata.listOfValues;
@@ -923,16 +905,6 @@ export class ModuleMetadataSeederService {
923
905
  }
924
906
  }
925
907
 
926
- private async handleSeedDashboards(dashboardDtos: CreateDashboardDto[]) {
927
- if (!dashboardDtos || dashboardDtos.length === 0) {
928
- this.logger.debug(`No dashboards found to seed`);
929
- return;
930
- }
931
- for (const dto of dashboardDtos) {
932
- await this.dashboardRepo.upsertWithDto(dto);
933
- }
934
- }
935
-
936
908
  private async handleSeedScheduledJobs(createScheduledJobDto: CreateScheduledJobDto[]) {
937
909
  if (!createScheduledJobDto || createScheduledJobDto.length === 0) {
938
910
  this.logger.debug(`No scheduled jobs found to seed`);
@@ -1189,45 +1161,6 @@ export class ModuleMetadataSeederService {
1189
1161
  return 0;
1190
1162
  }
1191
1163
 
1192
- private async pruneDashboards(dashboardsDto: CreateDashboardDto[] | undefined, moduleName?: string): Promise<number> {
1193
- if (!moduleName) {
1194
- this.logger.warn(`Skipping dashboards prune: missing module name in metadata.`);
1195
- return 0;
1196
- }
1197
- const dashboards = dashboardsDto ?? [];
1198
-
1199
- const module = await this.moduleMetadataService.findOneByUserKey(moduleName);
1200
- if (!module) {
1201
- this.logger.warn(`Skipping dashboards prune: module not found for ${moduleName}.`);
1202
- return 0;
1203
- }
1204
-
1205
- const dashboardNames = [...new Set(dashboards.map(dto => dto.name).filter(Boolean))];
1206
- const repo = this.dataSource.getRepository(Dashboard);
1207
- const idsToDeleteQuery = repo
1208
- .createQueryBuilder('db')
1209
- .select('db.id', 'id')
1210
- .innerJoin('db.module', 'module')
1211
- .where('module.id = :moduleId', { moduleId: module.id });
1212
-
1213
- if (dashboardNames.length > 0) {
1214
- idsToDeleteQuery.andWhere('db.name NOT IN (:...dashboardNames)', { dashboardNames });
1215
- }
1216
-
1217
- const rows = await idsToDeleteQuery.getRawMany();
1218
- const ids = rows.map((row) => row.id);
1219
- if (ids.length > 0) {
1220
- const result = await repo
1221
- .createQueryBuilder()
1222
- .delete()
1223
- .from(Dashboard)
1224
- .whereInIds(ids)
1225
- .execute();
1226
- return result.affected ?? 0;
1227
- }
1228
- return 0;
1229
- }
1230
-
1231
1164
  private async pruneMenus(menusDto: any[] | undefined, moduleName?: string): Promise<number> {
1232
1165
  if (!moduleName) {
1233
1166
  this.logger.warn(`Skipping menus prune: missing module name in metadata.`);