@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 +1 @@
1
- {"version":3,"file":"field-metadata.service.js","sourceRoot":"","sources":["../../src/services/field-metadata.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { classify } from '@angular-devkit/core/src/utils/strings';\nimport { Injectable, Logger, NotFoundException, OnApplicationBootstrap } from '@nestjs/common';\nimport { InjectDataSource } from '@nestjs/typeorm';\nimport * as fs from 'fs/promises'; // Use the Promise-based version of fs for async/await\nimport { ModuleMetadataHelperService } from 'src/helpers/module-metadata-helper.service';\nimport { ComputedFieldMetadata, SolidRegistry } from 'src/helpers/solid-registry';\nimport { FieldMetadataRepository } from 'src/repository/field-metadata.repository';\nimport { DataSource, Repository, SelectQueryBuilder } from 'typeorm';\nimport { BasicFilterDto } from '../dtos/basic-filters.dto';\nimport { CascadeType, ComputedFieldValueType, CreateFieldMetadataDto, DecryptWhenType, EncryptionType, MediaType, PSQLType, RelationType, SelectionValueType, SolidFieldType } from '../dtos/create-field-metadata.dto';\nimport { SelectionDynamicQueryDto } from '../dtos/selection-dynamic-query.dto';\nimport { UpdateFieldMetaDataDto } from '../dtos/update-field-metadata.dto';\nimport { FieldMetadata } from '../entities/field-metadata.entity';\nimport { ModelMetadata } from '../entities/model-metadata.entity';\nimport { ISelectionProviderValues } from '../interfaces';\nimport { CrudHelperService } from './crud-helper.service';\nimport { ERROR_MESSAGES } from 'src/constants/error-messages';\nimport qs from 'qs';\n\n\n@Injectable()\nexport class FieldMetadataService implements OnApplicationBootstrap {\n constructor(\n private readonly fieldMetadataRepo: FieldMetadataRepository,\n @InjectDataSource()\n private readonly dataSource: DataSource,\n private readonly solidRegistry: SolidRegistry,\n private readonly crudHelperService: CrudHelperService,\n private readonly moduleMetadataHelperService: ModuleMetadataHelperService,\n ) { }\n\n private logger = new Logger(FieldMetadataService.name);\n\n onApplicationBootstrap() {\n this.loadAndRegisterComputedFieldsDetails();\n }\n\n async loadAndRegisterComputedFieldsDetails() {\n // Load all the modules and models and within that load all the computed fields\n const computedFieldsWithModelAndModule = await this.fieldMetadataRepo.findComputedFieldsPopulatedWithModelAndModule();\n\n // Convert the computed fields object above to the ComputedFieldMetadata type\n const computedFieldMetadata: ComputedFieldMetadata[] = computedFieldsWithModelAndModule.map((field) => {\n // const defaultComputedFieldTriggerConfig: ComputedFieldTriggerConfig = {\n // moduleName: field.model.module.name,\n // modelName: field.model.singularName,\n // operations: [ComputedFieldTriggerOperation.create, ComputedFieldTriggerOperation.update, ComputedFieldTriggerOperation.delete], // Default operations, can be overridden\n // }\n return {\n moduleName: field.model.module.name,\n modelName: field.model.singularName,\n fieldName: field.name,\n computedFieldValueType: field.computedFieldValueType as ComputedFieldValueType,\n computedFieldTriggerConfig: field.computedFieldTriggerConfig ?? [], // Ensure it's an array, default to empty if not provided\n computedFieldValueProviderName: field.computedFieldValueProvider,\n computedFieldValueProviderCtxt: field.computedFieldValueProviderCtxt ? JSON.parse(field.computedFieldValueProviderCtxt) : {}, // Parse the context if it exists, default to empty object\n };\n });\n\n // Register the computed fields in the SolidRegistry. Capture only computed field related info\n this.solidRegistry.registerComputedFieldMetadata(computedFieldMetadata);\n }\n\n async updateInverseField(field: FieldMetadata, fieldRepository: Repository<FieldMetadata>, modelRepository: Repository<ModelMetadata>) {\n if (!field.model || !field.model.module) {\n throw new Error(ERROR_MESSAGES.MODEL_AND_MODULE_REQUIRED_TO_UPDATE_INVERSE_FIELD);\n }\n // Update the inverse field in the db\n const savedInverseField = await this.updateInverseFieldInDb(field, fieldRepository, modelRepository);\n // Update the inverse field in the file\n this.updateRelationInverseFieldInFile(savedInverseField, field.relationCoModelSingularName, field.model.module.name);\n }\n\n private async updateInverseFieldInDb(field: FieldMetadata, fieldRepository: Repository<FieldMetadata>, modelRepository: Repository<ModelMetadata>): Promise<FieldMetadata> {\n const { moduleName, modelName } = this.validateForInverseField(field);\n\n // Get the relation model reference\n const relationModel = await this.getRelationModel(modelRepository, field, moduleName);\n\n // const {id, createdAt, updatedAt, deletedAt, ...fieldKeys} = field;\n switch (field.relationType) {\n case RelationType.manyToOne: {\n const fieldName = field.relationCoModelFieldName || `${modelName}s`;\n const inverseField: FieldMetadata = {\n ...field,\n name: fieldName,\n displayName: classify(fieldName),\n description: classify(fieldName),\n type: SolidFieldType.relation,\n isSystem: field.isSystem,\n relationType: RelationType.oneToMany,\n relationCoModelSingularName: modelName,\n relationCreateInverse: true,\n relationCascade: field.relationCascade,\n relationModelModuleName: moduleName,\n relationCoModelFieldName: field.name,\n required: false,\n unique: false,\n index: false,\n private: false,\n encrypt: false,\n model: relationModel,\n columnName: null,\n relationJoinTableName: null,\n id: null,\n }\n\n // Load the inverse field, \n const savedField = await this.saveInverseField(fieldRepository, relationModel, inverseField);\n return savedField;\n }\n case RelationType.oneToMany: {\n const fieldName = field.relationCoModelFieldName || `${modelName}`;\n const inverseField: FieldMetadata = {\n ...field,\n name: fieldName,\n displayName: classify(fieldName),\n description: classify(fieldName),\n type: SolidFieldType.relation,\n isSystem: field.isSystem,\n relationType: RelationType.manyToOne,\n relationCoModelSingularName: modelName,\n relationCreateInverse: true,\n relationCascade: field.relationCascade,\n relationModelModuleName: moduleName,\n relationCoModelFieldName: field.name,\n required: false,\n unique: false,\n index: false,\n private: false,\n encrypt: false,\n model: relationModel,\n columnName: null,\n relationJoinTableName: null,\n id: null,\n }\n\n // Load the inverse field, \n const savedField = await this.saveInverseField(fieldRepository, relationModel, inverseField);\n return savedField;\n }\n case RelationType.manyTomany: {\n const fieldName = field.relationCoModelFieldName;\n // Logic to create a manyToMany inverse field definition\n const inverseFieldManyToMany: FieldMetadata = {\n ...field,\n name: fieldName,\n displayName: classify(fieldName),\n description: classify(fieldName),\n type: SolidFieldType.relation,\n isSystem: field.isSystem,\n relationType: RelationType.manyTomany,\n relationCoModelSingularName: modelName,\n relationCreateInverse: true,\n relationCascade: null,\n relationModelModuleName: moduleName,\n relationCoModelFieldName: field.name,\n required: false,\n unique: false,\n index: false,\n private: false,\n encrypt: false,\n model: relationModel,\n columnName: null,\n relationJoinTableName: null,\n isRelationManyToManyOwner: false,\n id: null,\n }\n const savedField = await this.saveInverseField(fieldRepository, relationModel, inverseFieldManyToMany);\n return savedField;\n }\n default:\n throw new Error(`Invalid relation type for field ${field.name} with relation type ${field.relationType}`);\n }\n }\n\n private async getRelationModel(modelRepository: Repository<ModelMetadata>, field: FieldMetadata, moduleName: string) {\n return await modelRepository.findOne({\n where: {\n singularName: field.relationCoModelSingularName,\n module: {\n name: field.relationModelModuleName ?? moduleName\n }\n }\n });\n }\n\n private async saveInverseField(fieldRepository: Repository<FieldMetadata>, relationModel: ModelMetadata, inverseField: FieldMetadata): Promise<FieldMetadata> {\n const existingInverseField = await fieldRepository.findOne({\n where: {\n model: { id: relationModel.id },\n name: inverseField.name\n }\n });\n\n if (existingInverseField) {\n return existingInverseField; // No need to update if it already exists\n }\n else {\n const savedField = await fieldRepository.save(fieldRepository.create(inverseField));\n return savedField;\n }\n }\n\n private validateForInverseField(field: FieldMetadata) {\n if (field.type !== SolidFieldType.relation) {\n throw new Error(ERROR_MESSAGES.INVALID_INVERSE_FIELD_TYPE);\n }\n const modelName = field.model.singularName;\n const moduleName = field.model.module.name;\n\n if (!modelName || !moduleName) {\n throw new Error(ERROR_MESSAGES.MODEL_NAME_AND_MODULE_NAME_REQUIRED_TO_CREATE_INVERSE_FIELD);\n }\n return { moduleName, modelName };\n }\n\n async findMany(basicFilterDto: BasicFilterDto) {\n const alias = 'fieldMetadata';\n // Extract the required keys from the input query\n let { limit, offset, populateMedia } = basicFilterDto;\n\n // Create above query on pincode table using query builder\n var qb: SelectQueryBuilder<FieldMetadata> = this.fieldMetadataRepo.createQueryBuilder(alias)\n qb = await this.crudHelperService.buildFilterQuery(qb, basicFilterDto, alias);\n\n // Get the records and the count\n const [entities, count] = await qb.getManyAndCount();\n\n const currentPage = Math.floor(offset / limit) + 1;\n const totalPages = Math.ceil(count / limit);\n\n const nextPage = currentPage < totalPages ? currentPage + 1 : null;\n const prevPage = currentPage > 1 ? currentPage - 1 : null;\n\n const r = {\n meta: {\n totalRecords: count,\n currentPage: currentPage,\n nextPage: nextPage,\n prevPage: prevPage,\n totalPages: totalPages,\n perPage: +limit,\n },\n records: entities\n };\n return r\n }\n\n async findOne(id: any, query?: any) {\n // const { fields, filters, populate } = basicFilterDto;\n const entity = await this.fieldMetadataRepo.findOne({\n where: {\n id: id,\n },\n relations: query && query?.populate,\n });\n if (!entity) {\n throw new NotFoundException(`entity #${id} not found`);\n }\n return entity;\n }\n\n async findByNameAndModelName(modelSingularName: string, fieldName: string) {\n\n const entity = await this.fieldMetadataRepo.findOne({\n where: {\n name: fieldName,\n model: {\n singularName: modelSingularName\n }\n },\n });\n\n return entity;\n }\n\n async selectionStaticValues(modelSingularName: string, fieldName: string) {\n\n const entity = await this.fieldMetadataRepo.findOne({\n where: {\n name: fieldName,\n model: {\n singularName: modelSingularName\n }\n },\n });\n\n if (!entity) {\n return [];\n }\n\n const selectionStaticValues = entity.selectionStaticValues;\n if (!selectionStaticValues) {\n return [];\n }\n\n return this.convertToSelectionProviderValues(selectionStaticValues);\n }\n\n convertToSelectionProviderValues(selectionStaticValues: string[]): ISelectionProviderValues[] {\n // return selectionStaticValues.split(',').map((item) => {\n // const [value, label] = item.split(':');\n // return { label, value };\n // });\n return selectionStaticValues.map((item) => {\n const [value, label] = item.split(':');\n return { label, value };\n });\n }\n\n async create(createDto: CreateFieldMetadataDto) {\n createDto['model'] = await this.dataSource.getRepository(ModelMetadata).findOne({\n where: {\n id: createDto['modelId']\n },\n });\n createDto['mediaStorageProvider'] = await this.dataSource.getRepository(ModelMetadata).findOne({\n where: {\n id: createDto['mediaStorageProviderId']\n },\n });\n\n const moduleMetadata = this.fieldMetadataRepo.create(createDto);\n return this.fieldMetadataRepo.save(moduleMetadata);\n }\n\n // async update(id: number, updateCountryDto: UpdateCountryDto) {\n\n // const country = await this.fieldMetadataRepo.preload({\n // id,\n // ...updateCountryDto,\n // });\n\n // if (!country) {\n // throw new NotFoundException(`Country ${id} not found`);\n // }\n // return this.moduleMetadataRepo.save(country);\n // }\n\n async delete(id: number) {\n const entity = await this.findOne(id);\n return this.fieldMetadataRepo.remove(entity);\n }\n\n async findFieldDefaultMetaData() {\n\n // Function to convert enum to array of objects\n const enumToResponseArray = (enumObj: any) => {\n return Object.entries(enumObj).map(([key, value]) => ({\n label: value,\n value: value,\n }));\n };\n\n // Orm Data type and Solid Dat Type Mapping\n const ormFieldTypeForSolid = {\n \"postgres\": {\n // Numeric types\n \"int\": {\n \"ormTypes\": [{ label: PSQLType.integer, description: \"A 4-byte integer for general numeric data.\" }]\n },\n \"bigint\": {\n \"ormTypes\": [{ label: PSQLType.bigint, description: \"An 8-byte integer for large numeric values.\" }]\n },\n \"decimal\": {\n \"ormTypes\": [{ label: PSQLType.decimal, description: \"A high-precision numeric type, ideal for financial data.\" }]\n },\n\n // Text types\n \"shortText\": {\n \"ormTypes\": [{ label: PSQLType.varchar, description: \"A variable-length string for short text.\" }]\n },\n \"longText\": {\n \"ormTypes\": [{ label: PSQLType.text, description: \"A text type for large or unbounded strings.\" }]\n },\n \"richText\": {\n \"ormTypes\": [{ label: PSQLType.text, description: \"A text type for large or formatted content.\" }]\n },\n \"json\": {\n \"ormTypes\": [\n { label: PSQLType.json, description: \"Stores JSON data without indexing.\" },\n { label: PSQLType.jsonb, description: \"Stores JSON data with indexing for faster queries.\" }\n ]\n },\n\n // Boolean types\n \"boolean\": {\n \"ormTypes\": [{ label: PSQLType.boolean, description: \"Stores true or false values.\" }]\n },\n\n // Date and time types\n \"date\": {\n \"ormTypes\": [{ label: PSQLType.date, description: \"Stores calendar dates (YYYY-MM-DD).\" }]\n },\n \"datetime\": {\n \"ormTypes\": [\n { label: PSQLType.timestamp, description: \"Stores date and time without time zones.\" },\n { label: PSQLType.timestamptz, description: \"Stores date and time with time zones.\" }\n ]\n },\n \"time\": {\n \"ormTypes\": [\n { label: PSQLType.time, description: \"Stores time values (HH:MM:SS).\" },\n { label: PSQLType.timestamp, description: \"Stores date and time without time zones.\" },\n { label: PSQLType.timestamptz, description: \"Stores date and time with time zones.\" }\n ]\n },\n\n // Relation\n \"relation\": {\n \"ormTypes\": [{ label: PSQLType.integer, description: \"Used for foreign keys referencing other entities.\" }]\n },\n\n // Media types\n \"mediaSingle\": {\n \"ormTypes\": [{ label: PSQLType.varchar, description: \"Stores file paths or URLs for single media files.\" }]\n },\n \"mediaMultiple\": {\n \"ormTypes\": [{ label: PSQLType.varchar, description: \"Stores file paths or URLs for multiple media files.\" }]\n },\n\n // Email and password\n \"email\": {\n \"ormTypes\": [{ label: PSQLType.varchar, description: \"Stores email addresses.\" }]\n },\n \"password\": {\n \"ormTypes\": [{ label: PSQLType.varchar, description: \"Stores hashed or plain-text passwords.\" }]\n },\n\n // Selection types\n \"selectionStatic\": {\n \"ormTypes\": [{ label: PSQLType.varchar, description: \"Used for predefined selection options.\" }]\n },\n \"selectionDynamic\": {\n \"ormTypes\": [{ label: PSQLType.varchar, description: \"Used for dynamic selection options.\" }]\n },\n\n // Computed and external ID\n \"computed\": {\n \"ormTypes\": [{ label: PSQLType.varchar, description: \"Represents computed or derived fields.\" }]\n },\n \"uuid\": {\n \"ormTypes\": [{ label: PSQLType.varchar, description: \"Stores universally unique identifiers (UUIDs).\" }]\n }\n }\n };\n\n\n // Fetch Data Source Type \n const dataSourceTypes = Object.keys(ormFieldTypeForSolid); // [\"psql\"]\n\n const fieldTypes = Object.entries(ormFieldTypeForSolid.postgres).map(([key, value]) => ({\n type: key,\n label: key,\n value: key,\n fieldType: key,\n ormTypes: value.ormTypes,\n fields: this.fetchCurrentFields(key)\n }));\n\n const dataSource = this.solidRegistry.getSolidDatabaseModules().map((solidDatabaseModule) => {\n return {\n 'name': solidDatabaseModule.instance.name(),\n 'type': solidDatabaseModule.instance.type()\n }\n });\n\n // Creating response arrays for each enum\n // Get all selection providers. \n const sps = [];\n const selectionProviders = this.solidRegistry.getSelectionProviders();\n for (let i = 0; i < selectionProviders.length; i++) {\n const selectionProvider = selectionProviders[i];\n sps.push({\n provider: selectionProvider.instance.name(),\n help: selectionProvider.instance.help(),\n });\n }\n\n const cps = [];\n const computedProviders = this.solidRegistry.getComputedFieldProviders();\n for (let i = 0; i < computedProviders.length; i++) {\n const computedProvider = computedProviders[i];\n cps.push({\n provider: computedProvider.instance.name(),\n help: computedProvider.instance.help(),\n });\n }\n\n const r = {\n // Field Types with ormtypes, available fields \n fieldTypes: fieldTypes,\n encryptionTypes: enumToResponseArray(EncryptionType),\n ormType: ormFieldTypeForSolid,\n decryptWhenTypes: enumToResponseArray(DecryptWhenType),\n mediaTypes: enumToResponseArray(MediaType),\n relationTypes: enumToResponseArray(RelationType),\n selectionDynamicProviders: sps,\n computedProviders: cps,\n cascadeTypes: enumToResponseArray(CascadeType),\n selectionValueTypes: enumToResponseArray(SelectionValueType),\n computedFieldValueTypes: enumToResponseArray(ComputedFieldValueType),\n dataSourceType: dataSourceTypes,\n dataSource: dataSource,\n };\n\n return r\n }\n\n async fetchCurrentFieldsBasedOnType(type: string) {\n return this.fetchCurrentFields(type);\n }\n\n private fetchCurrentFields(solidFieldType: string) {\n switch (solidFieldType) {\n case SolidFieldType.int:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"defaultValue\",\n \"min\",\n \"max\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\",\n \"enableAuditTracking\"\n ];\n\n case SolidFieldType.bigint:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"defaultValue\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\",\n \"enableAuditTracking\"\n ];\n\n // case SolidFieldType.float:\n // return [\n // \"name\",\n // \"displayName\",\n // \"description\",\n // \"type\",\n // \"ormType\",\n // \"isSystem\",\n // \"defaultValue\",\n // \"required\",\n // \"unique\",\n // \"index\",\n // \"private\",\n // \"encrypt\",\n // \"encryptionType\",\n // \"decryptWhen\"\n // ];\n\n case SolidFieldType.decimal:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"defaultValue\",\n \"min\",\n \"max\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\",\n \"enableAuditTracking\"\n ];\n\n case SolidFieldType.shortText:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"defaultValue\",\n \"min\",\n \"max\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\",\n \"isUserKey\",\n \"enableAuditTracking\"\n ];\n\n case SolidFieldType.longtext:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"regexPattern\",\n \"regexPatternNotMatchingErrorMsg\",\n \"defaultValue\",\n \"min\",\n \"max\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\"\n ];\n\n case SolidFieldType.richText:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n // \"min\",\n // \"max\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\"\n ];\n\n\n case SolidFieldType.json:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n // \"min\",\n // \"max\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\"\n ];\n\n case SolidFieldType.boolean:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"defaultValue\",\n \"required\",\n // \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\",\n \"enableAuditTracking\"\n ];\n\n case SolidFieldType.date:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"defaultValue\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\",\n \"enableAuditTracking\"\n ];\n\n case SolidFieldType.datetime:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"defaultValue\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\",\n \"enableAuditTracking\"\n ];\n\n case SolidFieldType.time:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"defaultValue\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\",\n \"enableAuditTracking\"\n ];\n\n case SolidFieldType.relation:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"relationType\",\n \"relationCoModelFieldName\",\n \"relationCreateInverse\",\n \"relationCoModelSingularName\",\n \"relationCoModelColumnName\",\n \"relationModelModuleName\",\n \"relationCascade\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\",\n \"relationJoinTableName\",\n \"isRelationManyToManyOwner\",\n \"relationFieldFixedFilter\",\n \"enableAuditTracking\"\n ];\n\n case SolidFieldType.mediaSingle:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"mediaTypes\",\n \"mediaMaxSizeKb\",\n \"mediaStorageProviderId\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\"\n ];\n\n case SolidFieldType.mediaMultiple:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"mediaTypes\",\n \"mediaMaxSizeKb\",\n \"mediaStorageProviderId\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\"\n ];\n\n case SolidFieldType.email:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"regexPattern\",\n \"regexPatternNotMatchingErrorMsg\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\",\n \"enableAuditTracking\"\n ];\n\n case SolidFieldType.password:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"min\",\n \"max\",\n \"regexPattern\",\n \"regexPatternNotMatchingErrorMsg\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\"\n ];\n\n case SolidFieldType.selectionStatic:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"defaultValue\",\n \"selectionStaticValues\",\n \"selectionValueType\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\",\n \"enableAuditTracking\",\n \"isMultiSelect\"\n ];\n\n case SolidFieldType.selectionDynamic:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"selectionDynamicProvider\",\n \"selectionDynamicProviderCtxt\",\n \"selectionValueType\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\",\n \"isUserKey\",\n \"enableAuditTracking\",\n \"isMultiSelect\"\n ];\n case SolidFieldType.computed:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"computedFieldValueType\",\n \"computedFieldTriggerConfig\",\n \"computedFieldValueProvider\",\n \"computedFieldValueProviderCtxt\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\",\n \"isUserKey\"\n ];\n\n case SolidFieldType.uuid:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"uuid\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\"\n ];\n\n\n\n\n default:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\"\n ];\n }\n }\n\n async fetchAllDataSources() {\n // Initialize the data source\n // await AppDataSource.initialize();\n\n // // Get all entities metadata\n // const entities = AppDataSource.entityMetadatas;\n\n // // Create an array to hold the data sources\n // const dataSources = entities.map(entity => ({\n // name: entity.name,\n // tableName: entity.tableName,\n // columns: entity.columns.map(column => ({\n // propertyName: column.propertyName,\n // databaseName: column.databaseName,\n // type: column.type,\n // })),\n // }));\n\n // return dataSources;\n }\n\n async upsert(updateDto: UpdateFieldMetaDataDto) {\n // First check if module already exists using name\n const existingFieldMetadata = await this.fieldMetadataRepo.findOne({\n where: {\n //@ts-ignore\n model: { id: updateDto.model.id },\n name: updateDto.name\n }\n })\n\n // if found\n if (existingFieldMetadata) {\n const updatedFieldMetadata = { ...existingFieldMetadata, ...updateDto };\n return this.fieldMetadataRepo.save(updatedFieldMetadata);\n }\n // if not found - create new \n else {\n const fieldMetadata = this.fieldMetadataRepo.create(updateDto);\n return this.fieldMetadataRepo.save(fieldMetadata);\n }\n }\n\n async getSelectionDynamicValues(query: SelectionDynamicQueryDto) {\n // 1. use the id to identify the field. \n const entity = await this.fieldMetadataRepo.findOne({\n where: {\n id: query.fieldId,\n },\n });\n if (!entity) {\n throw new NotFoundException(ERROR_MESSAGES.FIELD_NOT_FOUND(query.fieldId));\n }\n\n // 2. use the field metadata to identify the provider. \n const selectionDynamicProvider = entity.selectionDynamicProvider;\n const selectionDynamicProviderCtxt = JSON.parse(entity.selectionDynamicProviderCtxt ? entity.selectionDynamicProviderCtxt : '{}');\n selectionDynamicProviderCtxt['limit'] = query.limit;\n selectionDynamicProviderCtxt['offset'] = query.offset;\n const formValues = query.formValues || {};\n // Parse the form values if they are in string format using qs\n const parsedFormValues = typeof formValues === 'string' ? qs.parse(formValues, { allowDots: true }) : formValues;\n selectionDynamicProviderCtxt['formValues'] = parsedFormValues;\n\n\n // 3. get hold of the provider instance from the SolidRegistry\n const selectionProviderInstance = this.solidRegistry.getSelectionProviderInstance(selectionDynamicProvider);\n if (!selectionProviderInstance) {\n throw new NotFoundException(ERROR_MESSAGES.PROVIDER_NOT_FOUND(selectionDynamicProvider));\n }\n\n // 4. use the provider to fetch the dynamic values, pass the query string received from the UI.. \n return selectionProviderInstance.values(query.query, selectionDynamicProviderCtxt);\n }\n\n async getSelectionDynamicValue(query: SelectionDynamicQueryDto) {\n // 1. use the id to identify the field. \n const entity = await this.fieldMetadataRepo.findOne({\n where: {\n id: query.fieldId,\n },\n });\n if (!entity) {\n throw new NotFoundException(ERROR_MESSAGES.FIELD_NOT_FOUND(query.fieldId));\n }\n\n // 2. use the field metadata to identify the provider. \n const selectionDynamicProvider = entity.selectionDynamicProvider;\n const selectionDynamicProviderCtxt = JSON.parse(entity.selectionDynamicProviderCtxt ? entity.selectionDynamicProviderCtxt : '{}');\n selectionDynamicProviderCtxt['limit'] = query.limit;\n selectionDynamicProviderCtxt['offset'] = query.offset;\n const formValues = query.formValues || {};\n // Parse the form values if they are in string format using qs\n const parsedFormValues = typeof formValues === 'string' ? qs.parse(formValues, { allowDots: true }) : formValues;\n selectionDynamicProviderCtxt['formValues'] = parsedFormValues;\n\n // 3. get hold of the provider instance from the SolidRegistry\n const selectionProviderInstance = this.solidRegistry.getSelectionProviderInstance(selectionDynamicProvider);\n if (!selectionProviderInstance) {\n throw new NotFoundException(ERROR_MESSAGES.PROVIDER_NOT_FOUND(selectionDynamicProvider));\n }\n\n // 4. use the provider to fetch the dynamic values, pass the query string received from the UI.. \n return selectionProviderInstance.value(query.optionValue, selectionDynamicProviderCtxt);\n }\n\n private async updateRelationInverseFieldInFile(savedInverseField: FieldMetadata, inverseModelName: string, moduleName: string) {\n try {\n const filePath = await this.moduleMetadataHelperService.getModuleMetadataFilePath(moduleName);\n const metaData = await this.moduleMetadataHelperService.getModuleMetadataConfiguration(filePath);\n\n // Create the config object for the inverse field\n const fieldObject: Record<string, any> = await this.createFieldConfig(savedInverseField);\n\n // Find the field config object in the json file\n const model = metaData.moduleMetadata.models.find((model: any) => model.singularName === inverseModelName);\n\n // Replace the current field object with the above field object\n const fieldIndex = model.fields.findIndex((field: any) => field.name === savedInverseField.name);\n if (fieldIndex === -1) {\n model.fields.push(fieldObject);\n }\n else {\n model.fields[fieldIndex] = fieldObject;\n }\n\n // Write the updated object back to the file\n const updatedContent = JSON.stringify(metaData, null, 2);\n await fs.writeFile(filePath, updatedContent);\n } catch (error) {\n this.logger.error('File creation failed:', error);\n throw new Error(ERROR_MESSAGES.FILE_WRITE_FAILED); // Trigger rollback\n }\n }\n\n //Moved existing reusable logic to a separate function\n async createFieldConfig(field: FieldMetadata) {\n const fieldsRequiredBasedOnType = await this.fetchCurrentFieldsBasedOnType(field.type);\n const fieldObject: Record<string, any> = {};\n\n // Assign default or placeholder values for required fields\n fieldsRequiredBasedOnType.forEach((requiredField) => {\n fieldObject[requiredField] = field[requiredField];\n });\n\n if (field.type == \"mediaSingle\" || field.type == \"mediaMultiple\") {\n if (field.mediaStorageProvider) {\n delete fieldObject.mediaStorageProviderId\n fieldObject.mediaStorageProviderUserKey = field.mediaStorageProvider.name\n }\n }\n if (field.isMarkedForRemoval) {\n fieldObject.isMarkedForRemoval = field.isMarkedForRemoval;\n }\n\n return fieldObject;\n }\n}\n\n\n"]}
1
+ {"version":3,"file":"field-metadata.service.js","sourceRoot":"","sources":["../../src/services/field-metadata.service.ts"],"names":[],"mappings":"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","sourcesContent":["import { classify } from '@angular-devkit/core/src/utils/strings';\nimport { Injectable, Logger, NotFoundException, OnApplicationBootstrap } from '@nestjs/common';\nimport { InjectDataSource } from '@nestjs/typeorm';\nimport * as fs from 'fs/promises'; // Use the Promise-based version of fs for async/await\nimport { ModuleMetadataHelperService } from 'src/helpers/module-metadata-helper.service';\nimport { ComputedFieldMetadata, SolidRegistry } from 'src/helpers/solid-registry';\nimport { FieldMetadataRepository } from 'src/repository/field-metadata.repository';\nimport { DataSource, Repository, SelectQueryBuilder } from 'typeorm';\nimport { BasicFilterDto } from '../dtos/basic-filters.dto';\nimport { CascadeType, ComputedFieldValueType, CreateFieldMetadataDto, DecryptWhenType, EncryptionType, MediaType, PSQLType, RelationType, SelectionValueType, SolidFieldType } from '../dtos/create-field-metadata.dto';\nimport { SelectionDynamicQueryDto } from '../dtos/selection-dynamic-query.dto';\nimport { UpdateFieldMetaDataDto } from '../dtos/update-field-metadata.dto';\nimport { FieldMetadata } from '../entities/field-metadata.entity';\nimport { ModelMetadata } from '../entities/model-metadata.entity';\nimport { ISelectionProviderValues } from '../interfaces';\nimport { CrudHelperService } from './crud-helper.service';\nimport { ERROR_MESSAGES } from 'src/constants/error-messages';\nimport qs from 'qs';\n\n\n@Injectable()\nexport class FieldMetadataService implements OnApplicationBootstrap {\n constructor(\n private readonly fieldMetadataRepo: FieldMetadataRepository,\n @InjectDataSource()\n private readonly dataSource: DataSource,\n private readonly solidRegistry: SolidRegistry,\n private readonly crudHelperService: CrudHelperService,\n private readonly moduleMetadataHelperService: ModuleMetadataHelperService,\n ) { }\n\n private logger = new Logger(FieldMetadataService.name);\n\n onApplicationBootstrap() {\n this.loadAndRegisterComputedFieldsDetails();\n }\n\n async loadAndRegisterComputedFieldsDetails() {\n // Load all the modules and models and within that load all the computed fields\n const computedFieldsWithModelAndModule = await this.fieldMetadataRepo.findComputedFieldsPopulatedWithModelAndModule();\n\n // Convert the computed fields object above to the ComputedFieldMetadata type\n const computedFieldMetadata: ComputedFieldMetadata[] = computedFieldsWithModelAndModule.map((field) => {\n // const defaultComputedFieldTriggerConfig: ComputedFieldTriggerConfig = {\n // moduleName: field.model.module.name,\n // modelName: field.model.singularName,\n // operations: [ComputedFieldTriggerOperation.create, ComputedFieldTriggerOperation.update, ComputedFieldTriggerOperation.delete], // Default operations, can be overridden\n // }\n return {\n moduleName: field.model.module.name,\n modelName: field.model.singularName,\n fieldName: field.name,\n computedFieldValueType: field.computedFieldValueType as ComputedFieldValueType,\n computedFieldTriggerConfig: field.computedFieldTriggerConfig ?? [], // Ensure it's an array, default to empty if not provided\n computedFieldValueProviderName: field.computedFieldValueProvider,\n computedFieldValueProviderCtxt: field.computedFieldValueProviderCtxt ? JSON.parse(field.computedFieldValueProviderCtxt) : {}, // Parse the context if it exists, default to empty object\n };\n });\n\n // Register the computed fields in the SolidRegistry. Capture only computed field related info\n this.solidRegistry.registerComputedFieldMetadata(computedFieldMetadata);\n }\n\n async updateInverseField(field: FieldMetadata, fieldRepository: Repository<FieldMetadata>, modelRepository: Repository<ModelMetadata>) {\n if (!field.model || !field.model.module) {\n throw new Error(ERROR_MESSAGES.MODEL_AND_MODULE_REQUIRED_TO_UPDATE_INVERSE_FIELD);\n }\n // Update the inverse field in the db\n const savedInverseField = await this.updateInverseFieldInDb(field, fieldRepository, modelRepository);\n // Update the inverse field in the file\n this.updateRelationInverseFieldInFile(savedInverseField, field.relationCoModelSingularName, field.model.module.name);\n }\n\n private async updateInverseFieldInDb(field: FieldMetadata, fieldRepository: Repository<FieldMetadata>, modelRepository: Repository<ModelMetadata>): Promise<FieldMetadata> {\n const { moduleName, modelName } = this.validateForInverseField(field);\n\n // Get the relation model reference\n const relationModel = await this.getRelationModel(modelRepository, field, moduleName);\n\n // const {id, createdAt, updatedAt, deletedAt, ...fieldKeys} = field;\n switch (field.relationType) {\n case RelationType.manyToOne: {\n const fieldName = field.relationCoModelFieldName || `${modelName}s`;\n const inverseField: FieldMetadata = {\n ...field,\n name: fieldName,\n displayName: classify(fieldName),\n description: classify(fieldName),\n type: SolidFieldType.relation,\n isSystem: field.isSystem,\n relationType: RelationType.oneToMany,\n relationCoModelSingularName: modelName,\n relationCreateInverse: true,\n relationCascade: field.relationCascade,\n relationModelModuleName: moduleName,\n relationCoModelFieldName: field.name,\n required: false,\n unique: false,\n index: false,\n private: false,\n encrypt: false,\n model: relationModel,\n columnName: null,\n relationJoinTableName: null,\n id: null,\n }\n\n // Load the inverse field, \n const savedField = await this.saveInverseField(fieldRepository, relationModel, inverseField);\n return savedField;\n }\n case RelationType.oneToMany: {\n const fieldName = field.relationCoModelFieldName || `${modelName}`;\n const inverseField: FieldMetadata = {\n ...field,\n name: fieldName,\n displayName: classify(fieldName),\n description: classify(fieldName),\n type: SolidFieldType.relation,\n isSystem: field.isSystem,\n relationType: RelationType.manyToOne,\n relationCoModelSingularName: modelName,\n relationCreateInverse: true,\n relationCascade: field.relationCascade,\n relationModelModuleName: moduleName,\n relationCoModelFieldName: field.name,\n required: false,\n unique: false,\n index: false,\n private: false,\n encrypt: false,\n model: relationModel,\n columnName: null,\n relationJoinTableName: null,\n id: null,\n }\n\n // Load the inverse field, \n const savedField = await this.saveInverseField(fieldRepository, relationModel, inverseField);\n return savedField;\n }\n case RelationType.manyTomany: {\n const fieldName = field.relationCoModelFieldName;\n // Logic to create a manyToMany inverse field definition\n const inverseFieldManyToMany: FieldMetadata = {\n ...field,\n name: fieldName,\n displayName: classify(fieldName),\n description: classify(fieldName),\n type: SolidFieldType.relation,\n isSystem: field.isSystem,\n relationType: RelationType.manyTomany,\n relationCoModelSingularName: modelName,\n relationCreateInverse: true,\n relationCascade: null,\n relationModelModuleName: moduleName,\n relationCoModelFieldName: field.name,\n required: false,\n unique: false,\n index: false,\n private: false,\n encrypt: false,\n model: relationModel,\n columnName: null,\n relationJoinTableName: null,\n isRelationManyToManyOwner: false,\n id: null,\n }\n const savedField = await this.saveInverseField(fieldRepository, relationModel, inverseFieldManyToMany);\n return savedField;\n }\n default:\n throw new Error(`Invalid relation type for field ${field.name} with relation type ${field.relationType}`);\n }\n }\n\n private async getRelationModel(modelRepository: Repository<ModelMetadata>, field: FieldMetadata, moduleName: string) {\n return await modelRepository.findOne({\n where: {\n singularName: field.relationCoModelSingularName,\n module: {\n name: field.relationModelModuleName ?? moduleName\n }\n }\n });\n }\n\n private async saveInverseField(fieldRepository: Repository<FieldMetadata>, relationModel: ModelMetadata, inverseField: FieldMetadata): Promise<FieldMetadata> {\n const existingInverseField = await fieldRepository.findOne({\n where: {\n model: { id: relationModel.id },\n name: inverseField.name\n }\n });\n\n if (existingInverseField) {\n return existingInverseField; // No need to update if it already exists\n }\n else {\n const savedField = await fieldRepository.save(fieldRepository.create(inverseField));\n return savedField;\n }\n }\n\n private validateForInverseField(field: FieldMetadata) {\n if (field.type !== SolidFieldType.relation) {\n throw new Error(ERROR_MESSAGES.INVALID_INVERSE_FIELD_TYPE);\n }\n const modelName = field.model.singularName;\n const moduleName = field.model.module.name;\n\n if (!modelName || !moduleName) {\n throw new Error(ERROR_MESSAGES.MODEL_NAME_AND_MODULE_NAME_REQUIRED_TO_CREATE_INVERSE_FIELD);\n }\n return { moduleName, modelName };\n }\n\n async findMany(basicFilterDto: BasicFilterDto) {\n const alias = 'fieldMetadata';\n // Extract the required keys from the input query\n let { limit, offset, populateMedia } = basicFilterDto;\n\n // Create above query on pincode table using query builder\n var qb: SelectQueryBuilder<FieldMetadata> = await this.fieldMetadataRepo.createSecurityRuleAwareQueryBuilder(alias)\n qb = await this.crudHelperService.buildFilterQuery(qb, basicFilterDto, alias);\n\n // Get the records and the count\n const [entities, count] = await qb.getManyAndCount();\n\n const currentPage = Math.floor(offset / limit) + 1;\n const totalPages = Math.ceil(count / limit);\n\n const nextPage = currentPage < totalPages ? currentPage + 1 : null;\n const prevPage = currentPage > 1 ? currentPage - 1 : null;\n\n const r = {\n meta: {\n totalRecords: count,\n currentPage: currentPage,\n nextPage: nextPage,\n prevPage: prevPage,\n totalPages: totalPages,\n perPage: +limit,\n },\n records: entities\n };\n return r\n }\n\n async findOne(id: any, query?: any) {\n // const { fields, filters, populate } = basicFilterDto;\n const entity = await this.fieldMetadataRepo.findOne({\n where: {\n id: id,\n },\n relations: query && query?.populate,\n });\n if (!entity) {\n throw new NotFoundException(`entity #${id} not found`);\n }\n return entity;\n }\n\n async findByNameAndModelName(modelSingularName: string, fieldName: string) {\n\n const entity = await this.fieldMetadataRepo.findOne({\n where: {\n name: fieldName,\n model: {\n singularName: modelSingularName\n }\n },\n });\n\n return entity;\n }\n\n async selectionStaticValues(modelSingularName: string, fieldName: string) {\n\n const entity = await this.fieldMetadataRepo.findOne({\n where: {\n name: fieldName,\n model: {\n singularName: modelSingularName\n }\n },\n });\n\n if (!entity) {\n return [];\n }\n\n const selectionStaticValues = entity.selectionStaticValues;\n if (!selectionStaticValues) {\n return [];\n }\n\n return this.convertToSelectionProviderValues(selectionStaticValues);\n }\n\n convertToSelectionProviderValues(selectionStaticValues: string[]): ISelectionProviderValues[] {\n // return selectionStaticValues.split(',').map((item) => {\n // const [value, label] = item.split(':');\n // return { label, value };\n // });\n return selectionStaticValues.map((item) => {\n const [value, label] = item.split(':');\n return { label, value };\n });\n }\n\n async create(createDto: CreateFieldMetadataDto) {\n createDto['model'] = await this.dataSource.getRepository(ModelMetadata).findOne({\n where: {\n id: createDto['modelId']\n },\n });\n createDto['mediaStorageProvider'] = await this.dataSource.getRepository(ModelMetadata).findOne({\n where: {\n id: createDto['mediaStorageProviderId']\n },\n });\n\n const moduleMetadata = this.fieldMetadataRepo.create(createDto);\n return this.fieldMetadataRepo.save(moduleMetadata);\n }\n\n // async update(id: number, updateCountryDto: UpdateCountryDto) {\n\n // const country = await this.fieldMetadataRepo.preload({\n // id,\n // ...updateCountryDto,\n // });\n\n // if (!country) {\n // throw new NotFoundException(`Country ${id} not found`);\n // }\n // return this.moduleMetadataRepo.save(country);\n // }\n\n async delete(id: number) {\n const entity = await this.findOne(id);\n return this.fieldMetadataRepo.remove(entity);\n }\n\n async findFieldDefaultMetaData() {\n\n // Function to convert enum to array of objects\n const enumToResponseArray = (enumObj: any) => {\n return Object.entries(enumObj).map(([key, value]) => ({\n label: value,\n value: value,\n }));\n };\n\n // Orm Data type and Solid Dat Type Mapping\n const ormFieldTypeForSolid = {\n \"postgres\": {\n // Numeric types\n \"int\": {\n \"ormTypes\": [{ label: PSQLType.integer, description: \"A 4-byte integer for general numeric data.\" }]\n },\n \"bigint\": {\n \"ormTypes\": [{ label: PSQLType.bigint, description: \"An 8-byte integer for large numeric values.\" }]\n },\n \"decimal\": {\n \"ormTypes\": [{ label: PSQLType.decimal, description: \"A high-precision numeric type, ideal for financial data.\" }]\n },\n\n // Text types\n \"shortText\": {\n \"ormTypes\": [{ label: PSQLType.varchar, description: \"A variable-length string for short text.\" }]\n },\n \"longText\": {\n \"ormTypes\": [{ label: PSQLType.text, description: \"A text type for large or unbounded strings.\" }]\n },\n \"richText\": {\n \"ormTypes\": [{ label: PSQLType.text, description: \"A text type for large or formatted content.\" }]\n },\n \"json\": {\n \"ormTypes\": [\n { label: PSQLType.json, description: \"Stores JSON data without indexing.\" },\n { label: PSQLType.jsonb, description: \"Stores JSON data with indexing for faster queries.\" }\n ]\n },\n\n // Boolean types\n \"boolean\": {\n \"ormTypes\": [{ label: PSQLType.boolean, description: \"Stores true or false values.\" }]\n },\n\n // Date and time types\n \"date\": {\n \"ormTypes\": [{ label: PSQLType.date, description: \"Stores calendar dates (YYYY-MM-DD).\" }]\n },\n \"datetime\": {\n \"ormTypes\": [\n { label: PSQLType.timestamp, description: \"Stores date and time without time zones.\" },\n { label: PSQLType.timestamptz, description: \"Stores date and time with time zones.\" }\n ]\n },\n \"time\": {\n \"ormTypes\": [\n { label: PSQLType.time, description: \"Stores time values (HH:MM:SS).\" },\n { label: PSQLType.timestamp, description: \"Stores date and time without time zones.\" },\n { label: PSQLType.timestamptz, description: \"Stores date and time with time zones.\" }\n ]\n },\n\n // Relation\n \"relation\": {\n \"ormTypes\": [{ label: PSQLType.integer, description: \"Used for foreign keys referencing other entities.\" }]\n },\n\n // Media types\n \"mediaSingle\": {\n \"ormTypes\": [{ label: PSQLType.varchar, description: \"Stores file paths or URLs for single media files.\" }]\n },\n \"mediaMultiple\": {\n \"ormTypes\": [{ label: PSQLType.varchar, description: \"Stores file paths or URLs for multiple media files.\" }]\n },\n\n // Email and password\n \"email\": {\n \"ormTypes\": [{ label: PSQLType.varchar, description: \"Stores email addresses.\" }]\n },\n \"password\": {\n \"ormTypes\": [{ label: PSQLType.varchar, description: \"Stores hashed or plain-text passwords.\" }]\n },\n\n // Selection types\n \"selectionStatic\": {\n \"ormTypes\": [{ label: PSQLType.varchar, description: \"Used for predefined selection options.\" }]\n },\n \"selectionDynamic\": {\n \"ormTypes\": [{ label: PSQLType.varchar, description: \"Used for dynamic selection options.\" }]\n },\n\n // Computed and external ID\n \"computed\": {\n \"ormTypes\": [{ label: PSQLType.varchar, description: \"Represents computed or derived fields.\" }]\n },\n \"uuid\": {\n \"ormTypes\": [{ label: PSQLType.varchar, description: \"Stores universally unique identifiers (UUIDs).\" }]\n }\n }\n };\n\n\n // Fetch Data Source Type \n const dataSourceTypes = Object.keys(ormFieldTypeForSolid); // [\"psql\"]\n\n const fieldTypes = Object.entries(ormFieldTypeForSolid.postgres).map(([key, value]) => ({\n type: key,\n label: key,\n value: key,\n fieldType: key,\n ormTypes: value.ormTypes,\n fields: this.fetchCurrentFields(key)\n }));\n\n const dataSource = this.solidRegistry.getSolidDatabaseModules().map((solidDatabaseModule) => {\n return {\n 'name': solidDatabaseModule.instance.name(),\n 'type': solidDatabaseModule.instance.type()\n }\n });\n\n // Creating response arrays for each enum\n // Get all selection providers. \n const sps = [];\n const selectionProviders = this.solidRegistry.getSelectionProviders();\n for (let i = 0; i < selectionProviders.length; i++) {\n const selectionProvider = selectionProviders[i];\n sps.push({\n provider: selectionProvider.instance.name(),\n help: selectionProvider.instance.help(),\n });\n }\n\n const cps = [];\n const computedProviders = this.solidRegistry.getComputedFieldProviders();\n for (let i = 0; i < computedProviders.length; i++) {\n const computedProvider = computedProviders[i];\n cps.push({\n provider: computedProvider.instance.name(),\n help: computedProvider.instance.help(),\n });\n }\n\n const r = {\n // Field Types with ormtypes, available fields \n fieldTypes: fieldTypes,\n encryptionTypes: enumToResponseArray(EncryptionType),\n ormType: ormFieldTypeForSolid,\n decryptWhenTypes: enumToResponseArray(DecryptWhenType),\n mediaTypes: enumToResponseArray(MediaType),\n relationTypes: enumToResponseArray(RelationType),\n selectionDynamicProviders: sps,\n computedProviders: cps,\n cascadeTypes: enumToResponseArray(CascadeType),\n selectionValueTypes: enumToResponseArray(SelectionValueType),\n computedFieldValueTypes: enumToResponseArray(ComputedFieldValueType),\n dataSourceType: dataSourceTypes,\n dataSource: dataSource,\n };\n\n return r\n }\n\n async fetchCurrentFieldsBasedOnType(type: string) {\n return this.fetchCurrentFields(type);\n }\n\n private fetchCurrentFields(solidFieldType: string) {\n switch (solidFieldType) {\n case SolidFieldType.int:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"defaultValue\",\n \"min\",\n \"max\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\",\n \"enableAuditTracking\"\n ];\n\n case SolidFieldType.bigint:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"defaultValue\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\",\n \"enableAuditTracking\"\n ];\n\n // case SolidFieldType.float:\n // return [\n // \"name\",\n // \"displayName\",\n // \"description\",\n // \"type\",\n // \"ormType\",\n // \"isSystem\",\n // \"defaultValue\",\n // \"required\",\n // \"unique\",\n // \"index\",\n // \"private\",\n // \"encrypt\",\n // \"encryptionType\",\n // \"decryptWhen\"\n // ];\n\n case SolidFieldType.decimal:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"defaultValue\",\n \"min\",\n \"max\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\",\n \"enableAuditTracking\"\n ];\n\n case SolidFieldType.shortText:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"defaultValue\",\n \"min\",\n \"max\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\",\n \"isUserKey\",\n \"enableAuditTracking\"\n ];\n\n case SolidFieldType.longtext:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"regexPattern\",\n \"regexPatternNotMatchingErrorMsg\",\n \"defaultValue\",\n \"min\",\n \"max\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\"\n ];\n\n case SolidFieldType.richText:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n // \"min\",\n // \"max\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\"\n ];\n\n\n case SolidFieldType.json:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n // \"min\",\n // \"max\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\"\n ];\n\n case SolidFieldType.boolean:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"defaultValue\",\n \"required\",\n // \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\",\n \"enableAuditTracking\"\n ];\n\n case SolidFieldType.date:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"defaultValue\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\",\n \"enableAuditTracking\"\n ];\n\n case SolidFieldType.datetime:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"defaultValue\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\",\n \"enableAuditTracking\"\n ];\n\n case SolidFieldType.time:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"defaultValue\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\",\n \"enableAuditTracking\"\n ];\n\n case SolidFieldType.relation:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"relationType\",\n \"relationCoModelFieldName\",\n \"relationCreateInverse\",\n \"relationCoModelSingularName\",\n \"relationCoModelColumnName\",\n \"relationModelModuleName\",\n \"relationCascade\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\",\n \"relationJoinTableName\",\n \"isRelationManyToManyOwner\",\n \"relationFieldFixedFilter\",\n \"enableAuditTracking\"\n ];\n\n case SolidFieldType.mediaSingle:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"mediaTypes\",\n \"mediaMaxSizeKb\",\n \"mediaStorageProviderId\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\"\n ];\n\n case SolidFieldType.mediaMultiple:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"mediaTypes\",\n \"mediaMaxSizeKb\",\n \"mediaStorageProviderId\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\"\n ];\n\n case SolidFieldType.email:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"regexPattern\",\n \"regexPatternNotMatchingErrorMsg\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\",\n \"enableAuditTracking\"\n ];\n\n case SolidFieldType.password:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"min\",\n \"max\",\n \"regexPattern\",\n \"regexPatternNotMatchingErrorMsg\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\"\n ];\n\n case SolidFieldType.selectionStatic:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"defaultValue\",\n \"selectionStaticValues\",\n \"selectionValueType\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\",\n \"enableAuditTracking\",\n \"isMultiSelect\"\n ];\n\n case SolidFieldType.selectionDynamic:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"selectionDynamicProvider\",\n \"selectionDynamicProviderCtxt\",\n \"selectionValueType\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\",\n \"isUserKey\",\n \"enableAuditTracking\",\n \"isMultiSelect\"\n ];\n case SolidFieldType.computed:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"computedFieldValueType\",\n \"computedFieldTriggerConfig\",\n \"computedFieldValueProvider\",\n \"computedFieldValueProviderCtxt\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\",\n \"isUserKey\"\n ];\n\n case SolidFieldType.uuid:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"uuid\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\"\n ];\n\n\n\n\n default:\n return [\n \"name\",\n \"displayName\",\n \"description\",\n \"type\",\n \"ormType\",\n \"isSystem\",\n \"required\",\n \"unique\",\n \"index\",\n \"private\",\n \"encrypt\",\n \"encryptionType\",\n \"decryptWhen\",\n \"columnName\"\n ];\n }\n }\n\n async fetchAllDataSources() {\n // Initialize the data source\n // await AppDataSource.initialize();\n\n // // Get all entities metadata\n // const entities = AppDataSource.entityMetadatas;\n\n // // Create an array to hold the data sources\n // const dataSources = entities.map(entity => ({\n // name: entity.name,\n // tableName: entity.tableName,\n // columns: entity.columns.map(column => ({\n // propertyName: column.propertyName,\n // databaseName: column.databaseName,\n // type: column.type,\n // })),\n // }));\n\n // return dataSources;\n }\n\n async upsert(updateDto: UpdateFieldMetaDataDto) {\n // First check if module already exists using name\n const existingFieldMetadata = await this.fieldMetadataRepo.findOne({\n where: {\n //@ts-ignore\n model: { id: updateDto.model.id },\n name: updateDto.name\n }\n })\n\n // if found\n if (existingFieldMetadata) {\n const updatedFieldMetadata = { ...existingFieldMetadata, ...updateDto };\n return this.fieldMetadataRepo.save(updatedFieldMetadata);\n }\n // if not found - create new \n else {\n const fieldMetadata = this.fieldMetadataRepo.create(updateDto);\n return this.fieldMetadataRepo.save(fieldMetadata);\n }\n }\n\n async getSelectionDynamicValues(query: SelectionDynamicQueryDto) {\n // 1. use the id to identify the field. \n const entity = await this.fieldMetadataRepo.findOne({\n where: {\n id: query.fieldId,\n },\n });\n if (!entity) {\n throw new NotFoundException(ERROR_MESSAGES.FIELD_NOT_FOUND(query.fieldId));\n }\n\n // 2. use the field metadata to identify the provider. \n const selectionDynamicProvider = entity.selectionDynamicProvider;\n const selectionDynamicProviderCtxt = JSON.parse(entity.selectionDynamicProviderCtxt ? entity.selectionDynamicProviderCtxt : '{}');\n selectionDynamicProviderCtxt['limit'] = query.limit;\n selectionDynamicProviderCtxt['offset'] = query.offset;\n const formValues = query.formValues || {};\n // Parse the form values if they are in string format using qs\n const parsedFormValues = typeof formValues === 'string' ? qs.parse(formValues, { allowDots: true }) : formValues;\n selectionDynamicProviderCtxt['formValues'] = parsedFormValues;\n\n\n // 3. get hold of the provider instance from the SolidRegistry\n const selectionProviderInstance = this.solidRegistry.getSelectionProviderInstance(selectionDynamicProvider);\n if (!selectionProviderInstance) {\n throw new NotFoundException(ERROR_MESSAGES.PROVIDER_NOT_FOUND(selectionDynamicProvider));\n }\n\n // 4. use the provider to fetch the dynamic values, pass the query string received from the UI.. \n return selectionProviderInstance.values(query.query, selectionDynamicProviderCtxt);\n }\n\n async getSelectionDynamicValue(query: SelectionDynamicQueryDto) {\n // 1. use the id to identify the field. \n const entity = await this.fieldMetadataRepo.findOne({\n where: {\n id: query.fieldId,\n },\n });\n if (!entity) {\n throw new NotFoundException(ERROR_MESSAGES.FIELD_NOT_FOUND(query.fieldId));\n }\n\n // 2. use the field metadata to identify the provider. \n const selectionDynamicProvider = entity.selectionDynamicProvider;\n const selectionDynamicProviderCtxt = JSON.parse(entity.selectionDynamicProviderCtxt ? entity.selectionDynamicProviderCtxt : '{}');\n selectionDynamicProviderCtxt['limit'] = query.limit;\n selectionDynamicProviderCtxt['offset'] = query.offset;\n const formValues = query.formValues || {};\n // Parse the form values if they are in string format using qs\n const parsedFormValues = typeof formValues === 'string' ? qs.parse(formValues, { allowDots: true }) : formValues;\n selectionDynamicProviderCtxt['formValues'] = parsedFormValues;\n\n // 3. get hold of the provider instance from the SolidRegistry\n const selectionProviderInstance = this.solidRegistry.getSelectionProviderInstance(selectionDynamicProvider);\n if (!selectionProviderInstance) {\n throw new NotFoundException(ERROR_MESSAGES.PROVIDER_NOT_FOUND(selectionDynamicProvider));\n }\n\n // 4. use the provider to fetch the dynamic values, pass the query string received from the UI.. \n return selectionProviderInstance.value(query.optionValue, selectionDynamicProviderCtxt);\n }\n\n private async updateRelationInverseFieldInFile(savedInverseField: FieldMetadata, inverseModelName: string, moduleName: string) {\n try {\n const filePath = await this.moduleMetadataHelperService.getModuleMetadataFilePath(moduleName);\n const metaData = await this.moduleMetadataHelperService.getModuleMetadataConfiguration(filePath);\n\n // Create the config object for the inverse field\n const fieldObject: Record<string, any> = await this.createFieldConfig(savedInverseField);\n\n // Find the field config object in the json file\n const model = metaData.moduleMetadata.models.find((model: any) => model.singularName === inverseModelName);\n\n // Replace the current field object with the above field object\n const fieldIndex = model.fields.findIndex((field: any) => field.name === savedInverseField.name);\n if (fieldIndex === -1) {\n model.fields.push(fieldObject);\n }\n else {\n model.fields[fieldIndex] = fieldObject;\n }\n\n // Write the updated object back to the file\n const updatedContent = JSON.stringify(metaData, null, 2);\n await fs.writeFile(filePath, updatedContent);\n } catch (error) {\n this.logger.error('File creation failed:', error);\n throw new Error(ERROR_MESSAGES.FILE_WRITE_FAILED); // Trigger rollback\n }\n }\n\n //Moved existing reusable logic to a separate function\n async createFieldConfig(field: FieldMetadata) {\n const fieldsRequiredBasedOnType = await this.fetchCurrentFieldsBasedOnType(field.type);\n const fieldObject: Record<string, any> = {};\n\n // Assign default or placeholder values for required fields\n fieldsRequiredBasedOnType.forEach((requiredField) => {\n fieldObject[requiredField] = field[requiredField];\n });\n\n if (field.type == \"mediaSingle\" || field.type == \"mediaMultiple\") {\n if (field.mediaStorageProvider) {\n delete fieldObject.mediaStorageProviderId\n fieldObject.mediaStorageProviderUserKey = field.mediaStorageProvider.name\n }\n }\n if (field.isMarkedForRemoval) {\n fieldObject.isMarkedForRemoval = field.isMarkedForRemoval;\n }\n\n return fieldObject;\n }\n}\n\n\n"]}
@@ -1,5 +1,5 @@
1
1
  import { DiscoveryService, ModuleRef } from "@nestjs/core";
