@solidstarters/solid-core 1.2.191 → 1.2.192

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 +0 -1
  83. package/dist/index.d.ts.map +1 -1
  84. package/dist/index.js +0 -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 +0 -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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@solidstarters/solid-core",
3
- "version": "1.2.191",
3
+ "version": "1.2.192",
4
4
  "description": "This module is a NestJS module containing all the required core providers required by a Solid application",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -95,10 +95,10 @@
95
95
  "nest-commander": "^3.12.5",
96
96
  "nest-winston": "^1.9.7",
97
97
  "nestjs-cls": "^5.4.3",
98
+ "reflect-metadata": "^0.2.2",
98
99
  "typeorm": "^0.3.20",
99
100
  "typeorm-naming-strategies": "^4.1.0",
100
- "winston": "^3.17.0",
101
- "reflect-metadata": "^0.2.2"
101
+ "winston": "^3.17.0"
102
102
  },
103
103
  "devDependencies": {
104
104
  "@angular-devkit/schematics": "^19.2.6",
@@ -144,6 +144,7 @@
144
144
  "nest-commander": "^3.12.5",
145
145
  "nest-winston": "^1.9.7",
146
146
  "prettier": "^3.0.0",
147
+ "reflect-metadata": "^0.2.2",
147
148
  "source-map-support": "^0.5.21",
148
149
  "supertest": "^6.3.3",
149
150
  "ts-jest": "^29.1.0",
@@ -153,8 +154,7 @@
153
154
  "typeorm": "^0.3.20",
154
155
  "typeorm-naming-strategies": "^4.1.0",
155
156
  "typescript": "^5.1.3",
156
- "winston": "^3.17.0",
157
- "reflect-metadata": "^0.2.2"
157
+ "winston": "^3.17.0"
158
158
  },
