rez_core 4.0.86 → 4.0.87

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 (383) hide show
  1. package/.idea/250218_nodejs_core.iml +11 -8
  2. package/.idea/codeStyles/Project.xml +58 -58
  3. package/.idea/codeStyles/codeStyleConfig.xml +4 -4
  4. package/.idea/inspectionProfiles/Project_Default.xml +1 -1
  5. package/.idea/modules.xml +7 -7
  6. package/.idea/prettier.xml +5 -5
  7. package/.idea/vcs.xml +5 -5
  8. package/.prettierrc +3 -3
  9. package/README.md +99 -99
  10. package/dist/module/auth/guards/role.guard.js +3 -3
  11. package/dist/module/auth/services/auth.service.js +2 -2
  12. package/dist/module/filter/repository/saved-filter.repository.js +4 -4
  13. package/dist/module/filter/service/filter-evaluator.service.js +2 -2
  14. package/dist/module/filter/service/filter.service.js +22 -22
  15. package/dist/module/integration/examples/usage.example.js +9 -9
  16. package/dist/module/integration/service/integration.service.js +1 -1
  17. package/dist/module/integration/service/wrapper.service.js +25 -25
  18. package/dist/module/listmaster/service/list-master-item.service.js +2 -2
  19. package/dist/module/mapper/service/field-mapper.service.js +4 -4
  20. package/dist/module/mapper/service/mapper.service.js +2 -2
  21. package/dist/module/meta/service/entity-dynamic.service.js +18 -18
  22. package/dist/module/meta/service/entity-list.service.js +3 -3
  23. package/dist/module/meta/service/entity-master.service.js +3 -3
  24. package/dist/module/meta/service/entity-relation.service.js +11 -11
  25. package/dist/module/meta/service/entity-service-impl.service.js +3 -3
  26. package/dist/module/meta/service/resolver.service.js +3 -3
  27. package/dist/module/module/repository/menu.repository.js +12 -12
  28. package/dist/module/notification/service/notification.service.js +9 -9
  29. package/dist/module/user/controller/login.controller.js +18 -18
  30. package/dist/module/user/service/role.service.js +4 -4
  31. package/dist/module/user/service/user-session.service.js +2 -2
  32. package/dist/module/workflow/repository/action.repository.js +20 -20
  33. package/dist/module/workflow/repository/comm-template.repository.js +6 -6
  34. package/dist/module/workflow/repository/form-master.repository.js +2 -2
  35. package/dist/module/workflow/repository/stage-group.repository.js +23 -23
  36. package/dist/module/workflow/repository/stage-movement.repository.js +15 -15
  37. package/dist/module/workflow/repository/stage.repository.js +8 -8
  38. package/dist/module/workflow/service/action-template-mapping.service.js +22 -22
  39. package/dist/module/workflow/service/action.service.js +7 -7
  40. package/dist/module/workflow/service/entity-modification.service.js +6 -6
  41. package/dist/module/workflow/service/stage-group.service.js +2 -2
  42. package/dist/module/workflow/service/stage.service.js +2 -2
  43. package/dist/module/workflow/service/task.service.js +28 -28
  44. package/dist/module/workflow/service/workflow-list-master.service.js +15 -15
  45. package/dist/module/workflow/service/workflow-meta.service.js +35 -35
  46. package/dist/module/workflow/service/workflow.service.js +2 -2
  47. package/dist/tsconfig.build.tsbuildinfo +1 -1
  48. package/dist/utils/service/reflection-helper.service.js +2 -2
  49. package/docs/modules/event-driven-integration-design.md +91 -91
  50. package/docs/modules/integration.md +250 -250
  51. package/eslint.config.mjs +34 -34
  52. package/nest-cli.json +14 -14
  53. package/package.json +118 -118
  54. package/src/app.controller.ts +12 -12
  55. package/src/app.module.ts +49 -49
  56. package/src/app.service.ts +8 -8
  57. package/src/config/config.module.ts +18 -18
  58. package/src/config/database.config.ts +23 -23
  59. package/src/constant/global.constant.ts +67 -67
  60. package/src/core.module.ts +81 -81
  61. package/src/decorators/roles.decorator.ts +7 -7
  62. package/src/dtos/response.dto.ts +6 -6
  63. package/src/dtos/response.ts +5 -5
  64. package/src/index.ts +1 -1
  65. package/src/module/auth/auth.module.ts +49 -49
  66. package/src/module/auth/controller/auth.controller.ts +28 -28
  67. package/src/module/auth/guards/google-auth.guard.ts +9 -9
  68. package/src/module/auth/guards/jwt.guard.ts +22 -22
  69. package/src/module/auth/guards/role.guard.ts +68 -68
  70. package/src/module/auth/services/auth.service.ts +50 -50
  71. package/src/module/auth/services/jwt.service.ts +11 -11
  72. package/src/module/auth/strategies/google.strategy.ts +54 -54
  73. package/src/module/auth/strategies/jwt.strategy.ts +58 -58
  74. package/src/module/auth/strategies/local.strategy.ts +13 -13
  75. package/src/module/dashboard/controller/dashboard.controller.ts +36 -36
  76. package/src/module/dashboard/dashboard.module.ts +21 -21
  77. package/src/module/dashboard/entity/dashboard_page_data.entity.ts +27 -27
  78. package/src/module/dashboard/entity/widget_master.entity.ts +18 -18
  79. package/src/module/dashboard/repository/dashboard.repository.ts +42 -42
  80. package/src/module/dashboard/service/dashboard.service.ts +73 -73
  81. package/src/module/dev/dev.module.ts +12 -12
  82. package/src/module/dev/service/dev.service.ts +7 -7
  83. package/src/module/enterprise/controller/organization.controller.ts +36 -36
  84. package/src/module/enterprise/enterprise.module.ts +30 -30
  85. package/src/module/enterprise/entity/enterprise.entity.ts +37 -37
  86. package/src/module/enterprise/entity/organization-app-mapping.entity.ts +13 -13
  87. package/src/module/enterprise/entity/organization.entity.ts +92 -92
  88. package/src/module/enterprise/repository/enterprise.repository.ts +31 -31
  89. package/src/module/enterprise/repository/organization.repository.ts +26 -26
  90. package/src/module/enterprise/repository/school.repository.ts +278 -278
  91. package/src/module/enterprise/service/brand.service.ts +5 -5
  92. package/src/module/enterprise/service/enterprise.service.ts +16 -16
  93. package/src/module/enterprise/service/organization-app-mapping.service.ts +4 -4
  94. package/src/module/enterprise/service/organization.service.ts +145 -145
  95. package/src/module/filter/controller/filter.controller.ts +84 -84
  96. package/src/module/filter/dto/filter-request.dto.ts +38 -38
  97. package/src/module/filter/entity/saved-filter-detail.entity.ts +41 -41
  98. package/src/module/filter/entity/saved-filter-master.entity.ts +23 -23
  99. package/src/module/filter/filter.module.ts +31 -31
  100. package/src/module/filter/repository/saved-filter.repository.ts +168 -168
  101. package/src/module/filter/service/filter-evaluator.service.ts +86 -86
  102. package/src/module/filter/service/filter.service.ts +930 -930
  103. package/src/module/filter/service/saved-filter.service.ts +170 -170
  104. package/src/module/ics/controller/ics.controller.ts +21 -21
  105. package/src/module/ics/dto/ics.dto.ts +55 -55
  106. package/src/module/ics/ics.module.ts +13 -13
  107. package/src/module/ics/service/ics.service.ts +57 -57
  108. package/src/module/integration/controller/calender-event.controller.ts +31 -31
  109. package/src/module/integration/controller/integration.controller.ts +662 -662
  110. package/src/module/integration/controller/wrapper.controller.ts +37 -37
  111. package/src/module/integration/dto/create-config.dto.ts +526 -526
  112. package/src/module/integration/entity/integration-config.entity.ts +112 -112
  113. package/src/module/integration/entity/integration-entity-mapper.entity.ts +14 -14
  114. package/src/module/integration/entity/integration-source.entity.ts +17 -17
  115. package/src/module/integration/entity/user-integration.entity.ts +71 -71
  116. package/src/module/integration/examples/usage.example.ts +338 -338
  117. package/src/module/integration/factories/base.factory.ts +7 -7
  118. package/src/module/integration/factories/email.factory.ts +49 -49
  119. package/src/module/integration/factories/integration.factory.ts +121 -121
  120. package/src/module/integration/factories/sms.factory.ts +51 -51
  121. package/src/module/integration/factories/telephone.factory.ts +41 -41
  122. package/src/module/integration/factories/whatsapp.factory.ts +56 -56
  123. package/src/module/integration/integration.module.ts +110 -110
  124. package/src/module/integration/service/calendar-event.service.ts +118 -118
  125. package/src/module/integration/service/integration-entity-mapper.service.ts +17 -17
  126. package/src/module/integration/service/integration-queue.service.ts +229 -229
  127. package/src/module/integration/service/integration.service.ts +2621 -2621
  128. package/src/module/integration/service/oauth.service.ts +224 -224
  129. package/src/module/integration/service/wrapper.service.ts +499 -499
  130. package/src/module/integration/strategies/email/gmail-api.strategy.ts +280 -280
  131. package/src/module/integration/strategies/email/outlook-api.strategy.ts +44 -44
  132. package/src/module/integration/strategies/email/outlook.strategy.ts +64 -64
  133. package/src/module/integration/strategies/email/sendgrid-api.strategy.ts +260 -260
  134. package/src/module/integration/strategies/integration.strategy.ts +97 -97
  135. package/src/module/integration/strategies/sms/gupshup-sms.strategy.ts +146 -146
  136. package/src/module/integration/strategies/sms/msg91-sms.strategy.ts +164 -164
  137. package/src/module/integration/strategies/sms/tubelight-sms.strategy.ts +163 -163
  138. package/src/module/integration/strategies/telephone/ozonetel-voice.strategy.ts +238 -238
  139. package/src/module/integration/strategies/telephone/tubelight-voice.strategy.ts +210 -210
  140. package/src/module/integration/strategies/whatsapp/gupshup-whatsapp.strategy.ts +359 -359
  141. package/src/module/integration/strategies/whatsapp/tubelight-whatsapp.strategy.ts +372 -372
  142. package/src/module/integration/strategies/whatsapp/whatsapp-cloud.strategy.ts +403 -403
  143. package/src/module/integration/strategies/whatsapp/whatsapp.strategy.ts +57 -57
  144. package/src/module/layout/controller/layout.controller.ts +47 -47
  145. package/src/module/layout/entity/header-items.entity.ts +28 -28
  146. package/src/module/layout/entity/header-section.entity.ts +19 -19
  147. package/src/module/layout/layout.module.ts +21 -21
  148. package/src/module/layout/repository/header-items.repository.ts +18 -18
  149. package/src/module/layout/repository/header-section.repository.ts +22 -22
  150. package/src/module/layout/service/header-section.service.ts +25 -25
  151. package/src/module/layout_preference/controller/layout_preference.controller.ts +47 -47
  152. package/src/module/layout_preference/entity/layout_preference.entity.ts +28 -28
  153. package/src/module/layout_preference/layout_preference.module.ts +18 -18
  154. package/src/module/layout_preference/repository/layout_preference.repository.ts +30 -30
  155. package/src/module/layout_preference/service/layout_preference.service.ts +172 -172
  156. package/src/module/lead/controller/lead.controller.ts +30 -30
  157. package/src/module/lead/lead.module.ts +14 -14
  158. package/src/module/lead/repository/lead.repository.ts +41 -41
  159. package/src/module/lead/service/lead.service.ts +54 -54
  160. package/src/module/listmaster/controller/list-master.controller.ts +187 -187
  161. package/src/module/listmaster/entity/list-master-items.entity.ts +43 -43
  162. package/src/module/listmaster/entity/list-master.entity.ts +33 -33
  163. package/src/module/listmaster/listmaster.module.ts +44 -44
  164. package/src/module/listmaster/repository/list-master-items.repository.ts +169 -169
  165. package/src/module/listmaster/repository/list-master.repository.ts +46 -46
  166. package/src/module/listmaster/service/list-master-engine.ts +19 -19
  167. package/src/module/listmaster/service/list-master-extension.interface.ts +4 -4
  168. package/src/module/listmaster/service/list-master-item.service.ts +292 -292
  169. package/src/module/listmaster/service/list-master-registry.ts +15 -15
  170. package/src/module/listmaster/service/list-master.service.ts +442 -442
  171. package/src/module/mapper/controller/field-mapper.controller.ts +76 -76
  172. package/src/module/mapper/controller/mapper.controller.ts +20 -20
  173. package/src/module/mapper/dto/field-mapper.dto.ts +14 -14
  174. package/src/module/mapper/entity/field-lovs.entity.ts +19 -19
  175. package/src/module/mapper/entity/field-mapper.entity.ts +53 -53
  176. package/src/module/mapper/entity/mapper.entity.ts +16 -16
  177. package/src/module/mapper/mapper.module.ts +34 -34
  178. package/src/module/mapper/repository/field-lovs.repository.ts +35 -35
  179. package/src/module/mapper/repository/field-mapper.repository.ts +42 -42
  180. package/src/module/mapper/repository/mapper.repository.ts +15 -15
  181. package/src/module/mapper/service/field-mapper.service.ts +254 -254
  182. package/src/module/mapper/service/mapper.service.ts +79 -79
  183. package/src/module/master/controller/master.controller.ts +74 -74
  184. package/src/module/master/service/master.service.ts +483 -483
  185. package/src/module/meta/controller/app-master.controller.ts +38 -38
  186. package/src/module/meta/controller/attribute-master.controller.ts +66 -66
  187. package/src/module/meta/controller/entity-dynamic.controller.ts +125 -125
  188. package/src/module/meta/controller/entity-master.controller.ts +28 -28
  189. package/src/module/meta/controller/entity-relation.controller.ts +36 -36
  190. package/src/module/meta/controller/entity.controller.ts +392 -392
  191. package/src/module/meta/controller/entity.public.controller.ts +75 -75
  192. package/src/module/meta/controller/media.controller.ts +107 -107
  193. package/src/module/meta/controller/meta.controller.ts +96 -96
  194. package/src/module/meta/controller/view-master.controller.ts +86 -86
  195. package/src/module/meta/dto/entity-list-data.dto.ts +6 -6
  196. package/src/module/meta/dto/entity-tab.dto.ts +4 -4
  197. package/src/module/meta/dto/entity-table.dto.ts +9 -9
  198. package/src/module/meta/entity/app-master.entity.ts +34 -34
  199. package/src/module/meta/entity/attribute-master.entity.ts +89 -89
  200. package/src/module/meta/entity/base-entity.entity.ts +75 -75
  201. package/src/module/meta/entity/entity-master.entity.ts +85 -85
  202. package/src/module/meta/entity/entity-relation-data.entity.ts +29 -29
  203. package/src/module/meta/entity/entity-relation.entity.ts +23 -23
  204. package/src/module/meta/entity/entity-table-column.entity.ts +61 -61
  205. package/src/module/meta/entity/entity-table.entity.ts +50 -50
  206. package/src/module/meta/entity/media-data.entity.ts +32 -32
  207. package/src/module/meta/entity/preference.entity.ts +62 -62
  208. package/src/module/meta/entity/view-master.entity.ts +41 -41
  209. package/src/module/meta/entity.module.ts +158 -158
  210. package/src/module/meta/repository/app-master.repository.ts +20 -20
  211. package/src/module/meta/repository/attribute-master.repository.ts +110 -110
  212. package/src/module/meta/repository/entity-master.repository.ts +69 -69
  213. package/src/module/meta/repository/entity-table-column.repository.ts +39 -39
  214. package/src/module/meta/repository/entity-table.repository.ts +53 -53
  215. package/src/module/meta/repository/media-data.repository.ts +50 -50
  216. package/src/module/meta/repository/preference.repository.ts +20 -20
  217. package/src/module/meta/repository/user-app-mapping.repository.ts +28 -28
  218. package/src/module/meta/repository/view-master.repository.ts +42 -42
  219. package/src/module/meta/service/app-master.service.ts +37 -37
  220. package/src/module/meta/service/attribute-master.service.ts +117 -117
  221. package/src/module/meta/service/common.service.ts +9 -9
  222. package/src/module/meta/service/entity-dynamic.service.ts +824 -824
  223. package/src/module/meta/service/entity-list.service.ts +205 -205
  224. package/src/module/meta/service/entity-master.service.ts +169 -169
  225. package/src/module/meta/service/entity-realation-data.service.ts +9 -9
  226. package/src/module/meta/service/entity-relation.service.ts +69 -69
  227. package/src/module/meta/service/entity-service-impl.service.ts +525 -525
  228. package/src/module/meta/service/entity-table-column.service.ts +39 -39
  229. package/src/module/meta/service/entity-table.service.ts +150 -150
  230. package/src/module/meta/service/entity-validation.service.ts +187 -187
  231. package/src/module/meta/service/entity.service.ts +67 -67
  232. package/src/module/meta/service/field-group.service.ts +103 -103
  233. package/src/module/meta/service/media-data.service.ts +507 -507
  234. package/src/module/meta/service/populate-meta.service.ts +193 -193
  235. package/src/module/meta/service/preference.service.ts +16 -16
  236. package/src/module/meta/service/resolver.service.ts +267 -267
  237. package/src/module/meta/service/section-master.service.ts +104 -104
  238. package/src/module/meta/service/update-form-json.service.ts +22 -22
  239. package/src/module/meta/service/user-app-mapping.service.ts +17 -17
  240. package/src/module/meta/service/view-master.service.ts +127 -127
  241. package/src/module/module/controller/menu.controller.ts +15 -15
  242. package/src/module/module/controller/module-access.controller.ts +134 -134
  243. package/src/module/module/entity/menu.entity.ts +43 -43
  244. package/src/module/module/entity/module-access.entity.ts +25 -25
  245. package/src/module/module/entity/module-action.entity.ts +17 -17
  246. package/src/module/module/entity/module.entity.ts +52 -52
  247. package/src/module/module/module.module.ts +42 -42
  248. package/src/module/module/repository/menu.repository.ts +184 -184
  249. package/src/module/module/repository/module-access.repository.ts +344 -344
  250. package/src/module/module/service/menu.service.ts +82 -82
  251. package/src/module/module/service/module-access.service.ts +209 -209
  252. package/src/module/notification/controller/notification.controller.ts +58 -58
  253. package/src/module/notification/controller/otp.controller.ts +117 -117
  254. package/src/module/notification/entity/notification.entity.ts +26 -26
  255. package/src/module/notification/entity/otp.entity.ts +28 -28
  256. package/src/module/notification/firebase-admin.config.ts +22 -22
  257. package/src/module/notification/notification.module.ts +69 -69
  258. package/src/module/notification/repository/otp.repository.ts +27 -27
  259. package/src/module/notification/service/email.service.ts +127 -127
  260. package/src/module/notification/service/notification.service.ts +163 -163
  261. package/src/module/notification/service/otp.service.ts +132 -132
  262. package/src/module/third-party-module/entity/third-party-api-registry.entity.ts +52 -52
  263. package/src/module/third-party-module/repository/third-party-api-registry.repository.ts +20 -20
  264. package/src/module/third-party-module/service/api-registry.service.ts +13 -13
  265. package/src/module/third-party-module/third-party.module.ts +12 -12
  266. package/src/module/user/controller/login.controller.ts +197 -197
  267. package/src/module/user/controller/user.controller.ts +40 -40
  268. package/src/module/user/dto/create-user.dto.ts +62 -62
  269. package/src/module/user/dto/update-user.dto.ts +4 -4
  270. package/src/module/user/entity/role.entity.ts +33 -33
  271. package/src/module/user/entity/user-role-mapping.entity.ts +38 -38
  272. package/src/module/user/entity/user-session.entity.ts +73 -73
  273. package/src/module/user/entity/user.entity.ts +59 -59
  274. package/src/module/user/repository/role.repository.ts +96 -96
  275. package/src/module/user/repository/user-role-mapping.repository.ts +126 -126
  276. package/src/module/user/repository/user.repository.ts +50 -50
  277. package/src/module/user/repository/userSession.repository.ts +33 -33
  278. package/src/module/user/service/login.service.ts +284 -284
  279. package/src/module/user/service/role.service.ts +189 -189
  280. package/src/module/user/service/user-role-mapping.service.ts +98 -98
  281. package/src/module/user/service/user-session.service.ts +168 -168
  282. package/src/module/user/service/user.service.ts +365 -365
  283. package/src/module/user/user.module.ts +65 -65
  284. package/src/module/workflow/controller/action-category.controller.ts +54 -54
  285. package/src/module/workflow/controller/action-resource-mapping.controller.ts +23 -23
  286. package/src/module/workflow/controller/action-template-mapping.controller.ts +35 -35
  287. package/src/module/workflow/controller/action.controller.ts +111 -111
  288. package/src/module/workflow/controller/activity-log.controller.ts +55 -55
  289. package/src/module/workflow/controller/comm-template.controller.ts +43 -43
  290. package/src/module/workflow/controller/entity-modification.controller.ts +35 -35
  291. package/src/module/workflow/controller/form-master.controller.ts +43 -43
  292. package/src/module/workflow/controller/stage-group.controller.ts +48 -48
  293. package/src/module/workflow/controller/stage.controller.ts +50 -50
  294. package/src/module/workflow/controller/task.controller.ts +77 -77
  295. package/src/module/workflow/controller/workflow-list-master.controller.ts +44 -44
  296. package/src/module/workflow/controller/workflow-meta.controller.ts +80 -80
  297. package/src/module/workflow/controller/workflow.controller.ts +67 -67
  298. package/src/module/workflow/entity/action-category.entity.ts +38 -38
  299. package/src/module/workflow/entity/action-data.entity.ts +55 -55
  300. package/src/module/workflow/entity/action-resources-mapping.entity.ts +29 -29
  301. package/src/module/workflow/entity/action-template-mapping.entity.ts +17 -17
  302. package/src/module/workflow/entity/action.entity.ts +50 -50
  303. package/src/module/workflow/entity/activity-log.entity.ts +43 -43
  304. package/src/module/workflow/entity/comm-template.entity.ts +43 -43
  305. package/src/module/workflow/entity/entity-modification.entity.ts +38 -38
  306. package/src/module/workflow/entity/form.entity.ts +25 -25
  307. package/src/module/workflow/entity/stage-action-mapping.entity.ts +17 -17
  308. package/src/module/workflow/entity/stage-group.entity.ts +23 -23
  309. package/src/module/workflow/entity/stage-movement-data.entity.ts +38 -38
  310. package/src/module/workflow/entity/stage.entity.ts +20 -20
  311. package/src/module/workflow/entity/task-data.entity.ts +88 -88
  312. package/src/module/workflow/entity/template-attach-mapper.entity.ts +30 -30
  313. package/src/module/workflow/entity/workflow-data.entity.ts +11 -11
  314. package/src/module/workflow/entity/workflow-level-mapping.entity.ts +18 -18
  315. package/src/module/workflow/entity/workflow.entity.ts +20 -20
  316. package/src/module/workflow/repository/action-category.repository.ts +79 -79
  317. package/src/module/workflow/repository/action-data.repository.ts +323 -323
  318. package/src/module/workflow/repository/action.repository.ts +323 -323
  319. package/src/module/workflow/repository/activity-log.repository.ts +148 -148
  320. package/src/module/workflow/repository/comm-template.repository.ts +149 -149
  321. package/src/module/workflow/repository/form-master.repository.ts +59 -59
  322. package/src/module/workflow/repository/stage-group.repository.ts +176 -176
  323. package/src/module/workflow/repository/stage-movement.repository.ts +244 -244
  324. package/src/module/workflow/repository/stage.repository.ts +172 -172
  325. package/src/module/workflow/repository/task.repository.ts +127 -127
  326. package/src/module/workflow/repository/workflow.repository.ts +42 -42
  327. package/src/module/workflow/service/action-category.service.ts +33 -33
  328. package/src/module/workflow/service/action-data.service.ts +62 -62
  329. package/src/module/workflow/service/action-resources-mapping.service.ts +10 -10
  330. package/src/module/workflow/service/action-template-mapping.service.ts +104 -104
  331. package/src/module/workflow/service/action.service.ts +279 -279
  332. package/src/module/workflow/service/activity-log.service.ts +107 -107
  333. package/src/module/workflow/service/comm-template.service.ts +180 -180
  334. package/src/module/workflow/service/entity-modification.service.ts +67 -67
  335. package/src/module/workflow/service/form-master.service.ts +35 -35
  336. package/src/module/workflow/service/populate-workflow.service.ts +303 -303
  337. package/src/module/workflow/service/stage-action-mapping.service.ts +5 -5
  338. package/src/module/workflow/service/stage-group.service.ts +319 -319
  339. package/src/module/workflow/service/stage.service.ts +199 -199
  340. package/src/module/workflow/service/task.service.ts +560 -560
  341. package/src/module/workflow/service/workflow-list-master.service.ts +60 -60
  342. package/src/module/workflow/service/workflow-meta.service.ts +640 -640
  343. package/src/module/workflow/service/workflow.service.ts +205 -205
  344. package/src/module/workflow/workflow.module.ts +174 -174
  345. package/src/module/workflow-automation/controller/workflow-automation.controller.ts +21 -21
  346. package/src/module/workflow-automation/entity/workflow-automation-action.entity.ts +26 -26
  347. package/src/module/workflow-automation/entity/workflow-automation.entity.ts +35 -35
  348. package/src/module/workflow-automation/interface/action.decorator.ts +7 -7
  349. package/src/module/workflow-automation/interface/action.interface.ts +5 -5
  350. package/src/module/workflow-automation/service/action-registery.service.ts +35 -35
  351. package/src/module/workflow-automation/service/workflow-automation-engine.service.ts +214 -214
  352. package/src/module/workflow-automation/service/workflow-automation.service.ts +347 -347
  353. package/src/module/workflow-automation/workflow-automation.module.ts +34 -34
  354. package/src/resources/dev.properties.yaml +30 -30
  355. package/src/resources/local.properties.yaml +27 -27
  356. package/src/resources/properties.module.ts +12 -12
  357. package/src/resources/properties.yaml.ts +11 -11
  358. package/src/resources/uat.properties.yaml +31 -31
  359. package/src/table.config.ts +126 -126
  360. package/src/utils/dto/excel-data.dto.ts +14 -14
  361. package/src/utils/dto/excelsheet-data.dto.ts +5 -5
  362. package/src/utils/service/base64util.service.ts +18 -18
  363. package/src/utils/service/clockIDGenUtil.service.ts +21 -21
  364. package/src/utils/service/codeGenerator.service.ts +22 -22
  365. package/src/utils/service/dateUtil.service.ts +17 -17
  366. package/src/utils/service/encryptUtil.service.ts +97 -97
  367. package/src/utils/service/excel-helper.service.ts +72 -72
  368. package/src/utils/service/excelUtil.service.ts +15 -15
  369. package/src/utils/service/file-util.service.ts +11 -11
  370. package/src/utils/service/json-util.service.ts +23 -23
  371. package/src/utils/service/loggingUtil.service.ts +34 -34
  372. package/src/utils/service/reflection-helper.service.ts +62 -62
  373. package/src/utils/service/wbsCodeGen.service.ts +8 -8
  374. package/src/utils/utils.module.ts +25 -25
  375. package/tsconfig.build.json +4 -4
  376. package/tsconfig.json +24 -24
  377. package/.claude/settings.local.json +0 -26
  378. package/.idea/copilot.data.migration.agent.xml +0 -6
  379. package/.idea/copilot.data.migration.ask.xml +0 -6
  380. package/.idea/copilot.data.migration.ask2agent.xml +0 -6
  381. package/.idea/copilot.data.migration.edit.xml +0 -6
  382. package/.idea/misc.xml +0 -6
  383. package/server.log +0 -850
