@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
@@ -1,8 +1,12 @@
1
- import { BadRequestException, Inject, NotFoundException, Optional } from "@nestjs/common";
2
- import { ConfigService, ConfigType } from "@nestjs/config";
1
+ import { BadRequestException, NotFoundException } from "@nestjs/common";
2
+ import { ConfigService } from "@nestjs/config";
3
3
  import { DiscoveryService, ModuleRef } from "@nestjs/core";
4
- import { EntityManager, In, IsNull, Not, QueryFailedError, SelectQueryBuilder } from "typeorm";
5
- import { Repository } from "typeorm/repository/Repository";
4
+ import { isArray } from "class-validator";
5
+ import { CommonEntity, SolidBaseRepository } from "src";
6
+ import { ERROR_MESSAGES } from "src/constants/error-messages";
7
+ import { SUCCESS_MESSAGES } from "src/constants/success-messages";
8
+ import { EntityManager, FindOptionsWhere, In, IsNull, Not, QueryFailedError, SelectQueryBuilder } from "typeorm";
9
+ import { QueryDeepPartialEntity } from "typeorm/query-builder/QueryPartialEntity";
6
10
  import { BasicFilterDto } from "../dtos/basic-filters.dto";
7
11
  import { ComputedFieldValueType, RelationType, SelectionValueType, SolidFieldType } from "../dtos/create-field-metadata.dto";
8
12
  import { MediaStorageProviderType } from "../dtos/create-media-storage-provider-metadata.dto";
@@ -31,16 +35,13 @@ import { UUIDFieldCrudManager } from "../helpers/field-crud-managers/UUIDFieldCr
31
35
  import { FieldCrudManager, MediaWithFullUrl } from "../interfaces";
32
36
  import { CrudHelperService } from "./crud-helper.service";
33
37
  import { FileService } from "./file.service";
38
+ import { HashingService } from "./hashing.service";
34
39
  import { getMediaStorageProvider } from "./mediaStorageProviders";
35
40
  import { ModelMetadataService } from "./model-metadata.service";
36
41
  import { ModuleMetadataService } from "./module-metadata.service";
37
- import { isArray } from "class-validator";
38
- import { ERROR_MESSAGES } from "src/constants/error-messages";
39
- import { SUCCESS_MESSAGES } from "src/constants/success-messages";
40
42
  import { RequestContextService } from "./request-context.service";
41
- import { HashingService } from "./hashing.service";
42
43
 
