@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
@@ -1 +1 @@
1
- {"version":3,"file":"security-rule.entity.d.ts","sourceRoot":"","sources":["../../src/entities/security-rule.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAGjE,qBACa,YAAa,SAAQ,YAAY;IAG1C,IAAI,EAAE,MAAM,CAAC;IAGb,WAAW,EAAE,MAAM,CAAC;IAKpB,IAAI,EAAE,YAAY,CAAC;IAKnB,aAAa,EAAE,aAAa,CAAC;IAG7B,kBAAkB,EAAE,GAAG,CAAC;IAGxB,0BAA0B,EAAE,MAAM,CAAC;CACtC"}
1
+ {"version":3,"file":"security-rule.entity.d.ts","sourceRoot":"","sources":["../../src/entities/security-rule.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAIjE,qBACa,YAAa,SAAQ,YAAY;IAG1C,IAAI,EAAE,MAAM,CAAC;IAGb,WAAW,EAAE,MAAM,CAAC;IAKpB,IAAI,EAAE,YAAY,CAAC;IAKnB,aAAa,EAAE,aAAa,CAAC;IAG7B,kBAAkB,EAAE,GAAG,CAAC;IAGxB,0BAA0B,EAAE,MAAM,CAAC;CACtC"}
@@ -15,6 +15,7 @@ const common_entity_1 = require("./common.entity");
15
15
  const model_metadata_entity_1 = require("./model-metadata.entity");
16
16
  const role_metadata_entity_1 = require("./role-metadata.entity");
17
17
  const typeorm_1 = require("typeorm");
18
+ const typeorm_db_helper_1 = require("../helpers/typeorm-db-helper");
18
19
  let SecurityRule = class SecurityRule extends common_entity_1.CommonEntity {
19
20
  static _OPENAPI_METADATA_FACTORY() {
20
21
  return { name: { required: true, type: () => String }, description: { required: true, type: () => String }, role: { required: true, type: () => require("./role-metadata.entity").RoleMetadata }, modelMetadata: { required: true, type: () => require("./model-metadata.entity").ModelMetadata }, securityRuleConfig: { required: true, type: () => Object }, securityRuleConfigProvider: { required: true, type: () => String } };
@@ -43,7 +44,7 @@ __decorate([
43
44
  __metadata("design:type", model_metadata_entity_1.ModelMetadata)
44
45
  ], SecurityRule.prototype, "modelMetadata", void 0);
45
46
  __decorate([
46
- (0, typeorm_1.Column)({ type: "text" }),
47
+ (0, typeorm_1.Column)({ ...(0, typeorm_db_helper_1.getColumnType)('longText'), nullable: true }),
47
48
  __metadata("design:type", Object)
48
49
  ], SecurityRule.prototype, "securityRuleConfig", void 0);
49
50
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"security-rule.entity.js","sourceRoot":"","sources":["../../src/entities/security-rule.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,mDAA0D;AAC1D,mEAAmE;AACnE,iEAAiE;AACjE,qCAAuE;AAGhE,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,4BAAY;;;;CAuB7C,CAAA;AAvBY,oCAAY;AAGrB;IAFC,IAAA,eAAK,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACvB,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;0CACf;AAGb;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;iDACR;AAKpB;IAHC,IAAA,eAAK,GAAE;IACP,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,mCAAY,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClD,IAAA,oBAAU,GAAE;8BACP,mCAAY;0CAAC;AAKnB;IAHC,IAAA,eAAK,GAAE;IACP,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,qCAAa,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACnD,IAAA,oBAAU,GAAE;8BACE,qCAAa;mDAAC;AAG7B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;wDACD;AAGxB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gEACT;uBAtB1B,YAAY;IADxB,IAAA,gBAAM,EAAC,kBAAkB,CAAC;GACd,YAAY,CAuBxB","sourcesContent":["import { CommonEntity } from 'src/entities/common.entity';\nimport { ModelMetadata } from 'src/entities/model-metadata.entity';\nimport { RoleMetadata } from 'src/entities/role-metadata.entity';\nimport { Column, Entity, Index, JoinColumn, ManyToOne } from 'typeorm';\n\n@Entity(\"ss_security_rule\")\nexport class SecurityRule extends CommonEntity {\n @Index({ unique: true })\n @Column({ type: \"varchar\" })\n name: string;\n\n @Column({ type: \"varchar\" })\n description: string;\n\n @Index()\n @ManyToOne(() => RoleMetadata, { nullable: false })\n @JoinColumn()\n role: RoleMetadata;\n\n @Index()\n @ManyToOne(() => ModelMetadata, { nullable: false })\n @JoinColumn()\n modelMetadata: ModelMetadata;\n\n @Column({ type: \"text\" })\n securityRuleConfig: any;\n\n @Column({ type: \"varchar\", nullable: true })\n securityRuleConfigProvider: string;\n}\n"]}
1
+ {"version":3,"file":"security-rule.entity.js","sourceRoot":"","sources":["../../src/entities/security-rule.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,mDAA0D;AAC1D,mEAAmE;AACnE,iEAAiE;AACjE,qCAAuE;AACvE,oEAA8D;AAGvD,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,4BAAY;;;;CAuB7C,CAAA;AAvBY,oCAAY;AAGrB;IAFC,IAAA,eAAK,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACvB,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;0CACf;AAGb;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;iDACR;AAKpB;IAHC,IAAA,eAAK,GAAE;IACP,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,mCAAY,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClD,IAAA,oBAAU,GAAE;8BACP,mCAAY;0CAAC;AAKnB;IAHC,IAAA,eAAK,GAAE;IACP,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,qCAAa,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACnD,IAAA,oBAAU,GAAE;8BACE,qCAAa;mDAAC;AAG7B;IADC,IAAA,gBAAM,EAAC,EAAE,GAAG,IAAA,iCAAa,EAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;wDACjC;AAGxB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gEACT;uBAtB1B,YAAY;IADxB,IAAA,gBAAM,EAAC,kBAAkB,CAAC;GACd,YAAY,CAuBxB","sourcesContent":["import { CommonEntity } from 'src/entities/common.entity';\nimport { ModelMetadata } from 'src/entities/model-metadata.entity';\nimport { RoleMetadata } from 'src/entities/role-metadata.entity';\nimport { Column, Entity, Index, JoinColumn, ManyToOne } from 'typeorm';\nimport { getColumnType } from 'src/helpers/typeorm-db-helper';\n\n@Entity(\"ss_security_rule\")\nexport class SecurityRule extends CommonEntity {\n @Index({ unique: true })\n @Column({ type: \"varchar\" })\n name: string;\n\n @Column({ type: \"varchar\" })\n description: string;\n\n @Index()\n @ManyToOne(() => RoleMetadata, { nullable: false })\n @JoinColumn()\n role: RoleMetadata;\n\n @Index()\n @ManyToOne(() => ModelMetadata, { nullable: false })\n @JoinColumn()\n modelMetadata: ModelMetadata;\n\n @Column({ ...getColumnType('longText'), nullable: true })\n securityRuleConfig: any;\n\n @Column({ type: \"varchar\", nullable: true })\n securityRuleConfigProvider: string;\n}\n"]}
@@ -41,7 +41,7 @@ __decorate([
41
41
  __metadata("design:type", String)
42
42
  ], SmsTemplate.prototype, "smsProviderTemplateId", void 0);
43
43
  __decorate([
44
- (0, typeorm_1.Column)({ name: "description", type: "text", nullable: true }),
44
+ (0, typeorm_1.Column)({ name: "description", nullable: true }),
45
45
  __metadata("design:type", String)
46
46
  ], SmsTemplate.prototype, "description", void 0);
47
47
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"sms-template.entity.js","sourceRoot":"","sources":["../../src/entities/sms-template.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,mDAA0D;AAC1D,qCAAgD;AAGzC,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,4BAAY;IAAtC;;QAaH,WAAM,GAAY,IAAI,CAAC;KAG1B;;8UAHqB,IAAI;;CAGzB,CAAA;AAhBY,kCAAW;AAGpB;IAFC,IAAA,eAAK,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACvB,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAC,CAAC;;yCAC5B;AAEb;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;gDAC9B;AAEpB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCAC7C;AAEb;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACd;AAE9B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDAC1C;AAEpB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;2CACnC;AAEvB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCAC7C;sBAfJ,WAAW;IADvB,IAAA,gBAAM,EAAC,iBAAiB,CAAC;GACb,WAAW,CAgBvB","sourcesContent":["import { CommonEntity } from 'src/entities/common.entity';\nimport { Column, Entity, Index } from 'typeorm';\n\n@Entity(\"ss_sms_template\")\nexport class SmsTemplate extends CommonEntity {\n @Index({ unique: true })\n @Column({ name: \"name\", type: \"varchar\"})\n name: string;\n @Column({ name: \"display_name\", type: \"varchar\" })\n displayName: string;\n @Column({ name: \"body\", type: \"varchar\", nullable: true })\n body: string;\n @Column({ type: \"varchar\", nullable: true })\n smsProviderTemplateId: string;\n @Column({ name: \"description\", type: \"text\", nullable: true })\n description: string;\n @Column({ name: \"active\", nullable: true, default: true })\n active: boolean = true;\n @Column({ name: \"type\", type: \"varchar\", nullable: true })\n type: string;\n}"]}
1
+ {"version":3,"file":"sms-template.entity.js","sourceRoot":"","sources":["../../src/entities/sms-template.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,mDAA0D;AAC1D,qCAAgD;AAGzC,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,4BAAY;IAAtC;;QAaH,WAAM,GAAY,IAAI,CAAC;KAG1B;;8UAHqB,IAAI;;CAGzB,CAAA;AAhBY,kCAAW;AAGpB;IAFC,IAAA,eAAK,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACvB,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAC,CAAC;;yCAC5B;AAEb;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;gDAC9B;AAEpB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCAC7C;AAEb;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0DACd;AAE9B;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDAC5B;AAEpB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;2CACnC;AAEvB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCAC7C;sBAfJ,WAAW;IADvB,IAAA,gBAAM,EAAC,iBAAiB,CAAC;GACb,WAAW,CAgBvB","sourcesContent":["import { CommonEntity } from 'src/entities/common.entity';\nimport { Column, Entity, Index } from 'typeorm';\n\n@Entity(\"ss_sms_template\")\nexport class SmsTemplate extends CommonEntity {\n @Index({ unique: true })\n @Column({ name: \"name\", type: \"varchar\"})\n name: string;\n @Column({ name: \"display_name\", type: \"varchar\" })\n displayName: string;\n @Column({ name: \"body\", type: \"varchar\", nullable: true })\n body: string;\n @Column({ type: \"varchar\", nullable: true })\n smsProviderTemplateId: string;\n @Column({ name: \"description\", nullable: true })\n description: string;\n @Column({ name: \"active\", nullable: true, default: true })\n active: boolean = true;\n @Column({ name: \"type\", type: \"varchar\", nullable: true })\n type: string;\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"user-view-metadata.entity.d.ts","sourceRoot":"","sources":["../../src/entities/user-view-metadata.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAE/C,qBACa,gBAAiB,SAAQ,YAAY;IAI9C,IAAI,EAAE,IAAI,CAAC;IAEX,MAAM,EAAE,GAAG,CAAQ;IAInB,YAAY,EAAE,YAAY,CAAC;CAC9B"}
1
+ {"version":3,"file":"user-view-metadata.entity.d.ts","sourceRoot":"","sources":["../../src/entities/user-view-metadata.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAGzD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAE/C,qBACa,gBAAiB,SAAQ,YAAY;IAI9C,IAAI,EAAE,IAAI,CAAC;IAEX,MAAM,EAAE,GAAG,CAAQ;IAInB,YAAY,EAAE,YAAY,CAAC;CAC9B"}
@@ -13,6 +13,7 @@ exports.UserViewMetadata = void 0;
13
13
  const openapi = require("@nestjs/swagger");
14
14
  const common_entity_1 = require("./common.entity");
15
15
  const typeorm_1 = require("typeorm");
16
+ const typeorm_db_helper_1 = require("../helpers/typeorm-db-helper");
16
17
  const view_metadata_entity_1 = require("./view-metadata.entity");
17
18
  const user_entity_1 = require("./user.entity");
18
19
  let UserViewMetadata = class UserViewMetadata extends common_entity_1.CommonEntity {
@@ -32,7 +33,7 @@ __decorate([
32
33
  __metadata("design:type", user_entity_1.User)
33
34
  ], UserViewMetadata.prototype, "user", void 0);
34
35
  __decorate([
35
- (0, typeorm_1.Column)({ name: "layout", type: "text", nullable: true }),
36
+ (0, typeorm_1.Column)({ name: "layout", nullable: true, ...(0, typeorm_db_helper_1.getColumnType)('longText') }),
36
37
  __metadata("design:type", Object)
37
38
  ], UserViewMetadata.prototype, "layout", void 0);
38
39
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"user-view-metadata.entity.js","sourceRoot":"","sources":["../../src/entities/user-view-metadata.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,mDAAyD;AACzD,qCAAuE;AACvE,iEAAiE;AACjE,+CAA+C;AAGxC,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,4BAAY;IAA3C;;QAMH,WAAM,GAAQ,IAAI,CAAC;KAKtB;;;;CAAA,CAAA;AAXY,4CAAgB;AAIzB;IAHC,IAAA,eAAK,GAAE;IACP,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,kBAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC1C,IAAA,oBAAU,GAAE;8BACP,kBAAI;8CAAC;AAEX;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;gDACtC;AAInB;IAHC,IAAA,eAAK,GAAE;IACP,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,mCAAY,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClD,IAAA,oBAAU,GAAE;8BACC,mCAAY;sDAAC;2BAVlB,gBAAgB;IAD5B,IAAA,gBAAM,EAAC,uBAAuB,CAAC;GACnB,gBAAgB,CAW5B","sourcesContent":["import { CommonEntity } from 'src/entities/common.entity'\nimport { Entity, JoinColumn, ManyToOne, Index, Column } from 'typeorm';\nimport { ViewMetadata } from 'src/entities/view-metadata.entity';\nimport { User } from 'src/entities/user.entity'\n\n@Entity(\"ss_user_view_metadata\")\nexport class UserViewMetadata extends CommonEntity {\n @Index()\n @ManyToOne(() => User, { nullable: false })\n @JoinColumn()\n user: User;\n @Column({ name: \"layout\", type: \"text\", nullable: true })\n layout: any = \"{}\";\n @Index()\n @ManyToOne(() => ViewMetadata, { nullable: false })\n @JoinColumn()\n viewMetadata: ViewMetadata;\n}"]}
1
+ {"version":3,"file":"user-view-metadata.entity.js","sourceRoot":"","sources":["../../src/entities/user-view-metadata.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,mDAAyD;AACzD,qCAAuE;AACvE,oEAA8D;AAC9D,iEAAiE;AACjE,+CAA+C;AAGxC,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,4BAAY;IAA3C;;QAMH,WAAM,GAAQ,IAAI,CAAC;KAKtB;;;;CAAA,CAAA;AAXY,4CAAgB;AAIzB;IAHC,IAAA,eAAK,GAAE;IACP,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,kBAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC1C,IAAA,oBAAU,GAAE;8BACP,kBAAI;8CAAC;AAEX;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAA,iCAAa,EAAC,UAAU,CAAC,EAAE,CAAC;;gDACtD;AAInB;IAHC,IAAA,eAAK,GAAE;IACP,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,mCAAY,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAClD,IAAA,oBAAU,GAAE;8BACC,mCAAY;sDAAC;2BAVlB,gBAAgB;IAD5B,IAAA,gBAAM,EAAC,uBAAuB,CAAC;GACnB,gBAAgB,CAW5B","sourcesContent":["import { CommonEntity } from 'src/entities/common.entity'\nimport { Entity, JoinColumn, ManyToOne, Index, Column } from 'typeorm';\nimport { getColumnType } from 'src/helpers/typeorm-db-helper';\nimport { ViewMetadata } from 'src/entities/view-metadata.entity';\nimport { User } from 'src/entities/user.entity'\n\n@Entity(\"ss_user_view_metadata\")\nexport class UserViewMetadata extends CommonEntity {\n @Index()\n @ManyToOne(() => User, { nullable: false })\n @JoinColumn()\n user: User;\n @Column({ name: \"layout\", nullable: true, ...getColumnType('longText') })\n layout: any = \"{}\";\n @Index()\n @ManyToOne(() => ViewMetadata, { nullable: false })\n @JoinColumn()\n viewMetadata: ViewMetadata;\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"user.entity.d.ts","sourceRoot":"","sources":["../../src/entities/user.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AAGzE,qBAGa,IAAK,SAAQ,YAAY;IAGlC,QAAQ,EAAE,MAAM,CAAC;IAIjB,QAAQ,EAAE,MAAM,CAAC;IAIjB,KAAK,EAAE,MAAM,CAAC;IAId,MAAM,EAAE,MAAM,CAAC;IAGf,QAAQ,EAAE,MAAM,CAAC;IAGjB,mBAAmB,EAAE,OAAO,CAAQ;IAGpC,iBAAiB,EAAE,MAAM,CAAW;IAGpC,UAAU,EAAE,MAAM,CAAC;IAGnB,iBAAiB,EAAE,MAAM,CAAC;IAG1B,QAAQ,EAAE,MAAM,CAAC;IAGjB,oBAAoB,EAAE,MAAM,CAAC;IAG7B,MAAM,EAAE,OAAO,CAAQ;IAGvB,yBAAyB,EAAE,IAAI,CAAC;IAGhC,iCAAiC,EAAE,MAAM,CAAC;IAG1C,0CAA0C,EAAE,IAAI,CAAC;IAGjD,6BAA6B,EAAE,IAAI,CAAC;IAGpC,oCAAoC,EAAE,MAAM,CAAC;IAG7C,6CAA6C,EAAE,IAAI,CAAC;IAGpD,8BAA8B,EAAE,IAAI,CAAC;IAGrC,qCAAqC,EAAE,MAAM,CAAC;IAG9C,8CAA8C,EAAE,IAAI,CAAC;IAGrD,sBAAsB,EAAE,IAAI,CAAC;IAG7B,6BAA6B,EAAE,MAAM,CAAC;IAGtC,sCAAsC,EAAE,IAAI,CAAC;IAG7C,uBAAuB,EAAE,IAAI,CAAC;IAG9B,8BAA8B,EAAE,MAAM,CAAC;IAGvC,uCAAuC,EAAE,IAAI,CAAC;IAG9C,aAAa,EAAE,MAAM,CAAC;IAItB,KAAK,EAAE,YAAY,EAAE,CAAC;IAGtB,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IAGrC,cAAc,EAAE,MAAM,CAAC;IAGvB,qBAAqB,EAAE,MAAM,CAAC;IAG9B,UAAU,EAAE,IAAI,CAAC;IAGjB,mBAAmB,EAAE,MAAM,CAAK;IAEhC,MAAM,EAAE,GAAG,CAAC;CACf"}
1
+ {"version":3,"file":"user.entity.d.ts","sourceRoot":"","sources":["../../src/entities/user.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AAGzE,qBAGa,IAAK,SAAQ,YAAY;IAGlC,QAAQ,EAAE,MAAM,CAAC;IAKjB,QAAQ,EAAE,MAAM,CAAC;IAKjB,KAAK,EAAE,MAAM,CAAC;IAKd,MAAM,EAAE,MAAM,CAAC;IAIf,QAAQ,EAAE,MAAM,CAAC;IAIjB,mBAAmB,EAAE,OAAO,CAAQ;IAIpC,iBAAiB,EAAE,MAAM,CAAW;IAIpC,UAAU,EAAE,MAAM,CAAC;IAInB,iBAAiB,EAAE,MAAM,CAAC;IAI1B,QAAQ,EAAE,MAAM,CAAC;IAIjB,oBAAoB,EAAE,MAAM,CAAC;IAI7B,MAAM,EAAE,OAAO,CAAQ;IAIvB,yBAAyB,EAAE,IAAI,CAAC;IAIhC,iCAAiC,EAAE,MAAM,CAAC;IAI1C,0CAA0C,EAAE,IAAI,CAAC;IAIjD,6BAA6B,EAAE,IAAI,CAAC;IAIpC,oCAAoC,EAAE,MAAM,CAAC;IAI7C,6CAA6C,EAAE,IAAI,CAAC;IAIpD,8BAA8B,EAAE,IAAI,CAAC;IAIrC,qCAAqC,EAAE,MAAM,CAAC;IAI9C,8CAA8C,EAAE,IAAI,CAAC;IAIrD,sBAAsB,EAAE,IAAI,CAAC;IAI7B,6BAA6B,EAAE,MAAM,CAAC;IAItC,sCAAsC,EAAE,IAAI,CAAC;IAI7C,uBAAuB,EAAE,IAAI,CAAC;IAI9B,8BAA8B,EAAE,MAAM,CAAC;IAIvC,uCAAuC,EAAE,IAAI,CAAC;IAI9C,aAAa,EAAE,MAAM,CAAC;IAKtB,KAAK,EAAE,YAAY,EAAE,CAAC;IAItB,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IAIrC,cAAc,EAAE,MAAM,CAAC;IAIvB,qBAAqB,EAAE,MAAM,CAAC;IAI9B,UAAU,EAAE,IAAI,CAAC;IAIjB,mBAAmB,EAAE,MAAM,CAAK;IAGhC,MAAM,EAAE,GAAG,CAAC;CAEf"}
@@ -41,11 +41,13 @@ __decorate([
41
41
  __metadata("design:type", String)
42
42
  ], User.prototype, "username", void 0);
43
43
  __decorate([
44
+ (0, typeorm_1.Index)(),
44
45
  (0, typeorm_1.Column)({ type: "varchar", nullable: true }),
45
46
  (0, class_transformer_1.Expose)(),
46
47
  __metadata("design:type", String)
47
48
  ], User.prototype, "email", void 0);
48
49
  __decorate([
50
+ (0, typeorm_1.Index)(),
49
51
  (0, typeorm_1.Column)({ type: "varchar", nullable: true }),
50
52
  (0, class_transformer_1.Expose)(),
51
53
  __metadata("design:type", String)
@@ -1 +1 @@
1
- {"version":3,"file":"user.entity.js","sourceRoot":"","sources":["../../src/entities/user.entity.ts"],"names":[],"mappings":"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","sourcesContent":["import { CommonEntity } from \"src/entities/common.entity\"\nimport { Entity, Column, Index, JoinTable, ManyToMany, OneToMany, TableInheritance } from \"typeorm\";\nimport { RoleMetadata } from 'src/entities/role-metadata.entity';\nimport { UserViewMetadata } from 'src/entities/user-view-metadata.entity'\nimport { Exclude, Expose } from \"class-transformer\";\n\n@Entity(\"ss_user\")\n@TableInheritance({ column: { type: \"varchar\", name: \"type\", default: \"User\" } })\n@Exclude()\nexport class User extends CommonEntity {\n @Column({ type: \"varchar\", nullable: true })\n @Expose()\n fullName: string;\n @Index({ unique: true })\n @Column({ type: \"varchar\" })\n @Expose()\n username: string;\n // @Index({ unique: true })\n @Column({ type: \"varchar\", nullable: true })\n @Expose()\n email: string;\n // @Index({ unique: true })\n @Column({ type: \"varchar\", nullable: true })\n @Expose()\n mobile: string;\n @Column({ type: \"varchar\", nullable: true })\n // don't send to client\n password: string;\n @Column({ nullable: true, default: true })\n @Expose()\n forcePasswordChange: boolean = true;\n @Column({ type: \"varchar\", default: \"local\" })\n // don't send to client\n lastLoginProvider: string = \"local\";\n @Column({ type: \"varchar\", nullable: true })\n // don't send to client (test)\n accessCode: string;\n @Column({ type: \"varchar\", nullable: true })\n // don't send to client\n googleAccessToken: string;\n @Column({ type: \"varchar\", nullable: true })\n // don't send to client\n googleId: string;\n @Column({ type: \"varchar\", nullable: true })\n // don't send to client\n googleProfilePicture: string;\n @Column({ default: true })\n @Expose()\n active: boolean = true;\n @Column({ nullable: true })\n // don't send to client\n forgotPasswordConfirmedAt: Date;\n @Column({ type: \"varchar\", nullable: true })\n // don't send to client\n verificationTokenOnForgotPassword: string;\n @Column({ nullable: true })\n // don't send to client\n verificationTokenOnForgotPasswordExpiresAt: Date;\n @Column({ nullable: true })\n // don't send to client\n emailVerifiedOnRegistrationAt: Date;\n @Column({ type: \"varchar\", nullable: true })\n // don't send to client\n emailVerificationTokenOnRegistration: string;\n @Column({ nullable: true })\n // don't send to client\n emailVerificationTokenOnRegistrationExpiresAt: Date;\n @Column({ nullable: true })\n // don't send to client\n mobileVerifiedOnRegistrationAt: Date;\n @Column({ type: \"varchar\", nullable: true })\n // don't send to client\n mobileVerificationTokenOnRegistration: string;\n @Column({ nullable: true })\n // don't send to client\n mobileVerificationTokenOnRegistrationExpiresAt: Date;\n @Column({ nullable: true })\n // don't send to client\n emailVerifiedOnLoginAt: Date;\n @Column({ type: \"varchar\", nullable: true })\n // don't send to client\n emailVerificationTokenOnLogin: string;\n @Column({ nullable: true })\n // don't send to client\n emailVerificationTokenOnLoginExpiresAt: Date;\n @Column({ nullable: true })\n // don't send to client\n mobileVerifiedOnLoginAt: Date;\n @Column({ type: \"varchar\", nullable: true })\n // don't send to client\n mobileVerificationTokenOnLogin: string;\n @Column({ nullable: true })\n // don't send to client\n mobileVerificationTokenOnLoginExpiresAt: Date;\n @Column({ type: \"varchar\", nullable: true })\n @Expose()\n customPayload: string;\n @ManyToMany(() => RoleMetadata, roleMetadata => roleMetadata.users, { cascade: true })\n @JoinTable()\n @Expose()\n roles: RoleMetadata[];\n @OneToMany(() => UserViewMetadata, userViewMetadata => userViewMetadata.user, { cascade: true })\n // don't send to client\n userViewMetadata: UserViewMetadata[];\n // dont send to client\n @Column({ type: \"varchar\", default: \"bcrypt\" })\n passwordScheme: string;\n // dont send to client\n @Column({ type: \"int\", default: 1 })\n passwordSchemeVersion: number;\n // dont send to client\n @Column({ nullable: true })\n rehashedAt: Date;\n // dont send to client\n @Column({ type: \"int\", default: 0 })\n failedLoginAttempts: number = 0;\n @Expose()\n _media: any;\n}"]}
1
+ {"version":3,"file":"user.entity.js","sourceRoot":"","sources":["../../src/entities/user.entity.ts"],"names":[],"mappings":"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","sourcesContent":["import { CommonEntity } from \"src/entities/common.entity\"\nimport { Entity, Column, Index, JoinTable, ManyToMany, OneToMany, TableInheritance } from \"typeorm\";\nimport { RoleMetadata } from 'src/entities/role-metadata.entity';\nimport { UserViewMetadata } from 'src/entities/user-view-metadata.entity'\nimport { Exclude, Expose } from \"class-transformer\";\n\n@Entity(\"ss_user\")\n@TableInheritance({ column: { type: \"varchar\", name: \"type\", default: \"User\" } })\n@Exclude()\nexport class User extends CommonEntity {\n @Column({ type: \"varchar\", nullable: true })\n @Expose()\n fullName: string;\n\n @Index({ unique: true })\n @Column({ type: \"varchar\" })\n @Expose()\n username: string;\n\n @Index()\n @Column({ type: \"varchar\", nullable: true })\n @Expose()\n email: string;\n\n @Index()\n @Column({ type: \"varchar\", nullable: true })\n @Expose()\n mobile: string;\n\n @Column({ type: \"varchar\", nullable: true })\n // don't send to client\n password: string;\n\n @Column({ nullable: true, default: true })\n @Expose()\n forcePasswordChange: boolean = true;\n\n @Column({ type: \"varchar\", default: \"local\" })\n // don't send to client\n lastLoginProvider: string = \"local\";\n\n @Column({ type: \"varchar\", nullable: true })\n // don't send to client (test)\n accessCode: string;\n\n @Column({ type: \"varchar\", nullable: true })\n // don't send to client\n googleAccessToken: string;\n\n @Column({ type: \"varchar\", nullable: true })\n // don't send to client\n googleId: string;\n\n @Column({ type: \"varchar\", nullable: true })\n // don't send to client\n googleProfilePicture: string;\n\n @Column({ default: true })\n @Expose()\n active: boolean = true;\n\n @Column({ nullable: true })\n // don't send to client\n forgotPasswordConfirmedAt: Date;\n\n @Column({ type: \"varchar\", nullable: true })\n // don't send to client\n verificationTokenOnForgotPassword: string;\n\n @Column({ nullable: true })\n // don't send to client\n verificationTokenOnForgotPasswordExpiresAt: Date;\n\n @Column({ nullable: true })\n // don't send to client\n emailVerifiedOnRegistrationAt: Date;\n\n @Column({ type: \"varchar\", nullable: true })\n // don't send to client\n emailVerificationTokenOnRegistration: string;\n\n @Column({ nullable: true })\n // don't send to client\n emailVerificationTokenOnRegistrationExpiresAt: Date;\n\n @Column({ nullable: true })\n // don't send to client\n mobileVerifiedOnRegistrationAt: Date;\n\n @Column({ type: \"varchar\", nullable: true })\n // don't send to client\n mobileVerificationTokenOnRegistration: string;\n\n @Column({ nullable: true })\n // don't send to client\n mobileVerificationTokenOnRegistrationExpiresAt: Date;\n\n @Column({ nullable: true })\n // don't send to client\n emailVerifiedOnLoginAt: Date;\n\n @Column({ type: \"varchar\", nullable: true })\n // don't send to client\n emailVerificationTokenOnLogin: string;\n\n @Column({ nullable: true })\n // don't send to client\n emailVerificationTokenOnLoginExpiresAt: Date;\n\n @Column({ nullable: true })\n // don't send to client\n mobileVerifiedOnLoginAt: Date;\n\n @Column({ type: \"varchar\", nullable: true })\n // don't send to client\n mobileVerificationTokenOnLogin: string;\n\n @Column({ nullable: true })\n // don't send to client\n mobileVerificationTokenOnLoginExpiresAt: Date;\n\n @Column({ type: \"varchar\", nullable: true })\n @Expose()\n customPayload: string;\n\n @ManyToMany(() => RoleMetadata, roleMetadata => roleMetadata.users, { cascade: true })\n @JoinTable()\n @Expose()\n roles: RoleMetadata[];\n\n @OneToMany(() => UserViewMetadata, userViewMetadata => userViewMetadata.user, { cascade: true })\n // don't send to client\n userViewMetadata: UserViewMetadata[];\n\n // dont send to client\n @Column({ type: \"varchar\", default: \"bcrypt\" })\n passwordScheme: string;\n\n // dont send to client\n @Column({ type: \"int\", default: 1 })\n passwordSchemeVersion: number;\n\n // dont send to client\n @Column({ nullable: true })\n rehashedAt: Date;\n\n // dont send to client\n @Column({ type: \"int\", default: 0 })\n failedLoginAttempts: number = 0;\n\n @Expose()\n _media: any;\n\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"view-metadata.entity.d.ts","sourceRoot":"","sources":["../../src/entities/view-metadata.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAEzD,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AAEzE,qBACa,YAAa,SAAQ,YAAY;IAG1C,IAAI,EAAE,MAAM,CAAC;IAGb,WAAW,EAAE,MAAM,CAAC;IAGpB,IAAI,EAAE,MAAM,CAAC;IAGb,OAAO,EAAE,GAAG,CAAQ;IAGpB,MAAM,EAAE,GAAG,CAAC;IAKZ,MAAM,EAAE,cAAc,CAAC;IAKvB,KAAK,EAAE,aAAa,CAAC;IAGrB,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;CACxC"}
1
+ {"version":3,"file":"view-metadata.entity.d.ts","sourceRoot":"","sources":["../../src/entities/view-metadata.entity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAGzD,OAAO,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAA;AAEzE,qBACa,YAAa,SAAQ,YAAY;IAG1C,IAAI,EAAE,MAAM,CAAC;IAGb,WAAW,EAAE,MAAM,CAAC;IAGpB,IAAI,EAAE,MAAM,CAAC;IAIb,OAAO,EAAE,GAAG,CAAQ;IAIpB,MAAM,EAAE,GAAG,CAAC;IAKZ,MAAM,EAAE,cAAc,CAAC;IAKvB,KAAK,EAAE,aAAa,CAAC;IAGrB,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;CACxC"}
@@ -1 +1 @@
1
- {"version":3,"file":"view-metadata.entity.js","sourceRoot":"","sources":["../../src/entities/view-metadata.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,mDAAyD;AACzD,qCAAkF;AAClF,qEAAqE;AACrE,mEAAmE;AACnE,2EAAyE;AAGlE,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,4BAAY;IAAvC;;QAYH,YAAO,GAAQ,IAAI,CAAC;KAiBvB;;;;CAAA,CAAA;AA7BY,oCAAY;AAGrB;IAFC,IAAA,eAAK,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACvB,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAC,CAAC;;0CAC5B;AAGb;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;iDAC9B;AAGpB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;0CAC7B;AAGb;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;6CACtB;AAGpB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;4CAC7B;AAKZ;IAHC,IAAA,eAAK,GAAE;IACP,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,uCAAc,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACpD,IAAA,oBAAU,EAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;8BACnC,uCAAc;4CAAC;AAKvB;IAHC,IAAA,eAAK,GAAE;IACP,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,qCAAa,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACnD,IAAA,oBAAU,EAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;8BACpC,qCAAa;2CAAC;AAGrB;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,4CAAgB,EAAE,gBAAgB,CAAC,EAAE,CAAC,gBAAgB,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;sDACnE;uBA5B5B,YAAY;IADxB,IAAA,gBAAM,EAAC,kBAAkB,CAAC;GACd,YAAY,CA6BxB","sourcesContent":["import { CommonEntity } from \"src/entities/common.entity\"\nimport { Entity, Column, ManyToOne, Index, JoinColumn, OneToMany } from \"typeorm\";\nimport { ModuleMetadata } from 'src/entities/module-metadata.entity';\nimport { ModelMetadata } from 'src/entities/model-metadata.entity';\nimport { UserViewMetadata } from 'src/entities/user-view-metadata.entity'\n\n@Entity(\"ss_view_metadata\")\nexport class ViewMetadata extends CommonEntity {\n @Index({ unique: true })\n @Column({ name: \"name\", type: \"varchar\"})\n name: string;\n\n @Column({ name: \"display_name\", type: \"varchar\" })\n displayName: string;\n\n @Column({ name: \"type\", type: \"varchar\" })\n type: string;\n\n @Column({ name: \"context\", type: \"text\" })\n context: any = \"{}\";\n\n @Column({ name: \"layout\", type: \"text\" })\n layout: any;\n\n @Index()\n @ManyToOne(() => ModuleMetadata, { nullable: false })\n @JoinColumn({ referencedColumnName: 'id' })\n module: ModuleMetadata;\n\n @Index()\n @ManyToOne(() => ModelMetadata, { nullable: false })\n @JoinColumn({ referencedColumnName: 'id' })\n model: ModelMetadata;\n\n @OneToMany(() => UserViewMetadata, userViewMetadata => userViewMetadata.viewMetadata, { cascade: true })\n userViewMetadata: UserViewMetadata[];\n}"]}
1
+ {"version":3,"file":"view-metadata.entity.js","sourceRoot":"","sources":["../../src/entities/view-metadata.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,mDAAyD;AACzD,qCAAkF;AAElF,qEAAqE;AACrE,mEAAmE;AACnE,2EAAyE;AAGlE,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,4BAAY;IAAvC;;QAaH,YAAO,GAAQ,IAAI,CAAC;KAkBvB;;;;CAAA,CAAA;AA/BY,oCAAY;AAGrB;IAFC,IAAA,eAAK,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACvB,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAC,CAAC;;0CAC5B;AAGb;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;iDAC9B;AAGpB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;0CAC7B;AAIb;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;6CACtB;AAIpB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;4CAC7B;AAKZ;IAHC,IAAA,eAAK,GAAE;IACP,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,uCAAc,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACpD,IAAA,oBAAU,EAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;8BACnC,uCAAc;4CAAC;AAKvB;IAHC,IAAA,eAAK,GAAE;IACP,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,qCAAa,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACnD,IAAA,oBAAU,EAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;8BACpC,qCAAa;2CAAC;AAGrB;IADC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,4CAAgB,EAAE,gBAAgB,CAAC,EAAE,CAAC,gBAAgB,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;sDACnE;uBA9B5B,YAAY;IADxB,IAAA,gBAAM,EAAC,kBAAkB,CAAC;GACd,YAAY,CA+BxB","sourcesContent":["import { CommonEntity } from \"src/entities/common.entity\"\nimport { Entity, Column, ManyToOne, Index, JoinColumn, OneToMany } from \"typeorm\";\nimport { getColumnType } from 'src/helpers/typeorm-db-helper';\nimport { ModuleMetadata } from 'src/entities/module-metadata.entity';\nimport { ModelMetadata } from 'src/entities/model-metadata.entity';\nimport { UserViewMetadata } from 'src/entities/user-view-metadata.entity'\n\n@Entity(\"ss_view_metadata\")\nexport class ViewMetadata extends CommonEntity {\n @Index({ unique: true })\n @Column({ name: \"name\", type: \"varchar\"})\n name: string;\n\n @Column({ name: \"display_name\", type: \"varchar\" })\n displayName: string;\n\n @Column({ name: \"type\", type: \"varchar\" })\n type: string;\n\n //TODO: To make this truly cross db compatible, we should avoid setting a db type\n @Column({ name: \"context\", type: \"text\" })\n context: any = \"{}\";\n\n //TODO: To make this truly cross db compatible, we should avoid setting a db type\n @Column({ name: \"layout\", type: \"text\" })\n layout: any;\n\n @Index()\n @ManyToOne(() => ModuleMetadata, { nullable: false })\n @JoinColumn({ referencedColumnName: 'id' })\n module: ModuleMetadata;\n\n @Index()\n @ManyToOne(() => ModelMetadata, { nullable: false })\n @JoinColumn({ referencedColumnName: 'id' })\n model: ModelMetadata;\n\n @OneToMany(() => UserViewMetadata, userViewMetadata => userViewMetadata.viewMetadata, { cascade: true })\n userViewMetadata: UserViewMetadata[];\n}"]}
@@ -0,0 +1,14 @@
1
+ import { PermissionsPolicyConfig } from './security.helper';
2
+ export interface SolidSwaggerOptions {
3
+ title?: string;
4
+ description?: string;
5
+ version?: string;
6
+ }
7
+ export interface SolidBootstrapOptions {
8
+ globalPrefix?: string;
9
+ swagger?: SolidSwaggerOptions | false;
10
+ permissionsPolicyOverrides?: Partial<PermissionsPolicyConfig>;
11
+ }
12
+ export declare function bootstrapSolidApp(appModuleFactory: () => Promise<any>, options?: SolidBootstrapOptions): Promise<void>;
13
+ export declare function bootstrapSolidCli(appModuleFactory: () => Promise<any>): Promise<void>;
14
+ //# sourceMappingURL=bootstrap.helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.helper.d.ts","sourceRoot":"","sources":["../../src/helpers/bootstrap.helper.ts"],"names":[],"mappings":"AAYA,OAAO,EAAmE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAyB7H,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IAEpC,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,OAAO,CAAC,EAAE,mBAAmB,GAAG,KAAK,CAAC;IAEtC,0BAA0B,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;CAC/D;AAcD,wBAAsB,iBAAiB,CACrC,gBAAgB,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,EACpC,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,IAAI,CAAC,CAgGf;AAgBD,wBAAsB,iBAAiB,CACrC,gBAAgB,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,GACnC,OAAO,CAAC,IAAI,CAAC,CAwCf"}
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.bootstrapSolidApp = bootstrapSolidApp;
7
+ exports.bootstrapSolidCli = bootstrapSolidCli;
8
+ const common_1 = require("@nestjs/common");
9
+ const core_1 = require("@nestjs/core");
10
+ const swagger_1 = require("@nestjs/swagger");
11
+ const helmet_1 = __importDefault(require("helmet"));
12
+ const qs_1 = __importDefault(require("qs"));
13
+ const fs_1 = require("fs");
14
+ const path_1 = require("path");
15
+ const nest_winston_1 = require("nest-winston");
16
+ const nest_commander_1 = require("nest-commander");
17
+ const wrap_response_interceptor_1 = require("../interceptors/wrap-response.interceptor");
18
+ const cors_helper_1 = require("./cors.helper");
19
+ const security_helper_1 = require("./security.helper");
20
+ const environment_helper_1 = require("./environment.helper");
21
+ function registerGlobalProcessHandlers() {
22
+ process.on('unhandledRejection', (reason, promise) => {
23
+ console.error('Unhandled Rejection at:', promise, 'reason:', reason);
24
+ });
25
+ process.on('uncaughtException', (err) => {
26
+ console.error('Uncaught Exception thrown:', err);
27
+ });
28
+ process.on('warning', (warning) => {
29
+ if (warning.name === 'DeprecationWarning' && (warning.message.includes('client.query()') || warning.message.includes('punycode'))) {
30
+ return;
31
+ }
32
+ console.warn(warning);
33
+ });
34
+ }
35
+ async function bootstrapSolidApp(appModuleFactory, options = {}) {
36
+ registerGlobalProcessHandlers();
37
+ const { globalPrefix = 'api', swagger = {}, permissionsPolicyOverrides = {} } = options;
38
+ const appModule = await appModuleFactory();
39
+ const app = await core_1.NestFactory.create(appModule);
40
+ const apiEnabled = (0, environment_helper_1.parseBooleanEnv)('API_ENABLED', true);
41
+ if (!apiEnabled) {
42
+ await app.init();
43
+ app
44
+ .get(nest_winston_1.WINSTON_MODULE_NEST_PROVIDER)
45
+ .log('API server disabled via API_ENABLED=false. Skipping HTTP listen.', 'Bootstrap');
46
+ return;
47
+ }
48
+ const server = app.getHttpAdapter().getInstance();
49
+ server.get('/', (_req, res) => res.status(200).send('SOLID OK'));
50
+ app.use((0, helmet_1.default)((0, security_helper_1.buildDefaultSecurityHeaderOptions)()));
51
+ app.use((_req, res, next) => {
52
+ res.setHeader('Permissions-Policy', (0, security_helper_1.buildPermissionsPolicyHeader)(permissionsPolicyOverrides));
53
+ next();
54
+ });
55
+ app.useLogger(app.get(nest_winston_1.WINSTON_MODULE_NEST_PROVIDER));
56
+ const port = process.env.PORT || 3000;
57
+ if (globalPrefix) {
58
+ app.setGlobalPrefix(globalPrefix);
59
+ }
60
+ app.use((req, _res, next) => {
61
+ if (req.query) {
62
+ req.query = qs_1.default.parse(req.url.split('?')[1], {
63
+ allowDots: true,
64
+ depth: 20,
65
+ arrayLimit: 100,
66
+ });
67
+ }
68
+ next();
69
+ });
70
+ app.useGlobalPipes(new common_1.ValidationPipe({
71
+ transform: true,
72
+ transformOptions: { enableImplicitConversion: true },
73
+ }));
74
+ if (swagger !== false) {
75
+ const { title = 'Solid Starters', description = 'Solid Starters API', version = '1.0' } = swagger;
76
+ const swaggerConfig = new swagger_1.DocumentBuilder()
77
+ .setTitle(title)
78
+ .setDescription(description)
79
+ .setVersion(version)
80
+ .setExternalDoc('Postman Collection', '/docs-json')
81
+ .addBearerAuth({
82
+ description: 'Please enter token in following format: Bearer <JWT>',
83
+ name: 'Authorization',
84
+ bearerFormat: 'Bearer',
85
+ scheme: 'Bearer',
86
+ type: 'http',
87
+ in: 'Header',
88
+ }, 'jwt')
89
+ .build();
90
+ const document = swagger_1.SwaggerModule.createDocument(app, swaggerConfig);
91
+ swagger_1.SwaggerModule.setup('/docs', app, document);
92
+ }
93
+ app.useGlobalInterceptors(new wrap_response_interceptor_1.WrapResponseInterceptor());
94
+ app.enableCors((0, cors_helper_1.buildDefaultCorsOptions)());
95
+ const types = require('pg').types;
96
+ types.setTypeParser(types.builtins.INT8, (val) => parseInt(val));
97
+ await app.listen(port);
98
+ }
99
+ async function bootstrapSolidCli(appModuleFactory) {
100
+ registerGlobalProcessHandlers();
101
+ process.on('exit', (code) => {
102
+ if (code !== 0) {
103
+ console.error(`Exiting with error status code: ${code}`);
104
+ }
105
+ });
106
+ const packageJsonPath = (0, path_1.resolve)(process.cwd(), 'package.json');
107
+ if (!(0, fs_1.existsSync)(packageJsonPath)) {
108
+ console.error('Does not seem to be a valid solid-api project.');
109
+ console.error('Exit reason: missing package.json in the current directory.');
110
+ process.exit(1);
111
+ }
112
+ const showLogs = process.argv.includes('--verbose') || process.argv.includes('-v');
113
+ for (const flag of ['--verbose', '-v']) {
114
+ const idx = process.argv.indexOf(flag);
115
+ if (idx !== -1)
116
+ process.argv.splice(idx, 1);
117
+ }
118
+ const appModule = await appModuleFactory();
119
+ process.env.SOLID_CLI_RUNNING = 'true';
120
+ const app = await nest_commander_1.CommandFactory.createWithoutRunning(appModule, {
121
+ logger: showLogs ? ['debug', 'error', 'fatal', 'log', 'verbose', 'warn'] : false,
122
+ });
123
+ try {
124
+ await nest_commander_1.CommandFactory.runApplication(app);
125
+ }
126
+ catch (e) {
127
+ console.error('CLI exited abruptly due to an error:', e);
128
+ process.exit(1);
129
+ }
130
+ process.exit(0);
131
+ }
132
+ //# sourceMappingURL=bootstrap.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.helper.js","sourceRoot":"","sources":["../../src/helpers/bootstrap.helper.ts"],"names":[],"mappings":"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","sourcesContent":["import { ValidationPipe } from '@nestjs/common';\nimport { NestFactory } from '@nestjs/core';\nimport { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';\nimport { NextFunction, Request, Response } from 'express';\nimport helmet from 'helmet';\nimport qs from 'qs';\nimport { existsSync } from 'fs';\nimport { resolve } from 'path';\nimport { WINSTON_MODULE_NEST_PROVIDER } from 'nest-winston';\nimport { CommandFactory } from 'nest-commander';\nimport { WrapResponseInterceptor } from '../interceptors/wrap-response.interceptor';\nimport { buildDefaultCorsOptions } from './cors.helper';\nimport { buildDefaultSecurityHeaderOptions, buildPermissionsPolicyHeader, PermissionsPolicyConfig } from './security.helper';\nimport { parseBooleanEnv } from './environment.helper';\n\n// ---- Shared process handlers ----\n\nfunction registerGlobalProcessHandlers() {\n process.on('unhandledRejection', (reason, promise) => {\n console.error('Unhandled Rejection at:', promise, 'reason:', reason);\n });\n\n process.on('uncaughtException', (err) => {\n console.error('Uncaught Exception thrown:', err);\n });\n\n // Suppress pg deprecation warning caused by TypeORM's internal query scheduling\n process.on('warning', (warning) => {\n if (warning.name === 'DeprecationWarning' && (warning.message.includes('client.query()') || warning.message.includes('punycode'))) {\n return;\n }\n console.warn(warning);\n });\n}\n\n// ---- HTTP server bootstrap ----\n\nexport interface SolidSwaggerOptions {\n title?: string;\n description?: string;\n version?: string;\n}\n\nexport interface SolidBootstrapOptions {\n /** Global API prefix. Defaults to 'api'. Set to '' to disable. */\n globalPrefix?: string;\n /** Swagger configuration. Set to false to disable Swagger entirely. */\n swagger?: SolidSwaggerOptions | false;\n /** Permissions-Policy header overrides (merged with defaults). */\n permissionsPolicyOverrides?: Partial<PermissionsPolicyConfig>;\n}\n\n/**\n * Bootstraps a SolidX NestJS HTTP application with sensible defaults:\n * security headers, CORS, Winston logger, ValidationPipe,\n * WrapResponseInterceptor, qs deep query parsing, Swagger, and the\n * pg BIGINT type parser.\n *\n * @example\n * // main.ts\n * bootstrapSolidApp(() => AppModule.forRoot(), {\n * swagger: { title: 'My API', description: 'My API description' },\n * });\n */\nexport async function bootstrapSolidApp(\n appModuleFactory: () => Promise<any>,\n options: SolidBootstrapOptions = {},\n): Promise<void> {\n registerGlobalProcessHandlers();\n\n const { globalPrefix = 'api', swagger = {}, permissionsPolicyOverrides = {} } = options;\n\n const appModule = await appModuleFactory();\n const app = await NestFactory.create(appModule);\n\n const apiEnabled = parseBooleanEnv('API_ENABLED', true);\n\n if (!apiEnabled) {\n await app.init();\n app\n .get(WINSTON_MODULE_NEST_PROVIDER)\n .log('API server disabled via API_ENABLED=false. Skipping HTTP listen.', 'Bootstrap');\n return;\n }\n\n // Health check at root path\n const server = app.getHttpAdapter().getInstance();\n server.get('/', (_req, res) => res.status(200).send('SOLID OK'));\n\n // Security headers\n app.use(helmet(buildDefaultSecurityHeaderOptions()));\n\n // Permissions-Policy header\n app.use((_req: Request, res: Response, next: NextFunction) => {\n res.setHeader('Permissions-Policy', buildPermissionsPolicyHeader(permissionsPolicyOverrides));\n next();\n });\n\n // Winston logger\n app.useLogger(app.get(WINSTON_MODULE_NEST_PROVIDER));\n\n const port = process.env.PORT || 3000;\n\n if (globalPrefix) {\n app.setGlobalPrefix(globalPrefix);\n }\n\n // qs-based deep query parsing (dot notation, nested objects, arrays)\n app.use((req: Request, _res: Response, next: NextFunction) => {\n if (req.query) {\n req.query = qs.parse(req.url.split('?')[1], {\n allowDots: true,\n depth: 20,\n arrayLimit: 100,\n });\n }\n next();\n });\n\n // Global ValidationPipe\n app.useGlobalPipes(\n new ValidationPipe({\n transform: true,\n transformOptions: { enableImplicitConversion: true },\n }),\n );\n\n // Swagger\n if (swagger !== false) {\n const { title = 'Solid Starters', description = 'Solid Starters API', version = '1.0' } = swagger;\n const swaggerConfig = new DocumentBuilder()\n .setTitle(title)\n .setDescription(description)\n .setVersion(version)\n .setExternalDoc('Postman Collection', '/docs-json')\n .addBearerAuth(\n {\n description: 'Please enter token in following format: Bearer <JWT>',\n name: 'Authorization',\n bearerFormat: 'Bearer',\n scheme: 'Bearer',\n type: 'http',\n in: 'Header',\n },\n 'jwt',\n )\n .build();\n const document = SwaggerModule.createDocument(app, swaggerConfig);\n SwaggerModule.setup('/docs', app, document);\n }\n\n // Global interceptor\n app.useGlobalInterceptors(new WrapResponseInterceptor());\n\n // CORS\n app.enableCors(buildDefaultCorsOptions());\n\n // Fix pg returning BIGINT columns as strings\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const types = require('pg').types;\n types.setTypeParser(types.builtins.INT8, (val: string) => parseInt(val));\n\n await app.listen(port);\n}\n\n// ---- CLI bootstrap ----\n\n/**\n * Bootstraps a SolidX NestJS CLI application using nest-commander.\n * Handles verbose flag stripping, project root validation, and clean process exit.\n *\n * @example\n * // main-cli.ts\n * #!/usr/bin/env node\n * import { bootstrapSolidCli } from '@solidxai/core';\n * import { AppModule } from './app.module';\n *\n * bootstrapSolidCli(() => AppModule.forRoot());\n */\nexport async function bootstrapSolidCli(\n appModuleFactory: () => Promise<any>,\n): Promise<void> {\n registerGlobalProcessHandlers();\n\n process.on('exit', (code) => {\n if (code !== 0) {\n console.error(`Exiting with error status code: ${code}`);\n }\n });\n\n // Validate that cwd is a valid Solid API project\n const packageJsonPath = resolve(process.cwd(), 'package.json');\n if (!existsSync(packageJsonPath)) {\n console.error('Does not seem to be a valid solid-api project.');\n console.error('Exit reason: missing package.json in the current directory.');\n process.exit(1);\n }\n\n // Strip --verbose / -v before nest-commander processes argv\n const showLogs = process.argv.includes('--verbose') || process.argv.includes('-v');\n for (const flag of ['--verbose', '-v']) {\n const idx = process.argv.indexOf(flag);\n if (idx !== -1) process.argv.splice(idx, 1);\n }\n\n const appModule = await appModuleFactory();\n process.env.SOLID_CLI_RUNNING = 'true';\n\n // @ts-ignore\n const app = await CommandFactory.createWithoutRunning(appModule, {\n logger: showLogs ? ['debug', 'error', 'fatal', 'log', 'verbose', 'warn'] : false,\n });\n\n try {\n await CommandFactory.runApplication(app);\n } catch (e) {\n console.error('CLI exited abruptly due to an error:', e);\n process.exit(1);\n }\n\n process.exit(0);\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export declare function shouldUseCache(): boolean;
2
+ //# sourceMappingURL=cache.helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.helper.d.ts","sourceRoot":"","sources":["../../src/helpers/cache.helper.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,IAAI,OAAO,CAGxC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.shouldUseCache = shouldUseCache;
4
+ function shouldUseCache() {
5
+ const env = (process.env.ENV ?? process.env.NODE_ENV ?? '').toLowerCase();
6
+ return env === 'prod' || env === 'production';
7
+ }
8
+ //# sourceMappingURL=cache.helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache.helper.js","sourceRoot":"","sources":["../../src/helpers/cache.helper.ts"],"names":[],"mappings":";;AAAA,wCAGC;AAHD,SAAgB,cAAc;IAC5B,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC1E,OAAO,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,YAAY,CAAC;AAChD,CAAC","sourcesContent":["export function shouldUseCache(): boolean {\n const env = (process.env.ENV ?? process.env.NODE_ENV ?? '').toLowerCase();\n return env === 'prod' || env === 'production';\n}\n\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"cors.helper.d.ts","sourceRoot":"","sources":["../../src/helpers/cors.helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAGnC,wBAAgB,uBAAuB,IAAI,WAAW,CA8BrD"}
1
+ {"version":3,"file":"cors.helper.d.ts","sourceRoot":"","sources":["../../src/helpers/cors.helper.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAKnC,wBAAgB,uBAAuB,IAAI,WAAW,CAyCrD"}
@@ -1,8 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buildDefaultCorsOptions = buildDefaultCorsOptions;
4
+ const common_1 = require("@nestjs/common");
5
+ const logger = new common_1.Logger('CorsHelper');
4
6
  function buildDefaultCorsOptions() {
5
7
  const rawOrigins = process.env.SECURITY_CORS_ORIGINS ?? '*';
8
+ logger.log(`CORS allowed origins: ${rawOrigins}`);
6
9
  const allowed = rawOrigins.split(',').map(s => s.trim()).filter(Boolean);
7
10
  const escapeRx = (s) => s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
8
11
  const patternToRegex = (pattern) => {
@@ -16,14 +19,20 @@ function buildDefaultCorsOptions() {
16
19
  return new RegExp(`^${schemePart}${escaped}(?::\\d+)?$`, 'i');
17
20
  };
18
21
  const matchers = allowed.map(patternToRegex);
19
- const isAllowed = (origin) => matchers.length > 0 && matchers.some(rx => rx.test(origin));
22
+ logger.log(`CORS regexes: ${matchers.map(r => r.toString()).join(', ')}`);
20
23
  return {
21
24
  origin: (origin, cb) => {
22
- if (!origin)
25
+ if (!origin) {
26
+ logger.debug('CORS origin callback skipped regex evaluation because origin was empty');
23
27
  return cb(null, true);
24
- if (isAllowed(origin))
28
+ }
29
+ const matchingRegex = matchers.find(rx => rx.test(origin));
30
+ if (matchingRegex) {
31
+ logger.debug(`CORS origin matched: origin=${origin}; regex=${matchingRegex.toString()}`);
25
32
  return cb(null, true);
26
- return cb(new Error(`Origin ${origin} not allowed by CORS`), false);
33
+ }
34
+ logger.debug(`CORS origin did not match any regex: origin=${origin}; regexes=${matchers.map(r => r.toString()).join(', ')}`);
35
+ return cb(new Error(`Origin ${origin} not allowed by CORS. Allowed origins: ${allowed.join(', ')}`), false);
27
36
  },
28
37
  methods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'],
29
38
  allowedHeaders: ['Content-Type', 'Authorization'],
@@ -1 +1 @@
1
- {"version":3,"file":"cors.helper.js","sourceRoot":"","sources":["../../src/helpers/cors.helper.ts"],"names":[],"mappings":";;AAGA,0DA8BC;AA9BD,SAAgB,uBAAuB;IACrC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,GAAG,CAAC;IAE5D,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEzE,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IACzE,MAAM,cAAc,GAAG,CAAC,OAAe,EAAU,EAAE;QACjD,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;QACpD,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,OAAO,CAAC;QACxD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;aAC9B,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;aAC5B,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC3B,OAAO,IAAI,MAAM,CAAC,IAAI,UAAU,GAAG,OAAO,aAAa,EAAE,GAAG,CAAC,CAAC;IAChE,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC7C,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,EAAE,CACnC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAE9D,OAAO;QACL,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;YACrB,IAAI,CAAC,MAAM;gBAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACnC,IAAI,SAAS,CAAC,MAAM,CAAC;gBAAE,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC7C,OAAO,EAAE,CAAC,IAAI,KAAK,CAAC,UAAU,MAAM,sBAAsB,CAAC,EAAE,KAAK,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC;QAC7D,cAAc,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;QACjD,WAAW,EAAE,IAAI;KAClB,CAAC;AACJ,CAAC","sourcesContent":["import { CorsOptions } from 'cors';\n\n/** Build CorsOptions from env; supports wildcards like https://*.example.com */\nexport function buildDefaultCorsOptions(): CorsOptions {\n const rawOrigins = process.env.SECURITY_CORS_ORIGINS ?? '*';\n\n const allowed = rawOrigins.split(',').map(s => s.trim()).filter(Boolean);\n\n const escapeRx = (s: string) => s.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n const patternToRegex = (pattern: string): RegExp => {\n const hasScheme = /^https?:\\/\\//i.test(pattern);\n const schemePart = hasScheme ? '' : 'https?:\\\\/\\\\/';\n if (pattern === '*' || pattern === '.*') return /^.*$/i;\n const escaped = escapeRx(pattern)\n .replace(/^https?:\\/\\//i, '') // strip scheme if present\n .replace(/\\*/g, '[^.]+'); // * => one subdomain segment\n return new RegExp(`^${schemePart}${escaped}(?::\\\\d+)?$`, 'i');\n };\n\n const matchers = allowed.map(patternToRegex);\n const isAllowed = (origin: string) =>\n matchers.length > 0 && matchers.some(rx => rx.test(origin));\n\n return {\n origin: (origin, cb) => {\n if (!origin) return cb(null, true); // allow no-origin (CLI/mobile/internal)\n if (isAllowed(origin)) return cb(null, true);\n return cb(new Error(`Origin ${origin} not allowed by CORS`), false);\n },\n methods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'],\n allowedHeaders: ['Content-Type', 'Authorization'],\n credentials: true,\n };\n}"]}
1
+ {"version":3,"file":"cors.helper.js","sourceRoot":"","sources":["../../src/helpers/cors.helper.ts"],"names":[],"mappings":";;AAMA,0DAyCC;AA/CD,2CAAwC;AAGxC,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,YAAY,CAAC,CAAC;AAGxC,SAAgB,uBAAuB;IACrC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,GAAG,CAAC;IAC5D,MAAM,CAAC,GAAG,CAAC,yBAAyB,UAAU,EAAE,CAAC,CAAC;IAElD,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEzE,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IACzE,MAAM,cAAc,GAAG,CAAC,OAAe,EAAU,EAAE;QACjD,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC;QACpD,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,OAAO,CAAC;QACxD,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;aAC9B,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;aAC5B,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC3B,OAAO,IAAI,MAAM,CAAC,IAAI,UAAU,GAAG,OAAO,aAAa,EAAE,GAAG,CAAC,CAAC;IAChE,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC7C,MAAM,CAAC,GAAG,CAAC,iBAAiB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE1E,OAAO;QACL,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;YACrB,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,CAAC,KAAK,CAAC,wEAAwE,CAAC,CAAC;gBAEvF,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACxB,CAAC;YAED,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YAC3D,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,CAAC,KAAK,CAAC,+BAA+B,MAAM,WAAW,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACzF,OAAO,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACxB,CAAC;YAED,MAAM,CAAC,KAAK,CAAC,+CAA+C,MAAM,aAAa,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7H,OAAO,EAAE,CAAC,IAAI,KAAK,CAAC,UAAU,MAAM,0CAA0C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QAC9G,CAAC;QACD,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC;QAC7D,cAAc,EAAE,CAAC,cAAc,EAAE,eAAe,CAAC;QACjD,WAAW,EAAE,IAAI;KAClB,CAAC;AACJ,CAAC","sourcesContent":["import { Logger } from '@nestjs/common';\nimport { CorsOptions } from 'cors';\n\nconst logger = new Logger('CorsHelper');\n\n/** Build CorsOptions from env; supports wildcards like https://*.example.com */\nexport function buildDefaultCorsOptions(): CorsOptions {\n const rawOrigins = process.env.SECURITY_CORS_ORIGINS ?? '*';\n logger.log(`CORS allowed origins: ${rawOrigins}`);\n\n const allowed = rawOrigins.split(',').map(s => s.trim()).filter(Boolean);\n\n const escapeRx = (s: string) => s.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n const patternToRegex = (pattern: string): RegExp => {\n const hasScheme = /^https?:\\/\\//i.test(pattern);\n const schemePart = hasScheme ? '' : 'https?:\\\\/\\\\/';\n if (pattern === '*' || pattern === '.*') return /^.*$/i;\n const escaped = escapeRx(pattern)\n .replace(/^https?:\\/\\//i, '') // strip scheme if present\n .replace(/\\*/g, '[^.]+'); // * => one subdomain segment\n return new RegExp(`^${schemePart}${escaped}(?::\\\\d+)?$`, 'i');\n };\n\n const matchers = allowed.map(patternToRegex);\n logger.log(`CORS regexes: ${matchers.map(r => r.toString()).join(', ')}`);\n\n return {\n origin: (origin, cb) => {\n if (!origin) {\n logger.debug('CORS origin callback skipped regex evaluation because origin was empty');\n // allow no-origin (CLI/mobile/internal)\n return cb(null, true);\n }\n\n const matchingRegex = matchers.find(rx => rx.test(origin));\n if (matchingRegex) {\n logger.debug(`CORS origin matched: origin=${origin}; regex=${matchingRegex.toString()}`);\n return cb(null, true);\n }\n\n logger.debug(`CORS origin did not match any regex: origin=${origin}; regexes=${matchers.map(r => r.toString()).join(', ')}`);\n return cb(new Error(`Origin ${origin} not allowed by CORS. Allowed origins: ${allowed.join(', ')}`), false);\n },\n methods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'OPTIONS'],\n allowedHeaders: ['Content-Type', 'Authorization'],\n credentials: true,\n };\n}\n\n\n// [2026-04-07T08:27:19.943Z] INFO: CORS allowed origins: leadyatra.indusindnipponlife.com\n// [2026-04-07T08:27:19.944Z] INFO: CORS regexes: /^https?:\\/\\/leadyatra\\.indusindnipponlife\\.com(?::\\d+)?$/i\n// [2026-04-07T08:27:19.947Z] DEBUG: Mounting ClsMiddleware to *\n// [2026-04-07T08:27:19.950Z] INFO: CityMasterController {/api/city-master}:\n"]}
@@ -1,11 +1,11 @@
1
1
  import { DiscoveryService } from "@nestjs/core";
2
2
  import { SelectionValueType } from "src/dtos/create-field-metadata.dto";
3
- import { FieldCrudManager, ValidationError } from "src/interfaces";
3
+ import { FieldCrudManager, ISelectionProviderContext, ValidationError } from "src/interfaces";
4
4
  export interface SelectionDynamicFieldOptions {
5
5
  selectionDynamicProvider: string;
6
6
  selectionValueType: SelectionValueType;
7
7
  required: boolean | undefined | null;
8
- selectionDynamicProviderCtxt: any;
8
+ selectionDynamicProviderCtxt: ISelectionProviderContext;
9
9
  fieldName: string;
10
10
  discoveryService: DiscoveryService;
11
11
  isMultiSelect: boolean | undefined | null;
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionDynamicFieldCrudManager.d.ts","sourceRoot":"","sources":["../../../src/helpers/field-crud-managers/SelectionDynamicFieldCrudManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAiD,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAElH,MAAM,WAAW,4BAA4B;IACzC,wBAAwB,EAAE,MAAM,CAAC;IACjC,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IACrC,4BAA4B,EAAE,GAAG,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,aAAa,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;CAC7C;AAED,qBAAa,gCAAiC,YAAW,gBAAgB;IAEzD,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,4BAA4B;IAG5D,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAoCpD,OAAO,CAAC,qBAAqB;YAkBf,gBAAgB;YAUhB,sBAAsB;IAQpC,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG;IAKjC,OAAO,CAAC,yBAAyB;YAWnB,qBAAqB;IAkBnC,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,yBAAyB;CAGpC"}
1
+ {"version":3,"file":"SelectionDynamicFieldCrudManager.d.ts","sourceRoot":"","sources":["../../../src/helpers/field-crud-managers/SelectionDynamicFieldCrudManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAsB,yBAAyB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAElH,MAAM,WAAW,4BAA4B;IACzC,wBAAwB,EAAE,MAAM,CAAC;IACjC,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;IACrC,4BAA4B,EAAE,yBAAyB,CAAC;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,aAAa,EAAE,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;CAC7C;AAED,qBAAa,gCAAiC,YAAW,gBAAgB;IAEzD,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,4BAA4B;IAG5D,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAoCpD,OAAO,CAAC,qBAAqB;YAkBf,gBAAgB;YAUhB,sBAAsB;IAWpC,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG;IAKjC,OAAO,CAAC,yBAAyB;YAWnB,qBAAqB;IAkBnC,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,yBAAyB;CAGpC"}
@@ -62,8 +62,11 @@ class SelectionDynamicFieldCrudManager {
62
62
  async applyFormatValidations(fieldValue) {
63
63
  const errors = [];
64
64
  !this.isValidSelectionValueType(fieldValue, this.options.selectionValueType) ? errors.push({ field: this.options.fieldName, error: 'Field value type is invalid' }) : "no errors";
65
- const _isValidSelectionValue = await this.isValidSelectionValue(fieldValue, this.options.selectionDynamicProvider);
66
- !_isValidSelectionValue ? errors.push({ field: this.options.fieldName, error: 'Field value is invalid' }) : "no errors";
65
+ const ctxt = this.options.selectionDynamicProviderCtxt;
66
+ if (ctxt.validateOnSave !== false) {
67
+ const _isValidSelectionValue = await this.isValidSelectionValue(fieldValue, this.options.selectionDynamicProvider, ctxt);
68
+ !_isValidSelectionValue ? errors.push({ field: this.options.fieldName, error: 'Field value is invalid' }) : "no errors";
69
+ }
67
70
  return errors;
68
71
  }
69
72
  transformForCreate(dto) {
@@ -79,17 +82,17 @@ class SelectionDynamicFieldCrudManager {
79
82
  throw new Error(`Validation for selection value type ${selectionValueType} is not implemented`);
80
83
  }
81
84
  }
82
- async isValidSelectionValue(fieldValue, selectionDynamicProvider) {
85
+ async isValidSelectionValue(fieldValue, selectionDynamicProvider, ctxt) {
83
86
  const providerInstance = this.providerInstance(selectionDynamicProvider);
84
87
  try {
85
- const valueOption = await providerInstance.value(fieldValue, JSON.parse(this.options.selectionDynamicProviderCtxt));
88
+ const valueOption = await providerInstance.value(fieldValue, ctxt);
86
89
  if (valueOption && valueOption.value === fieldValue) {
87
90
  return true;
88
91
  }
89
92
  return false;
90
93
  }
91
94
  catch (error) {
92
- const values = await providerInstance.values('', JSON.parse(this.options.selectionDynamicProviderCtxt));
95
+ const values = await providerInstance.values('', ctxt);
93
96
  const isValid = values.some(v => v.value === fieldValue);
94
97
  return isValid;
95
98
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionDynamicFieldCrudManager.js","sourceRoot":"","sources":["../../../src/helpers/field-crud-managers/SelectionDynamicFieldCrudManager.ts"],"names":[],"mappings":"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","sourcesContent":["import { DiscoveryService } from \"@nestjs/core\";\nimport { isEmpty, isInt, isNotEmpty, isString } from \"class-validator\";\nimport { SelectionValueType } from \"src/dtos/create-field-metadata.dto\";\nimport { FieldCrudManager, ISelectionProvider, ISelectionProviderContext, ValidationError } from \"src/interfaces\";\n\nexport interface SelectionDynamicFieldOptions {\n selectionDynamicProvider: string;\n selectionValueType: SelectionValueType;\n required: boolean | undefined | null;\n selectionDynamicProviderCtxt: any;\n fieldName: string;\n discoveryService: DiscoveryService;\n isMultiSelect: boolean | undefined | null;\n}\n\nexport class SelectionDynamicFieldCrudManager implements FieldCrudManager {\n\n constructor(private readonly options: SelectionDynamicFieldOptions) {\n }\n\n async validate(dto: any): Promise<ValidationError[]> {\n const fieldValue: any = dto[this.options.fieldName];\n // return this.applyValidations(fieldValue);\n const isMultiSelect = this.options?.isMultiSelect;\n if (isMultiSelect && fieldValue) {\n const arrayCheck = this.parseAndValidateArray(fieldValue);\n\n if (!arrayCheck.isValid) {\n return [\n {\n field: this.options.fieldName,\n error: `Field: ${this.options.fieldName} must be a valid array`,\n },\n ];\n }\n\n const values = arrayCheck.values;\n\n if (this.isApplyRequiredValidation() && values.length === 0) {\n return [\n {\n field: this.options.fieldName,\n error: `Field: ${this.options.fieldName} is required`,\n },\n ];\n }\n\n // Apply validations to each value\n const allErrors = await Promise.all(values.map((val) => this.applyValidations(val)));\n return allErrors.flat();\n } else {\n // For non-multi-select, apply validations to the single field value\n return this.applyValidations(fieldValue);\n }\n }\n\n private parseAndValidateArray(fieldValue: any): { isValid: boolean; values: any[] } {\n if (Array.isArray(fieldValue)) {\n return { isValid: true, values: fieldValue };\n }\n\n try {\n const parsed = typeof fieldValue === 'string' ? JSON.parse(fieldValue) : null;\n if (Array.isArray(parsed)) {\n return { isValid: true, values: parsed };\n }\n } catch {\n // fall through\n }\n\n return { isValid: false, values: [] };\n }\n\n\n private async applyValidations(fieldValue: any): Promise<ValidationError[]> {\n const errors: ValidationError[] = [];\n this.isApplyRequiredValidation() && isEmpty(fieldValue) ? errors.push({ field: this.options.fieldName, error: `Field: ${this.options.fieldName} is required` }) : \"no errors\";\n if (isNotEmpty(fieldValue)) {\n const formatErrors = await this.applyFormatValidations(fieldValue);\n errors.push(...formatErrors);\n }\n return errors;\n }\n\n private async applyFormatValidations(fieldValue: any): Promise<ValidationError[]> {\n const errors: ValidationError[] = [];\n !this.isValidSelectionValueType(fieldValue, this.options.selectionValueType) ? errors.push({ field: this.options.fieldName, error: 'Field value type is invalid' }) : \"no errors\";\n const _isValidSelectionValue = await this.isValidSelectionValue(fieldValue, this.options.selectionDynamicProvider)\n !_isValidSelectionValue ? errors.push({ field: this.options.fieldName, error: 'Field value is invalid' }) : \"no errors\";\n return errors;\n }\n\n transformForCreate(dto: any): any {\n return dto;\n }\n\n // Validation to be applied\n private isValidSelectionValueType(fieldValue: any, selectionValueType: SelectionValueType): boolean {\n switch (selectionValueType) {\n case SelectionValueType.string:\n return isString(fieldValue);\n case SelectionValueType.int:\n return isInt(fieldValue);\n default:\n throw new Error(`Validation for selection value type ${selectionValueType} is not implemented`);\n }\n }\n\n private async isValidSelectionValue(fieldValue: any, selectionDynamicProvider: string): Promise<boolean> {\n const providerInstance = this.providerInstance<any>(selectionDynamicProvider);\n try {\n // Use the value method first\n const valueOption = await providerInstance.value(fieldValue, JSON.parse(this.options.selectionDynamicProviderCtxt));\n if (valueOption && valueOption.value === fieldValue) {\n return true;\n }\n return false;\n }\n catch (error) {\n // Use the values method as a fallback, if the value method is not implemented\n const values = await providerInstance.values('', JSON.parse(this.options.selectionDynamicProviderCtxt));\n const isValid = values.some(v => v.value === fieldValue);\n return isValid;\n }\n }\n\n private providerInstance<T extends ISelectionProviderContext>(selectionDynamicProvider: string): ISelectionProvider<T> {\n const provider = this.options.discoveryService\n .getProviders()\n .filter((provider) => provider.name === selectionDynamicProvider)\n .pop();\n if (!provider) {\n throw new Error(`Provider for ${selectionDynamicProvider} not found`);\n }\n return provider.instance as ISelectionProvider<T>;\n }\n\n private isApplyRequiredValidation(): boolean {\n return this.options.required;\n }\n}"]}
1
+ {"version":3,"file":"SelectionDynamicFieldCrudManager.js","sourceRoot":"","sources":["../../../src/helpers/field-crud-managers/SelectionDynamicFieldCrudManager.ts"],"names":[],"mappings":";;;AACA,qDAAuE;AACvE,oFAAwE;AAaxE,MAAa,gCAAgC;IAEzC,YAA6B,OAAqC;QAArC,YAAO,GAAP,OAAO,CAA8B;IAClE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAQ;QACnB,MAAM,UAAU,GAAQ,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEpD,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC;QAClD,IAAI,aAAa,IAAI,UAAU,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;YAE1D,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBACtB,OAAO;oBACH;wBACI,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;wBAC7B,KAAK,EAAE,UAAU,IAAI,CAAC,OAAO,CAAC,SAAS,wBAAwB;qBAClE;iBACJ,CAAC;YACN,CAAC;YAED,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;YAEjC,IAAI,IAAI,CAAC,yBAAyB,EAAE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC1D,OAAO;oBACH;wBACI,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;wBAC7B,KAAK,EAAE,UAAU,IAAI,CAAC,OAAO,CAAC,SAAS,cAAc;qBACxD;iBACJ,CAAC;YACN,CAAC;YAGD,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACrF,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC;QAC5B,CAAC;aAAM,CAAC;YAEJ,OAAO,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAC7C,CAAC;IACL,CAAC;IAEO,qBAAqB,CAAC,UAAe;QACzC,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QACjD,CAAC;QAED,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC9E,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACxB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;YAC7C,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;QAET,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC1C,CAAC;IAGO,KAAK,CAAC,gBAAgB,CAAC,UAAe;QAC1C,MAAM,MAAM,GAAsB,EAAE,CAAC;QACrC,IAAI,CAAC,yBAAyB,EAAE,IAAI,IAAA,yBAAO,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,UAAU,IAAI,CAAC,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QAC9K,IAAI,IAAA,4BAAU,EAAC,UAAU,CAAC,EAAE,CAAC;YACzB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;YACnE,MAAM,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,UAAe;QAChD,MAAM,MAAM,GAAsB,EAAE,CAAC;QACrC,CAAC,IAAI,CAAC,yBAAyB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QAClL,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,4BAA4B,CAAC;QACvD,IAAI,IAAI,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;YAChC,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;YACzH,CAAC,sBAAsB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QAC5H,CAAC;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,kBAAkB,CAAC,GAAQ;QACvB,OAAO,GAAG,CAAC;IACf,CAAC;IAGO,yBAAyB,CAAC,UAAe,EAAE,kBAAsC;QACrF,QAAQ,kBAAkB,EAAE,CAAC;YACzB,KAAK,8CAAkB,CAAC,MAAM;gBAC1B,OAAO,IAAA,0BAAQ,EAAC,UAAU,CAAC,CAAC;YAChC,KAAK,8CAAkB,CAAC,GAAG;gBACvB,OAAO,IAAA,uBAAK,EAAC,UAAU,CAAC,CAAC;YAC7B;gBACI,MAAM,IAAI,KAAK,CAAC,uCAAuC,kBAAkB,qBAAqB,CAAC,CAAC;QACxG,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,UAAe,EAAE,wBAAgC,EAAE,IAA+B;QAClH,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAM,wBAAwB,CAAC,CAAC;QAC9E,IAAI,CAAC;YAED,MAAM,WAAW,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACnE,IAAI,WAAW,IAAI,WAAW,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;gBAClD,OAAO,IAAI,CAAC;YAChB,CAAC;YACD,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,KAAK,EAAE,CAAC;YAEX,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YACvD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC;YACzD,OAAO,OAAO,CAAC;QACnB,CAAC;IACL,CAAC;IAEO,gBAAgB,CAAsC,wBAAgC;QAC1F,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB;aACzC,YAAY,EAAE;aACd,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,wBAAwB,CAAC;aAChE,GAAG,EAAE,CAAC;QACX,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,gBAAgB,wBAAwB,YAAY,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,QAAQ,CAAC,QAAiC,CAAC;IACtD,CAAC;IAEO,yBAAyB;QAC7B,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IACjC,CAAC;CACJ;AAhID,4EAgIC","sourcesContent":["import { DiscoveryService } from \"@nestjs/core\";\nimport { isEmpty, isInt, isNotEmpty, isString } from \"class-validator\";\nimport { SelectionValueType } from \"src/dtos/create-field-metadata.dto\";\nimport { FieldCrudManager, ISelectionProvider, ISelectionProviderContext, ValidationError } from \"src/interfaces\";\n\nexport interface SelectionDynamicFieldOptions {\n selectionDynamicProvider: string;\n selectionValueType: SelectionValueType;\n required: boolean | undefined | null;\n selectionDynamicProviderCtxt: ISelectionProviderContext;\n fieldName: string;\n discoveryService: DiscoveryService;\n isMultiSelect: boolean | undefined | null;\n}\n\nexport class SelectionDynamicFieldCrudManager implements FieldCrudManager {\n\n constructor(private readonly options: SelectionDynamicFieldOptions) {\n }\n\n async validate(dto: any): Promise<ValidationError[]> {\n const fieldValue: any = dto[this.options.fieldName];\n // return this.applyValidations(fieldValue);\n const isMultiSelect = this.options?.isMultiSelect;\n if (isMultiSelect && fieldValue) {\n const arrayCheck = this.parseAndValidateArray(fieldValue);\n\n if (!arrayCheck.isValid) {\n return [\n {\n field: this.options.fieldName,\n error: `Field: ${this.options.fieldName} must be a valid array`,\n },\n ];\n }\n\n const values = arrayCheck.values;\n\n if (this.isApplyRequiredValidation() && values.length === 0) {\n return [\n {\n field: this.options.fieldName,\n error: `Field: ${this.options.fieldName} is required`,\n },\n ];\n }\n\n // Apply validations to each value\n const allErrors = await Promise.all(values.map((val) => this.applyValidations(val)));\n return allErrors.flat();\n } else {\n // For non-multi-select, apply validations to the single field value\n return this.applyValidations(fieldValue);\n }\n }\n\n private parseAndValidateArray(fieldValue: any): { isValid: boolean; values: any[] } {\n if (Array.isArray(fieldValue)) {\n return { isValid: true, values: fieldValue };\n }\n\n try {\n const parsed = typeof fieldValue === 'string' ? JSON.parse(fieldValue) : null;\n if (Array.isArray(parsed)) {\n return { isValid: true, values: parsed };\n }\n } catch {\n // fall through\n }\n\n return { isValid: false, values: [] };\n }\n\n\n private async applyValidations(fieldValue: any): Promise<ValidationError[]> {\n const errors: ValidationError[] = [];\n this.isApplyRequiredValidation() && isEmpty(fieldValue) ? errors.push({ field: this.options.fieldName, error: `Field: ${this.options.fieldName} is required` }) : \"no errors\";\n if (isNotEmpty(fieldValue)) {\n const formatErrors = await this.applyFormatValidations(fieldValue);\n errors.push(...formatErrors);\n }\n return errors;\n }\n\n private async applyFormatValidations(fieldValue: any): Promise<ValidationError[]> {\n const errors: ValidationError[] = [];\n !this.isValidSelectionValueType(fieldValue, this.options.selectionValueType) ? errors.push({ field: this.options.fieldName, error: 'Field value type is invalid' }) : \"no errors\";\n const ctxt = this.options.selectionDynamicProviderCtxt;\n if (ctxt.validateOnSave !== false) {\n const _isValidSelectionValue = await this.isValidSelectionValue(fieldValue, this.options.selectionDynamicProvider, ctxt);\n !_isValidSelectionValue ? errors.push({ field: this.options.fieldName, error: 'Field value is invalid' }) : \"no errors\";\n }\n return errors;\n }\n\n transformForCreate(dto: any): any {\n return dto;\n }\n\n // Validation to be applied\n private isValidSelectionValueType(fieldValue: any, selectionValueType: SelectionValueType): boolean {\n switch (selectionValueType) {\n case SelectionValueType.string:\n return isString(fieldValue);\n case SelectionValueType.int:\n return isInt(fieldValue);\n default:\n throw new Error(`Validation for selection value type ${selectionValueType} is not implemented`);\n }\n }\n\n private async isValidSelectionValue(fieldValue: any, selectionDynamicProvider: string, ctxt: ISelectionProviderContext): Promise<boolean> {\n const providerInstance = this.providerInstance<any>(selectionDynamicProvider);\n try {\n // Use the value method first\n const valueOption = await providerInstance.value(fieldValue, ctxt);\n if (valueOption && valueOption.value === fieldValue) {\n return true;\n }\n return false;\n }\n catch (error) {\n // Use the values method as a fallback, if the value method is not implemented\n const values = await providerInstance.values('', ctxt);\n const isValid = values.some(v => v.value === fieldValue);\n return isValid;\n }\n }\n\n private providerInstance<T extends ISelectionProviderContext>(selectionDynamicProvider: string): ISelectionProvider<T> {\n const provider = this.options.discoveryService\n .getProviders()\n .filter((provider) => provider.name === selectionDynamicProvider)\n .pop();\n if (!provider) {\n throw new Error(`Provider for ${selectionDynamicProvider} not found`);\n }\n return provider.instance as ISelectionProvider<T>;\n }\n\n private isApplyRequiredValidation(): boolean {\n return this.options.required;\n }\n}"]}
@@ -73,6 +73,7 @@ export declare class SolidRegistry {
73
73
  private securityRuleConfigProviders;
74
74
  private errorCodeProviders;
75
75
  private settingsProviders;
76
+ private auditableModels;
76
77
  registerErrorCodeProvider(errorCodeProvider: InstanceWrapper): void;
77
78
  registerWhatsappProvider(whatsappProvider: InstanceWrapper): void;
78
79
  registerSmsProvider(smsProvider: InstanceWrapper): void;
@@ -120,6 +121,8 @@ export declare class SolidRegistry {
120
121
  getComputedFieldMetadata(): ComputedFieldMetadata[];
121
122
  getDefaultLocale(): Locale | null;
122
123
  getSecurityRules(modelSingularName: string, roleNames?: string[]): SecurityRule[];
124
+ registerAuditableModels(models: Set<string>): void;
125
+ isAuditableModel(modelSingularName: string): boolean;
123
126
  getCommonEntityKeys(): (keyof CommonEntity | 'createdBy' | 'updatedBy')[];
124
127
  getAllSettingsProviderInstance<T extends ISelectionProviderContext>(): ISelectionProvider<T>;
125
128
  }