@solidstarters/solid-core 1.2.191 → 1.2.193

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 (531) hide show
  1. package/dist/config/iam.config.d.ts +6 -4
  2. package/dist/config/iam.config.d.ts.map +1 -1
  3. package/dist/config/iam.config.js +3 -2
  4. package/dist/config/iam.config.js.map +1 -1
  5. package/dist/constants/error-messages.d.ts +2 -0
  6. package/dist/constants/error-messages.d.ts.map +1 -1
  7. package/dist/constants/error-messages.js +2 -0
  8. package/dist/constants/error-messages.js.map +1 -1
  9. package/dist/controllers/authentication.controller.d.ts +1 -1
  10. package/dist/controllers/authentication.controller.d.ts.map +1 -1
  11. package/dist/controllers/authentication.controller.js +4 -3
  12. package/dist/controllers/authentication.controller.js.map +1 -1
  13. package/dist/controllers/email-template.controller.d.ts.map +1 -1
  14. package/dist/controllers/email-template.controller.js +8 -8
  15. package/dist/controllers/email-template.controller.js.map +1 -1
  16. package/dist/controllers/export-template.controller.d.ts +2 -1
  17. package/dist/controllers/export-template.controller.d.ts.map +1 -1
  18. package/dist/controllers/export-template.controller.js +5 -3
  19. package/dist/controllers/export-template.controller.js.map +1 -1
  20. package/dist/controllers/import-transaction.controller.d.ts +2 -1
  21. package/dist/controllers/import-transaction.controller.d.ts.map +1 -1
  22. package/dist/controllers/import-transaction.controller.js +6 -3
  23. package/dist/controllers/import-transaction.controller.js.map +1 -1
  24. package/dist/controllers/sms-template.controller.d.ts.map +1 -1
  25. package/dist/controllers/sms-template.controller.js +7 -7
  26. package/dist/controllers/sms-template.controller.js.map +1 -1
  27. package/dist/decorators/active-user.decorator.d.ts +1 -1
  28. package/dist/decorators/security-rule-config-provider.decorator.d.ts +3 -0
  29. package/dist/decorators/security-rule-config-provider.decorator.d.ts.map +1 -0
  30. package/dist/decorators/security-rule-config-provider.decorator.js +11 -0
  31. package/dist/decorators/security-rule-config-provider.decorator.js.map +1 -0
  32. package/dist/decorators/solid-password.decorator.d.ts +5 -1
  33. package/dist/decorators/solid-password.decorator.d.ts.map +1 -1
  34. package/dist/decorators/solid-password.decorator.js +18 -6
  35. package/dist/decorators/solid-password.decorator.js.map +1 -1
  36. package/dist/dtos/change-password.dto.js +1 -1
  37. package/dist/dtos/change-password.dto.js.map +1 -1
  38. package/dist/dtos/confirm-forgot-password.dto.js +1 -1
  39. package/dist/dtos/confirm-forgot-password.dto.js.map +1 -1
  40. package/dist/dtos/create-saved-filters.dto.d.ts +1 -0
  41. package/dist/dtos/create-saved-filters.dto.d.ts.map +1 -1
  42. package/dist/dtos/create-saved-filters.dto.js +7 -1
  43. package/dist/dtos/create-saved-filters.dto.js.map +1 -1
  44. package/dist/dtos/create-security-rule.dto.d.ts +1 -0
  45. package/dist/dtos/create-security-rule.dto.d.ts.map +1 -1
  46. package/dist/dtos/create-security-rule.dto.js +7 -1
  47. package/dist/dtos/create-security-rule.dto.js.map +1 -1
  48. package/dist/dtos/update-saved-filters.dto.d.ts +1 -0
  49. package/dist/dtos/update-saved-filters.dto.d.ts.map +1 -1
  50. package/dist/dtos/update-saved-filters.dto.js +7 -1
  51. package/dist/dtos/update-saved-filters.dto.js.map +1 -1
  52. package/dist/dtos/update-security-rule.dto.d.ts +1 -0
  53. package/dist/dtos/update-security-rule.dto.d.ts.map +1 -1
  54. package/dist/dtos/update-security-rule.dto.js +7 -1
  55. package/dist/dtos/update-security-rule.dto.js.map +1 -1
  56. package/dist/entities/field-metadata.entity.d.ts.map +1 -1
  57. package/dist/entities/field-metadata.entity.js +2 -1
  58. package/dist/entities/field-metadata.entity.js.map +1 -1
  59. package/dist/entities/saved-filters.entity.d.ts +1 -0
  60. package/dist/entities/saved-filters.entity.d.ts.map +1 -1
  61. package/dist/entities/saved-filters.entity.js +6 -2
  62. package/dist/entities/saved-filters.entity.js.map +1 -1
  63. package/dist/entities/security-rule.entity.d.ts +1 -0
  64. package/dist/entities/security-rule.entity.d.ts.map +1 -1
  65. package/dist/entities/security-rule.entity.js +5 -1
  66. package/dist/entities/security-rule.entity.js.map +1 -1
  67. package/dist/helpers/model-metadata-helper.service.d.ts +2 -3
  68. package/dist/helpers/model-metadata-helper.service.d.ts.map +1 -1
  69. package/dist/helpers/model-metadata-helper.service.js +2 -8
  70. package/dist/helpers/model-metadata-helper.service.js.map +1 -1
  71. package/dist/helpers/module-metadata-helper.service.d.ts.map +1 -1
  72. package/dist/helpers/module-metadata-helper.service.js +9 -0
  73. package/dist/helpers/module-metadata-helper.service.js.map +1 -1
  74. package/dist/helpers/solid-registry.d.ts +5 -1
  75. package/dist/helpers/solid-registry.d.ts.map +1 -1
  76. package/dist/helpers/solid-registry.js +16 -0
  77. package/dist/helpers/solid-registry.js.map +1 -1
  78. package/dist/helpers/user-helper.d.ts +2 -0
  79. package/dist/helpers/user-helper.d.ts.map +1 -0
  80. package/dist/helpers/user-helper.js +41 -0
  81. package/dist/helpers/user-helper.js.map +1 -0
  82. package/dist/index.d.ts +1 -1
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +1 -1
  85. package/dist/index.js.map +1 -1
  86. package/dist/interfaces.d.ts +6 -0
  87. package/dist/interfaces.d.ts.map +1 -1
  88. package/dist/interfaces.js.map +1 -1
  89. package/dist/jobs/trigger-mcp-client-subscriber.service.d.ts +2 -2
  90. package/dist/jobs/trigger-mcp-client-subscriber.service.d.ts.map +1 -1
  91. package/dist/jobs/trigger-mcp-client-subscriber.service.js +2 -2
  92. package/dist/jobs/trigger-mcp-client-subscriber.service.js.map +1 -1
  93. package/dist/jobs/twilio-sms-subscriber.service.d.ts +2 -2
  94. package/dist/jobs/twilio-sms-subscriber.service.d.ts.map +1 -1
  95. package/dist/jobs/twilio-sms-subscriber.service.js +2 -2
  96. package/dist/jobs/twilio-sms-subscriber.service.js.map +1 -1
  97. package/dist/repository/action-metadata.repository.d.ts +12 -0
  98. package/dist/repository/action-metadata.repository.d.ts.map +1 -0
  99. package/dist/repository/action-metadata.repository.js +34 -0
  100. package/dist/repository/action-metadata.repository.js.map +1 -0
  101. package/dist/repository/ai-interaction.repository.d.ts +12 -0
  102. package/dist/repository/ai-interaction.repository.d.ts.map +1 -0
  103. package/dist/repository/ai-interaction.repository.js +34 -0
  104. package/dist/repository/ai-interaction.repository.js.map +1 -0
  105. package/dist/repository/chatter-message-details.repository.d.ts +1 -1
  106. package/dist/repository/chatter-message-details.repository.d.ts.map +1 -1
  107. package/dist/repository/chatter-message-details.repository.js +2 -2
  108. package/dist/repository/chatter-message-details.repository.js.map +1 -1
  109. package/dist/repository/chatter-message.repository.d.ts +1 -1
  110. package/dist/repository/chatter-message.repository.d.ts.map +1 -1
  111. package/dist/repository/chatter-message.repository.js +2 -2
  112. package/dist/repository/chatter-message.repository.js.map +1 -1
  113. package/dist/repository/dashboard-question-sql-dataset-config.repository.d.ts +12 -0
  114. package/dist/repository/dashboard-question-sql-dataset-config.repository.d.ts.map +1 -0
  115. package/dist/repository/dashboard-question-sql-dataset-config.repository.js +34 -0
  116. package/dist/repository/dashboard-question-sql-dataset-config.repository.js.map +1 -0
  117. package/dist/repository/dashboard-question.repository.d.ts +12 -0
  118. package/dist/repository/dashboard-question.repository.d.ts.map +1 -0
  119. package/dist/repository/dashboard-question.repository.js +34 -0
  120. package/dist/repository/dashboard-question.repository.js.map +1 -0
  121. package/dist/repository/dashboard-variable.repository.d.ts +12 -0
  122. package/dist/repository/dashboard-variable.repository.d.ts.map +1 -0
  123. package/dist/repository/dashboard-variable.repository.js +34 -0
  124. package/dist/repository/dashboard-variable.repository.js.map +1 -0
  125. package/dist/repository/dashboard.repository.d.ts +9 -5
  126. package/dist/repository/dashboard.repository.d.ts.map +1 -1
  127. package/dist/repository/dashboard.repository.js +11 -5
  128. package/dist/repository/dashboard.repository.js.map +1 -1
  129. package/dist/repository/email-template.repository.d.ts +12 -0
  130. package/dist/repository/email-template.repository.d.ts.map +1 -0
  131. package/dist/repository/email-template.repository.js +34 -0
  132. package/dist/repository/email-template.repository.js.map +1 -0
  133. package/dist/repository/export-template.repository.d.ts +12 -0
  134. package/dist/repository/export-template.repository.d.ts.map +1 -0
  135. package/dist/repository/export-template.repository.js +34 -0
  136. package/dist/repository/export-template.repository.js.map +1 -0
  137. package/dist/repository/export-transaction.repository.d.ts +12 -0
  138. package/dist/repository/export-transaction.repository.d.ts.map +1 -0
  139. package/dist/repository/export-transaction.repository.js +34 -0
  140. package/dist/repository/export-transaction.repository.js.map +1 -0
  141. package/dist/repository/field-metadata.repository.d.ts +4 -3
  142. package/dist/repository/field-metadata.repository.d.ts.map +1 -1
  143. package/dist/repository/field-metadata.repository.js +5 -5
  144. package/dist/repository/field-metadata.repository.js.map +1 -1
  145. package/dist/repository/import-transaction-error-log.repository.d.ts +12 -0
  146. package/dist/repository/import-transaction-error-log.repository.d.ts.map +1 -0
  147. package/dist/repository/import-transaction-error-log.repository.js +34 -0
  148. package/dist/repository/import-transaction-error-log.repository.js.map +1 -0
  149. package/dist/repository/import-transaction.repository.d.ts +12 -0
  150. package/dist/repository/import-transaction.repository.d.ts.map +1 -0
  151. package/dist/repository/import-transaction.repository.js +34 -0
  152. package/dist/repository/import-transaction.repository.js.map +1 -0
  153. package/dist/repository/list-of-values.repository.d.ts +12 -0
  154. package/dist/repository/list-of-values.repository.d.ts.map +1 -0
  155. package/dist/repository/list-of-values.repository.js +34 -0
  156. package/dist/repository/list-of-values.repository.js.map +1 -0
  157. package/dist/repository/locale.repository.d.ts +12 -0
  158. package/dist/repository/locale.repository.d.ts.map +1 -0
  159. package/dist/repository/locale.repository.js +34 -0
  160. package/dist/repository/locale.repository.js.map +1 -0
  161. package/dist/repository/media-storage-provider-metadata.repository.d.ts +8 -0
  162. package/dist/repository/media-storage-provider-metadata.repository.d.ts.map +1 -0
  163. package/dist/repository/media-storage-provider-metadata.repository.js +28 -0
  164. package/dist/repository/media-storage-provider-metadata.repository.js.map +1 -0
  165. package/dist/repository/media.repository.d.ts +13 -8
  166. package/dist/repository/media.repository.d.ts.map +1 -1
  167. package/dist/repository/media.repository.js +18 -18
  168. package/dist/repository/media.repository.js.map +1 -1
  169. package/dist/repository/menu-item-metadata.repository.d.ts +12 -0
  170. package/dist/repository/menu-item-metadata.repository.d.ts.map +1 -0
  171. package/dist/repository/menu-item-metadata.repository.js +34 -0
  172. package/dist/repository/menu-item-metadata.repository.js.map +1 -0
  173. package/dist/repository/model-metadata.repository.d.ts +8 -0
  174. package/dist/repository/model-metadata.repository.d.ts.map +1 -0
  175. package/dist/repository/model-metadata.repository.js +28 -0
  176. package/dist/repository/model-metadata.repository.js.map +1 -0
  177. package/dist/repository/module-metadata.repository.d.ts +8 -0
  178. package/dist/repository/module-metadata.repository.d.ts.map +1 -0
  179. package/dist/repository/module-metadata.repository.js +28 -0
  180. package/dist/repository/module-metadata.repository.js.map +1 -0
  181. package/dist/repository/mq-message-queue.repository.d.ts +12 -0
  182. package/dist/repository/mq-message-queue.repository.d.ts.map +1 -0
  183. package/dist/repository/mq-message-queue.repository.js +34 -0
  184. package/dist/repository/mq-message-queue.repository.js.map +1 -0
  185. package/dist/repository/mq-message.repository.d.ts +12 -0
  186. package/dist/repository/mq-message.repository.d.ts.map +1 -0
  187. package/dist/repository/mq-message.repository.js +34 -0
  188. package/dist/repository/mq-message.repository.js.map +1 -0
  189. package/dist/repository/permission-metadata.repository.d.ts +12 -0
  190. package/dist/repository/permission-metadata.repository.d.ts.map +1 -0
  191. package/dist/repository/permission-metadata.repository.js +34 -0
  192. package/dist/repository/permission-metadata.repository.js.map +1 -0
  193. package/dist/repository/role-metadata.repository.d.ts +12 -0
  194. package/dist/repository/role-metadata.repository.d.ts.map +1 -0
  195. package/dist/repository/role-metadata.repository.js +34 -0
  196. package/dist/repository/role-metadata.repository.js.map +1 -0
  197. package/dist/repository/saved-filters.repository.d.ts +12 -0
  198. package/dist/repository/saved-filters.repository.d.ts.map +1 -0
  199. package/dist/repository/saved-filters.repository.js +62 -0
  200. package/dist/repository/saved-filters.repository.js.map +1 -0
  201. package/dist/repository/scheduled-job.repository.d.ts +9 -9
  202. package/dist/repository/scheduled-job.repository.d.ts.map +1 -1
  203. package/dist/repository/scheduled-job.repository.js +11 -12
  204. package/dist/repository/scheduled-job.repository.js.map +1 -1
  205. package/dist/repository/security-rule.repository.d.ts +7 -7
  206. package/dist/repository/security-rule.repository.d.ts.map +1 -1
  207. package/dist/repository/security-rule.repository.js +28 -17
  208. package/dist/repository/security-rule.repository.js.map +1 -1
  209. package/dist/repository/setting.repository.d.ts +12 -0
  210. package/dist/repository/setting.repository.d.ts.map +1 -0
  211. package/dist/repository/setting.repository.js +34 -0
  212. package/dist/repository/setting.repository.js.map +1 -0
  213. package/dist/repository/sms-template.repository.d.ts +12 -0
  214. package/dist/repository/sms-template.repository.d.ts.map +1 -0
  215. package/dist/repository/sms-template.repository.js +34 -0
  216. package/dist/repository/sms-template.repository.js.map +1 -0
  217. package/dist/repository/solid-base.repository.d.ts +4 -3
  218. package/dist/repository/solid-base.repository.d.ts.map +1 -1
  219. package/dist/repository/solid-base.repository.js +12 -5
  220. package/dist/repository/solid-base.repository.js.map +1 -1
  221. package/dist/repository/user-activity-history.repository.d.ts +12 -0
  222. package/dist/repository/user-activity-history.repository.d.ts.map +1 -0
  223. package/dist/repository/user-activity-history.repository.js +34 -0
  224. package/dist/repository/user-activity-history.repository.js.map +1 -0
  225. package/dist/repository/user-view-metadata.repository.d.ts +12 -0
  226. package/dist/repository/user-view-metadata.repository.d.ts.map +1 -0
  227. package/dist/repository/user-view-metadata.repository.js +34 -0
  228. package/dist/repository/user-view-metadata.repository.js.map +1 -0
  229. package/dist/repository/view-metadata.repository.d.ts +9 -5
  230. package/dist/repository/view-metadata.repository.d.ts.map +1 -1
  231. package/dist/repository/view-metadata.repository.js +11 -5
  232. package/dist/repository/view-metadata.repository.js.map +1 -1
  233. package/dist/seeders/module-metadata-seeder.service.d.ts +9 -5
  234. package/dist/seeders/module-metadata-seeder.service.d.ts.map +1 -1
  235. package/dist/seeders/module-metadata-seeder.service.js +32 -13
  236. package/dist/seeders/module-metadata-seeder.service.js.map +1 -1
  237. package/dist/seeders/permission-metadata-seeder.service.d.ts +2 -3
  238. package/dist/seeders/permission-metadata-seeder.service.d.ts.map +1 -1
  239. package/dist/seeders/permission-metadata-seeder.service.js +2 -5
  240. package/dist/seeders/permission-metadata-seeder.service.js.map +1 -1
  241. package/dist/seeders/seed-data/solid-core-metadata.json +109 -62
  242. package/dist/seeders/system-fields-seeder.service.d.ts +2 -3
  243. package/dist/seeders/system-fields-seeder.service.d.ts.map +1 -1
  244. package/dist/seeders/system-fields-seeder.service.js +4 -8
  245. package/dist/seeders/system-fields-seeder.service.js.map +1 -1
  246. package/dist/services/action-metadata.service.d.ts +7 -6
  247. package/dist/services/action-metadata.service.d.ts.map +1 -1
  248. package/dist/services/action-metadata.service.js +7 -8
  249. package/dist/services/action-metadata.service.js.map +1 -1
  250. package/dist/services/ai-interaction.service.d.ts +10 -9
  251. package/dist/services/ai-interaction.service.d.ts.map +1 -1
  252. package/dist/services/ai-interaction.service.js +9 -10
  253. package/dist/services/ai-interaction.service.js.map +1 -1
  254. package/dist/services/authentication.service.d.ts +3 -4
  255. package/dist/services/authentication.service.d.ts.map +1 -1
  256. package/dist/services/authentication.service.js +11 -11
  257. package/dist/services/authentication.service.js.map +1 -1
  258. package/dist/services/chatter-message.service.d.ts +12 -12
  259. package/dist/services/chatter-message.service.d.ts.map +1 -1
  260. package/dist/services/chatter-message.service.js +16 -18
  261. package/dist/services/chatter-message.service.js.map +1 -1
  262. package/dist/services/crud.service.d.ts +5 -5
  263. package/dist/services/crud.service.d.ts.map +1 -1
  264. package/dist/services/crud.service.js +9 -9
  265. package/dist/services/crud.service.js.map +1 -1
  266. package/dist/services/dashboard-question-sql-dataset-config.service.d.ts +4 -3
  267. package/dist/services/dashboard-question-sql-dataset-config.service.d.ts.map +1 -1
  268. package/dist/services/dashboard-question-sql-dataset-config.service.js +2 -3
  269. package/dist/services/dashboard-question-sql-dataset-config.service.js.map +1 -1
  270. package/dist/services/dashboard-question.service.d.ts +4 -3
  271. package/dist/services/dashboard-question.service.d.ts.map +1 -1
  272. package/dist/services/dashboard-question.service.js +2 -2
  273. package/dist/services/dashboard-question.service.js.map +1 -1
  274. package/dist/services/dashboard-variable.service.d.ts +4 -3
  275. package/dist/services/dashboard-variable.service.d.ts.map +1 -1
  276. package/dist/services/dashboard-variable.service.js +2 -3
  277. package/dist/services/dashboard-variable.service.js.map +1 -1
  278. package/dist/services/email-template.service.d.ts +4 -3
  279. package/dist/services/email-template.service.d.ts.map +1 -1
  280. package/dist/services/email-template.service.js +2 -3
  281. package/dist/services/email-template.service.js.map +1 -1
  282. package/dist/services/export-template.service.d.ts +6 -4
  283. package/dist/services/export-template.service.d.ts.map +1 -1
  284. package/dist/services/export-template.service.js +14 -4
  285. package/dist/services/export-template.service.js.map +1 -1
  286. package/dist/services/export-transaction.service.d.ts +8 -7
  287. package/dist/services/export-transaction.service.d.ts.map +1 -1
  288. package/dist/services/export-transaction.service.js +11 -14
  289. package/dist/services/export-transaction.service.js.map +1 -1
  290. package/dist/services/field-metadata.service.js +1 -1
  291. package/dist/services/field-metadata.service.js.map +1 -1
  292. package/dist/services/import-transaction-error-log.service.d.ts +4 -3
  293. package/dist/services/import-transaction-error-log.service.d.ts.map +1 -1
  294. package/dist/services/import-transaction-error-log.service.js +2 -3
  295. package/dist/services/import-transaction-error-log.service.js.map +1 -1
  296. package/dist/services/import-transaction.service.d.ts +8 -4
  297. package/dist/services/import-transaction.service.d.ts.map +1 -1
  298. package/dist/services/import-transaction.service.js +43 -16
  299. package/dist/services/import-transaction.service.js.map +1 -1
  300. package/dist/services/list-of-values.service.d.ts +19 -6
  301. package/dist/services/list-of-values.service.d.ts.map +1 -1
  302. package/dist/services/list-of-values.service.js +164 -9
  303. package/dist/services/list-of-values.service.js.map +1 -1
  304. package/dist/services/locale.service.d.ts +9 -10
  305. package/dist/services/locale.service.d.ts.map +1 -1
  306. package/dist/services/locale.service.js +8 -14
  307. package/dist/services/locale.service.js.map +1 -1
  308. package/dist/services/mail/smtp-email.service.d.ts.map +1 -1
  309. package/dist/services/mail/smtp-email.service.js +6 -1
  310. package/dist/services/mail/smtp-email.service.js.map +1 -1
  311. package/dist/services/media-storage-provider-metadata.service.d.ts +4 -4
  312. package/dist/services/media-storage-provider-metadata.service.d.ts.map +1 -1
  313. package/dist/services/media-storage-provider-metadata.service.js +5 -11
  314. package/dist/services/media-storage-provider-metadata.service.js.map +1 -1
  315. package/dist/services/media.service.d.ts +7 -6
  316. package/dist/services/media.service.d.ts.map +1 -1
  317. package/dist/services/media.service.js +8 -12
  318. package/dist/services/media.service.js.map +1 -1
  319. package/dist/services/menu-item-metadata.service.d.ts +4 -3
  320. package/dist/services/menu-item-metadata.service.d.ts.map +1 -1
  321. package/dist/services/menu-item-metadata.service.js +4 -5
  322. package/dist/services/menu-item-metadata.service.js.map +1 -1
  323. package/dist/services/model-metadata.service.d.ts +3 -2
  324. package/dist/services/model-metadata.service.d.ts.map +1 -1
  325. package/dist/services/model-metadata.service.js +45 -43
  326. package/dist/services/model-metadata.service.js.map +1 -1
  327. package/dist/services/module-metadata.service.d.ts +3 -2
  328. package/dist/services/module-metadata.service.d.ts.map +1 -1
  329. package/dist/services/module-metadata.service.js +3 -3
  330. package/dist/services/module-metadata.service.js.map +1 -1
  331. package/dist/services/mq-message-queue.service.d.ts +4 -3
  332. package/dist/services/mq-message-queue.service.d.ts.map +1 -1
  333. package/dist/services/mq-message-queue.service.js +2 -3
  334. package/dist/services/mq-message-queue.service.js.map +1 -1
  335. package/dist/services/mq-message.service.d.ts +4 -3
  336. package/dist/services/mq-message.service.d.ts.map +1 -1
  337. package/dist/services/mq-message.service.js +2 -2
  338. package/dist/services/mq-message.service.js.map +1 -1
  339. package/dist/services/permission-metadata.service.d.ts +4 -3
  340. package/dist/services/permission-metadata.service.d.ts.map +1 -1
  341. package/dist/services/permission-metadata.service.js +2 -3
  342. package/dist/services/permission-metadata.service.js.map +1 -1
  343. package/dist/services/queues/rabbitmq-publisher.service.d.ts +8 -3
  344. package/dist/services/queues/rabbitmq-publisher.service.d.ts.map +1 -1
  345. package/dist/services/queues/rabbitmq-publisher.service.js +79 -18
  346. package/dist/services/queues/rabbitmq-publisher.service.js.map +1 -1
  347. package/dist/services/queues/rabbitmq-subscriber.service.d.ts.map +1 -1
  348. package/dist/services/queues/rabbitmq-subscriber.service.js +9 -3
  349. package/dist/services/queues/rabbitmq-subscriber.service.js.map +1 -1
  350. package/dist/services/role-metadata.service.d.ts +10 -9
  351. package/dist/services/role-metadata.service.d.ts.map +1 -1
  352. package/dist/services/role-metadata.service.js +9 -11
  353. package/dist/services/role-metadata.service.js.map +1 -1
  354. package/dist/services/saved-filters.service.d.ts +7 -6
  355. package/dist/services/saved-filters.service.d.ts.map +1 -1
  356. package/dist/services/saved-filters.service.js +6 -7
  357. package/dist/services/saved-filters.service.js.map +1 -1
  358. package/dist/services/scheduled-job.service.d.ts +4 -3
  359. package/dist/services/scheduled-job.service.d.ts.map +1 -1
  360. package/dist/services/scheduled-job.service.js +2 -3
  361. package/dist/services/scheduled-job.service.js.map +1 -1
  362. package/dist/services/scheduled-jobs/scheduler.service.d.ts +3 -4
  363. package/dist/services/scheduled-jobs/scheduler.service.d.ts.map +1 -1
  364. package/dist/services/scheduled-jobs/scheduler.service.js +6 -11
  365. package/dist/services/scheduled-jobs/scheduler.service.js.map +1 -1
  366. package/dist/services/security-rule.service.d.ts +4 -3
  367. package/dist/services/security-rule.service.d.ts.map +1 -1
  368. package/dist/services/security-rule.service.js +3 -3
  369. package/dist/services/security-rule.service.js.map +1 -1
  370. package/dist/services/setting.service.d.ts +3 -2
  371. package/dist/services/setting.service.d.ts.map +1 -1
  372. package/dist/services/setting.service.js +25 -9
  373. package/dist/services/setting.service.js.map +1 -1
  374. package/dist/services/sms-template.service.d.ts +4 -3
  375. package/dist/services/sms-template.service.d.ts.map +1 -1
  376. package/dist/services/sms-template.service.js +2 -3
  377. package/dist/services/sms-template.service.js.map +1 -1
  378. package/dist/services/solid-introspect.service.d.ts +1 -0
  379. package/dist/services/solid-introspect.service.d.ts.map +1 -1
  380. package/dist/services/solid-introspect.service.js +14 -0
  381. package/dist/services/solid-introspect.service.js.map +1 -1
  382. package/dist/services/user-activity-history.service.d.ts +4 -3
  383. package/dist/services/user-activity-history.service.d.ts.map +1 -1
  384. package/dist/services/user-activity-history.service.js +2 -3
  385. package/dist/services/user-activity-history.service.js.map +1 -1
  386. package/dist/services/user-view-metadata.service.d.ts +4 -3
  387. package/dist/services/user-view-metadata.service.d.ts.map +1 -1
  388. package/dist/services/user-view-metadata.service.js +2 -3
  389. package/dist/services/user-view-metadata.service.js.map +1 -1
  390. package/dist/services/user.service.d.ts +2 -2
  391. package/dist/services/user.service.d.ts.map +1 -1
  392. package/dist/services/user.service.js +3 -3
  393. package/dist/services/user.service.js.map +1 -1
  394. package/dist/services/view-metadata.service.d.ts +5 -6
  395. package/dist/services/view-metadata.service.d.ts.map +1 -1
  396. package/dist/services/view-metadata.service.js +5 -10
  397. package/dist/services/view-metadata.service.js.map +1 -1
  398. package/dist/solid-core.module.d.ts.map +1 -1
  399. package/dist/solid-core.module.js +164 -121
  400. package/dist/solid-core.module.js.map +1 -1
  401. package/dist/subscribers/audit.subscriber.d.ts +4 -4
  402. package/dist/subscribers/audit.subscriber.d.ts.map +1 -1
  403. package/dist/subscribers/audit.subscriber.js +4 -5
  404. package/dist/subscribers/audit.subscriber.js.map +1 -1
  405. package/dist/subscribers/{list-of-values-metadata.subscriber.d.ts → list-of-values.subscriber.d.ts} +5 -5
  406. package/dist/subscribers/list-of-values.subscriber.d.ts.map +1 -0
  407. package/dist/subscribers/{list-of-values-metadata.subscriber.js → list-of-values.subscriber.js} +13 -13
  408. package/dist/subscribers/list-of-values.subscriber.js.map +1 -0
  409. package/dist/tsconfig.tsbuildinfo +1 -1
  410. package/package.json +5 -5
  411. package/rebuild.sh +2 -3
  412. package/src/config/iam.config.ts +3 -2
  413. package/src/constants/error-messages.ts +3 -0
  414. package/src/controllers/authentication.controller.ts +2 -2
  415. package/src/controllers/email-template.controller.ts +57 -64
  416. package/src/controllers/export-template.controller.ts +4 -2
  417. package/src/controllers/import-transaction.controller.ts +5 -2
  418. package/src/controllers/sms-template.controller.ts +55 -55
  419. package/src/decorators/security-rule-config-provider.decorator.ts +7 -0
  420. package/src/decorators/solid-password.decorator.ts +25 -17
  421. package/src/dtos/change-password.dto.ts +1 -1
  422. package/src/dtos/confirm-forgot-password.dto.ts +1 -1
  423. package/src/dtos/create-saved-filters.dto.ts +4 -0
  424. package/src/dtos/create-security-rule.dto.ts +5 -0
  425. package/src/dtos/update-saved-filters.dto.ts +4 -0
  426. package/src/dtos/update-security-rule.dto.ts +6 -1
  427. package/src/entities/field-metadata.entity.ts +2 -1
  428. package/src/entities/saved-filters.entity.ts +3 -1
  429. package/src/entities/security-rule.entity.ts +2 -0
  430. package/src/helpers/model-metadata-helper.service.ts +4 -5
  431. package/src/helpers/module-metadata-helper.service.ts +9 -0
  432. package/src/helpers/solid-registry.ts +21 -2
  433. package/src/helpers/user-helper.ts +37 -0
  434. package/src/index.ts +1 -1
  435. package/src/interfaces.ts +7 -0
  436. package/src/jobs/trigger-mcp-client-subscriber.service.ts +2 -2
  437. package/src/jobs/twilio-sms-subscriber.service.ts +2 -2
  438. package/src/repository/action-metadata.repository.ts +17 -0
  439. package/src/repository/ai-interaction.repository.ts +17 -0
  440. package/src/repository/chatter-message-details.repository.ts +3 -3
  441. package/src/repository/chatter-message.repository.ts +2 -2
  442. package/src/repository/dashboard-question-sql-dataset-config.repository.ts +17 -0
  443. package/src/repository/dashboard-question.repository.ts +17 -0
  444. package/src/repository/dashboard-variable.repository.ts +17 -0
  445. package/src/repository/dashboard.repository.ts +10 -10
  446. package/src/repository/email-template.repository.ts +17 -0
  447. package/src/repository/export-template.repository.ts +17 -0
  448. package/src/repository/export-transaction.repository.ts +17 -0
  449. package/src/repository/field-metadata.repository.ts +8 -6
  450. package/src/repository/import-transaction-error-log.repository.ts +17 -0
  451. package/src/repository/import-transaction.repository.ts +17 -0
  452. package/src/repository/list-of-values.repository.ts +17 -0
  453. package/src/repository/locale.repository.ts +17 -0
  454. package/src/repository/media-storage-provider-metadata.repository.ts +15 -0
  455. package/src/repository/media.repository.ts +21 -15
  456. package/src/repository/menu-item-metadata.repository.ts +17 -0
  457. package/src/repository/model-metadata.repository.ts +15 -0
  458. package/src/repository/module-metadata.repository.ts +15 -0
  459. package/src/repository/mq-message-queue.repository.ts +17 -0
  460. package/src/repository/mq-message.repository.ts +17 -0
  461. package/src/repository/permission-metadata.repository.ts +17 -0
  462. package/src/repository/role-metadata.repository.ts +17 -0
  463. package/src/repository/saved-filters.repository.ts +65 -0
  464. package/src/repository/scheduled-job.repository.ts +13 -14
  465. package/src/repository/security-rule.repository.ts +45 -25
  466. package/src/repository/setting.repository.ts +17 -0
  467. package/src/repository/sms-template.repository.ts +17 -0
  468. package/src/repository/solid-base.repository.ts +16 -8
  469. package/src/repository/user-activity-history.repository.ts +17 -0
  470. package/src/repository/user-view-metadata.repository.ts +17 -0
  471. package/src/repository/view-metadata.repository.ts +10 -8
  472. package/src/seeders/module-metadata-seeder.service.ts +35 -5
  473. package/src/seeders/permission-metadata-seeder.service.ts +4 -2
  474. package/src/seeders/seed-data/solid-core-metadata.json +111 -66
  475. package/src/seeders/system-fields-seeder.service.ts +6 -4
  476. package/src/services/action-metadata.service.ts +9 -7
  477. package/src/services/ai-interaction.service.ts +15 -13
  478. package/src/services/authentication.service.ts +26 -12
  479. package/src/services/chatter-message.service.ts +23 -21
  480. package/src/services/crud.service.ts +27 -32
  481. package/src/services/dashboard-question-sql-dataset-config.service.ts +4 -2
  482. package/src/services/dashboard-question.service.ts +4 -2
  483. package/src/services/dashboard-variable.service.ts +5 -2
  484. package/src/services/docker exec -it mssql //" +8 -0
  485. package/src/services/email-template.service.ts +4 -2
  486. package/src/services/export-template.service.ts +22 -4
  487. package/src/services/export-transaction.service.ts +16 -9
  488. package/src/services/field-metadata.service.ts +1 -1
  489. package/src/services/import-transaction-error-log.service.ts +4 -2
  490. package/src/services/import-transaction.service.ts +109 -30
  491. package/src/services/list-of-values.service.ts +192 -8
  492. package/src/services/locale.service.ts +16 -14
  493. package/src/services/mail/smtp-email.service.ts +7 -1
  494. package/src/services/media-storage-provider-metadata.service.ts +10 -9
  495. package/src/services/media.service.ts +16 -8
  496. package/src/services/menu-item-metadata.service.ts +7 -4
  497. package/src/services/model-metadata.service.ts +64 -58
  498. package/src/services/module-metadata.service.ts +6 -3
  499. package/src/services/mq-message-queue.service.ts +4 -2
  500. package/src/services/mq-message.service.ts +4 -2
  501. package/src/services/permission-metadata.service.ts +5 -3
  502. package/src/services/queues/rabbitmq-publisher.service.ts +99 -41
  503. package/src/services/queues/rabbitmq-subscriber.service.ts +18 -5
  504. package/src/services/role-metadata.service.ts +16 -12
  505. package/src/services/saved-filters.service.ts +10 -8
  506. package/src/services/scheduled-job.service.ts +4 -2
  507. package/src/services/scheduled-jobs/scheduler.service.ts +9 -9
  508. package/src/services/security-rule.service.ts +6 -3
  509. package/src/services/setting.service.ts +31 -14
  510. package/src/services/sms-template.service.ts +4 -2
  511. package/src/services/solid-introspect.service.ts +23 -2
  512. package/src/services/user-activity-history.service.ts +4 -2
  513. package/src/services/user-view-metadata.service.ts +4 -2
  514. package/src/services/user.service.ts +5 -2
  515. package/src/services/view-metadata.service.ts +11 -9
  516. package/src/solid-core.module.ts +166 -138
  517. package/src/subscribers/audit.subscriber.ts +8 -7
  518. package/src/subscribers/{list-of-values-metadata.subscriber.ts → list-of-values.subscriber.ts} +7 -7
  519. package/dist/repository/field.repository.d.ts +0 -9
  520. package/dist/repository/field.repository.d.ts.map +0 -1
  521. package/dist/repository/field.repository.js +0 -46
  522. package/dist/repository/field.repository.js.map +0 -1
  523. package/dist/services/list-of-values-metadata.service.d.ts +0 -34
  524. package/dist/services/list-of-values-metadata.service.d.ts.map +0 -1
  525. package/dist/services/list-of-values-metadata.service.js +0 -213
  526. package/dist/services/list-of-values-metadata.service.js.map +0 -1
  527. package/dist/subscribers/list-of-values-metadata.subscriber.d.ts.map +0 -1
  528. package/dist/subscribers/list-of-values-metadata.subscriber.js.map +0 -1
  529. package/solid_seed_fixes.ts.txt +0 -93
  530. package/src/repository/field.repository.ts +0 -33
  531. package/src/services/list-of-values-metadata.service.ts +0 -216
