rez_core 3.1.180 → 3.1.181

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 (382) hide show
  1. package/.prettierrc +3 -3
  2. package/README.md +99 -99
  3. package/dist/module/auth/guards/role.guard.js +3 -3
  4. package/dist/module/auth/services/auth.service.js +2 -2
  5. package/dist/module/filter/repository/saved-filter.repository.js +4 -4
  6. package/dist/module/filter/service/filter-evaluator.service.js +2 -2
  7. package/dist/module/filter/service/filter.service.js +7 -7
  8. package/dist/module/integration/examples/usage.example.js +9 -9
  9. package/dist/module/integration/service/integration.service.js +1 -1
  10. package/dist/module/integration/service/wrapper.service.js +25 -25
  11. package/dist/module/listmaster/service/list-master-item.service.js +2 -2
  12. package/dist/module/listmaster/service/list-master.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 +18 -18
  16. package/dist/module/meta/service/entity-list.service.js +3 -3
  17. package/dist/module/meta/service/entity-master.service.js +3 -3
  18. package/dist/module/meta/service/entity-relation.service.js +11 -11
  19. package/dist/module/meta/service/entity-service-impl.service.js +3 -3
  20. package/dist/module/meta/service/resolver.service.js +3 -3
  21. package/dist/module/module/repository/menu.repository.js +12 -12
  22. package/dist/module/notification/service/notification.service.js +12 -12
  23. package/dist/module/user/controller/login.controller.js +18 -18
  24. package/dist/module/user/service/role.service.js +4 -4
  25. package/dist/module/user/service/user-session.service.js +2 -2
  26. package/dist/module/workflow/repository/action.repository.js +16 -16
  27. package/dist/module/workflow/repository/comm-template.repository.js +6 -6
  28. package/dist/module/workflow/repository/form-master.repository.js +2 -2
  29. package/dist/module/workflow/repository/stage-group.repository.js +23 -23
  30. package/dist/module/workflow/repository/stage-movement.repository.js +11 -11
  31. package/dist/module/workflow/repository/stage.repository.js +8 -8
  32. package/dist/module/workflow/service/action-template-mapping.service.js +10 -10
  33. package/dist/module/workflow/service/action.service.js +7 -7
  34. package/dist/module/workflow/service/entity-modification.service.js +6 -6
  35. package/dist/module/workflow/service/stage-group.service.js +5 -5
  36. package/dist/module/workflow/service/stage.service.js +2 -2
  37. package/dist/module/workflow/service/task.service.js +33 -33
  38. package/dist/module/workflow/service/workflow-list-master.service.js +15 -15
  39. package/dist/module/workflow/service/workflow-meta.service.js +50 -50
  40. package/dist/module/workflow/service/workflow.service.js +2 -2
  41. package/dist/tsconfig.build.tsbuildinfo +1 -1
  42. package/dist/utils/service/reflection-helper.service.js +2 -2
  43. package/docs/modules/event-driven-integration-design.md +91 -91
  44. package/docs/modules/integration.md +250 -250
  45. package/eslint.config.mjs +34 -34
  46. package/nest-cli.json +14 -14
  47. package/package.json +118 -118
  48. package/src/app.controller.ts +12 -12
  49. package/src/app.module.ts +49 -49
  50. package/src/app.service.ts +8 -8
  51. package/src/config/config.module.ts +18 -18
  52. package/src/config/database.config.ts +23 -23
  53. package/src/constant/global.constant.ts +67 -67
  54. package/src/core.module.ts +81 -81
  55. package/src/decorators/roles.decorator.ts +7 -7
  56. package/src/dtos/response.dto.ts +6 -6
  57. package/src/dtos/response.ts +5 -5
  58. package/src/index.ts +1 -1
  59. package/src/module/auth/auth.module.ts +49 -49
  60. package/src/module/auth/controller/auth.controller.ts +28 -28
  61. package/src/module/auth/guards/google-auth.guard.ts +9 -9
  62. package/src/module/auth/guards/jwt.guard.ts +22 -22
  63. package/src/module/auth/guards/role.guard.ts +68 -68
  64. package/src/module/auth/services/auth.service.ts +50 -50
  65. package/src/module/auth/services/jwt.service.ts +11 -11
  66. package/src/module/auth/strategies/google.strategy.ts +54 -54
  67. package/src/module/auth/strategies/jwt.strategy.ts +58 -58
  68. package/src/module/auth/strategies/local.strategy.ts +13 -13
  69. package/src/module/dashboard/controller/dashboard.controller.ts +36 -36
  70. package/src/module/dashboard/dashboard.module.ts +21 -21
  71. package/src/module/dashboard/entity/dashboard_page_data.entity.ts +27 -27
  72. package/src/module/dashboard/entity/widget_master.entity.ts +18 -18
  73. package/src/module/dashboard/repository/dashboard.repository.ts +42 -42
  74. package/src/module/dashboard/service/dashboard.service.ts +73 -73
  75. package/src/module/dev/dev.module.ts +12 -12
  76. package/src/module/dev/service/dev.service.ts +7 -7
  77. package/src/module/enterprise/controller/organization.controller.ts +36 -36
  78. package/src/module/enterprise/enterprise.module.ts +30 -30
  79. package/src/module/enterprise/entity/enterprise.entity.ts +37 -37
  80. package/src/module/enterprise/entity/organization-app-mapping.entity.ts +13 -13
  81. package/src/module/enterprise/entity/organization.entity.ts +92 -92
  82. package/src/module/enterprise/repository/enterprise.repository.ts +31 -31
  83. package/src/module/enterprise/repository/organization.repository.ts +26 -26
  84. package/src/module/enterprise/repository/school.repository.ts +281 -281
  85. package/src/module/enterprise/service/brand.service.ts +5 -5
  86. package/src/module/enterprise/service/enterprise.service.ts +16 -16
  87. package/src/module/enterprise/service/organization-app-mapping.service.ts +4 -4
  88. package/src/module/enterprise/service/organization.service.ts +145 -145
  89. package/src/module/filter/controller/filter.controller.ts +84 -84
  90. package/src/module/filter/dto/filter-request.dto.ts +38 -38
  91. package/src/module/filter/entity/saved-filter-detail.entity.ts +41 -41
  92. package/src/module/filter/entity/saved-filter-master.entity.ts +23 -23
  93. package/src/module/filter/filter.module.ts +31 -31
  94. package/src/module/filter/repository/saved-filter.repository.ts +168 -168
  95. package/src/module/filter/service/filter-evaluator.service.ts +86 -86
  96. package/src/module/filter/service/filter.service.ts +841 -841
  97. package/src/module/filter/service/saved-filter.service.ts +170 -170
  98. package/src/module/ics/controller/ics.controller.ts +21 -21
  99. package/src/module/ics/dto/ics.dto.ts +55 -55
  100. package/src/module/ics/ics.module.ts +13 -13
  101. package/src/module/ics/service/ics.service.ts +57 -57
  102. package/src/module/integration/controller/calender-event.controller.ts +31 -31
  103. package/src/module/integration/controller/integration.controller.ts +662 -662
  104. package/src/module/integration/controller/wrapper.controller.ts +37 -37
  105. package/src/module/integration/dto/create-config.dto.ts +526 -526
  106. package/src/module/integration/entity/integration-config.entity.ts +112 -112
  107. package/src/module/integration/entity/integration-entity-mapper.entity.ts +14 -14
  108. package/src/module/integration/entity/integration-source.entity.ts +17 -17
  109. package/src/module/integration/entity/user-integration.entity.ts +71 -71
  110. package/src/module/integration/examples/usage.example.ts +338 -338
  111. package/src/module/integration/factories/base.factory.ts +7 -7
  112. package/src/module/integration/factories/email.factory.ts +49 -49
  113. package/src/module/integration/factories/integration.factory.ts +121 -121
  114. package/src/module/integration/factories/sms.factory.ts +51 -51
  115. package/src/module/integration/factories/telephone.factory.ts +41 -41
  116. package/src/module/integration/factories/whatsapp.factory.ts +56 -56
  117. package/src/module/integration/integration.module.ts +110 -110
  118. package/src/module/integration/service/calendar-event.service.ts +118 -118
  119. package/src/module/integration/service/integration-entity-mapper.service.ts +17 -17
  120. package/src/module/integration/service/integration-queue.service.ts +229 -229
  121. package/src/module/integration/service/integration.service.ts +2572 -2572
  122. package/src/module/integration/service/oauth.service.ts +224 -224
  123. package/src/module/integration/service/wrapper.service.ts +457 -457
  124. package/src/module/integration/strategies/email/gmail-api.strategy.ts +280 -280
  125. package/src/module/integration/strategies/email/outlook-api.strategy.ts +44 -44
  126. package/src/module/integration/strategies/email/outlook.strategy.ts +64 -64
  127. package/src/module/integration/strategies/email/sendgrid-api.strategy.ts +260 -260
  128. package/src/module/integration/strategies/integration.strategy.ts +97 -97
  129. package/src/module/integration/strategies/sms/gupshup-sms.strategy.ts +146 -146
  130. package/src/module/integration/strategies/sms/msg91-sms.strategy.ts +164 -164
  131. package/src/module/integration/strategies/sms/tubelight-sms.strategy.ts +163 -163
  132. package/src/module/integration/strategies/telephone/ozonetel-voice.strategy.ts +238 -238
  133. package/src/module/integration/strategies/telephone/tubelight-voice.strategy.ts +210 -210
  134. package/src/module/integration/strategies/whatsapp/gupshup-whatsapp.strategy.ts +359 -359
  135. package/src/module/integration/strategies/whatsapp/tubelight-whatsapp.strategy.ts +372 -372
  136. package/src/module/integration/strategies/whatsapp/whatsapp-cloud.strategy.ts +403 -403
  137. package/src/module/integration/strategies/whatsapp/whatsapp.strategy.ts +57 -57
  138. package/src/module/layout/controller/layout.controller.ts +47 -47
  139. package/src/module/layout/entity/header-items.entity.ts +28 -28
  140. package/src/module/layout/entity/header-section.entity.ts +19 -19
  141. package/src/module/layout/layout.module.ts +21 -21
  142. package/src/module/layout/repository/header-items.repository.ts +18 -18
  143. package/src/module/layout/repository/header-section.repository.ts +22 -22
  144. package/src/module/layout/service/header-section.service.ts +25 -25
  145. package/src/module/layout_preference/controller/layout_preference.controller.ts +47 -47
  146. package/src/module/layout_preference/entity/layout_preference.entity.ts +28 -28
  147. package/src/module/layout_preference/layout_preference.module.ts +18 -18
  148. package/src/module/layout_preference/repository/layout_preference.repository.ts +30 -30
  149. package/src/module/layout_preference/service/layout_preference.service.ts +172 -172
  150. package/src/module/lead/controller/lead.controller.ts +30 -30
  151. package/src/module/lead/lead.module.ts +14 -14
  152. package/src/module/lead/repository/lead.repository.ts +41 -41
  153. package/src/module/lead/service/lead.service.ts +54 -54
  154. package/src/module/listmaster/controller/list-master.controller.ts +187 -187
  155. package/src/module/listmaster/entity/list-master-items.entity.ts +41 -41
  156. package/src/module/listmaster/entity/list-master.entity.ts +32 -32
  157. package/src/module/listmaster/listmaster.module.ts +44 -44
  158. package/src/module/listmaster/repository/list-master-items.repository.ts +169 -169
  159. package/src/module/listmaster/repository/list-master.repository.ts +46 -46
  160. package/src/module/listmaster/service/list-master-engine.ts +19 -19
  161. package/src/module/listmaster/service/list-master-extension.interface.ts +4 -4
  162. package/src/module/listmaster/service/list-master-item.service.ts +292 -292
  163. package/src/module/listmaster/service/list-master-registry.ts +15 -15
  164. package/src/module/listmaster/service/list-master.service.ts +424 -424
  165. package/src/module/mapper/controller/field-mapper.controller.ts +69 -69
  166. package/src/module/mapper/controller/mapper.controller.ts +14 -14
  167. package/src/module/mapper/dto/field-mapper.dto.ts +14 -14
  168. package/src/module/mapper/entity/field-lovs.entity.ts +19 -19
  169. package/src/module/mapper/entity/field-mapper.entity.ts +53 -53
  170. package/src/module/mapper/entity/mapper.entity.ts +16 -16
  171. package/src/module/mapper/mapper.module.ts +34 -34
  172. package/src/module/mapper/repository/field-lovs.repository.ts +35 -35
  173. package/src/module/mapper/repository/field-mapper.repository.ts +42 -42
  174. package/src/module/mapper/repository/mapper.repository.ts +15 -15
  175. package/src/module/mapper/service/field-mapper.service.ts +223 -223
  176. package/src/module/mapper/service/mapper.service.ts +72 -72
  177. package/src/module/master/controller/master.controller.ts +74 -74
  178. package/src/module/master/service/master.service.ts +483 -483
  179. package/src/module/meta/controller/app-master.controller.ts +38 -38
  180. package/src/module/meta/controller/attribute-master.controller.ts +66 -66
  181. package/src/module/meta/controller/entity-dynamic.controller.ts +125 -125
  182. package/src/module/meta/controller/entity-master.controller.ts +28 -28
  183. package/src/module/meta/controller/entity-relation.controller.ts +36 -36
  184. package/src/module/meta/controller/entity.controller.ts +385 -385
  185. package/src/module/meta/controller/media.controller.ts +82 -82
  186. package/src/module/meta/controller/meta.controller.ts +96 -96
  187. package/src/module/meta/controller/view-master.controller.ts +86 -86
  188. package/src/module/meta/dto/entity-list-data.dto.ts +6 -6
  189. package/src/module/meta/dto/entity-tab.dto.ts +4 -4
  190. package/src/module/meta/dto/entity-table.dto.ts +9 -9
  191. package/src/module/meta/entity/app-master.entity.ts +34 -34
  192. package/src/module/meta/entity/attribute-master.entity.ts +87 -87
  193. package/src/module/meta/entity/base-entity.entity.ts +75 -75
  194. package/src/module/meta/entity/entity-master.entity.ts +78 -78
  195. package/src/module/meta/entity/entity-relation-data.entity.ts +29 -29
  196. package/src/module/meta/entity/entity-relation.entity.ts +23 -23
  197. package/src/module/meta/entity/entity-table-column.entity.ts +61 -61
  198. package/src/module/meta/entity/entity-table.entity.ts +50 -50
  199. package/src/module/meta/entity/media-data.entity.ts +32 -32
  200. package/src/module/meta/entity/preference.entity.ts +62 -62
  201. package/src/module/meta/entity/view-master.entity.ts +41 -41
  202. package/src/module/meta/entity.module.ts +156 -156
  203. package/src/module/meta/repository/app-master.repository.ts +20 -20
  204. package/src/module/meta/repository/attribute-master.repository.ts +110 -110
  205. package/src/module/meta/repository/entity-master.repository.ts +69 -69
  206. package/src/module/meta/repository/entity-table-column.repository.ts +39 -39
  207. package/src/module/meta/repository/entity-table.repository.ts +53 -53
  208. package/src/module/meta/repository/media-data.repository.ts +50 -50
  209. package/src/module/meta/repository/preference.repository.ts +20 -20
  210. package/src/module/meta/repository/user-app-mapping.repository.ts +28 -28
  211. package/src/module/meta/repository/view-master.repository.ts +42 -42
  212. package/src/module/meta/service/app-master.service.ts +37 -37
  213. package/src/module/meta/service/attribute-master.service.ts +117 -117
  214. package/src/module/meta/service/common.service.ts +9 -9
  215. package/src/module/meta/service/entity-dynamic.service.ts +762 -762
  216. package/src/module/meta/service/entity-list.service.ts +205 -205
  217. package/src/module/meta/service/entity-master.service.ts +164 -164
  218. package/src/module/meta/service/entity-realation-data.service.ts +9 -9
  219. package/src/module/meta/service/entity-relation.service.ts +69 -69
  220. package/src/module/meta/service/entity-service-impl.service.ts +524 -524
  221. package/src/module/meta/service/entity-table-column.service.ts +39 -39
  222. package/src/module/meta/service/entity-table.service.ts +150 -150
  223. package/src/module/meta/service/entity-validation.service.ts +185 -185
  224. package/src/module/meta/service/entity.service.ts +67 -67
  225. package/src/module/meta/service/field-group.service.ts +103 -103
  226. package/src/module/meta/service/media-data.service.ts +149 -149
  227. package/src/module/meta/service/populate-meta.service.ts +173 -173
  228. package/src/module/meta/service/preference.service.ts +16 -16
  229. package/src/module/meta/service/resolver.service.ts +240 -240
  230. package/src/module/meta/service/section-master.service.ts +104 -104
  231. package/src/module/meta/service/update-form-json.service.ts +22 -22
  232. package/src/module/meta/service/user-app-mapping.service.ts +17 -17
  233. package/src/module/meta/service/view-master.service.ts +111 -111
  234. package/src/module/module/controller/menu.controller.ts +15 -15
  235. package/src/module/module/controller/module-access.controller.ts +132 -132
  236. package/src/module/module/entity/menu.entity.ts +43 -43
  237. package/src/module/module/entity/module-access.entity.ts +25 -25
  238. package/src/module/module/entity/module-action.entity.ts +17 -17
  239. package/src/module/module/entity/module.entity.ts +52 -52
  240. package/src/module/module/module.module.ts +42 -42
  241. package/src/module/module/repository/menu.repository.ts +184 -184
  242. package/src/module/module/repository/module-access.repository.ts +331 -331
  243. package/src/module/module/service/menu.service.ts +82 -82
  244. package/src/module/module/service/module-access.service.ts +209 -209
  245. package/src/module/notification/controller/notification.controller.ts +58 -58
  246. package/src/module/notification/controller/otp.controller.ts +117 -117
  247. package/src/module/notification/entity/notification.entity.ts +26 -26
  248. package/src/module/notification/entity/otp.entity.ts +28 -28
  249. package/src/module/notification/firebase-admin.config.ts +22 -22
  250. package/src/module/notification/notification.module.ts +69 -69
  251. package/src/module/notification/repository/otp.repository.ts +27 -27
  252. package/src/module/notification/service/email.service.ts +127 -127
  253. package/src/module/notification/service/notification.service.ts +138 -138
  254. package/src/module/notification/service/otp.service.ts +125 -125
  255. package/src/module/third-party-module/entity/third-party-api-registry.entity.ts +52 -52
  256. package/src/module/third-party-module/repository/third-party-api-registry.repository.ts +20 -20
  257. package/src/module/third-party-module/service/api-registry.service.ts +13 -13
  258. package/src/module/third-party-module/third-party.module.ts +12 -12
  259. package/src/module/user/controller/login.controller.ts +197 -197
  260. package/src/module/user/controller/user.controller.ts +40 -40
  261. package/src/module/user/dto/create-user.dto.ts +62 -62
  262. package/src/module/user/dto/update-user.dto.ts +4 -4
  263. package/src/module/user/entity/role.entity.ts +33 -33
  264. package/src/module/user/entity/user-role-mapping.entity.ts +38 -38
  265. package/src/module/user/entity/user-session.entity.ts +61 -61
  266. package/src/module/user/entity/user.entity.ts +68 -68
  267. package/src/module/user/repository/role.repository.ts +96 -96
  268. package/src/module/user/repository/user-role-mapping.repository.ts +126 -126
  269. package/src/module/user/repository/user.repository.ts +50 -50
  270. package/src/module/user/repository/userSession.repository.ts +33 -33
  271. package/src/module/user/service/login.service.ts +280 -280
  272. package/src/module/user/service/role.service.ts +189 -189
  273. package/src/module/user/service/user-role-mapping.service.ts +98 -98
  274. package/src/module/user/service/user-session.service.ts +168 -168
  275. package/src/module/user/service/user.service.ts +353 -353
  276. package/src/module/user/user.module.ts +65 -65
  277. package/src/module/workflow/controller/action-category.controller.ts +54 -54
  278. package/src/module/workflow/controller/action-resource-mapping.controller.ts +23 -23
  279. package/src/module/workflow/controller/action-template-mapping.controller.ts +35 -35
  280. package/src/module/workflow/controller/action.controller.ts +95 -95
  281. package/src/module/workflow/controller/activity-log.controller.ts +55 -55
  282. package/src/module/workflow/controller/comm-template.controller.ts +34 -34
  283. package/src/module/workflow/controller/entity-modification.controller.ts +35 -35
  284. package/src/module/workflow/controller/form-master.controller.ts +43 -43
  285. package/src/module/workflow/controller/stage-group.controller.ts +48 -48
  286. package/src/module/workflow/controller/stage.controller.ts +50 -50
  287. package/src/module/workflow/controller/task.controller.ts +77 -77
  288. package/src/module/workflow/controller/workflow-list-master.controller.ts +44 -44
  289. package/src/module/workflow/controller/workflow-meta.controller.ts +80 -80
  290. package/src/module/workflow/controller/workflow.controller.ts +67 -67
  291. package/src/module/workflow/entity/action-category.entity.ts +38 -38
  292. package/src/module/workflow/entity/action-data.entity.ts +55 -55
  293. package/src/module/workflow/entity/action-resources-mapping.entity.ts +29 -29
  294. package/src/module/workflow/entity/action-template-mapping.entity.ts +17 -17
  295. package/src/module/workflow/entity/action.entity.ts +50 -50
  296. package/src/module/workflow/entity/activity-log.entity.ts +43 -43
  297. package/src/module/workflow/entity/comm-template.entity.ts +43 -43
  298. package/src/module/workflow/entity/entity-modification.entity.ts +38 -38
  299. package/src/module/workflow/entity/form.entity.ts +25 -25
  300. package/src/module/workflow/entity/stage-action-mapping.entity.ts +17 -17
  301. package/src/module/workflow/entity/stage-group.entity.ts +23 -23
  302. package/src/module/workflow/entity/stage-movement-data.entity.ts +38 -38
  303. package/src/module/workflow/entity/stage.entity.ts +20 -20
  304. package/src/module/workflow/entity/task-data.entity.ts +88 -88
  305. package/src/module/workflow/entity/template-attach-mapper.entity.ts +30 -30
  306. package/src/module/workflow/entity/workflow-data.entity.ts +11 -11
  307. package/src/module/workflow/entity/workflow-level-mapping.entity.ts +18 -18
  308. package/src/module/workflow/entity/workflow.entity.ts +20 -20
  309. package/src/module/workflow/repository/action-category.repository.ts +79 -79
  310. package/src/module/workflow/repository/action-data.repository.ts +219 -219
  311. package/src/module/workflow/repository/action.repository.ts +277 -277
  312. package/src/module/workflow/repository/activity-log.repository.ts +121 -121
  313. package/src/module/workflow/repository/comm-template.repository.ts +142 -142
  314. package/src/module/workflow/repository/form-master.repository.ts +59 -59
  315. package/src/module/workflow/repository/stage-group.repository.ts +176 -176
  316. package/src/module/workflow/repository/stage-movement.repository.ts +227 -227
  317. package/src/module/workflow/repository/stage.repository.ts +172 -172
  318. package/src/module/workflow/repository/task.repository.ts +117 -117
  319. package/src/module/workflow/repository/workflow.repository.ts +42 -42
  320. package/src/module/workflow/service/action-category.service.ts +33 -33
  321. package/src/module/workflow/service/action-data.service.ts +62 -62
  322. package/src/module/workflow/service/action-resources-mapping.service.ts +10 -10
  323. package/src/module/workflow/service/action-template-mapping.service.ts +55 -55
  324. package/src/module/workflow/service/action.service.ts +263 -263
  325. package/src/module/workflow/service/activity-log.service.ts +107 -107
  326. package/src/module/workflow/service/comm-template.service.ts +121 -121
  327. package/src/module/workflow/service/entity-modification.service.ts +67 -67
  328. package/src/module/workflow/service/form-master.service.ts +35 -35
  329. package/src/module/workflow/service/populate-workflow.service.ts +303 -303
  330. package/src/module/workflow/service/stage-action-mapping.service.ts +5 -5
  331. package/src/module/workflow/service/stage-group.service.ts +300 -300
  332. package/src/module/workflow/service/stage.service.ts +199 -199
  333. package/src/module/workflow/service/task.service.ts +531 -531
  334. package/src/module/workflow/service/workflow-list-master.service.ts +60 -60
  335. package/src/module/workflow/service/workflow-meta.service.ts +581 -581
  336. package/src/module/workflow/service/workflow.service.ts +205 -205
  337. package/src/module/workflow/workflow.module.ts +172 -172
  338. package/src/module/workflow-automation/controller/workflow-automation.controller.ts +21 -21
  339. package/src/module/workflow-automation/entity/workflow-automation-action.entity.ts +26 -26
  340. package/src/module/workflow-automation/entity/workflow-automation.entity.ts +35 -35
  341. package/src/module/workflow-automation/interface/action.decorator.ts +7 -7
  342. package/src/module/workflow-automation/interface/action.interface.ts +5 -5
  343. package/src/module/workflow-automation/service/action-registery.service.ts +35 -35
  344. package/src/module/workflow-automation/service/workflow-automation-engine.service.ts +214 -214
  345. package/src/module/workflow-automation/service/workflow-automation.service.ts +345 -345
  346. package/src/module/workflow-automation/workflow-automation.module.ts +34 -34
  347. package/src/resources/dev.properties.yaml +30 -30
  348. package/src/resources/local.properties.yaml +27 -27
  349. package/src/resources/properties.module.ts +12 -12
  350. package/src/resources/properties.yaml.ts +11 -11
  351. package/src/resources/uat.properties.yaml +15 -15
  352. package/src/utils/dto/excel-data.dto.ts +14 -14
  353. package/src/utils/dto/excelsheet-data.dto.ts +5 -5
  354. package/src/utils/service/base64util.service.ts +18 -18
  355. package/src/utils/service/clockIDGenUtil.service.ts +21 -21
  356. package/src/utils/service/codeGenerator.service.ts +22 -22
  357. package/src/utils/service/dateUtil.service.ts +17 -17
  358. package/src/utils/service/encryptUtil.service.ts +97 -97
  359. package/src/utils/service/excel-helper.service.ts +72 -72
  360. package/src/utils/service/excelUtil.service.ts +15 -15
  361. package/src/utils/service/file-util.service.ts +11 -11
  362. package/src/utils/service/json-util.service.ts +23 -23
  363. package/src/utils/service/loggingUtil.service.ts +34 -34
  364. package/src/utils/service/reflection-helper.service.ts +62 -62
  365. package/src/utils/service/wbsCodeGen.service.ts +8 -8
  366. package/src/utils/utils.module.ts +25 -25
  367. package/tsconfig.build.json +4 -4
  368. package/tsconfig.json +24 -24
  369. package/.claude/settings.local.json +0 -26
  370. package/.idea/250218_nodejs_core.iml +0 -9
  371. package/.idea/codeStyles/Project.xml +0 -59
  372. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  373. package/.idea/copilot.data.migration.agent.xml +0 -6
  374. package/.idea/copilot.data.migration.ask.xml +0 -6
  375. package/.idea/copilot.data.migration.ask2agent.xml +0 -6
  376. package/.idea/copilot.data.migration.edit.xml +0 -6
  377. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  378. package/.idea/misc.xml +0 -6
  379. package/.idea/modules.xml +0 -8
  380. package/.idea/prettier.xml +0 -6
  381. package/.idea/vcs.xml +0 -6
  382. package/server.log +0 -850
