@solidxai/core 0.1.6 → 0.1.7

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 (357) 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 +3 -0
  121. package/dist/index.d.ts.map +1 -1
  122. package/dist/index.js +3 -0
  123. package/dist/index.js.map +1 -1
  124. package/dist/interfaces.d.ts +6 -1
  125. package/dist/interfaces.d.ts.map +1 -1
  126. package/dist/interfaces.js.map +1 -1
  127. package/dist/jobs/chatter-queue-options.js +1 -1
  128. package/dist/jobs/chatter-queue-options.js.map +1 -1
  129. package/dist/jobs/chatter-queue-publisher.service.d.ts +9 -9
  130. package/dist/jobs/chatter-queue-publisher.service.d.ts.map +1 -1
  131. package/dist/jobs/chatter-queue-publisher.service.js +5 -5
  132. package/dist/jobs/chatter-queue-publisher.service.js.map +1 -1
  133. package/dist/jobs/chatter-queue-subscriber.service.d.ts +4 -4
  134. package/dist/jobs/chatter-queue-subscriber.service.d.ts.map +1 -1
  135. package/dist/jobs/chatter-queue-subscriber.service.js +11 -11
  136. package/dist/jobs/chatter-queue-subscriber.service.js.map +1 -1
  137. package/dist/jobs/computed-field-evaluation-queue-options.d.ts +2 -0
  138. package/dist/jobs/computed-field-evaluation-queue-options.d.ts.map +1 -1
  139. package/dist/jobs/computed-field-evaluation-queue-options.js +2 -0
  140. package/dist/jobs/computed-field-evaluation-queue-options.js.map +1 -1
  141. package/dist/jobs/database/chatter-queue-options-database.d.ts +8 -0
  142. package/dist/jobs/database/chatter-queue-options-database.d.ts.map +1 -0
  143. package/dist/jobs/database/chatter-queue-options-database.js +10 -0
  144. package/dist/jobs/database/chatter-queue-options-database.js.map +1 -0
  145. package/dist/jobs/database/chatter-queue-publisher-database.service.d.ts +12 -0
  146. package/dist/jobs/database/chatter-queue-publisher-database.service.d.ts.map +1 -0
  147. package/dist/jobs/database/chatter-queue-publisher-database.service.js +39 -0
  148. package/dist/jobs/database/chatter-queue-publisher-database.service.js.map +1 -0
  149. package/dist/jobs/database/chatter-queue-subscriber-database.service.d.ts +19 -0
  150. package/dist/jobs/database/chatter-queue-subscriber-database.service.d.ts.map +1 -0
  151. package/dist/jobs/database/chatter-queue-subscriber-database.service.js +62 -0
  152. package/dist/jobs/database/chatter-queue-subscriber-database.service.js.map +1 -0
  153. package/dist/repository/dashboard-layout.repository.d.ts +12 -0
  154. package/dist/repository/dashboard-layout.repository.d.ts.map +1 -0
  155. package/dist/repository/dashboard-layout.repository.js +34 -0
  156. package/dist/repository/dashboard-layout.repository.js.map +1 -0
  157. package/dist/repository/model-metadata.repository.d.ts +6 -1
  158. package/dist/repository/model-metadata.repository.d.ts.map +1 -1
  159. package/dist/repository/model-metadata.repository.js +41 -2
  160. package/dist/repository/model-metadata.repository.js.map +1 -1
  161. package/dist/seeders/module-metadata-seeder.service.js +4 -4
  162. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  163. package/dist/seeders/seed-data/solid-core-metadata.json +445 -35
  164. package/dist/services/authentication.service.d.ts.map +1 -1
  165. package/dist/services/authentication.service.js +45 -21
  166. package/dist/services/authentication.service.js.map +1 -1
  167. package/dist/services/chatter-message.service.d.ts +4 -4
  168. package/dist/services/chatter-message.service.d.ts.map +1 -1
  169. package/dist/services/chatter-message.service.js +59 -9
  170. package/dist/services/chatter-message.service.js.map +1 -1
  171. package/dist/services/computed-fields/entity/sequence-num-computed-field-provider.d.ts +7 -3
  172. package/dist/services/computed-fields/entity/sequence-num-computed-field-provider.d.ts.map +1 -1
  173. package/dist/services/computed-fields/entity/sequence-num-computed-field-provider.js +61 -22
  174. package/dist/services/computed-fields/entity/sequence-num-computed-field-provider.js.map +1 -1
  175. package/dist/services/crud.service.js +1 -1
  176. package/dist/services/crud.service.js.map +1 -1
  177. package/dist/services/dashboard-layout.service.d.ts +20 -0
  178. package/dist/services/dashboard-layout.service.d.ts.map +1 -0
  179. package/dist/services/dashboard-layout.service.js +120 -0
  180. package/dist/services/dashboard-layout.service.js.map +1 -0
  181. package/dist/services/dashboard-question.service.d.ts +4 -0
  182. package/dist/services/dashboard-question.service.d.ts.map +1 -1
  183. package/dist/services/dashboard-question.service.js +22 -8
  184. package/dist/services/dashboard-question.service.js.map +1 -1
  185. package/dist/services/dashboard.service.d.ts +2 -0
  186. package/dist/services/dashboard.service.d.ts.map +1 -1
  187. package/dist/services/dashboard.service.js +4 -0
  188. package/dist/services/dashboard.service.js.map +1 -1
  189. package/dist/services/model-metadata.service.d.ts +3 -1
  190. package/dist/services/model-metadata.service.d.ts.map +1 -1
  191. package/dist/services/model-metadata.service.js +122 -8
  192. package/dist/services/model-metadata.service.js.map +1 -1
  193. package/dist/services/permission-metadata.service.d.ts +5 -1
  194. package/dist/services/permission-metadata.service.d.ts.map +1 -1
  195. package/dist/services/permission-metadata.service.js +66 -20
  196. package/dist/services/permission-metadata.service.js.map +1 -1
  197. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.d.ts +2 -4
  198. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.d.ts.map +1 -1
  199. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.js +2 -1
  200. package/dist/services/question-data-providers/chartjs-sql-data-provider.service.js.map +1 -1
  201. package/dist/services/question-data-providers/interfaces.d.ts +1 -0
  202. package/dist/services/question-data-providers/interfaces.d.ts.map +1 -0
  203. package/dist/services/question-data-providers/interfaces.js +1 -0
  204. package/dist/services/question-data-providers/interfaces.js.map +1 -0
  205. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.d.ts +2 -5
  206. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.d.ts.map +1 -1
  207. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.js +2 -1
  208. package/dist/services/question-data-providers/prime-react-datatable-sql-data-provider.service.js.map +1 -1
  209. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.d.ts +2 -5
  210. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.d.ts.map +1 -1
  211. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.js +2 -1
  212. package/dist/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.js.map +1 -1
  213. package/dist/services/queues/database-subscriber.service.d.ts +4 -2
  214. package/dist/services/queues/database-subscriber.service.d.ts.map +1 -1
  215. package/dist/services/queues/database-subscriber.service.js +15 -2
  216. package/dist/services/queues/database-subscriber.service.js.map +1 -1
  217. package/dist/services/queues/publisher-factory.service.d.ts.map +1 -1
  218. package/dist/services/queues/publisher-factory.service.js +4 -7
  219. package/dist/services/queues/publisher-factory.service.js.map +1 -1
  220. package/dist/services/queues/rabbitmq-publisher.service.d.ts +1 -0
  221. package/dist/services/queues/rabbitmq-publisher.service.d.ts.map +1 -1
  222. package/dist/services/queues/rabbitmq-publisher.service.js +6 -1
  223. package/dist/services/queues/rabbitmq-publisher.service.js.map +1 -1
  224. package/dist/services/queues/rabbitmq-subscriber.service.d.ts +9 -3
  225. package/dist/services/queues/rabbitmq-subscriber.service.d.ts.map +1 -1
  226. package/dist/services/queues/rabbitmq-subscriber.service.js +93 -10
  227. package/dist/services/queues/rabbitmq-subscriber.service.js.map +1 -1
  228. package/dist/services/request-context.service.d.ts +2 -1
  229. package/dist/services/request-context.service.d.ts.map +1 -1
  230. package/dist/services/request-context.service.js.map +1 -1
  231. package/dist/services/scheduled-job.service.d.ts +6 -1
  232. package/dist/services/scheduled-job.service.d.ts.map +1 -1
  233. package/dist/services/scheduled-job.service.js +26 -2
  234. package/dist/services/scheduled-job.service.js.map +1 -1
  235. package/dist/services/scheduled-jobs/scheduler.interface.d.ts +2 -0
  236. package/dist/services/scheduled-jobs/scheduler.interface.d.ts.map +1 -1
  237. package/dist/services/scheduled-jobs/scheduler.interface.js.map +1 -1
  238. package/dist/services/scheduled-jobs/scheduler.service.d.ts +6 -2
  239. package/dist/services/scheduled-jobs/scheduler.service.d.ts.map +1 -1
  240. package/dist/services/scheduled-jobs/scheduler.service.js +75 -17
  241. package/dist/services/scheduled-jobs/scheduler.service.js.map +1 -1
  242. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.d.ts.map +1 -1
  243. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.js +4 -1
  244. package/dist/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.js.map +1 -1
  245. package/dist/services/solid-introspect.service.d.ts +6 -1
  246. package/dist/services/solid-introspect.service.d.ts.map +1 -1
  247. package/dist/services/solid-introspect.service.js +27 -2
  248. package/dist/services/solid-introspect.service.js.map +1 -1
  249. package/dist/services/solid-ts-morph.service.d.ts +9 -0
  250. package/dist/services/solid-ts-morph.service.d.ts.map +1 -1
  251. package/dist/services/solid-ts-morph.service.js +76 -0
  252. package/dist/services/solid-ts-morph.service.js.map +1 -1
  253. package/dist/solid-core.module.d.ts.map +1 -1
  254. package/dist/solid-core.module.js +16 -0
  255. package/dist/solid-core.module.js.map +1 -1
  256. package/dist/subscribers/audit.subscriber.d.ts +10 -7
  257. package/dist/subscribers/audit.subscriber.d.ts.map +1 -1
  258. package/dist/subscribers/audit.subscriber.js +58 -85
  259. package/dist/subscribers/audit.subscriber.js.map +1 -1
  260. package/dist/subscribers/computed-entity-field.subscriber.js +3 -1
  261. package/dist/subscribers/computed-entity-field.subscriber.js.map +1 -1
  262. package/dist/subscribers/created-by-updated-by.subscriber.d.ts +0 -1
  263. package/dist/subscribers/created-by-updated-by.subscriber.d.ts.map +1 -1
  264. package/dist/subscribers/created-by-updated-by.subscriber.js +3 -13
  265. package/dist/subscribers/created-by-updated-by.subscriber.js.map +1 -1
  266. package/dist/transformers/typeorm/local-date-time-transformer.d.ts +4 -4
  267. package/dist/transformers/typeorm/local-date-time-transformer.d.ts.map +1 -1
  268. package/dist/transformers/typeorm/local-date-time-transformer.js +25 -28
  269. package/dist/transformers/typeorm/local-date-time-transformer.js.map +1 -1
  270. package/dist/winston.logger.d.ts.map +1 -1
  271. package/dist/winston.logger.js +2 -1
  272. package/dist/winston.logger.js.map +1 -1
  273. package/package.json +3 -1
  274. package/sql/default/mariadb/proc_CleanupModelMetadata.sql +153 -0
  275. package/sql/default/mariadb/proc_CleanupModuleMetadata.sql +56 -0
  276. package/sql/default/mysql/proc_CleanupModelMetadata.sql +153 -0
  277. package/sql/default/mysql/proc_CleanupModuleMetadata.sql +56 -0
  278. package/src/controllers/dashboard-layout.controller.ts +106 -0
  279. package/src/controllers/scheduled-job.controller.ts +6 -0
  280. package/src/dtos/create-dashboard-layout.dto.ts +31 -0
  281. package/src/dtos/create-dashboard-variable.dto.ts +4 -0
  282. package/src/dtos/update-dashboard-layout.dto.ts +30 -0
  283. package/src/dtos/update-dashboard-variable.dto.ts +5 -1
  284. package/src/entities/action-metadata.entity.ts +3 -2
  285. package/src/entities/ai-interaction.entity.ts +5 -4
  286. package/src/entities/chatter-message-details.entity.ts +7 -3
  287. package/src/entities/chatter-message.entity.ts +4 -3
  288. package/src/entities/common.entity.ts +2 -2
  289. package/src/entities/dashboard-layout.entity.ts +18 -0
  290. package/src/entities/dashboard-question-sql-dataset-config.entity.ts +5 -4
  291. package/src/entities/dashboard-question.entity.ts +5 -4
  292. package/src/entities/dashboard-variable.entity.ts +9 -4
  293. package/src/entities/dashboard.entity.ts +7 -2
  294. package/src/entities/email-attachment.entity.ts +2 -1
  295. package/src/entities/email-template.entity.ts +1 -1
  296. package/src/entities/export-transaction.entity.ts +2 -1
  297. package/src/entities/field-metadata.entity.ts +2 -2
  298. package/src/entities/import-transaction-error-log.entity.ts +3 -2
  299. package/src/entities/import-transaction.entity.ts +2 -1
  300. package/src/entities/legacy-common.entity.ts +3 -4
  301. package/src/entities/mq-message-queue.entity.ts +8 -8
  302. package/src/entities/mq-message.entity.ts +5 -3
  303. package/src/entities/saved-filters.entity.ts +3 -2
  304. package/src/entities/security-rule.entity.ts +2 -1
  305. package/src/entities/sms-template.entity.ts +1 -1
  306. package/src/entities/user-view-metadata.entity.ts +2 -1
  307. package/src/entities/user.entity.ts +37 -2
  308. package/src/entities/view-metadata.entity.ts +3 -0
  309. package/src/helpers/bootstrap.helper.ts +222 -0
  310. package/src/helpers/cache.helper.ts +5 -0
  311. package/src/helpers/cors.helper.ts +26 -6
  312. package/src/helpers/field-crud-managers/SelectionDynamicFieldCrudManager.ts +9 -6
  313. package/src/helpers/solid-registry.ts +10 -5
  314. package/src/helpers/typeorm-db-helper.ts +26 -0
  315. package/src/index.ts +3 -0
  316. package/src/interfaces.ts +10 -1
  317. package/src/jobs/chatter-queue-options.ts +1 -1
  318. package/src/jobs/chatter-queue-publisher.service.ts +11 -11
  319. package/src/jobs/chatter-queue-subscriber.service.ts +13 -8
  320. package/src/jobs/computed-field-evaluation-queue-options.ts +2 -0
  321. package/src/jobs/database/chatter-queue-options-database.ts +9 -0
  322. package/src/jobs/database/chatter-queue-publisher-database.service.ts +24 -0
  323. package/src/jobs/database/chatter-queue-subscriber-database.service.ts +53 -0
  324. package/src/repository/dashboard-layout.repository.ts +17 -0
  325. package/src/repository/model-metadata.repository.ts +45 -2
  326. package/src/seeders/module-metadata-seeder.service.ts +5 -5
  327. package/src/seeders/seed-data/solid-core-metadata.json +446 -36
  328. package/src/services/authentication.service.ts +47 -24
  329. package/src/services/chatter-message.service.ts +67 -9
  330. package/src/services/computed-fields/entity/sequence-num-computed-field-provider.ts +79 -40
  331. package/src/services/crud.service.ts +1 -1
  332. package/src/services/dashboard-layout.service.ts +111 -0
  333. package/src/services/dashboard-question.service.ts +23 -4
  334. package/src/services/dashboard.service.ts +7 -0
  335. package/src/services/model-metadata.service.ts +131 -50
  336. package/src/services/permission-metadata.service.ts +73 -20
  337. package/src/services/question-data-providers/chartjs-sql-data-provider.service.ts +3 -7
  338. package/src/services/question-data-providers/interfaces.ts +0 -0
  339. package/src/services/question-data-providers/prime-react-datatable-sql-data-provider.service.ts +4 -8
  340. package/src/services/question-data-providers/prime-react-meter-group-sql-data-provider.service.ts +4 -8
  341. package/src/services/queues/database-subscriber.service.ts +19 -2
  342. package/src/services/queues/publisher-factory.service.ts +9 -7
  343. package/src/services/queues/rabbitmq-publisher.service.ts +8 -2
  344. package/src/services/queues/rabbitmq-subscriber.service.ts +139 -11
  345. package/src/services/request-context.service.ts +2 -1
  346. package/src/services/scheduled-job.service.ts +31 -2
  347. package/src/services/scheduled-jobs/scheduler.interface.ts +4 -1
  348. package/src/services/scheduled-jobs/scheduler.service.ts +82 -20
  349. package/src/services/selection-providers/list-of-dashboard-question-providers-selection-provider.service.ts +4 -1
  350. package/src/services/solid-introspect.service.ts +28 -0
  351. package/src/services/solid-ts-morph.service.ts +98 -0
  352. package/src/solid-core.module.ts +21 -2
  353. package/src/subscribers/audit.subscriber.ts +63 -271
  354. package/src/subscribers/computed-entity-field.subscriber.ts +3 -3
  355. package/src/subscribers/created-by-updated-by.subscriber.ts +22 -16
  356. package/src/transformers/typeorm/local-date-time-transformer.ts +41 -33
  357. package/src/winston.logger.ts +2 -1