@@ -1,20 +1,29 @@
1
1
  import { Injectable } from '@nestjs/common';
2
- import { InjectEntityManager, InjectRepository } from '@nestjs/typeorm';
3
2
  import { DiscoveryService, ModuleRef } from "@nestjs/core";
4
- import { EntityManager, Repository } from 'typeorm';
3
+ import { InjectEntityManager } from '@nestjs/typeorm';
4
+ import { EntityManager } from 'typeorm';
5
5
 
6
+ import { ConfigService } from '@nestjs/config';
7
+ import { CrudHelperService } from 'src/services/crud-helper.service';
6
8
  import { CRUDService } from 'src/services/crud.service';
9
+ import { FileService } from 'src/services/file.service';
7
10
  import { ModelMetadataService } from 'src/services/model-metadata.service';
8
11
  import { ModuleMetadataService } from 'src/services/module-metadata.service';
9
- import { ConfigService } from '@nestjs/config';
10
- import { FileService } from 'src/services/file.service';
11
- import { CrudHelperService } from 'src/services/crud-helper.service';
12
12
 
13
13
 
14
+ import * as fs from 'fs/promises'; // Use the Promise-based version of fs for async/await
15
+ import { ListOfValuesRepository } from 'src/repository/list-of-values.repository';
14
16
  import { ListOfValues } from '../entities/list-of-values.entity';