43
- export class CRUDService<T> { // Add two generic value i.e Person,CreatePersonDto, so we get the proper types in our service
44
+ export class CRUDService<T extends CommonEntity> { // Add two generic value i.e Person,CreatePersonDto, so we get the proper types in our service
44
45
 
45
46
  constructor(
46
47
  readonly modelMetadataService: ModelMetadataService,
@@ -50,7 +51,7 @@ export class CRUDService<T> { // Add two generic value i.e Person,CreatePersonDt
50
51
  readonly discoveryService: DiscoveryService,
51
52
  readonly crudHelperService: CrudHelperService,
52
53
  readonly entityManager: EntityManager,
53
- readonly repo: Repository<T>,
54
+ readonly repo: SolidBaseRepository<T>,
54
55
  readonly modelName: string,
55
56
  readonly moduleName: string,
56
57
  readonly moduleRef: ModuleRef,
@@ -87,7 +88,7 @@ export class CRUDService<T> { // Add two generic value i.e Person,CreatePersonDt
87
88
  // 5. Save the entity
88
89
  // For media, we need to use a storage provider and save the media, then save the associated uri against the entity or media table
89
90
  const entity = this.repo.create(createDto);
90
- const savedEntity = await this.repo.save(entity) as T;
91
+ const savedEntity = await this.repo.save(entity) as unknown as T;
91
92
 
92
93
  // 6. Save the media
93
94
  if (hasMediaFields) {
@@ -170,9 +171,8 @@ export class CRUDService<T> { // Add two generic value i.e Person,CreatePersonDt
170
171
  }
171
172
  const entity = await this.repo.findOne({
172
173
  where: {
173
- //@ts-ignore
174
174
  id: id,
175
- }
175
+ } as unknown as FindOptionsWhere<T>,
176
176
  });
177
177
  if (!entity) {
178
178
  throw new Error(`Entity [${this.moduleName}.${this.modelName}] with id ${id} not found`);
@@ -231,10 +231,10 @@ export class CRUDService<T> { // Add two generic value i.e Person,CreatePersonDt
231
231
  });
232
232
  const entity = await this.repo.findOne({
233
233
  where: {
234
- //@ts-ignore
235
234
  id: id,
236
- }
237
- });
235
+ } as unknown as FindOptionsWhere<T>,
236
+ }
237
+ );
238
238
  if (!entity) {
239
239
  throw new Error(`Entity [${this.moduleName}.${this.modelName}] with id ${id} not found`);
240
240
  }
@@ -444,7 +444,7 @@ export class CRUDService<T> { // Add two generic value i.e Person,CreatePersonDt
444
444
  requestContextService.setRequestFilter(basicFilterDto);
445
445
 
446
446
  // Create above query on pincode table using query builder
447
- var qb: SelectQueryBuilder<T> = this.repo.createQueryBuilder(alias)
447
+ var qb: SelectQueryBuilder<T> = await this.repo.createSecurityRuleAwareQueryBuilder(alias)
448
448
  qb = this.crudHelperService.buildFilterQuery(qb, basicFilterDto, alias);
449
449
  if (internationalisation && draftPublishWorkflow) {
450
450
  qb = this.crudHelperService.buildFilterQuery(qb, basicFilterDto, alias, internationalisation, draftPublishWorkflow, this.moduleRef);
@@ -493,7 +493,7 @@ export class CRUDService<T> { // Add two generic value i.e Person,CreatePersonDt
493
493
  // For each group, get the records and the count
494
494
  for (const group of groupByResult) {
495
495
  if (populateGroup) {
496
- let groupByQb: SelectQueryBuilder<T> = this.repo.createQueryBuilder(alias);
496
+ let groupByQb: SelectQueryBuilder<T> = await this.repo.createSecurityRuleAwareQueryBuilder(alias);
497
497
  groupByQb = this.crudHelperService.buildFilterQuery(groupByQb, groupFilter, alias);
498
498
  groupByQb = this.crudHelperService.buildGroupByRecordsQuery(groupByQb, group, alias);
499
499
  const [entities, count] = await groupByQb.getManyAndCount();
@@ -638,9 +638,8 @@ export class CRUDService<T> { // Add two generic value i.e Person,CreatePersonDt
638
638
 
639
639
  let entity = await this.repo.findOne({
640
640
  where: {
641
- //@ts-ignore
642
641
  id: id,
643
- },
642
+ } as unknown as FindOptionsWhere<T>,
644
643
  relations: normalizedPopulate,
645
644
  select: fields,
646
645
  });
@@ -688,7 +687,7 @@ export class CRUDService<T> { // Add two generic value i.e Person,CreatePersonDt
688
687
  transformedDto = await fieldManager.transformForCreate(createDto);
689
688
  }
690
689
  const entity = this.repo.create(transformedDto);
691
- entitiesForSave.push(entity as T);
690
+ entitiesForSave.push(entity as unknown as T);
692
691
  }
693
692
  // Save all entities in a single batch
694
693
  const savedEntities = await this.repo.save(entitiesForSave) as T[];
@@ -729,9 +728,8 @@ export class CRUDService<T> { // Add two generic value i.e Person,CreatePersonDt
729
728
  const id = ids[i]
730
729
  const entity = await this.repo.findOne({
731
730
  where: {
732
- //@ts-ignore
733
731
  id: id,
734
- }
732
+ } as unknown as FindOptionsWhere<T>,
735
733
  });
736
734
  removedEntities.push(entity);
737
735
  }
@@ -757,9 +755,8 @@ export class CRUDService<T> { // Add two generic value i.e Person,CreatePersonDt
757
755
 
758
756
  const softDeletedRows = await this.repo.findOne({
759
757
  where: {
760
- //@ts-ignore
761
758
  id, deletedAt: Not(IsNull())
762
- },
759
+ } as unknown as FindOptionsWhere<T>,
763
760
  withDeleted: true,
764
761
  });
765
762
 
@@ -768,9 +765,9 @@ export class CRUDService<T> { // Add two generic value i.e Person,CreatePersonDt
768
765
  }
769
766
 
770
767
  await this.repo.update(id, {
771
- //@ts-ignore
772
768
  deletedAt: null, deletedTracker: "not-deleted"
773
- });
769
+ } as unknown as QueryDeepPartialEntity<T>
770
+ );
774
771
 
775
772
  return { message: SUCCESS_MESSAGES.RECORD_RECOVERED, data: softDeletedRows };
776
773
  } catch (error) {
@@ -802,10 +799,9 @@ export class CRUDService<T> { // Add two generic value i.e Person,CreatePersonDt
802
799
  // Find soft-deleted records matching the given IDs
803
800
  const softDeletedRows = await this.repo.find({
804
801
  where: {
805
- //@ts-ignore
806
802
  id: In(ids),
807
803
  deletedAt: Not(IsNull()),
808
- },
804
+ } as unknown as FindOptionsWhere<T>,
809
805
  withDeleted: true,
810
806
  });
811
807
 
@@ -815,9 +811,8 @@ export class CRUDService<T> { // Add two generic value i.e Person,CreatePersonDt
815
811
 
816
812
  // Recover the specific records by setting deletedAt to null
817
813
  await this.repo.update(
818
- //@ts-ignore
819
- { id: In(ids) },
820
- { deletedAt: null, deletedTracker: "not-deleted" }
814
+ { id: In(ids) } as unknown as FindOptionsWhere<T>,
815
+ { deletedAt: null, deletedTracker: "not-deleted" } as unknown as QueryDeepPartialEntity<T>
821
816
  );
822
817
 
823
818
  return { message: SUCCESS_MESSAGES.SELECTED_RECORDS_RECOVERED, recoveredIds: ids };
@@ -12,6 +12,7 @@ import { CrudHelperService } from 'src/services/crud-helper.service';
12
12
 
13
13
 
14
14
  import { DashboardQuestionSqlDatasetConfig } from '../entities/dashboard-question-sql-dataset-config.entity';
15
+ import { DashboardQuestionSqlDatasetConfigRepository } from 'src/repository/dashboard-question-sql-dataset-config.repository';
15
16
 
16
17
  @Injectable()
17
18
  export class DashboardQuestionSqlDatasetConfigService extends CRUDService<DashboardQuestionSqlDatasetConfig>{
@@ -24,8 +25,9 @@ export class DashboardQuestionSqlDatasetConfigService extends CRUDService<Dashbo
24
25
  readonly crudHelperService: CrudHelperService,
25
26
  @InjectEntityManager()
26
27
  readonly entityManager: EntityManager,
27
- @InjectRepository(DashboardQuestionSqlDatasetConfig, 'default')
28
- readonly repo: Repository<DashboardQuestionSqlDatasetConfig>,
28
+ // @InjectRepository(DashboardQuestionSqlDatasetConfig, 'default')
29
+ // readonly repo: Repository<DashboardQuestionSqlDatasetConfig>,
30
+ readonly repo: DashboardQuestionSqlDatasetConfigRepository,
29
31
  readonly moduleRef: ModuleRef
30
32
 
31
33
  ) {
@@ -17,6 +17,7 @@ import { DashboardQuestion } from '../entities/dashboard-question.entity';
17
17
  import { SqlExpression, SqlExpressionOperator } from './question-data-providers/chartjs-sql-data-provider.service';
18
18
  import { DashboardService } from './dashboard.service';
19
19
  import { Dashboard } from 'src/entities/dashboard.entity';
20
+ import { DashboardQuestionRepository } from 'src/repository/dashboard-question.repository';
20
21
 
21
22
  enum SOURCE_TYPE {
22
23
  SQL = 'sql',
@@ -39,8 +40,9 @@ export class DashboardQuestionService extends CRUDService<DashboardQuestion> {
39
40
  readonly crudHelperService: CrudHelperService,
40
41
  @InjectEntityManager()
41
42
  readonly entityManager: EntityManager,
42
- @InjectRepository(DashboardQuestion, 'default')
43
- readonly repo: Repository<DashboardQuestion>,
43
+ // @InjectRepository(DashboardQuestion, 'default')
44
+ // readonly repo: Repository<DashboardQuestion>,
45
+ readonly repo: DashboardQuestionRepository,
44
46
  readonly moduleRef: ModuleRef,
45
47
  readonly solidRegistry: SolidRegistry, // Assuming solidRegistry is injected for data providers
46
48
  ) {
@@ -12,6 +12,8 @@ import { ModuleMetadataService } from 'src/services/module-metadata.service';
12
12
 
13
13
 
14
14
  import { DashboardVariable } from '../entities/dashboard-variable.entity';
15
+ import { Dashboard } from 'src/entities/dashboard.entity';
16
+ import { DashboardVariableRepository } from 'src/repository/dashboard-variable.repository';
15
17
 
16
18
  @Injectable()
17
19
  export class DashboardVariableService extends CRUDService<DashboardVariable> {
@@ -25,8 +27,9 @@ export class DashboardVariableService extends CRUDService<DashboardVariable> {
25
27
  readonly crudHelperService: CrudHelperService,
26
28
  @InjectEntityManager()
27
29
  readonly entityManager: EntityManager,
28
- @InjectRepository(DashboardVariable, 'default')
29
- readonly repo: Repository<DashboardVariable>,
30
+ // @InjectRepository(DashboardVariable, 'default')
31
+ // readonly repo: Repository<DashboardVariable>,
32
+ readonly repo: DashboardVariableRepository,
30
33
  readonly moduleRef: ModuleRef,
31
34
  ) {
32
35
  super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'dashboardVariable', 'solid-core', moduleRef);
@@ -0,0 +1,8 @@
1
+ docker exec -it mssql \
2
+ /opt/mssql-tools18/bin/sqlcmd \
3
+ -S localhost \
4
+ -U sa \
5
+ -P 'YourStrong!Passw0rd' \
6
+ -d mswipe_erp_solidx \
7
+ -C -b -r1 -e \
8
+ -i /tmp/ReportsAndHRMS.sql
@@ -15,6 +15,7 @@ import { FileService } from './file.service';
15
15
  import { MediaService } from './media.service';
16
16
  import { DiscoveryService, ModuleRef } from '@nestjs/core';
17
17
  import { CrudHelperService } from './crud-helper.service';
18
+ import { EmailTemplateRepository } from 'src/repository/email-template.repository';
18
19
 
19
20
  @Injectable()
20
21
  export class EmailTemplateService extends CRUDService<EmailTemplate>{
@@ -29,8 +30,9 @@ export class EmailTemplateService extends CRUDService<EmailTemplate>{
29
30
  readonly crudHelperService: CrudHelperService,
30
31
  @InjectEntityManager()
31
32
  readonly entityManager: EntityManager,
32
- @InjectRepository(EmailTemplate, 'default')
33
- readonly repo: Repository<EmailTemplate>,
33
+ // @InjectRepository(EmailTemplate, 'default')
34
+ // readonly repo: Repository<EmailTemplate>,
35
+ readonly repo: EmailTemplateRepository,
34
36
  readonly moduleRef: ModuleRef,
35
37
  ) {
36
38
  super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'emailTemplate', 'app-builder', moduleRef);
@@ -1,4 +1,4 @@
1
- import { Injectable } from '@nestjs/common';
1
+ import { ForbiddenException, Injectable } from '@nestjs/common';
2
2
  import { DiscoveryService, ModuleRef } from "@nestjs/core";
3
3
  import { InjectEntityManager, InjectRepository } from '@nestjs/typeorm';
4
4
  import { EntityManager, Repository } from 'typeorm';
@@ -19,11 +19,28 @@ import { Readable } from 'stream';
19
19
  import { ExportTemplate } from '../entities/export-template.entity';
20
20
  import { ExportTransactionFileInfo, ExportTransactionService } from './export-transaction.service';
21
21
  import { UpdateExportTemplateDto } from 'src/dtos/update-export-template.dto';
22
+ import { ExportTemplateRepository } from 'src/repository/export-template.repository';
23
+ import { ActiveUserData } from 'src/interfaces/active-user-data.interface';
24
+ import {upperFirst, camelCase} from 'lodash';
22
25
 
23
26
  @Injectable()
24
27
  export class ExportTemplateService extends CRUDService<ExportTemplate>{
25
- async startExportSync(updateDto: UpdateExportTemplateDto, filters:any): Promise<ExportTransactionFileInfo> {
28
+ async startExportSync(updateDto: UpdateExportTemplateDto, filters:any, activeUser: ActiveUserData): Promise<ExportTransactionFileInfo> {
26
29
  // Create the export transaction entry, with status 'started'
30
+ const modelMetadata = await this.modelMetadataService.findOne(updateDto?.modelMetadataId);
31
+ const modelName = upperFirst(camelCase(modelMetadata.singularName));
32
+ const permissionKey = `${modelName}Controller.findMany`;
33
+
34
+ const userPermissions = activeUser.permissions ?? [];
35
+ const hasPermission = Array.isArray(userPermissions)
36
+ ? userPermissions.includes(permissionKey)
37
+ : userPermissions[permissionKey] === true;
38
+
39
+ if (!hasPermission) {
40
+ throw new ForbiddenException(
41
+ `Missing permission: ${permissionKey}`
42
+ );
43
+ }
27
44
  const exportTransaction: CreateExportTransactionDto = await this.exportTransactionService.toDto({
28
45
  datetime: new Date(),
29
46
  status: 'started',
@@ -62,8 +79,9 @@ export class ExportTemplateService extends CRUDService<ExportTemplate>{
62
79
  readonly crudHelperService: CrudHelperService,
63
80
  @InjectEntityManager()
64
81
  readonly entityManager: EntityManager,
65
- @InjectRepository(ExportTemplate, 'default')
66
- readonly repo: Repository<ExportTemplate>,
82
+ // @InjectRepository(ExportTemplate, 'default')
83
+ // readonly repo: Repository<ExportTemplate>,
84
+ readonly repo: ExportTemplateRepository,
67
85
  readonly exportTransactionService: ExportTransactionService,
68
86
  readonly moduleRef: ModuleRef
69
87
  ) {
@@ -30,6 +30,10 @@ import { ModelMetadata } from 'src/entities/model-metadata.entity';
30
30
  import { UpdateExportTemplateDto } from 'src/dtos/update-export-template.dto';
31
31
  import { ERROR_MESSAGES } from 'src/constants/error-messages';
32
32
  import { ModelMetadataHelperService } from 'src/helpers/model-metadata-helper.service';
33
+ import { ExportTransactionRepository } from 'src/repository/export-transaction.repository';
34
+ import { Field } from 'mysql2/typings/mysql/lib/parsers/typeCast';
35
+ import { FieldMetadataRepository } from 'src/repository/field-metadata.repository';
36
+ import { ModelMetadataRepository } from 'src/repository/model-metadata.repository';
33
37
 
34
38
  const EXPORT_CHUNK_SIZE = 100;
35
39
  enum ExportStatus {
@@ -63,16 +67,19 @@ export class ExportTransactionService extends CRUDService<ExportTransaction> {
63
67
  readonly crudHelperService: CrudHelperService,
64
68
  @InjectEntityManager()
65
69
  readonly entityManager: EntityManager,
66
- @InjectRepository(ExportTransaction, 'default')
67
- readonly repo: Repository<ExportTransaction>,
70
+ // @InjectRepository(ExportTransaction, 'default')
71
+ // readonly repo: Repository<ExportTransaction>,
72
+ readonly repo: ExportTransactionRepository,
68
73
  readonly introspectService: SolidIntrospectService,
69
74
  readonly excelService: ExcelService,
70
75
  readonly csvService: CsvService,
71
76
  // readonly fieldMetadataService: FieldMetadataService,
72
- @InjectRepository(FieldMetadata, 'default')
73
- readonly fieldRepo: Repository<FieldMetadata>,
74
- @InjectRepository(ModelMetadata, 'default')
75
- readonly ModelMetadataRepo: Repository<ModelMetadata>,
77
+ // @InjectRepository(FieldMetadata, 'default')
78
+ // readonly fieldRepo: Repository<FieldMetadata>,
79
+ // @InjectRepository(ModelMetadata, 'default')
80
+ // readonly modelMetadataRepo: Repository<ModelMetadata>,
81
+ readonly fieldRepo: FieldMetadataRepository,
82
+ readonly modelMetadataRepo: ModelMetadataRepository,
76
83
  readonly moduleRef: ModuleRef,
77
84
  private readonly modelMetadataHelperService: ModelMetadataHelperService,
78
85
 
@@ -85,7 +92,7 @@ export class ExportTransactionService extends CRUDService<ExportTransaction> {
85
92
  try {
86
93
  // const loadedExportTransaction = await this.loadExportTransaction(id);
87
94
  // from updateDto, get modelId and get modelMetadata
88
- const modeldata = await this.ModelMetadataRepo.findOne({
95
+ const modeldata = await this.modelMetadataRepo.findOne({
89
96
  where: { id: updateDto?.modelMetadataId },
90
97
  relations: { fields: true },
91
98
  })
@@ -109,7 +116,7 @@ export class ExportTransactionService extends CRUDService<ExportTransaction> {
109
116
  try {
110
117
  // const loadedExportTransaction = await this.loadExportTransaction(id)
111
118
  // from updateDto, get modelId and get modelMetadata
112
- const modeldata = await this.ModelMetadataRepo.findOne({
119
+ const modeldata = await this.modelMetadataRepo.findOne({
113
120
  where: { id: updateDto?.modelMetadataId },
114
121
  relations: { fields: true },
115
122
  })
@@ -226,7 +233,7 @@ export class ExportTransactionService extends CRUDService<ExportTransaction> {
226
233
  const relatedModelsUserKeyMap = new Map<string, string>();
227
234
  for (const field of modelFields) {
228
235
  if (field.relationType && field.relationCoModelSingularName) {
229
- const relatedModelMetadata = await this.ModelMetadataRepo.findOne({
236
+ const relatedModelMetadata = await this.modelMetadataRepo.findOne({
230
237
  where: { singularName: field.relationCoModelSingularName },
231
238
  relations: ['userKeyField'],
232
239
  });
@@ -221,7 +221,7 @@ export class FieldMetadataService implements OnApplicationBootstrap {
221
221
  let { limit, offset, populateMedia } = basicFilterDto;
222
222
 
223
223
  // Create above query on pincode table using query builder
224
- var qb: SelectQueryBuilder<FieldMetadata> = this.fieldMetadataRepo.createQueryBuilder(alias)
224
+ var qb: SelectQueryBuilder<FieldMetadata> = await this.fieldMetadataRepo.createSecurityRuleAwareQueryBuilder(alias)
225
225
  qb = await this.crudHelperService.buildFilterQuery(qb, basicFilterDto, alias);
226
226
 
227
227
  // Get the records and the count
@@ -12,6 +12,7 @@ import { CrudHelperService } from 'src/services/crud-helper.service';
12
12
 
13
13
 
14
14
  import { ImportTransactionErrorLog } from '../entities/import-transaction-error-log.entity';
15
+ import { ImportTransactionErrorLogRepository } from 'src/repository/import-transaction-error-log.repository';
15
16
 
16
17
  @Injectable()
17
18
  export class ImportTransactionErrorLogService extends CRUDService<ImportTransactionErrorLog>{
@@ -24,8 +25,9 @@ export class ImportTransactionErrorLogService extends CRUDService<ImportTransact
24
25
  readonly crudHelperService: CrudHelperService,
25
26
  @InjectEntityManager()
26
27
  readonly entityManager: EntityManager,
27
- @InjectRepository(ImportTransactionErrorLog, 'default')
28
- readonly repo: Repository<ImportTransactionErrorLog>,
28
+ // @InjectRepository(ImportTransactionErrorLog, 'default')
29
+ // readonly repo: Repository<ImportTransactionErrorLog>,
30
+ readonly repo: ImportTransactionErrorLogRepository,
29
31
  readonly moduleRef: ModuleRef
30
32
 
31
33
  ) {
@@ -1,7 +1,7 @@
1
- import { BadRequestException, Injectable, Logger } from '@nestjs/common';
1
+ import { BadRequestException, ForbiddenException, Injectable, Logger } from '@nestjs/common';
2
2
  import { DiscoveryService, ModuleRef } from "@nestjs/core";
3
- import { InjectEntityManager, InjectRepository } from '@nestjs/typeorm';
4
- import { EntityManager, Repository } from 'typeorm';
3
+ import { InjectEntityManager } from '@nestjs/typeorm';
4
+ import { EntityManager } from 'typeorm';
5
5
 
6
6
  import { ConfigService } from '@nestjs/config';
7
7
  import { CrudHelperService } from 'src/services/crud-helper.service';
@@ -13,20 +13,25 @@ import { ModuleMetadataService } from 'src/services/module-metadata.service';
13
13
 
14
14
  import { classify } from '@angular-devkit/core/src/utils/strings';
15
15
  import { HttpService } from '@nestjs/axios';
16
+ import { ERROR_MESSAGES } from 'src/constants/error-messages';
16
17
  import { RelationFieldsCommand, RelationType, SolidFieldType } from 'src/dtos/create-field-metadata.dto';
17
18
  import { ImportInstructionsResponseDto, StandardImportInstructionsResponseDto } from 'src/dtos/import-instructions.dto';
18
19
  import { FieldMetadata } from 'src/entities/field-metadata.entity';
19
20
  import { ImportTransactionErrorLog } from 'src/entities/import-transaction-error-log.entity';
20
21
  import { ModelMetadata } from 'src/entities/model-metadata.entity';
22
+ import { parseFlexibleDate } from 'src/helpers/date.helper';
21
23
  import { MediaWithFullUrl } from 'src/interfaces';
24
+ import { ImportTransactionRepository } from 'src/repository/import-transaction.repository';
22
25
  import { Readable } from 'stream';
23
26
  import { v4 as uuidv4 } from 'uuid';
24
27
  import { ImportTransaction } from '../entities/import-transaction.entity';
25
28
  import { CsvService } from './csv.service';
26
29
  import { ExcelService } from './excel.service';
27
30
  import { SolidIntrospectService } from './solid-introspect.service';
28
- import { ERROR_MESSAGES } from 'src/constants/error-messages';
29
- import { parseFlexibleDate } from 'src/helpers/date.helper';
31
+ import { ModelMetadataHelperService } from 'src/helpers/model-metadata-helper.service';
32
+ import { getUserExcludedFields } from 'src/helpers/user-helper';
33
+ import { ActiveUserData } from 'src/interfaces/active-user-data.interface';
34
+ import {upperFirst, camelCase} from 'lodash';
30
35
 
31
36
  interface ImportTemplateFileInfo {
32
37
  stream: NodeJS.ReadableStream;
@@ -97,13 +102,15 @@ export class ImportTransactionService extends CRUDService<ImportTransaction> {
97
102
  readonly crudHelperService: CrudHelperService,
98
103
  @InjectEntityManager()
99
104
  readonly entityManager: EntityManager,
100
- @InjectRepository(ImportTransaction, 'default')
101
- readonly repo: Repository<ImportTransaction>,
105
+ // @InjectRepository(ImportTransaction, 'default')
106
+ // readonly repo: Repository<ImportTransaction>,
107
+ readonly repo: ImportTransactionRepository,
102
108
  readonly moduleRef: ModuleRef,
103
109
  readonly excelService: ExcelService,
104
110
  readonly csvService: CsvService,
105
111
  readonly httpService: HttpService,
106
112
  readonly introspectService: SolidIntrospectService,
113
+ private readonly modelMetadataHelperService: ModelMetadataHelperService,
107
114
  // readonly fieldMetadataService: FieldMetadataService,
108
115
  ) {
109
116
  super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'importTransaction', 'solid-core', moduleRef);
@@ -124,8 +131,16 @@ export class ImportTransactionService extends CRUDService<ImportTransaction> {
124
131
  if (!modelMetadata) {
125
132
  throw new Error(ERROR_MESSAGES.MODEL_METADATA_NOT_FOUND(modelMetadataId));
126
133
  }
134
+
135
+ const allFields = await this.modelMetadataHelperService.loadFieldHierarchy(
136
+ modelMetadata.singularName,
137
+ );
138
+
139
+ // Replace original fields with full hierarchy fields
140
+ // modelMetadata.fields = allFields;
141
+
127
142
  // Create a header row with the display names of the fields, excluding the media fields,computed fields
128
- const headers = this.fieldsAllowedForImport(modelMetadata.fields)
143
+ const headers = this.fieldsAllowedForImport(allFields)
129
144
  .map(field => field.displayName);
130
145
 
131
146
  // Depending on the format, generate the template
@@ -163,6 +178,19 @@ export class ImportTransactionService extends CRUDService<ImportTransaction> {
163
178
  throw new Error(ERROR_MESSAGES.MODEL_METADATA_NOT_FOUND(modelMetadataId));
164
179
  }
165
180
 
181
+ // Step 2: Load full field hierarchy (includes parent model fields)
182
+ const allFields = await this.modelMetadataHelperService.loadFieldHierarchy(
183
+ modelMetadata.singularName,
184
+ );
185
+
186
+ const systemFieldNames = this.modelMetadataHelperService
187
+ .getSystemFieldsMetadata()
188
+ .map(field => field.name);
189
+
190
+ const userExcluded = getUserExcludedFields();
191
+ // Replace modelMetadata.fields with combined (child + parent) fields
192
+ // modelMetadata.fields = allFields;
193
+
166
194
  // Create the standard import instructions
167
195
  const standardInstructions: StandardImportInstructionsResponseDto = {
168
196
  requiredFields: [],
@@ -176,8 +204,18 @@ export class ImportTransactionService extends CRUDService<ImportTransaction> {
176
204
  };
177
205
 
178
206
  // Iterate through the fields and populate the standard instructions
179
- for (const field of modelMetadata.fields) {
180
- if (field.isSystem) continue; // Skip system fields
207
+ for (const field of allFields) {
208
+ // Skip system fields
209
+ if (systemFieldNames.includes(field.name)) {
210
+ continue;
211
+ }
212
+
213
+ // Skip excluded user fields (NO model name check needed)
214
+ if (userExcluded.includes(field.name)) {
215
+ continue;
216
+ }
217
+
218
+ // if (field.isSystem) continue; // Skip system fields
181
219
  if (field.required) {
182
220
  standardInstructions.requiredFields.push(field.displayName);
183
221
  }
@@ -255,9 +293,22 @@ export class ImportTransactionService extends CRUDService<ImportTransaction> {
255
293
  };
256
294
  }
257
295
 
258
- async startImportSync(importTransactionId: number): Promise<ImportSyncResult> {
296
+ async startImportSync(importTransactionId: number, activeUser: ActiveUserData): Promise<ImportSyncResult> {
259
297
  // Load the import transaction for the given ID
260
298
  const importTransaction = await this.loadImportTransaction(importTransactionId);
299
+ const modelName = upperFirst(camelCase(importTransaction.modelMetadata.singularName));
300
+ const permissionKey = `${modelName}Controller.insertMany`;
301
+
302
+ const userPermissions = activeUser.permissions ?? [];
303
+ const hasPermission = Array.isArray(userPermissions)
304
+ ? userPermissions.includes(permissionKey)
305
+ : userPermissions[permissionKey] === true;
306
+
307
+ if (!hasPermission) {
308
+ throw new ForbiddenException(
309
+ `Missing permission: ${permissionKey}`
310
+ );
311
+ }
261
312
 
262
313
  // Get the import file media object from the import transaction
263
314
  const importFileMediaObject = this.getImportFileObject(importTransaction);
@@ -366,18 +417,43 @@ export class ImportTransactionService extends CRUDService<ImportTransaction> {
366
417
  }
367
418
 
368
419
 
420
+ // private async loadImportTransaction(importTransactionId: number) {
421
+ // const importTransaction = await this.findOne(importTransactionId, {
422
+ // populate: ['modelMetadata', 'modelMetadata.fields'],
423
+ // populateMedia: ['fileLocation'],
424
+ // });
425
+ // if (!importTransaction) {
426
+ // throw new Error(`Import transaction with ID ${importTransactionId} not found.`);
427
+ // }
428
+ // return importTransaction;
429
+ // }
430
+
369
431
  private async loadImportTransaction(importTransactionId: number) {
432
+ // Step 1: Load the transaction with model metadata
370
433
  const importTransaction = await this.findOne(importTransactionId, {
371
- populate: ['modelMetadata', 'modelMetadata.fields'],
434
+ populate: ['modelMetadata'],
372
435
  populateMedia: ['fileLocation'],
373
436
  });
374
- if (!importTransaction) {
375
- throw new Error(`Import transaction with ID ${importTransactionId} not found.`);
376
- }
437
+
438
+ // Step 2: Load full field hierarchy (child + parent fields)
439
+ const modelFields = await this.modelMetadataHelperService.loadFieldHierarchy(
440
+ importTransaction.modelMetadata.singularName,
441
+ );
442
+
443
+ // Step 3: Attach the combined fields back into the modelMetadata
444
+ importTransaction.modelMetadata.fields = modelFields;
445
+
377
446
  return importTransaction;
378
447
  }
379
448
 
380
449
  private fieldsAllowedForImport(fields: FieldMetadata[]): FieldMetadata[] {
450
+ // Get system field names (e.g. id, createdAt, updatedAt...)
451
+ const systemFieldNames = this.modelMetadataHelperService
452
+ .getSystemFieldsMetadata()
453
+ .map(field => field.name);
454
+
455
+ const userExcluded = getUserExcludedFields();
456
+
381
457
  // Filter out fields that are not allowed for import
382
458
  return fields.filter(field =>
383
459
  field.type !== SolidFieldType.mediaMultiple && // Exclude media multiple fields
@@ -387,7 +463,10 @@ export class ImportTransactionService extends CRUDService<ImportTransaction> {
387
463
  field.type !== SolidFieldType.richText &&
388
464
  field.type !== SolidFieldType.uuid &&
389
465
  field.relationType !== RelationType.oneToMany &&
390
- field.isSystem !== true // Exclude system fields
466
+ !systemFieldNames.includes(field.name) &&
467
+ // field.isSystem !== true // Exclude system fields
468
+
469
+ !userExcluded.includes(field.name)
391
470
  );
392
471
  }
393
472
 
@@ -567,11 +646,11 @@ export class ImportTransactionService extends CRUDService<ImportTransaction> {
567
646
  // TODO Move this logic to field crud managers i.e add a parse method to the field crud manager interface
568
647
  switch (fieldType) {
569
648
  case SolidFieldType.relation: {
570
- return await this.populateDtoForRelations(fieldMetadata, record, key, dtoRecord);
649
+ return await this.populateDtoForRelations(fieldMetadata, record, key, dtoRecord);
571
650
  }
572
651
  case SolidFieldType.date:
573
652
  case SolidFieldType.datetime:
574
- return this.populateDtoForDate(record, key, fieldMetadata, dtoRecord);
653
+ return this.populateDtoForDate(record, key, fieldMetadata, dtoRecord);
575
654
  case SolidFieldType.int:
576
655
  case SolidFieldType.bigint:
577
656
  case SolidFieldType.decimal:
@@ -594,7 +673,7 @@ export class ImportTransactionService extends CRUDService<ImportTransaction> {
594
673
  }
595
674
  }
596
675
  }
597
-
676
+
598
677
  private populateDtoForSelectionValues(dtoRecord: Record<string, any>, fieldMetadata: FieldMetadata, record: Record<string, any>, key: string) {
599
678
  const rawValue = record[key];
600
679
 
@@ -658,17 +737,17 @@ export class ImportTransactionService extends CRUDService<ImportTransaction> {
658
737
  dtoRecord[fieldMetadata.name] = null; // If the cell is empty, set the field to null
659
738
  return dtoRecord;
660
739
  }
661
- // Use flexible date parser
662
- this.logger.verbose(cellValue,'cellValue');
663
-
664
- const dateValue = parseFlexibleDate(cellValue);
665
- this.logger.verbose(dateValue,'dateValue');
666
-
667
- if (!dateValue) {
668
- throw new Error(
669
- `Invalid date value for cell ${key} with value ${cellValue}`
670
- );
671
- }
740
+ // Use flexible date parser
741
+ this.logger.verbose(cellValue, 'cellValue');
742
+
743
+ const dateValue = parseFlexibleDate(cellValue);
744
+ this.logger.verbose(dateValue, 'dateValue');
745
+
746
+ if (!dateValue) {
747
+ throw new Error(
748
+ `Invalid date value for cell ${key} with value ${cellValue}`
749
+ );
750
+ }
672
751
  dtoRecord[fieldMetadata.name] = dateValue;
673
752
  return dtoRecord;
674
753
  }