@solidxai/core 0.1.6 → 0.1.8-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (784) hide show
  1. package/CHANGELOG.md +71 -0
  2. package/dist/controllers/dashboard-layout.controller.d.ts +47 -0
  3. package/dist/controllers/dashboard-layout.controller.d.ts.map +1 -0
  4. package/dist/controllers/dashboard-layout.controller.js +204 -0
  5. package/dist/controllers/dashboard-layout.controller.js.map +1 -0
  6. package/dist/controllers/scheduled-job.controller.d.ts +1 -0
  7. package/dist/controllers/scheduled-job.controller.d.ts.map +1 -1
  8. package/dist/controllers/scheduled-job.controller.js +12 -0
  9. package/dist/controllers/scheduled-job.controller.js.map +1 -1
  10. package/dist/dtos/create-dashboard-layout.dto.d.ts +8 -0
  11. package/dist/dtos/create-dashboard-layout.dto.d.ts.map +1 -0
  12. package/dist/dtos/create-dashboard-layout.dto.js +53 -0
  13. package/dist/dtos/create-dashboard-layout.dto.js.map +1 -0
  14. package/dist/dtos/create-dashboard-variable.dto.d.ts +1 -0
  15. package/dist/dtos/create-dashboard-variable.dto.d.ts.map +1 -1
  16. package/dist/dtos/create-dashboard-variable.dto.js +7 -1
  17. package/dist/dtos/create-dashboard-variable.dto.js.map +1 -1
  18. package/dist/dtos/update-dashboard-layout.dto.d.ts +8 -0
  19. package/dist/dtos/update-dashboard-layout.dto.d.ts.map +1 -0
  20. package/dist/dtos/update-dashboard-layout.dto.js +53 -0
  21. package/dist/dtos/update-dashboard-layout.dto.js.map +1 -0
  22. package/dist/dtos/update-dashboard-variable.dto.d.ts +1 -0
  23. package/dist/dtos/update-dashboard-variable.dto.d.ts.map +1 -1
  24. package/dist/dtos/update-dashboard-variable.dto.js +7 -1
  25. package/dist/dtos/update-dashboard-variable.dto.js.map +1 -1
  26. package/dist/entities/action-metadata.entity.d.ts.map +1 -1
  27. package/dist/entities/action-metadata.entity.js.map +1 -1
  28. package/dist/entities/ai-interaction.entity.d.ts.map +1 -1
  29. package/dist/entities/ai-interaction.entity.js +5 -4
  30. package/dist/entities/ai-interaction.entity.js.map +1 -1
  31. package/dist/entities/chatter-message-details.entity.d.ts +1 -0
  32. package/dist/entities/chatter-message-details.entity.d.ts.map +1 -1
  33. package/dist/entities/chatter-message-details.entity.js +9 -4
  34. package/dist/entities/chatter-message-details.entity.js.map +1 -1
  35. package/dist/entities/chatter-message.entity.d.ts.map +1 -1
  36. package/dist/entities/chatter-message.entity.js +4 -3
  37. package/dist/entities/chatter-message.entity.js.map +1 -1
  38. package/dist/entities/common.entity.js +1 -1
  39. package/dist/entities/common.entity.js.map +1 -1
  40. package/dist/entities/dashboard-layout.entity.d.ts +9 -0
  41. package/dist/entities/dashboard-layout.entity.d.ts.map +1 -0
  42. package/dist/entities/dashboard-layout.entity.js +41 -0
  43. package/dist/entities/dashboard-layout.entity.js.map +1 -0
  44. package/dist/entities/dashboard-question-sql-dataset-config.entity.d.ts.map +1 -1
  45. package/dist/entities/dashboard-question-sql-dataset-config.entity.js +5 -4
  46. package/dist/entities/dashboard-question-sql-dataset-config.entity.js.map +1 -1
  47. package/dist/entities/dashboard-question.entity.d.ts.map +1 -1
  48. package/dist/entities/dashboard-question.entity.js +5 -4
  49. package/dist/entities/dashboard-question.entity.js.map +1 -1
  50. package/dist/entities/dashboard-variable.entity.d.ts +1 -0
  51. package/dist/entities/dashboard-variable.entity.d.ts.map +1 -1
  52. package/dist/entities/dashboard-variable.entity.js +10 -4
  53. package/dist/entities/dashboard-variable.entity.js.map +1 -1
  54. package/dist/entities/dashboard.entity.d.ts +2 -0
  55. package/dist/entities/dashboard.entity.d.ts.map +1 -1
  56. package/dist/entities/dashboard.entity.js +9 -3
  57. package/dist/entities/dashboard.entity.js.map +1 -1
  58. package/dist/entities/email-attachment.entity.d.ts.map +1 -1
  59. package/dist/entities/email-attachment.entity.js +2 -1
  60. package/dist/entities/email-attachment.entity.js.map +1 -1
  61. package/dist/entities/email-template.entity.js +1 -1
  62. package/dist/entities/email-template.entity.js.map +1 -1
  63. package/dist/entities/export-transaction.entity.d.ts.map +1 -1
  64. package/dist/entities/export-transaction.entity.js +2 -1
  65. package/dist/entities/export-transaction.entity.js.map +1 -1
  66. package/dist/entities/field-metadata.entity.js +2 -2
  67. package/dist/entities/field-metadata.entity.js.map +1 -1
  68. package/dist/entities/import-transaction-error-log.entity.d.ts.map +1 -1
  69. package/dist/entities/import-transaction-error-log.entity.js +3 -2
  70. package/dist/entities/import-transaction-error-log.entity.js.map +1 -1
  71. package/dist/entities/import-transaction.entity.d.ts.map +1 -1
  72. package/dist/entities/import-transaction.entity.js +2 -1
  73. package/dist/entities/import-transaction.entity.js.map +1 -1
  74. package/dist/entities/legacy-common.entity.d.ts.map +1 -1
  75. package/dist/entities/legacy-common.entity.js +1 -1
  76. package/dist/entities/legacy-common.entity.js.map +1 -1
  77. package/dist/entities/mq-message-queue.entity.d.ts.map +1 -1
  78. package/dist/entities/mq-message-queue.entity.js.map +1 -1
  79. package/dist/entities/mq-message.entity.d.ts.map +1 -1
  80. package/dist/entities/mq-message.entity.js +5 -3
  81. package/dist/entities/mq-message.entity.js.map +1 -1
  82. package/dist/entities/saved-filters.entity.d.ts.map +1 -1
  83. package/dist/entities/saved-filters.entity.js +3 -2
  84. package/dist/entities/saved-filters.entity.js.map +1 -1
  85. package/dist/entities/security-rule.entity.d.ts.map +1 -1
  86. package/dist/entities/security-rule.entity.js +2 -1
  87. package/dist/entities/security-rule.entity.js.map +1 -1
  88. package/dist/entities/sms-template.entity.js +1 -1
  89. package/dist/entities/sms-template.entity.js.map +1 -1
  90. package/dist/entities/user-view-metadata.entity.d.ts.map +1 -1
  91. package/dist/entities/user-view-metadata.entity.js +2 -1
  92. package/dist/entities/user-view-metadata.entity.js.map +1 -1
  93. package/dist/entities/user.entity.d.ts.map +1 -1
  94. package/dist/entities/user.entity.js +2 -0
  95. package/dist/entities/user.entity.js.map +1 -1
  96. package/dist/entities/view-metadata.entity.d.ts.map +1 -1
  97. package/dist/entities/view-metadata.entity.js.map +1 -1
  98. package/dist/helpers/bootstrap.helper.d.ts +14 -0
  99. package/dist/helpers/bootstrap.helper.d.ts.map +1 -0
  100. package/dist/helpers/bootstrap.helper.js +132 -0
  101. package/dist/helpers/bootstrap.helper.js.map +1 -0
  102. package/dist/helpers/cache.helper.d.ts +2 -0
  103. package/dist/helpers/cache.helper.d.ts.map +1 -0
  104. package/dist/helpers/cache.helper.js +8 -0
  105. package/dist/helpers/cache.helper.js.map +1 -0
  106. package/dist/helpers/cors.helper.d.ts.map +1 -1
  107. package/dist/helpers/cors.helper.js +13 -4
  108. package/dist/helpers/cors.helper.js.map +1 -1
  109. package/dist/helpers/field-crud-managers/SelectionDynamicFieldCrudManager.d.ts +2 -2
  110. package/dist/helpers/field-crud-managers/SelectionDynamicFieldCrudManager.d.ts.map +1 -1
  111. package/dist/helpers/field-crud-managers/SelectionDynamicFieldCrudManager.js +8 -5
  112. package/dist/helpers/field-crud-managers/SelectionDynamicFieldCrudManager.js.map +1 -1
  113. package/dist/helpers/solid-registry.d.ts +3 -0
  114. package/dist/helpers/solid-registry.d.ts.map +1 -1
  115. package/dist/helpers/solid-registry.js +7 -0
  116. package/dist/helpers/solid-registry.js.map +1 -1
  117. package/dist/helpers/typeorm-db-helper.d.ts.map +1 -1
  118. package/dist/helpers/typeorm-db-helper.js +21 -0
  119. package/dist/helpers/typeorm-db-helper.js.map +1 -1
  120. package/dist/index.d.ts +56 -15
  121. package/dist/index.d.ts.map +1 -1
  122. package/dist/index.js +56 -15
  123. package/dist/index.js.map +1 -1
  124. package/dist/interfaces.d.ts +8 -2
  125. package/dist/interfaces.d.ts.map +1 -1
  126. package/dist/interfaces.js +1 -0
  127. package/dist/interfaces.js.map +1 -1
  128. package/dist/jobs/database/chatter-queue-options-database.d.ts +8 -0
  129. package/dist/jobs/database/chatter-queue-options-database.d.ts.map +1 -0
  130. package/dist/jobs/database/chatter-queue-options-database.js +10 -0
  131. package/dist/jobs/database/chatter-queue-options-database.js.map +1 -0
  132. package/dist/jobs/database/chatter-queue-publisher-database.service.d.ts +12 -0
  133. package/dist/jobs/database/chatter-queue-publisher-database.service.d.ts.map +1 -0
  134. package/dist/jobs/database/chatter-queue-publisher-database.service.js +39 -0
  135. package/dist/jobs/database/chatter-queue-publisher-database.service.js.map +1 -0
  136. package/dist/jobs/database/chatter-queue-subscriber-database.service.d.ts +19 -0
  137. package/dist/jobs/database/chatter-queue-subscriber-database.service.d.ts.map +1 -0
  138. package/dist/jobs/database/chatter-queue-subscriber-database.service.js +62 -0
  139. package/dist/jobs/database/chatter-queue-subscriber-database.service.js.map +1 -0
  140. package/dist/jobs/{api-email-publisher.service.d.ts → rabbitmq/api-email-publisher.service.d.ts} +1 -1
  141. package/dist/jobs/rabbitmq/api-email-publisher.service.d.ts.map +1 -0
  142. package/dist/jobs/{api-email-publisher.service.js → rabbitmq/api-email-publisher.service.js} +3 -3
  143. package/dist/jobs/rabbitmq/api-email-publisher.service.js.map +1 -0
  144. package/dist/jobs/{api-email-queue-options.d.ts → rabbitmq/api-email-queue-options.d.ts} +1 -1
  145. package/dist/jobs/rabbitmq/api-email-queue-options.d.ts.map +1 -0
  146. package/dist/jobs/{api-email-queue-options.js → rabbitmq/api-email-queue-options.js} +1 -1
  147. package/dist/jobs/rabbitmq/api-email-queue-options.js.map +1 -0
  148. package/dist/jobs/{api-email-subscriber.service.d.ts → rabbitmq/api-email-subscriber.service.d.ts} +2 -2
  149. package/dist/jobs/rabbitmq/api-email-subscriber.service.d.ts.map +1 -0
  150. package/dist/jobs/{api-email-subscriber.service.js → rabbitmq/api-email-subscriber.service.js} +4 -4
  151. package/dist/jobs/rabbitmq/api-email-subscriber.service.js.map +1 -0
  152. package/dist/jobs/{chatter-queue-options.d.ts → rabbitmq/chatter-queue-options.d.ts} +1 -1
  153. package/dist/jobs/rabbitmq/chatter-queue-options.d.ts.map +1 -0
  154. package/dist/jobs/{chatter-queue-options.js → rabbitmq/chatter-queue-options.js} +2 -2
  155. package/dist/jobs/rabbitmq/chatter-queue-options.js.map +1 -0
  156. package/dist/jobs/rabbitmq/chatter-queue-publisher.service.d.ts +22 -0
  157. package/dist/jobs/rabbitmq/chatter-queue-publisher.service.d.ts.map +1 -0
  158. package/dist/jobs/{chatter-queue-publisher.service.js → rabbitmq/chatter-queue-publisher.service.js} +8 -8
  159. package/dist/jobs/rabbitmq/chatter-queue-publisher.service.js.map +1 -0
  160. package/dist/jobs/{chatter-queue-subscriber.service.d.ts → rabbitmq/chatter-queue-subscriber.service.d.ts} +7 -7
  161. package/dist/jobs/rabbitmq/chatter-queue-subscriber.service.d.ts.map +1 -0
  162. package/dist/jobs/rabbitmq/chatter-queue-subscriber.service.js +59 -0
  163. package/dist/jobs/rabbitmq/chatter-queue-subscriber.service.js.map +1 -0
  164. package/dist/jobs/rabbitmq/computed-field-evaluation-publisher.service.d.ts.map +1 -0
  165. package/dist/jobs/{computed-field-evaluation-publisher.service.js → rabbitmq/computed-field-evaluation-publisher.service.js} +3 -3
  166. package/dist/jobs/rabbitmq/computed-field-evaluation-publisher.service.js.map +1 -0
  167. package/dist/jobs/{computed-field-evaluation-queue-options.d.ts → rabbitmq/computed-field-evaluation-queue-options.d.ts} +3 -1
  168. package/dist/jobs/rabbitmq/computed-field-evaluation-queue-options.d.ts.map +1 -0
  169. package/dist/jobs/{computed-field-evaluation-queue-options.js → rabbitmq/computed-field-evaluation-queue-options.js} +3 -1
  170. package/dist/jobs/rabbitmq/computed-field-evaluation-queue-options.js.map +1 -0
  171. package/dist/jobs/rabbitmq/computed-field-evaluation-subscriber.service.d.ts.map +1 -0
  172. package/dist/jobs/{computed-field-evaluation-subscriber.service.js → rabbitmq/computed-field-evaluation-subscriber.service.js} +5 -5
  173. package/dist/jobs/rabbitmq/computed-field-evaluation-subscriber.service.js.map +1 -0
  174. package/dist/jobs/{generate-code-publisher.service.d.ts → rabbitmq/generate-code-publisher.service.d.ts} +3 -3
  175. package/dist/jobs/rabbitmq/generate-code-publisher.service.d.ts.map +1 -0
  176. package/dist/jobs/{generate-code-publisher.service.js → rabbitmq/generate-code-publisher.service.js} +3 -3
  177. package/dist/jobs/rabbitmq/generate-code-publisher.service.js.map +1 -0
  178. package/dist/jobs/rabbitmq/generate-code-queue-options.d.ts +8 -0
  179. package/dist/jobs/rabbitmq/generate-code-queue-options.d.ts.map +1 -0
  180. package/dist/jobs/{generate-code-queue-options.js → rabbitmq/generate-code-queue-options.js} +1 -1
  181. package/dist/jobs/rabbitmq/generate-code-queue-options.js.map +1 -0
  182. package/dist/jobs/rabbitmq/generate-code-subscriber.service.d.ts.map +1 -0
  183. package/dist/jobs/{generate-code-subscriber.service.js → rabbitmq/generate-code-subscriber.service.js} +6 -6
  184. package/dist/jobs/rabbitmq/generate-code-subscriber.service.js.map +1 -0
  185. package/dist/jobs/{msg91-otp-publisher.service.d.ts → rabbitmq/msg91-otp-publisher.service.d.ts} +1 -1
  186. package/dist/jobs/rabbitmq/msg91-otp-publisher.service.d.ts.map +1 -0
  187. package/dist/jobs/{msg91-otp-publisher.service.js → rabbitmq/msg91-otp-publisher.service.js} +3 -3
  188. package/dist/jobs/rabbitmq/msg91-otp-publisher.service.js.map +1 -0
  189. package/dist/jobs/{msg91-otp-queue-options.d.ts → rabbitmq/msg91-otp-queue-options.d.ts} +1 -1
  190. package/dist/jobs/rabbitmq/msg91-otp-queue-options.d.ts.map +1 -0
  191. package/dist/jobs/{msg91-otp-queue-options.js → rabbitmq/msg91-otp-queue-options.js} +1 -1
  192. package/dist/jobs/rabbitmq/msg91-otp-queue-options.js.map +1 -0
  193. package/dist/jobs/{msg91-otp-subscriber.service.d.ts → rabbitmq/msg91-otp-subscriber.service.d.ts} +1 -1
  194. package/dist/jobs/rabbitmq/msg91-otp-subscriber.service.d.ts.map +1 -0
  195. package/dist/jobs/{msg91-otp-subscriber.service.js → rabbitmq/msg91-otp-subscriber.service.js} +5 -5
  196. package/dist/jobs/rabbitmq/msg91-otp-subscriber.service.js.map +1 -0
  197. package/dist/jobs/{msg91-sms-publisher.service.d.ts → rabbitmq/msg91-sms-publisher.service.d.ts} +1 -1
  198. package/dist/jobs/rabbitmq/msg91-sms-publisher.service.d.ts.map +1 -0
  199. package/dist/jobs/{msg91-sms-publisher.service.js → rabbitmq/msg91-sms-publisher.service.js} +3 -3
  200. package/dist/jobs/rabbitmq/msg91-sms-publisher.service.js.map +1 -0
  201. package/dist/jobs/{msg91-sms-queue-options.d.ts → rabbitmq/msg91-sms-queue-options.d.ts} +1 -1
  202. package/dist/jobs/rabbitmq/msg91-sms-queue-options.d.ts.map +1 -0
  203. package/dist/jobs/{msg91-sms-queue-options.js → rabbitmq/msg91-sms-queue-options.js} +1 -1
  204. package/dist/jobs/rabbitmq/msg91-sms-queue-options.js.map +1 -0
  205. package/dist/jobs/{msg91-sms-subscriber.service.d.ts → rabbitmq/msg91-sms-subscriber.service.d.ts} +1 -1
  206. package/dist/jobs/rabbitmq/msg91-sms-subscriber.service.d.ts.map +1 -0
  207. package/dist/jobs/{msg91-sms-subscriber.service.js → rabbitmq/msg91-sms-subscriber.service.js} +5 -5
  208. package/dist/jobs/rabbitmq/msg91-sms-subscriber.service.js.map +1 -0
  209. package/dist/jobs/{msg91-whatsapp-publisher.service.d.ts → rabbitmq/msg91-whatsapp-publisher.service.d.ts} +1 -1
  210. package/dist/jobs/rabbitmq/msg91-whatsapp-publisher.service.d.ts.map +1 -0
  211. package/dist/jobs/{msg91-whatsapp-publisher.service.js → rabbitmq/msg91-whatsapp-publisher.service.js} +3 -3
  212. package/dist/jobs/rabbitmq/msg91-whatsapp-publisher.service.js.map +1 -0
  213. package/dist/jobs/{msg91-whatsapp-queue-options.d.ts → rabbitmq/msg91-whatsapp-queue-options.d.ts} +1 -1
  214. package/dist/jobs/rabbitmq/msg91-whatsapp-queue-options.d.ts.map +1 -0
  215. package/dist/jobs/{msg91-whatsapp-queue-options.js → rabbitmq/msg91-whatsapp-queue-options.js} +1 -1
  216. package/dist/jobs/rabbitmq/msg91-whatsapp-queue-options.js.map +1 -0
  217. package/dist/jobs/{msg91-whatsapp-subscriber.service.d.ts → rabbitmq/msg91-whatsapp-subscriber.service.d.ts} +2 -2
  218. package/dist/jobs/rabbitmq/msg91-whatsapp-subscriber.service.d.ts.map +1 -0
  219. package/dist/jobs/{msg91-whatsapp-subscriber.service.js → rabbitmq/msg91-whatsapp-subscriber.service.js} +4 -4
  220. package/dist/jobs/rabbitmq/msg91-whatsapp-subscriber.service.js.map +1 -0
  221. package/dist/jobs/{smtp-email-publisher.service.d.ts → rabbitmq/smtp-email-publisher.service.d.ts} +1 -1
  222. package/dist/jobs/rabbitmq/smtp-email-publisher.service.d.ts.map +1 -0
  223. package/dist/jobs/{smtp-email-publisher.service.js → rabbitmq/smtp-email-publisher.service.js} +3 -3
  224. package/dist/jobs/rabbitmq/smtp-email-publisher.service.js.map +1 -0
  225. package/dist/jobs/{smtp-email-queue-options.d.ts → rabbitmq/smtp-email-queue-options.d.ts} +1 -1
  226. package/dist/jobs/rabbitmq/smtp-email-queue-options.d.ts.map +1 -0
  227. package/dist/jobs/{smtp-email-queue-options.js → rabbitmq/smtp-email-queue-options.js} +1 -1
  228. package/dist/jobs/rabbitmq/smtp-email-queue-options.js.map +1 -0
  229. package/dist/jobs/{smtp-email-subscriber.service.d.ts → rabbitmq/smtp-email-subscriber.service.d.ts} +2 -2
  230. package/dist/jobs/rabbitmq/smtp-email-subscriber.service.d.ts.map +1 -0
  231. package/dist/jobs/{smtp-email-subscriber.service.js → rabbitmq/smtp-email-subscriber.service.js} +4 -4
  232. package/dist/jobs/rabbitmq/smtp-email-subscriber.service.js.map +1 -0
  233. package/dist/jobs/{test-queue-options.d.ts → rabbitmq/test-queue-options.d.ts} +1 -1
  234. package/dist/jobs/rabbitmq/test-queue-options.d.ts.map +1 -0
  235. package/dist/jobs/{test-queue-options.js → rabbitmq/test-queue-options.js} +1 -1
  236. package/dist/jobs/rabbitmq/test-queue-options.js.map +1 -0
  237. package/dist/jobs/{test-queue-publisher.service.d.ts → rabbitmq/test-queue-publisher.service.d.ts} +3 -3
  238. package/dist/jobs/rabbitmq/test-queue-publisher.service.d.ts.map +1 -0
  239. package/dist/jobs/{test-queue-publisher.service.js → rabbitmq/test-queue-publisher.service.js} +3 -3
  240. package/dist/jobs/rabbitmq/test-queue-publisher.service.js.map +1 -0
  241. package/dist/jobs/{test-queue-subscriber.service.d.ts → rabbitmq/test-queue-subscriber.service.d.ts} +3 -3
  242. package/dist/jobs/rabbitmq/test-queue-subscriber.service.d.ts.map +1 -0
  243. package/dist/jobs/{test-queue-subscriber.service.js → rabbitmq/test-queue-subscriber.service.js} +3 -3
  244. package/dist/jobs/rabbitmq/test-queue-subscriber.service.js.map +1 -0
  245. package/dist/jobs/{three60-whatsapp-publisher.service.d.ts → rabbitmq/three60-whatsapp-publisher.service.d.ts} +1 -1
  246. package/dist/jobs/rabbitmq/three60-whatsapp-publisher.service.d.ts.map +1 -0
  247. package/dist/jobs/{three60-whatsapp-publisher.service.js → rabbitmq/three60-whatsapp-publisher.service.js} +3 -3
  248. package/dist/jobs/rabbitmq/three60-whatsapp-publisher.service.js.map +1 -0
  249. package/dist/jobs/{three60-whatsapp-queue-options.d.ts → rabbitmq/three60-whatsapp-queue-options.d.ts} +1 -1
  250. package/dist/jobs/rabbitmq/three60-whatsapp-queue-options.d.ts.map +1 -0
  251. package/dist/jobs/{three60-whatsapp-queue-options.js → rabbitmq/three60-whatsapp-queue-options.js} +1 -1
  252. package/dist/jobs/rabbitmq/three60-whatsapp-queue-options.js.map +1 -0
  253. package/dist/jobs/{three60-whatsapp-subscriber.service.d.ts → rabbitmq/three60-whatsapp-subscriber.service.d.ts} +1 -1
  254. package/dist/jobs/rabbitmq/three60-whatsapp-subscriber.service.d.ts.map +1 -0
  255. package/dist/jobs/{three60-whatsapp-subscriber.service.js → rabbitmq/three60-whatsapp-subscriber.service.js} +4 -4
  256. package/dist/jobs/rabbitmq/three60-whatsapp-subscriber.service.js.map +1 -0
  257. package/dist/jobs/{trigger-mcp-client-publisher.service.d.ts → rabbitmq/trigger-mcp-client-publisher.service.d.ts} +1 -1
  258. package/dist/jobs/rabbitmq/trigger-mcp-client-publisher.service.d.ts.map +1 -0
  259. package/dist/jobs/{trigger-mcp-client-publisher.service.js → rabbitmq/trigger-mcp-client-publisher.service.js} +3 -3
  260. package/dist/jobs/rabbitmq/trigger-mcp-client-publisher.service.js.map +1 -0
  261. package/dist/jobs/{trigger-mcp-client-queue-options.d.ts → rabbitmq/trigger-mcp-client-queue-options.d.ts} +1 -1
  262. package/dist/jobs/rabbitmq/trigger-mcp-client-queue-options.d.ts.map +1 -0
  263. package/dist/jobs/{trigger-mcp-client-queue-options.js → rabbitmq/trigger-mcp-client-queue-options.js} +1 -1
  264. package/dist/jobs/rabbitmq/trigger-mcp-client-queue-options.js.map +1 -0
  265. package/dist/jobs/{trigger-mcp-client-subscriber.service.d.ts → rabbitmq/trigger-mcp-client-subscriber.service.d.ts} +2 -2
  266. package/dist/jobs/rabbitmq/trigger-mcp-client-subscriber.service.d.ts.map +1 -0
  267. package/dist/jobs/{trigger-mcp-client-subscriber.service.js → rabbitmq/trigger-mcp-client-subscriber.service.js} +5 -5
  268. package/dist/jobs/rabbitmq/trigger-mcp-client-subscriber.service.js.map +1 -0
  269. package/dist/jobs/{twilio-sms-publisher.service.d.ts → rabbitmq/twilio-sms-publisher.service.d.ts} +1 -1
  270. package/dist/jobs/rabbitmq/twilio-sms-publisher.service.d.ts.map +1 -0
  271. package/dist/jobs/{twilio-sms-publisher.service.js → rabbitmq/twilio-sms-publisher.service.js} +3 -3
  272. package/dist/jobs/rabbitmq/twilio-sms-publisher.service.js.map +1 -0
  273. package/dist/jobs/{twilio-sms-queue-options.d.ts → rabbitmq/twilio-sms-queue-options.d.ts} +1 -1
  274. package/dist/jobs/rabbitmq/twilio-sms-queue-options.d.ts.map +1 -0
  275. package/dist/jobs/{twilio-sms-queue-options.js → rabbitmq/twilio-sms-queue-options.js} +1 -1
  276. package/dist/jobs/rabbitmq/twilio-sms-queue-options.js.map +1 -0
  277. package/dist/jobs/{twilio-sms-subscriber.service.d.ts → rabbitmq/twilio-sms-subscriber.service.d.ts} +1 -1
  278. package/dist/jobs/rabbitmq/twilio-sms-subscriber.service.d.ts.map +1 -0
  279. package/dist/jobs/{twilio-sms-subscriber.service.js → rabbitmq/twilio-sms-subscriber.service.js} +6 -6
  280. package/dist/jobs/rabbitmq/twilio-sms-subscriber.service.js.map +1 -0
  281. package/dist/jobs/redis/api-email-publisher-redis.service.d.ts +11 -0
  282. package/dist/jobs/redis/api-email-publisher-redis.service.d.ts.map +1 -0
  283. package/dist/jobs/redis/api-email-publisher-redis.service.js +39 -0
  284. package/dist/jobs/redis/api-email-publisher-redis.service.js.map +1 -0
  285. package/dist/jobs/redis/api-email-queue-options-redis.d.ts +8 -0
  286. package/dist/jobs/redis/api-email-queue-options-redis.d.ts.map +1 -0
  287. package/dist/jobs/redis/api-email-queue-options-redis.js +10 -0
  288. package/dist/jobs/redis/api-email-queue-options-redis.js.map +1 -0
  289. package/dist/jobs/redis/api-email-subscriber-redis.service.d.ts +15 -0
  290. package/dist/jobs/redis/api-email-subscriber-redis.service.d.ts.map +1 -0
  291. package/dist/jobs/redis/api-email-subscriber-redis.service.js +45 -0
  292. package/dist/jobs/redis/api-email-subscriber-redis.service.js.map +1 -0
  293. package/dist/jobs/redis/chatter-queue-options-redis.d.ts +8 -0
  294. package/dist/jobs/redis/chatter-queue-options-redis.d.ts.map +1 -0
  295. package/dist/jobs/redis/chatter-queue-options-redis.js +10 -0
  296. package/dist/jobs/redis/chatter-queue-options-redis.js.map +1 -0
  297. package/dist/jobs/redis/chatter-queue-publisher-redis.service.d.ts +11 -0
  298. package/dist/jobs/redis/chatter-queue-publisher-redis.service.d.ts.map +1 -0
  299. package/dist/jobs/redis/chatter-queue-publisher-redis.service.js +39 -0
  300. package/dist/jobs/redis/chatter-queue-publisher-redis.service.js.map +1 -0
  301. package/dist/jobs/redis/chatter-queue-subscriber-redis.service.d.ts +17 -0
  302. package/dist/jobs/redis/chatter-queue-subscriber-redis.service.d.ts.map +1 -0
  303. package/dist/jobs/{chatter-queue-subscriber.service.js → redis/chatter-queue-subscriber-redis.service.js} +18 -18
  304. package/dist/jobs/redis/chatter-queue-subscriber-redis.service.js.map +1 -0
  305. package/dist/jobs/redis/computed-field-evaluation-publisher-redis.service.d.ts +12 -0
  306. package/dist/jobs/redis/computed-field-evaluation-publisher-redis.service.d.ts.map +1 -0
  307. package/dist/jobs/redis/computed-field-evaluation-publisher-redis.service.js +39 -0
  308. package/dist/jobs/redis/computed-field-evaluation-publisher-redis.service.js.map +1 -0
  309. package/dist/jobs/redis/computed-field-evaluation-queue-options-redis.d.ts +9 -0
  310. package/dist/jobs/redis/computed-field-evaluation-queue-options-redis.d.ts.map +1 -0
  311. package/dist/jobs/redis/computed-field-evaluation-queue-options-redis.js +11 -0
  312. package/dist/jobs/redis/computed-field-evaluation-queue-options-redis.js.map +1 -0
  313. package/dist/jobs/redis/computed-field-evaluation-subscriber-redis.service.d.ts +19 -0
  314. package/dist/jobs/redis/computed-field-evaluation-subscriber-redis.service.d.ts.map +1 -0
  315. package/dist/jobs/redis/computed-field-evaluation-subscriber-redis.service.js +63 -0
  316. package/dist/jobs/redis/computed-field-evaluation-subscriber-redis.service.js.map +1 -0
  317. package/dist/jobs/redis/generate-code-publisher-redis.service.d.ts +11 -0
  318. package/dist/jobs/redis/generate-code-publisher-redis.service.d.ts.map +1 -0
  319. package/dist/jobs/redis/generate-code-publisher-redis.service.js +39 -0
  320. package/dist/jobs/redis/generate-code-publisher-redis.service.js.map +1 -0
  321. package/dist/jobs/redis/generate-code-queue-options-redis.d.ts +8 -0
  322. package/dist/jobs/redis/generate-code-queue-options-redis.d.ts.map +1 -0
  323. package/dist/jobs/redis/generate-code-queue-options-redis.js +10 -0
  324. package/dist/jobs/redis/generate-code-queue-options-redis.js.map +1 -0
  325. package/dist/jobs/redis/generate-code-subscriber-redis.service.d.ts +18 -0
  326. package/dist/jobs/redis/generate-code-subscriber-redis.service.d.ts.map +1 -0
  327. package/dist/jobs/redis/generate-code-subscriber-redis.service.js +70 -0
  328. package/dist/jobs/redis/generate-code-subscriber-redis.service.js.map +1 -0
  329. package/dist/jobs/redis/msg91-otp-publisher-redis.service.d.ts +11 -0
  330. package/dist/jobs/redis/msg91-otp-publisher-redis.service.d.ts.map +1 -0
  331. package/dist/jobs/redis/msg91-otp-publisher-redis.service.js +39 -0
  332. package/dist/jobs/redis/msg91-otp-publisher-redis.service.js.map +1 -0
  333. package/dist/jobs/redis/msg91-otp-queue-options-redis.d.ts +8 -0
  334. package/dist/jobs/redis/msg91-otp-queue-options-redis.d.ts.map +1 -0
  335. package/dist/jobs/redis/msg91-otp-queue-options-redis.js +10 -0
  336. package/dist/jobs/redis/msg91-otp-queue-options-redis.js.map +1 -0
  337. package/dist/jobs/redis/msg91-otp-subscriber-redis.service.d.ts +15 -0
  338. package/dist/jobs/redis/msg91-otp-subscriber-redis.service.d.ts.map +1 -0
  339. package/dist/jobs/redis/msg91-otp-subscriber-redis.service.js +47 -0
  340. package/dist/jobs/redis/msg91-otp-subscriber-redis.service.js.map +1 -0
  341. package/dist/jobs/redis/msg91-sms-publisher-redis.service.d.ts +11 -0
  342. package/dist/jobs/redis/msg91-sms-publisher-redis.service.d.ts.map +1 -0
  343. package/dist/jobs/redis/msg91-sms-publisher-redis.service.js +39 -0
  344. package/dist/jobs/redis/msg91-sms-publisher-redis.service.js.map +1 -0
  345. package/dist/jobs/redis/msg91-sms-queue-options-redis.d.ts +8 -0
  346. package/dist/jobs/redis/msg91-sms-queue-options-redis.d.ts.map +1 -0
  347. package/dist/jobs/redis/msg91-sms-queue-options-redis.js +10 -0
  348. package/dist/jobs/redis/msg91-sms-queue-options-redis.js.map +1 -0
  349. package/dist/jobs/redis/msg91-sms-subscriber-redis.service.d.ts +15 -0
  350. package/dist/jobs/redis/msg91-sms-subscriber-redis.service.d.ts.map +1 -0
  351. package/dist/jobs/redis/msg91-sms-subscriber-redis.service.js +47 -0
  352. package/dist/jobs/redis/msg91-sms-subscriber-redis.service.js.map +1 -0
  353. package/dist/jobs/redis/msg91-whatsapp-publisher-redis.service.d.ts +11 -0
  354. package/dist/jobs/redis/msg91-whatsapp-publisher-redis.service.d.ts.map +1 -0
  355. package/dist/jobs/redis/msg91-whatsapp-publisher-redis.service.js +39 -0
  356. package/dist/jobs/redis/msg91-whatsapp-publisher-redis.service.js.map +1 -0
  357. package/dist/jobs/redis/msg91-whatsapp-queue-options-redis.d.ts +8 -0
  358. package/dist/jobs/redis/msg91-whatsapp-queue-options-redis.d.ts.map +1 -0
  359. package/dist/jobs/redis/msg91-whatsapp-queue-options-redis.js +10 -0
  360. package/dist/jobs/redis/msg91-whatsapp-queue-options-redis.js.map +1 -0
  361. package/dist/jobs/redis/msg91-whatsapp-subscriber-redis.service.d.ts +15 -0
  362. package/dist/jobs/redis/msg91-whatsapp-subscriber-redis.service.d.ts.map +1 -0
  363. package/dist/jobs/redis/msg91-whatsapp-subscriber-redis.service.js +45 -0
  364. package/dist/jobs/redis/msg91-whatsapp-subscriber-redis.service.js.map +1 -0
  365. package/dist/jobs/redis/smtp-email-publisher-redis.service.d.ts +11 -0
  366. package/dist/jobs/redis/smtp-email-publisher-redis.service.d.ts.map +1 -0
  367. package/dist/jobs/redis/smtp-email-publisher-redis.service.js +39 -0
  368. package/dist/jobs/redis/smtp-email-publisher-redis.service.js.map +1 -0
  369. package/dist/jobs/redis/smtp-email-queue-options-redis.d.ts +8 -0
  370. package/dist/jobs/redis/smtp-email-queue-options-redis.d.ts.map +1 -0
  371. package/dist/jobs/redis/smtp-email-queue-options-redis.js +10 -0
  372. package/dist/jobs/redis/smtp-email-queue-options-redis.js.map +1 -0
  373. package/dist/jobs/redis/smtp-email-subscriber-redis.service.d.ts +15 -0
  374. package/dist/jobs/redis/smtp-email-subscriber-redis.service.d.ts.map +1 -0
  375. package/dist/jobs/redis/smtp-email-subscriber-redis.service.js +45 -0
  376. package/dist/jobs/redis/smtp-email-subscriber-redis.service.js.map +1 -0
  377. package/dist/jobs/{generate-code-queue-options.d.ts → redis/test-queue-options-redis.d.ts} +2 -2
  378. package/dist/jobs/redis/test-queue-options-redis.d.ts.map +1 -0
  379. package/dist/jobs/redis/test-queue-options-redis.js +10 -0
  380. package/dist/jobs/redis/test-queue-options-redis.js.map +1 -0
  381. package/dist/jobs/redis/test-queue-publisher-redis.service.d.ts +11 -0
  382. package/dist/jobs/redis/test-queue-publisher-redis.service.d.ts.map +1 -0
  383. package/dist/jobs/redis/test-queue-publisher-redis.service.js +39 -0
  384. package/dist/jobs/redis/test-queue-publisher-redis.service.js.map +1 -0
  385. package/dist/jobs/redis/test-queue-subscriber-redis.service.d.ts +14 -0
  386. package/dist/jobs/redis/test-queue-subscriber-redis.service.d.ts.map +1 -0
  387. package/dist/jobs/redis/test-queue-subscriber-redis.service.js +56 -0
  388. package/dist/jobs/redis/test-queue-subscriber-redis.service.js.map +1 -0
  389. package/dist/jobs/redis/three60-whatsapp-publisher-redis.service.d.ts +11 -0
  390. package/dist/jobs/redis/three60-whatsapp-publisher-redis.service.d.ts.map +1 -0
  391. package/dist/jobs/redis/three60-whatsapp-publisher-redis.service.js +39 -0
  392. package/dist/jobs/redis/three60-whatsapp-publisher-redis.service.js.map +1 -0
  393. package/dist/jobs/redis/three60-whatsapp-queue-options-redis.d.ts +8 -0
  394. package/dist/jobs/redis/three60-whatsapp-queue-options-redis.d.ts.map +1 -0
  395. package/dist/jobs/redis/three60-whatsapp-queue-options-redis.js +10 -0
  396. package/dist/jobs/redis/three60-whatsapp-queue-options-redis.js.map +1 -0
  397. package/dist/jobs/redis/three60-whatsapp-subscriber-redis.service.d.ts +15 -0
  398. package/dist/jobs/redis/three60-whatsapp-subscriber-redis.service.d.ts.map +1 -0
  399. package/dist/jobs/redis/three60-whatsapp-subscriber-redis.service.js +45 -0
  400. package/dist/jobs/redis/three60-whatsapp-subscriber-redis.service.js.map +1 -0
  401. package/dist/jobs/redis/trigger-mcp-client-publisher-redis.service.d.ts +11 -0
  402. package/dist/jobs/redis/trigger-mcp-client-publisher-redis.service.d.ts.map +1 -0
  403. package/dist/jobs/redis/trigger-mcp-client-publisher-redis.service.js +39 -0
  404. package/dist/jobs/redis/trigger-mcp-client-publisher-redis.service.js.map +1 -0
  405. package/dist/jobs/redis/trigger-mcp-client-queue-options-redis.d.ts +8 -0
  406. package/dist/jobs/redis/trigger-mcp-client-queue-options-redis.d.ts.map +1 -0
  407. package/dist/jobs/redis/trigger-mcp-client-queue-options-redis.js +10 -0
  408. package/dist/jobs/redis/trigger-mcp-client-queue-options-redis.js.map +1 -0
  409. package/dist/jobs/redis/trigger-mcp-client-subscriber-redis.service.d.ts +18 -0
  410. package/dist/jobs/redis/trigger-mcp-client-subscriber-redis.service.d.ts.map +1 -0
  411. package/dist/jobs/redis/trigger-mcp-client-subscriber-redis.service.js +103 -0
  412. package/dist/jobs/redis/trigger-mcp-client-subscriber-redis.service.js.map +1 -0
  413. package/dist/jobs/redis/twilio-sms-publisher-redis.service.d.ts +11 -0
  414. package/dist/jobs/redis/twilio-sms-publisher-redis.service.d.ts.map +1 -0
  415. package/dist/jobs/redis/twilio-sms-publisher-redis.service.js +39 -0
  416. package/dist/jobs/redis/twilio-sms-publisher-redis.service.js.map +1 -0
  417. package/dist/jobs/redis/twilio-sms-queue-options-redis.d.ts +8 -0
  418. package/dist/jobs/redis/twilio-sms-queue-options-redis.d.ts.map +1 -0
  419. package/dist/jobs/redis/twilio-sms-queue-options-redis.js +10 -0
  420. package/dist/jobs/redis/twilio-sms-queue-options-redis.js.map +1 -0
  421. package/dist/jobs/redis/twilio-sms-subscriber-redis.service.d.ts +17 -0
  422. package/dist/jobs/redis/twilio-sms-subscriber-redis.service.d.ts.map +1 -0
  423. package/dist/jobs/redis/twilio-sms-subscriber-redis.service.js +50 -0
  424. package/dist/jobs/redis/twilio-sms-subscriber-redis.service.js.map +1 -0
  425. package/dist/repository/dashboard-layout.repository.d.ts +12 -0
  426. package/dist/repository/dashboard-layout.repository.d.ts.map +1 -0
  427. package/dist/repository/dashboard-layout.repository.js +34 -0
  428. package/dist/repository/dashboard-layout.repository.js.map +1 -0
  429. package/dist/repository/model-metadata.repository.d.ts +6 -1
  430. package/dist/repository/model-metadata.repository.d.ts.map +1 -1
  431. package/dist/repository/model-metadata.repository.js +41 -2
  432. package/dist/repository/model-metadata.repository.js.map +1 -1
  433. package/dist/seeders/module-metadata-seeder.service.js +4 -4
  434. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  435. package/dist/seeders/seed-data/solid-core-metadata.json +502 -66
  436. package/dist/services/authentication.service.d.ts.map +1 -1
  437. package/dist/services/authentication.service.js +45 -21
  438. package/dist/services/authentication.service.js.map +1 -1
  439. package/dist/services/chatter-message.service.d.ts +4 -4
  440. package/dist/services/chatter-message.service.d.ts.map +1 -1
  441. package/dist/services/chatter-message.service.js +59 -9
  442. package/dist/services/chatter-message.service.js.map +1 -1
  443. package/dist/services/computed-fields/entity/sequence-num-computed-field-provider.d.ts +7 -3
  444. package/dist/services/computed-fields/entity/sequence-num-computed-field-provider.d.ts.map +1 -1
  445. package/dist/services/computed-fields/entity/sequence-num-computed-field-provider.js +61 -22
  446. package/dist/services/computed-fields/entity/sequence-num-computed-field-provider.js.map +1 -1
  447. package/dist/services/crud.service.js +1 -1
  448. package/dist/services/crud.service.js.map +1 -1
  449. package/dist/services/dashboard-layout.service.d.ts +20 -0
  450. package/dist/services/dashboard-layout.service.d.ts.map +1 -0
  451. package/dist/services/dashboard-layout.service.js +120 -0
  452. package/dist/services/dashboard-layout.service.js.map +1 -0
  453. package/dist/services/dashboard-question.service.d.ts +4 -0
  454. package/dist/services/dashboard-question.service.d.ts.map +1 -1
  455. package/dist/services/dashboard-question.service.js +22 -8
  456. package/dist/services/dashboard-question.service.js.map +1 -1
  457. package/dist/services/dashboard.service.d.ts +2 -0
  458. package/dist/services/dashboard.service.d.ts.map +1 -1
  459. package/dist/services/dashboard.service.js +4 -0
  460. package/dist/services/dashboard.service.js.map +1 -1
  461. package/dist/services/model-metadata.service.d.ts +3 -1
  462. package/dist/services/model-metadata.service.d.ts.map +1 -1
  463. package/dist/services/model-metadata.service.js +122 -8
  464. package/dist/services/model-metadata.service.js.map +1 -1
  465. package/dist/services/permission-metadata.service.d.ts +5 -1
  466. package/dist/services/permission-metadata.service.d.ts.map +1 -1
  467. package/dist/services/permission-metadata.service.js +66 -20
  468. package/dist/services/permission-metadata.service.js.map +1 -1
  469. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.d.ts +2 -4
  470. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.d.ts.map +1 -1
  471. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.js +2 -1
  472. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.js.map +1 -1
  473. package/dist/services/question-data-providers/interfaces.d.ts +1 -0
  474. package/dist/services/question-data-providers/interfaces.d.ts.map +1 -0
  475. package/dist/services/question-data-providers/interfaces.js +1 -0
  476. package/dist/services/question-data-providers/interfaces.js.map +1 -0
  477. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.d.ts +2 -5
  478. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.d.ts.map +1 -1
  479. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.js +2 -1
  480. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.js.map +1 -1
  481. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.d.ts +2 -5
  482. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.d.ts.map +1 -1
  483. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.js +2 -1
  484. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.js.map +1 -1
  485. package/dist/services/queues/database-subscriber.service.d.ts +4 -2
  486. package/dist/services/queues/database-subscriber.service.d.ts.map +1 -1
  487. package/dist/services/queues/database-subscriber.service.js +15 -2
  488. package/dist/services/queues/database-subscriber.service.js.map +1 -1
  489. package/dist/services/queues/publisher-factory.service.d.ts.map +1 -1
  490. package/dist/services/queues/publisher-factory.service.js +4 -7
  491. package/dist/services/queues/publisher-factory.service.js.map +1 -1
  492. package/dist/services/queues/rabbitmq-publisher.service.d.ts +1 -0
  493. package/dist/services/queues/rabbitmq-publisher.service.d.ts.map +1 -1
  494. package/dist/services/queues/rabbitmq-publisher.service.js +6 -1
  495. package/dist/services/queues/rabbitmq-publisher.service.js.map +1 -1
  496. package/dist/services/queues/rabbitmq-subscriber.service.d.ts +9 -3
  497. package/dist/services/queues/rabbitmq-subscriber.service.d.ts.map +1 -1
  498. package/dist/services/queues/rabbitmq-subscriber.service.js +93 -10
  499. package/dist/services/queues/rabbitmq-subscriber.service.js.map +1 -1
  500. package/dist/services/queues/redis-publisher.service.d.ts +18 -0
  501. package/dist/services/queues/redis-publisher.service.d.ts.map +1 -1
  502. package/dist/services/queues/redis-publisher.service.js +86 -0
  503. package/dist/services/queues/redis-publisher.service.js.map +1 -1
  504. package/dist/services/queues/redis-subscriber.service.d.ts +26 -0
  505. package/dist/services/queues/redis-subscriber.service.d.ts.map +1 -1
  506. package/dist/services/queues/redis-subscriber.service.js +182 -0
  507. package/dist/services/queues/redis-subscriber.service.js.map +1 -1
  508. package/dist/services/request-context.service.d.ts +2 -1
  509. package/dist/services/request-context.service.d.ts.map +1 -1
  510. package/dist/services/request-context.service.js.map +1 -1
  511. package/dist/services/scheduled-job.service.d.ts +6 -1
  512. package/dist/services/scheduled-job.service.d.ts.map +1 -1
  513. package/dist/services/scheduled-job.service.js +26 -2
  514. package/dist/services/scheduled-job.service.js.map +1 -1
  515. package/dist/services/scheduled-jobs/scheduler.interface.d.ts +2 -0
  516. package/dist/services/scheduled-jobs/scheduler.interface.d.ts.map +1 -1
  517. package/dist/services/scheduled-jobs/scheduler.interface.js.map +1 -1
  518. package/dist/services/scheduled-jobs/scheduler.service.d.ts +6 -2
  519. package/dist/services/scheduled-jobs/scheduler.service.d.ts.map +1 -1
  520. package/dist/services/scheduled-jobs/scheduler.service.js +75 -17
  521. package/dist/services/scheduled-jobs/scheduler.service.js.map +1 -1
  522. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.d.ts.map +1 -1
  523. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.js +4 -1
  524. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.js.map +1 -1
  525. package/dist/services/solid-introspect.service.d.ts +6 -1
  526. package/dist/services/solid-introspect.service.d.ts.map +1 -1
  527. package/dist/services/solid-introspect.service.js +27 -2
  528. package/dist/services/solid-introspect.service.js.map +1 -1
  529. package/dist/services/solid-ts-morph.service.d.ts +9 -0
  530. package/dist/services/solid-ts-morph.service.d.ts.map +1 -1
  531. package/dist/services/solid-ts-morph.service.js +76 -0
  532. package/dist/services/solid-ts-morph.service.js.map +1 -1
  533. package/dist/solid-core.module.d.ts.map +1 -1
  534. package/dist/solid-core.module.js +86 -22
  535. package/dist/solid-core.module.js.map +1 -1
  536. package/dist/subscribers/audit.subscriber.d.ts +10 -7
  537. package/dist/subscribers/audit.subscriber.d.ts.map +1 -1
  538. package/dist/subscribers/audit.subscriber.js +58 -85
  539. package/dist/subscribers/audit.subscriber.js.map +1 -1
  540. package/dist/subscribers/computed-entity-field.subscriber.js +3 -1
  541. package/dist/subscribers/computed-entity-field.subscriber.js.map +1 -1
  542. package/dist/subscribers/created-by-updated-by.subscriber.d.ts +0 -1
  543. package/dist/subscribers/created-by-updated-by.subscriber.d.ts.map +1 -1
  544. package/dist/subscribers/created-by-updated-by.subscriber.js +3 -13
  545. package/dist/subscribers/created-by-updated-by.subscriber.js.map +1 -1
  546. package/dist/transformers/typeorm/local-date-time-transformer.d.ts +4 -4
  547. package/dist/transformers/typeorm/local-date-time-transformer.d.ts.map +1 -1
  548. package/dist/transformers/typeorm/local-date-time-transformer.js +25 -28
  549. package/dist/transformers/typeorm/local-date-time-transformer.js.map +1 -1
  550. package/dist/winston.logger.d.ts.map +1 -1
  551. package/dist/winston.logger.js +2 -1
  552. package/dist/winston.logger.js.map +1 -1
  553. package/package.json +3 -1
  554. package/sql/default/mariadb/proc_CleanupModelMetadata.sql +153 -0
  555. package/sql/default/mariadb/proc_CleanupModuleMetadata.sql +56 -0
  556. package/sql/default/mysql/proc_CleanupModelMetadata.sql +153 -0
  557. package/sql/default/mysql/proc_CleanupModuleMetadata.sql +56 -0
  558. package/src/controllers/dashboard-layout.controller.ts +106 -0
  559. package/src/controllers/scheduled-job.controller.ts +6 -0
  560. package/src/dtos/create-dashboard-layout.dto.ts +31 -0
  561. package/src/dtos/create-dashboard-variable.dto.ts +4 -0
  562. package/src/dtos/update-dashboard-layout.dto.ts +30 -0
  563. package/src/dtos/update-dashboard-variable.dto.ts +5 -1
  564. package/src/entities/action-metadata.entity.ts +3 -2
  565. package/src/entities/ai-interaction.entity.ts +5 -4
  566. package/src/entities/chatter-message-details.entity.ts +7 -3
  567. package/src/entities/chatter-message.entity.ts +4 -3
  568. package/src/entities/common.entity.ts +2 -2
  569. package/src/entities/dashboard-layout.entity.ts +18 -0
  570. package/src/entities/dashboard-question-sql-dataset-config.entity.ts +5 -4
  571. package/src/entities/dashboard-question.entity.ts +5 -4
  572. package/src/entities/dashboard-variable.entity.ts +9 -4
  573. package/src/entities/dashboard.entity.ts +7 -2
  574. package/src/entities/email-attachment.entity.ts +2 -1
  575. package/src/entities/email-template.entity.ts +1 -1
  576. package/src/entities/export-transaction.entity.ts +2 -1
  577. package/src/entities/field-metadata.entity.ts +2 -2
  578. package/src/entities/import-transaction-error-log.entity.ts +3 -2
  579. package/src/entities/import-transaction.entity.ts +2 -1
  580. package/src/entities/legacy-common.entity.ts +3 -4
  581. package/src/entities/mq-message-queue.entity.ts +8 -8
  582. package/src/entities/mq-message.entity.ts +5 -3
  583. package/src/entities/saved-filters.entity.ts +3 -2
  584. package/src/entities/security-rule.entity.ts +2 -1
  585. package/src/entities/sms-template.entity.ts +1 -1
  586. package/src/entities/user-view-metadata.entity.ts +2 -1
  587. package/src/entities/user.entity.ts +37 -2
  588. package/src/entities/view-metadata.entity.ts +3 -0
  589. package/src/helpers/bootstrap.helper.ts +222 -0
  590. package/src/helpers/cache.helper.ts +5 -0
  591. package/src/helpers/cors.helper.ts +26 -6
  592. package/src/helpers/field-crud-managers/SelectionDynamicFieldCrudManager.ts +9 -6
  593. package/src/helpers/solid-registry.ts +10 -5
  594. package/src/helpers/typeorm-db-helper.ts +26 -0
  595. package/src/index.ts +57 -15
  596. package/src/interfaces.ts +12 -2
  597. package/src/jobs/database/chatter-queue-options-database.ts +9 -0
  598. package/src/jobs/database/chatter-queue-publisher-database.service.ts +24 -0
  599. package/src/jobs/database/chatter-queue-subscriber-database.service.ts +53 -0
  600. package/src/jobs/{api-email-publisher.service.ts → rabbitmq/api-email-publisher.service.ts} +1 -1
  601. package/src/jobs/{api-email-queue-options.ts → rabbitmq/api-email-queue-options.ts} +1 -1
  602. package/src/jobs/{api-email-subscriber.service.ts → rabbitmq/api-email-subscriber.service.ts} +2 -2
  603. package/src/jobs/{chatter-queue-options.ts → rabbitmq/chatter-queue-options.ts} +2 -2
  604. package/src/jobs/rabbitmq/chatter-queue-publisher.service.ts +37 -0
  605. package/src/jobs/{chatter-queue-subscriber.service.ts → rabbitmq/chatter-queue-subscriber.service.ts} +16 -11
  606. package/src/jobs/{computed-field-evaluation-publisher.service.ts → rabbitmq/computed-field-evaluation-publisher.service.ts} +1 -1
  607. package/src/jobs/{computed-field-evaluation-queue-options.ts → rabbitmq/computed-field-evaluation-queue-options.ts} +3 -1
  608. package/src/jobs/{generate-code-publisher.service.ts → rabbitmq/generate-code-publisher.service.ts} +3 -3
  609. package/src/jobs/{generate-code-queue-options.ts → rabbitmq/generate-code-queue-options.ts} +1 -1
  610. package/src/jobs/{msg91-otp-publisher.service.ts → rabbitmq/msg91-otp-publisher.service.ts} +1 -1
  611. package/src/jobs/{msg91-otp-queue-options.ts → rabbitmq/msg91-otp-queue-options.ts} +2 -2
  612. package/src/jobs/{msg91-otp-subscriber.service.ts → rabbitmq/msg91-otp-subscriber.service.ts} +2 -2
  613. package/src/jobs/{msg91-sms-publisher.service.ts → rabbitmq/msg91-sms-publisher.service.ts} +1 -1
  614. package/src/jobs/{msg91-sms-queue-options.ts → rabbitmq/msg91-sms-queue-options.ts} +2 -2
  615. package/src/jobs/{msg91-sms-subscriber.service.ts → rabbitmq/msg91-sms-subscriber.service.ts} +2 -2
  616. package/src/jobs/{msg91-whatsapp-publisher.service.ts → rabbitmq/msg91-whatsapp-publisher.service.ts} +1 -1
  617. package/src/jobs/{msg91-whatsapp-queue-options.ts → rabbitmq/msg91-whatsapp-queue-options.ts} +1 -1
  618. package/src/jobs/{msg91-whatsapp-subscriber.service.ts → rabbitmq/msg91-whatsapp-subscriber.service.ts} +2 -2
  619. package/src/jobs/{smtp-email-publisher.service.ts → rabbitmq/smtp-email-publisher.service.ts} +1 -1
  620. package/src/jobs/{smtp-email-queue-options.ts → rabbitmq/smtp-email-queue-options.ts} +1 -1
  621. package/src/jobs/{smtp-email-subscriber.service.ts → rabbitmq/smtp-email-subscriber.service.ts} +2 -2
  622. package/src/jobs/{test-queue-options.ts → rabbitmq/test-queue-options.ts} +1 -1
  623. package/src/jobs/{test-queue-publisher.service.ts → rabbitmq/test-queue-publisher.service.ts} +3 -3
  624. package/src/jobs/{test-queue-subscriber.service.ts → rabbitmq/test-queue-subscriber.service.ts} +3 -3
  625. package/src/jobs/{three60-whatsapp-publisher.service.ts → rabbitmq/three60-whatsapp-publisher.service.ts} +1 -1
  626. package/src/jobs/{three60-whatsapp-queue-options.ts → rabbitmq/three60-whatsapp-queue-options.ts} +1 -1
  627. package/src/jobs/{three60-whatsapp-subscriber.service.ts → rabbitmq/three60-whatsapp-subscriber.service.ts} +1 -1
  628. package/src/jobs/{trigger-mcp-client-publisher.service.ts → rabbitmq/trigger-mcp-client-publisher.service.ts} +2 -2
  629. package/src/jobs/{trigger-mcp-client-queue-options.ts → rabbitmq/trigger-mcp-client-queue-options.ts} +1 -1
  630. package/src/jobs/{trigger-mcp-client-subscriber.service.ts → rabbitmq/trigger-mcp-client-subscriber.service.ts} +2 -2
  631. package/src/jobs/{twilio-sms-publisher.service.ts → rabbitmq/twilio-sms-publisher.service.ts} +1 -1
  632. package/src/jobs/{twilio-sms-queue-options.ts → rabbitmq/twilio-sms-queue-options.ts} +1 -1
  633. package/src/jobs/{twilio-sms-subscriber.service.ts → rabbitmq/twilio-sms-subscriber.service.ts} +1 -1
  634. package/src/jobs/redis/api-email-publisher-redis.service.ts +23 -0
  635. package/src/jobs/redis/api-email-queue-options-redis.ts +9 -0
  636. package/src/jobs/redis/api-email-subscriber-redis.service.ts +30 -0
  637. package/src/jobs/redis/chatter-queue-options-redis.ts +9 -0
  638. package/src/jobs/redis/chatter-queue-publisher-redis.service.ts +23 -0
  639. package/src/jobs/redis/chatter-queue-subscriber-redis.service.ts +46 -0
  640. package/src/jobs/redis/computed-field-evaluation-publisher-redis.service.ts +24 -0
  641. package/src/jobs/redis/computed-field-evaluation-queue-options-redis.ts +10 -0
  642. package/src/jobs/redis/computed-field-evaluation-subscriber-redis.service.ts +48 -0
  643. package/src/jobs/redis/generate-code-publisher-redis.service.ts +23 -0
  644. package/src/jobs/redis/generate-code-queue-options-redis.ts +9 -0
  645. package/src/jobs/redis/generate-code-subscriber-redis.service.ts +57 -0
  646. package/src/jobs/redis/msg91-otp-publisher-redis.service.ts +23 -0
  647. package/src/jobs/redis/msg91-otp-queue-options-redis.ts +9 -0
  648. package/src/jobs/redis/msg91-otp-subscriber-redis.service.ts +32 -0
  649. package/src/jobs/redis/msg91-sms-publisher-redis.service.ts +23 -0
  650. package/src/jobs/redis/msg91-sms-queue-options-redis.ts +9 -0
  651. package/src/jobs/redis/msg91-sms-subscriber-redis.service.ts +32 -0
  652. package/src/jobs/redis/msg91-whatsapp-publisher-redis.service.ts +23 -0
  653. package/src/jobs/redis/msg91-whatsapp-queue-options-redis.ts +9 -0
  654. package/src/jobs/redis/msg91-whatsapp-subscriber-redis.service.ts +30 -0
  655. package/src/jobs/redis/smtp-email-publisher-redis.service.ts +23 -0
  656. package/src/jobs/redis/smtp-email-queue-options-redis.ts +9 -0
  657. package/src/jobs/redis/smtp-email-subscriber-redis.service.ts +30 -0
  658. package/src/jobs/redis/test-queue-options-redis.ts +9 -0
  659. package/src/jobs/redis/test-queue-publisher-redis.service.ts +24 -0
  660. package/src/jobs/redis/test-queue-subscriber-redis.service.ts +44 -0
  661. package/src/jobs/redis/three60-whatsapp-publisher-redis.service.ts +23 -0
  662. package/src/jobs/redis/three60-whatsapp-queue-options-redis.ts +9 -0
  663. package/src/jobs/redis/three60-whatsapp-subscriber-redis.service.ts +30 -0
  664. package/src/jobs/redis/trigger-mcp-client-publisher-redis.service.ts +23 -0
  665. package/src/jobs/redis/trigger-mcp-client-queue-options-redis.ts +9 -0
  666. package/src/jobs/redis/trigger-mcp-client-subscriber-redis.service.ts +98 -0
  667. package/src/jobs/redis/twilio-sms-publisher-redis.service.ts +23 -0
  668. package/src/jobs/redis/twilio-sms-queue-options-redis.ts +9 -0
  669. package/src/jobs/redis/twilio-sms-subscriber-redis.service.ts +34 -0
  670. package/src/repository/dashboard-layout.repository.ts +17 -0
  671. package/src/repository/model-metadata.repository.ts +45 -2
  672. package/src/seeders/module-metadata-seeder.service.ts +5 -5
  673. package/src/seeders/seed-data/solid-core-metadata.json +503 -67
  674. package/src/services/authentication.service.ts +47 -24
  675. package/src/services/chatter-message.service.ts +67 -9
  676. package/src/services/computed-fields/entity/sequence-num-computed-field-provider.ts +79 -40
  677. package/src/services/crud.service.ts +1 -1
  678. package/src/services/dashboard-layout.service.ts +111 -0
  679. package/src/services/dashboard-question.service.ts +23 -4
  680. package/src/services/dashboard.service.ts +7 -0
  681. package/src/services/model-metadata.service.ts +131 -50
  682. package/src/services/permission-metadata.service.ts +73 -20
  683. package/src/services/question-data-providers/chartjs-sql-data-provider.service.ts +3 -7
  684. package/src/services/question-data-providers/interfaces.ts +0 -0
  685. package/src/services/question-data-providers/prime-react-datatable-sql-data-provider.service.ts +4 -8
  686. package/src/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.ts +4 -8
  687. package/src/services/queues/database-subscriber.service.ts +19 -2
  688. package/src/services/queues/publisher-factory.service.ts +9 -7
  689. package/src/services/queues/rabbitmq-publisher.service.ts +8 -2
  690. package/src/services/queues/rabbitmq-subscriber.service.ts +139 -11
  691. package/src/services/queues/redis-publisher.service.ts +94 -0
  692. package/src/services/queues/redis-subscriber.service.ts +208 -0
  693. package/src/services/request-context.service.ts +2 -1
  694. package/src/services/scheduled-job.service.ts +31 -2
  695. package/src/services/scheduled-jobs/scheduler.interface.ts +4 -1
  696. package/src/services/scheduled-jobs/scheduler.service.ts +82 -20
  697. package/src/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.ts +4 -1
  698. package/src/services/solid-introspect.service.ts +28 -0
  699. package/src/services/solid-ts-morph.service.ts +98 -0
  700. package/src/solid-core.module.ts +91 -24
  701. package/src/subscribers/audit.subscriber.ts +63 -271
  702. package/src/subscribers/computed-entity-field.subscriber.ts +3 -3
  703. package/src/subscribers/created-by-updated-by.subscriber.ts +22 -16
  704. package/src/transformers/typeorm/local-date-time-transformer.ts +41 -33
  705. package/src/winston.logger.ts +2 -1
  706. package/dist/jobs/api-email-publisher.service.d.ts.map +0 -1
  707. package/dist/jobs/api-email-publisher.service.js.map +0 -1
  708. package/dist/jobs/api-email-queue-options.d.ts.map +0 -1
  709. package/dist/jobs/api-email-queue-options.js.map +0 -1
  710. package/dist/jobs/api-email-subscriber.service.d.ts.map +0 -1
  711. package/dist/jobs/api-email-subscriber.service.js.map +0 -1
  712. package/dist/jobs/chatter-queue-options.d.ts.map +0 -1
  713. package/dist/jobs/chatter-queue-options.js.map +0 -1
  714. package/dist/jobs/chatter-queue-publisher.service.d.ts +0 -22
  715. package/dist/jobs/chatter-queue-publisher.service.d.ts.map +0 -1
  716. package/dist/jobs/chatter-queue-publisher.service.js.map +0 -1
  717. package/dist/jobs/chatter-queue-subscriber.service.d.ts.map +0 -1
  718. package/dist/jobs/chatter-queue-subscriber.service.js.map +0 -1
  719. package/dist/jobs/computed-field-evaluation-publisher.service.d.ts.map +0 -1
  720. package/dist/jobs/computed-field-evaluation-publisher.service.js.map +0 -1
  721. package/dist/jobs/computed-field-evaluation-queue-options.d.ts.map +0 -1
  722. package/dist/jobs/computed-field-evaluation-queue-options.js.map +0 -1
  723. package/dist/jobs/computed-field-evaluation-subscriber.service.d.ts.map +0 -1
  724. package/dist/jobs/computed-field-evaluation-subscriber.service.js.map +0 -1
  725. package/dist/jobs/generate-code-publisher.service.d.ts.map +0 -1
  726. package/dist/jobs/generate-code-publisher.service.js.map +0 -1
  727. package/dist/jobs/generate-code-queue-options.d.ts.map +0 -1
  728. package/dist/jobs/generate-code-queue-options.js.map +0 -1
  729. package/dist/jobs/generate-code-subscriber.service.d.ts.map +0 -1
  730. package/dist/jobs/generate-code-subscriber.service.js.map +0 -1
  731. package/dist/jobs/msg91-otp-publisher.service.d.ts.map +0 -1
  732. package/dist/jobs/msg91-otp-publisher.service.js.map +0 -1
  733. package/dist/jobs/msg91-otp-queue-options.d.ts.map +0 -1
  734. package/dist/jobs/msg91-otp-queue-options.js.map +0 -1
  735. package/dist/jobs/msg91-otp-subscriber.service.d.ts.map +0 -1
  736. package/dist/jobs/msg91-otp-subscriber.service.js.map +0 -1
  737. package/dist/jobs/msg91-sms-publisher.service.d.ts.map +0 -1
  738. package/dist/jobs/msg91-sms-publisher.service.js.map +0 -1
  739. package/dist/jobs/msg91-sms-queue-options.d.ts.map +0 -1
  740. package/dist/jobs/msg91-sms-queue-options.js.map +0 -1
  741. package/dist/jobs/msg91-sms-subscriber.service.d.ts.map +0 -1
  742. package/dist/jobs/msg91-sms-subscriber.service.js.map +0 -1
  743. package/dist/jobs/msg91-whatsapp-publisher.service.d.ts.map +0 -1
  744. package/dist/jobs/msg91-whatsapp-publisher.service.js.map +0 -1
  745. package/dist/jobs/msg91-whatsapp-queue-options.d.ts.map +0 -1
  746. package/dist/jobs/msg91-whatsapp-queue-options.js.map +0 -1
  747. package/dist/jobs/msg91-whatsapp-subscriber.service.d.ts.map +0 -1
  748. package/dist/jobs/msg91-whatsapp-subscriber.service.js.map +0 -1
  749. package/dist/jobs/smtp-email-publisher.service.d.ts.map +0 -1
  750. package/dist/jobs/smtp-email-publisher.service.js.map +0 -1
  751. package/dist/jobs/smtp-email-queue-options.d.ts.map +0 -1
  752. package/dist/jobs/smtp-email-queue-options.js.map +0 -1
  753. package/dist/jobs/smtp-email-subscriber.service.d.ts.map +0 -1
  754. package/dist/jobs/smtp-email-subscriber.service.js.map +0 -1
  755. package/dist/jobs/test-queue-options.d.ts.map +0 -1
  756. package/dist/jobs/test-queue-options.js.map +0 -1
  757. package/dist/jobs/test-queue-publisher.service.d.ts.map +0 -1
  758. package/dist/jobs/test-queue-publisher.service.js.map +0 -1
  759. package/dist/jobs/test-queue-subscriber.service.d.ts.map +0 -1
  760. package/dist/jobs/test-queue-subscriber.service.js.map +0 -1
  761. package/dist/jobs/three60-whatsapp-publisher.service.d.ts.map +0 -1
  762. package/dist/jobs/three60-whatsapp-publisher.service.js.map +0 -1
  763. package/dist/jobs/three60-whatsapp-queue-options.d.ts.map +0 -1
  764. package/dist/jobs/three60-whatsapp-queue-options.js.map +0 -1
  765. package/dist/jobs/three60-whatsapp-subscriber.service.d.ts.map +0 -1
  766. package/dist/jobs/three60-whatsapp-subscriber.service.js.map +0 -1
  767. package/dist/jobs/trigger-mcp-client-publisher.service.d.ts.map +0 -1
  768. package/dist/jobs/trigger-mcp-client-publisher.service.js.map +0 -1
  769. package/dist/jobs/trigger-mcp-client-queue-options.d.ts.map +0 -1
  770. package/dist/jobs/trigger-mcp-client-queue-options.js.map +0 -1
  771. package/dist/jobs/trigger-mcp-client-subscriber.service.d.ts.map +0 -1
  772. package/dist/jobs/trigger-mcp-client-subscriber.service.js.map +0 -1
  773. package/dist/jobs/twilio-sms-publisher.service.d.ts.map +0 -1
  774. package/dist/jobs/twilio-sms-publisher.service.js.map +0 -1
  775. package/dist/jobs/twilio-sms-queue-options.d.ts.map +0 -1
  776. package/dist/jobs/twilio-sms-queue-options.js.map +0 -1
  777. package/dist/jobs/twilio-sms-subscriber.service.d.ts.map +0 -1
  778. package/dist/jobs/twilio-sms-subscriber.service.js.map +0 -1
  779. package/src/jobs/chatter-queue-publisher.service.ts +0 -37
  780. /package/dist/jobs/{computed-field-evaluation-publisher.service.d.ts → rabbitmq/computed-field-evaluation-publisher.service.d.ts} +0 -0
  781. /package/dist/jobs/{computed-field-evaluation-subscriber.service.d.ts → rabbitmq/computed-field-evaluation-subscriber.service.d.ts} +0 -0
  782. /package/dist/jobs/{generate-code-subscriber.service.d.ts → rabbitmq/generate-code-subscriber.service.d.ts} +0 -0
  783. /package/src/jobs/{computed-field-evaluation-subscriber.service.ts → rabbitmq/computed-field-evaluation-subscriber.service.ts} +0 -0
  784. /package/src/jobs/{generate-code-subscriber.service.ts → rabbitmq/generate-code-subscriber.service.ts} +0 -0