17
+ import { ModelMetadataHelperService } from 'src/helpers/model-metadata-helper.service';
18
+ import { ModuleMetadataHelperService } from 'src/helpers/module-metadata-helper.service';
19
+ import { ListOfValuesMapper } from 'src/mappers/list-of-values-mapper';
20
+
15
21
 
16
22
  @Injectable()
17
23
  export class ListOfValuesService extends CRUDService<ListOfValues> {
24
+ logger: any;
25
+ // moduleMetadataHelperService: any;
26
+ // listOfValuesMapper: any;
18
27
  constructor(
19
28
  readonly modelMetadataService: ModelMetadataService,
20
29
  readonly moduleMetadataService: ModuleMetadataService,
@@ -22,11 +31,15 @@ export class ListOfValuesService extends CRUDService<ListOfValues> {
22
31
  readonly fileService: FileService,
23
32
  readonly discoveryService: DiscoveryService,
24
33
  readonly crudHelperService: CrudHelperService,
34
+
25
35
  @InjectEntityManager()
26
36
  readonly entityManager: EntityManager,
27
- @InjectRepository(ListOfValues, 'default')
28
- readonly repo: Repository<ListOfValues>,
29
- readonly moduleRef: ModuleRef
37
+ // @InjectRepository(ListOfValues, 'default')
38
+ // readonly repo: Repository<ListOfValues>,
39
+ readonly repo: ListOfValuesRepository,
40
+ readonly moduleRef: ModuleRef,
41
+ private readonly moduleMetadataHelperService: ModuleMetadataHelperService,
42
+ readonly listOfValuesMapper: ListOfValuesMapper,
30
43
 
31
44
  ) {
32
45
  super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'listOfValues', 'solid-core', moduleRef);
@@ -64,4 +77,175 @@ export class ListOfValuesService extends CRUDService<ListOfValues> {
64
77
  }
65
78
  }
66
79
 
80
+
81
+ async saveListofValuesToConfig(entity: ListOfValues) {
82
+ if (!entity) {
83
+ this.logger.debug('No entity found in the ListofValuesSubscriber saveListofvalueToConfig method');
84
+ return;
85
+ }
86
+
87
+ // Validate list of value details
88
+ const listofvalue = entity as ListOfValues;
89
+ const moduleMetadata = entity.module;
90
+ if (!moduleMetadata) {
91
+ throw new Error(`Module metadata not found for listofvalue id ${entity.id}`);
92
+ }
93
+
94
+ // Get config file details
95
+ const { filePath, metaData } = await this.getConfigFileDetails(moduleMetadata.name); // sting expected module name
96
+ if (!filePath || !metaData) {
97
+ throw new Error(`Configuration details not found for module: ${moduleMetadata.name}`);
98
+ }
99
+
100
+ // Write the listofvalue to the config file
101
+ await this.writeToConfig(metaData, listofvalue, filePath);
102
+ }
103
+
104
+ async updateListofValuesToConfig(oldentity: ListOfValues, entity: ListOfValues) {
105
+ if (!entity) {
106
+ this.logger.debug('No entity found in the ListofValuesSubscriber saveListofvalueToConfig method');
107
+ return;
108
+ }
109
+
110
+ // Validate list of value details
111
+ const oldlistofvalue = oldentity as ListOfValues;
112
+ const listofvalue = entity as ListOfValues;
113
+ const moduleMetadata = entity.module;
114
+ if (!moduleMetadata) {
115
+ throw new Error(`Module metadata not found for listofvalue id ${entity.id}`);
116
+ }
117
+
118
+ // Get config file details
119
+ const { filePath, metaData } = await this.getConfigFileDetails(moduleMetadata.name); // sting expected module name
120
+ if (!filePath || !metaData) {
121
+ throw new Error(`Configuration details not found for module: ${moduleMetadata.name}`);
122
+ }
123
+
124
+ // Write the listofvalue to the config file
125
+ await this.updateToConfig(metaData, oldlistofvalue, listofvalue, filePath);
126
+ }
127
+
128
+ async deleteListOfValuesFromConfig(entity: ListOfValues) {
129
+ if (!entity) {
130
+ this.logger.debug('No entity found in the ListofValuesSubscriber saveListofvalueToConfig method');
131
+ return;
132
+ }
133
+
134
+ // Validate list of value details
135
+ const listofvalue = entity as ListOfValues;
136
+ const moduleMetadata = entity.module;
137
+ if (!moduleMetadata) {
138
+ throw new Error(`Module metadata not found for listofvalue id ${entity.id}`);
139
+ }
140
+
141
+ // Get config file details
142
+ const { filePath, metaData } = await this.getConfigFileDetails(moduleMetadata.name); // sting expected module name
143
+ if (!filePath || !metaData) {
144
+ throw new Error(`Configuration details not found for module: ${moduleMetadata.name}`);
145
+ }
146
+
147
+ // delete the listofvalue to the config file
148
+ await this.deleteFromConfig(metaData, listofvalue, filePath);
149
+ }
150
+
151
+ private async getConfigFileDetails(moduleName: string): Promise<{ filePath: string; metaData: any }> {
152
+ const filePath = await this.moduleMetadataHelperService.getModuleMetadataFilePath(moduleName);
153
+ try {
154
+ await fs.access(filePath);
155
+ } catch (error) {
156
+ throw new Error(`Configuration file not found for module: ${moduleName}`);
157
+ }
158
+ const metaData = await this.moduleMetadataHelperService.getModuleMetadataConfiguration(filePath);
159
+ return { filePath, metaData };
160
+ }
161
+
162
+ private async writeToConfig(metaData: any, listofvalues: ListOfValues, filePath: string) {
163
+ const dto = await this.listOfValuesMapper.toDto(listofvalues);
164
+
165
+ if (!Array.isArray(metaData.listOfValues)) {
166
+ metaData.listOfValues = [];
167
+ }
168
+
169
+ // Match by type + value + module
170
+ const existingIndex = metaData.listOfValues.findIndex(
171
+ (item: { type: string; value: string; module: number }) =>
172
+ item.type === dto.type &&
173
+ item.value === dto.value &&
174
+ item.module === dto.module
175
+ );
176
+
177
+ if (existingIndex !== -1) {
178
+ // Replace existing entry
179
+ metaData.listOfValues[existingIndex] = dto;
180
+ } else {
181
+ // Insert new entry
182
+ // metaData.listOfValues.unshift(dto);
183
+
184
+ if (metaData.listOfValues.length === 0) {
185
+ // Case 1: Empty array → add first item
186
+ metaData.listOfValues.push(dto);
187
+ } else {
188
+ // Case 2: Insert new item right after index 0
189
+ metaData.listOfValues.unshift(dto);
190
+ }
191
+
192
+ }
193
+
194
+ const updatedContent = JSON.stringify(metaData, null, 2);
195
+ await fs.writeFile(filePath, updatedContent);
196
+ }
197
+
198
+ private async updateToConfig(metaData: any, oldlistofvalues: ListOfValues, listofvalues: ListOfValues, filePath: string) {
199
+ const newvalue = await this.listOfValuesMapper.toDto(listofvalues);
200
+ const oldvalue = await this.listOfValuesMapper.toDto(oldlistofvalues);
201
+
202
+ if (!Array.isArray(metaData.listOfValues)) {
203
+ metaData.listOfValues = [];
204
+ }
205
+
206
+ const searchType = oldvalue.type || newvalue.type;
207
+ const searchValue = oldvalue.value || newvalue.value;
208
+ const searchModule = oldvalue.module || newvalue.module;
209
+
210
+ const existingIndex = metaData.listOfValues.findIndex(
211
+ (item: { type: string; value: string; module: number }) =>
212
+ item.type === searchType && item.value === searchValue && item.module === searchModule
213
+ );
214
+ if (existingIndex !== -1) {
215
+ // Replace existing match
216
+ metaData.listOfValues[existingIndex] = newvalue;
217
+ }
218
+
219
+ const updatedContent = JSON.stringify(metaData, null, 2);
220
+ await fs.writeFile(filePath, updatedContent);
221
+ }
222
+
223
+ private async deleteFromConfig(metaData: any, listofvalues: ListOfValues, filePath: string) {
224
+ const dto = await this.listOfValuesMapper.toDto(listofvalues);
225
+
226
+ if (!Array.isArray(metaData.listOfValues)) {
227
+ metaData.listOfValues = [];
228
+ }
229
+
230
+ // Match by type + value + module
231
+ const existingIndex = metaData.listOfValues.findIndex(
232
+ (item: { type: string; value: string; module: number }) =>
233
+ item.type === dto.type &&
234
+ item.value === dto.value &&
235
+ item.module === dto.module
236
+ );
237
+
238
+ if (existingIndex !== -1) {
239
+ // Remove the item
240
+ metaData.listOfValues.splice(existingIndex, 1);
241
+ this.logger.debug(`Deleted LOV ${dto.type}:${dto.value} (module ${dto.module}) from config`);
242
+ } else {
243
+ this.logger.warn(
244
+ `LOV ${dto.type}:${dto.value} (module ${dto.module}) not found in config during delete`
245
+ );
246
+ }
247
+ const updatedContent = JSON.stringify(metaData, null, 2);
248
+ await fs.writeFile(filePath, updatedContent);
249
+
250
+ }
67
251
  }
