rez_core 4.0.98 → 4.0.100

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 (385) hide show
  1. package/.prettierrc +3 -3
  2. package/.vscode/extensions.json +5 -0
  3. package/README.md +99 -99
  4. package/dist/module/auth/guards/role.guard.js +3 -3
  5. package/dist/module/auth/services/auth.service.js +2 -2
  6. package/dist/module/filter/repository/saved-filter.repository.js +4 -4
  7. package/dist/module/filter/service/filter-evaluator.service.js +2 -2
  8. package/dist/module/filter/service/filter.service.js +22 -22
  9. package/dist/module/integration/examples/usage.example.js +9 -9
  10. package/dist/module/integration/service/integration.service.js +1 -1
  11. package/dist/module/integration/service/wrapper.service.js +25 -25
  12. package/dist/module/listmaster/service/list-master-item.service.js +2 -2
  13. package/dist/module/mapper/service/field-mapper.service.js +4 -4
  14. package/dist/module/mapper/service/mapper.service.js +2 -2
  15. package/dist/module/meta/service/entity-dynamic.service.js +25 -20
  16. package/dist/module/meta/service/entity-dynamic.service.js.map +1 -1
  17. package/dist/module/meta/service/entity-list.service.js +3 -3
  18. package/dist/module/meta/service/entity-master.service.js +3 -3
  19. package/dist/module/meta/service/entity-relation.service.js +11 -11
  20. package/dist/module/meta/service/entity-service-impl.service.js +3 -3
  21. package/dist/module/meta/service/resolver.service.js +3 -3
  22. package/dist/module/module/repository/menu.repository.js +12 -12
  23. package/dist/module/notification/service/notification.service.js +9 -9
  24. package/dist/module/user/controller/login.controller.js +18 -18
  25. package/dist/module/user/service/role.service.js +4 -4
  26. package/dist/module/user/service/user-session.service.js +2 -2
  27. package/dist/module/workflow/repository/action.repository.js +20 -20
  28. package/dist/module/workflow/repository/comm-template.repository.js +6 -6
  29. package/dist/module/workflow/repository/form-master.repository.js +2 -2
  30. package/dist/module/workflow/repository/stage-group.repository.js +23 -23
  31. package/dist/module/workflow/repository/stage-movement.repository.js +15 -15
  32. package/dist/module/workflow/repository/stage.repository.js +8 -8
  33. package/dist/module/workflow/service/action-template-mapping.service.js +22 -22
  34. package/dist/module/workflow/service/action.service.js +7 -7
  35. package/dist/module/workflow/service/entity-modification.service.js +6 -6
  36. package/dist/module/workflow/service/stage-group.service.js +2 -2
  37. package/dist/module/workflow/service/stage.service.js +2 -2
  38. package/dist/module/workflow/service/task.service.js +28 -28
  39. package/dist/module/workflow/service/workflow-list-master.service.js +15 -15
  40. package/dist/module/workflow/service/workflow-meta.service.js +35 -35
  41. package/dist/module/workflow/service/workflow.service.js +2 -2
  42. package/dist/tsconfig.build.tsbuildinfo +1 -1
  43. package/dist/utils/service/reflection-helper.service.js +2 -2
  44. package/docs/modules/event-driven-integration-design.md +91 -91
  45. package/docs/modules/integration.md +250 -250
  46. package/eslint.config.mjs +34 -34
  47. package/nest-cli.json +14 -14
  48. package/package.json +118 -118
  49. package/src/app.controller.ts +12 -12
  50. package/src/app.module.ts +49 -49
  51. package/src/app.service.ts +8 -8
  52. package/src/config/config.module.ts +18 -18
  53. package/src/config/database.config.ts +23 -23
  54. package/src/constant/global.constant.ts +67 -67
  55. package/src/core.module.ts +81 -81
  56. package/src/decorators/roles.decorator.ts +7 -7
  57. package/src/dtos/response.dto.ts +6 -6
  58. package/src/dtos/response.ts +5 -5
  59. package/src/index.ts +1 -1
  60. package/src/module/auth/auth.module.ts +49 -49
  61. package/src/module/auth/controller/auth.controller.ts +28 -28
  62. package/src/module/auth/guards/google-auth.guard.ts +9 -9
  63. package/src/module/auth/guards/jwt.guard.ts +22 -22
  64. package/src/module/auth/guards/role.guard.ts +68 -68
  65. package/src/module/auth/services/auth.service.ts +50 -50
  66. package/src/module/auth/services/jwt.service.ts +11 -11
  67. package/src/module/auth/strategies/google.strategy.ts +54 -54
  68. package/src/module/auth/strategies/jwt.strategy.ts +58 -58
  69. package/src/module/auth/strategies/local.strategy.ts +13 -13
  70. package/src/module/dashboard/controller/dashboard.controller.ts +36 -36
  71. package/src/module/dashboard/dashboard.module.ts +21 -21
  72. package/src/module/dashboard/entity/dashboard_page_data.entity.ts +27 -27
  73. package/src/module/dashboard/entity/widget_master.entity.ts +18 -18
  74. package/src/module/dashboard/repository/dashboard.repository.ts +42 -42
  75. package/src/module/dashboard/service/dashboard.service.ts +73 -73
  76. package/src/module/dev/dev.module.ts +12 -12
  77. package/src/module/dev/service/dev.service.ts +7 -7
  78. package/src/module/enterprise/controller/organization.controller.ts +36 -36
  79. package/src/module/enterprise/enterprise.module.ts +30 -30
  80. package/src/module/enterprise/entity/enterprise.entity.ts +37 -37
  81. package/src/module/enterprise/entity/organization-app-mapping.entity.ts +13 -13
  82. package/src/module/enterprise/entity/organization.entity.ts +92 -92
  83. package/src/module/enterprise/repository/enterprise.repository.ts +31 -31
  84. package/src/module/enterprise/repository/organization.repository.ts +26 -26
  85. package/src/module/enterprise/repository/school.repository.ts +278 -278
  86. package/src/module/enterprise/service/brand.service.ts +5 -5
  87. package/src/module/enterprise/service/enterprise.service.ts +16 -16
  88. package/src/module/enterprise/service/organization-app-mapping.service.ts +4 -4
  89. package/src/module/enterprise/service/organization.service.ts +145 -145
  90. package/src/module/filter/controller/filter.controller.ts +84 -84
  91. package/src/module/filter/dto/filter-request.dto.ts +38 -38
  92. package/src/module/filter/entity/saved-filter-detail.entity.ts +41 -41
  93. package/src/module/filter/entity/saved-filter-master.entity.ts +23 -23
  94. package/src/module/filter/filter.module.ts +31 -31
  95. package/src/module/filter/repository/saved-filter.repository.ts +168 -168
  96. package/src/module/filter/service/filter-evaluator.service.ts +86 -86
  97. package/src/module/filter/service/filter.service.ts +941 -941
  98. package/src/module/filter/service/saved-filter.service.ts +170 -170
  99. package/src/module/ics/controller/ics.controller.ts +21 -21
  100. package/src/module/ics/dto/ics.dto.ts +55 -55
  101. package/src/module/ics/ics.module.ts +13 -13
  102. package/src/module/ics/service/ics.service.ts +57 -57
  103. package/src/module/integration/controller/calender-event.controller.ts +31 -31
  104. package/src/module/integration/controller/integration.controller.ts +662 -662
  105. package/src/module/integration/controller/wrapper.controller.ts +37 -37
  106. package/src/module/integration/dto/create-config.dto.ts +526 -526
  107. package/src/module/integration/entity/integration-config.entity.ts +112 -112
  108. package/src/module/integration/entity/integration-entity-mapper.entity.ts +14 -14
  109. package/src/module/integration/entity/integration-source.entity.ts +17 -17
  110. package/src/module/integration/entity/user-integration.entity.ts +71 -71
  111. package/src/module/integration/examples/usage.example.ts +338 -338
  112. package/src/module/integration/factories/base.factory.ts +7 -7
  113. package/src/module/integration/factories/email.factory.ts +49 -49
  114. package/src/module/integration/factories/integration.factory.ts +121 -121
  115. package/src/module/integration/factories/sms.factory.ts +51 -51
  116. package/src/module/integration/factories/telephone.factory.ts +41 -41
  117. package/src/module/integration/factories/whatsapp.factory.ts +56 -56
  118. package/src/module/integration/integration.module.ts +110 -110
  119. package/src/module/integration/service/calendar-event.service.ts +118 -118
  120. package/src/module/integration/service/integration-entity-mapper.service.ts +17 -17
  121. package/src/module/integration/service/integration-queue.service.ts +229 -229
  122. package/src/module/integration/service/integration.service.ts +2633 -2633
  123. package/src/module/integration/service/oauth.service.ts +224 -224
  124. package/src/module/integration/service/wrapper.service.ts +493 -493
  125. package/src/module/integration/strategies/email/gmail-api.strategy.ts +280 -280
  126. package/src/module/integration/strategies/email/outlook-api.strategy.ts +44 -44
  127. package/src/module/integration/strategies/email/outlook.strategy.ts +64 -64
  128. package/src/module/integration/strategies/email/sendgrid-api.strategy.ts +260 -260
  129. package/src/module/integration/strategies/integration.strategy.ts +97 -97
  130. package/src/module/integration/strategies/sms/gupshup-sms.strategy.ts +146 -146
  131. package/src/module/integration/strategies/sms/msg91-sms.strategy.ts +164 -164
  132. package/src/module/integration/strategies/sms/tubelight-sms.strategy.ts +163 -163
  133. package/src/module/integration/strategies/telephone/ozonetel-voice.strategy.ts +238 -238
  134. package/src/module/integration/strategies/telephone/tubelight-voice.strategy.ts +210 -210
  135. package/src/module/integration/strategies/whatsapp/gupshup-whatsapp.strategy.ts +359 -359
  136. package/src/module/integration/strategies/whatsapp/tubelight-whatsapp.strategy.ts +372 -372
  137. package/src/module/integration/strategies/whatsapp/whatsapp-cloud.strategy.ts +403 -403
  138. package/src/module/integration/strategies/whatsapp/whatsapp.strategy.ts +57 -57
  139. package/src/module/layout/controller/layout.controller.ts +47 -47
  140. package/src/module/layout/entity/header-items.entity.ts +28 -28
  141. package/src/module/layout/entity/header-section.entity.ts +19 -19
  142. package/src/module/layout/layout.module.ts +21 -21
  143. package/src/module/layout/repository/header-items.repository.ts +18 -18
  144. package/src/module/layout/repository/header-section.repository.ts +22 -22
  145. package/src/module/layout/service/header-section.service.ts +25 -25
  146. package/src/module/layout_preference/controller/layout_preference.controller.ts +73 -73
  147. package/src/module/layout_preference/entity/layout_preference.entity.ts +28 -28
  148. package/src/module/layout_preference/layout_preference.module.ts +22 -22
  149. package/src/module/layout_preference/repository/layout_preference.repository.ts +65 -65
  150. package/src/module/layout_preference/service/layout_preference.service.ts +184 -184
  151. package/src/module/lead/controller/lead.controller.ts +30 -30
  152. package/src/module/lead/lead.module.ts +14 -14
  153. package/src/module/lead/repository/lead.repository.ts +41 -41
  154. package/src/module/lead/service/lead.service.ts +54 -54
  155. package/src/module/listmaster/controller/list-master.controller.ts +187 -187
  156. package/src/module/listmaster/entity/list-master-items.entity.ts +43 -43
  157. package/src/module/listmaster/entity/list-master.entity.ts +33 -33
  158. package/src/module/listmaster/listmaster.module.ts +44 -44
  159. package/src/module/listmaster/repository/list-master-items.repository.ts +169 -169
  160. package/src/module/listmaster/repository/list-master.repository.ts +46 -46
  161. package/src/module/listmaster/service/list-master-engine.ts +19 -19
  162. package/src/module/listmaster/service/list-master-extension.interface.ts +4 -4
  163. package/src/module/listmaster/service/list-master-item.service.ts +292 -292
  164. package/src/module/listmaster/service/list-master-registry.ts +15 -15
  165. package/src/module/listmaster/service/list-master.service.ts +441 -441
  166. package/src/module/mapper/controller/field-mapper.controller.ts +76 -76
  167. package/src/module/mapper/controller/mapper.controller.ts +20 -20
  168. package/src/module/mapper/dto/field-mapper.dto.ts +14 -14
  169. package/src/module/mapper/entity/field-lovs.entity.ts +19 -19
  170. package/src/module/mapper/entity/field-mapper.entity.ts +53 -53
  171. package/src/module/mapper/entity/mapper.entity.ts +16 -16
  172. package/src/module/mapper/mapper.module.ts +34 -34
  173. package/src/module/mapper/repository/field-lovs.repository.ts +35 -35
  174. package/src/module/mapper/repository/field-mapper.repository.ts +42 -42
  175. package/src/module/mapper/repository/mapper.repository.ts +15 -15
  176. package/src/module/mapper/service/field-mapper.service.ts +266 -266
  177. package/src/module/mapper/service/mapper.service.ts +79 -79
  178. package/src/module/master/controller/master.controller.ts +74 -74
  179. package/src/module/master/service/master.service.ts +483 -483
  180. package/src/module/meta/controller/app-master.controller.ts +38 -38
  181. package/src/module/meta/controller/attribute-master.controller.ts +66 -66
  182. package/src/module/meta/controller/entity-dynamic.controller.ts +125 -125
  183. package/src/module/meta/controller/entity-master.controller.ts +28 -28
  184. package/src/module/meta/controller/entity-relation.controller.ts +36 -36
  185. package/src/module/meta/controller/entity.controller.ts +392 -392
  186. package/src/module/meta/controller/entity.public.controller.ts +75 -75
  187. package/src/module/meta/controller/media.controller.ts +107 -107
  188. package/src/module/meta/controller/meta.controller.ts +96 -96
  189. package/src/module/meta/controller/view-master.controller.ts +86 -86
  190. package/src/module/meta/dto/entity-list-data.dto.ts +6 -6
  191. package/src/module/meta/dto/entity-tab.dto.ts +4 -4
  192. package/src/module/meta/dto/entity-table.dto.ts +9 -9
  193. package/src/module/meta/entity/app-master.entity.ts +34 -34
  194. package/src/module/meta/entity/attribute-master.entity.ts +89 -89
  195. package/src/module/meta/entity/base-entity.entity.ts +75 -75
  196. package/src/module/meta/entity/entity-master.entity.ts +85 -85
  197. package/src/module/meta/entity/entity-relation-data.entity.ts +29 -29
  198. package/src/module/meta/entity/entity-relation.entity.ts +23 -23
  199. package/src/module/meta/entity/entity-table-column.entity.ts +61 -61
  200. package/src/module/meta/entity/entity-table.entity.ts +50 -50
  201. package/src/module/meta/entity/media-data.entity.ts +32 -32
  202. package/src/module/meta/entity/preference.entity.ts +62 -62
  203. package/src/module/meta/entity/view-master.entity.ts +41 -41
  204. package/src/module/meta/entity.module.ts +158 -158
  205. package/src/module/meta/repository/app-master.repository.ts +20 -20
  206. package/src/module/meta/repository/attribute-master.repository.ts +110 -110
  207. package/src/module/meta/repository/entity-master.repository.ts +69 -69
  208. package/src/module/meta/repository/entity-table-column.repository.ts +39 -39
  209. package/src/module/meta/repository/entity-table.repository.ts +53 -53
  210. package/src/module/meta/repository/media-data.repository.ts +50 -50
  211. package/src/module/meta/repository/preference.repository.ts +20 -20
  212. package/src/module/meta/repository/user-app-mapping.repository.ts +28 -28
  213. package/src/module/meta/repository/view-master.repository.ts +42 -42
  214. package/src/module/meta/service/app-master.service.ts +37 -37
  215. package/src/module/meta/service/attribute-master.service.ts +117 -117
  216. package/src/module/meta/service/common.service.ts +9 -9
  217. package/src/module/meta/service/entity-dynamic.service.ts +818 -809
  218. package/src/module/meta/service/entity-list.service.ts +205 -205
  219. package/src/module/meta/service/entity-master.service.ts +169 -169
  220. package/src/module/meta/service/entity-realation-data.service.ts +9 -9
  221. package/src/module/meta/service/entity-relation.service.ts +69 -69
  222. package/src/module/meta/service/entity-service-impl.service.ts +525 -525
  223. package/src/module/meta/service/entity-table-column.service.ts +39 -39
  224. package/src/module/meta/service/entity-table.service.ts +150 -150
  225. package/src/module/meta/service/entity-validation.service.ts +187 -187
  226. package/src/module/meta/service/entity.service.ts +67 -67
  227. package/src/module/meta/service/field-group.service.ts +103 -103
  228. package/src/module/meta/service/media-data.service.ts +507 -507
  229. package/src/module/meta/service/populate-meta.service.ts +193 -193
  230. package/src/module/meta/service/preference.service.ts +16 -16
  231. package/src/module/meta/service/resolver.service.ts +267 -267
  232. package/src/module/meta/service/section-master.service.ts +104 -104
  233. package/src/module/meta/service/update-form-json.service.ts +22 -22
  234. package/src/module/meta/service/user-app-mapping.service.ts +17 -17
  235. package/src/module/meta/service/view-master.service.ts +127 -127
  236. package/src/module/module/controller/menu.controller.ts +15 -15
  237. package/src/module/module/controller/module-access.controller.ts +134 -134
  238. package/src/module/module/entity/menu.entity.ts +43 -43
  239. package/src/module/module/entity/module-access.entity.ts +25 -25
  240. package/src/module/module/entity/module-action.entity.ts +17 -17
  241. package/src/module/module/entity/module.entity.ts +52 -52
  242. package/src/module/module/module.module.ts +42 -42
  243. package/src/module/module/repository/menu.repository.ts +184 -184
  244. package/src/module/module/repository/module-access.repository.ts +344 -344
  245. package/src/module/module/service/menu.service.ts +82 -82
  246. package/src/module/module/service/module-access.service.ts +209 -209
  247. package/src/module/notification/controller/notification.controller.ts +58 -58
  248. package/src/module/notification/controller/otp.controller.ts +117 -117
  249. package/src/module/notification/entity/notification.entity.ts +26 -26
  250. package/src/module/notification/entity/otp.entity.ts +28 -28
  251. package/src/module/notification/firebase-admin.config.ts +22 -22
  252. package/src/module/notification/notification.module.ts +69 -69
  253. package/src/module/notification/repository/otp.repository.ts +27 -27
  254. package/src/module/notification/service/email.service.ts +127 -127
  255. package/src/module/notification/service/notification.service.ts +163 -163
  256. package/src/module/notification/service/otp.service.ts +132 -132
  257. package/src/module/third-party-module/entity/third-party-api-registry.entity.ts +52 -52
  258. package/src/module/third-party-module/repository/third-party-api-registry.repository.ts +20 -20
  259. package/src/module/third-party-module/service/api-registry.service.ts +13 -13
  260. package/src/module/third-party-module/third-party.module.ts +12 -12
  261. package/src/module/user/controller/login.controller.ts +197 -197
  262. package/src/module/user/controller/user.controller.ts +40 -40
  263. package/src/module/user/dto/create-user.dto.ts +62 -62
  264. package/src/module/user/dto/update-user.dto.ts +4 -4
  265. package/src/module/user/entity/role.entity.ts +33 -33
  266. package/src/module/user/entity/user-role-mapping.entity.ts +38 -38
  267. package/src/module/user/entity/user-session.entity.ts +73 -73
  268. package/src/module/user/entity/user.entity.ts +59 -59
  269. package/src/module/user/repository/role.repository.ts +96 -96
  270. package/src/module/user/repository/user-role-mapping.repository.ts +126 -126
  271. package/src/module/user/repository/user.repository.ts +50 -50
  272. package/src/module/user/repository/userSession.repository.ts +33 -33
  273. package/src/module/user/service/login.service.ts +284 -284
  274. package/src/module/user/service/role.service.ts +189 -189
  275. package/src/module/user/service/user-role-mapping.service.ts +98 -98
  276. package/src/module/user/service/user-session.service.ts +168 -168
  277. package/src/module/user/service/user.service.ts +365 -365
  278. package/src/module/user/user.module.ts +65 -65
  279. package/src/module/workflow/controller/action-category.controller.ts +54 -54
  280. package/src/module/workflow/controller/action-resource-mapping.controller.ts +23 -23
  281. package/src/module/workflow/controller/action-template-mapping.controller.ts +35 -35
  282. package/src/module/workflow/controller/action.controller.ts +111 -111
  283. package/src/module/workflow/controller/activity-log.controller.ts +55 -55
  284. package/src/module/workflow/controller/comm-template.controller.ts +43 -43
  285. package/src/module/workflow/controller/entity-modification.controller.ts +35 -35
  286. package/src/module/workflow/controller/form-master.controller.ts +43 -43
  287. package/src/module/workflow/controller/stage-group.controller.ts +48 -48
  288. package/src/module/workflow/controller/stage.controller.ts +50 -50
  289. package/src/module/workflow/controller/task.controller.ts +77 -77
  290. package/src/module/workflow/controller/workflow-list-master.controller.ts +44 -44
  291. package/src/module/workflow/controller/workflow-meta.controller.ts +80 -80
  292. package/src/module/workflow/controller/workflow.controller.ts +67 -67
  293. package/src/module/workflow/entity/action-category.entity.ts +38 -38
  294. package/src/module/workflow/entity/action-data.entity.ts +55 -55
  295. package/src/module/workflow/entity/action-resources-mapping.entity.ts +29 -29
  296. package/src/module/workflow/entity/action-template-mapping.entity.ts +17 -17
  297. package/src/module/workflow/entity/action.entity.ts +50 -50
  298. package/src/module/workflow/entity/activity-log.entity.ts +43 -43
  299. package/src/module/workflow/entity/comm-template.entity.ts +43 -43
  300. package/src/module/workflow/entity/entity-modification.entity.ts +38 -38
  301. package/src/module/workflow/entity/form.entity.ts +25 -25
  302. package/src/module/workflow/entity/stage-action-mapping.entity.ts +17 -17
  303. package/src/module/workflow/entity/stage-group.entity.ts +23 -23
  304. package/src/module/workflow/entity/stage-movement-data.entity.ts +38 -38
  305. package/src/module/workflow/entity/stage.entity.ts +20 -20
  306. package/src/module/workflow/entity/task-data.entity.ts +88 -88
  307. package/src/module/workflow/entity/template-attach-mapper.entity.ts +30 -30
  308. package/src/module/workflow/entity/workflow-data.entity.ts +11 -11
  309. package/src/module/workflow/entity/workflow-level-mapping.entity.ts +18 -18
  310. package/src/module/workflow/entity/workflow.entity.ts +20 -20
  311. package/src/module/workflow/repository/action-category.repository.ts +79 -79
  312. package/src/module/workflow/repository/action-data.repository.ts +333 -333
  313. package/src/module/workflow/repository/action.repository.ts +323 -323
  314. package/src/module/workflow/repository/activity-log.repository.ts +148 -148
  315. package/src/module/workflow/repository/comm-template.repository.ts +149 -149
  316. package/src/module/workflow/repository/form-master.repository.ts +59 -59
  317. package/src/module/workflow/repository/stage-group.repository.ts +176 -176
  318. package/src/module/workflow/repository/stage-movement.repository.ts +244 -244
  319. package/src/module/workflow/repository/stage.repository.ts +172 -172
  320. package/src/module/workflow/repository/task.repository.ts +127 -127
  321. package/src/module/workflow/repository/workflow.repository.ts +42 -42
  322. package/src/module/workflow/service/action-category.service.ts +33 -33
  323. package/src/module/workflow/service/action-data.service.ts +62 -62
  324. package/src/module/workflow/service/action-resources-mapping.service.ts +10 -10
  325. package/src/module/workflow/service/action-template-mapping.service.ts +106 -106
  326. package/src/module/workflow/service/action.service.ts +279 -279
  327. package/src/module/workflow/service/activity-log.service.ts +107 -107
  328. package/src/module/workflow/service/comm-template.service.ts +180 -180
  329. package/src/module/workflow/service/entity-modification.service.ts +67 -67
  330. package/src/module/workflow/service/form-master.service.ts +35 -35
  331. package/src/module/workflow/service/populate-workflow.service.ts +303 -303
  332. package/src/module/workflow/service/stage-action-mapping.service.ts +5 -5
  333. package/src/module/workflow/service/stage-group.service.ts +319 -319
  334. package/src/module/workflow/service/stage.service.ts +199 -199
  335. package/src/module/workflow/service/task.service.ts +560 -560
  336. package/src/module/workflow/service/workflow-list-master.service.ts +60 -60
  337. package/src/module/workflow/service/workflow-meta.service.ts +640 -640
  338. package/src/module/workflow/service/workflow.service.ts +205 -205
  339. package/src/module/workflow/workflow.module.ts +176 -176
  340. package/src/module/workflow-automation/controller/workflow-automation.controller.ts +21 -21
  341. package/src/module/workflow-automation/entity/workflow-automation-action.entity.ts +26 -26
  342. package/src/module/workflow-automation/entity/workflow-automation.entity.ts +35 -35
  343. package/src/module/workflow-automation/interface/action.decorator.ts +7 -7
  344. package/src/module/workflow-automation/interface/action.interface.ts +5 -5
  345. package/src/module/workflow-automation/service/action-registery.service.ts +35 -35
  346. package/src/module/workflow-automation/service/workflow-automation-engine.service.ts +214 -214
  347. package/src/module/workflow-automation/service/workflow-automation.service.ts +347 -347
  348. package/src/module/workflow-automation/workflow-automation.module.ts +34 -34
  349. package/src/resources/dev.properties.yaml +30 -30
  350. package/src/resources/local.properties.yaml +27 -27
  351. package/src/resources/properties.module.ts +12 -12
  352. package/src/resources/properties.yaml.ts +11 -11
  353. package/src/resources/uat.properties.yaml +31 -31
  354. package/src/table.config.ts +126 -126
  355. package/src/utils/dto/excel-data.dto.ts +14 -14
  356. package/src/utils/dto/excelsheet-data.dto.ts +5 -5
  357. package/src/utils/service/base64util.service.ts +18 -18
  358. package/src/utils/service/clockIDGenUtil.service.ts +21 -21
  359. package/src/utils/service/codeGenerator.service.ts +22 -22
  360. package/src/utils/service/dateUtil.service.ts +17 -17
  361. package/src/utils/service/encryptUtil.service.ts +97 -97
  362. package/src/utils/service/excel-helper.service.ts +72 -72
  363. package/src/utils/service/excelUtil.service.ts +15 -15
  364. package/src/utils/service/file-util.service.ts +11 -11
  365. package/src/utils/service/json-util.service.ts +23 -23
  366. package/src/utils/service/loggingUtil.service.ts +34 -34
  367. package/src/utils/service/reflection-helper.service.ts +62 -62
  368. package/src/utils/service/wbsCodeGen.service.ts +8 -8
  369. package/src/utils/utils.module.ts +25 -25
  370. package/tsconfig.build.json +4 -4
  371. package/tsconfig.json +24 -24
  372. package/.claude/settings.local.json +0 -26
  373. package/.idea/250218_nodejs_core.iml +0 -9
  374. package/.idea/codeStyles/Project.xml +0 -59
  375. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  376. package/.idea/copilot.data.migration.agent.xml +0 -6
  377. package/.idea/copilot.data.migration.ask.xml +0 -6
  378. package/.idea/copilot.data.migration.ask2agent.xml +0 -6
  379. package/.idea/copilot.data.migration.edit.xml +0 -6
  380. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  381. package/.idea/misc.xml +0 -6
  382. package/.idea/modules.xml +0 -8
  383. package/.idea/prettier.xml +0 -6
  384. package/.idea/vcs.xml +0 -6
  385. package/server.log +0 -850