2
- import { EntityManager, Repository } from 'typeorm';
2
+ import { EntityManager } from 'typeorm';
3
3
  import { CRUDService } from 'src/services/crud.service';
4
4
  import { ModelMetadataService } from 'src/services/model-metadata.service';
5
5
  import { ModuleMetadataService } from 'src/services/module-metadata.service';
@@ -7,6 +7,7 @@ import { ConfigService } from '@nestjs/config';
7
7
  import { FileService } from 'src/services/file.service';
8
8
  import { CrudHelperService } from 'src/services/crud-helper.service';
9
9
  import { ImportTransactionErrorLog } from '../entities/import-transaction-error-log.entity';
10
+ import { ImportTransactionErrorLogRepository } from 'src/repository/import-transaction-error-log.repository';
10
11
  export declare class ImportTransactionErrorLogService extends CRUDService<ImportTransactionErrorLog> {
11
12
  readonly modelMetadataService: ModelMetadataService;
12
13
  readonly moduleMetadataService: ModuleMetadataService;
@@ -15,8 +16,8 @@ export declare class ImportTransactionErrorLogService extends CRUDService<Import
15
16
  readonly discoveryService: DiscoveryService;
16
17
  readonly crudHelperService: CrudHelperService;
17
18
  readonly entityManager: EntityManager;
18
- readonly repo: Repository<ImportTransactionErrorLog>;
19
+ readonly repo: ImportTransactionErrorLogRepository;
19
20
  readonly moduleRef: ModuleRef;
20
- constructor(modelMetadataService: ModelMetadataService, moduleMetadataService: ModuleMetadataService, configService: ConfigService, fileService: FileService, discoveryService: DiscoveryService, crudHelperService: CrudHelperService, entityManager: EntityManager, repo: Repository<ImportTransactionErrorLog>, moduleRef: ModuleRef);
21
+ constructor(modelMetadataService: ModelMetadataService, moduleMetadataService: ModuleMetadataService, configService: ConfigService, fileService: FileService, discoveryService: DiscoveryService, crudHelperService: CrudHelperService, entityManager: EntityManager, repo: ImportTransactionErrorLogRepository, moduleRef: ModuleRef);
21
22
  }