@@ -1,18 +1,18 @@
1
1
  import { Injectable, Logger, OnApplicationBootstrap } from '@nestjs/common';
2
- import { InjectEntityManager, InjectRepository } from '@nestjs/typeorm';
3
- import { DiscoveryService, ModuleRef } from "@nestjs/core";
4
- import { EntityManager, Repository } from 'typeorm';
2
+ import { DiscoveryService, ModuleRef } from "@nestjs/core";
3
+ import { InjectEntityManager } from '@nestjs/typeorm';
4
+ import { EntityManager } from 'typeorm';
5
5
 
6
+ import { ConfigService } from '@nestjs/config';
7
+ import { Locale } from 'src/entities/locale.entity';
8
+ import { SolidRegistry } from 'src/helpers/solid-registry';
9
+ import { LocaleRepository } from 'src/repository/locale.repository';
10
+ import { CrudHelperService } from 'src/services/crud-helper.service';
6
11
  import { CRUDService } from 'src/services/crud.service';
12
+ import { FileService } from 'src/services/file.service';
7
13
  import { ModelMetadataService } from 'src/services/model-metadata.service';
8
14
  import { ModuleMetadataService } from 'src/services/module-metadata.service';
9
- import { ConfigService } from '@nestjs/config';
10
- import { FileService } from 'src/services/file.service';
11
- import { CrudHelperService } from 'src/services/crud-helper.service';
12
- import { ModelMetadata } from 'src/entities/model-metadata.entity';
13
15
  import { RequestContextService } from './request-context.service';
