rez_core 3.1.117 → 3.1.119

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 (389) hide show
  1. package/.claude/settings.local.json +26 -0
  2. package/.idea/250218_nodejs_core.iml +9 -0
  3. package/.idea/codeStyles/Project.xml +59 -0
  4. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  5. package/.idea/copilot.data.migration.agent.xml +6 -0
  6. package/.idea/copilot.data.migration.ask.xml +6 -0
  7. package/.idea/copilot.data.migration.ask2agent.xml +6 -0
  8. package/.idea/copilot.data.migration.edit.xml +6 -0
  9. package/.idea/inspectionProfiles/Project_Default.xml +6 -0
  10. package/.idea/misc.xml +6 -0
  11. package/.idea/modules.xml +8 -0
  12. package/.idea/prettier.xml +6 -0
  13. package/.idea/vcs.xml +6 -0
  14. package/.prettierrc +3 -3
  15. package/README.md +99 -99
  16. package/dist/module/auth/guards/role.guard.js +3 -3
  17. package/dist/module/auth/services/auth.service.js +2 -2
  18. package/dist/module/filter/repository/saved-filter.repository.js +4 -4
  19. package/dist/module/filter/service/filter-evaluator.service.js +2 -2
  20. package/dist/module/filter/service/filter.service.js +7 -7
  21. package/dist/module/integration/examples/usage.example.js +9 -9
  22. package/dist/module/integration/service/integration.service.js +1 -1
  23. package/dist/module/integration/service/wrapper.service.js +17 -17
  24. package/dist/module/listmaster/service/list-master-item.service.js +2 -2
  25. package/dist/module/listmaster/service/list-master.service.js +2 -2
  26. package/dist/module/mapper/controller/mapper.controller.d.ts +1 -1
  27. package/dist/module/mapper/controller/mapper.controller.js +4 -3
  28. package/dist/module/mapper/controller/mapper.controller.js.map +1 -1
  29. package/dist/module/mapper/repository/mapper.repository.d.ts +4 -2
  30. package/dist/module/mapper/repository/mapper.repository.js +4 -3
  31. package/dist/module/mapper/repository/mapper.repository.js.map +1 -1
  32. package/dist/module/mapper/service/field-mapper.service.js +4 -4
  33. package/dist/module/mapper/service/mapper.service.d.ts +1 -1
  34. package/dist/module/mapper/service/mapper.service.js +4 -4
  35. package/dist/module/mapper/service/mapper.service.js.map +1 -1
  36. package/dist/module/meta/service/entity-dynamic.service.js +18 -18
  37. package/dist/module/meta/service/entity-list.service.js +3 -3
  38. package/dist/module/meta/service/entity-master.service.js +3 -3
  39. package/dist/module/meta/service/entity-relation.service.js +11 -11
  40. package/dist/module/meta/service/entity-service-impl.service.js +3 -3
  41. package/dist/module/meta/service/resolver.service.js +3 -3
  42. package/dist/module/module/repository/menu.repository.js +12 -12
  43. package/dist/module/notification/service/notification.service.js +12 -12
  44. package/dist/module/user/controller/login.controller.js +18 -18
  45. package/dist/module/user/service/role.service.js +4 -4
  46. package/dist/module/user/service/user-session.service.js +2 -2
  47. package/dist/module/workflow/repository/action.repository.js +16 -16
  48. package/dist/module/workflow/repository/comm-template.repository.js +6 -6
  49. package/dist/module/workflow/repository/form-master.repository.js +2 -2
  50. package/dist/module/workflow/repository/stage-group.repository.js +23 -23
  51. package/dist/module/workflow/repository/stage-movement.repository.js +11 -11
  52. package/dist/module/workflow/repository/stage.repository.js +8 -8
  53. package/dist/module/workflow/service/action-template-mapping.service.js +10 -10
  54. package/dist/module/workflow/service/action.service.js +7 -7
  55. package/dist/module/workflow/service/entity-modification.service.js +6 -6
  56. package/dist/module/workflow/service/stage-group.service.js +5 -5
  57. package/dist/module/workflow/service/stage.service.js +2 -2
  58. package/dist/module/workflow/service/task.service.js +33 -33
  59. package/dist/module/workflow/service/workflow-list-master.service.js +15 -15
  60. package/dist/module/workflow/service/workflow-meta.service.js +50 -50
  61. package/dist/module/workflow/service/workflow.service.js +2 -2
  62. package/dist/tsconfig.build.tsbuildinfo +1 -1
  63. package/dist/utils/service/reflection-helper.service.js +2 -2
  64. package/docs/modules/event-driven-integration-design.md +91 -91
  65. package/docs/modules/integration.md +250 -250
  66. package/eslint.config.mjs +34 -34
  67. package/nest-cli.json +14 -14
  68. package/package.json +118 -118
  69. package/server.log +850 -0
  70. package/src/app.controller.ts +12 -12
  71. package/src/app.module.ts +49 -49
  72. package/src/app.service.ts +8 -8
  73. package/src/config/config.module.ts +18 -18
  74. package/src/config/database.config.ts +23 -23
  75. package/src/constant/global.constant.ts +67 -67
  76. package/src/core.module.ts +81 -81
  77. package/src/decorators/roles.decorator.ts +7 -7
  78. package/src/dtos/response.dto.ts +6 -6
  79. package/src/dtos/response.ts +5 -5
  80. package/src/index.ts +1 -1
  81. package/src/module/auth/auth.module.ts +49 -49
  82. package/src/module/auth/controller/auth.controller.ts +28 -28
  83. package/src/module/auth/guards/google-auth.guard.ts +9 -9
  84. package/src/module/auth/guards/jwt.guard.ts +22 -22
  85. package/src/module/auth/guards/role.guard.ts +68 -68
  86. package/src/module/auth/services/auth.service.ts +50 -50
  87. package/src/module/auth/services/jwt.service.ts +11 -11
  88. package/src/module/auth/strategies/google.strategy.ts +54 -54
  89. package/src/module/auth/strategies/jwt.strategy.ts +58 -58
  90. package/src/module/auth/strategies/local.strategy.ts +13 -13
  91. package/src/module/dashboard/controller/dashboard.controller.ts +36 -36
  92. package/src/module/dashboard/dashboard.module.ts +21 -21
  93. package/src/module/dashboard/entity/dashboard_page_data.entity.ts +27 -27
  94. package/src/module/dashboard/entity/widget_master.entity.ts +18 -18
  95. package/src/module/dashboard/repository/dashboard.repository.ts +42 -42
  96. package/src/module/dashboard/service/dashboard.service.ts +73 -73
  97. package/src/module/dev/dev.module.ts +12 -12
  98. package/src/module/dev/service/dev.service.ts +7 -7
  99. package/src/module/enterprise/controller/organization.controller.ts +36 -36
  100. package/src/module/enterprise/enterprise.module.ts +30 -30
  101. package/src/module/enterprise/entity/enterprise.entity.ts +37 -37
  102. package/src/module/enterprise/entity/organization-app-mapping.entity.ts +13 -13
  103. package/src/module/enterprise/entity/organization.entity.ts +92 -92
  104. package/src/module/enterprise/repository/enterprise.repository.ts +31 -31
  105. package/src/module/enterprise/repository/organization.repository.ts +26 -26
  106. package/src/module/enterprise/repository/school.repository.ts +282 -282
  107. package/src/module/enterprise/service/brand.service.ts +5 -5
  108. package/src/module/enterprise/service/enterprise.service.ts +16 -16
  109. package/src/module/enterprise/service/organization-app-mapping.service.ts +4 -4
  110. package/src/module/enterprise/service/organization.service.ts +145 -145
  111. package/src/module/filter/controller/filter.controller.ts +84 -84
  112. package/src/module/filter/dto/filter-request.dto.ts +38 -38
  113. package/src/module/filter/entity/saved-filter-detail.entity.ts +41 -41
  114. package/src/module/filter/entity/saved-filter-master.entity.ts +23 -23
  115. package/src/module/filter/filter.module.ts +31 -31
  116. package/src/module/filter/repository/saved-filter.repository.ts +168 -168
  117. package/src/module/filter/service/filter-evaluator.service.ts +86 -86
  118. package/src/module/filter/service/filter.service.ts +841 -841
  119. package/src/module/filter/service/saved-filter.service.ts +170 -170
  120. package/src/module/ics/controller/ics.controller.ts +21 -21
  121. package/src/module/ics/dto/ics.dto.ts +55 -55
  122. package/src/module/ics/ics.module.ts +13 -13
  123. package/src/module/ics/service/ics.service.ts +60 -60
  124. package/src/module/integration/controller/calender-event.controller.ts +31 -31
  125. package/src/module/integration/controller/integration.controller.ts +662 -662
  126. package/src/module/integration/controller/wrapper.controller.ts +39 -39
  127. package/src/module/integration/dto/create-config.dto.ts +526 -526
  128. package/src/module/integration/entity/integration-config.entity.ts +112 -112
  129. package/src/module/integration/entity/integration-entity-mapper.entity.ts +14 -14
  130. package/src/module/integration/entity/integration-source.entity.ts +17 -17
  131. package/src/module/integration/entity/user-integration.entity.ts +70 -70
  132. package/src/module/integration/examples/usage.example.ts +338 -338
  133. package/src/module/integration/factories/base.factory.ts +7 -7
  134. package/src/module/integration/factories/email.factory.ts +49 -49
  135. package/src/module/integration/factories/integration.factory.ts +121 -121
  136. package/src/module/integration/factories/sms.factory.ts +51 -51
  137. package/src/module/integration/factories/telephone.factory.ts +41 -41
  138. package/src/module/integration/factories/whatsapp.factory.ts +56 -56
  139. package/src/module/integration/integration.module.ts +110 -110
  140. package/src/module/integration/service/calendar-event.service.ts +118 -118
  141. package/src/module/integration/service/integration-entity-mapper.service.ts +17 -17
  142. package/src/module/integration/service/integration-queue.service.ts +229 -229
  143. package/src/module/integration/service/integration.service.ts +2557 -2557
  144. package/src/module/integration/service/oauth.service.ts +224 -224
  145. package/src/module/integration/service/wrapper.service.ts +373 -373
  146. package/src/module/integration/strategies/email/gmail-api.strategy.ts +288 -288
  147. package/src/module/integration/strategies/email/outlook-api.strategy.ts +44 -44
  148. package/src/module/integration/strategies/email/outlook.strategy.ts +64 -64
  149. package/src/module/integration/strategies/email/sendgrid-api.strategy.ts +262 -262
  150. package/src/module/integration/strategies/integration.strategy.ts +97 -97
  151. package/src/module/integration/strategies/sms/gupshup-sms.strategy.ts +146 -146
  152. package/src/module/integration/strategies/sms/msg91-sms.strategy.ts +164 -164
  153. package/src/module/integration/strategies/sms/tubelight-sms.strategy.ts +163 -163
  154. package/src/module/integration/strategies/telephone/ozonetel-voice.strategy.ts +238 -238
  155. package/src/module/integration/strategies/telephone/tubelight-voice.strategy.ts +210 -210
  156. package/src/module/integration/strategies/whatsapp/gupshup-whatsapp.strategy.ts +359 -359
  157. package/src/module/integration/strategies/whatsapp/tubelight-whatsapp.strategy.ts +371 -371
  158. package/src/module/integration/strategies/whatsapp/whatsapp-cloud.strategy.ts +403 -403
  159. package/src/module/integration/strategies/whatsapp/whatsapp.strategy.ts +57 -57
  160. package/src/module/layout/controller/layout.controller.ts +47 -47
  161. package/src/module/layout/entity/header-items.entity.ts +28 -28
  162. package/src/module/layout/entity/header-section.entity.ts +19 -19
  163. package/src/module/layout/layout.module.ts +21 -21
  164. package/src/module/layout/repository/header-items.repository.ts +18 -18
  165. package/src/module/layout/repository/header-section.repository.ts +22 -22
  166. package/src/module/layout/service/header-section.service.ts +25 -25
  167. package/src/module/layout_preference/controller/layout_preference.controller.ts +47 -47
  168. package/src/module/layout_preference/entity/layout_preference.entity.ts +28 -28
  169. package/src/module/layout_preference/layout_preference.module.ts +18 -18
  170. package/src/module/layout_preference/repository/layout_preference.repository.ts +30 -30
  171. package/src/module/layout_preference/service/layout_preference.service.ts +140 -140
  172. package/src/module/lead/controller/lead.controller.ts +30 -30
  173. package/src/module/lead/lead.module.ts +14 -14
  174. package/src/module/lead/repository/lead.repository.ts +41 -41
  175. package/src/module/lead/service/lead.service.ts +54 -54
  176. package/src/module/listmaster/controller/list-master.controller.ts +143 -143
  177. package/src/module/listmaster/entity/list-master-items.entity.ts +41 -41
  178. package/src/module/listmaster/entity/list-master.entity.ts +32 -32
  179. package/src/module/listmaster/listmaster.module.ts +30 -30
  180. package/src/module/listmaster/repository/list-master-items.repository.ts +169 -169
  181. package/src/module/listmaster/repository/list-master.repository.ts +46 -46
  182. package/src/module/listmaster/service/list-master-item.service.ts +292 -292
  183. package/src/module/listmaster/service/list-master.service.ts +360 -360
  184. package/src/module/mapper/controller/field-mapper.controller.ts +69 -69
  185. package/src/module/mapper/controller/mapper.controller.ts +14 -12
  186. package/src/module/mapper/dto/field-mapper.dto.ts +14 -14
  187. package/src/module/mapper/entity/field-lovs.entity.ts +20 -20
  188. package/src/module/mapper/entity/field-mapper.entity.ts +37 -37
  189. package/src/module/mapper/entity/mapper.entity.ts +17 -17
  190. package/src/module/mapper/mapper.module.ts +34 -34
  191. package/src/module/mapper/repository/field-lovs.repository.ts +35 -35
  192. package/src/module/mapper/repository/field-mapper.repository.ts +42 -42
  193. package/src/module/mapper/repository/mapper.repository.ts +15 -14
  194. package/src/module/mapper/service/field-mapper.service.ts +223 -223
  195. package/src/module/mapper/service/mapper.service.ts +72 -72
  196. package/src/module/master/controller/master.controller.ts +74 -74
  197. package/src/module/master/service/master.service.ts +486 -486
  198. package/src/module/meta/controller/app-master.controller.ts +38 -38
  199. package/src/module/meta/controller/attribute-master.controller.ts +66 -66
  200. package/src/module/meta/controller/entity-dynamic.controller.ts +125 -125
  201. package/src/module/meta/controller/entity-master.controller.ts +28 -28
  202. package/src/module/meta/controller/entity-relation.controller.ts +36 -36
  203. package/src/module/meta/controller/entity.controller.ts +385 -385
  204. package/src/module/meta/controller/media.controller.ts +82 -82
  205. package/src/module/meta/controller/meta.controller.ts +96 -96
  206. package/src/module/meta/controller/view-master.controller.ts +86 -86
  207. package/src/module/meta/dto/entity-list-data.dto.ts +6 -6
  208. package/src/module/meta/dto/entity-tab.dto.ts +4 -4
  209. package/src/module/meta/dto/entity-table.dto.ts +9 -9
  210. package/src/module/meta/entity/app-master.entity.ts +34 -34
  211. package/src/module/meta/entity/attribute-master.entity.ts +87 -87
  212. package/src/module/meta/entity/base-entity.entity.ts +75 -75
  213. package/src/module/meta/entity/entity-master.entity.ts +78 -78
  214. package/src/module/meta/entity/entity-relation-data.entity.ts +29 -29
  215. package/src/module/meta/entity/entity-relation.entity.ts +23 -23
  216. package/src/module/meta/entity/entity-table-column.entity.ts +61 -61
  217. package/src/module/meta/entity/entity-table.entity.ts +50 -50
  218. package/src/module/meta/entity/media-data.entity.ts +32 -32
  219. package/src/module/meta/entity/preference.entity.ts +62 -62
  220. package/src/module/meta/entity/view-master.entity.ts +41 -41
  221. package/src/module/meta/entity.module.ts +156 -156
  222. package/src/module/meta/repository/app-master.repository.ts +20 -20
  223. package/src/module/meta/repository/attribute-master.repository.ts +110 -110
  224. package/src/module/meta/repository/entity-master.repository.ts +61 -61
  225. package/src/module/meta/repository/entity-table-column.repository.ts +39 -39
  226. package/src/module/meta/repository/entity-table.repository.ts +53 -53
  227. package/src/module/meta/repository/media-data.repository.ts +50 -50
  228. package/src/module/meta/repository/preference.repository.ts +20 -20
  229. package/src/module/meta/repository/user-app-mapping.repository.ts +28 -28
  230. package/src/module/meta/repository/view-master.repository.ts +42 -42
  231. package/src/module/meta/service/app-master.service.ts +37 -37
  232. package/src/module/meta/service/attribute-master.service.ts +117 -117
  233. package/src/module/meta/service/common.service.ts +9 -9
  234. package/src/module/meta/service/entity-dynamic.service.ts +762 -762
  235. package/src/module/meta/service/entity-list.service.ts +205 -205
  236. package/src/module/meta/service/entity-master.service.ts +164 -164
  237. package/src/module/meta/service/entity-realation-data.service.ts +9 -9
  238. package/src/module/meta/service/entity-relation.service.ts +69 -69
  239. package/src/module/meta/service/entity-service-impl.service.ts +524 -524
  240. package/src/module/meta/service/entity-table-column.service.ts +39 -39
  241. package/src/module/meta/service/entity-table.service.ts +150 -150
  242. package/src/module/meta/service/entity-validation.service.ts +185 -185
  243. package/src/module/meta/service/entity.service.ts +67 -67
  244. package/src/module/meta/service/field-group.service.ts +103 -103
  245. package/src/module/meta/service/media-data.service.ts +140 -140
  246. package/src/module/meta/service/populate-meta.service.ts +153 -153
  247. package/src/module/meta/service/preference.service.ts +16 -16
  248. package/src/module/meta/service/resolver.service.ts +256 -256
  249. package/src/module/meta/service/section-master.service.ts +104 -104
  250. package/src/module/meta/service/update-form-json.service.ts +22 -22
  251. package/src/module/meta/service/user-app-mapping.service.ts +17 -17
  252. package/src/module/meta/service/view-master.service.ts +110 -110
  253. package/src/module/module/controller/menu.controller.ts +15 -15
  254. package/src/module/module/controller/module-access.controller.ts +132 -132
  255. package/src/module/module/entity/menu.entity.ts +43 -43
  256. package/src/module/module/entity/module-access.entity.ts +25 -25
  257. package/src/module/module/entity/module-action.entity.ts +17 -17
  258. package/src/module/module/entity/module.entity.ts +52 -52
  259. package/src/module/module/module.module.ts +42 -42
  260. package/src/module/module/repository/menu.repository.ts +184 -184
  261. package/src/module/module/repository/module-access.repository.ts +326 -326
  262. package/src/module/module/service/menu.service.ts +82 -82
  263. package/src/module/module/service/module-access.service.ts +209 -209
  264. package/src/module/notification/controller/notification.controller.ts +58 -58
  265. package/src/module/notification/controller/otp.controller.ts +117 -117
  266. package/src/module/notification/entity/notification.entity.ts +23 -23
  267. package/src/module/notification/entity/otp.entity.ts +28 -28
  268. package/src/module/notification/firebase-admin.config.ts +22 -22
  269. package/src/module/notification/notification.module.ts +69 -69
  270. package/src/module/notification/repository/otp.repository.ts +27 -27
  271. package/src/module/notification/service/email.service.ts +127 -127
  272. package/src/module/notification/service/notification.service.ts +138 -138
  273. package/src/module/notification/service/otp.service.ts +121 -121
  274. package/src/module/third-party-module/entity/third-party-api-registry.entity.ts +52 -52
  275. package/src/module/third-party-module/repository/third-party-api-registry.repository.ts +20 -20
  276. package/src/module/third-party-module/service/api-registry.service.ts +13 -13
  277. package/src/module/third-party-module/third-party.module.ts +12 -12
  278. package/src/module/user/controller/login.controller.ts +197 -197
  279. package/src/module/user/controller/user.controller.ts +40 -40
  280. package/src/module/user/dto/create-user.dto.ts +62 -62
  281. package/src/module/user/dto/update-user.dto.ts +4 -4
  282. package/src/module/user/entity/role.entity.ts +33 -33
  283. package/src/module/user/entity/user-role-mapping.entity.ts +38 -38
  284. package/src/module/user/entity/user-session.entity.ts +61 -61
  285. package/src/module/user/entity/user.entity.ts +68 -68
  286. package/src/module/user/repository/role.repository.ts +96 -96
  287. package/src/module/user/repository/user-role-mapping.repository.ts +126 -126
  288. package/src/module/user/repository/user.repository.ts +50 -50
  289. package/src/module/user/repository/userSession.repository.ts +33 -33
  290. package/src/module/user/service/login.service.ts +280 -280
  291. package/src/module/user/service/role.service.ts +189 -189
  292. package/src/module/user/service/user-role-mapping.service.ts +98 -98
  293. package/src/module/user/service/user-session.service.ts +168 -168
  294. package/src/module/user/service/user.service.ts +353 -353
  295. package/src/module/user/user.module.ts +65 -65
  296. package/src/module/workflow/controller/action-category.controller.ts +54 -54
  297. package/src/module/workflow/controller/action-resource-mapping.controller.ts +23 -23
  298. package/src/module/workflow/controller/action-template-mapping.controller.ts +35 -35
  299. package/src/module/workflow/controller/action.controller.ts +95 -95
  300. package/src/module/workflow/controller/activity-log.controller.ts +55 -55
  301. package/src/module/workflow/controller/comm-template.controller.ts +34 -34
  302. package/src/module/workflow/controller/entity-modification.controller.ts +35 -35
  303. package/src/module/workflow/controller/form-master.controller.ts +43 -43
  304. package/src/module/workflow/controller/stage-group.controller.ts +48 -48
  305. package/src/module/workflow/controller/stage.controller.ts +47 -47
  306. package/src/module/workflow/controller/task.controller.ts +77 -77
  307. package/src/module/workflow/controller/workflow-list-master.controller.ts +44 -44
  308. package/src/module/workflow/controller/workflow-meta.controller.ts +80 -80
  309. package/src/module/workflow/controller/workflow.controller.ts +67 -67
  310. package/src/module/workflow/entity/action-category.entity.ts +38 -38
  311. package/src/module/workflow/entity/action-data.entity.ts +55 -55
  312. package/src/module/workflow/entity/action-resources-mapping.entity.ts +29 -29
  313. package/src/module/workflow/entity/action-template-mapping.entity.ts +17 -17
  314. package/src/module/workflow/entity/action.entity.ts +50 -50
  315. package/src/module/workflow/entity/activity-log.entity.ts +43 -43
  316. package/src/module/workflow/entity/comm-template.entity.ts +43 -43
  317. package/src/module/workflow/entity/entity-modification.entity.ts +38 -38
  318. package/src/module/workflow/entity/form-master.entity.ts +27 -27
  319. package/src/module/workflow/entity/form.entity.ts +25 -25
  320. package/src/module/workflow/entity/stage-action-mapping.entity.ts +17 -17
  321. package/src/module/workflow/entity/stage-group.entity.ts +23 -23
  322. package/src/module/workflow/entity/stage-movement-data.entity.ts +38 -38
  323. package/src/module/workflow/entity/stage.entity.ts +20 -20
  324. package/src/module/workflow/entity/task-data.entity.ts +88 -88
  325. package/src/module/workflow/entity/template-attach-mapper.entity.ts +30 -30
  326. package/src/module/workflow/entity/workflow-data.entity.ts +11 -11
  327. package/src/module/workflow/entity/workflow-level-mapping.entity.ts +18 -18
  328. package/src/module/workflow/entity/workflow.entity.ts +20 -20
  329. package/src/module/workflow/repository/action-category.repository.ts +79 -79
  330. package/src/module/workflow/repository/action-data.repository.ts +219 -219
  331. package/src/module/workflow/repository/action.repository.ts +277 -277
  332. package/src/module/workflow/repository/activity-log.repository.ts +121 -121
  333. package/src/module/workflow/repository/comm-template.repository.ts +142 -142
  334. package/src/module/workflow/repository/form-master.repository.ts +61 -61
  335. package/src/module/workflow/repository/stage-group.repository.ts +176 -176
  336. package/src/module/workflow/repository/stage-movement.repository.ts +227 -227
  337. package/src/module/workflow/repository/stage.repository.ts +118 -118
  338. package/src/module/workflow/repository/task.repository.ts +113 -113
  339. package/src/module/workflow/repository/workflow.repository.ts +42 -42
  340. package/src/module/workflow/service/action-category.service.ts +33 -33
  341. package/src/module/workflow/service/action-data.service.ts +62 -62
  342. package/src/module/workflow/service/action-resources-mapping.service.ts +10 -10
  343. package/src/module/workflow/service/action-template-mapping.service.ts +55 -55
  344. package/src/module/workflow/service/action.service.ts +247 -247
  345. package/src/module/workflow/service/activity-log.service.ts +107 -107
  346. package/src/module/workflow/service/comm-template.service.ts +121 -121
  347. package/src/module/workflow/service/entity-modification.service.ts +67 -67
  348. package/src/module/workflow/service/form-master.service.ts +35 -35
  349. package/src/module/workflow/service/populate-workflow.service.ts +326 -326
  350. package/src/module/workflow/service/stage-action-mapping.service.ts +5 -5
  351. package/src/module/workflow/service/stage-group.service.ts +300 -300
  352. package/src/module/workflow/service/stage.service.ts +140 -140
  353. package/src/module/workflow/service/task.service.ts +504 -504
  354. package/src/module/workflow/service/workflow-list-master.service.ts +60 -60
  355. package/src/module/workflow/service/workflow-meta.service.ts +564 -564
  356. package/src/module/workflow/service/workflow.service.ts +205 -205
  357. package/src/module/workflow/workflow.module.ts +176 -176
  358. package/src/module/workflow-automation/controller/workflow-automation.controller.ts +21 -21
  359. package/src/module/workflow-automation/entity/workflow-automation-action.entity.ts +26 -26
  360. package/src/module/workflow-automation/entity/workflow-automation.entity.ts +35 -35
  361. package/src/module/workflow-automation/interface/action.decorator.ts +7 -7
  362. package/src/module/workflow-automation/interface/action.interface.ts +5 -5
  363. package/src/module/workflow-automation/service/action-registery.service.ts +35 -35
  364. package/src/module/workflow-automation/service/workflow-automation-engine.service.ts +214 -214
  365. package/src/module/workflow-automation/service/workflow-automation.service.ts +343 -343
  366. package/src/module/workflow-automation/workflow-automation.module.ts +34 -34
  367. package/src/resources/dev.properties.yaml +30 -30
  368. package/src/resources/local.properties.yaml +23 -23
  369. package/src/resources/properties.module.ts +12 -12
  370. package/src/resources/properties.yaml.ts +11 -11
  371. package/src/resources/uat.properties.yaml +15 -15
  372. package/src/utils/dto/excel-data.dto.ts +14 -14
  373. package/src/utils/dto/excelsheet-data.dto.ts +5 -5
  374. package/src/utils/service/base64util.service.ts +18 -18
  375. package/src/utils/service/clockIDGenUtil.service.ts +21 -21
  376. package/src/utils/service/codeGenerator.service.ts +22 -22
  377. package/src/utils/service/dateUtil.service.ts +17 -17
  378. package/src/utils/service/encryptUtil.service.ts +97 -97
  379. package/src/utils/service/excel-helper.service.ts +72 -72
  380. package/src/utils/service/excelUtil.service.ts +15 -15
  381. package/src/utils/service/file-util.service.ts +11 -11
  382. package/src/utils/service/json-util.service.ts +23 -23
  383. package/src/utils/service/loggingUtil.service.ts +34 -34
  384. package/src/utils/service/reflection-helper.service.ts +62 -62
  385. package/src/utils/service/wbsCodeGen.service.ts +8 -8
  386. package/src/utils/utils.module.ts +25 -25
  387. package/tsconfig.build.json +4 -4
  388. package/tsconfig.json +24 -24
  389. package/.vscode/extensions.json +0 -5