22
23
  //# sourceMappingURL=import-transaction-error-log.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"import-transaction-error-log.service.d.ts","sourceRoot":"","sources":["../../src/services/import-transaction-error-log.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAG,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAGrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iDAAiD,CAAC;AAE5F,qBACa,gCAAiC,SAAQ,WAAW,CAAC,yBAAyB,CAAC;IAExF,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB;IACnD,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB;IACrD,QAAQ,CAAC,aAAa,EAAE,aAAa;IACrC,QAAQ,CAAC,WAAW,EAAE,WAAW;IACjC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;IAC3C,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB;IAE7C,QAAQ,CAAC,aAAa,EAAE,aAAa;IAErC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,yBAAyB,CAAC;IACpD,QAAQ,CAAC,SAAS,EAAE,SAAS;gBAVpB,oBAAoB,EAAE,oBAAoB,EAC1C,qBAAqB,EAAE,qBAAqB,EAC5C,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,EAClC,iBAAiB,EAAE,iBAAiB,EAEpC,aAAa,EAAE,aAAa,EAE5B,IAAI,EAAE,UAAU,CAAC,yBAAyB,CAAC,EAC3C,SAAS,EAAE,SAAS;CAKhC"}
1
+ {"version":3,"file":"import-transaction-error-log.service.d.ts","sourceRoot":"","sources":["../../src/services/import-transaction-error-log.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAG,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAc,MAAM,SAAS,CAAC;AAEpD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAGrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iDAAiD,CAAC;AAC5F,OAAO,EAAE,mCAAmC,EAAE,MAAM,wDAAwD,CAAC;AAE7G,qBACa,gCAAiC,SAAQ,WAAW,CAAC,yBAAyB,CAAC;IAExF,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB;IACnD,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB;IACrD,QAAQ,CAAC,aAAa,EAAE,aAAa;IACrC,QAAQ,CAAC,WAAW,EAAE,WAAW;IACjC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;IAC3C,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB;IAE7C,QAAQ,CAAC,aAAa,EAAE,aAAa;IAGrC,QAAQ,CAAC,IAAI,EAAE,mCAAmC;IAClD,QAAQ,CAAC,SAAS,EAAE,SAAS;gBAXpB,oBAAoB,EAAE,oBAAoB,EAC1C,qBAAqB,EAAE,qBAAqB,EAC5C,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,EAClC,iBAAiB,EAAE,iBAAiB,EAEpC,aAAa,EAAE,aAAa,EAG5B,IAAI,EAAE,mCAAmC,EACzC,SAAS,EAAE,SAAS;CAKhC"}
@@ -23,7 +23,7 @@ const module_metadata_service_1 = require("./module-metadata.service");
23
23
  const config_1 = require("@nestjs/config");
24
24
  const file_service_1 = require("./file.service");
25
25
  const crud_helper_service_1 = require("./crud-helper.service");
26
- const import_transaction_error_log_entity_1 = require("../entities/import-transaction-error-log.entity");
26
+ const import_transaction_error_log_repository_1 = require("../repository/import-transaction-error-log.repository");
27
27
  let ImportTransactionErrorLogService = class ImportTransactionErrorLogService extends crud_service_1.CRUDService {
28
28
  constructor(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, moduleRef) {
29
29
  super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService, entityManager, repo, 'importTransactionErrorLog', 'solid-core', moduleRef);
@@ -42,7 +42,6 @@ exports.ImportTransactionErrorLogService = ImportTransactionErrorLogService;
42
42
  exports.ImportTransactionErrorLogService = ImportTransactionErrorLogService = __decorate([
43
43
  (0, common_1.Injectable)(),
44
44
  __param(6, (0, typeorm_1.InjectEntityManager)()),
45
- __param(7, (0, typeorm_1.InjectRepository)(import_transaction_error_log_entity_1.ImportTransactionErrorLog, 'default')),
46
45
  __metadata("design:paramtypes", [model_metadata_service_1.ModelMetadataService,
47
46
  module_metadata_service_1.ModuleMetadataService,
48
47
  config_1.ConfigService,
@@ -50,7 +49,7 @@ exports.ImportTransactionErrorLogService = ImportTransactionErrorLogService = __
50
49
  core_1.DiscoveryService,
51
50
  crud_helper_service_1.CrudHelperService,
52
51
  typeorm_2.EntityManager,
53
- typeorm_2.Repository,
52
+ import_transaction_error_log_repository_1.ImportTransactionErrorLogRepository,
54
53
  core_1.ModuleRef])
55
54
  ], ImportTransactionErrorLogService);
56
55
  //# sourceMappingURL=import-transaction-error-log.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"import-transaction-error-log.service.js","sourceRoot":"","sources":["../../src/services/import-transaction-error-log.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAwE;AACxE,uCAA4D;AAC5D,qCAAoD;AAEpD,iDAAwD;AACxD,qEAA2E;AAC3E,uEAA6E;AAC7E,2CAA+C;AAC/C,iDAAwD;AACxD,+DAAqE;AAGrE,yGAA4F;AAGrF,IAAM,gCAAgC,GAAtC,MAAM,gCAAiC,SAAQ,0BAAsC;IAC1F,YACW,oBAA0C,EAC1C,qBAA4C,EAC5C,aAA4B,EAC5B,WAAwB,EACxB,gBAAkC,EAClC,iBAAoC,EAEpC,aAA4B,EAE5B,IAA2C,EAC3C,SAAoB;QAG9B,KAAK,CAAC,oBAAoB,EAAE,qBAAqB,EAAG,aAAa,EAAE,WAAW,EAAG,gBAAgB,EAAE,iBAAiB,EAAC,aAAa,EAAE,IAAI,EAAE,2BAA2B,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;QAbtL,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,kBAAa,GAAb,aAAa,CAAe;QAC5B,gBAAW,GAAX,WAAW,CAAa;QACxB,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,sBAAiB,GAAjB,iBAAiB,CAAmB;QAEpC,kBAAa,GAAb,aAAa,CAAe;QAE5B,SAAI,GAAJ,IAAI,CAAuC;QAC3C,cAAS,GAAT,SAAS,CAAW;IAIhC,CAAC;CACD,CAAA;AAjBY,4EAAgC;2CAAhC,gCAAgC;IAD5C,IAAA,mBAAU,GAAE;IASR,WAAA,IAAA,6BAAmB,GAAE,CAAA;IAErB,WAAA,IAAA,0BAAgB,EAAC,+DAAyB,EAAE,SAAS,CAAC,CAAA;qCARxB,6CAAoB;QACnB,+CAAqB;QAC7B,sBAAa;QACf,0BAAW;QACN,uBAAgB;QACf,uCAAiB;QAErB,uBAAa;QAEtB,oBAAU;QACL,gBAAS;GAZpB,gCAAgC,CAiB5C","sourcesContent":["import { Injectable } from '@nestjs/common';\nimport { InjectEntityManager, InjectRepository } from '@nestjs/typeorm';\nimport { DiscoveryService, ModuleRef } from \"@nestjs/core\";\nimport { EntityManager, Repository } from 'typeorm';\n\nimport { CRUDService } from 'src/services/crud.service';\nimport { ModelMetadataService } from 'src/services/model-metadata.service';\nimport { ModuleMetadataService } from 'src/services/module-metadata.service';\nimport { ConfigService } from '@nestjs/config';\nimport { FileService } from 'src/services/file.service';\nimport { CrudHelperService } from 'src/services/crud-helper.service';\n\n\nimport { ImportTransactionErrorLog } from '../entities/import-transaction-error-log.entity';\n\n@Injectable()\nexport class ImportTransactionErrorLogService extends CRUDService<ImportTransactionErrorLog>{\n constructor(\n readonly modelMetadataService: ModelMetadataService,\n readonly moduleMetadataService: ModuleMetadataService,\n readonly configService: ConfigService,\n readonly fileService: FileService,\n readonly discoveryService: DiscoveryService,\n readonly crudHelperService: CrudHelperService,\n @InjectEntityManager()\n readonly entityManager: EntityManager,\n @InjectRepository(ImportTransactionErrorLog, 'default')\n readonly repo: Repository<ImportTransactionErrorLog>,\n readonly moduleRef: ModuleRef\n\n ) {\n super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService,entityManager, repo, 'importTransactionErrorLog', 'solid-core', moduleRef);\n }\n}\n"]}
1
+ {"version":3,"file":"import-transaction-error-log.service.js","sourceRoot":"","sources":["../../src/services/import-transaction-error-log.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAwE;AACxE,uCAA4D;AAC5D,qCAAoD;AAEpD,iDAAwD;AACxD,qEAA2E;AAC3E,uEAA6E;AAC7E,2CAA+C;AAC/C,iDAAwD;AACxD,+DAAqE;AAIrE,mHAA6G;AAGtG,IAAM,gCAAgC,GAAtC,MAAM,gCAAiC,SAAQ,0BAAsC;IAC1F,YACW,oBAA0C,EAC1C,qBAA4C,EAC5C,aAA4B,EAC5B,WAAwB,EACxB,gBAAkC,EAClC,iBAAoC,EAEpC,aAA4B,EAG5B,IAAyC,EACzC,SAAoB;QAG9B,KAAK,CAAC,oBAAoB,EAAE,qBAAqB,EAAG,aAAa,EAAE,WAAW,EAAG,gBAAgB,EAAE,iBAAiB,EAAC,aAAa,EAAE,IAAI,EAAE,2BAA2B,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;QAdtL,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,kBAAa,GAAb,aAAa,CAAe;QAC5B,gBAAW,GAAX,WAAW,CAAa;QACxB,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,sBAAiB,GAAjB,iBAAiB,CAAmB;QAEpC,kBAAa,GAAb,aAAa,CAAe;QAG5B,SAAI,GAAJ,IAAI,CAAqC;QACzC,cAAS,GAAT,SAAS,CAAW;IAIhC,CAAC;CACD,CAAA;AAlBY,4EAAgC;2CAAhC,gCAAgC;IAD5C,IAAA,mBAAU,GAAE;IASR,WAAA,IAAA,6BAAmB,GAAE,CAAA;qCANS,6CAAoB;QACnB,+CAAqB;QAC7B,sBAAa;QACf,0BAAW;QACN,uBAAgB;QACf,uCAAiB;QAErB,uBAAa;QAGtB,6EAAmC;QAC9B,gBAAS;GAbpB,gCAAgC,CAkB5C","sourcesContent":["import { Injectable } from '@nestjs/common';\nimport { InjectEntityManager, InjectRepository } from '@nestjs/typeorm';\nimport { DiscoveryService, ModuleRef } from \"@nestjs/core\";\nimport { EntityManager, Repository } from 'typeorm';\n\nimport { CRUDService } from 'src/services/crud.service';\nimport { ModelMetadataService } from 'src/services/model-metadata.service';\nimport { ModuleMetadataService } from 'src/services/module-metadata.service';\nimport { ConfigService } from '@nestjs/config';\nimport { FileService } from 'src/services/file.service';\nimport { CrudHelperService } from 'src/services/crud-helper.service';\n\n\nimport { ImportTransactionErrorLog } from '../entities/import-transaction-error-log.entity';\nimport { ImportTransactionErrorLogRepository } from 'src/repository/import-transaction-error-log.repository';\n\n@Injectable()\nexport class ImportTransactionErrorLogService extends CRUDService<ImportTransactionErrorLog>{\n constructor(\n readonly modelMetadataService: ModelMetadataService,\n readonly moduleMetadataService: ModuleMetadataService,\n readonly configService: ConfigService,\n readonly fileService: FileService,\n readonly discoveryService: DiscoveryService,\n readonly crudHelperService: CrudHelperService,\n @InjectEntityManager()\n readonly entityManager: EntityManager,\n // @InjectRepository(ImportTransactionErrorLog, 'default')\n // readonly repo: Repository<ImportTransactionErrorLog>,\n readonly repo: ImportTransactionErrorLogRepository,\n readonly moduleRef: ModuleRef\n\n ) {\n super(modelMetadataService, moduleMetadataService, configService, fileService, discoveryService, crudHelperService,entityManager, repo, 'importTransactionErrorLog', 'solid-core', moduleRef);\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { DiscoveryService, ModuleRef } from "@nestjs/core";
2
- import { EntityManager, Repository } from 'typeorm';
2
+ import { EntityManager } from 'typeorm';
3
3
  import { ConfigService } from '@nestjs/config';
4
4
  import { CrudHelperService } from 'src/services/crud-helper.service';
5
5
  import { CRUDService } from 'src/services/crud.service';
@@ -9,10 +9,13 @@ import { ModuleMetadataService } from 'src/services/module-metadata.service';
9
9
  import { HttpService } from '@nestjs/axios';
10
10
  import { ImportInstructionsResponseDto } from 'src/dtos/import-instructions.dto';
11
11
  import { ImportTransactionErrorLog } from 'src/entities/import-transaction-error-log.entity';
12
+ import { ImportTransactionRepository } from 'src/repository/import-transaction.repository';
12
13
  import { ImportTransaction } from '../entities/import-transaction.entity';
13
14
  import { CsvService } from './csv.service';
14
15
  import { ExcelService } from './excel.service';
15
16
  import { SolidIntrospectService } from './solid-introspect.service';
17
+ import { ModelMetadataHelperService } from 'src/helpers/model-metadata-helper.service';
18
+ import { ActiveUserData } from 'src/interfaces/active-user-data.interface';
16
19
  interface ImportTemplateFileInfo {
17
20
  stream: NodeJS.ReadableStream;
18
21
  fileName: string;
@@ -64,18 +67,19 @@ export declare class ImportTransactionService extends CRUDService<ImportTransact
64
67
  readonly discoveryService: DiscoveryService;
65
68
  readonly crudHelperService: CrudHelperService;
66
69
  readonly entityManager: EntityManager;
67
- readonly repo: Repository<ImportTransaction>;
70
+ readonly repo: ImportTransactionRepository;
68
71
  readonly moduleRef: ModuleRef;
69
72
  readonly excelService: ExcelService;
70
73
  readonly csvService: CsvService;
71
74
  readonly httpService: HttpService;
72
75
  readonly introspectService: SolidIntrospectService;
73
- constructor(modelMetadataService: ModelMetadataService, moduleMetadataService: ModuleMetadataService, configService: ConfigService, fileService: FileService, discoveryService: DiscoveryService, crudHelperService: CrudHelperService, entityManager: EntityManager, repo: Repository<ImportTransaction>, moduleRef: ModuleRef, excelService: ExcelService, csvService: CsvService, httpService: HttpService, introspectService: SolidIntrospectService);
76
+ private readonly modelMetadataHelperService;
77
+ constructor(modelMetadataService: ModelMetadataService, moduleMetadataService: ModuleMetadataService, configService: ConfigService, fileService: FileService, discoveryService: DiscoveryService, crudHelperService: CrudHelperService, entityManager: EntityManager, repo: ImportTransactionRepository, moduleRef: ModuleRef, excelService: ExcelService, csvService: CsvService, httpService: HttpService, introspectService: SolidIntrospectService, modelMetadataHelperService: ModelMetadataHelperService);
74
78
  private readonly logger;
75
79
  getImportTemplate(modelMetadataId: number, format?: ImportFormat): Promise<ImportTemplateFileInfo>;
76
80
  getImportInstructions(modelMetadataId: number): Promise<ImportInstructionsResponseDto>;
77
81
  getImportMappingInfo(importTransactionId: number): Promise<ImportMappingInfo>;
78
- startImportSync(importTransactionId: number): Promise<ImportSyncResult>;
82
+ startImportSync(importTransactionId: number, activeUser: ActiveUserData): Promise<ImportSyncResult>;
79
83
  startImportAsync(importTransactionId: number): Promise<void>;
80
84
  exportFailedImportedImports(importTransactionId: number): Promise<{
81
85
  stream: any;
@@ -1 +1 @@
1
- {"version":3,"file":"import-transaction.service.d.ts","sourceRoot":"","sources":["../../src/services/import-transaction.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"import-transaction.service.d.ts","sourceRoot":"","sources":["../../src/services/import-transaction.service.ts"],"names":[],"mappings":"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"}