14
- import { Locale } from 'src/entities/locale.entity';
15
- import { SolidRegistry } from 'src/helpers/solid-registry';
16
16
  @Injectable()
17
17
  export class LocaleService extends CRUDService<Locale> implements OnApplicationBootstrap{
18
18
  constructor(
@@ -24,12 +24,14 @@ export class LocaleService extends CRUDService<Locale> implements OnApplicationB
24
24
  readonly crudHelperService: CrudHelperService,
25
25
  @InjectEntityManager()
26
26
  readonly entityManager: EntityManager,
27
- @InjectRepository(Locale, 'default')
28
- readonly repo: Repository<Locale>,
29
- @InjectRepository(Locale, 'default')
27
+ // @InjectRepository(Locale, 'default')
28
+ // readonly repo: Repository<Locale>,
29
+ readonly repo: LocaleRepository,
30
+ // @InjectRepository(Locale, 'default')
30
31
  readonly moduleRef: ModuleRef,
31
- @InjectRepository(ModelMetadata)
32
- private readonly modelMetadataRepo: Repository<ModelMetadata>,
32
+ // @InjectRepository(ModelMetadata)
33
+ // private readonly modelMetadataRepo: Repository<ModelMetadata>,
34
+ // private readonly modelMetadataRepo: ModelMetadataRepository,
33
35
  readonly requestContextService: RequestContextService,
34
36
  readonly solidRegistry: SolidRegistry,
35
37
  ) {
@@ -114,7 +114,13 @@ export class SMTPEMailService implements IMail {
114
114
  }
115
115
 
116
116
  async sendEmailSynchronously(message: QueueMessage<any>) {
117
- const { from, to, subject, body, attachments = [], cc, bcc } = message.payload;
117
+ let from;
118
+ const { to, subject, body, attachments = [], cc, bcc } = message.payload;
119
+
120
+ const envFrom = this.commonConfiguration.smtpMail.from;
121
+ if (envFrom) {
122
+ from = envFrom;
123
+ }
118
124
 
119
125
  // if any of the required fields are missing, throw an error.
120
126
  if (!from || !to || !subject || !body) {
@@ -1,17 +1,18 @@
1
1
  import { Injectable, NotFoundException } from "@nestjs/common";
2
- import { InjectRepository } from "@nestjs/typeorm";
3
- import { Repository, SelectQueryBuilder } from "typeorm";
4
- import { MediaStorageProviderMetadata } from "../entities/media-storage-provider-metadata.entity";
2
+ import { ERROR_MESSAGES } from "src/constants/error-messages";
3
+ import { MediaStorageProviderMetadataRepository } from "src/repository/media-storage-provider-metadata.repository";
4
+ import { SelectQueryBuilder } from "typeorm";
5
5
  import { BasicFilterDto } from "../dtos/basic-filters.dto";
6
- import { CrudHelperService } from "./crud-helper.service";
7
6
  import { UpdateMediaStorageProviderMetadataDto } from "../dtos/update-media-storage-provider.dto";
8
- import { ERROR_MESSAGES } from "src/constants/error-messages";
7
+ import { MediaStorageProviderMetadata } from "../entities/media-storage-provider-metadata.entity";
8
+ import { CrudHelperService } from "./crud-helper.service";
9
9
 
10
10
  @Injectable()
11
11
  export class MediaStorageProviderMetadataService {
12
12
  constructor(
13
- @InjectRepository(MediaStorageProviderMetadata)
14
- private readonly mediaStorageProviderRepo: Repository<MediaStorageProviderMetadata>,
13
+ // @InjectRepository(MediaStorageProviderMetadata)
14
+ // private readonly mediaStorageProviderRepo: Repository<MediaStorageProviderMetadata>,
15
+ private readonly mediaStorageProviderRepo: MediaStorageProviderMetadataRepository,
15
16
  private readonly crudHelperService: CrudHelperService
16
17
  ) { }
17
18
 
@@ -21,8 +22,8 @@ export class MediaStorageProviderMetadataService {
21
22
  let { limit, offset, populateMedia } = basicFilterDto;
22
23
 
23
24
  // Create above query on pincode table using query builder
24
- var qb: SelectQueryBuilder<MediaStorageProviderMetadata> = this.mediaStorageProviderRepo.createQueryBuilder(alias)
25
- qb = await this.crudHelperService.buildFilterQuery(qb, basicFilterDto, alias);
25
+ var qb: SelectQueryBuilder<MediaStorageProviderMetadata> = await this.mediaStorageProviderRepo.createSecurityRuleAwareQueryBuilder(alias)
26
+ qb = this.crudHelperService.buildFilterQuery(qb, basicFilterDto, alias);
26
27
 
27
28
  // Get the records and the count
28
29
  const [entities, count] = await qb.getManyAndCount();
@@ -19,6 +19,10 @@ import { ModelMetadata } from 'src/entities/model-metadata.entity';
19
19
  import { getMediaStorageProvider } from "./mediaStorageProviders";
20
20
  import { BasicFilterDto } from 'src/dtos/basic-filters.dto';
21
21
  import { ERROR_MESSAGES } from 'src/constants/error-messages';
22
+ import { MediaRepository } from 'src/repository/media.repository';
23
+ import { ModelMetadataRepository } from 'src/repository/model-metadata.repository';
24
+ import { MediaStorageProviderMetadataRepository } from 'src/repository/media-storage-provider-metadata.repository';
25
+ import { FieldMetadataRepository } from 'src/repository/field-metadata.repository';
22
26
 
23
27
 
24
28
  @Injectable()
@@ -32,14 +36,18 @@ export class MediaService extends CRUDService<Media> {
32
36
  readonly crudHelperService: CrudHelperService,
33
37
  @InjectEntityManager()
34
38
  readonly entityManager: EntityManager,
35
- @InjectRepository(Media, 'default')
36
- readonly repo: Repository<Media>,
37
- @InjectRepository(ModelMetadata)
38
- private readonly modelMetadataRepo: Repository<ModelMetadata>,
39
- @InjectRepository(MediaStorageProviderMetadata)
40
- private readonly mediaStorageProviderMetadataRepo: Repository<MediaStorageProviderMetadata>,
41
- @InjectRepository(FieldMetadata)
42
- private readonly fieldMetadataRepo: Repository<FieldMetadata>,
39
+ // @InjectRepository(Media, 'default')
40
+ // readonly repo: Repository<Media>,
41
+ readonly repo: MediaRepository,
42
+ // @InjectRepository(ModelMetadata)
43
+ // private readonly modelMetadataRepo: Repository<ModelMetadata>,
44
+ // @InjectRepository(MediaStorageProviderMetadata)
45
+ // private readonly mediaStorageProviderMetadataRepo: Repository<MediaStorageProviderMetadata>,
46
+ // @InjectRepository(FieldMetadata)
47
+ // private readonly fieldMetadataRepo: Repository<FieldMetadata>,
48
+ private readonly modelMetadataRepo: ModelMetadataRepository,
49
+ private readonly mediaStorageProviderMetadataRepo: MediaStorageProviderMetadataRepository,
50
+ private readonly fieldMetadataRepo: FieldMetadataRepository,
43
51
  readonly moduleRef: ModuleRef,
44
52
  ) {
45
53
  super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'media', 'solid-core', moduleRef);
@@ -15,6 +15,7 @@ import { UpdateMenuItemMetadataDto } from '../dtos/update-menu-item-metadata.dto
15
15
  import { ActiveUserData } from 'src/interfaces/active-user-data.interface';
16
16
  import { ModuleMetadata } from '../entities/module-metadata.entity';
17
17
  import { dasherize } from '@angular-devkit/core/src/utils/strings';
18
+ import { MenuItemMetadataRepository } from 'src/repository/menu-item-metadata.repository';
18
19
 
19
20
  @Injectable()
20
21
  export class MenuItemMetadataService extends CRUDService<MenuItemMetadata> {
@@ -27,8 +28,9 @@ export class MenuItemMetadataService extends CRUDService<MenuItemMetadata> {
27
28
  readonly crudHelperService: CrudHelperService,
28
29
  @InjectEntityManager()
29
30
  readonly entityManager: EntityManager,
30
- @InjectRepository(MenuItemMetadata, 'default')
31
- readonly repo: Repository<MenuItemMetadata>,
31
+ // @InjectRepository(MenuItemMetadata, 'default')
32
+ // readonly repo: Repository<MenuItemMetadata>,
33
+ readonly repo: MenuItemMetadataRepository,
32
34
  readonly moduleRef: ModuleRef
33
35
 
34
36
  ) {
@@ -83,8 +85,9 @@ export class MenuItemMetadataService extends CRUDService<MenuItemMetadata> {
83
85
  // },
84
86
  // relations: ['module', 'parentMenuItem', 'action']
85
87
  // });
86
- const menuItems = await this.repo
87
- .createQueryBuilder('menuItem')
88
+ const qb = await this.repo.createSecurityRuleAwareQueryBuilder('menuItem')
89
+
90
+ const menuItems = await qb
88
91
  .leftJoinAndSelect('menuItem.module', 'module')
89
92
  .leftJoinAndSelect('menuItem.parentMenuItem', 'parentMenuItem')
90
93
  .leftJoinAndSelect('menuItem.action', 'action')
@@ -1,13 +1,19 @@
1
1
  import { BadRequestException, Injectable, Logger, NotFoundException } from '@nestjs/common';
2
- import { InjectDataSource, InjectRepository } from '@nestjs/typeorm';
2
+ import { InjectDataSource } from '@nestjs/typeorm';
3
3
  import * as fs from 'fs/promises'; // Use the Promise-based version of fs for async/await
4
4
  import { DataSource, EntityManager, In, Repository, SelectQueryBuilder } from 'typeorm';
5
5
  import { CreateModelMetadataDto } from '../dtos/create-model-metadata.dto';
6
6
  import { ModelMetadata } from '../entities/model-metadata.entity';
7
7
  import { ModuleMetadata } from '../entities/module-metadata.entity';
8
8
 
9
+ import { classify, dasherize } from '@angular-devkit/core/src/utils/strings';
10
+ import { ERROR_MESSAGES } from 'src/constants/error-messages';
11
+ import { DisallowInProduction } from 'src/decorators/disallow-in-production.decorator';
9
12
  import { SolidFieldType } from 'src/dtos/create-field-metadata.dto';
13
+ import { PermissionMetadata } from 'src/entities/permission-metadata.entity';
10
14
  import { ModuleMetadataHelperService } from 'src/helpers/module-metadata-helper.service';
15
+ import { FieldMetadataRepository } from 'src/repository/field-metadata.repository';
16
+ import { ModelMetadataRepository } from 'src/repository/model-metadata.repository';
11
17
  import { BasicFilterDto } from '../dtos/basic-filters.dto';
12
18
  import { UpdateModelMetaDataDto } from '../dtos/update-model-metadata.dto';
13
19
  import { ActionMetadata } from '../entities/action-metadata.entity';
@@ -24,19 +30,17 @@ import { CrudHelperService } from './crud-helper.service';
24
30
  import { FieldMetadataService } from './field-metadata.service';
25
31
  import { MediaStorageProviderMetadataService } from './media-storage-provider-metadata.service';
26
32
  import { RoleMetadataService } from './role-metadata.service';
27
- import { PermissionMetadata } from 'src/entities/permission-metadata.entity';
28
- import { classify, dasherize } from '@angular-devkit/core/src/utils/strings';
29
- import { DisallowInProduction } from 'src/decorators/disallow-in-production.decorator';
30
- import { ERROR_MESSAGES } from 'src/constants/error-messages';
31
33
 
32
34
  @Injectable()
33
35
  export class ModelMetadataService {
34
36
  private logger = new Logger('ModelMetadataService');
35
37
  constructor(
36
- @InjectRepository(ModelMetadata)
37
- private readonly modelMetadataRepo: Repository<ModelMetadata>,
38
- @InjectRepository(FieldMetadata)
39
- private readonly fieldMetadataRepo: Repository<FieldMetadata>,
38
+ // @InjectRepository(ModelMetadata)
39
+ // private readonly modelMetadataRepo: Repository<ModelMetadata>,
40
+ // @InjectRepository(FieldMetadata)
41
+ // private readonly fieldMetadataRepo: Repository<FieldMetadata>,
42
+ private readonly modelMetadataRepo: ModelMetadataRepository,
43
+ private readonly fieldMetadataRepo: FieldMetadataRepository,
40
44
  private readonly schematicService: SchematicService,
41
45
  @InjectDataSource()
42
46
  private readonly dataSource: DataSource,
@@ -55,7 +59,7 @@ export class ModelMetadataService {
55
59
  let { limit, offset } = basicFilterDto;
56
60
 
57
61
  // Create above query on pincode table using query builder
58
- var qb: SelectQueryBuilder<ModelMetadata> = this.modelMetadataRepo.createQueryBuilder(alias)
62
+ var qb: SelectQueryBuilder<ModelMetadata> = await this.modelMetadataRepo.createSecurityRuleAwareQueryBuilder(alias)
59
63
  qb = await this.crudHelperService.buildFilterQuery(qb, basicFilterDto, alias);
60
64
 
61
65
  // Get the records and the count
@@ -555,50 +559,52 @@ export class ModelMetadataService {
555
559
  return;
556
560
  }
557
561
 
558
- this.logger.log(`Cleaning up for model: ${modelEntity.singularName} belonging to module: ${modelEntity.module.name}`);
559
-
560
- const modulePath = await this.moduleMetadataHelperService.getModulePath(modelEntity.module.name);
561
- // /Users/harishpatel/Code/javascript/school-fees-portal/solid-api/src/solid-core
562
- this.logger.log(`Module path: ${modulePath}`);
563
-
564
- const filesToDelete = [];
565
- // <singularName>.entity.ts | The TypeORM model that needs to be deleted. | Automatic
566
- const entityFilePath = `${modulePath}/entities/${dasherize(modelEntity.singularName)}.entity.ts`;
567
- filesToDelete.push(entityFilePath);
568
- this.logger.log(`About to delete entity file path: ${entityFilePath}`);
569
-
570
- // <singularName>.create.dto.ts | The TypeORM model that needs to be deleted. | Automatic
571
- const createDtoFilePath = `${modulePath}/dtos/create-${dasherize(modelEntity.singularName)}.dto.ts`;
572
- filesToDelete.push(createDtoFilePath);
573
- this.logger.log(`About to delete create DTO file path: ${createDtoFilePath}`);
574
-
575
- // <singularName>.update.dto.ts | The TypeORM model that needs to be deleted. | Automatic
576
- const updateDtoFilePath = `${modulePath}/dtos/update-${dasherize(modelEntity.singularName)}.dto.ts`;
577
- filesToDelete.push(updateDtoFilePath);
578
- this.logger.log(`About to delete update DTO file path: ${updateDtoFilePath}`);
579
-
580
- // <singularName>.repository.ts | The TypeORM model that needs to be deleted. | Automatic
581
- const repositoryFilePath = `${modulePath}/repositories/${dasherize(modelEntity.singularName)}.repository.ts`;
582
- filesToDelete.push(repositoryFilePath);
583
- this.logger.log(`About to delete repository file path: ${repositoryFilePath}`);
584
-
585
- // <singularName>.service.ts | The TypeORM model that needs to be deleted. | Automatic
586
- const serviceFilePath = `${modulePath}/services/${dasherize(modelEntity.singularName)}.service.ts`;
587
- filesToDelete.push(serviceFilePath);
588
- this.logger.log(`About to delete service file path: ${serviceFilePath}`);
589
-
590
- // <singularName>.controller.ts | The TypeORM model that needs to be deleted. | Automatic
591
- const controllerFilePath = `${modulePath}/controllers/${dasherize(modelEntity.singularName)}.controller.ts`;
592
- filesToDelete.push(controllerFilePath);
593
- this.logger.log(`About to delete controller file path: ${controllerFilePath}`);
594
-
595
- for (let i = 0; i < filesToDelete.length; i++) {
596
- const fileToDelete = filesToDelete[i];
597
- try {
598
- await fs.unlink(fileToDelete);
599
- this.logger.log(`Deleted file: ${fileToDelete}`);
600
- } catch (error) {
601
- this.logger.error(`Error deleting file: ${fileToDelete}`, error);
562
+ this.logger.log(`Cleaning up for model: ${modelEntity.singularName} belonging to module: ${modelEntity.module?.name}`);
563
+
564
+ const modulePath = await this.moduleMetadataHelperService.getModulePath(modelEntity.module?.name);
565
+ if (modulePath) {
566
+ // /Users/harishpatel/Code/javascript/school-fees-portal/solid-api/src/solid-core
567
+ this.logger.log(`Module path: ${modulePath}`);
568
+
569
+ const filesToDelete = [];
570
+ // <singularName>.entity.ts | The TypeORM model that needs to be deleted. | Automatic
571
+ const entityFilePath = `${modulePath}/entities/${dasherize(modelEntity.singularName)}.entity.ts`;
572
+ filesToDelete.push(entityFilePath);
573
+ this.logger.log(`About to delete entity file path: ${entityFilePath}`);
574
+
575
+ // <singularName>.create.dto.ts | The TypeORM model that needs to be deleted. | Automatic
576
+ const createDtoFilePath = `${modulePath}/dtos/create-${dasherize(modelEntity.singularName)}.dto.ts`;
577
+ filesToDelete.push(createDtoFilePath);
578
+ this.logger.log(`About to delete create DTO file path: ${createDtoFilePath}`);
579
+
580
+ // <singularName>.update.dto.ts | The TypeORM model that needs to be deleted. | Automatic
581
+ const updateDtoFilePath = `${modulePath}/dtos/update-${dasherize(modelEntity.singularName)}.dto.ts`;
582
+ filesToDelete.push(updateDtoFilePath);
583
+ this.logger.log(`About to delete update DTO file path: ${updateDtoFilePath}`);
584
+
585
+ // <singularName>.repository.ts | The TypeORM model that needs to be deleted. | Automatic
586
+ const repositoryFilePath = `${modulePath}/repositories/${dasherize(modelEntity.singularName)}.repository.ts`;
587
+ filesToDelete.push(repositoryFilePath);
588
+ this.logger.log(`About to delete repository file path: ${repositoryFilePath}`);
589
+
590
+ // <singularName>.service.ts | The TypeORM model that needs to be deleted. | Automatic
591
+ const serviceFilePath = `${modulePath}/services/${dasherize(modelEntity.singularName)}.service.ts`;
592
+ filesToDelete.push(serviceFilePath);
593
+ this.logger.log(`About to delete service file path: ${serviceFilePath}`);
594
+
595
+ // <singularName>.controller.ts | The TypeORM model that needs to be deleted. | Automatic
596
+ const controllerFilePath = `${modulePath}/controllers/${dasherize(modelEntity.singularName)}.controller.ts`;
597
+ filesToDelete.push(controllerFilePath);
598
+ this.logger.log(`About to delete controller file path: ${controllerFilePath}`);
599
+
600
+ for (let i = 0; i < filesToDelete.length; i++) {
601
+ const fileToDelete = filesToDelete[i];
602
+ try {
603
+ await fs.unlink(fileToDelete);
604
+ this.logger.log(`Deleted file: ${fileToDelete}`);
605
+ } catch (error) {
606
+ this.logger.error(`Error deleting file: ${fileToDelete}`, error);
607
+ }
602
608
  }
603
609
  }
604
610
 
@@ -655,7 +661,7 @@ export class ModelMetadataService {
655
661
  await viewRepo.delete({ model: { id: modelEntity.id } })
656
662
 
657
663
  // <moduleName>-metadata.json | Remove references to this model in the model metadata, menu, action & view sections. | Automatic
658
- const filePath = await this.moduleMetadataHelperService.getModuleMetadataFilePath(modelEntity.module.name);
664
+ const filePath = await this.moduleMetadataHelperService.getModuleMetadataFilePath(modelEntity.module?.name);
659
665
  const metaData = await this.moduleMetadataHelperService.getModuleMetadataConfiguration(filePath);
660
666
  if (metaData) {
661
667
  const existingModelIndex = metaData.moduleMetadata.models.findIndex(
@@ -668,13 +674,13 @@ export class ModelMetadataService {
668
674
  }
669
675
 
670
676
  // Remove references to this model in the menu, action & view sections.
671
- metaData.moduleMetadata.menus = metaData.moduleMetadata.menus.filter(
677
+ metaData.moduleMetadata.menus = metaData.moduleMetadata?.menus?.filter(
672
678
  (menu: any) => menu.modelUserKey !== modelEntity.singularName
673
679
  );
674
- metaData.moduleMetadata.actions = metaData.moduleMetadata.actions.filter(
680
+ metaData.moduleMetadata.actions = metaData.moduleMetadata?.actions?.filter(
675
681
  (action: any) => action.modelUserKey !== modelEntity.singularName
676
682
  );
677
- metaData.moduleMetadata.views = metaData.moduleMetadata.views.filter(
683
+ metaData.moduleMetadata.views = metaData.moduleMetadata?.views?.filter(
678
684
  (view: any) => view.modelUserKey !== modelEntity.singularName
679
685
  );
680
686
 
@@ -23,6 +23,8 @@ import { ModelMetadataService } from './model-metadata.service';
23
23
  import { ModuleMetadataHelperService } from 'src/helpers/module-metadata-helper.service';
24
24
  import { DisallowInProduction } from 'src/decorators/disallow-in-production.decorator';
25
25
  import { ERROR_MESSAGES } from 'src/constants/error-messages';
26
+ import Module from 'module';
27
+ import { ModuleMetadataRepository } from 'src/repository/module-metadata.repository';
26
28
 
27
29
  @Injectable()
28
30
  export class ModuleMetadataService {
@@ -31,8 +33,9 @@ export class ModuleMetadataService {
31
33
  constructor(
32
34
  @InjectDataSource()
33
35
  private readonly dataSource: DataSource,
34
- @InjectRepository(ModuleMetadata)
35
- private readonly moduleMetadataRepo: Repository<ModuleMetadata>,
36
+ // @InjectRepository(ModuleMetadata)
37
+ // private readonly moduleMetadataRepo: Repository<ModuleMetadata>,
38
+ private readonly moduleMetadataRepo: ModuleMetadataRepository,
36
39
  private readonly crudHelperService: CrudHelperService,
37
40
  private readonly schematicService: SchematicService,
38
41
  private readonly configService: ConfigService,
@@ -50,7 +53,7 @@ export class ModuleMetadataService {
50
53
  let { limit, offset } = basicFilterDto;
51
54
 
52
55
  // Create above query on pincode table using query builder
53
- var qb: SelectQueryBuilder<ModuleMetadata> = this.moduleMetadataRepo.createQueryBuilder(alias)
56
+ var qb: SelectQueryBuilder<ModuleMetadata> = await this.moduleMetadataRepo.createSecurityRuleAwareQueryBuilder(alias)
54
57
  qb = await this.crudHelperService.buildFilterQuery(qb, basicFilterDto, alias);
55
58
 
56
59
  // Get the records and the count
@@ -11,6 +11,7 @@ import { CrudHelperService } from "src/services/crud-helper.service";
11
11
 
12
12
 
13
13
  import { MqMessageQueue } from '../entities/mq-message-queue.entity';
14
+ import { MqMessageQueueRepository } from 'src/repository/mq-message-queue.repository';
14
15
 
15
16
  @Injectable()
16
17
  export class MqMessageQueueService extends CRUDService<MqMessageQueue> {
@@ -24,8 +25,9 @@ export class MqMessageQueueService extends CRUDService<MqMessageQueue> {
24
25
  readonly crudHelperService: CrudHelperService,
25
26
  @InjectEntityManager()
26
27
  readonly entityManager: EntityManager,
27
- @InjectRepository(MqMessageQueue)
28
- readonly repo: Repository<MqMessageQueue>,
28
+ // @InjectRepository(MqMessageQueue)
29
+ // readonly repo: Repository<MqMessageQueue>,
30
+ readonly repo: MqMessageQueueRepository,
29
31
  readonly moduleRef: ModuleRef
30
32
 
31
33
  ) {