159
159
  "jest": {
160
160
  "moduleFileExtensions": [
package/rebuild.sh CHANGED
@@ -1,6 +1,5 @@
1
1
  #!/usr/bin/env bash
2
2
  npm i
3
- npm run build
4
- rm ~/.nvm/versions/node/v22.13.1/bin/solidCore
5
- npm i -g
3
+ npm run build
4
+ npm i -g --force
6
5
  chmod +x dist/cli.js
@@ -2,8 +2,8 @@ import { registerAs } from '@nestjs/config';
2
2
 
3
3
  export const iamConfig = registerAs('iam', () => {
4
4
  return {
5
- passwordlessRegistration: (process.env.IAM_PASSWORD_LESS_REGISTRATION ?? 'false') === 'true',
6
- iamPasswordRegistrationEnabled: (process.env.IAM_PASSWORD_REGISTRATION_ENABLED ?? 'true') === 'true',
5
+ passwordLessAuth: (process.env.IAM_PASSWORD_LESS_AUTH?.trim() ?? 'false') === 'true',
6
+ passwordBasedAuth: (process.env.IAM_PASSWORD_BASED_AUTH?.trim() ?? 'true') === 'true',
7
7
  passwordlessRegistrationValidateWhat: (process.env.IAM_PASSWORD_LESS_REGISTRATION_VALIDATE_WHAT ?? 'email').split(',').map((item) => item.trim()),
8
8
  allowPublicRegistration: (process.env.IAM_ALLOW_PUBLIC_REGISTRATION ?? 'true') === 'true',
9
9
  activateUserOnRegistration: (process.env.IAM_ACTIVATE_USER_ON_REGISTRATION ?? 'true') === 'true',
@@ -15,6 +15,7 @@ export const iamConfig = registerAs('iam', () => {
15
15
  forgotPasswordSendVerificationTokenOn: process.env.IAM_FORGOT_PASSWORD_SEND_VERIFICATION_TOKEN_ON ?? 'email',
16
16
  forceChangePasswordOnFirstLogin:false,
17
17
  PASSWORD_REGEX: process.env.PASSWORD_REGEX || '^$|^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[^\\da-zA-Z]).*$',
18
+ PASSWORD_REGEX_ERROR_MESSAGE: process.env.PASSWORD_REGEX_ERROR_MESSAGE || 'Password must contain at least one uppercase, one lowercase, one number, and one special character.',
18
19
  PASSWORD_COMPLEXITY_DESC : process.env.PASSWORD_COMPLEXITY_DESC || 'Password must contain at least one uppercase, one lowercase, one number, and one special character.',
19
20
  googleOauth: {
20
21
  clientID: process.env.IAM_GOOGLE_OAUTH_CLIENT_ID,
@@ -23,6 +23,7 @@ export const ERROR_MESSAGES = {
23
23
  INCORRECT_CURRENT_PASSWORD: 'Incorrect current password specified.',
24
24
  PASSWORD_REUSED: 'Try a different password',
25
25
  INVALID_VERIFICATION_TOKEN: 'Invalid verification token',
26
+ INVALID_REFRESH_TOKEN: 'Invalid refresh token',
26
27
  ACCESS_DENIED: 'Access denied',
27
28
  INVALID_USER_PROFILE: 'Invalid user profile',
28
29
  GOOGLE_OAUTH_PROFILE_FETCH_FAILED: 'Failed to fetch user profile from Google OAuth service',
@@ -120,4 +121,6 @@ export const ERROR_MESSAGES = {
120
121
  PYTHON_EXECUTABLE_NOT_CONFIGURED: 'SolidX AI MCP python executable or client path not configured.',
121
122
  UNABLE_TO_RESOLVE_SOLID_COMMAND: 'Unable to resolve a solid_ command that was used to come up with this response.',
122
123
  UNABLE_TO_RESOLVE_MCP_HANDLER: 'Unable to resolve a mcp tool handler.',
124
+
125
+ DEFAULT_REGEX_PATTERN_NOT_MATCHING_ERROR_MSG: 'Invalid regex pattern.',
123
126
  };
@@ -99,7 +99,7 @@ export class AuthenticationController {
99
99
  @Post('logout')
100
100
  @Public()
101
101
  @HttpCode(HttpStatus.OK)
102
- async logout() {
103
- return this.authService.logout();
102
+ async logout(@Body('refreshToken') refreshToken: string) {
103
+ return this.authService.logout(refreshToken);
104
104
  }
105
105
  }
@@ -1,82 +1,75 @@
1
1
  import { Body, Controller, Delete, Get, Header, Param, Post, Put, Query, UploadedFiles, UseInterceptors } from '@nestjs/common';
2
2
  import { AnyFilesInterceptor } from '@nestjs/platform-express';
3
- import { ApiQuery, ApiTags } from '@nestjs/swagger';
4
- import { Public } from 'src/decorators/public.decorator';
3
+ import { ApiBearerAuth, ApiQuery, ApiTags } from '@nestjs/swagger';
5
4
  import { CreateEmailTemplateDto } from '../dtos/create-email-template.dto';
6
5
  import { UpdateEmailTemplateDto } from '../dtos/update-email-template.dto';
7
6
  import { EmailTemplateService } from '../services/email-template.service';
8
7
 
9
-
10
-
11
8
  // TODO: esInterop not working somehow, defaulted to using the require syntax to import Mailgen. Figure a better way to do this.
12
- // import { Mailgen } from 'mailgen';
13
9
  import Mailgen = require('mailgen');
14
10
 
15
11
 
16
12
  @Controller('email-template')
17
13
  @ApiTags("Common")
18
- // @UseGuards(ThrottlerGuard)
19
- // @SkipThrottle({ short: false, login: true, burst: true, sustained: true }) //Enable the short throttle only
20
14
  export class EmailTemplateController {
21
15
  constructor(private readonly service: EmailTemplateService) { }
22
16
 
23
- @Public()
24
- @Post()
25
- @UseInterceptors(AnyFilesInterceptor())
26
- create(@Body() createDto: CreateEmailTemplateDto, @UploadedFiles() files: Array<Express.Multer.File>) {
27
- return this.service.create(createDto, files);
28
- }
29
-
30
- @Public()
31
- @Post('/bulk')
32
- @UseInterceptors(AnyFilesInterceptor())
33
- insertMany(@Body() createDtos: CreateEmailTemplateDto[], @UploadedFiles() filesArray: Express.Multer.File[][] = []) {
34
- return this.service.insertMany(createDtos, filesArray);
35
- }
36
-
37
- @Public()
38
- @Put(':id')
39
- @UseInterceptors(AnyFilesInterceptor())
40
- update(@Param('id') id: number, @Body() updateDto: UpdateEmailTemplateDto, @UploadedFiles() files: Array<Express.Multer.File>) {
41
- return this.service.update(id, updateDto, files);
42
- }
43
-
44
- @Public()
45
- @ApiQuery({ name: 'showSoftDeleted', required: false, type: Boolean })
46
- @ApiQuery({ name: 'showOnlySoftDeleted', required: false, type: Boolean })
47
- @ApiQuery({ name: 'limit', required: false, type: Number })
48
- @ApiQuery({ name: 'offset', required: false, type: Number })
49
- @ApiQuery({ name: 'fields', required: false, type: Array })
50
- @ApiQuery({ name: 'sort', required: false, type: Array })
51
- @ApiQuery({ name: 'groupBy', required: false, type: Array })
52
- @ApiQuery({ name: 'populate', required: false, type: Array })
53
- @ApiQuery({ name: 'populateMedia', required: false, type: Array })
54
- @ApiQuery({ name: 'filters', required: false, type: Array })
55
- @Get()
56
- async findMany(@Query() query: any) {
57
- return this.service.find(query);
58
- }
59
-
60
- @Public()
61
- @Get(':id')
62
- async findOne(@Param('id') id: string, @Query() query: any) {
63
- return this.service.findOne(+id, query);
64
- }
65
-
66
- @Delete('/bulk')
67
- async deleteMany(@Body() ids: number[]) {
68
- return this.service.deleteMany(ids);
69
- }
70
-
71
- @Public()
72
- @Delete(':id')
73
- async delete(@Param('id') id: number) {
74
- return this.service.delete(id);
75
- }
76
- // /api/email-templates/mailgen-template/otp-template
77
- // @ApiBearerAuth("jwt")
78
- // @Roles('Admin')
79
- @Public()
17
+ @ApiBearerAuth("jwt")
18
+ @Post()
19
+ @UseInterceptors(AnyFilesInterceptor())
20
+ create(@Body() createDto: CreateEmailTemplateDto, @UploadedFiles() files: Array<Express.Multer.File>) {
21
+ return this.service.create(createDto, files);
22
+ }
23
+
24
+ @ApiBearerAuth("jwt")
25
+ @Post('/bulk')
26
+ @UseInterceptors(AnyFilesInterceptor())
27
+ insertMany(@Body() createDtos: CreateEmailTemplateDto[], @UploadedFiles() filesArray: Express.Multer.File[][] = []) {
28
+ return this.service.insertMany(createDtos, filesArray);
29
+ }
30
+
31
+ @ApiBearerAuth("jwt")
32
+ @Put(':id')
33
+ @UseInterceptors(AnyFilesInterceptor())
34
+ update(@Param('id') id: number, @Body() updateDto: UpdateEmailTemplateDto, @UploadedFiles() files: Array<Express.Multer.File>) {
35
+ return this.service.update(id, updateDto, files);
36
+ }
37
+
38
+ @ApiBearerAuth("jwt")
39
+ @ApiQuery({ name: 'showSoftDeleted', required: false, type: Boolean })
40
+ @ApiQuery({ name: 'showOnlySoftDeleted', required: false, type: Boolean })
41
+ @ApiQuery({ name: 'limit', required: false, type: Number })
42
+ @ApiQuery({ name: 'offset', required: false, type: Number })
43
+ @ApiQuery({ name: 'fields', required: false, type: Array })
44
+ @ApiQuery({ name: 'sort', required: false, type: Array })
45
+ @ApiQuery({ name: 'groupBy', required: false, type: Array })
46
+ @ApiQuery({ name: 'populate', required: false, type: Array })
47
+ @ApiQuery({ name: 'populateMedia', required: false, type: Array })
48
+ @ApiQuery({ name: 'filters', required: false, type: Array })
49
+ @Get()
50
+ async findMany(@Query() query: any) {
51
+ return this.service.find(query);
52
+ }
53
+
54
+ @ApiBearerAuth("jwt")
55
+ @Get(':id')
56
+ async findOne(@Param('id') id: string, @Query() query: any) {
57
+ return this.service.findOne(+id, query);
58
+ }
59
+
60
+ @ApiBearerAuth("jwt")
61
+ @Delete('/bulk')
62
+ async deleteMany(@Body() ids: number[]) {
63
+ return this.service.deleteMany(ids);
64
+ }
65
+
66
+ @ApiBearerAuth("jwt")
67
+ @Delete(':id')
68
+ async delete(@Param('id') id: number) {
69
+ return this.service.delete(id);
70
+ }
71
+
72
+ @ApiBearerAuth("jwt")
80
73
  @Get('mailgen-template/:templateType')
81
74
  @Header('content-type', 'text/html')
82
75
  generateMailgenTemplate(@Param('templateType') templateType: string) {
@@ -6,6 +6,8 @@ import { CreateExportTemplateDto } from '../dtos/create-export-template.dto';
6
6
  import { UpdateExportTemplateDto } from '../dtos/update-export-template.dto';
7
7
  import { Response } from 'express';
8
8
  import { StartExportSyncDto } from 'src/dtos/export.dto';
9
+ import { ActiveUser } from 'src/decorators/active-user.decorator';
10
+ import { ActiveUserData } from 'src/interfaces/active-user-data.interface';
9
11
 
10
12
  @ApiTags('Solid Core')
11
13
  @Controller('export-template') //FIXME: Change this to the model plural name
@@ -76,7 +78,7 @@ export class ExportTemplateController {
76
78
 
77
79
  @ApiBearerAuth("jwt")
78
80
  @Post('/startExport/sync')
79
- async startExportSync(@Body() dto: StartExportSyncDto, @Res() res: Response) {
81
+ async startExportSync(@Body() dto: StartExportSyncDto, @Res() res: Response, @ActiveUser() activeUser: ActiveUserData) {
80
82
  const { filters, ...rest } = dto;
81
83
  let updateDto = { ...rest };
82
84
  // Check if templateName is present → create template
@@ -84,7 +86,7 @@ export class ExportTemplateController {
84
86
  const newTemplate = await this.service.create(updateDto, []);
85
87
  updateDto = { ...updateDto, id: newTemplate.id };
86
88
  }
87
- const exportFileInfo = await this.service.startExportSync(updateDto, filters);
89
+ const exportFileInfo = await this.service.startExportSync(updateDto, filters, activeUser);
88
90
  if (exportFileInfo.exportStream === null) {
89
91
  throw new InternalServerErrorException("Export stream is null");
90
92
  }
@@ -5,6 +5,8 @@ import { ImportFormat, ImportTransactionService } from '../services/import-trans
5
5
  import { CreateImportTransactionDto } from '../dtos/create-import-transaction.dto';
6
6
  import { UpdateImportTransactionDto } from '../dtos/update-import-transaction.dto';
7
7
  import { Response } from 'express';
8
+ import { ActiveUser } from 'src/decorators/active-user.decorator';
9
+ import { ActiveUserData } from 'src/interfaces/active-user-data.interface';
8
10
 
9
11
  enum ShowSoftDeleted {
10
12
  INCLUSIVE = "inclusive",
@@ -124,8 +126,9 @@ export class ImportTransactionController {
124
126
 
125
127
  @ApiBearerAuth("jwt")
126
128
  @Post(':id/start-import/sync')
127
- async startImportSync(@Param('id') id: string) {
128
- return this.service.startImportSync(+id);
129
+ async startImportSync(@Param('id') id: string, @ActiveUser() activeUser: ActiveUserData) {
130
+ console.log("Active User in startImportSync:", activeUser);
131
+ return this.service.startImportSync(+id, activeUser);
129
132
  }
130
133
 
131
134
  @ApiBearerAuth("jwt")
@@ -1,7 +1,6 @@
1
1
  import { Body, Controller, Delete, Get, Param, Post, Put, Query, UploadedFiles, UseInterceptors } from '@nestjs/common';
2
2
  import { AnyFilesInterceptor } from '@nestjs/platform-express';
3
- import { ApiQuery, ApiTags } from '@nestjs/swagger';
4
- import { Public } from 'src/decorators/public.decorator';
3
+ import { ApiBearerAuth, ApiQuery, ApiTags } from '@nestjs/swagger';
5
4
  import { CreateSmsTemplateDto } from '../dtos/create-sms-template.dto';
6
5
  import { UpdateSmsTemplateDto } from '../dtos/update-sms-template.dto';
7
6
  import { SmsTemplateService } from '../services/sms-template.service';
@@ -14,57 +13,58 @@ import { SmsTemplateService } from '../services/sms-template.service';
14
13
  export class SmsTemplateController {
15
14
  constructor(private readonly service: SmsTemplateService) { }
16
15
 
17
- @Public()
18
- @Post()
19
- @UseInterceptors(AnyFilesInterceptor())
20
- create(@Body() createDto: CreateSmsTemplateDto, @UploadedFiles() files: Array<Express.Multer.File>) {
21
- return this.service.create(createDto, files);
22
- }
23
-
24
- @Public()
25
- @Post('/bulk')
26
- @UseInterceptors(AnyFilesInterceptor())
27
- insertMany(@Body() createDtos: CreateSmsTemplateDto[], @UploadedFiles() filesArray: Express.Multer.File[][] = []) {
28
- return this.service.insertMany(createDtos, filesArray);
29
- }
30
-
31
- @Public()
32
- @Put(':id')
33
- @UseInterceptors(AnyFilesInterceptor())
34
- update(@Param('id') id: number, @Body() updateDto: UpdateSmsTemplateDto, @UploadedFiles() files: Array<Express.Multer.File>) {
35
- return this.service.update(id, updateDto, files);
36
- }
37
-
38
- @Public()
39
- @ApiQuery({ name: 'showSoftDeleted', required: false, type: Boolean })
40
- @ApiQuery({ name: 'showOnlySoftDeleted', required: false, type: Boolean })
41
- @ApiQuery({ name: 'limit', required: false, type: Number })
42
- @ApiQuery({ name: 'offset', required: false, type: Number })
43
- @ApiQuery({ name: 'fields', required: false, type: Array })
44
- @ApiQuery({ name: 'sort', required: false, type: Array })
45
- @ApiQuery({ name: 'groupBy', required: false, type: Array })
46
- @ApiQuery({ name: 'populate', required: false, type: Array })
47
- @ApiQuery({ name: 'populateMedia', required: false, type: Array })
48
- @ApiQuery({ name: 'filters', required: false, type: Array })
49
- @Get()
50
- async findMany(@Query() query: any) {
51
- return this.service.find(query);
52
- }
53
-
54
- @Public()
55
- @Get(':id')
56
- async findOne(@Param('id') id: string, @Query() query: any) {
57
- return this.service.findOne(+id, query);
58
- }
59
-
60
- @Delete('/bulk')
61
- async deleteMany(@Body() ids: number[]) {
62
- return this.service.deleteMany(ids);
63
- }
64
-
65
- @Public()
66
- @Delete(':id')
67
- async delete(@Param('id') id: number) {
68
- return this.service.delete(id);
69
- }
16
+ @ApiBearerAuth("jwt")
17
+ @Post()
18
+ @UseInterceptors(AnyFilesInterceptor()) 
19
+ create(@Body() createDto: CreateSmsTemplateDto, @UploadedFiles() files: Array<Express.Multer.File>) {
20
+ return this.service.create(createDto, files);
21
+ }
22
+
23
+ @ApiBearerAuth("jwt")
24
+ @Post('/bulk')
25
+ @UseInterceptors(AnyFilesInterceptor())
26
+ insertMany(@Body() createDtos: CreateSmsTemplateDto[], @UploadedFiles() filesArray: Express.Multer.File[][] = []) {
27
+ return this.service.insertMany(createDtos, filesArray);
28
+ }
29
+
30
+ @ApiBearerAuth("jwt")
31
+ @Put(':id')
32
+ @UseInterceptors(AnyFilesInterceptor())
33
+ update(@Param('id') id: number, @Body() updateDto: UpdateSmsTemplateDto, @UploadedFiles() files: Array<Express.Multer.File>) {
34
+ return this.service.update(id, updateDto, files);
35
+ }
36
+
37
+ @ApiBearerAuth("jwt")
38
+ @ApiQuery({ name: 'showSoftDeleted', required: false, type: Boolean })
39
+ @ApiQuery({ name: 'showOnlySoftDeleted', required: false, type: Boolean })
40
+ @ApiQuery({ name: 'limit', required: false, type: Number })
41
+ @ApiQuery({ name: 'offset', required: false, type: Number })
42
+ @ApiQuery({ name: 'fields', required: false, type: Array })
43
+ @ApiQuery({ name: 'sort', required: false, type: Array })
44
+ @ApiQuery({ name: 'groupBy', required: false, type: Array })
45
+ @ApiQuery({ name: 'populate', required: false, type: Array })
46
+ @ApiQuery({ name: 'populateMedia', required: false, type: Array })
47
+ @ApiQuery({ name: 'filters', required: false, type: Array })
48
+ @Get()
49
+ async findMany(@Query() query: any) {
50
+ return this.service.find(query);
51
+ }
52
+
53
+ @ApiBearerAuth("jwt")
54
+ @Get(':id')
55
+ async findOne(@Param('id') id: string, @Query() query: any) {
56
+ return this.service.findOne(+id, query);
57
+ }
58
+
59
+ @ApiBearerAuth("jwt")
60
+ @Delete('/bulk')
61
+ async deleteMany(@Body() ids: number[]) {
62
+ return this.service.deleteMany(ids);
63
+ }
64
+
65
+ @ApiBearerAuth("jwt")
66
+ @Delete(':id')
67
+ async delete(@Param('id') id: number) {
68
+ return this.service.delete(id);
69
+ }
70
70
  }
@@ -0,0 +1,7 @@
1
+ export const IS_SECURITY_RULE_CONFIG_PROVIDER = 'IS_SECURITY_RULE_CONFIG_PROVIDER';
2
+
3
+ export const SecurityRuleConfigProvider = () => {
4
+ return (target: Function) => {
5
+ Reflect.defineMetadata(IS_SECURITY_RULE_CONFIG_PROVIDER, true, target);
6
+ };
7
+ };
@@ -8,34 +8,42 @@ import {
8
8
  } from 'class-validator';
9
9
  import { Injectable } from '@nestjs/common';
10
10
  import { iamConfig } from '../config/iam.config';
11
+ import { SettingService } from 'src/services/setting.service';
11
12
 
12
13
  interface SolidPasswordOptions extends ValidationOptions {
13
14
  regex?: RegExp | string;
14
- message ?: string;
15
+ message?: string;
15
16
  }
16
17
 
17
18
  @ValidatorConstraint({ async: false })
18
19
  @Injectable()
19
20
  export class SolidPasswordConstraint implements ValidatorConstraintInterface {
20
- validate(value: string, args: ValidationArguments) {
21
- if (!value) return false;
22
-
23
- const opts = args.constraints[0] as SolidPasswordOptions;
24
-
25
- // priority: decorator-provided regex → iamConfig().PASSWORD_REGEX
26
- const regex = opts?.regex || iamConfig().PASSWORD_REGEX;
27
-
28
- return new RegExp(regex).test(value);
21
+ private lastMessage = 'Password does not meet complexity requirements';
22
+
23
+ constructor(private readonly settingService: SettingService) {}
24
+
25
+ async validate(value: string, args: ValidationArguments) {
26
+ if (!value) return false;
27
+
28
+ const opts = args.constraints[0] as SolidPasswordOptions;
29
+
30
+ // Regex source
31
+ let regex = opts?.regex;
32
+ if (!regex) {
33
+ regex = await this.settingService.getConfigValue('authenticationPasswordRegex');
34
+ }
35
+
36
+ // Message source
37
+ this.lastMessage =
38
+ opts?.message || await this.settingService.getConfigValue('authenticationPasswordRegexErrorMessage');
39
+
40
+ return new RegExp(regex).test(value);
29
41
  }
30
-
42
+
31
43
  defaultMessage(args?: ValidationArguments): string {
32
- const opts = args?.constraints?.[0] as SolidPasswordOptions;
33
-
34
- // Just use the string from decorator if passed, otherwise use iamConfig
35
- return opts?.message || iamConfig().PASSWORD_COMPLEXITY_DESC;
44
+ return this.lastMessage;
36
45
  }
37
- }
38
-
46
+ }
39
47
  export function SolidPasswordRegex(
40
48
  options?: SolidPasswordOptions,
41
49
  ): PropertyDecorator {
@@ -12,6 +12,6 @@ export class ChangePasswordDto {
12
12
  currentPassword: string;
13
13
 
14
14
  @IsNotEmpty()
15
- @SolidPasswordRegex({ regex: /^$|^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^\da-zA-Z]).*$/})
15
+ @SolidPasswordRegex({ regex: /^$|^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^\da-zA-Z]).*$/, message: 'Password must contain at least one uppercase, one lowercase, one number, and one special character.' })
16
16
  newPassword: string;
17
17
  }
@@ -14,6 +14,6 @@ export class ConfirmForgotPasswordDto {
14
14
  verificationToken: string;
15
15
 
16
16
  @IsNotEmpty()
17
- @SolidPasswordRegex({ regex: /^$|^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^\da-zA-Z]).*$/})
17
+ @SolidPasswordRegex({ regex: /^$|^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^\da-zA-Z]).*$/, message: 'Password must contain at least one uppercase, one lowercase, one number, and one special character.' })
18
18
  password: string;
19
19
  }
@@ -39,4 +39,8 @@ export class CreateSavedFiltersDto {
39
39
  @IsOptional()
40
40
  @ApiProperty({ description: "This is the view related to saved filter." })
41
41
  viewUserKey: string;
42
+ @IsString()
43
+ @IsOptional()
44
+ @ApiProperty({ description: "A brief description providing additional context about the saved filter’s purpose or usage within the view." })
45
+ description: string;
42
46
  }
@@ -31,4 +31,9 @@ export class CreateSecurityRuleDto {
31
31
  @IsJSON()
32
32
  @ApiProperty()
33
33
  securityRuleConfig: any;
34
+
35
+ @IsOptional()
36
+ @IsString()
37
+ @ApiProperty()
38
+ securityRuleConfigProvider: string;
34
39
  }
@@ -42,4 +42,8 @@ export class UpdateSavedFiltersDto {
42
42
  @IsOptional()
43
43
  @ApiProperty({ description: "This is the view related to saved filter." })
44
44
  viewUserKey: string;
45
+ @IsString()
46
+ @IsOptional()
47
+ @ApiProperty({ description: "A brief description providing additional context about the saved filter’s purpose or usage within the view." })
48
+ description: string;
45
49
  }
@@ -1,4 +1,4 @@
1
- import { IsInt,IsOptional, IsString, IsNotEmpty, IsJSON } from 'class-validator';
1
+ import { IsInt, IsOptional, IsString, IsNotEmpty, IsJSON } from 'class-validator';
2
2
  import { ApiProperty } from '@nestjs/swagger';
3
3
 
4
4
  export class UpdateSecurityRuleDto {
@@ -36,4 +36,9 @@ export class UpdateSecurityRuleDto {
36
36
  @IsJSON()
37
37
  @ApiProperty()
38
38
  securityRuleConfig: any;
39
+
40
+ @IsOptional()
41
+ @IsString()
42
+ @ApiProperty()
43
+ securityRuleConfigProvider: string;
39
44
  }
@@ -3,6 +3,7 @@ import { CommonEntity } from "src/entities/common.entity";
3
3
  import { Column, Entity, Index, JoinColumn, ManyToOne } from "typeorm";
4
4
  import { MediaStorageProviderMetadata } from "./media-storage-provider-metadata.entity";
5
5
  import { ModelMetadata } from "./model-metadata.entity";
6
+ import { ERROR_MESSAGES } from "src/constants/error-messages";
6
7
 
7
8
  @Entity("ss_field_metadata")
8
9
  export class FieldMetadata extends CommonEntity {
@@ -35,7 +36,7 @@ export class FieldMetadata extends CommonEntity {
35
36
  @Column({ name: 'regex_pattern', nullable: true })
36
37
  regexPattern: string;
37
38
 
38
- @Column({ name: 'regex_pattern_not_maching_error_msg', nullable: true })
39
+ @Column({ name: 'regex_pattern_not_matching_error_msg', type: 'text', nullable: true, default: ERROR_MESSAGES.DEFAULT_REGEX_PATTERN_NOT_MATCHING_ERROR_MSG })
39
40
  regexPatternNotMatchingErrorMsg: string;
40
41
 
41
42
  @Column({ name: "required", default: false })
@@ -12,7 +12,7 @@ export class SavedFilters extends CommonEntity {
12
12
  name: string;
13
13
  @Column({ type: "boolean", nullable: true, default: false })
14
14
  isPrivate: boolean = false;
15
- @ManyToOne(() => User, { onDelete: "RESTRICT", nullable: false })
15
+ @ManyToOne(() => User, { onDelete: "CASCADE", nullable: true })
16
16
  @JoinColumn()
17
17
  user: User;
18
18
  @ManyToOne(() => ModelMetadata, { onDelete: "RESTRICT", nullable: false })
@@ -21,4 +21,6 @@ export class SavedFilters extends CommonEntity {
21
21
  @ManyToOne(() => ViewMetadata, { onDelete: "RESTRICT", nullable: false })
22
22
  @JoinColumn()
23
23
  view: ViewMetadata;
24
+ @Column({ name: "description", type: "text", nullable: true })
25
+ description: string;
24
26
  }
@@ -22,4 +22,6 @@ export class SecurityRule extends CommonEntity {
22
22
  @Column({ type: "text" })
23
23
  securityRuleConfig: any;
24
24
 
25
+ @Column({ type: "varchar", nullable: true })
26
+ securityRuleConfigProvider: string;
25
27
  }
@@ -1,18 +1,17 @@
1
1
  // Return the system fields metadata for a model
2
2
 
3
3
  import { Injectable, Logger } from "@nestjs/common";
4
+ import { ModelMetadataRepository } from "src/repository/model-metadata.repository";
4
5
  import { SolidRegistry } from "./solid-registry";
5
- import { In, Repository } from "typeorm";
6
- import { InjectRepository } from "@nestjs/typeorm";
7
- import { ModelMetadata } from "src/entities/model-metadata.entity";
8
6
 
9
7
  @Injectable()
10
8
  export class ModelMetadataHelperService {
11
9
  private readonly logger = new Logger(ModelMetadataHelperService.name);
12
10
 
13
11
  constructor(private readonly registry: SolidRegistry,
14
- @InjectRepository(ModelMetadata)
15
- private readonly modelMetadataRepo: Repository<ModelMetadata>,
12
+ // @InjectRepository(ModelMetadata)
13
+ // private readonly modelMetadataRepo: Repository<ModelMetadata>,
14
+ private readonly modelMetadataRepo: ModelMetadataRepository,
16
15
  ) {
17
16
  }
18
17
 
@@ -16,6 +16,9 @@ export class ModuleMetadataHelperService {
16
16
  // }
17
17
 
18
18
  async getModuleMetadataConfiguration(configFilePath: string): Promise<any> {
19
+ if (!configFilePath) {
20
+ return null;
21
+ }
19
22
  try {
20
23
  const fileContent = await fs.readFile(configFilePath, 'utf8');
21
24
  return JSON.parse(fileContent);
@@ -28,10 +31,16 @@ export class ModuleMetadataHelperService {
28
31
  }
29
32
 
30
33
  async getModulePath(moduleName: string): Promise<string> {
34
+ if (!moduleName) {
35
+ return '';
36
+ }
31
37
  return path.resolve(process.cwd(), 'src', moduleName);
32
38
  }
33
39
 
34
40
  async getModuleMetadataFilePath(moduleName: string): Promise<string> {
41
+ if (!moduleName) {
42
+ return '';
43
+ }
35
44
  const dashModuleName = dasherize(moduleName);
36
45
  const folderPath = path.resolve(process.cwd(), 'module-metadata', dashModuleName);
37
46
  const filePath = path.join(folderPath, `${dashModuleName}-metadata.json`);