@solidxai/core 0.1.10-beta.22 → 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 (434) hide show
  1. package/dist/commands/info.command.d.ts.map +1 -1
  2. package/dist/commands/info.command.js +0 -2
  3. package/dist/commands/info.command.js.map +1 -1
  4. package/dist/controllers/dashboard-user-layout.controller.d.ts +43 -0
  5. package/dist/controllers/dashboard-user-layout.controller.d.ts.map +1 -0
  6. package/dist/controllers/{dashboard-variable.controller.js → dashboard-user-layout.controller.js} +30 -30
  7. package/dist/controllers/dashboard-user-layout.controller.js.map +1 -0
  8. package/dist/controllers/dashboard.controller.d.ts +12 -42
  9. package/dist/controllers/dashboard.controller.d.ts.map +1 -1
  10. package/dist/controllers/dashboard.controller.js +71 -141
  11. package/dist/controllers/dashboard.controller.js.map +1 -1
  12. package/dist/decorators/dashboard-widget-data-provider.decorator.d.ts +3 -0
  13. package/dist/decorators/dashboard-widget-data-provider.decorator.d.ts.map +1 -0
  14. package/dist/decorators/dashboard-widget-data-provider.decorator.js +8 -0
  15. package/dist/decorators/dashboard-widget-data-provider.decorator.js.map +1 -0
  16. package/dist/dtos/create-dashboard-user-layout.dto.d.ts +10 -0
  17. package/dist/dtos/create-dashboard-user-layout.dto.d.ts.map +1 -0
  18. package/dist/dtos/create-dashboard-user-layout.dto.js +66 -0
  19. package/dist/dtos/create-dashboard-user-layout.dto.js.map +1 -0
  20. package/dist/dtos/dashboard-variable-options-query.dto.d.ts +7 -0
  21. package/dist/dtos/dashboard-variable-options-query.dto.d.ts.map +1 -0
  22. package/dist/dtos/dashboard-variable-options-query.dto.js +40 -0
  23. package/dist/dtos/dashboard-variable-options-query.dto.js.map +1 -0
  24. package/dist/dtos/dashboard-widget-data-request.dto.d.ts +12 -0
  25. package/dist/dtos/dashboard-widget-data-request.dto.d.ts.map +1 -0
  26. package/dist/dtos/dashboard-widget-data-request.dto.js +65 -0
  27. package/dist/dtos/dashboard-widget-data-request.dto.js.map +1 -0
  28. package/dist/dtos/update-dashboard-user-layout.dto.d.ts +11 -0
  29. package/dist/dtos/update-dashboard-user-layout.dto.d.ts.map +1 -0
  30. package/dist/dtos/{update-dashboard-layout.dto.js → update-dashboard-user-layout.dto.js} +34 -16
  31. package/dist/dtos/update-dashboard-user-layout.dto.js.map +1 -0
  32. package/dist/entities/dashboard-user-layout.entity.d.ts +11 -0
  33. package/dist/entities/dashboard-user-layout.entity.d.ts.map +1 -0
  34. package/dist/entities/dashboard-user-layout.entity.js +52 -0
  35. package/dist/entities/dashboard-user-layout.entity.js.map +1 -0
  36. package/dist/helpers/module-metadata-helper.service.d.ts.map +1 -1
  37. package/dist/helpers/module-metadata-helper.service.js +15 -4
  38. package/dist/helpers/module-metadata-helper.service.js.map +1 -1
  39. package/dist/helpers/solid-registry.d.ts +5 -9
  40. package/dist/helpers/solid-registry.d.ts.map +1 -1
  41. package/dist/helpers/solid-registry.js +13 -28
  42. package/dist/helpers/solid-registry.js.map +1 -1
  43. package/dist/index.d.ts +21 -5
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +21 -5
  46. package/dist/index.js.map +1 -1
  47. package/dist/interfaces.d.ts +24 -13
  48. package/dist/interfaces.d.ts.map +1 -1
  49. package/dist/interfaces.js.map +1 -1
  50. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts +1 -3
  51. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.d.ts.map +1 -1
  52. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js +2 -25
  53. package/dist/jobs/database/trigger-mcp-client-subscriber-database.service.js.map +1 -1
  54. package/dist/{repository/dashboard-layout.repository.d.ts → repositories/dashboard-user-layout.repository.d.ts} +5 -5
  55. package/dist/repositories/dashboard-user-layout.repository.d.ts.map +1 -0
  56. package/dist/{repository/dashboard-question-sql-dataset-config.repository.js → repositories/dashboard-user-layout.repository.js} +15 -10
  57. package/dist/repositories/dashboard-user-layout.repository.js.map +1 -0
  58. package/dist/seeders/module-metadata-seeder.service.d.ts +1 -6
  59. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  60. package/dist/seeders/module-metadata-seeder.service.js +1 -60
  61. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  62. package/dist/seeders/seed-data/solid-core-metadata.json +6203 -6690
  63. package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.d.ts +13 -0
  64. package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.d.ts.map +1 -0
  65. package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.js +55 -0
  66. package/dist/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.js.map +1 -0
  67. package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.d.ts +13 -0
  68. package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.d.ts.map +1 -0
  69. package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.js +52 -0
  70. package/dist/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.js.map +1 -0
  71. package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.d.ts +13 -0
  72. package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.d.ts.map +1 -0
  73. package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.js +52 -0
  74. package/dist/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.js.map +1 -0
  75. package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.d.ts +10 -0
  76. package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.d.ts.map +1 -0
  77. package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.js +62 -0
  78. package/dist/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.js.map +1 -0
  79. package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.d.ts +10 -0
  80. package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.d.ts.map +1 -0
  81. package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.js +82 -0
  82. package/dist/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.js.map +1 -0
  83. package/dist/services/dashboard-providers/mq-dashboard-provider-utils.d.ts +17 -0
  84. package/dist/services/dashboard-providers/mq-dashboard-provider-utils.d.ts.map +1 -0
  85. package/dist/services/dashboard-providers/mq-dashboard-provider-utils.js +130 -0
  86. package/dist/services/dashboard-providers/mq-dashboard-provider-utils.js.map +1 -0
  87. package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.d.ts +37 -0
  88. package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.d.ts.map +1 -0
  89. package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.js +112 -0
  90. package/dist/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.js.map +1 -0
  91. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.d.ts +10 -0
  92. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.d.ts.map +1 -0
  93. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.js +57 -0
  94. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.js.map +1 -0
  95. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.d.ts +10 -0
  96. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.d.ts.map +1 -0
  97. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.js +57 -0
  98. package/dist/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.js.map +1 -0
  99. package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.d.ts +10 -0
  100. package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.d.ts.map +1 -0
  101. package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.js +100 -0
  102. package/dist/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.js.map +1 -0
  103. package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.d.ts +10 -0
  104. package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.d.ts.map +1 -0
  105. package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.js +55 -0
  106. package/dist/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.js.map +1 -0
  107. package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.d.ts +13 -0
  108. package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.d.ts.map +1 -0
  109. package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.js +52 -0
  110. package/dist/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.js.map +1 -0
  111. package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.d.ts +15 -0
  112. package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.d.ts.map +1 -0
  113. package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.js +60 -0
  114. package/dist/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.js.map +1 -0
  115. package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.d.ts +13 -0
  116. package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.d.ts.map +1 -0
  117. package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.js +51 -0
  118. package/dist/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.js.map +1 -0
  119. package/dist/services/dashboard-runtime.service.d.ts +31 -0
  120. package/dist/services/dashboard-runtime.service.d.ts.map +1 -0
  121. package/dist/services/dashboard-runtime.service.js +408 -0
  122. package/dist/services/dashboard-runtime.service.js.map +1 -0
  123. package/dist/services/dashboard-user-layout.service.d.ts +12 -0
  124. package/dist/services/dashboard-user-layout.service.d.ts.map +1 -0
  125. package/dist/services/{dashboard-variable.service.js → dashboard-user-layout.service.js} +11 -12
  126. package/dist/services/dashboard-user-layout.service.js.map +1 -0
  127. package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.d.ts +11 -0
  128. package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.d.ts.map +1 -0
  129. package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.js +59 -0
  130. package/dist/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.js.map +1 -0
  131. package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.d.ts +11 -0
  132. package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.d.ts.map +1 -0
  133. package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.js +60 -0
  134. package/dist/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.js.map +1 -0
  135. package/dist/services/solid-introspect.service.d.ts +1 -2
  136. package/dist/services/solid-introspect.service.d.ts.map +1 -1
  137. package/dist/services/solid-introspect.service.js +12 -24
  138. package/dist/services/solid-introspect.service.js.map +1 -1
  139. package/dist/solid-core.module.d.ts.map +1 -1
  140. package/dist/solid-core.module.js +43 -66
  141. package/dist/solid-core.module.js.map +1 -1
  142. package/package.json +1 -1
  143. package/src/commands/info.command.ts +0 -2
  144. package/src/controllers/{dashboard-variable.controller.ts → dashboard-user-layout.controller.ts} +10 -10
  145. package/src/controllers/dashboard.controller.ts +70 -89
  146. package/src/decorators/dashboard-widget-data-provider.decorator.ts +6 -0
  147. package/src/dtos/create-dashboard-user-layout.dto.ts +41 -0
  148. package/src/dtos/dashboard-variable-options-query.dto.ts +20 -0
  149. package/src/dtos/dashboard-widget-data-request.dto.ts +34 -0
  150. package/src/dtos/update-dashboard-user-layout.dto.ts +45 -0
  151. package/src/entities/dashboard-user-layout.entity.ts +27 -0
  152. package/src/helpers/module-metadata-helper.service.ts +21 -6
  153. package/src/helpers/solid-registry.ts +15 -36
  154. package/src/index.ts +21 -5
  155. package/src/interfaces.ts +32 -19
  156. package/src/jobs/database/trigger-mcp-client-subscriber-database.service.ts +1 -34
  157. package/src/repositories/dashboard-user-layout.repository.ts +19 -0
  158. package/src/seeders/module-metadata-seeder.service.ts +0 -67
  159. package/src/seeders/seed-data/solid-core-metadata.json +6204 -6691
  160. package/src/services/dashboard-providers/README.md +603 -0
  161. package/src/services/dashboard-providers/mq-dashboard-avg-elapsed-kpi-provider.service.ts +49 -0
  162. package/src/services/dashboard-providers/mq-dashboard-failed-messages-kpi-provider.service.ts +45 -0
  163. package/src/services/dashboard-providers/mq-dashboard-inflight-messages-kpi-provider.service.ts +45 -0
  164. package/src/services/dashboard-providers/mq-dashboard-latency-trend-provider.service.ts +58 -0
  165. package/src/services/dashboard-providers/mq-dashboard-messages-over-time-provider.service.ts +79 -0
  166. package/src/services/dashboard-providers/mq-dashboard-provider-utils.ts +165 -0
  167. package/src/services/dashboard-providers/mq-dashboard-queue-sla-heatmap-provider.service.ts +155 -0
  168. package/src/services/dashboard-providers/mq-dashboard-queue-wise-avg-elapsed-provider.service.ts +51 -0
  169. package/src/services/dashboard-providers/mq-dashboard-queue-wise-failures-provider.service.ts +51 -0
  170. package/src/services/dashboard-providers/mq-dashboard-recent-failures-provider.service.ts +95 -0
  171. package/src/services/dashboard-providers/mq-dashboard-stage-distribution-provider.service.ts +49 -0
  172. package/src/services/dashboard-providers/mq-dashboard-succeeded-messages-kpi-provider.service.ts +45 -0
  173. package/src/services/dashboard-providers/mq-dashboard-success-rate-kpi-provider.service.ts +55 -0
  174. package/src/services/dashboard-providers/mq-dashboard-total-messages-kpi-provider.service.ts +44 -0
  175. package/src/services/dashboard-runtime.service.ts +488 -0
  176. package/src/services/dashboard-user-layout.service.ts +20 -0
  177. package/src/services/selection-providers/mq-dashboard-message-broker-variable-options-provider.service.ts +52 -0
  178. package/src/services/selection-providers/mq-dashboard-queue-name-variable-options-provider.service.ts +51 -0
  179. package/src/services/solid-introspect.service.ts +19 -34
  180. package/src/solid-core.module.ts +43 -72
  181. package/dist/controllers/dashboard-layout.controller.d.ts +0 -47
  182. package/dist/controllers/dashboard-layout.controller.d.ts.map +0 -1
  183. package/dist/controllers/dashboard-layout.controller.js +0 -204
  184. package/dist/controllers/dashboard-layout.controller.js.map +0 -1
  185. package/dist/controllers/dashboard-question-sql-dataset-config.controller.d.ts +0 -43
  186. package/dist/controllers/dashboard-question-sql-dataset-config.controller.d.ts.map +0 -1
  187. package/dist/controllers/dashboard-question-sql-dataset-config.controller.js +0 -179
  188. package/dist/controllers/dashboard-question-sql-dataset-config.controller.js.map +0 -1
  189. package/dist/controllers/dashboard-question.controller.d.ts +0 -45
  190. package/dist/controllers/dashboard-question.controller.d.ts.map +0 -1
  191. package/dist/controllers/dashboard-question.controller.js +0 -194
  192. package/dist/controllers/dashboard-question.controller.js.map +0 -1
  193. package/dist/controllers/dashboard-variable.controller.d.ts +0 -43
  194. package/dist/controllers/dashboard-variable.controller.d.ts.map +0 -1
  195. package/dist/controllers/dashboard-variable.controller.js.map +0 -1
  196. package/dist/decorators/dashboard-question-data-provider.decorator.d.ts +0 -3
  197. package/dist/decorators/dashboard-question-data-provider.decorator.d.ts.map +0 -1
  198. package/dist/decorators/dashboard-question-data-provider.decorator.js +0 -11
  199. package/dist/decorators/dashboard-question-data-provider.decorator.js.map +0 -1
  200. package/dist/decorators/dashboard-selection-provider.decorator.d.ts +0 -3
  201. package/dist/decorators/dashboard-selection-provider.decorator.d.ts.map +0 -1
  202. package/dist/decorators/dashboard-selection-provider.decorator.js +0 -11
  203. package/dist/decorators/dashboard-selection-provider.decorator.js.map +0 -1
  204. package/dist/dtos/create-dashboard-layout.dto.d.ts +0 -8
  205. package/dist/dtos/create-dashboard-layout.dto.d.ts.map +0 -1
  206. package/dist/dtos/create-dashboard-layout.dto.js +0 -53
  207. package/dist/dtos/create-dashboard-layout.dto.js.map +0 -1
  208. package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.d.ts +0 -12
  209. package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.d.ts.map +0 -1
  210. package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.js +0 -77
  211. package/dist/dtos/create-dashboard-question-sql-dataset-config.dto.js.map +0 -1
  212. package/dist/dtos/create-dashboard-question.dto.d.ts +0 -17
  213. package/dist/dtos/create-dashboard-question.dto.d.ts.map +0 -1
  214. package/dist/dtos/create-dashboard-question.dto.js +0 -105
  215. package/dist/dtos/create-dashboard-question.dto.js.map +0 -1
  216. package/dist/dtos/create-dashboard-variable.dto.d.ts +0 -19
  217. package/dist/dtos/create-dashboard-variable.dto.d.ts.map +0 -1
  218. package/dist/dtos/create-dashboard-variable.dto.js +0 -103
  219. package/dist/dtos/create-dashboard-variable.dto.js.map +0 -1
  220. package/dist/dtos/create-dashboard.dto.d.ts +0 -17
  221. package/dist/dtos/create-dashboard.dto.d.ts.map +0 -1
  222. package/dist/dtos/create-dashboard.dto.js +0 -102
  223. package/dist/dtos/create-dashboard.dto.js.map +0 -1
  224. package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.d.ts +0 -8
  225. package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.d.ts.map +0 -1
  226. package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.js +0 -52
  227. package/dist/dtos/dashboard-variable-selection-dynamic-query.dto.js.map +0 -1
  228. package/dist/dtos/update-dashboard-layout.dto.d.ts +0 -8
  229. package/dist/dtos/update-dashboard-layout.dto.d.ts.map +0 -1
  230. package/dist/dtos/update-dashboard-layout.dto.js.map +0 -1
  231. package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.d.ts +0 -13
  232. package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.d.ts.map +0 -1
  233. package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.js +0 -86
  234. package/dist/dtos/update-dashboard-question-sql-dataset-config.dto.js.map +0 -1
  235. package/dist/dtos/update-dashboard-question.dto.d.ts +0 -18
  236. package/dist/dtos/update-dashboard-question.dto.d.ts.map +0 -1
  237. package/dist/dtos/update-dashboard-question.dto.js +0 -112
  238. package/dist/dtos/update-dashboard-question.dto.js.map +0 -1
  239. package/dist/dtos/update-dashboard-variable.dto.d.ts +0 -16
  240. package/dist/dtos/update-dashboard-variable.dto.d.ts.map +0 -1
  241. package/dist/dtos/update-dashboard-variable.dto.js +0 -101
  242. package/dist/dtos/update-dashboard-variable.dto.js.map +0 -1
  243. package/dist/dtos/update-dashboard.dto.d.ts +0 -18
  244. package/dist/dtos/update-dashboard.dto.d.ts.map +0 -1
  245. package/dist/dtos/update-dashboard.dto.js +0 -108
  246. package/dist/dtos/update-dashboard.dto.js.map +0 -1
  247. package/dist/entities/dashboard-layout.entity.d.ts +0 -9
  248. package/dist/entities/dashboard-layout.entity.d.ts.map +0 -1
  249. package/dist/entities/dashboard-layout.entity.js +0 -41
  250. package/dist/entities/dashboard-layout.entity.js.map +0 -1
  251. package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts +0 -14
  252. package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts.map +0 -1
  253. package/dist/entities/dashboard-question-sql-dataset-config.entity.js +0 -66
  254. package/dist/entities/dashboard-question-sql-dataset-config.entity.js.map +0 -1
  255. package/dist/entities/dashboard-question.entity.d.ts +0 -17
  256. package/dist/entities/dashboard-question.entity.d.ts.map +0 -1
  257. package/dist/entities/dashboard-question.entity.js +0 -77
  258. package/dist/entities/dashboard-question.entity.js.map +0 -1
  259. package/dist/entities/dashboard-variable.entity.d.ts +0 -16
  260. package/dist/entities/dashboard-variable.entity.d.ts.map +0 -1
  261. package/dist/entities/dashboard-variable.entity.js +0 -79
  262. package/dist/entities/dashboard-variable.entity.js.map +0 -1
  263. package/dist/entities/dashboard.entity.d.ts +0 -16
  264. package/dist/entities/dashboard.entity.d.ts.map +0 -1
  265. package/dist/entities/dashboard.entity.js +0 -64
  266. package/dist/entities/dashboard.entity.js.map +0 -1
  267. package/dist/mappers/dashboard-mapper.d.ts +0 -6
  268. package/dist/mappers/dashboard-mapper.d.ts.map +0 -1
  269. package/dist/mappers/dashboard-mapper.js +0 -62
  270. package/dist/mappers/dashboard-mapper.js.map +0 -1
  271. package/dist/repository/dashboard-layout.repository.d.ts.map +0 -1
  272. package/dist/repository/dashboard-layout.repository.js +0 -34
  273. package/dist/repository/dashboard-layout.repository.js.map +0 -1
  274. package/dist/repository/dashboard-question-sql-dataset-config.repository.d.ts +0 -12
  275. package/dist/repository/dashboard-question-sql-dataset-config.repository.d.ts.map +0 -1
  276. package/dist/repository/dashboard-question-sql-dataset-config.repository.js.map +0 -1
  277. package/dist/repository/dashboard-question.repository.d.ts +0 -12
  278. package/dist/repository/dashboard-question.repository.d.ts.map +0 -1
  279. package/dist/repository/dashboard-question.repository.js +0 -34
  280. package/dist/repository/dashboard-question.repository.js.map +0 -1
  281. package/dist/repository/dashboard-variable.repository.d.ts +0 -12
  282. package/dist/repository/dashboard-variable.repository.d.ts.map +0 -1
  283. package/dist/repository/dashboard-variable.repository.js +0 -34
  284. package/dist/repository/dashboard-variable.repository.js.map +0 -1
  285. package/dist/repository/dashboard.repository.d.ts +0 -13
  286. package/dist/repository/dashboard.repository.d.ts.map +0 -1
  287. package/dist/repository/dashboard.repository.js +0 -104
  288. package/dist/repository/dashboard.repository.js.map +0 -1
  289. package/dist/services/dashboard-layout.service.d.ts +0 -20
  290. package/dist/services/dashboard-layout.service.d.ts.map +0 -1
  291. package/dist/services/dashboard-layout.service.js +0 -120
  292. package/dist/services/dashboard-layout.service.js.map +0 -1
  293. package/dist/services/dashboard-question-sql-dataset-config.service.d.ts +0 -12
  294. package/dist/services/dashboard-question-sql-dataset-config.service.d.ts.map +0 -1
  295. package/dist/services/dashboard-question-sql-dataset-config.service.js +0 -38
  296. package/dist/services/dashboard-question-sql-dataset-config.service.js.map +0 -1
  297. package/dist/services/dashboard-question.service.d.ts +0 -23
  298. package/dist/services/dashboard-question.service.d.ts.map +0 -1
  299. package/dist/services/dashboard-question.service.js +0 -135
  300. package/dist/services/dashboard-question.service.js.map +0 -1
  301. package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.d.ts +0 -12
  302. package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.d.ts.map +0 -1
  303. package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.js +0 -55
  304. package/dist/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.js.map +0 -1
  305. package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.d.ts +0 -11
  306. package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.d.ts.map +0 -1
  307. package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.js +0 -45
  308. package/dist/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.js.map +0 -1
  309. package/dist/services/dashboard-variable.service.d.ts +0 -13
  310. package/dist/services/dashboard-variable.service.d.ts.map +0 -1
  311. package/dist/services/dashboard-variable.service.js.map +0 -1
  312. package/dist/services/dashboard.service.d.ts +0 -29
  313. package/dist/services/dashboard.service.d.ts.map +0 -1
  314. package/dist/services/dashboard.service.js +0 -171
  315. package/dist/services/dashboard.service.js.map +0 -1
  316. package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.d.ts +0 -12
  317. package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.d.ts.map +0 -1
  318. package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.js +0 -41
  319. package/dist/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.js.map +0 -1
  320. package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.d.ts +0 -12
  321. package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.d.ts.map +0 -1
  322. package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.js +0 -42
  323. package/dist/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.js.map +0 -1
  324. package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.d.ts +0 -25
  325. package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.d.ts.map +0 -1
  326. package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.js +0 -116
  327. package/dist/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.js.map +0 -1
  328. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.d.ts +0 -12
  329. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.d.ts.map +0 -1
  330. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.js +0 -37
  331. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.js.map +0 -1
  332. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.d.ts +0 -12
  333. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.d.ts.map +0 -1
  334. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.js +0 -38
  335. package/dist/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.js.map +0 -1
  336. package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.d.ts +0 -12
  337. package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.d.ts.map +0 -1
  338. package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.js +0 -38
  339. package/dist/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.js.map +0 -1
  340. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.d.ts +0 -34
  341. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.d.ts.map +0 -1
  342. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.js +0 -90
  343. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.js.map +0 -1
  344. package/dist/services/question-data-providers/helpers.d.ts +0 -7
  345. package/dist/services/question-data-providers/helpers.d.ts.map +0 -1
  346. package/dist/services/question-data-providers/helpers.js +0 -25
  347. package/dist/services/question-data-providers/helpers.js.map +0 -1
  348. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.d.ts +0 -14
  349. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.d.ts.map +0 -1
  350. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.js +0 -71
  351. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.js.map +0 -1
  352. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.d.ts +0 -16
  353. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.d.ts.map +0 -1
  354. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.js +0 -93
  355. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.js.map +0 -1
  356. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.d.ts +0 -11
  357. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.d.ts.map +0 -1
  358. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.js +0 -49
  359. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.js.map +0 -1
  360. package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.d.ts +0 -11
  361. package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.d.ts.map +0 -1
  362. package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.js +0 -47
  363. package/dist/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.js.map +0 -1
  364. package/dist/services/sql-expression-resolver.service.d.ts +0 -12
  365. package/dist/services/sql-expression-resolver.service.d.ts.map +0 -1
  366. package/dist/services/sql-expression-resolver.service.js +0 -121
  367. package/dist/services/sql-expression-resolver.service.js.map +0 -1
  368. package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.d.ts +0 -16
  369. package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.d.ts.map +0 -1
  370. package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.js +0 -72
  371. package/dist/subscribers/dashboard-question-sql-dataset-config.subscriber.js.map +0 -1
  372. package/dist/subscribers/dashboard-question.subscriber.d.ts +0 -16
  373. package/dist/subscribers/dashboard-question.subscriber.d.ts.map +0 -1
  374. package/dist/subscribers/dashboard-question.subscriber.js +0 -72
  375. package/dist/subscribers/dashboard-question.subscriber.js.map +0 -1
  376. package/dist/subscribers/dashboard-variable.subscriber.d.ts +0 -16
  377. package/dist/subscribers/dashboard-variable.subscriber.d.ts.map +0 -1
  378. package/dist/subscribers/dashboard-variable.subscriber.js +0 -72
  379. package/dist/subscribers/dashboard-variable.subscriber.js.map +0 -1
  380. package/dist/subscribers/dashboard.subscriber.d.ts +0 -16
  381. package/dist/subscribers/dashboard.subscriber.d.ts.map +0 -1
  382. package/dist/subscribers/dashboard.subscriber.js +0 -71
  383. package/dist/subscribers/dashboard.subscriber.js.map +0 -1
  384. package/src/controllers/dashboard-layout.controller.ts +0 -106
  385. package/src/controllers/dashboard-question-sql-dataset-config.controller.ts +0 -93
  386. package/src/controllers/dashboard-question.controller.ts +0 -104
  387. package/src/decorators/dashboard-question-data-provider.decorator.ts +0 -7
  388. package/src/decorators/dashboard-selection-provider.decorator.ts +0 -7
  389. package/src/dtos/create-dashboard-layout.dto.ts +0 -31
  390. package/src/dtos/create-dashboard-question-sql-dataset-config.dto.ts +0 -42
  391. package/src/dtos/create-dashboard-question.dto.ts +0 -62
  392. package/src/dtos/create-dashboard-variable.dto.ts +0 -60
  393. package/src/dtos/create-dashboard.dto.ts +0 -61
  394. package/src/dtos/dashboard-variable-selection-dynamic-query.dto.ts +0 -29
  395. package/src/dtos/update-dashboard-layout.dto.ts +0 -30
  396. package/src/dtos/update-dashboard-question-sql-dataset-config.dto.ts +0 -49
  397. package/src/dtos/update-dashboard-question.dto.ts +0 -67
  398. package/src/dtos/update-dashboard-variable.dto.ts +0 -58
  399. package/src/dtos/update-dashboard.dto.ts +0 -65
  400. package/src/entities/dashboard-layout.entity.ts +0 -18
  401. package/src/entities/dashboard-question-sql-dataset-config.entity.ts +0 -37
  402. package/src/entities/dashboard-question.entity.ts +0 -46
  403. package/src/entities/dashboard-variable.entity.ts +0 -44
  404. package/src/entities/dashboard.entity.ts +0 -36
  405. package/src/mappers/dashboard-mapper.ts +0 -53
  406. package/src/repository/dashboard-layout.repository.ts +0 -17
  407. package/src/repository/dashboard-question-sql-dataset-config.repository.ts +0 -17
  408. package/src/repository/dashboard-question.repository.ts +0 -17
  409. package/src/repository/dashboard-variable.repository.ts +0 -17
  410. package/src/repository/dashboard.repository.ts +0 -101
  411. package/src/services/dashboard-layout.service.ts +0 -111
  412. package/src/services/dashboard-question-sql-dataset-config.service.ts +0 -25
  413. package/src/services/dashboard-question.service.ts +0 -150
  414. package/src/services/dashboard-selection-providers/dashboard-variable-sql-dynamic-provider.service.ts +0 -56
  415. package/src/services/dashboard-selection-providers/dashboard-variable-test-dynamic-provider.service.ts +0 -37
  416. package/src/services/dashboard-variable.service.ts +0 -27
  417. package/src/services/dashboard.service.ts +0 -148
  418. package/src/services/genai/mcp-handlers/solid-add-question-to-dashboard-mcp-handler.service.ts +0 -43
  419. package/src/services/genai/mcp-handlers/solid-add-variable-to-dashboard-mcp-handler.service.ts +0 -44
  420. package/src/services/genai/mcp-handlers/solid-create-dashboard-mcp-handler.service.ts +0 -114
  421. package/src/services/genai/mcp-handlers/solid-create-dashboard-question-mcp-handler.service.ts +0 -38
  422. package/src/services/genai/mcp-handlers/solid-create-dashboard-question-sql-dataset-config-mcp-handler.service.ts +0 -40
  423. package/src/services/genai/mcp-handlers/solid-create-dashboard-widget-mcp-handler.service.ts +0 -39
  424. package/src/services/question-data-providers/chartjs-sql-data-provider.service.ts +0 -121
  425. package/src/services/question-data-providers/helpers.ts +0 -30
  426. package/src/services/question-data-providers/prime-react-datatable-sql-data-provider.service.ts +0 -74
  427. package/src/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.ts +0 -115
  428. package/src/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.ts +0 -44
  429. package/src/services/selection-providers/list-of-dashboard-variable-providers-selection-provider.service.ts +0 -41
  430. package/src/services/sql-expression-resolver.service.ts +0 -140
  431. package/src/subscribers/dashboard-question-sql-dataset-config.subscriber.ts +0 -61
  432. package/src/subscribers/dashboard-question.subscriber.ts +0 -62
  433. package/src/subscribers/dashboard-variable.subscriber.ts +0 -63
  434. package/src/subscribers/dashboard.subscriber.ts +0 -62