@@ -15,6 +15,7 @@ import { SolidRegistry } from 'src/helpers/solid-registry';
15
15
  import { DashboardMapper } from 'src/mappers/dashboard-mapper';
16
16
  import { DashboardRepository } from 'src/repository/dashboard.repository';
17
17
  import { Dashboard } from '../entities/dashboard.entity';
18
+ import { CreateDashboardDto } from 'src/dtos/create-dashboard.dto';
18
19
 
19
20
 
20
21
  export const SQL_DYNAMIC_PROVIDER_NAME = 'DashboardVariableSQLDynamicProvider';
@@ -33,6 +34,12 @@ export class DashboardService extends CRUDService<Dashboard> {
33
34
  super(entityManager, repo, 'dashboard', 'solid-core', moduleRef);
34
35
  }
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
+
36
43
  async getSelectionDynamicValues(query: DashboardVariableSelectionDynamicQueryDto) {
37
44
  // Get the dashboard variable repo
38
45
  const dashboardVariable = await this.loadDashboardVariable(query.variableId);
@@ -1,6 +1,7 @@
1
1
  import { BadRequestException, forwardRef, Inject, Injectable, Logger, NotFoundException } from '@nestjs/common';
2
2
  import { InjectDataSource } from '@nestjs/typeorm';
3
3
  import * as fs from 'fs/promises'; // Use the Promise-based version of fs for async/await
4
+ import * as path from 'path';
4
5
  import { DataSource, EntityManager, In, Repository, SelectQueryBuilder } from 'typeorm';
5
6
  import { CreateModelMetadataDto } from '../dtos/create-model-metadata.dto';
6
7
  import { ModelMetadata } from '../entities/model-metadata.entity';
@@ -33,6 +34,7 @@ import { RoleMetadataService } from './role-metadata.service';
33
34
  import { NavigationDto } from 'src/dtos/navigation.dto';
34
35
  import { SolidIntrospectService } from './solid-introspect.service';
35
36
  import { CRUDService } from './crud.service';
37
+ import { SolidTsMorphService } from './solid-ts-morph.service';
36
38
 
37
39
  @Injectable()
38
40
  export class ModelMetadataService {
@@ -54,8 +56,9 @@ export class ModelMetadataService {
54
56
  private readonly roleService: RoleMetadataService,
55
57
  private readonly moduleMetadataHelperService: ModuleMetadataHelperService,
56
58
  readonly introspectService: SolidIntrospectService,
59
+ private readonly solidTsMorphService: SolidTsMorphService,
57
60
 
58
- // No longer used.
61
+ // No longer used.
59
62
  // private readonly generateCodePublihser: GenerateCodePublisherDatabase,
60
63
  ) { }
61
64
 
@@ -225,6 +228,7 @@ export class ModelMetadataService {
225
228
  let userKeyField = null;
226
229
  const listViewLayout = [];
227
230
  const formViewLayout = [];
231
+ const treeViewLayout = [];
228
232
 
229
233
  for (let k = 0; k < fieldsMetadata.length; k++) {
230
234
  const fieldMetadata = fieldsMetadata[k];
@@ -245,6 +249,7 @@ export class ModelMetadataService {
245
249
  }
246
250
  listViewLayout.push({ type: "field", attrs: { name: `${affectedField.name}` } })
247
251
  formViewLayout.push({ type: "field", attrs: { name: `${affectedField.name}` } })
252
+ treeViewLayout.push({ type: "field", attrs: { name: `${affectedField.name}` } })
248
253
 
249
254
  }
250
255
 
@@ -705,48 +710,24 @@ export class ModelMetadataService {
705
710
  await fs.writeFile(filePath, updatedContent);
706
711
  }
707
712
 
708
- // <moduleName>.module.ts | Remove all references and imports of the above files. | Manual (X)
709
- // const moduleFilePath = path.resolve(modulePath, `${dasherize(modelEntity.module.name)}.module.ts`);
710
-
711
- // this.logger.log(`Working on module file ${moduleFilePath}`);
712
- // const project = new Project();
713
- // const sourceFile = project.addSourceFileAtPath(moduleFilePath);
714
-
715
- // // Remove import declarations related to deleted files
716
- // sourceFile.getImportDeclarations().forEach(importDecl => {
717
- // const moduleSpecifier = importDecl.getModuleSpecifierValue();
718
- // const resolvedPath = importDecl.getModuleSpecifierSourceFile()?.getFilePath() || '';
719
- // if (filesToDelete.some(file => resolvedPath.endsWith(file))) {
720
- // importDecl.remove();
721
- // }
722
- // });
723
-
724
- // // Remove identifiers from `@Module` metadata (imports, providers, controllers)
725
- // const moduleDecorator = sourceFile.getFirstDescendantByKind(SyntaxKind.Decorator);
726
- // const objectLiteral = moduleDecorator?.getCallExpression()?.getArguments()?.[0];
727
-
728
- // if (objectLiteral && objectLiteral.getKind() === SyntaxKind.ObjectLiteralExpression) {
729
- // const objectLiteralExpr = objectLiteral.asKindOrThrow(SyntaxKind.ObjectLiteralExpression);
730
-
731
- // for (const propName of ['imports', 'providers', 'controllers', 'exports']) {
732
- // const prop = objectLiteralExpr.getProperty(propName);
733
- // if (prop && prop.getKind() === SyntaxKind.PropertyAssignment) {
734
- // const elements = prop.getFirstDescendantByKind(SyntaxKind.ArrayLiteralExpression);
735
- // elements?.getElements().forEach(el => {
736
- // const text = el.getText();
737
- // if (filesToDelete.some(file => text.toLowerCase().includes(file.split('.')[0]))) {
738
- // // @ts-ignore
739
- // el.remove();
740
- // }
741
- // });
742
- // }
743
- // }
744
- // }
745
-
746
- // // Save changes
747
- // sourceFile.saveSync();
748
-
749
- // Run seeder to reflect the removal.
713
+ // <moduleName>.module.ts | Remove all references and imports of the deleted model files. | Automatic
714
+ if (modulePath) {
715
+ const moduleFilePath = path.resolve(modulePath, `${dasherize(modelEntity.module?.name)}.module.ts`);
716
+ this.logger.log(`Removing model '${modelEntity.singularName}' references from module file: ${moduleFilePath}`);
717
+ try {
718
+ this.solidTsMorphService.begin();
719
+ const modelPathSegment = `/${dasherize(modelEntity.singularName)}.`;
720
+ const { removedIdentifiers } = this.solidTsMorphService.removeImports(
721
+ moduleFilePath,
722
+ spec => spec.includes(modelPathSegment)
723
+ );
724
+ this.solidTsMorphService.removeModuleMembers(moduleFilePath, removedIdentifiers);
725
+ await this.solidTsMorphService.commit();
726
+ } catch (error) {
727
+ this.solidTsMorphService.rollback();
728
+ this.logger.error(`Failed to clean up module file for model '${modelEntity.singularName}':`, error);
729
+ }
730
+ }
750
731
 
751
732
  // - | Drop database table | Removes the database table from the DB, this is a very risky step. Best to review all relations to other models etc and then do this manually | Manual (X)
752
733
 
@@ -818,6 +799,7 @@ export class ModelMetadataService {
818
799
  const metaData = await this.moduleMetadataHelperService.getModuleMetadataConfiguration(filePath);
819
800
 
820
801
  const listViewLayoutFields = [{ type: "field", attrs: { name: `id` } }];
802
+ const treeViewLayoutFields = [{ type: "field", attrs: { name: `id` } }];
821
803
  const formViewLayoutFields = [];
822
804
 
823
805
  for (let i = 0; i < model.fields.length; i++) {
@@ -825,8 +807,9 @@ export class ModelMetadataService {
825
807
  if (field.isSystem) continue;
826
808
  listViewLayoutFields.push({ type: "field", attrs: { name: `${field.name}` } })
827
809
  formViewLayoutFields.push({ type: "field", attrs: { name: `${field.name}` } })
810
+ treeViewLayoutFields.push({ type: "field", attrs: { name: `${field.name}` } })
828
811
  }
829
- this.populateVAMConfigInFileInternal(formViewLayoutFields, model, listViewLayoutFields, metaData);
812
+ this.populateVAMConfigInFileInternal(formViewLayoutFields, model, listViewLayoutFields, treeViewLayoutFields, metaData);
830
813
  // Write the updated object back to the file
831
814
  const updatedContent = JSON.stringify(metaData, null, 2);
832
815
  await fs.writeFile(filePath, updatedContent);
@@ -839,7 +822,7 @@ export class ModelMetadataService {
839
822
  }
840
823
 
841
824
  // Populate the View, Actions and Menus in the config file
842
- private populateVAMConfigInFileInternal(formViewLayoutFields: any[], model: ModelMetadata, listViewLayoutFields: { type: string; attrs: { name: string; }; }[], metaData: any) {
825
+ private populateVAMConfigInFileInternal(formViewLayoutFields: any[], model: ModelMetadata, listViewLayoutFields: { type: string; attrs: { name: string; }; }[], treeViewLayoutFields: { type: string; attrs: { name: string; }; }[], metaData: any) {
843
826
  const column1Fields = [];
844
827
  const column2Fields = [];
845
828
 
@@ -852,7 +835,9 @@ export class ModelMetadataService {
852
835
  }
853
836
  }
854
837
  const actionName = `${model.singularName}-list-action`;
855
- const viewName = `${model.singularName}-list-view`;
838
+ const treeViewActionName = `${model.singularName}-tree-view-action`;
839
+ const listViewName = `${model.singularName}-list-view`;
840
+ const treeViewName = `${model.singularName}-tree-view`;
856
841
  const formViewName = `${model.singularName}-form-view`;
857
842
  const menuName = `${model.singularName}-menu-item`;
858
843
 
@@ -865,7 +850,21 @@ export class ModelMetadataService {
865
850
  customComponent: ``,
866
851
  customIsModal: true,
867
852
  serverEndpoint: "",
868
- viewUserKey: viewName,
853
+ viewUserKey: listViewName,
854
+ moduleUserKey: `${model.module.name}`,
855
+ modelUserKey: `${model.singularName}`
856
+ };
857
+
858
+ const treeViewAction = {
859
+ displayName: `${model.displayName} Tree View Action`,
860
+ name: treeViewActionName,
861
+ type: "solid",
862
+ domain: "",
863
+ context: "",
864
+ customComponent: ``,
865
+ customIsModal: true,
866
+ serverEndpoint: "",
867
+ viewUserKey: treeViewName,
869
868
  moduleUserKey: `${model.module.name}`,
870
869
  modelUserKey: `${model.singularName}`
871
870
  };
@@ -877,11 +876,11 @@ export class ModelMetadataService {
877
876
  actionUserKey: actionName,
878
877
  moduleUserKey: `${model.module.name}`,
879
878
  parentMenuItemUserKey: "",
880
- iconName : ""
879
+ iconName: ""
881
880
  };
882
881
 
883
882
  const modelListview = {
884
- name: viewName,
883
+ name: listViewName,
885
884
  displayName: `${model.displayName}`,
886
885
  type: "list",
887
886
  context: "{}",
@@ -905,6 +904,31 @@ export class ModelMetadataService {
905
904
  }
906
905
  };
907
906
 
907
+ const modelTreeview = {
908
+ name: treeViewName,
909
+ displayName: `${model.displayName}`,
910
+ type: "tree",
911
+ context: "{}",
912
+ moduleUserKey: `${model.module.name}`,
913
+ modelUserKey: `${model.singularName}`,
914
+ layout: {
915
+ type: "tree",
916
+ attrs: {
917
+ pagination: true,
918
+ pageSizeOptions: [
919
+ 10,
920
+ 25,
921
+ 50
922
+ ],
923
+ enableGlobalSearch: true,
924
+ create: true,
925
+ edit: true,
926
+ delete: true
927
+ },
928
+ children: treeViewLayoutFields
929
+ }
930
+ };
931
+
908
932
 
909
933
  const modelFormView = {
910
934
  name: formViewName,
@@ -954,10 +978,18 @@ export class ModelMetadataService {
954
978
  metaData.actions.push(action);
955
979
  }
956
980
 
957
- if (notExists(metaData.views, viewName)) {
981
+ if (notExists(metaData.actions, treeViewActionName)) {
982
+ metaData.actions.push(treeViewAction);
983
+ }
984
+
985
+ if (notExists(metaData.views, listViewName)) {
958
986
  metaData.views.push(modelListview);
959
987
  }
960
988
 
989
+ if (notExists(metaData.views, treeViewName)) {
990
+ metaData.views.push(modelTreeview);
991
+ }
992
+
961
993
  if (notExists(metaData.views, formViewName)) {
962
994
  metaData.views.push(modelFormView);
963
995
  }
@@ -979,6 +1011,14 @@ export class ModelMetadataService {
979
1011
  }
980
1012
  }));
981
1013
 
1014
+ const treeViewLayout = jsonFieldsList.map(field => ({
1015
+ type: "field",
1016
+ attrs: {
1017
+ name: `${field.name}`,
1018
+ isSearchable: true,
1019
+ }
1020
+ }));
1021
+
982
1022
  const formViewLayout = jsonFieldsList.map(field => ({
983
1023
  type: "field",
984
1024
  attrs: {
@@ -1019,6 +1059,26 @@ export class ModelMetadataService {
1019
1059
  children: listViewLayout
1020
1060
  }, null, 3)
1021
1061
  },
1062
+ {
1063
+ name: `${model.singularName}-tree-view`,
1064
+ displayName: `${model.displayName}`,
1065
+ type: 'tree',
1066
+ context: "{}",
1067
+ module: resolvedModule,
1068
+ model: model,
1069
+ layout: JSON.stringify({
1070
+ type: "tree",
1071
+ attrs: {
1072
+ pagination: true,
1073
+ pageSizeOptions: [10, 25, 50],
1074
+ enableGlobalSearch: true,
1075
+ create: true,
1076
+ edit: true,
1077
+ delete: true
1078
+ },
1079
+ children: treeViewLayout
1080
+ }, null, 3)
1081
+ },
1022
1082
  {
1023
1083
  name: `${model.singularName}-form-view`,
1024
1084
  displayName: `${model.displayName}`,
@@ -1067,6 +1127,7 @@ export class ModelMetadataService {
1067
1127
  }
1068
1128
 
1069
1129
  let view = await viewRepo.findOne({ where: { name: `${model.singularName}-list-view` } });
1130
+ let treeView = await viewRepo.findOne({ where: { name: `${model.singularName}-tree-view` } });
1070
1131
 
1071
1132
  const actionData = {
1072
1133
  displayName: `${model.displayName} List Action`,
@@ -1082,13 +1143,33 @@ export class ModelMetadataService {
1082
1143
  model: model
1083
1144
  };
1084
1145
 
1146
+ const treeViewActionData = {
1147
+ displayName: `${model.displayName} Tree View Action`,
1148
+ name: `${model.singularName}-tree-view-action`,
1149
+ type: "solid",
1150
+ domain: "",
1151
+ context: "",
1152
+ customComponent: ``,
1153
+ customIsModal: true,
1154
+ serverEndpoint: "",
1155
+ view: treeView,
1156
+ module: resolvedModule,
1157
+ model: model
1158
+ };
1159
+
1085
1160
  let existingAction = await actionRepo.findOne({ where: { name: actionData.name } });
1161
+ let existingTreeViewAction = await actionRepo.findOne({ where: { name: treeViewActionData.name } });
1086
1162
 
1087
1163
  if (!existingAction) {
1088
1164
  const createdAction = actionRepo.create(actionData);
1089
1165
  existingAction = await actionRepo.save(createdAction);
1090
1166
  }
1091
1167
 
1168
+ if (!existingTreeViewAction) {
1169
+ const createdTreeViewAction = actionRepo.create(treeViewActionData);
1170
+ existingTreeViewAction = await actionRepo.save(createdTreeViewAction);
1171
+ }
1172
+
1092
1173
  const adminRole = await this.roleService.findRoleByName('Admin');
1093
1174
 
1094
1175
  const menuData = {
@@ -1,7 +1,10 @@
1
- import { Injectable } from '@nestjs/common';
1
+ import { Inject, Injectable, Logger } from '@nestjs/common';
2
+ import { CACHE_MANAGER } from '@nestjs/cache-manager';
2
3
  import { ModuleRef } from "@nestjs/core";
3
4
  import { InjectEntityManager } from '@nestjs/typeorm';
5
+ import { Cache } from 'cache-manager';
4
6
  import { CRUDService } from 'src/services/crud.service';
7
+ import { shouldUseCache } from 'src/helpers/cache.helper';
5
8
  import { EntityManager, In } from 'typeorm';
6
9
 
7
10
 
@@ -10,42 +13,92 @@ import { PermissionMetadata } from '../entities/permission-metadata.entity';
10
13
 
11
14
  @Injectable()
12
15
  export class PermissionMetadataService extends CRUDService<PermissionMetadata> {
16
+ private readonly logger = new Logger(PermissionMetadataService.name);
13
17
  constructor(
14
18
  @InjectEntityManager()
15
19
  readonly entityManager: EntityManager,
16
20
  // @InjectRepository(PermissionMetadata, 'default')
17
21
  // readonly repo: Repository<PermissionMetadata>,
18
22
  readonly repo: PermissionMetadataRepository,
19
- readonly moduleRef: ModuleRef
20
-
23
+ readonly moduleRef: ModuleRef,
24
+ @Inject(CACHE_MANAGER) private readonly cacheManager: Cache,
21
25
  ) {
22
26
  super(entityManager, repo, 'permissionMetadata', 'solid-core',moduleRef);
23
27
  }
24
28
 
29
+ private buildPermissionsByRoleCacheKey(roleName: string): string {
30
+ return `permissions:role:${roleName}`;
31
+ }
32
+
33
+ async findAllUsingRoles(roles: string[]): Promise<PermissionMetadata[]> {
34
+ const useCache = shouldUseCache();
35
+ const cached: PermissionMetadata[] = [];
36
+ const uncachedRoles: string[] = [];
25
37
 
26
- findAllUsingRoles(roles: string[]) {
27
- return this.repo.find({
28
- where: {
29
- roles: {
30
- name: In(roles)
38
+ if (useCache) {
39
+ for (const role of roles) {
40
+ const cacheKey = this.buildPermissionsByRoleCacheKey(role);
41
+ const hit = await this.cacheManager.get<PermissionMetadata[]>(cacheKey);
42
+ if (hit) {
43
+ // this.logger.debug(`Cache hit for findAllUsingRoles: key=${cacheKey}`);
44
+ cached.push(...hit);
45
+ } else {
46
+ // this.logger.debug(`Cache miss for findAllUsingRoles: key=${cacheKey}`);
47
+ uncachedRoles.push(role);
31
48
  }
32
- },
33
- relations: {}
49
+ }
50
+ } else {
51
+ uncachedRoles.push(...roles);
52
+ }
53
+
54
+ if (uncachedRoles.length === 0) {
55
+ return cached;
56
+ }
57
+
58
+ const fromDb = await this.repo.find({
59
+ where: { roles: { name: In(uncachedRoles) } },
60
+ relations: { roles: true },
61
+ });
62
+
63
+ if (useCache) {
64
+ for (const role of uncachedRoles) {
65
+ const permsForRole = fromDb.filter(p => p.roles?.some(r => r.name === role));
66
+ await this.cacheManager.set(this.buildPermissionsByRoleCacheKey(role), permsForRole);
67
+ }
68
+ }
69
+
70
+ const seen = new Set<number>();
71
+ return [...cached, ...fromDb].filter(p => {
72
+ if (seen.has(p.id)) return false;
73
+ seen.add(p.id);
74
+ return true;
34
75
  });
35
76
  }
36
77
 
37
- permissionExistsInRole(role: string, permission: string,) {
38
- return this.repo.find({
39
- where: {
40
- name: permission,
41
- roles: {
42
- name: role
43
- }
44
- },
45
- relations: {}
78
+ async permissionExistsInRole(role: string, permission: string): Promise<PermissionMetadata[]> {
79
+ const useCache = shouldUseCache();
80
+ const cacheKey = this.buildPermissionsByRoleCacheKey(role);
81
+
82
+ if (useCache) {
83
+ const hit = await this.cacheManager.get<PermissionMetadata[]>(cacheKey);
84
+ if (hit) {
85
+ // this.logger.debug(`Cache hit for permissionExistsInRole: key=${cacheKey}`);
86
+ return hit.filter(p => p.name === permission);
87
+ }
88
+ // this.logger.debug(`Cache miss for permissionExistsInRole: key=${cacheKey}`);
89
+ }
90
+
91
+ const fromDb = await this.repo.find({
92
+ where: { roles: { name: role } },
93
+ relations: { roles: true },
46
94
  });
95
+
96
+ if (useCache) {
97
+ await this.cacheManager.set(cacheKey, fromDb);
98
+ }
99
+
100
+ return fromDb.filter(p => p.name === permission);
47
101
  }
48
102
 
49
103
  }
50
104
 
51
-
@@ -1,16 +1,11 @@
1
1
  import { Injectable, Logger } from "@nestjs/common";
2
2
  import { DashboardQuestionDataProvider } from "src/decorators/dashboard-question-data-provider.decorator";
3
3
  import { DashboardQuestion } from "src/entities/dashboard-question.entity";
4
- import { IDashboardQuestionDataProvider } from "src/interfaces";
4
+ import { IDashboardQuestionDataProvider, QuestionSqlDataProviderContext } from "src/interfaces";
5
5
  import { EntityManager } from "typeorm";
6
6
  import { SqlExpressionResolverService } from "../sql-expression-resolver.service";
7
7
  import { getKpi, getLabels } from "./helpers";
8
8
 
9
- export interface QuestionSqlDataProviderContext {
10
- // questionSqlDatasetConfig: QuestionSqlDatasetConfig;
11
- // questionId: number;
12
- // question: Question;
13
- }
14
9
 
15
10
  export enum SqlExpressionOperator {
16
11
  EQUALS = '$equals',
@@ -49,7 +44,8 @@ export class ChartJsSqlDataProvider implements IDashboardQuestionDataProvider<Qu
49
44
  return "ChartJsSqlDataProvider";
50
45
  }
51
46
 
52
- async getData(question: DashboardQuestion, expressions?: SqlExpression[], context?: QuestionSqlDataProviderContext): Promise<any> {
47
+ async getData(question: DashboardQuestion, context?: QuestionSqlDataProviderContext): Promise<any> {
48
+ const expressions: SqlExpression[] = context?.expressions || [];
53
49
  // TODO: put some validation to check if the results of each SQL in each dataset returns the same number of rows
54
50
 
55
51
  // This is what we have to return.
@@ -1,19 +1,13 @@
1
1
  import { Injectable } from "@nestjs/common";
2
2
  import { DashboardQuestionDataProvider } from "src/decorators/dashboard-question-data-provider.decorator";
3
3
  import { DashboardQuestion } from "src/entities/dashboard-question.entity";
4
- import { IDashboardQuestionDataProvider } from "src/interfaces";
4
+ import { IDashboardQuestionDataProvider, QuestionSqlDataProviderContext } from "src/interfaces";
5
5
  import { EntityManager } from "typeorm";
6
6
  import { SqlExpressionResolverService } from "../sql-expression-resolver.service";
7
7
  import { Logger } from '@nestjs/common';
8
8
  import { SqlExpression } from "./chartjs-sql-data-provider.service";
9
9
  import { getKpi } from "./helpers";
10
10
 
11
- export interface QuestionSqlDataProviderContext {
12
- // questionSqlDatasetConfig: QuestionSqlDatasetConfig;
13
- // questionId: number;
14
- // question: Question;
15
- }
16
-
17
11
  @DashboardQuestionDataProvider()
18
12
  @Injectable()
19
13
  export class PrimeReactDatatableSqlDataProvider implements IDashboardQuestionDataProvider<QuestionSqlDataProviderContext, any> {
@@ -29,7 +23,9 @@ export class PrimeReactDatatableSqlDataProvider implements IDashboardQuestionDat
29
23
  return "PrimeReactDatatableSqlDataProvider";
30
24
  }
31
25
 
32
- async getData(question: DashboardQuestion, expressions?: SqlExpression[], context?: QuestionSqlDataProviderContext): Promise<any> {
26
+ async getData(question: DashboardQuestion, context?: QuestionSqlDataProviderContext): Promise<any> {
27
+ const expressions: SqlExpression[] = context?.expressions || [];
28
+
33
29
  // TODO: put some validation to check if the results of each SQL in each dataset returns the same number of rows
34
30
 
35
31
  // Check the expected response for prime react data tables to understand what is going on here...
@@ -1,19 +1,13 @@
1
1
  import { Injectable } from "@nestjs/common";
2
2
  import { DashboardQuestionDataProvider } from "src/decorators/dashboard-question-data-provider.decorator";
3
3
  import { DashboardQuestion } from "src/entities/dashboard-question.entity";
4
- import { IDashboardQuestionDataProvider } from "src/interfaces";
4
+ import { IDashboardQuestionDataProvider, QuestionSqlDataProviderContext } from "src/interfaces";
5
5
  import { EntityManager } from "typeorm";
6
6
  import { SqlExpressionResolverService } from "../sql-expression-resolver.service";
7
7
  import { Logger } from '@nestjs/common';
8
8
  import { SqlExpression } from "./chartjs-sql-data-provider.service";
9
9
  import { getKpi } from "./helpers";
10
10
 
11
- export interface QuestionSqlDataProviderContext {
12
- // questionSqlDatasetConfig: QuestionSqlDatasetConfig;
13
- // questionId: number;
14
- // question: Question;
15
- }
16
-
17
11
  @DashboardQuestionDataProvider()
18
12
  @Injectable()
19
13
  export class PrimeReactMeterGroupSqlDataProvider implements IDashboardQuestionDataProvider<QuestionSqlDataProviderContext, any> {
@@ -58,7 +52,9 @@ export class PrimeReactMeterGroupSqlDataProvider implements IDashboardQuestionDa
58
52
  return colors;
59
53
  }
60
54
 
61
- async getData(question: DashboardQuestion, expressions?: SqlExpression[], context?: QuestionSqlDataProviderContext): Promise<any> {
55
+ async getData(question: DashboardQuestion, context?: QuestionSqlDataProviderContext): Promise<any> {
56
+ const expressions: SqlExpression[] = context?.expressions || [];
57
+
62
58
  // TODO: put some validation to check if the results of each SQL in each dataset returns the same number of rows
63
59
 
64
60
  // This is what we have to return.
@@ -7,7 +7,7 @@ import { PollerService } from '../poller.service';
7
7
  import { buildNamespacedQueueName } from './common';
8
8
 
9
9
  export abstract class DatabaseSubscriber<T> implements OnModuleInit, QueueSubscriber<T> {
10
- private readonly logger = new Logger(DatabaseSubscriber.name);
10
+ private _loggerInstance?: Logger;
11
11
  private readonly url: string;
12
12
  private readonly serviceRole: string;
13
13
 
@@ -23,6 +23,17 @@ export abstract class DatabaseSubscriber<T> implements OnModuleInit, QueueSubscr
23
23
  // this.logger.debug(`DatabaseSubscriber instance created with options: ${JSON.stringify(this.options())}`);
24
24
  }
25
25
 
26
+ protected get loggerContext(): string {
27
+ return this.constructor.name;
28
+ }
29
+
30
+ protected get logger(): Logger {
31
+ if (!this._loggerInstance) {
32
+ this._loggerInstance = new Logger(this.loggerContext);
33
+ }
34
+ return this._loggerInstance;
35
+ }
36
+
26
37
  abstract subscribe(message: QueueMessage<T>);
27
38
 
28
39
  abstract options(): QueuesModuleOptions;
@@ -78,9 +89,15 @@ export abstract class DatabaseSubscriber<T> implements OnModuleInit, QueueSubscr
78
89
  const defaultBroker = process.env.QUEUES_DEFAULT_BROKER || 'database';
79
90
  const solidCliRunning = process.env.SOLID_CLI_RUNNING || "false";
80
91
  const queueNameRegex = (process.env.QUEUES_QUEUE_NAME_REGEX_TO_ENABLE || '').trim();
92
+ const roleAllowed = ['both', 'subscriber'].includes(this.serviceRole);
93
+
94
+ if (!roleAllowed) {
95
+ this.logger.log(`DatabaseSubscriber is disabled because QUEUES_SERVICE_ROLE is "${this.serviceRole}". Expected "both" or "subscriber".`);
96
+ return;
97
+ }
81
98
 
82
99
  // we will start subscriber only if the current service role is subscriber.
83
- if (['both', 'subscriber'].includes(this.serviceRole) && defaultBroker === 'database' && solidCliRunning === "false") {
100
+ if (defaultBroker === 'database' && solidCliRunning === "false") {
84
101
  const options = this.options();
85
102
  const queueName = options.queueName;
86
103
 
@@ -23,19 +23,21 @@ export class PublisherFactory<T> {
23
23
  // Register all ISolidDatabaseModules implementations
24
24
  let actualPublisherToUse = this.solidIntrospectionService.getProvider(resolvedPublisherName);
25
25
  if (!actualPublisherToUse) {
26
+ // Relaxed extra check in place to make sure we do not have to refactor old publishers or publishers named without the ____RabbitMq or ____Database convention
27
+ actualPublisherToUse = this.solidIntrospectionService.getProvider(publisherName);
26
28
 
27
29
  // Extra check in place to make sure we do not have to refactor old publishers which have been created earlier.
28
- if (defaultBrokerToUse === 'rabbitmq') {
29
- actualPublisherToUse = this.solidIntrospectionService.getProvider(publisherName);
30
- if (!actualPublisherToUse) {
31
- throw new Error(`Unable to locate publisher with name ${resolvedPublisherName}`);
32
- }
33
- }
30
+ // if (defaultBrokerToUse === 'rabbitmq') {
31
+ // actualPublisherToUse = this.solidIntrospectionService.getProvider(publisherName);
32
+ // }
33
+ }
34
+ if (!actualPublisherToUse) {
35
+ throw new Error(`Unable to locate publisher with name ${resolvedPublisherName}`);
34
36
  }
35
37
 
36
38
  // type safe
37
39
  const typedActualPublisher: QueuePublisher<T> = actualPublisherToUse.instance;
38
- this.logger.debug(`Resolved publisher with name ${actualPublisherToUse.name}, and with options: ${JSON.stringify(typedActualPublisher.options())}`);
40
+ // this.logger.debug(`Resolved publisher with name ${actualPublisherToUse.name}, and with options: ${JSON.stringify(typedActualPublisher.options())}`);
39
41
 
40
42
  return typedActualPublisher.publish(message);
41
43
  }
@@ -34,6 +34,10 @@ export abstract class RabbitMqPublisher<T> implements OnModuleDestroy, QueuePubl
34
34
 
35
35
  abstract options(): QueuesModuleOptions;
36
36
 
37
+ protected shouldPersistToDatabase(): boolean {
38
+ return this.options().persistToDatabase ?? true;
39
+ }
40
+
37
41
  private async ensureConnectionAndChannel(): Promise<amqp.Channel> {
38
42
  if (this.channel) {
39
43
  return this.channel;
@@ -170,7 +174,9 @@ export abstract class RabbitMqPublisher<T> implements OnModuleDestroy, QueuePubl
170
174
  message.messageId = uuidv4();
171
175
 
172
176
  // Save the message to the DB so that we can then change its status in the subscriber...
173
- await this.persistToDatabase(namespacedQueueName, message);
177
+ if (this.shouldPersistToDatabase()) {
178
+ await this.persistToDatabase(namespacedQueueName, message);
179
+ }
174
180
 
175
181
  // wait for the channel to confirm
176
182
  try {
@@ -199,7 +205,7 @@ export abstract class RabbitMqPublisher<T> implements OnModuleDestroy, QueuePubl
199
205
 
200
206
  private async persistToDatabase(queueName: string, message: QueueMessage<T>) {
201
207
 
202
- // TODO: make an entry in the relevant database table, generate a unique id earlier.
208
+ // make an entry in the relevant database table, generate a unique id earlier.
203
209
  try {
204
210
  // 1. resolve the queue first
205
211
  const mqMessageQueue = await this.mqMessageQueueService.resolveQueue(queueName);