@@ -1,82 +1,82 @@
1
- import { Injectable } from '@nestjs/common';
2
- import { MenuRepository } from '../repository/menu.repository';
3
- import { MenuData } from '../entity/menu.entity';
4
- import { DataSource } from 'typeorm';
5
- import { UserRoleMapping } from 'src/module/user/entity/user-role-mapping.entity';
6
-
7
- @Injectable()
8
- export class MenuService {
9
- constructor(
10
- private readonly menuRepository: MenuRepository,
11
- private readonly datasource: DataSource,
12
- ) {}
13
-
14
- /**
15
- * Fetch and construct menu hierarchy for a given user.
16
- */
17
- async getUserMenu(
18
- userId: number,
19
- appcode: string,
20
- levelType: 'ORG' | 'SCH',
21
- levelId: number,
22
- ): Promise<{ menu: any[] }> {
23
- // Step 1: Resolve roles (with fallback logic inside)
24
- const roleCodes = await this.menuRepository.resolveUserRoles(
25
- userId,
26
- appcode,
27
- levelType,
28
- levelId,
29
- );
30
- if (!roleCodes.length) return { menu: [] };
31
-
32
- // Step 2: Get accessible modules
33
- const moduleCodes = await this.menuRepository.getAccessibleModules(
34
- roleCodes,
35
- appcode,
36
- );
37
- if (!moduleCodes.length) return { menu: [] };
38
-
39
- // Step 3: Get menu items for the given level type
40
- const menuItems = await this.menuRepository.getMenuItems(
41
- moduleCodes,
42
- appcode,
43
- levelType,
44
- );
45
-
46
- // Step 4: Build hierarchy
47
- const menuTree = this.buildMenuHierarchy(menuItems);
48
-
49
- return { menu: menuTree };
50
- }
51
-
52
- /**
53
- * Converts a flat list of menu items into a hierarchical tree.
54
- */
55
- private buildMenuHierarchy(menuItems: MenuData[]): any[] {
56
- const menuMap = new Map<string, any>(); // Use module_code as the key
57
- const rootMenu: any[] = [];
58
-
59
- // Initialize menu items in the map
60
- menuItems.forEach((menu) => {
61
- menuMap.set(menu.wbs_code, { ...menu, submenu: [] });
62
- });
63
-
64
- // Build the hierarchy based on WBS code
65
- menuItems.forEach((menu) => {
66
- const parentWbs = menu.wbs_code.split('.').slice(0, -1).join('.'); // Get parent WBS code
67
-
68
- if (parentWbs && menuMap.has(parentWbs)) {
69
- menuMap.get(parentWbs).submenu.push(menuMap.get(menu.wbs_code));
70
- } else {
71
- rootMenu.push(menuMap.get(menu.wbs_code));
72
- }
73
- });
74
-
75
- return rootMenu;
76
- }
77
-
78
- // get user roles
79
- async getUserRoles(userId: number, appcode: string): Promise<any> {
80
- return this.menuRepository.getUserRoles(userId, appcode);
81
- }
82
- }
1
+ import { Injectable } from '@nestjs/common';
2
+ import { MenuRepository } from '../repository/menu.repository';
3
+ import { MenuData } from '../entity/menu.entity';
4
+ import { DataSource } from 'typeorm';
5
+ import { UserRoleMapping } from 'src/module/user/entity/user-role-mapping.entity';
6
+
7
+ @Injectable()
8
+ export class MenuService {
9
+ constructor(
10
+ private readonly menuRepository: MenuRepository,
11
+ private readonly datasource: DataSource,
12
+ ) {}
13
+
14
+ /**
15
+ * Fetch and construct menu hierarchy for a given user.
16
+ */
17
+ async getUserMenu(
18
+ userId: number,
19
+ appcode: string,
20
+ levelType: 'ORG' | 'SCH',
21
+ levelId: number,
22
+ ): Promise<{ menu: any[] }> {
23
+ // Step 1: Resolve roles (with fallback logic inside)
24
+ const roleCodes = await this.menuRepository.resolveUserRoles(
25
+ userId,
26
+ appcode,
27
+ levelType,
28
+ levelId,
29
+ );
30
+ if (!roleCodes.length) return { menu: [] };
31
+
32
+ // Step 2: Get accessible modules
33
+ const moduleCodes = await this.menuRepository.getAccessibleModules(
34
+ roleCodes,
35
+ appcode,
36
+ );
37
+ if (!moduleCodes.length) return { menu: [] };
38
+
39
+ // Step 3: Get menu items for the given level type
40
+ const menuItems = await this.menuRepository.getMenuItems(
41
+ moduleCodes,
42
+ appcode,
43
+ levelType,
44
+ );
45
+
46
+ // Step 4: Build hierarchy
47
+ const menuTree = this.buildMenuHierarchy(menuItems);
48
+
49
+ return { menu: menuTree };
50
+ }
51
+
52
+ /**
53
+ * Converts a flat list of menu items into a hierarchical tree.
54
+ */
55
+ private buildMenuHierarchy(menuItems: MenuData[]): any[] {
56
+ const menuMap = new Map<string, any>(); // Use module_code as the key
57
+ const rootMenu: any[] = [];
58
+
59
+ // Initialize menu items in the map
60
+ menuItems.forEach((menu) => {
61
+ menuMap.set(menu.wbs_code, { ...menu, submenu: [] });
62
+ });
63
+
64
+ // Build the hierarchy based on WBS code
65
+ menuItems.forEach((menu) => {
66
+ const parentWbs = menu.wbs_code.split('.').slice(0, -1).join('.'); // Get parent WBS code
67
+
68
+ if (parentWbs && menuMap.has(parentWbs)) {
69
+ menuMap.get(parentWbs).submenu.push(menuMap.get(menu.wbs_code));
70
+ } else {
71
+ rootMenu.push(menuMap.get(menu.wbs_code));
72
+ }
73
+ });
74
+
75
+ return rootMenu;
76
+ }
77
+
78
+ // get user roles
79
+ async getUserRoles(userId: number, appcode: string): Promise<any> {
80
+ return this.menuRepository.getUserRoles(userId, appcode);
81
+ }
82
+ }
@@ -1,209 +1,209 @@
1
- import { BadRequestException, Inject, Injectable } from '@nestjs/common';
2
- import { ModuleAccessRepository } from '../repository/module-access.repository';
3
- import { RoleRepository } from 'src/module/user/repository/role.repository';
4
- import { RoleService } from '../../user/service/role.service';
5
- import {
6
- ENTITYTYPE_ROLE,
7
- STATUS_INACTIVE,
8
- } from '../../../constant/global.constant';
9
- import { Role } from '../../user/entity/role.entity';
10
- import { DataSource, EntityManager } from 'typeorm';
11
- import { UserData } from 'src/module/user/entity/user.entity';
12
- import { MenuRepository } from '../repository/menu.repository';
13
- import { ListMasterService } from 'src/module/listmaster/service/list-master.service';
14
-
15
- @Injectable()
16
- export class ModuleAccessService {
17
- constructor(
18
- private readonly moduleAccessRepository: ModuleAccessRepository,
19
- private readonly menuRepository: MenuRepository,
20
- private readonly dataSource: DataSource,
21
- @Inject('ListMasterService')
22
- private readonly listMasterService: ListMasterService,
23
- ) {}
24
-
25
- async getModules({ appcode }: { appcode: string }) {
26
- return this.moduleAccessRepository.getModules({
27
- appcode,
28
- });
29
- }
30
-
31
- async getRoles({
32
- appcode,
33
- level_type,
34
- level_id,
35
- organization_id,
36
- include,
37
- }: {
38
- appcode: string;
39
- level_type?: string;
40
- level_id?: number;
41
- organization_id?: number;
42
- include?: boolean;
43
- }) {
44
- const query = this.dataSource
45
- .createQueryBuilder()
46
- .select('*')
47
- .from('sso_role', 'role')
48
- .where('role.appcode = :appcode', { appcode });
49
-
50
- // Only add this condition if `include` is false (exclude factory roles)
51
- if (!include) {
52
- query.andWhere('(role.is_factory IS NULL OR role.is_factory != 1)');
53
- }
54
-
55
- if (level_type) {
56
- query.andWhere('role.level_type = :level_type', { level_type });
57
- }
58
-
59
- if (organization_id) {
60
- query.andWhere('role.organization_id = :organization_id', {
61
- organization_id,
62
- });
63
- }
64
-
65
- if (level_id !== undefined) {
66
- query.andWhere('role.level_id = :level_id', {
67
- level_id: String(level_id),
68
- });
69
- }
70
-
71
- const roles = await query.getRawMany();
72
-
73
- return roles.map((role) => ({
74
- label: role.name,
75
- value: role.id,
76
- }));
77
- }
78
-
79
- async getAccessListing(
80
- roleIds: number[],
81
- appcode: string,
82
- levelType: string,
83
- level_id?: number,
84
- ) {
85
- return this.moduleAccessRepository.getAccessListing(
86
- roleIds,
87
- appcode,
88
- levelType,
89
- level_id,
90
- );
91
- }
92
-
93
- async getMenuListing(
94
- mainModIds: string[],
95
- appcode: string,
96
- levelType: string,
97
- ): Promise<Record<string, any[]>> {
98
- if (!appcode) {
99
- throw new BadRequestException('Appcode is required');
100
- }
101
-
102
- return this.moduleAccessRepository.getAllModulesByLevel(
103
- mainModIds,
104
- appcode,
105
- levelType,
106
- );
107
- }
108
-
109
- async updateModuleAccess(
110
- moduleAccessData: {
111
- role_code: string;
112
- module_code: string;
113
- action_type: string;
114
- access_flag: number;
115
- appcode: string;
116
- level_type: string;
117
- }[],
118
- ): Promise<{ success: boolean; msg: string }> {
119
- if (!moduleAccessData || moduleAccessData.length === 0) {
120
- return { success: false, msg: 'No data provided' };
121
- }
122
-
123
- const result =
124
- await this.moduleAccessRepository.updateModuleAccess(moduleAccessData);
125
-
126
- if (result) {
127
- return { success: true, msg: 'Module access updated successfully' };
128
- } else {
129
- return { success: false, msg: 'Failed to update module access' };
130
- }
131
- }
132
-
133
- // src/module/module-access/service/module-access.service.ts
134
-
135
- async getModuleUIConfig(moduleCode: string, roleIds: number[]) {
136
- return this.moduleAccessRepository.getModuleUIConfig(moduleCode, roleIds);
137
- }
138
-
139
- async getUserPermissions({
140
- userId,
141
- appcode,
142
- level_type,
143
- level_id,
144
- organization_id,
145
- }: {
146
- userId: number;
147
- appcode: string;
148
- level_type: string;
149
- level_id: number;
150
- organization_id: number;
151
- }) {
152
- console.log(
153
- 'step 1',
154
- userId,
155
- appcode,
156
- level_type,
157
- level_id,
158
- organization_id,
159
- );
160
-
161
- // Step 1: Resolve roles
162
- const roleCodes = await this.menuRepository.resolveUserRoles(
163
- userId,
164
- appcode,
165
- level_type,
166
- level_id,
167
- );
168
-
169
- console.log(roleCodes, 'roleCodes');
170
-
171
- if (!roleCodes || roleCodes.length === 0) {
172
- return [];
173
- }
174
-
175
- const roleIds = roleCodes.map(Number);
176
- console.log('step 2', roleIds);
177
- // Step 2: Get full permissions
178
- const allPermissions =
179
- await this.moduleAccessRepository.getModuleAccessByRoles(
180
- roleIds,
181
- appcode,
182
- );
183
- console.log('step 2', allPermissions);
184
-
185
- // Step 3: If level_type is SCH, check school status using raw query
186
- if (level_type === 'SCH') {
187
- const result = await this.dataSource.query(
188
- `SELECT * FROM eth_school_profile WHERE id = ${level_id}`,
189
- [level_id],
190
- );
191
-
192
- const school = result?.[0];
193
- console.log('step 3', school);
194
-
195
- const resolveStatus = await this.listMasterService.getResolvedListCode(
196
- STATUS_INACTIVE,
197
- organization_id || 0,
198
- );
199
-
200
- if (!school || school.status == resolveStatus.id) {
201
- // Return only VIEW permissions
202
- return allPermissions.filter((perm) => perm.action === 'VIEW');
203
- }
204
- }
205
- console.log('step 4', allPermissions);
206
- // Step 4: Return all permissions normally
207
- return allPermissions;
208
- }
209
- }
1
+ import { BadRequestException, Inject, Injectable } from '@nestjs/common';
2
+ import { ModuleAccessRepository } from '../repository/module-access.repository';
3
+ import { RoleRepository } from 'src/module/user/repository/role.repository';
4
+ import { RoleService } from '../../user/service/role.service';
5
+ import {
6
+ ENTITYTYPE_ROLE,
7
+ STATUS_INACTIVE,
8
+ } from '../../../constant/global.constant';
9
+ import { Role } from '../../user/entity/role.entity';
10
+ import { DataSource, EntityManager } from 'typeorm';
11
+ import { UserData } from 'src/module/user/entity/user.entity';
12
+ import { MenuRepository } from '../repository/menu.repository';
13
+ import { ListMasterService } from 'src/module/listmaster/service/list-master.service';
14
+
15
+ @Injectable()
16
+ export class ModuleAccessService {
17
+ constructor(
18
+ private readonly moduleAccessRepository: ModuleAccessRepository,
19
+ private readonly menuRepository: MenuRepository,
20
+ private readonly dataSource: DataSource,
21
+ @Inject('ListMasterService')
22
+ private readonly listMasterService: ListMasterService,
23
+ ) {}
24
+
25
+ async getModules({ appcode }: { appcode: string }) {
26
+ return this.moduleAccessRepository.getModules({
27
+ appcode,
28
+ });
29
+ }
30
+
31
+ async getRoles({
32
+ appcode,
33
+ level_type,
34
+ level_id,
35
+ organization_id,
36
+ include,
37
+ }: {
38
+ appcode: string;
39
+ level_type?: string;
40
+ level_id?: number;
41
+ organization_id?: number;
42
+ include?: boolean;
43
+ }) {
44
+ const query = this.dataSource
45
+ .createQueryBuilder()
46
+ .select('*')
47
+ .from('sso_role', 'role')
48
+ .where('role.appcode = :appcode', { appcode });
49
+
50
+ // Only add this condition if `include` is false (exclude factory roles)
51
+ if (!include) {
52
+ query.andWhere('(role.is_factory IS NULL OR role.is_factory != 1)');
53
+ }
54
+
55
+ if (level_type) {
56
+ query.andWhere('role.level_type = :level_type', { level_type });
57
+ }
58
+
59
+ if (organization_id) {
60
+ query.andWhere('role.organization_id = :organization_id', {
61
+ organization_id,
62
+ });
63
+ }
64
+
65
+ if (level_id !== undefined) {
66
+ query.andWhere('role.level_id = :level_id', {
67
+ level_id: String(level_id),
68
+ });
69
+ }
70
+
71
+ const roles = await query.getRawMany();
72
+
73
+ return roles.map((role) => ({
74
+ label: role.name,
75
+ value: role.id,
76
+ }));
77
+ }
78
+
79
+ async getAccessListing(
80
+ roleIds: number[],
81
+ appcode: string,
82
+ levelType: string,
83
+ level_id?: number,
84
+ ) {
85
+ return this.moduleAccessRepository.getAccessListing(
86
+ roleIds,
87
+ appcode,
88
+ levelType,
89
+ level_id,
90
+ );
91
+ }
92
+
93
+ async getMenuListing(
94
+ mainModIds: string[],
95
+ appcode: string,
96
+ levelType: string,
97
+ ): Promise<Record<string, any[]>> {
98
+ if (!appcode) {
99
+ throw new BadRequestException('Appcode is required');
100
+ }
101
+
102
+ return this.moduleAccessRepository.getAllModulesByLevel(
103
+ mainModIds,
104
+ appcode,
105
+ levelType,
106
+ );
107
+ }
108
+
109
+ async updateModuleAccess(
110
+ moduleAccessData: {
111
+ role_code: string;
112
+ module_code: string;
113
+ action_type: string;
114
+ access_flag: number;
115
+ appcode: string;
116
+ level_type: string;
117
+ }[],
118
+ ): Promise<{ success: boolean; msg: string }> {
119
+ if (!moduleAccessData || moduleAccessData.length === 0) {
120
+ return { success: false, msg: 'No data provided' };
121
+ }
122
+
123
+ const result =
124
+ await this.moduleAccessRepository.updateModuleAccess(moduleAccessData);
125
+
126
+ if (result) {
127
+ return { success: true, msg: 'Module access updated successfully' };
128
+ } else {
129
+ return { success: false, msg: 'Failed to update module access' };
130
+ }
131
+ }
132
+
133
+ // src/module/module-access/service/module-access.service.ts
134
+
135
+ async getModuleUIConfig(moduleCode: string, roleIds: number[]) {
136
+ return this.moduleAccessRepository.getModuleUIConfig(moduleCode, roleIds);
137
+ }
138
+
139
+ async getUserPermissions({
140
+ userId,
141
+ appcode,
142
+ level_type,
143
+ level_id,
144
+ organization_id,
145
+ }: {
146
+ userId: number;
147
+ appcode: string;
148
+ level_type: string;
149
+ level_id: number;
150
+ organization_id: number;
151
+ }) {
152
+ console.log(
153
+ 'step 1',
154
+ userId,
155
+ appcode,
156
+ level_type,
157
+ level_id,
158
+ organization_id,
159
+ );
160
+
161
+ // Step 1: Resolve roles
162
+ const roleCodes = await this.menuRepository.resolveUserRoles(
163
+ userId,
164
+ appcode,
165
+ level_type,
166
+ level_id,
167
+ );
168
+
169
+ console.log(roleCodes, 'roleCodes');
170
+
171
+ if (!roleCodes || roleCodes.length === 0) {
172
+ return [];
173
+ }
174
+
175
+ const roleIds = roleCodes.map(Number);
176
+ console.log('step 2', roleIds);
177
+ // Step 2: Get full permissions
178
+ const allPermissions =
179
+ await this.moduleAccessRepository.getModuleAccessByRoles(
180
+ roleIds,
181
+ appcode,
182
+ );
183
+ console.log('step 2', allPermissions);
184
+
185
+ // Step 3: If level_type is SCH, check school status using raw query
186
+ if (level_type === 'SCH') {
187
+ const result = await this.dataSource.query(
188
+ `SELECT * FROM eth_school_profile WHERE id = ${level_id}`,
189
+ [level_id],
190
+ );
191
+
192
+ const school = result?.[0];
193
+ console.log('step 3', school);
194
+
195
+ const resolveStatus = await this.listMasterService.getResolvedListCode(
196
+ STATUS_INACTIVE,
197
+ organization_id || 0,
198
+ );
199
+
200
+ if (!school || school.status == resolveStatus.id) {
201
+ // Return only VIEW permissions
202
+ return allPermissions.filter((perm) => perm.action === 'VIEW');
203
+ }
204
+ }
205
+ console.log('step 4', allPermissions);
206
+ // Step 4: Return all permissions normally
207
+ return allPermissions;
208
+ }
209
+ }