@@ -1,111 +0,0 @@
1
- import { Injectable, Logger } from '@nestjs/common';
2
- import { ModuleRef } from "@nestjs/core";
3
- import { InjectEntityManager } from '@nestjs/typeorm';
4
- import { EntityManager } from 'typeorm';
5
-
6
- import { CRUDService } from 'src/services/crud.service';
7
- import { DashboardLayout } from 'src/entities/dashboard-layout.entity';
8
- import { DashboardLayoutRepository } from 'src/repository/dashboard-layout.repository';
9
- import { CreateDashboardLayoutDto } from 'src/dtos/create-dashboard-layout.dto';
10
- import { RequestContextService } from './request-context.service';
11
-
12
-
13
- @Injectable()
14
- export class DashboardLayoutService extends CRUDService<DashboardLayout> {
15
- private readonly logger = new Logger(this.constructor.name);
16
- constructor(
17
- @InjectEntityManager()
18
- readonly entityManager: EntityManager,
19
- readonly repo: DashboardLayoutRepository,
20
- readonly requestContextService: RequestContextService,
21
- readonly moduleRef: ModuleRef,
22
- ) {
23
- super(entityManager, repo, 'dashboardLayout', 'solid-core', moduleRef);
24
- }
25
-
26
- async upsertUserDashboardLayout(createDtos: CreateDashboardLayoutDto) {
27
- const activeUser = this.requestContextService.getActiveUser();
28
-
29
- if (!activeUser) {
30
- throw new Error('User not found');
31
- }
32
-
33
- let userId = null;
34
- if (activeUser.roles.includes('Admin')) {
35
- userId = null;
36
- } else {
37
- userId = activeUser?.sub;
38
- }
39
- const existingLayout = await this.repo.findOne({
40
- where: {
41
- user: { id: userId },
42
- dashboard: {
43
- id: createDtos.dashboardId
44
- }
45
- },
46
- relations: {
47
- user: true,
48
- dashboard: true,
49
- }
50
- });
51
-
52
- if (existingLayout) {
53
- return super.update(existingLayout.id, { layout: createDtos.layout }, [], true);
54
- } else {
55
- const createDto = {
56
- layout: createDtos.layout,
57
- dashboardId: createDtos.dashboardId,
58
- uesrId: userId
59
- }
60
- return super.create(createDto, []);
61
- }
62
- }
63
-
64
- async getUserDashboardLayoutByDashboardId(dashboardId: any) {
65
- const activeUser = this.requestContextService.getActiveUser();
66
-
67
- if (!activeUser) {
68
- throw new Error('User not found');
69
- }
70
- const userId = activeUser?.sub;
71
- const existingUserLayout = await this.repo.findOne({
72
- where: {
73
- user: { id: userId },
74
- dashboard: {
75
- id: dashboardId
76
- }
77
- },
78
- relations: {
79
- user: true,
80
- dashboard: true,
81
- }
82
- });
83
- if (existingUserLayout) {
84
- // if dahsboard for userid exists
85
- return existingUserLayout;
86
- }
87
-
88
- // if not then check for default dashboard
89
- const defaultLayout = await this.repo.findOne({
90
- where: {
91
- user: { id: null },
92
- dashboard: {
93
- id: dashboardId
94
- }
95
- },
96
- relations: {
97
- user: true,
98
- dashboard: true,
99
- }
100
- });
101
- if (defaultLayout) {
102
- // if default layout exists return it
103
- return defaultLayout;
104
- } else {
105
- // if default layout does not exist return empty layout
106
- return {
107
- layout: null
108
- }
109
- }
110
- }
111
- }
@@ -1,25 +0,0 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { InjectEntityManager } from '@nestjs/typeorm';
3
- import { ModuleRef } from "@nestjs/core";
4
- import { EntityManager } from 'typeorm';
5
-
6
- import { CRUDService } from 'src/services/crud.service';
7
-
8
-
9
- import { DashboardQuestionSqlDatasetConfig } from '../entities/dashboard-question-sql-dataset-config.entity';
10
- import { DashboardQuestionSqlDatasetConfigRepository } from 'src/repository/dashboard-question-sql-dataset-config.repository';
11
-
12
- @Injectable()
13
- export class DashboardQuestionSqlDatasetConfigService extends CRUDService<DashboardQuestionSqlDatasetConfig>{
14
- constructor(
15
- @InjectEntityManager()
16
- readonly entityManager: EntityManager,
17
- // @InjectRepository(DashboardQuestionSqlDatasetConfig, 'default')
18
- // readonly repo: Repository<DashboardQuestionSqlDatasetConfig>,
19
- readonly repo: DashboardQuestionSqlDatasetConfigRepository,
20
- readonly moduleRef: ModuleRef
21
-
22
- ) {
23
- super(entityManager, repo, 'dashboardQuestionSqlDatasetConfig', 'solid-core', moduleRef);
24
- }
25
- }
@@ -1,150 +0,0 @@
1
- import { BadRequestException, Injectable, Logger, NotImplementedException } from '@nestjs/common';
2
- import { ModuleRef } from "@nestjs/core";
3
- import { InjectEntityManager } from '@nestjs/typeorm';
4
- import { EntityManager } from 'typeorm';
5
-
6
- import { CRUDService } from 'src/services/crud.service';
7
-
8
-
9
- import { DashboardVariable } from 'src/entities/dashboard-variable.entity';
10
- import { SolidRegistry } from 'src/helpers/solid-registry';
11
- import { DashboardQuestion } from '../entities/dashboard-question.entity';
12
- import { SqlExpression, SqlExpressionOperator } from './question-data-providers/chartjs-sql-data-provider.service';
13
- import { DashboardQuestionRepository } from 'src/repository/dashboard-question.repository';
14
- import { QuestionSqlDataProviderContext } from '../interfaces';
15
-
16
- enum SOURCE_TYPE {
17
- SQL = 'sql',
18
- PROVIDER = 'provider',
19
- }
20
-
21
- export const CHARTJS_SQL_DATA_PROVIDER_NAME = 'ChartJsSqlDataProvider';
22
- export const PRIME_REACT_METER_GROUP_SQL_DATA_PROVIDER_NAME = 'PrimeReactMeterGroupSqlDataProvider';
23
- export const PRIME_REACT_DATATABLE_SQL_DATA_PROVIDER_NAME = 'PrimeReactDatatableSqlDataProvider';
24
-
25
- export const INBUILT_SQL_DATA_PROVIDERS = [CHARTJS_SQL_DATA_PROVIDER_NAME, PRIME_REACT_METER_GROUP_SQL_DATA_PROVIDER_NAME, PRIME_REACT_DATATABLE_SQL_DATA_PROVIDER_NAME];
26
-
27
- @Injectable()
28
- export class DashboardQuestionService extends CRUDService<DashboardQuestion> {
29
- private readonly logger = new Logger(this.constructor.name);
30
- constructor(
31
- @InjectEntityManager()
32
- readonly entityManager: EntityManager,
33
- // @InjectRepository(DashboardQuestion, 'default')
34
- // readonly repo: Repository<DashboardQuestion>,
35
- readonly repo: DashboardQuestionRepository,
36
- readonly moduleRef: ModuleRef,
37
- readonly solidRegistry: SolidRegistry, // Assuming solidRegistry is injected for data providers
38
- ) {
39
- super(entityManager, repo, 'dashboardQuestion', 'solid-core', moduleRef);
40
- }
41
-
42
- // Get the data for a specific question
43
- async getData(id: number, inputExpressions: SqlExpression[] = [], isPreview = false): Promise<any> {
44
- // Load the question
45
- const question = await this.loadQuestion(id);
46
- if (!question) {
47
- throw new BadRequestException(`Question with id ${id} not found`);
48
- }
49
-
50
- // Get the dashbbard variables from the question
51
- const dashboardVariables = question.dashboard?.dashboardVariables || [];
52
- const expressions: SqlExpression[] = this.getExpressions(isPreview, dashboardVariables, inputExpressions);
53
-
54
- // Try to resolve the dataProvider based on a combination of sourceType and visualisedAs
55
- let dataProvider = null;
56
- let context = {};
57
-
58
- // Decide which data provider to use based on the question visualisation type if sourceType is SQL.
59
- if (question.sourceType === SOURCE_TYPE.SQL && ['bar', 'pie', 'line', 'donut'].includes(question.visualisedAs)) {
60
- dataProvider = this.solidRegistry.getDashboardQuestionDataProviderInstance(CHARTJS_SQL_DATA_PROVIDER_NAME);
61
- context = {
62
- expressions,
63
- } as QuestionSqlDataProviderContext;
64
- }
65
- if (question.sourceType === SOURCE_TYPE.SQL && ['prime-meter-group'].includes(question.visualisedAs)) {
66
- dataProvider = this.solidRegistry.getDashboardQuestionDataProviderInstance(PRIME_REACT_METER_GROUP_SQL_DATA_PROVIDER_NAME);
67
- context = {
68
- expressions,
69
- } as QuestionSqlDataProviderContext;
70
- }
71
- if (question.sourceType === SOURCE_TYPE.SQL && ['prime-datatable'].includes(question.visualisedAs)) {
72
- dataProvider = this.solidRegistry.getDashboardQuestionDataProviderInstance(PRIME_REACT_DATATABLE_SQL_DATA_PROVIDER_NAME);
73
- context = {
74
- expressions,
75
- } as QuestionSqlDataProviderContext;
76
- }
77
-
78
- // If a custom provider is specified, use that one instead
79
- if (question.sourceType === SOURCE_TYPE.PROVIDER) {
80
- dataProvider = this.solidRegistry.getDashboardQuestionDataProviderInstance(question.providerName);
81
- }
82
-
83
- if (!dataProvider) {
84
- throw new NotImplementedException(`Invalid data source type ${question.sourceType}`);
85
- }
86
-
87
- return await dataProvider.getData(question, context);
88
-
89
- }
90
-
91
- private getExpressions(isPreview: boolean, dashboardVariables: DashboardVariable[], inputExpressions: SqlExpression[]) {
92
- const expressions: SqlExpression[] = [];
93
-
94
- if (isPreview) {
95
- // Convert the dashboard variables into objects of interface type SqlExpression using the default value, default operator and the variable name
96
- const expr: SqlExpression[] = dashboardVariables.map(variable => {
97
- return {
98
- variableName: variable.variableName,
99
- operator: variable.defaultOperator as SqlExpressionOperator, // Assuming defaultOperator is a valid SqlExpressionOperator
100
- value: JSON.parse(variable.defaultValue || '[]'), // Assuming defaultValue is a string or can be converted to a string array
101
- };
102
- });
103
- expressions.push(...expr);
104
- }
105
- else {
106
- // Loop through the dashboard variables and see if there is a matching input expression
107
- // If there is, use that expression instead of the default value
108
- for (const variable of dashboardVariables) {
109
- const matchingInputExpression = inputExpressions.find(expr => expr.variableName === variable.variableName);
110
- if (matchingInputExpression) {
111
- expressions.push(matchingInputExpression);
112
- }
113
- else {
114
- expressions.push({
115
- variableName: variable.variableName,
116
- operator: variable.defaultOperator as SqlExpressionOperator,
117
- value: JSON.parse(variable.defaultValue || '[]'),
118
- });
119
- }
120
- }
121
- expressions.push(...expressions);
122
- }
123
-
124
- // Remove duplicate expressions based on variableName in the expressions array
125
- const deduplicatedExpressions: SqlExpression[] = [];
126
- const variableNames = new Set<string>();
127
- for (const expr of expressions) {
128
- if (!variableNames.has(expr.variableName)) {
129
- deduplicatedExpressions.push(expr);
130
- variableNames.add(expr.variableName);
131
- }
132
- }
133
-
134
- return deduplicatedExpressions;
135
- }
136
-
137
- private async loadQuestion(id: number) {
138
- const repo = this.entityManager.getRepository(DashboardQuestion);
139
-
140
- // Load the dashboard record using the field
141
- const question = await repo.findOne({
142
- where: {
143
- id,
144
- },
145
- relations: ['questionSqlDatasetConfigs', 'dashboard', 'dashboard.dashboardVariables'],
146
- });
147
- return question;
148
- }
149
-
150
- }
@@ -1,56 +0,0 @@
1
- import { Injectable } from "@nestjs/common";
2
- import { IDashboardVariableSelectionProvider, ISelectionProviderContext, ISelectionProviderValues } from "../../interfaces";
3
- // import localeCodes from 'locale-codes';
4
- import { EntityManager } from "typeorm";
5
- import { DashboardVariableSelectionProvider } from "src/decorators/dashboard-selection-provider.decorator";
6
-
7
- @DashboardVariableSelectionProvider()
8
- @Injectable()
9
- export class DashboardVariableSQLDynamicProvider implements IDashboardVariableSelectionProvider<ISelectionProviderContext> {
10
-
11
- constructor(private readonly entityManager: EntityManager) {
12
- }
13
-
14
- help(): string {
15
- return "# Get the dashboard variable after executing the SQL query configured for the dashboard variable.\n";
16
- }
17
-
18
- name(): string {
19
- return 'DashboardVariableSQLDynamicProvider';
20
- }
21
-
22
- async value(optionValue: string, ctxt: ISelectionProviderContext): Promise<ISelectionProviderValues | any> {
23
- throw new Error("DashboardVariableSQLDynamicProvider does not support value method. Use values method instead.");
24
- }
25
-
26
- async values(query: string, ctxt: ISelectionProviderContext): Promise<readonly ISelectionProviderValues[]> {
27
- const { sql, limit, offset } = ctxt as unknown as { sql: string, limit?: number, offset?: number };
28
- if (!sql) {
29
- throw new Error("DashboardVariableSQLDynamicProvider requires a SQL query to be provided in the context.");
30
- }
31
-
32
- // Here you would execute the SQL query against your database
33
- // For demonstration, let's assume we have a mock database function that executes the SQL query
34
- const results = await this.entityManager.query(this.appendLimitOffset(sql), [limit, offset]);
35
-
36
- // Transform the results into the expected format
37
- return results.map((result: any) => {
38
- const transformedResult: ISelectionProviderValues = {
39
- value: result.value, // Assuming the result has a 'value' field
40
- label: result.label, // Assuming the result has a 'label' field
41
- // Add any other fields you need to transform here
42
- };
43
- return transformedResult;
44
- });
45
- }
46
-
47
- appendLimitOffset(sql: string): string {
48
- // Strip trailing semicolon if present
49
- const trimmedSql = sql.trim().replace(/;$/, '');
50
-
51
- // Append the LIMIT/OFFSET
52
- const finalSql = `${trimmedSql} LIMIT $1 OFFSET $2`; // FIXME This works with PostgreSQL. for mysql use ?. For this we will need to identify the datasource using the model for the particular dashboard variable
53
-
54
- return finalSql;
55
- }
56
- }
@@ -1,37 +0,0 @@
1
- import { Injectable } from "@nestjs/common";
2
- import { IDashboardVariableSelectionProvider, ISelectionProviderContext, ISelectionProviderValues } from "../../interfaces";
3
- // import localeCodes from 'locale-codes';
4
- import { EntityManager } from "typeorm";
5
- import { DashboardVariableSelectionProvider } from "src/decorators/dashboard-selection-provider.decorator";
6
-
7
- @DashboardVariableSelectionProvider()
8
- @Injectable()
9
- export class DasbhoardVariableTestDynamicProvider implements IDashboardVariableSelectionProvider<ISelectionProviderContext> {
10
-
11
- constructor(private readonly entityManager: EntityManager) {
12
- }
13
-
14
- help(): string {
15
- return "# Get the dashboard variable values.\n";
16
- }
17
-
18
- name(): string {
19
- return 'DasbhoardVariableTestDynamicProvider';
20
- }
21
-
22
- async value(optionValue: string, ctxt: ISelectionProviderContext): Promise<ISelectionProviderValues | any> {
23
- throw new Error("DasbhoardVariableTestDynamicProvider does not support value method. Use values method instead.");
24
- }
25
-
26
- async values(query: string, ctxt: ISelectionProviderContext): Promise<readonly ISelectionProviderValues[]> {
27
- // Return some dummy data for testing
28
- const { sql, limit, offset } = ctxt as unknown as { sql: string, limit?: number, offset?: number };
29
- return [
30
- { value: '1', label: 'Option 1' },
31
- { value: '2', label: 'Option 2' },
32
- { value: '3', label: 'Option 3' },
33
- { value: '4', label: 'Option 4' },
34
- ];
35
- }
36
-
37
- }
@@ -1,27 +0,0 @@
1
- import { Injectable, Logger } from '@nestjs/common';
2
- import { ModuleRef } from "@nestjs/core";
3
- import { InjectEntityManager } from '@nestjs/typeorm';
4
- import { EntityManager } from 'typeorm';
5
-
6
- import { CRUDService } from 'src/services/crud.service';
7
-
8
-
9
- import { DashboardVariable } from '../entities/dashboard-variable.entity';
10
- import { DashboardVariableRepository } from 'src/repository/dashboard-variable.repository';
11
-
12
- @Injectable()
13
- export class DashboardVariableService extends CRUDService<DashboardVariable> {
14
- private readonly logger = new Logger(this.constructor.name);
15
- constructor(
16
- @InjectEntityManager()
17
- readonly entityManager: EntityManager,
18
- // @InjectRepository(DashboardVariable, 'default')
19
- // readonly repo: Repository<DashboardVariable>,
20
- readonly repo: DashboardVariableRepository,
21
- readonly moduleRef: ModuleRef,
22
- ) {
23
- super(entityManager, repo, 'dashboardVariable', 'solid-core', moduleRef);
24
- }
25
-
26
-
27
- }
@@ -1,148 +0,0 @@
1
- import { Injectable, Logger, NotFoundException } from '@nestjs/common';
2
- import { ModuleRef } from "@nestjs/core";
3
- import { InjectEntityManager } from '@nestjs/typeorm';
4
- import { EntityManager } from 'typeorm';
5
-
6
- import { CRUDService } from 'src/services/crud.service';
7
-
8
-
9
- import * as fs from 'fs/promises'; // Use the Promise-based version of fs for async/await
10
- import { SelectionDynamicSourceType } from 'src/dtos/create-dashboard-variable.dto';
11
- import { DashboardVariableSelectionDynamicQueryDto } from 'src/dtos/dashboard-variable-selection-dynamic-query.dto';
12
- import { DashboardVariable } from 'src/entities/dashboard-variable.entity';
13
- import { ModuleMetadataHelperService } from 'src/helpers/module-metadata-helper.service';
14
- import { SolidRegistry } from 'src/helpers/solid-registry';
15
- import { DashboardMapper } from 'src/mappers/dashboard-mapper';
16
- import { DashboardRepository } from 'src/repository/dashboard.repository';
17
- import { Dashboard } from '../entities/dashboard.entity';
18
- import { CreateDashboardDto } from 'src/dtos/create-dashboard.dto';
19
-
20
-
21
- export const SQL_DYNAMIC_PROVIDER_NAME = 'DashboardVariableSQLDynamicProvider';
22
- @Injectable()
23
- export class DashboardService extends CRUDService<Dashboard> {
24
- private readonly logger = new Logger(this.constructor.name);
25
- constructor(
26
- @InjectEntityManager()
27
- readonly entityManager: EntityManager,
28
- readonly repo: DashboardRepository, // Assuming you have a DashboardRepository for custom queries
29
- readonly moduleRef: ModuleRef,
30
- readonly solidRegistry: SolidRegistry, // Assuming solidRegistry is injected for selection providers
31
- readonly moduleMetadataHelperService: ModuleMetadataHelperService,
32
- readonly dashboardMapper: DashboardMapper,
33
- ) {
34
- super(entityManager, repo, 'dashboard', 'solid-core', moduleRef);
35
- }
36
-
37
-
38
- async create(createDto: CreateDashboardDto, files: Express.Multer.File[]) {
39
- createDto.name = createDto.name.trim().replace(/\s+/g, '-').toLowerCase();
40
- return super.create(createDto, files);
41
- }
42
-
43
- async getSelectionDynamicValues(query: DashboardVariableSelectionDynamicQueryDto) {
44
- // Get the dashboard variable repo
45
- const dashboardVariable = await this.loadDashboardVariable(query.variableId);
46
-
47
- // Get the providerName and context for the dashboard variable
48
- const [providerName, context] = this.getProviderNameAndContext(dashboardVariable, query);
49
-
50
- // Get hold of the provider instance from the SolidRegistry
51
- const selectionProviderInstance = this.solidRegistry.getDashboardVariableSelectionProviderInstance(providerName);
52
- if (!selectionProviderInstance) {
53
- throw new NotFoundException(`Field incorrectly configured. No provider with name ${providerName} registered in backend.`);
54
- }
55
-
56
- // 4. Call the provider's getSelectionDynamicValues method
57
- return selectionProviderInstance.values(query.query, context);
58
- }
59
-
60
-
61
- private getProviderNameAndContext(dashboardVariable: DashboardVariable, query: DashboardVariableSelectionDynamicQueryDto): [string, any] {
62
- const sourceType = dashboardVariable.selectionDynamicSourceType;
63
-
64
- // Get the appropriate provide name based on the source type
65
- let providerName: string;
66
- const context = { limit: query.limit, offset: query.offset };
67
- switch (sourceType) {
68
- case SelectionDynamicSourceType.SQL:
69
- providerName = SQL_DYNAMIC_PROVIDER_NAME;
70
- context['sql'] = dashboardVariable.selectionDynamicSQL;
71
- break;
72
- case SelectionDynamicSourceType.PROVIDER:
73
- providerName = dashboardVariable.selectionDynamicProviderName;
74
- break;
75
- default:
76
- throw new Error(`Unsupported selection dynamic source type: ${sourceType}`);
77
- }
78
- return [providerName, context];
79
- }
80
-
81
- private async loadDashboardVariable(variableId: number) {
82
- const dashboardVariableRepo = this.entityManager.getRepository(DashboardVariable);
83
-
84
- // Load the dashboard record using the field
85
- const dashboardVariable = await dashboardVariableRepo.findOne({
86
- where: {
87
- id: variableId,
88
- },
89
- });
90
- return dashboardVariable;
91
- }
92
-
93
- async saveDashboardToConfig(entity: Dashboard) {
94
- if (!entity) {
95
- this.logger.debug('No entity found in the DashboardSubscriber saveDashboardToConfig method');
96
- return;
97
- }
98
-
99
- // Validate dashboard details
100
- const dashboard = entity as Dashboard;
101
- const moduleMetadata = entity.module;
102
- if (!moduleMetadata) {
103
- throw new Error(`Module metadata not found for dashboard id ${entity.id}`);
104
- }
105
-
106
- // Get config file details
107
- const { filePath, metaData } = await this.getConfigFileDetails(moduleMetadata.name);
108
- if (!filePath || !metaData) {
109
- throw new Error(`Configuration details not found for module: ${moduleMetadata.name}`);
110
- }
111
-
112
- // Write the dashboard to the config file
113
- await this.writeToConfig(metaData, dashboard, filePath);
114
- }
115
-
116
- private async getConfigFileDetails(moduleName: string): Promise<{ filePath: string; metaData: any }> {
117
- const filePath = await this.moduleMetadataHelperService.getModuleMetadataFilePath(moduleName);
118
- try {
119
- await fs.access(filePath);
120
- } catch (error: any) {
121
- throw new Error(`Configuration file not found for module: ${moduleName}`);
122
- }
123
- const metaData = await this.moduleMetadataHelperService.getModuleMetadataConfiguration(filePath);
124
- return { filePath, metaData };
125
- }
126
-
127
- private async writeToConfig(metaData: any, dashboard: Dashboard, filePath: string) {
128
- if (metaData.dashboards && Array.isArray(metaData.dashboards)) {
129
- const dashboardIndex = metaData.dashboards?.findIndex((dashboardFromFile: { name: string; }) => dashboardFromFile.name === dashboard.name);
130
- const dto = await this.dashboardMapper.toDto(dashboard);
131
- if (dashboardIndex !== -1) {
132
- metaData.dashboards[dashboardIndex] = dto;
133
- }
134
- else {
135
- metaData.dashboards.push(dto);
136
- }
137
- }
138
- else {
139
- const dashboards = [];
140
- const dto = await this.dashboardMapper.toDto(dashboard);
141
- dashboards.push(dto);
142
- metaData.dashboards = dashboards;
143
- }
144
- // Write the updated object back to the file
145
- const updatedContent = JSON.stringify(metaData, null, 2);
146
- await fs.writeFile(filePath, updatedContent);
147
- }
148
- }
@@ -1,43 +0,0 @@
1
- import { Injectable } from "@nestjs/common";
2
- import { plainToInstance } from "class-transformer";
3
- import { CreateDashboardQuestionDto } from "src/dtos/create-dashboard-question.dto";
4
- import { AiInteraction } from "src/entities/ai-interaction.entity";
5
- import { IMcpToolResponseHandler } from "../../../interfaces";
6
- import { DashboardQuestionService } from "../../dashboard-question.service";
7
-
8
- @Injectable()
9
- export class SolidAddQuestionToDashboardMcpHandler implements IMcpToolResponseHandler {
10
-
11
- constructor(
12
- private readonly dashboardQuestionService: DashboardQuestionService,
13
- ) {
14
- }
15
-
16
- async apply(aiInteraction: AiInteraction) {
17
- const escapedMessage = aiInteraction.message.replace(/\\'/g, "'");
18
- const aiResponseMessage = JSON.parse(escapedMessage);
19
-
20
- const {data} = aiResponseMessage;
21
- const { dashboardUserKey, schema} = data;
22
-
23
- //FIXME: Replace \' with ' in the response, since the AI response seems to contain \' which is invalid JSON.
24
- // This is a workaround for now, until we find a better solution.
25
- // const aiResponseMessageReplaced = aiResponseMessage['message'].replace(/\\'/g, "'");
26
- // const dashboardUserKey = aiResponseMessageReplaced['dashboardUserKey'];
27
- // if (!dashboardUserKey) {
28
- // throw new Error("Dashboard User Key is required to create a Dashboard Question.");
29
- // }
30
- const dashboardQuestionDto = plainToInstance(CreateDashboardQuestionDto, schema);
31
- dashboardQuestionDto['questionSqlDatasetConfigsCommand'] = "update";
32
- dashboardQuestionDto['dashboardUserKey'] = dashboardUserKey;
33
-
34
- const dashboardQuestion = await this.dashboardQuestionService.create(dashboardQuestionDto, []);
35
-
36
- // TODO: decide on some shape to return hre...
37
- return {
38
- seedingRequired: false,
39
- serverRebooting: false,
40
- }
41
- }
42
-
43
- }
@@ -1,44 +0,0 @@
1
- import { Injectable } from "@nestjs/common";
2
- import { plainToInstance } from "class-transformer";
3
- import { CreateDashboardVariableDto } from "src/dtos/create-dashboard-variable.dto";
4
- import { AiInteraction } from "src/entities/ai-interaction.entity";
5
- import { DashboardVariableService } from "src/services/dashboard-variable.service";
6
- import { IMcpToolResponseHandler } from "../../../interfaces";
7
-
8
- @Injectable()
9
- export class SolidAddVariableToDashboardMcpHandler implements IMcpToolResponseHandler {
10
-
11
- constructor(
12
- private readonly dashboardVariableService: DashboardVariableService,
13
- ) {
14
- }
15
-
16
- async apply(aiInteraction: AiInteraction) {
17
- const escapedMessage = aiInteraction.message.replace(/\\'/g, "'");
18
- const aiResponseMessage = JSON.parse(escapedMessage);
19
-
20
- const {data} = aiResponseMessage;
21
- const { dashboardUserKey, schema} = data;
22
-
23
- //FIXME: Replace \' with ' in the response, since the AI response seems to contain \' which is invalid JSON.
24
- // This is a workaround for now, until we find a better solution.
25
- // const aiResponseMessageReplaced = aiResponseMessage['message'].replace(/\\'/g, "'");
26
- // const dashboardUserKey = aiResponseMessageReplaced['dashboardUserKey'];
27
- // if (!dashboardUserKey) {
28
- // throw new Error("Dashboard User Key is required to create a Dashboard Question.");
29
- // }
30
- const dashboardVariableDto = plainToInstance(CreateDashboardVariableDto, schema);
31
- dashboardVariableDto['selectionStaticValues'] = JSON.stringify(dashboardVariableDto['selectionStaticValues'] || []);
32
- dashboardVariableDto['defaultValue'] = JSON.stringify(dashboardVariableDto['defaultValue'] || []);
33
- dashboardVariableDto['dashboardUserKey'] = dashboardUserKey;
34
-
35
- const dashboardVariable = await this.dashboardVariableService.create(dashboardVariableDto, []);
36
-
37
- // TODO: decide on some shape to return hre...
38
- return {
39
- seedingRequired: false,
40
- serverRebooting: false,
41
- }
42
- }
43
-
44
- }