@@ -6,12 +6,12 @@ import { MqMessageService } from '../services/mq-message.service';
6
6
  import { MqMessageQueueService } from '../services/mq-message-queue.service';
7
7
  import { QueuesModuleOptions } from "../interfaces";
8
8
  import chatterQueueOptions from './chatter-queue-options';
9
- import { ChatterMessagePayload } from './chatter-queue-publisher.service';
9
+ import { AuditQueuePayload } from './chatter-queue-publisher.service';
10
10
  import { ChatterMessageService } from 'src/services/chatter-message.service';
11
11
 
12
12
  @Injectable()
13
- export class ChatterQueueSubscriber extends RabbitMqSubscriber<any> {
14
- private readonly chatterQueueLogger = new Logger(ChatterQueueSubscriber.name);
13
+ export class ChatterQueueSubscriberRabbitmq extends RabbitMqSubscriber<AuditQueuePayload> {
14
+ private readonly chatterLogger = new Logger(ChatterQueueSubscriberRabbitmq.name);
15
15
 
16
16
  constructor(
17
17
  readonly mqMessageService: MqMessageService,
@@ -27,19 +27,24 @@ export class ChatterQueueSubscriber extends RabbitMqSubscriber<any> {
27
27
  }
28
28
  }
29
29
 
30
- async subscribe(message: QueueMessage<ChatterMessagePayload>) {
30
+ async subscribe(message: QueueMessage<AuditQueuePayload>) {
31
31
  const p = message.payload;
32
- this.chatterQueueLogger.debug(`Audit event ${p.eventType} ${p.model}#${p.entityId}`);
32
+ this.chatterLogger.debug(`Audit event ${p.eventType} ${p.modelName}#${p.entityId}`);
33
33
 
34
34
  switch (p.eventType) {
35
35
  case 'insert':
36
- await this.chatterMessageService.postAuditMessageOnInsert(p.after, { name: p.model } as any);
36
+ await this.chatterMessageService.postAuditMessageOnInsert(p.after, p.modelName);
37
37
  break;
38
38
  case 'update':
39
- await this.chatterMessageService.postAuditMessageOnUpdate(p.after, { name: p.model } as any, p.before, (p.diff || []).map(n => ({ propertyName: n })));
39
+ await this.chatterMessageService.postAuditMessageOnUpdate(
40
+ p.after,
41
+ p.modelName,
42
+ p.before,
43
+ (p.updatedColumnNames ?? []).map(n => ({ propertyName: n })),
44
+ );
40
45
  break;
41
46
  case 'delete':
42
- await this.chatterMessageService.postAuditMessageOnDelete(p.before, { name: p.model } as any, p.before);
47
+ await this.chatterMessageService.postAuditMessageOnDelete(p.modelName, p.before);
43
48
  break;
44
49
  }
45
50
  }
@@ -6,4 +6,6 @@ export default {
6
6
  name: QUEUE_NAME,
7
7
  type: BrokerType.RabbitMQ,
8
8
  queueName: QUEUE_NAME,
9
+ prefetch: 10,
10
+ persistToDatabase: false,
9
11
  };
@@ -0,0 +1,9 @@
1
+ import { BrokerType } from "../../interfaces";
2
+
3
+ const QUEUE_NAME = 'solid_chatter_queue_database';
4
+
5
+ export default {
6
+ name: QUEUE_NAME,
7
+ type: BrokerType.Database,
8
+ queueName: QUEUE_NAME,
9
+ };
@@ -0,0 +1,24 @@
1
+ import { Injectable } from '@nestjs/common';
2
+
3
+ import { DatabasePublisher } from 'src/services/queues/database-publisher.service';
4
+ import { MqMessageQueueService } from '../../services/mq-message-queue.service';
5
+ import { MqMessageService } from '../../services/mq-message.service';
6
+ import { QueuesModuleOptions } from "../../interfaces";
7
+ import { AuditQueuePayload } from '../chatter-queue-publisher.service';
8
+ import chatterQueueOptionsDatabase from './chatter-queue-options-database';
9
+
10
+ @Injectable()
11
+ export class ChatterQueuePublisherDatabase extends DatabasePublisher<AuditQueuePayload> {
12
+ constructor(
13
+ protected readonly mqMessageService: MqMessageService,
14
+ protected readonly mqMessageQueueService: MqMessageQueueService,
15
+ ) {
16
+ super(mqMessageService, mqMessageQueueService);
17
+ }
18
+
19
+ options(): QueuesModuleOptions {
20
+ return {
21
+ ...chatterQueueOptionsDatabase
22
+ };
23
+ }
24
+ }
@@ -0,0 +1,53 @@
1
+ import { Injectable, Logger } from '@nestjs/common';
2
+
3
+ import { DatabaseSubscriber } from 'src/services/queues/database-subscriber.service';
4
+ import { QueueMessage } from 'src/interfaces/mq';
5
+ import { MqMessageService } from '../../services/mq-message.service';
6
+ import { MqMessageQueueService } from '../../services/mq-message-queue.service';
7
+ import { QueuesModuleOptions } from "../../interfaces";
8
+ import { PollerService } from 'src/services/poller.service';
9
+ import { AuditQueuePayload } from '../chatter-queue-publisher.service';
10
+ import { ChatterMessageService } from 'src/services/chatter-message.service';
11
+ import chatterQueueOptionsDatabase from './chatter-queue-options-database';
12
+
13
+ @Injectable()
14
+ export class ChatterQueueSubscriberDatabase extends DatabaseSubscriber<AuditQueuePayload> {
15
+ private readonly chatterLogger = new Logger(ChatterQueueSubscriberDatabase.name);
16
+
17
+ constructor(
18
+ readonly mqMessageService: MqMessageService,
19
+ readonly mqMessageQueueService: MqMessageQueueService,
20
+ readonly poller: PollerService,
21
+ private readonly chatterMessageService: ChatterMessageService,
22
+ ) {
23
+ super(mqMessageService, mqMessageQueueService, poller);
24
+ }
25
+
26
+ options(): QueuesModuleOptions {
27
+ return {
28
+ ...chatterQueueOptionsDatabase
29
+ };
30
+ }
31
+
32
+ async subscribe(message: QueueMessage<AuditQueuePayload>) {
33
+ const p = message.payload;
34
+ this.chatterLogger.debug(`Audit event ${p.eventType} ${p.modelName}#${p.entityId}`);
35
+
36
+ switch (p.eventType) {
37
+ case 'insert':
38
+ await this.chatterMessageService.postAuditMessageOnInsert(p.after, p.modelName);
39
+ break;
40
+ case 'update':
41
+ await this.chatterMessageService.postAuditMessageOnUpdate(
42
+ p.after,
43
+ p.modelName,
44
+ p.before,
45
+ (p.updatedColumnNames ?? []).map(n => ({ propertyName: n })),
46
+ );
47
+ break;
48
+ case 'delete':
49
+ await this.chatterMessageService.postAuditMessageOnDelete(p.modelName, p.before);
50
+ break;
51
+ }
52
+ }
53
+ }
@@ -0,0 +1,17 @@
1
+ import { Injectable } from '@nestjs/common';
2
+ import { RequestContextService } from 'src/services/request-context.service';
3
+ import { DataSource } from 'typeorm';
4
+ import { SecurityRuleRepository } from './security-rule.repository';
5
+ import { SolidBaseRepository } from './solid-base.repository';
6
+ import { DashboardLayout } from 'src/entities/dashboard-layout.entity';
7
+
8
+ @Injectable()
9
+ export class DashboardLayoutRepository extends SolidBaseRepository<DashboardLayout> {
10
+ constructor(
11
+ readonly dataSource: DataSource,
12
+ readonly requestContextService: RequestContextService,
13
+ readonly securityRuleRepository: SecurityRuleRepository,
14
+ ) {
15
+ super(DashboardLayout, dataSource, requestContextService, securityRuleRepository);
16
+ }
17
+ }
@@ -1,5 +1,9 @@
1
- import { Injectable } from '@nestjs/common';
1
+ import { CACHE_MANAGER } from '@nestjs/cache-manager';
2
+ import { Inject, Injectable } from '@nestjs/common';
3
+ import { Cache } from 'cache-manager';
4
+ import { createHash } from 'crypto';
2
5
  import { ModelMetadata } from 'src';
6
+ import { shouldUseCache } from 'src/helpers/cache.helper';
3
7
  import { DataSource } from 'typeorm';
4
8
  import { SolidBaseRepository } from './solid-base.repository';
5
9
 
@@ -7,9 +11,48 @@ import { SolidBaseRepository } from './solid-base.repository';
7
11
  export class ModelMetadataRepository extends SolidBaseRepository<ModelMetadata> {
8
12
  constructor(
9
13
  readonly dataSource: DataSource,
14
+ @Inject(CACHE_MANAGER) private readonly cacheManager: Cache,
10
15
  // readonly requestContextService: RequestContextService,
11
16
  // readonly securityRuleRepository: SecurityRuleRepository,
12
17
  ) {
13
18
  super(ModelMetadata, dataSource, null, null);
14
19
  }
15
- }
20
+
21
+ async find(options?: any): Promise<ModelMetadata[]> {
22
+ if (!shouldUseCache()) {
23
+ return super.find(options);
24
+ }
25
+
26
+ const cacheKey = this.buildCacheKey('find', options);
27
+ const cached = await this.cacheManager.get<ModelMetadata[]>(cacheKey);
28
+ if (cached !== undefined) {
29
+ return cached;
30
+ }
31
+
32
+ const result = await super.find(options);
33
+ await this.cacheManager.set(cacheKey, result);
34
+ return result;
35
+ }
36
+
37
+ async findOne(options: any): Promise<ModelMetadata | null> {
38
+ if (!shouldUseCache()) {
39
+ return super.findOne(options);
40
+ }
41
+
42
+ const cacheKey = this.buildCacheKey('findOne', options);
43
+ const cached = await this.cacheManager.get<ModelMetadata | null>(cacheKey);
44
+ if (cached !== undefined) {
45
+ return cached;
46
+ }
47
+
48
+ const result = await super.findOne(options);
49
+ await this.cacheManager.set(cacheKey, result);
50
+ return result;
51
+ }
52
+
53
+ private buildCacheKey(method: 'find' | 'findOne', options: unknown): string {
54
+ const serialized = JSON.stringify(options ?? {});
55
+ const hash = createHash('sha256').update(serialized).digest('hex');
56
+ return `modelMetadataRepo:${method}:${hash}`;
57
+ }
58
+ }
@@ -140,17 +140,17 @@ export class ModuleMetadataSeederService {
140
140
  console.log(`▶ Seeding Metadata for Module: ${moduleMetadata.name}`);
141
141
  this.logger.log(`Seeding Metadata for Module: ${moduleMetadata.name}`);
142
142
 
143
+ currentStep = 'seedMediaStorageProviders';
144
+ this.logger.log(`Seeding Media Storage Providers`);
145
+ const mediaStorageCounts = await this.seedMediaStorageProviders(overallMetadata.mediaStorageProviders);
146
+ console.log(`${this.formatSeedResult(moduleMetadata.name, 'Media Storage Providers', mediaStorageCounts)}`);
147
+
143
148
  // Process module metadata first.
144
149
  currentStep = 'seedModuleModelFields';
145
150
  this.logger.log(`Seeding Module / Model / Fields`);
146
151
  const moduleModelFieldCounts = await this.seedModuleModelFields(moduleMetadata);
147
152
  console.log(`${this.formatSeedResult(moduleMetadata.name, 'Module/Model/Fields', moduleModelFieldCounts)}`);
148
153
 
149
- currentStep = 'seedMediaStorageProviders';
150
- this.logger.log(`Seeding Media Storage Providers`);
151
- const mediaStorageCounts = await this.seedMediaStorageProviders(overallMetadata.mediaStorageProviders);
152
- console.log(`${this.formatSeedResult(moduleMetadata.name, 'Media Storage Providers', mediaStorageCounts)}`);
153
-
154
154
  currentStep = 'seedRoles';
155
155
  this.logger.log(`Seeding Roles`);
156
156
  const roleCounts = await this.seedRoles(overallMetadata);