package/.prettierrc CHANGED
@@ -1,4 +1,4 @@
1
- {
2
- "singleQuote": true,
3
- "trailingComma": "all"
1
+ {
2
+ "singleQuote": true,
3
+ "trailingComma": "all"
4
4
  }
@@ -0,0 +1,5 @@
1
+ {
2
+ "recommendations": [
3
+ "dbaeumer.vscode-eslint"
4
+ ]
5
+ }
package/README.md CHANGED
@@ -1,99 +1,99 @@
1
- <p align="center">
2
- <a href="http://nestjs.com/" target="blank"><img src="https://nestjs.com/img/logo-small.svg" width="120" alt="Nest Logo" /></a>
3
- </p>
4
-
5
- [circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456
6
- [circleci-url]: https://circleci.com/gh/nestjs/nest
7
-
8
- <p align="center">A progressive <a href="http://nodejs.org" target="_blank">Node.js</a> framework for building efficient and scalable server-side applications.</p>
9
- <p align="center">
10
- <a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/v/@nestjs/core.svg" alt="NPM Version" /></a>
11
- <a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/l/@nestjs/core.svg" alt="Package License" /></a>
12
- <a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/dm/@nestjs/common.svg" alt="NPM Downloads" /></a>
13
- <a href="https://circleci.com/gh/nestjs/nest" target="_blank"><img src="https://img.shields.io/circleci/build/github/nestjs/nest/master" alt="CircleCI" /></a>
14
- <a href="https://coveralls.io/github/nestjs/nest?branch=master" target="_blank"><img src="https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9" alt="Coverage" /></a>
15
- <a href="https://discord.gg/G7Qnnhy" target="_blank"><img src="https://img.shields.io/badge/discord-online-brightgreen.svg" alt="Discord"/></a>
16
- <a href="https://opencollective.com/nest#backer" target="_blank"><img src="https://opencollective.com/nest/backers/badge.svg" alt="Backers on Open Collective" /></a>
17
- <a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://opencollective.com/nest/sponsors/badge.svg" alt="Sponsors on Open Collective" /></a>
18
- <a href="https://paypal.me/kamilmysliwiec" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg" alt="Donate us"/></a>
19
- <a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg" alt="Support us"></a>
20
- <a href="https://twitter.com/nestframework" target="_blank"><img src="https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow" alt="Follow us on Twitter"></a>
21
- </p>
22
- <!--[![Backers on Open Collective](https://opencollective.com/nest/backers/badge.svg)](https://opencollective.com/nest#backer)
23
- [![Sponsors on Open Collective](https://opencollective.com/nest/sponsors/badge.svg)](https://opencollective.com/nest#sponsor)-->
24
-
25
- ## Description
26
-
27
- [Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.
28
-
29
- ## Project setup
30
-
31
- ```bash
32
- $ npm install
33
- ```
34
-
35
- ## Compile and run the project
36
-
37
- ```bash
38
- # development
39
- $ npm run start
40
-
41
- # watch mode
42
- $ npm run start:dev
43
-
44
- # production mode
45
- $ npm run start:prod
46
- ```
47
-
48
- ## Run tests
49
-
50
- ```bash
51
- # unit tests
52
- $ npm run test
53
-
54
- # e2e tests
55
- $ npm run test:e2e
56
-
57
- # test coverage
58
- $ npm run test:cov
59
- ```
60
-
61
- ## Deployment
62
-
63
- When you're ready to deploy your NestJS application to production, there are some key steps you can take to ensure it runs as efficiently as possible. Check out the [deployment documentation](https://docs.nestjs.com/deployment) for more information.
64
-
65
- If you are looking for a cloud-based platform to deploy your NestJS application, check out [Mau](https://mau.nestjs.com), our official platform for deploying NestJS applications on AWS. Mau makes deployment straightforward and fast, requiring just a few simple steps:
66
-
67
- ```bash
68
- $ npm install -g mau
69
- $ mau deploy
70
- ```
71
-
72
- With Mau, you can deploy your application in just a few clicks, allowing you to focus on building features rather than managing infrastructure.
73
-
74
- ## Resources
75
-
76
- Check out a few resources that may come in handy when working with NestJS:
77
-
78
- - Visit the [NestJS Documentation](https://docs.nestjs.com) to learn more about the framework.
79
- - For questions and support, please visit our [Discord channel](https://discord.gg/G7Qnnhy).
80
- - To dive deeper and get more hands-on experience, check out our official video [courses](https://courses.nestjs.com/).
81
- - Deploy your application to AWS with the help of [NestJS Mau](https://mau.nestjs.com) in just a few clicks.
82
- - Visualize your application graph and interact with the NestJS application in real-time using [NestJS Devtools](https://devtools.nestjs.com).
83
- - Need help with your project (part-time to full-time)? Check out our official [enterprise support](https://enterprise.nestjs.com).
84
- - To stay in the loop and get updates, follow us on [X](https://x.com/nestframework) and [LinkedIn](https://linkedin.com/company/nestjs).
85
- - Looking for a job, or have a job to offer? Check out our official [Jobs board](https://jobs.nestjs.com).
86
-
87
- ## Support
88
-
89
- Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).
90
-
91
- ## Stay in touch
92
-
93
- - Author - [Kamil Myśliwiec](https://twitter.com/kammysliwiec)
94
- - Website - [https://nestjs.com](https://nestjs.com/)
95
- - Twitter - [@nestframework](https://twitter.com/nestframework)
96
-
97
- ## License
98
-
99
- Nest is [MIT licensed](https://github.com/nestjs/nest/blob/master/LICENSE).
1
+ <p align="center">
2
+ <a href="http://nestjs.com/" target="blank"><img src="https://nestjs.com/img/logo-small.svg" width="120" alt="Nest Logo" /></a>
3
+ </p>
4
+
5
+ [circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456
6
+ [circleci-url]: https://circleci.com/gh/nestjs/nest
7
+
8
+ <p align="center">A progressive <a href="http://nodejs.org" target="_blank">Node.js</a> framework for building efficient and scalable server-side applications.</p>
9
+ <p align="center">
10
+ <a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/v/@nestjs/core.svg" alt="NPM Version" /></a>
11
+ <a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/l/@nestjs/core.svg" alt="Package License" /></a>
12
+ <a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/dm/@nestjs/common.svg" alt="NPM Downloads" /></a>
13
+ <a href="https://circleci.com/gh/nestjs/nest" target="_blank"><img src="https://img.shields.io/circleci/build/github/nestjs/nest/master" alt="CircleCI" /></a>
14
+ <a href="https://coveralls.io/github/nestjs/nest?branch=master" target="_blank"><img src="https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9" alt="Coverage" /></a>
15
+ <a href="https://discord.gg/G7Qnnhy" target="_blank"><img src="https://img.shields.io/badge/discord-online-brightgreen.svg" alt="Discord"/></a>
16
+ <a href="https://opencollective.com/nest#backer" target="_blank"><img src="https://opencollective.com/nest/backers/badge.svg" alt="Backers on Open Collective" /></a>
17
+ <a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://opencollective.com/nest/sponsors/badge.svg" alt="Sponsors on Open Collective" /></a>
18
+ <a href="https://paypal.me/kamilmysliwiec" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg" alt="Donate us"/></a>
19
+ <a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg" alt="Support us"></a>
20
+ <a href="https://twitter.com/nestframework" target="_blank"><img src="https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow" alt="Follow us on Twitter"></a>
21
+ </p>
22
+ <!--[![Backers on Open Collective](https://opencollective.com/nest/backers/badge.svg)](https://opencollective.com/nest#backer)
23
+ [![Sponsors on Open Collective](https://opencollective.com/nest/sponsors/badge.svg)](https://opencollective.com/nest#sponsor)-->
24
+
25
+ ## Description
26
+
27
+ [Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.
28
+
29
+ ## Project setup
30
+
31
+ ```bash
32
+ $ npm install
33
+ ```
34
+
35
+ ## Compile and run the project
36
+
37
+ ```bash
38
+ # development
39
+ $ npm run start
40
+
41
+ # watch mode
42
+ $ npm run start:dev
43
+
44
+ # production mode
45
+ $ npm run start:prod
46
+ ```
47
+
48
+ ## Run tests
49
+
50
+ ```bash
51
+ # unit tests
52
+ $ npm run test
53
+
54
+ # e2e tests
55
+ $ npm run test:e2e
56
+
57
+ # test coverage
58
+ $ npm run test:cov
59
+ ```
60
+
61
+ ## Deployment
62
+
63
+ When you're ready to deploy your NestJS application to production, there are some key steps you can take to ensure it runs as efficiently as possible. Check out the [deployment documentation](https://docs.nestjs.com/deployment) for more information.
64
+
65
+ If you are looking for a cloud-based platform to deploy your NestJS application, check out [Mau](https://mau.nestjs.com), our official platform for deploying NestJS applications on AWS. Mau makes deployment straightforward and fast, requiring just a few simple steps:
66
+
67
+ ```bash
68
+ $ npm install -g mau
69
+ $ mau deploy
70
+ ```
71
+
72
+ With Mau, you can deploy your application in just a few clicks, allowing you to focus on building features rather than managing infrastructure.
73
+
74
+ ## Resources
75
+
76
+ Check out a few resources that may come in handy when working with NestJS:
77
+
78
+ - Visit the [NestJS Documentation](https://docs.nestjs.com) to learn more about the framework.
79
+ - For questions and support, please visit our [Discord channel](https://discord.gg/G7Qnnhy).
80
+ - To dive deeper and get more hands-on experience, check out our official video [courses](https://courses.nestjs.com/).
81
+ - Deploy your application to AWS with the help of [NestJS Mau](https://mau.nestjs.com) in just a few clicks.
82
+ - Visualize your application graph and interact with the NestJS application in real-time using [NestJS Devtools](https://devtools.nestjs.com).
83
+ - Need help with your project (part-time to full-time)? Check out our official [enterprise support](https://enterprise.nestjs.com).
84
+ - To stay in the loop and get updates, follow us on [X](https://x.com/nestframework) and [LinkedIn](https://linkedin.com/company/nestjs).
85
+ - Looking for a job, or have a job to offer? Check out our official [Jobs board](https://jobs.nestjs.com).
86
+
87
+ ## Support
88
+
89
+ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).
90
+
91
+ ## Stay in touch
92
+
93
+ - Author - [Kamil Myśliwiec](https://twitter.com/kammysliwiec)
94
+ - Website - [https://nestjs.com](https://nestjs.com/)
95
+ - Twitter - [@nestframework](https://twitter.com/nestframework)
96
+
97
+ ## License
98
+
99
+ Nest is [MIT licensed](https://github.com/nestjs/nest/blob/master/LICENSE).
@@ -34,9 +34,9 @@ let RolesGuard = class RolesGuard {
34
34
  }
35
35
  const requiredModule = this.reflector.get('moduleCode', context.getHandler());
36
36
  const requiredActions = this.reflector.get('actions', context.getHandler());
37
- const roleAccess = await this.entityManager.query(`SELECT *
38
- FROM sso_module_access
39
- WHERE role_id = ${user['role_id']}
37
+ const roleAccess = await this.entityManager.query(`SELECT *
38
+ FROM sso_module_access
39
+ WHERE role_id = ${user['role_id']}
40
40
  AND module_code = '${requiredModule}'`);
41
41
  if (!roleAccess || roleAccess.length === 0) {
42
42
  throw new common_1.ForbiddenException('Access denied: No permissions found for this module');
@@ -24,8 +24,8 @@ let AuthService = class AuthService {
24
24
  }
25
25
  async fcmtoken(fcmtoken, loggedInUser, ip, browser, os) {
26
26
  const { id: userId, sessionToken } = loggedInUser;
27
- await this.dataSource.query(`UPDATE sso_user_session
28
- SET fcm_token = ?, ip = ?, browser = ?, os = ?
27
+ await this.dataSource.query(`UPDATE sso_user_session
28
+ SET fcm_token = ?, ip = ?, browser = ?, os = ?
29
29
  WHERE session_key = ? AND user_id = ? `, [fcmtoken, ip, browser, os, sessionToken, userId]);
30
30
  return { message: 'FCM token updated successfully' };
31
31
  }
@@ -117,10 +117,10 @@ let SavedFilterRepositoryService = class SavedFilterRepositoryService {
117
117
  }));
118
118
  }
119
119
  async getSavedFilterByCode(code, loggedInUser) {
120
- const [filterMaster] = await this.dataSource.query(`SELECT id, name, code
121
- FROM frm_saved_filter_master
122
- WHERE code = ? AND organization_id = ?
123
- LIMIT 1
120
+ const [filterMaster] = await this.dataSource.query(`SELECT id, name, code
121
+ FROM frm_saved_filter_master
122
+ WHERE code = ? AND organization_id = ?
123
+ LIMIT 1
124
124
  `, [code, loggedInUser.organization_id]);
125
125
  if (!filterMaster) {
126
126
  return null;
@@ -20,8 +20,8 @@ let FilterEvaluatorService = class FilterEvaluatorService {
20
20
  }
21
21
  async evaluateTriggerAttributes(oldEntity, newEntity, savedFilterCode) {
22
22
  console.log('IN FILTER EVALUATOR SERVICE');
23
- const triggerFilters = await this.dataSource.query(`SELECT *
24
- FROM frm_saved_filter_detail
23
+ const triggerFilters = await this.dataSource.query(`SELECT *
24
+ FROM frm_saved_filter_detail
25
25
  WHERE mapped_filter_code = ?`, [savedFilterCode]);
26
26
  if (!triggerFilters || triggerFilters.length === 0) {
27
27
  return true;
@@ -57,11 +57,11 @@ let FilterService = class FilterService {
57
57
  });
58
58
  whereSQL = `WHERE ${clauseParts.join(' AND ')}`;
59
59
  }
60
- const rawSQL = `
61
- SELECT ${column} AS tab_value, COUNT(*) AS tab_value_count
62
- FROM ${tableName}
63
- ${whereSQL}
64
- GROUP BY ${column}
60
+ const rawSQL = `
61
+ SELECT ${column} AS tab_value, COUNT(*) AS tab_value_count
62
+ FROM ${tableName}
63
+ ${whereSQL}
64
+ GROUP BY ${column}
65
65
  `;
66
66
  const rows = await this.dataSource.query(rawSQL, values);
67
67
  const total = rows.reduce((sum, r) => sum + parseInt(r.tab_value_count, 10), 0);
@@ -176,21 +176,21 @@ let FilterService = class FilterService {
176
176
  }
177
177
  else if (level_type === 'SCH') {
178
178
  baseWhere.push({
179
- query: `
180
- (
181
- (e.level_type = 'SCH' AND e.level_id = ${loggedInUser.level_id} AND e.organization_id = ${loggedInUser.organization_id})
182
- OR
183
- (
184
- e.level_type = 'ORG'
185
- AND e.level_id = ${loggedInUser.organization_id}
186
- AND e.organization_id = ${loggedInUser.organization_id}
187
- AND e.code NOT IN (
188
- SELECT sub.code
189
- FROM frm_wf_comm_template AS sub
190
- WHERE sub.level_type = 'SCH' AND sub.level_id = ${loggedInUser.level_id}
191
- )
192
- )
193
- )
179
+ query: `
180
+ (
181
+ (e.level_type = 'SCH' AND e.level_id = ${loggedInUser.level_id} AND e.organization_id = ${loggedInUser.organization_id})
182
+ OR
183
+ (
184
+ e.level_type = 'ORG'
185
+ AND e.level_id = ${loggedInUser.organization_id}
186
+ AND e.organization_id = ${loggedInUser.organization_id}
187
+ AND e.code NOT IN (
188
+ SELECT sub.code
189
+ FROM frm_wf_comm_template AS sub
190
+ WHERE sub.level_type = 'SCH' AND sub.level_id = ${loggedInUser.level_id}
191
+ )
192
+ )
193
+ )
194
194
  `,
195
195
  params: {}
196
196
  });
@@ -247,8 +247,8 @@ let FilterService = class FilterService {
247
247
  });
248
248
  }
249
249
  console.log('🟠 [FilterService] Constructed baseWhere clauses:', baseWhere);
250
- const layoutPreference = await this.dataSource.query(`SELECT mapped_json
251
- FROM frm_entity_layout_pref
250
+ const layoutPreference = await this.dataSource.query(`SELECT mapped_json
251
+ FROM frm_entity_layout_pref
252
252
  WHERE user_id = ? AND mapped_entity_type = ? AND mapped_level_id = ? AND mapped_level_type = ? AND type = 'layout'`, [user_id, entity_type, level_id, level_type]);
253
253
  const layout = layoutPreference?.[0]?.mapped_json?.quick_tab || {};
254
254
  const showList = layout?.show_list?.map((val) => val.toLowerCase()) || [];
@@ -104,15 +104,15 @@ class CommunicationUsageExamples {
104
104
  console.log('Gmail with attachments sent:', result);
105
105
  }
106
106
  async sendGmailWithTemplate() {
107
- const htmlTemplate = `
108
- <html>
109
- <body>
110
- <h2>Welcome {{userName}}!</h2>
111
- <p>Thank you for joining our platform.</p>
112
- <p>Your account ID is: {{accountId}}</p>
113
- <a href="{{verificationLink}}">Verify your email</a>
114
- </body>
115
- </html>
107
+ const htmlTemplate = `
108
+ <html>
109
+ <body>
110
+ <h2>Welcome {{userName}}!</h2>
111
+ <p>Thank you for joining our platform.</p>
112
+ <p>Your account ID is: {{accountId}}</p>
113
+ <a href="{{verificationLink}}">Verify your email</a>
114
+ </body>
115
+ </html>
116
116
  `;
117
117
  const result = await this.communicationService.sendGenericMessage({
118
118
  levelId: 1,
@@ -109,7 +109,7 @@ let IntegrationService = IntegrationService_1 = class IntegrationService {
109
109
  }
110
110
  async getAllIntegrationData(loggedInUser, integration_type) {
111
111
  try {
112
- const allIntegrationData = await this.dataSource.query(`SELECT *
112
+ const allIntegrationData = await this.dataSource.query(`SELECT *
113
113
  FROM frm_integration_master`);
114
114
  if (integration_type) {
115
115
  return allIntegrationData.filter((data) => data.integration_type.toLowerCase() ===
@@ -29,10 +29,10 @@ let WrapperService = WrapperService_1 = class WrapperService {
29
29
  this.logger.log(`sendMailWrapper called. User: ${JSON.stringify(loggedInUser)}, Payload: ${JSON.stringify(payload)}`);
30
30
  const { level_id, level_type, organization_id } = loggedInUser;
31
31
  this.logger.debug(`Fetching configs for level_id=${level_id}, level_type=${level_type}`);
32
- const configs = await this.datasource.query(`SELECT * FROM frm_integration_config
33
- WHERE level_id = ?
34
- AND level_type = ?
35
- AND status = 1
32
+ const configs = await this.datasource.query(`SELECT * FROM frm_integration_config
33
+ WHERE level_id = ?
34
+ AND level_type = ?
35
+ AND status = 1
36
36
  AND integration_type = 'EMAIL'`, [level_id, level_type]);
37
37
  this.logger.debug(`Configs found: ${JSON.stringify(configs)}`);
38
38
  let templateCode;
@@ -68,9 +68,9 @@ let WrapperService = WrapperService_1 = class WrapperService {
68
68
  }
69
69
  else {
70
70
  this.logger.warn(`No user-level configs found. Falling back to ORG-level`);
71
- const fallbackConfigs = await this.datasource.query(`SELECT * FROM frm_integration_config
72
- WHERE level_type = 'ORG'
73
- AND integration_type = 'EMAIL'
71
+ const fallbackConfigs = await this.datasource.query(`SELECT * FROM frm_integration_config
72
+ WHERE level_type = 'ORG'
73
+ AND integration_type = 'EMAIL'
74
74
  AND status = 1`);
75
75
  this.logger.debug(`ORG-level configs: ${JSON.stringify(fallbackConfigs)}`);
76
76
  if (!fallbackConfigs || fallbackConfigs.length === 0) {
@@ -128,17 +128,17 @@ let WrapperService = WrapperService_1 = class WrapperService {
128
128
  let resolvedTemplateId = entity?.templateId;
129
129
  if (entity.template_code) {
130
130
  this.logger.debug(`Looking up template for code=${entity.template_code}, level_id=${level_id}, level_type=${level_type}`);
131
- let templates = await this.datasource.query(`SELECT id FROM frm_wf_comm_template
132
- WHERE code = ?
133
- AND level_id = ?
134
- AND level_type = ?
131
+ let templates = await this.datasource.query(`SELECT id FROM frm_wf_comm_template
132
+ WHERE code = ?
133
+ AND level_id = ?
134
+ AND level_type = ?
135
135
  LIMIT 1`, [entity.template_code, level_id, level_type]);
136
136
  if (!templates || templates.length === 0) {
137
137
  this.logger.warn(`No template found for ${entity.template_code} at provided level. Falling back to ORG-level.`);
138
- templates = await this.datasource.query(`SELECT id FROM frm_wf_comm_template
139
- WHERE code = ?
140
- AND level_type = 'ORG'
141
- AND organization_id = ?
138
+ templates = await this.datasource.query(`SELECT id FROM frm_wf_comm_template
139
+ WHERE code = ?
140
+ AND level_type = 'ORG'
141
+ AND organization_id = ?
142
142
  LIMIT 1`, [entity.template_code, organization_id]);
143
143
  }
144
144
  if (templates && templates.length > 0) {
@@ -204,11 +204,11 @@ let WrapperService = WrapperService_1 = class WrapperService {
204
204
  };
205
205
  }
206
206
  this.logger.log(`No user-level config found, checking ORG-level...`);
207
- const orgConfigs = await this.datasource.query(`SELECT * FROM frm_integration_config
208
- WHERE level_id = 1
209
- AND level_type = 'ORG'
210
- AND integration_type = 'EMAIL'
211
- AND app_code ='DEFAULT'
207
+ const orgConfigs = await this.datasource.query(`SELECT * FROM frm_integration_config
208
+ WHERE level_id = 1
209
+ AND level_type = 'ORG'
210
+ AND integration_type = 'EMAIL'
211
+ AND app_code ='DEFAULT'
212
212
  AND status = 1`, []);
213
213
  integrationConfig = await this.integrationService.getSingleActiveConfig(1, 'ORG', 'DEFAULT', 'EMAIL');
214
214
  this.logger.debug(`ORG configs found: ${JSON.stringify(orgConfigs)}`);
@@ -226,8 +226,8 @@ let WrapperService = WrapperService_1 = class WrapperService {
226
226
  }
227
227
  async getConfigCred(configId) {
228
228
  this.logger.debug(`Fetching config JSON for configId=${configId}`);
229
- const configRes = await this.datasource.query(`SELECT config_json
230
- FROM frm_integration_config
229
+ const configRes = await this.datasource.query(`SELECT config_json
230
+ FROM frm_integration_config
231
231
  WHERE id = ?`, [configId]);
232
232
  this.logger.debug(`Config fetch result: ${JSON.stringify(configRes)}`);
233
233
  return configRes?.[0]?.config_json || null;
@@ -235,9 +235,9 @@ let WrapperService = WrapperService_1 = class WrapperService {
235
235
  async sendIcsInvite(payload, levelId, levelType, appCode, organizationId, mapped_entities) {
236
236
  this.logger.log(`Generating ICS file. Payload: ${JSON.stringify(payload)}`);
237
237
  if (payload.template_code) {
238
- let templates = await this.datasource.query(`SELECT id FROM frm_wf_comm_template
239
- WHERE code = ?
240
- ORDER BY 1 DESC
238
+ let templates = await this.datasource.query(`SELECT id FROM frm_wf_comm_template
239
+ WHERE code = ?
240
+ ORDER BY 1 DESC
241
241
  LIMIT 1`, [payload.template_code]);
242
242
  this.logger.log(`template by code ${JSON.stringify(payload)}`);
243
243
  if (templates && templates.length > 0) {
@@ -132,8 +132,8 @@ let ListMasterItemService = class ListMasterItemService extends entity_service_i
132
132
  return `Item with name ${code} deleted successfully from type ${listType}`;
133
133
  }
134
134
  async getListSourceType(loggedInUser, source) {
135
- const data = await this.dataSource.query(`SELECT name AS label, type AS value
136
- FROM frm_list_master
135
+ const data = await this.dataSource.query(`SELECT name AS label, type AS value
136
+ FROM frm_list_master
137
137
  WHERE organization_id = ? AND source = ?`, [loggedInUser.organization_id, source]);
138
138
  return data;
139
139
  }
@@ -107,10 +107,10 @@ let FieldMapperService = class FieldMapperService extends entity_service_impl_se
107
107
  entity_data[field.mapped_entity_type];
108
108
  }
109
109
  else {
110
- const relations = await this.datasource.query(`SELECT target_entity_id
111
- FROM frm_entity_relation_data
112
- WHERE source_entity_type = ?
113
- AND source_entity_id = ?
110
+ const relations = await this.datasource.query(`SELECT target_entity_id
111
+ FROM frm_entity_relation_data
112
+ WHERE source_entity_type = ?
113
+ AND source_entity_id = ?
114
114
  AND target_entity_type = ?`, [parent_type, parent_id, field.mapped_entity_type]);
115
115
  const targetEntityIds = relations.map((r) => r.target_entity_id);
116
116
  this.loggingService.log('package', 'fieldMapperService', 'targetEntityIds', targetEntityIds);
@@ -27,8 +27,8 @@ let MapperService = class MapperService extends entity_service_impl_service_1.En
27
27
  async getByMappedEntityType(mappedEntityType, loggedInUser, filter, status) {
28
28
  if (!mappedEntityType)
29
29
  return [];
30
- const mappers = await this.dataSource.query(`SELECT id, name, code, status
31
- FROM frm_mapper_master
30
+ const mappers = await this.dataSource.query(`SELECT id, name, code, status
31
+ FROM frm_mapper_master
32
32
  WHERE mapped_entity_type = ? AND organization_id = ? AND (-1 = ? OR name LIKE ? OR code LIKE ?)`, [mappedEntityType, loggedInUser.organization_id, filter || -1, `%${filter}%`, `%${filter}%`]);
33
33
  const distinctStatuses = [
34
34
  ...new Set(mappers.map((m) => m.status).filter((s) => s !== null)),
@@ -43,8 +43,8 @@ let EntityDynamicService = class EntityDynamicService {
43
43
  entityData.entity_type = entityType;
44
44
  }
45
45
  if (!entityData.code && loggedInUser) {
46
- const result = await this.dataSource.query(`SELECT MAX(CAST(SUBSTRING(code, LENGTH(entity_type) + 1) AS UNSIGNED)) AS max_seq_no
47
- FROM ${tableName}
46
+ const result = await this.dataSource.query(`SELECT MAX(CAST(SUBSTRING(code, LENGTH(entity_type) + 1) AS UNSIGNED)) AS max_seq_no
47
+ FROM ${tableName}
48
48
  WHERE entity_type = ?`, [entityData.entity_type]);
49
49
  let maxSeqNo = result?.[0]?.max_seq_no ? Number(result[0].max_seq_no) : 0;
50
50
  maxSeqNo += 1;
@@ -149,7 +149,7 @@ let EntityDynamicService = class EntityDynamicService {
149
149
  }
150
150
  async getEntityWithRelation(entityType, id, loggedInUser) {
151
151
  const mainEntity = await this.getEntityByDataSource(entityType, id, loggedInUser);
152
- const relatedEntities = await this.dataSource.query(`SELECT * FROM frm_entity_relation_data WHERE source_entity_id = ? AND target_entity_type IN (
152
+ const relatedEntities = await this.dataSource.query(`SELECT * FROM frm_entity_relation_data WHERE source_entity_id = ? AND target_entity_type IN (
153
153
  SELECT target_entity_type FROM frm_entity_relation WHERE source_entity_type = ?)`, [id, entityType]);
154
154
  const response = {
155
155
  entity_type: entityType,
@@ -202,8 +202,8 @@ let EntityDynamicService = class EntityDynamicService {
202
202
  const createdEntity = await this.createEntity(targetEntityType, item, loggedInUser, Number(id));
203
203
  targetEntityId = createdEntity.insertId || createdEntity.id;
204
204
  entityData = await this.getEntity(targetEntityType, targetEntityId, loggedInUser);
205
- await this.dataSource.query(`INSERT INTO frm_entity_relation_data
206
- (organization_id, source_entity_id, source_entity_type, target_entity_id, target_entity_type, relation_type)
205
+ await this.dataSource.query(`INSERT INTO frm_entity_relation_data
206
+ (organization_id, source_entity_id, source_entity_type, target_entity_id, target_entity_type, relation_type)
207
207
  VALUES (?, ?, ?, ?, ?,?)`, [
208
208
  organizationId,
209
209
  id,
@@ -349,7 +349,7 @@ let EntityDynamicService = class EntityDynamicService {
349
349
  const organizationId = loggedInUser.organization_id;
350
350
  const tableName = await this.getTableName(entityType, organizationId);
351
351
  const dataSource = await this.getEntitySourceTableName(entityType, organizationId);
352
- const validAttributes = await this.getAttributeCodes(entityType, organizationId);
352
+ const validAttributes = await this.getAttributeCodes(entityType, organizationId, false);
353
353
  const columns = validAttributes
354
354
  .map((attr) => `\`${attr.attribute_key}\``)
355
355
  .join(', ');
@@ -387,15 +387,20 @@ let EntityDynamicService = class EntityDynamicService {
387
387
  }
388
388
  return result[0].db_table_name;
389
389
  }
390
- async getAttributeCodes(entityType, organizationId) {
391
- const result = await this.dataSource.query(`SELECT attribute_key,
392
- MAX(db_datatype) AS db_datatype,
393
- MAX(element_type) AS element_type,
394
- MAX(is_hidden) AS is_hidden
395
- FROM frm_entity_attribute
396
- WHERE mapped_entity_type = ? AND organization_id = ?
397
- and (is_hidden IS NULL OR is_hidden = 0) -- Exclude hidden attributes
398
- GROUP BY attribute_key`, [entityType, organizationId]);
390
+ async getAttributeCodes(entityType, organizationId, isHidden = true) {
391
+ const qb = this.dataSource
392
+ .createQueryBuilder()
393
+ .select('fea.attribute_key', 'attribute_key')
394
+ .addSelect('MAX(fea.db_datatype)', 'db_datatype')
395
+ .addSelect('MAX(fea.element_type)', 'element_type')
396
+ .from('frm_entity_attribute', 'fea')
397
+ .where('fea.mapped_entity_type = :entityType', { entityType })
398
+ .andWhere('fea.organization_id = :organizationId', { organizationId });
399
+ if (isHidden) {
400
+ qb.andWhere('(fea.is_hidden IS NULL OR fea.is_hidden = 0)');
401
+ }
402
+ qb.groupBy('fea.attribute_key');
403
+ const result = await qb.getRawMany();
399
404
  if (!result.length) {
400
405
  console.log(`No attributes found for entity '${entityType}' and org '${organizationId}'`);
401
406
  }
@@ -403,7 +408,7 @@ let EntityDynamicService = class EntityDynamicService {
403
408
  attribute_key: row.attribute_key,
404
409
  db_datatype: row.db_datatype,
405
410
  element_type: row.element_type,
406
- is_hidden: row.is_hidden,
411
+ is_hidden: row.is_hidden != null ? !!Number(row.is_hidden) : undefined,
407
412
  }));
408
413
  }
409
414
  async deleteEntity(entityType, id, loggedInUser) {
@@ -426,15 +431,15 @@ let EntityDynamicService = class EntityDynamicService {
426
431
  }
427
432
  async getCode(entityType, loggedInUser) {
428
433
  const organizationId = loggedInUser.organization_id;
429
- const result = await this.dataSource.query(`SELECT db_table_name
430
- FROM frm_entity_master
434
+ const result = await this.dataSource.query(`SELECT db_table_name
435
+ FROM frm_entity_master
431
436
  WHERE mapped_entity_type = ? AND organization_id = ?`, [entityType, organizationId]);
432
437
  if (!result.length) {
433
438
  throw new Error(`Entity type '${entityType}' not found in frm_entity_master for org '${organizationId}'`);
434
439
  }
435
440
  const tableName = result[0].db_table_name;
436
- const seqResult = await this.dataSource.query(`SELECT MAX(CAST(SUBSTRING(code, LENGTH(entity_type) + 1) AS UNSIGNED)) AS max_seq_no
437
- FROM \`${tableName}\`
441
+ const seqResult = await this.dataSource.query(`SELECT MAX(CAST(SUBSTRING(code, LENGTH(entity_type) + 1) AS UNSIGNED)) AS max_seq_no
442
+ FROM \`${tableName}\`
438
443
  WHERE entity_type = ?`, [entityType]);
439
444
  let maxSeqNo = seqResult?.[0]?.max_seq_no
440
445
  ? Number(seqResult[0].max_seq_no)