@@ -1,277 +1,277 @@
1
- import {
2
- BadRequestException,
3
- Inject,
4
- Injectable,
5
- NotFoundException,
6
- } from '@nestjs/common';
7
- import { InjectRepository } from '@nestjs/typeorm';
8
- import { DataSource, Repository } from 'typeorm';
9
- import { ActionEntity } from '../entity/action.entity';
10
- import { UserData } from 'src/module/user/entity/user.entity';
11
-
12
- @Injectable()
13
- export class ActionRepository {
14
- constructor(
15
- @InjectRepository(ActionEntity)
16
- private readonly actionRepository: Repository<ActionEntity>,
17
- private readonly dataSource: DataSource,
18
- ) {}
19
-
20
- async getReasonCode(loggedInUser: UserData): Promise<any> {
21
- const { organization_id } = loggedInUser;
22
- const result = await this.dataSource.query(
23
- `
24
- SELECT name, type
25
- FROM cr_list_master
26
- WHERE organization_id = ? AND source = 'master'
27
- `,
28
- [organization_id],
29
- );
30
-
31
- const formatted = result.map((item: any) => ({
32
- label: item.name,
33
- value: item.type,
34
- }));
35
-
36
- return formatted;
37
- }
38
-
39
- async defaultReasonCode(list_type: string, loggedInUser: UserData) {
40
- const { organization_id } = loggedInUser;
41
- if (!list_type) {
42
- throw new BadRequestException('list_type is required');
43
- }
44
- const result = await this.dataSource.query(
45
- `
46
- SELECT name, id
47
- FROM cr_list_master_items
48
- WHERE listtype = ? AND organization_id = ?
49
- `,
50
- [list_type, organization_id],
51
- );
52
-
53
- // Format as array of key-value pairs
54
- return result.map((row: any) => ({
55
- label: row.name,
56
- value: row.id,
57
- }));
58
- }
59
-
60
- async getActions(loggedInUser: UserData, stage_id: number) {
61
- const { organization_id } = loggedInUser;
62
-
63
- // Step 1: Get all action_ids for the provided stage_id
64
- const stageActions = await this.dataSource.query(
65
- `
66
- SELECT id, action_id
67
- FROM cr_wf_stage_action_mapping
68
- WHERE stage_id = ?
69
- `,
70
- [stage_id],
71
- );
72
-
73
- if (!stageActions?.length) return [];
74
-
75
- const actionIds = stageActions.map((sa) => sa.action_id);
76
- const mappingIds = stageActions.map((sa) => sa.id);
77
-
78
- // Step 2: Get template codes with mapping IDs
79
- const templateMappings = await this.dataSource.query(
80
- `
81
- SELECT stg_act_mapping_id, template_code
82
- FROM cr_wf_action_template_mapping
83
- WHERE stg_act_mapping_id IN (${mappingIds.map(() => '?').join(',')})
84
- `,
85
- mappingIds,
86
- );
87
-
88
- const templateCodes = templateMappings.map((tm) => tm.template_code);
89
-
90
- // Step 3: Fetch template names from cr_wf_comm_template
91
- const templateCodeToName: Record<string, string> = {};
92
-
93
- if (templateCodes.length > 0) {
94
- const templates = await this.dataSource
95
- .createQueryBuilder()
96
- .select(['t.code AS code', 't.name AS name'])
97
- .from('cr_wf_comm_template', 't')
98
- .where('t.code IN (:...codes)', { codes: templateCodes })
99
- .andWhere('t.organization_id = :orgId', { orgId: organization_id })
100
- .getRawMany();
101
-
102
- templates.forEach((tpl) => {
103
- templateCodeToName[tpl.code] = tpl.name;
104
- });
105
- }
106
-
107
- // Step 4: Build map of mapping_id → template names
108
- const mappingIdToTemplates: Record<number, string[]> = {};
109
-
110
- for (const tm of templateMappings) {
111
- const mappingId = tm.stg_act_mapping_id;
112
- const name = templateCodeToName[tm.template_code];
113
- if (name) {
114
- if (!mappingIdToTemplates[mappingId]) {
115
- mappingIdToTemplates[mappingId] = [];
116
- }
117
- mappingIdToTemplates[mappingId].push(name);
118
- }
119
- }
120
-
121
- // Step 5: Build action_id → template names using mappingIdToTemplates + stageActions
122
- const actionIdToTemplates: Record<number, string[]> = {};
123
-
124
- for (const sa of stageActions) {
125
- const mappingId = sa.id;
126
- const templates = mappingIdToTemplates[mappingId];
127
- if (templates?.length) {
128
- if (!actionIdToTemplates[sa.action_id]) {
129
- actionIdToTemplates[sa.action_id] = [];
130
- }
131
- actionIdToTemplates[sa.action_id].push(...templates);
132
- }
133
- }
134
-
135
- // Step 6: Fetch action details
136
- const actionResults = await this.dataSource
137
- .createQueryBuilder()
138
- .select([
139
- 'a.*',
140
- 'ac.name AS action_category',
141
- 'ar.name AS action_requirement',
142
- ])
143
- .from('cr_wf_action', 'a')
144
- .leftJoin('cr_wf_action_category', 'ac', 'ac.id = a.action_category')
145
- .leftJoin(
146
- 'cr_list_master_items',
147
- 'ar',
148
- `ar.id = a.action_requirement AND ar.listtype = 'ACRQ' AND ar.organization_id = :orgId`,
149
- { orgId: organization_id },
150
- )
151
- .where('a.organization_id = :orgId', { orgId: organization_id })
152
- .andWhere('a.id IN (:...actionIds)', { actionIds })
153
- .getRawMany();
154
-
155
- // Step 7: Enrich result with template field
156
- const enrichedResult = actionResults.map((row) => {
157
- const actionId = Number(row.id); // Ensure numeric ID match
158
- const templates = actionIdToTemplates[actionId] || [];
159
- const uniqueTemplates = [...new Set(templates)]; // remove duplicates
160
-
161
- return {
162
- ...row,
163
- template: uniqueTemplates.join(', '),
164
- };
165
- });
166
-
167
- return enrichedResult;
168
- }
169
-
170
- async getAction(
171
- organization_id: number,
172
- stage_id: number,
173
- mapped_entity_id: number,
174
- mapped_entity_type: string,
175
- ) {
176
- // Step 1: Get all action mappings for the stage
177
- const stageActions = await this.dataSource.query(
178
- `SELECT id, action_id FROM cr_wf_stage_action_mapping WHERE stage_id = ?`,
179
- [stage_id],
180
- );
181
-
182
- if (!stageActions?.length) {
183
- return [
184
- {
185
- value: '0',
186
- label: 'Generic',
187
- },
188
- ];
189
- }
190
-
191
- const actionIds = stageActions.map((sa) => sa.action_id);
192
-
193
- // Step 2: Fetch all actions with category details
194
- const actions = await this.dataSource
195
- .createQueryBuilder()
196
- .select([
197
- 'a.id AS action_id',
198
- 'a.name AS action_name',
199
- 'a.reason_code AS action_reason_code',
200
- 'a.default_reason_code AS default_reason_code',
201
- 'a.default_value AS default_value',
202
- 'a.mode AS mode',
203
- 'a.action_category AS action_category_id',
204
- 'ac.reason_code AS category_reason_code',
205
- 'ac.modalName AS modalName',
206
- 'ac.logo AS logo',
207
- 'ac.name AS action_category_name',
208
- 'a.dependent_action_id AS dependent_action_id',
209
- ])
210
- .from('cr_wf_action', 'a')
211
- .leftJoin('cr_wf_action_category', 'ac', 'ac.id = a.action_category')
212
- .where('a.organization_id = :orgId', { orgId: organization_id })
213
- .andWhere('a.id IN (:...actionIds)', { actionIds })
214
- .getRawMany();
215
-
216
- // Step 3: Fetch action_data
217
- const actionData = await this.dataSource
218
- .createQueryBuilder()
219
- .select([
220
- 'ad.action_id AS action_id',
221
- 'ad.is_current AS is_current',
222
- 'ad.is_mandatory AS is_mandatory',
223
- 'ad.is_done AS is_done',
224
- ])
225
- .from('cr_wf_action_data', 'ad')
226
- .where('ad.stage_id = :stageId', { stageId: stage_id })
227
- .andWhere('ad.action_id IN (:...actionIds)', { actionIds })
228
- .andWhere('ad.mapped_entity_id = :mapped_entity_id', { mapped_entity_id })
229
- .andWhere('ad.mapped_entity_type = :mapped_entity_type', {
230
- mapped_entity_type,
231
- })
232
- .getRawMany();
233
-
234
- const actionIdToData = actionData.reduce((acc, row) => {
235
- acc[row.action_id] = {
236
- is_current: row.is_current === 'Y',
237
- is_mandatory: row.is_mandatory === 1,
238
- is_done: row.is_done === 1,
239
- };
240
- return acc;
241
- }, {});
242
-
243
- // Step 5: Enrich actions
244
- const enrichedResult = actions.map((row) => {
245
- const data = actionIdToData[row.action_id];
246
-
247
- const reason_code =
248
- row.action_reason_code && row.action_reason_code.trim()
249
- ? row.action_reason_code
250
- : row.category_reason_code;
251
-
252
- return {
253
- value: row.action_id,
254
- dependent_action_id: row.dependent_action_id,
255
- label: row.action_name,
256
- modalName: row.modalName,
257
- logo: row.logo,
258
- mode: row.mode,
259
- name: row.action_category_name,
260
- reason_code,
261
- default_reason_code: row.default_reason_code,
262
- is_default: row.default_value === 1,
263
- is_current: data?.is_current ?? false,
264
- is_done: data?.is_done ?? false,
265
- is_mandatory: data?.is_mandatory ?? false,
266
- };
267
- });
268
-
269
- // Step 6: Add fallback option
270
- enrichedResult.push({
271
- value: '0',
272
- label: 'Generic',
273
- } as any);
274
-
275
- return enrichedResult;
276
- }
277
- }
1
+ import {
2
+ BadRequestException,
3
+ Inject,
4
+ Injectable,
5
+ NotFoundException,
6
+ } from '@nestjs/common';
7
+ import { InjectRepository } from '@nestjs/typeorm';
8
+ import { DataSource, Repository } from 'typeorm';
9
+ import { ActionEntity } from '../entity/action.entity';
10
+ import { UserData } from 'src/module/user/entity/user.entity';
11
+
12
+ @Injectable()
13
+ export class ActionRepository {
14
+ constructor(
15
+ @InjectRepository(ActionEntity)
16
+ private readonly actionRepository: Repository<ActionEntity>,
17
+ private readonly dataSource: DataSource,
18
+ ) {}
19
+
20
+ async getReasonCode(loggedInUser: UserData): Promise<any> {
21
+ const { organization_id } = loggedInUser;
22
+ const result = await this.dataSource.query(
23
+ `
24
+ SELECT name, type
25
+ FROM cr_list_master
26
+ WHERE organization_id = ? AND source = 'master'
27
+ `,
28
+ [organization_id],
29
+ );
30
+
31
+ const formatted = result.map((item: any) => ({
32
+ label: item.name,
33
+ value: item.type,
34
+ }));
35
+
36
+ return formatted;
37
+ }
38
+
39
+ async defaultReasonCode(list_type: string, loggedInUser: UserData) {
40
+ const { organization_id } = loggedInUser;
41
+ if (!list_type) {
42
+ throw new BadRequestException('list_type is required');
43
+ }
44
+ const result = await this.dataSource.query(
45
+ `
46
+ SELECT name, id
47
+ FROM cr_list_master_items
48
+ WHERE listtype = ? AND organization_id = ?
49
+ `,
50
+ [list_type, organization_id],
51
+ );
52
+
53
+ // Format as array of key-value pairs
54
+ return result.map((row: any) => ({
55
+ label: row.name,
56
+ value: row.id,
57
+ }));
58
+ }
59
+
60
+ async getActions(loggedInUser: UserData, stage_id: number) {
61
+ const { organization_id } = loggedInUser;
62
+
63
+ // Step 1: Get all action_ids for the provided stage_id
64
+ const stageActions = await this.dataSource.query(
65
+ `
66
+ SELECT id, action_id
67
+ FROM cr_wf_stage_action_mapping
68
+ WHERE stage_id = ?
69
+ `,
70
+ [stage_id],
71
+ );
72
+
73
+ if (!stageActions?.length) return [];
74
+
75
+ const actionIds = stageActions.map((sa) => sa.action_id);
76
+ const mappingIds = stageActions.map((sa) => sa.id);
77
+
78
+ // Step 2: Get template codes with mapping IDs
79
+ const templateMappings = await this.dataSource.query(
80
+ `
81
+ SELECT stg_act_mapping_id, template_code
82
+ FROM cr_wf_action_template_mapping
83
+ WHERE stg_act_mapping_id IN (${mappingIds.map(() => '?').join(',')})
84
+ `,
85
+ mappingIds,
86
+ );
87
+
88
+ const templateCodes = templateMappings.map((tm) => tm.template_code);
89
+
90
+ // Step 3: Fetch template names from cr_wf_comm_template
91
+ const templateCodeToName: Record<string, string> = {};
92
+
93
+ if (templateCodes.length > 0) {
94
+ const templates = await this.dataSource
95
+ .createQueryBuilder()
96
+ .select(['t.code AS code', 't.name AS name'])
97
+ .from('cr_wf_comm_template', 't')
98
+ .where('t.code IN (:...codes)', { codes: templateCodes })
99
+ .andWhere('t.organization_id = :orgId', { orgId: organization_id })
100
+ .getRawMany();
101
+
102
+ templates.forEach((tpl) => {
103
+ templateCodeToName[tpl.code] = tpl.name;
104
+ });
105
+ }
106
+
107
+ // Step 4: Build map of mapping_id → template names
108
+ const mappingIdToTemplates: Record<number, string[]> = {};
109
+
110
+ for (const tm of templateMappings) {
111
+ const mappingId = tm.stg_act_mapping_id;
112
+ const name = templateCodeToName[tm.template_code];
113
+ if (name) {
114
+ if (!mappingIdToTemplates[mappingId]) {
115
+ mappingIdToTemplates[mappingId] = [];
116
+ }
117
+ mappingIdToTemplates[mappingId].push(name);
118
+ }
119
+ }
120
+
121
+ // Step 5: Build action_id → template names using mappingIdToTemplates + stageActions
122
+ const actionIdToTemplates: Record<number, string[]> = {};
123
+
124
+ for (const sa of stageActions) {
125
+ const mappingId = sa.id;
126
+ const templates = mappingIdToTemplates[mappingId];
127
+ if (templates?.length) {
128
+ if (!actionIdToTemplates[sa.action_id]) {
129
+ actionIdToTemplates[sa.action_id] = [];
130
+ }
131
+ actionIdToTemplates[sa.action_id].push(...templates);
132
+ }
133
+ }
134
+
135
+ // Step 6: Fetch action details
136
+ const actionResults = await this.dataSource
137
+ .createQueryBuilder()
138
+ .select([
139
+ 'a.*',
140
+ 'ac.name AS action_category',
141
+ 'ar.name AS action_requirement',
142
+ ])
143
+ .from('cr_wf_action', 'a')
144
+ .leftJoin('cr_wf_action_category', 'ac', 'ac.id = a.action_category')
145
+ .leftJoin(
146
+ 'cr_list_master_items',
147
+ 'ar',
148
+ `ar.id = a.action_requirement AND ar.listtype = 'ACRQ' AND ar.organization_id = :orgId`,
149
+ { orgId: organization_id },
150
+ )
151
+ .where('a.organization_id = :orgId', { orgId: organization_id })
152
+ .andWhere('a.id IN (:...actionIds)', { actionIds })
153
+ .getRawMany();
154
+
155
+ // Step 7: Enrich result with template field
156
+ const enrichedResult = actionResults.map((row) => {
157
+ const actionId = Number(row.id); // Ensure numeric ID match
158
+ const templates = actionIdToTemplates[actionId] || [];
159
+ const uniqueTemplates = [...new Set(templates)]; // remove duplicates
160
+
161
+ return {
162
+ ...row,
163
+ template: uniqueTemplates.join(', '),
164
+ };
165
+ });
166
+
167
+ return enrichedResult;
168
+ }
169
+
170
+ async getAction(
171
+ organization_id: number,
172
+ stage_id: number,
173
+ mapped_entity_id: number,
174
+ mapped_entity_type: string,
175
+ ) {
176
+ // Step 1: Get all action mappings for the stage
177
+ const stageActions = await this.dataSource.query(
178
+ `SELECT id, action_id FROM cr_wf_stage_action_mapping WHERE stage_id = ?`,
179
+ [stage_id],
180
+ );
181
+
182
+ if (!stageActions?.length) {
183
+ return [
184
+ {
185
+ value: '0',
186
+ label: 'Generic',
187
+ },
188
+ ];
189
+ }
190
+
191
+ const actionIds = stageActions.map((sa) => sa.action_id);
192
+
193
+ // Step 2: Fetch all actions with category details
194
+ const actions = await this.dataSource
195
+ .createQueryBuilder()
196
+ .select([
197
+ 'a.id AS action_id',
198
+ 'a.name AS action_name',
199
+ 'a.reason_code AS action_reason_code',
200
+ 'a.default_reason_code AS default_reason_code',
201
+ 'a.default_value AS default_value',
202
+ 'a.mode AS mode',
203
+ 'a.action_category AS action_category_id',
204
+ 'ac.reason_code AS category_reason_code',
205
+ 'ac.modalName AS modalName',
206
+ 'ac.logo AS logo',
207
+ 'ac.name AS action_category_name',
208
+ 'a.dependent_action_id AS dependent_action_id',
209
+ ])
210
+ .from('cr_wf_action', 'a')
211
+ .leftJoin('cr_wf_action_category', 'ac', 'ac.id = a.action_category')
212
+ .where('a.organization_id = :orgId', { orgId: organization_id })
213
+ .andWhere('a.id IN (:...actionIds)', { actionIds })
214
+ .getRawMany();
215
+
216
+ // Step 3: Fetch action_data
217
+ const actionData = await this.dataSource
218
+ .createQueryBuilder()
219
+ .select([
220
+ 'ad.action_id AS action_id',
221
+ 'ad.is_current AS is_current',
222
+ 'ad.is_mandatory AS is_mandatory',
223
+ 'ad.is_done AS is_done',
224
+ ])
225
+ .from('cr_wf_action_data', 'ad')
226
+ .where('ad.stage_id = :stageId', { stageId: stage_id })
227
+ .andWhere('ad.action_id IN (:...actionIds)', { actionIds })
228
+ .andWhere('ad.mapped_entity_id = :mapped_entity_id', { mapped_entity_id })
229
+ .andWhere('ad.mapped_entity_type = :mapped_entity_type', {
230
+ mapped_entity_type,
231
+ })
232
+ .getRawMany();
233
+
234
+ const actionIdToData = actionData.reduce((acc, row) => {
235
+ acc[row.action_id] = {
236
+ is_current: row.is_current === 'Y',
237
+ is_mandatory: row.is_mandatory === 1,
238
+ is_done: row.is_done === 1,
239
+ };
240
+ return acc;
241
+ }, {});
242
+
243
+ // Step 5: Enrich actions
244
+ const enrichedResult = actions.map((row) => {
245
+ const data = actionIdToData[row.action_id];
246
+
247
+ const reason_code =
248
+ row.action_reason_code && row.action_reason_code.trim()
249
+ ? row.action_reason_code
250
+ : row.category_reason_code;
251
+
252
+ return {
253
+ value: row.action_id,
254
+ dependent_action_id: row.dependent_action_id,
255
+ label: row.action_name,
256
+ modalName: row.modalName,
257
+ logo: row.logo,
258
+ mode: row.mode,
259
+ name: row.action_category_name,
260
+ reason_code,
261
+ default_reason_code: row.default_reason_code,
262
+ is_default: row.default_value === 1,
263
+ is_current: data?.is_current ?? false,
264
+ is_done: data?.is_done ?? false,
265
+ is_mandatory: data?.is_mandatory ?? false,
266
+ };
267
+ });
268
+
269
+ // Step 6: Add fallback option
270
+ enrichedResult.push({
271
+ value: '0',
272
+ label: 'Generic',
273
+ } as any);
274
+
275
+ return enrichedResult;
276
+ }
277
+ }