@@ -1,97 +1,97 @@
1
- export interface IntegrationStrategy {
2
- sendMessage(
3
- to: string,
4
- message: string,
5
- config: any,
6
- ): Promise<IntegrationResult>;
7
- validateConfig(config: any): boolean;
8
- createUserSpecificConfig?(
9
- baseConfig: any,
10
- userIntegrationData?: any,
11
- ): any;
12
- }
13
-
14
- export interface IntegrationResult {
15
- success: boolean;
16
- messageId?: string;
17
- provider: string;
18
- service: string;
19
- error?: string;
20
- timestamp: Date;
21
- refreshedToken?: string;
22
- message?: string;
23
- }
24
-
25
- export interface EmailAttachment {
26
- filename: string;
27
- content: string; // base64 encoded content
28
- contentType: string; // MIME type (e.g., 'application/pdf', 'image/png')
29
- disposition?: 'attachment' | 'inline'; // default: 'attachment'
30
- contentId?: string; // for inline images
31
- }
32
-
33
- export interface MessageTemplate {
34
- subject?: string;
35
- body: string;
36
- attachments?: EmailAttachment[];
37
- }
38
-
39
- export class EmailAttachmentValidator {
40
- static validate(
41
- attachments: EmailAttachment[],
42
- maxSizeBytes: number,
43
- providerName: string,
44
- ): void {
45
- let totalSize = 0;
46
-
47
- for (const attachment of attachments) {
48
- // Validate required fields
49
- if (!attachment.filename) {
50
- throw new Error('Attachment filename is required');
51
- }
52
-
53
- if (!attachment.content) {
54
- throw new Error(
55
- `Attachment content is required for ${attachment.filename}`,
56
- );
57
- }
58
-
59
- if (!attachment.contentType) {
60
- throw new Error(
61
- `Attachment contentType is required for ${attachment.filename}`,
62
- );
63
- }
64
-
65
- // Validate base64 format
66
- if (!this.isValidBase64(attachment.content)) {
67
- throw new Error(
68
- `Invalid base64 content for attachment ${attachment.filename}`,
69
- );
70
- }
71
-
72
- // Calculate size (base64 is ~4/3 of original size)
73
- const attachmentSize = (attachment.content.length * 3) / 4;
74
- totalSize += attachmentSize;
75
-
76
- if (totalSize > maxSizeBytes) {
77
- const maxSizeMB = Math.floor(maxSizeBytes / (1024 * 1024));
78
- throw new Error(
79
- `Total attachment size exceeds ${providerName} limit of ${maxSizeMB}MB`,
80
- );
81
- }
82
- }
83
- }
84
-
85
- private static isValidBase64(str: string): boolean {
86
- try {
87
- // Check if string is valid base64
88
- const base64Regex = /^[A-Za-z0-9+/]*={0,2}$/;
89
- return (
90
- base64Regex.test(str) &&
91
- Buffer.from(str, 'base64').toString('base64') === str
92
- );
93
- } catch {
94
- return false;
95
- }
96
- }
97
- }
1
+ export interface IntegrationStrategy {
2
+ sendMessage(
3
+ to: string,
4
+ message: string,
5
+ config: any,
6
+ ): Promise<IntegrationResult>;
7
+ validateConfig(config: any): boolean;
8
+ createUserSpecificConfig?(
9
+ baseConfig: any,
10
+ userIntegrationData?: any,
11
+ ): any;
12
+ }
13
+
14
+ export interface IntegrationResult {
15
+ success: boolean;
16
+ messageId?: string;
17
+ provider: string;
18
+ service: string;
19
+ error?: string;
20
+ timestamp: Date;
21
+ refreshedToken?: string;
22
+ message?: string;
23
+ }
24
+
25
+ export interface EmailAttachment {
26
+ filename: string;
27
+ content: string; // base64 encoded content
28
+ contentType: string; // MIME type (e.g., 'application/pdf', 'image/png')
29
+ disposition?: 'attachment' | 'inline'; // default: 'attachment'
30
+ contentId?: string; // for inline images
31
+ }
32
+
33
+ export interface MessageTemplate {
34
+ subject?: string;
35
+ body: string;
36
+ attachments?: EmailAttachment[];
37
+ }
38
+
39
+ export class EmailAttachmentValidator {
40
+ static validate(
41
+ attachments: EmailAttachment[],
42
+ maxSizeBytes: number,
43
+ providerName: string,
44
+ ): void {
45
+ let totalSize = 0;
46
+
47
+ for (const attachment of attachments) {
48
+ // Validate required fields
49
+ if (!attachment.filename) {
50
+ throw new Error('Attachment filename is required');
51
+ }
52
+
53
+ if (!attachment.content) {
54
+ throw new Error(
55
+ `Attachment content is required for ${attachment.filename}`,
56
+ );
57
+ }
58
+
59
+ if (!attachment.contentType) {
60
+ throw new Error(
61
+ `Attachment contentType is required for ${attachment.filename}`,
62
+ );
63
+ }
64
+
65
+ // Validate base64 format
66
+ if (!this.isValidBase64(attachment.content)) {
67
+ throw new Error(
68
+ `Invalid base64 content for attachment ${attachment.filename}`,
69
+ );
70
+ }
71
+
72
+ // Calculate size (base64 is ~4/3 of original size)
73
+ const attachmentSize = (attachment.content.length * 3) / 4;
74
+ totalSize += attachmentSize;
75
+
76
+ if (totalSize > maxSizeBytes) {
77
+ const maxSizeMB = Math.floor(maxSizeBytes / (1024 * 1024));
78
+ throw new Error(
79
+ `Total attachment size exceeds ${providerName} limit of ${maxSizeMB}MB`,
80
+ );
81
+ }
82
+ }
83
+ }
84
+
85
+ private static isValidBase64(str: string): boolean {
86
+ try {
87
+ // Check if string is valid base64
88
+ const base64Regex = /^[A-Za-z0-9+/]*={0,2}$/;
89
+ return (
90
+ base64Regex.test(str) &&
91
+ Buffer.from(str, 'base64').toString('base64') === str
92
+ );
93
+ } catch {
94
+ return false;
95
+ }
96
+ }
97
+ }
@@ -1,146 +1,146 @@
1
- import { Injectable, Logger } from '@nestjs/common';
2
- import axios, { AxiosResponse } from 'axios';
3
- import {
4
- IntegrationStrategy,
5
- IntegrationResult,
6
- } from '../integration.strategy';
7
-
8
- interface GupshupSmsConfig {
9
- apiKey: string;
10
- sourceNumber: string;
11
- baseUrl?: string;
12
- method?: string; // 'SendMessage' or 'SendSMS'
13
- }
14
-
15
- interface GupshupSmsApiResponse {
16
- status: string;
17
- messageId?: string;
18
- response?: {
19
- id: string;
20
- phone: string;
21
- details: string;
22
- };
23
- error?: {
24
- code: number;
25
- message: string;
26
- };
27
- }
28
-
29
- @Injectable()
30
- export class GupshupSmsStrategy implements IntegrationStrategy {
31
- private readonly logger = new Logger(GupshupSmsStrategy.name);
32
- private readonly defaultBaseUrl = 'https://enterprise.smsgupshup.com/GatewayAPI/rest';
33
-
34
- async sendMessage(
35
- to: string,
36
- message: string,
37
- config: any,
38
- ): Promise<IntegrationResult> {
39
- try {
40
- if (!this.validateConfig(config)) {
41
- throw new Error('Invalid Gupshup SMS configuration');
42
- }
43
-
44
- const gupshupConfig = config as GupshupSmsConfig;
45
- const baseUrl = gupshupConfig.baseUrl || this.defaultBaseUrl;
46
- const method = gupshupConfig.method || 'SendMessage';
47
-
48
- const params = new URLSearchParams();
49
- params.append('method', method);
50
- params.append('send_to', this.formatPhoneNumber(to));
51
- params.append('msg', message);
52
- params.append('msg_type', 'TEXT');
53
- params.append('userid', gupshupConfig.apiKey);
54
- params.append('auth_scheme', 'plain');
55
- params.append('v', '1.1');
56
- params.append('format', 'text');
57
-
58
- const url = `${baseUrl}?${params.toString()}`;
59
-
60
- const response: AxiosResponse = await axios.get(url, {
61
- timeout: 30000,
62
- });
63
-
64
- // Gupshup SMS API returns text response like: "success | message-id"
65
- const responseText = response.data?.toString() || '';
66
-
67
- if (responseText.toLowerCase().includes('success')) {
68
- const parts = responseText.split('|');
69
- const messageId = parts.length > 1 ? parts[1].trim() : new Date().getTime().toString();
70
-
71
- this.logger.log(
72
- `Gupshup SMS sent successfully to ${to}, messageId: ${messageId}`,
73
- );
74
-
75
- return {
76
- success: true,
77
- messageId: messageId,
78
- provider: 'gupshup',
79
- service: 'SMS',
80
- timestamp: new Date(),
81
- };
82
- } else {
83
- throw new Error(responseText || 'Failed to send SMS via Gupshup');
84
- }
85
- } catch (error) {
86
- this.logger.error(
87
- `Failed to send Gupshup SMS to ${to}`,
88
- error.response?.data || error.message,
89
- );
90
-
91
- return {
92
- success: false,
93
- provider: 'gupshup',
94
- service: 'SMS',
95
- error: this.extractErrorMessage(error),
96
- timestamp: new Date(),
97
- };
98
- }
99
- }
100
-
101
- private formatPhoneNumber(phoneNumber: string): string {
102
- // Remove any non-digit characters except +
103
- let formatted = phoneNumber.replace(/[^\d+]/g, '');
104
-
105
- // Remove + if present as Gupshup expects just numbers
106
- formatted = formatted.replace(/\+/g, '');
107
-
108
- return formatted;
109
- }
110
-
111
- private extractErrorMessage(error: any): string {
112
- if (error.response?.data) {
113
- const data = error.response.data.toString();
114
- if (data) {
115
- return data;
116
- }
117
- }
118
-
119
- if (error.response?.data?.error?.message) {
120
- return error.response.data.error.message;
121
- }
122
-
123
- if (error.response?.data?.message) {
124
- return error.response.data.message;
125
- }
126
-
127
- if (error.message) {
128
- return error.message;
129
- }
130
-
131
- return 'Unknown Gupshup SMS API error';
132
- }
133
-
134
- validateConfig(config: any): boolean {
135
- if (!config || typeof config !== 'object') {
136
- return false;
137
- }
138
-
139
- // Required fields
140
- if (!config.apiKey || !config.sourceNumber) {
141
- return false;
142
- }
143
-
144
- return true;
145
- }
146
- }
1
+ import { Injectable, Logger } from '@nestjs/common';
2
+ import axios, { AxiosResponse } from 'axios';
3
+ import {
4
+ IntegrationStrategy,
5
+ IntegrationResult,
6
+ } from '../integration.strategy';
7
+
8
+ interface GupshupSmsConfig {
9
+ apiKey: string;
10
+ sourceNumber: string;
11
+ baseUrl?: string;
12
+ method?: string; // 'SendMessage' or 'SendSMS'
13
+ }
14
+
15
+ interface GupshupSmsApiResponse {
16
+ status: string;
17
+ messageId?: string;
18
+ response?: {
19
+ id: string;
20
+ phone: string;
21
+ details: string;
22
+ };
23
+ error?: {
24
+ code: number;
25
+ message: string;
26
+ };
27
+ }
28
+
29
+ @Injectable()
30
+ export class GupshupSmsStrategy implements IntegrationStrategy {
31
+ private readonly logger = new Logger(GupshupSmsStrategy.name);
32
+ private readonly defaultBaseUrl = 'https://enterprise.smsgupshup.com/GatewayAPI/rest';
33
+
34
+ async sendMessage(
35
+ to: string,
36
+ message: string,
37
+ config: any,
38
+ ): Promise<IntegrationResult> {
39
+ try {
40
+ if (!this.validateConfig(config)) {
41
+ throw new Error('Invalid Gupshup SMS configuration');
42
+ }
43
+
44
+ const gupshupConfig = config as GupshupSmsConfig;
45
+ const baseUrl = gupshupConfig.baseUrl || this.defaultBaseUrl;
46
+ const method = gupshupConfig.method || 'SendMessage';
47
+
48
+ const params = new URLSearchParams();
49
+ params.append('method', method);
50
+ params.append('send_to', this.formatPhoneNumber(to));
51
+ params.append('msg', message);
52
+ params.append('msg_type', 'TEXT');
53
+ params.append('userid', gupshupConfig.apiKey);
54
+ params.append('auth_scheme', 'plain');
55
+ params.append('v', '1.1');
56
+ params.append('format', 'text');
57
+
58
+ const url = `${baseUrl}?${params.toString()}`;
59
+
60
+ const response: AxiosResponse = await axios.get(url, {
61
+ timeout: 30000,
62
+ });
63
+
64
+ // Gupshup SMS API returns text response like: "success | message-id"
65
+ const responseText = response.data?.toString() || '';
66
+
67
+ if (responseText.toLowerCase().includes('success')) {
68
+ const parts = responseText.split('|');
69
+ const messageId = parts.length > 1 ? parts[1].trim() : new Date().getTime().toString();
70
+
71
+ this.logger.log(
72
+ `Gupshup SMS sent successfully to ${to}, messageId: ${messageId}`,
73
+ );
74
+
75
+ return {
76
+ success: true,
77
+ messageId: messageId,
78
+ provider: 'gupshup',
79
+ service: 'SMS',
80
+ timestamp: new Date(),
81
+ };
82
+ } else {
83
+ throw new Error(responseText || 'Failed to send SMS via Gupshup');
84
+ }
85
+ } catch (error) {
86
+ this.logger.error(
87
+ `Failed to send Gupshup SMS to ${to}`,
88
+ error.response?.data || error.message,
89
+ );
90
+
91
+ return {
92
+ success: false,
93
+ provider: 'gupshup',
94
+ service: 'SMS',
95
+ error: this.extractErrorMessage(error),
96
+ timestamp: new Date(),
97
+ };
98
+ }
99
+ }
100
+
101
+ private formatPhoneNumber(phoneNumber: string): string {
102
+ // Remove any non-digit characters except +
103
+ let formatted = phoneNumber.replace(/[^\d+]/g, '');
104
+
105
+ // Remove + if present as Gupshup expects just numbers
106
+ formatted = formatted.replace(/\+/g, '');
107
+
108
+ return formatted;
109
+ }
110
+
111
+ private extractErrorMessage(error: any): string {
112
+ if (error.response?.data) {
113
+ const data = error.response.data.toString();
114
+ if (data) {
115
+ return data;
116
+ }
117
+ }
118
+
119
+ if (error.response?.data?.error?.message) {
120
+ return error.response.data.error.message;
121
+ }
122
+
123
+ if (error.response?.data?.message) {
124
+ return error.response.data.message;
125
+ }
126
+
127
+ if (error.message) {
128
+ return error.message;
129
+ }
130
+
131
+ return 'Unknown Gupshup SMS API error';
132
+ }
133
+
134
+ validateConfig(config: any): boolean {
135
+ if (!config || typeof config !== 'object') {
136
+ return false;
137
+ }
138
+
139
+ // Required fields
140
+ if (!config.apiKey || !config.sourceNumber) {
141
+ return false;
142
+ }
143
+
144
+ return true;
145
+ }
146
+ }