rez_core 4.0.151 → 4.0.152

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 (483) hide show
  1. package/.prettierrc +3 -3
  2. package/README.md +99 -99
  3. package/dist/config/config.module.js +2 -2
  4. package/dist/config/config.module.js.map +1 -1
  5. package/dist/config/database.config.d.ts +1 -1
  6. package/dist/config/database.config.js +12 -15
  7. package/dist/config/database.config.js.map +1 -1
  8. package/dist/module/auth/guards/role.guard.js +3 -3
  9. package/dist/module/auth/services/auth.service.js +3 -3
  10. package/dist/module/auth/services/auth.service.js.map +1 -1
  11. package/dist/module/enterprise/entity/organization.entity.js +1 -1
  12. package/dist/module/enterprise/repository/school.repository.js +3 -3
  13. package/dist/module/enterprise/repository/school.repository.js.map +1 -1
  14. package/dist/module/filter/repository/saved-filter.repository.js +4 -4
  15. package/dist/module/filter/service/filter-evaluator.service.js +3 -3
  16. package/dist/module/filter/service/filter-evaluator.service.js.map +1 -1
  17. package/dist/module/filter/service/filter.service.js +26 -34
  18. package/dist/module/filter/service/filter.service.js.map +1 -1
  19. package/dist/module/integration/entity/integration-config.entity.js +6 -6
  20. package/dist/module/integration/entity/integration-config.entity.js.map +1 -1
  21. package/dist/module/integration/entity/integration-entity-mapper.entity.js +1 -1
  22. package/dist/module/integration/entity/integration-entity-mapper.entity.js.map +1 -1
  23. package/dist/module/integration/entity/integration-source.entity.js +4 -4
  24. package/dist/module/integration/entity/integration-source.entity.js.map +1 -1
  25. package/dist/module/integration/entity/user-integration.entity.js +4 -4
  26. package/dist/module/integration/entity/user-integration.entity.js.map +1 -1
  27. package/dist/module/integration/examples/usage.example.js +9 -9
  28. package/dist/module/integration/service/integration.service.js +1 -1
  29. package/dist/module/integration/service/wrapper.service.d.ts +3 -1
  30. package/dist/module/integration/service/wrapper.service.js +67 -65
  31. package/dist/module/integration/service/wrapper.service.js.map +1 -1
  32. package/dist/module/listmaster/entity/list-master-items.entity.js +3 -3
  33. package/dist/module/listmaster/entity/list-master-items.entity.js.map +1 -1
  34. package/dist/module/listmaster/entity/list-master.entity.js +4 -4
  35. package/dist/module/listmaster/entity/list-master.entity.js.map +1 -1
  36. package/dist/module/listmaster/service/list-master-item.service.js +3 -3
  37. package/dist/module/listmaster/service/list-master-item.service.js.map +1 -1
  38. package/dist/module/mapper/entity/field-mapper.entity.js +6 -6
  39. package/dist/module/mapper/entity/field-mapper.entity.js.map +1 -1
  40. package/dist/module/mapper/service/field-mapper.service.js +7 -7
  41. package/dist/module/mapper/service/field-mapper.service.js.map +1 -1
  42. package/dist/module/mapper/service/mapper.service.js +4 -4
  43. package/dist/module/mapper/service/mapper.service.js.map +1 -1
  44. package/dist/module/meta/entity/entity-master.entity.js +1 -1
  45. package/dist/module/meta/entity/entity-master.entity.js.map +1 -1
  46. package/dist/module/meta/entity/view-master.entity.js +1 -1
  47. package/dist/module/meta/entity/view-master.entity.js.map +1 -1
  48. package/dist/module/meta/repository/attribute-master.repository.js +2 -2
  49. package/dist/module/meta/repository/attribute-master.repository.js.map +1 -1
  50. package/dist/module/meta/repository/entity-master.repository.js +1 -1
  51. package/dist/module/meta/repository/entity-master.repository.js.map +1 -1
  52. package/dist/module/meta/service/attribute-master.service.js +1 -1
  53. package/dist/module/meta/service/attribute-master.service.js.map +1 -1
  54. package/dist/module/meta/service/entity-dynamic.service.js +27 -27
  55. package/dist/module/meta/service/entity-dynamic.service.js.map +1 -1
  56. package/dist/module/meta/service/entity-list.service.js +3 -3
  57. package/dist/module/meta/service/entity-master.service.js +4 -4
  58. package/dist/module/meta/service/entity-master.service.js.map +1 -1
  59. package/dist/module/meta/service/entity-relation.service.js +13 -13
  60. package/dist/module/meta/service/entity-relation.service.js.map +1 -1
  61. package/dist/module/meta/service/entity-service-impl.service.js +3 -3
  62. package/dist/module/meta/service/media-data.service.js +9 -9
  63. package/dist/module/meta/service/media-data.service.js.map +1 -1
  64. package/dist/module/meta/service/resolver.service.js +19 -19
  65. package/dist/module/meta/service/resolver.service.js.map +1 -1
  66. package/dist/module/module/repository/menu.repository.js +12 -12
  67. package/dist/module/notification/entity/otp.entity.js +1 -1
  68. package/dist/module/notification/entity/otp.entity.js.map +1 -1
  69. package/dist/module/notification/service/notification.service.js +9 -9
  70. package/dist/module/user/controller/login.controller.js +18 -18
  71. package/dist/module/user/entity/user-role-mapping.entity.js +1 -1
  72. package/dist/module/user/entity/user-role-mapping.entity.js.map +1 -1
  73. package/dist/module/user/service/login.service.js +1 -1
  74. package/dist/module/user/service/login.service.js.map +1 -1
  75. package/dist/module/user/service/role.service.js +4 -4
  76. package/dist/module/user/service/user-session.service.js +4 -4
  77. package/dist/module/user/service/user-session.service.js.map +1 -1
  78. package/dist/module/workflow/entity/action-data.entity.js +1 -1
  79. package/dist/module/workflow/entity/action-data.entity.js.map +1 -1
  80. package/dist/module/workflow/entity/action.entity.d.ts +1 -0
  81. package/dist/module/workflow/entity/action.entity.js +5 -1
  82. package/dist/module/workflow/entity/action.entity.js.map +1 -1
  83. package/dist/module/workflow/entity/comm-template.entity.js +1 -1
  84. package/dist/module/workflow/entity/comm-template.entity.js.map +1 -1
  85. package/dist/module/workflow/entity/template-attach-mapper.entity.js +1 -1
  86. package/dist/module/workflow/entity/template-attach-mapper.entity.js.map +1 -1
  87. package/dist/module/workflow/repository/action-data.repository.js +4 -4
  88. package/dist/module/workflow/repository/action-data.repository.js.map +1 -1
  89. package/dist/module/workflow/repository/action.repository.js +21 -21
  90. package/dist/module/workflow/repository/action.repository.js.map +1 -1
  91. package/dist/module/workflow/repository/comm-template.repository.js +7 -7
  92. package/dist/module/workflow/repository/comm-template.repository.js.map +1 -1
  93. package/dist/module/workflow/repository/form-master.repository.js +3 -3
  94. package/dist/module/workflow/repository/form-master.repository.js.map +1 -1
  95. package/dist/module/workflow/repository/stage-group.repository.js +23 -23
  96. package/dist/module/workflow/repository/stage-movement.repository.js +17 -17
  97. package/dist/module/workflow/repository/stage-movement.repository.js.map +1 -1
  98. package/dist/module/workflow/repository/stage.repository.js +8 -8
  99. package/dist/module/workflow/repository/task.repository.d.ts +3 -1
  100. package/dist/module/workflow/repository/task.repository.js +8 -3
  101. package/dist/module/workflow/repository/task.repository.js.map +1 -1
  102. package/dist/module/workflow/service/action-template-mapping.service.js +22 -22
  103. package/dist/module/workflow/service/action.service.js +13 -13
  104. package/dist/module/workflow/service/action.service.js.map +1 -1
  105. package/dist/module/workflow/service/entity-modification.service.js +6 -6
  106. package/dist/module/workflow/service/populate-workflow.service.js +8 -8
  107. package/dist/module/workflow/service/populate-workflow.service.js.map +1 -1
  108. package/dist/module/workflow/service/stage-group.service.js +6 -6
  109. package/dist/module/workflow/service/stage-group.service.js.map +1 -1
  110. package/dist/module/workflow/service/stage.service.js +4 -4
  111. package/dist/module/workflow/service/stage.service.js.map +1 -1
  112. package/dist/module/workflow/service/task.service.js +40 -44
  113. package/dist/module/workflow/service/task.service.js.map +1 -1
  114. package/dist/module/workflow/service/workflow-list-master.service.js +16 -16
  115. package/dist/module/workflow/service/workflow-list-master.service.js.map +1 -1
  116. package/dist/module/workflow/service/workflow-meta.service.js +53 -51
  117. package/dist/module/workflow/service/workflow-meta.service.js.map +1 -1
  118. package/dist/module/workflow/service/workflow.service.js +5 -5
  119. package/dist/module/workflow/service/workflow.service.js.map +1 -1
  120. package/dist/module/workflow-automation/controller/workflow-automation.controller.d.ts +6 -0
  121. package/dist/module/workflow-automation/controller/workflow-automation.controller.js +16 -0
  122. package/dist/module/workflow-automation/controller/workflow-automation.controller.js.map +1 -1
  123. package/dist/module/workflow-automation/entity/workflow-automation.entity.d.ts +1 -0
  124. package/dist/module/workflow-automation/entity/workflow-automation.entity.js +4 -0
  125. package/dist/module/workflow-automation/entity/workflow-automation.entity.js.map +1 -1
  126. package/dist/module/workflow-automation/service/workflow-automation-engine.service.js +1 -1
  127. package/dist/module/workflow-automation/service/workflow-automation-engine.service.js.map +1 -1
  128. package/dist/module/workflow-automation/service/workflow-automation.service.d.ts +5 -0
  129. package/dist/module/workflow-automation/service/workflow-automation.service.js +45 -0
  130. package/dist/module/workflow-automation/service/workflow-automation.service.js.map +1 -1
  131. package/dist/tsconfig.build.tsbuildinfo +1 -1
  132. package/dist/utils/service/loggingUtil.service.d.ts +9 -2
  133. package/dist/utils/service/loggingUtil.service.js +65 -14
  134. package/dist/utils/service/loggingUtil.service.js.map +1 -1
  135. package/dist/utils/service/reflection-helper.service.js +3 -3
  136. package/dist/utils/service/reflection-helper.service.js.map +1 -1
  137. package/dist/utils/utils.module.js +2 -0
  138. package/dist/utils/utils.module.js.map +1 -1
  139. package/docs/modules/event-driven-integration-design.md +91 -91
  140. package/docs/modules/integration.md +250 -250
  141. package/eslint.config.mjs +34 -34
  142. package/nest-cli.json +14 -14
  143. package/package.json +119 -120
  144. package/src/app.controller.ts +12 -12
  145. package/src/app.module.ts +52 -52
  146. package/src/app.service.ts +8 -8
  147. package/src/config/config.module.ts +18 -17
  148. package/src/config/database.config.ts +23 -47
  149. package/src/constant/global.constant.ts +67 -67
  150. package/src/core.module.ts +81 -81
  151. package/src/decorators/roles.decorator.ts +7 -7
  152. package/src/dtos/response.dto.ts +6 -6
  153. package/src/dtos/response.ts +5 -5
  154. package/src/index.ts +1 -1
  155. package/src/module/auth/auth.module.ts +49 -49
  156. package/src/module/auth/controller/auth.controller.ts +28 -28
  157. package/src/module/auth/guards/google-auth.guard.ts +9 -9
  158. package/src/module/auth/guards/jwt.guard.ts +22 -22
  159. package/src/module/auth/guards/role.guard.ts +68 -68
  160. package/src/module/auth/services/auth.service.ts +50 -50
  161. package/src/module/auth/services/jwt.service.ts +11 -11
  162. package/src/module/auth/strategies/google.strategy.ts +54 -54
  163. package/src/module/auth/strategies/jwt.strategy.ts +58 -58
  164. package/src/module/auth/strategies/local.strategy.ts +13 -13
  165. package/src/module/dashboard/controller/dashboard.controller.ts +36 -36
  166. package/src/module/dashboard/dashboard.module.ts +21 -21
  167. package/src/module/dashboard/entity/dashboard_page_data.entity.ts +27 -27
  168. package/src/module/dashboard/entity/widget_master.entity.ts +18 -18
  169. package/src/module/dashboard/repository/dashboard.repository.ts +42 -42
  170. package/src/module/dashboard/service/dashboard.service.ts +73 -73
  171. package/src/module/dev/dev.module.ts +12 -12
  172. package/src/module/dev/service/dev.service.ts +7 -7
  173. package/src/module/enterprise/controller/organization.controller.ts +36 -36
  174. package/src/module/enterprise/enterprise.module.ts +30 -30
  175. package/src/module/enterprise/entity/enterprise.entity.ts +37 -37
  176. package/src/module/enterprise/entity/organization-app-mapping.entity.ts +13 -13
  177. package/src/module/enterprise/entity/organization.entity.ts +92 -92
  178. package/src/module/enterprise/repository/enterprise.repository.ts +31 -31
  179. package/src/module/enterprise/repository/organization.repository.ts +26 -26
  180. package/src/module/enterprise/repository/school.repository.ts +278 -278
  181. package/src/module/enterprise/service/brand.service.ts +5 -5
  182. package/src/module/enterprise/service/enterprise.service.ts +16 -16
  183. package/src/module/enterprise/service/organization-app-mapping.service.ts +4 -4
  184. package/src/module/enterprise/service/organization.service.ts +145 -145
  185. package/src/module/filter/controller/filter.controller.ts +84 -84
  186. package/src/module/filter/dto/filter-request.dto.ts +38 -38
  187. package/src/module/filter/entity/saved-filter-detail.entity.ts +41 -41
  188. package/src/module/filter/entity/saved-filter-master.entity.ts +23 -23
  189. package/src/module/filter/filter.module.ts +31 -31
  190. package/src/module/filter/repository/saved-filter.repository.ts +168 -168
  191. package/src/module/filter/service/filter-evaluator.service.ts +86 -86
  192. package/src/module/filter/service/filter.service.ts +1005 -1022
  193. package/src/module/filter/service/saved-filter.service.ts +170 -170
  194. package/src/module/ics/controller/ics.controller.ts +21 -21
  195. package/src/module/ics/dto/ics.dto.ts +55 -55
  196. package/src/module/ics/ics.module.ts +13 -13
  197. package/src/module/ics/service/ics.service.ts +57 -57
  198. package/src/module/integration/controller/calender-event.controller.ts +31 -31
  199. package/src/module/integration/controller/integration.controller.ts +662 -662
  200. package/src/module/integration/controller/wrapper.controller.ts +37 -37
  201. package/src/module/integration/dto/create-config.dto.ts +526 -526
  202. package/src/module/integration/entity/integration-config.entity.ts +112 -112
  203. package/src/module/integration/entity/integration-entity-mapper.entity.ts +14 -14
  204. package/src/module/integration/entity/integration-source.entity.ts +17 -17
  205. package/src/module/integration/entity/user-integration.entity.ts +71 -71
  206. package/src/module/integration/examples/usage.example.ts +338 -338
  207. package/src/module/integration/factories/base.factory.ts +7 -7
  208. package/src/module/integration/factories/email.factory.ts +49 -49
  209. package/src/module/integration/factories/integration.factory.ts +121 -121
  210. package/src/module/integration/factories/sms.factory.ts +51 -51
  211. package/src/module/integration/factories/telephone.factory.ts +41 -41
  212. package/src/module/integration/factories/whatsapp.factory.ts +56 -56
  213. package/src/module/integration/integration.module.ts +110 -110
  214. package/src/module/integration/service/calendar-event.service.ts +118 -118
  215. package/src/module/integration/service/integration-entity-mapper.service.ts +17 -17
  216. package/src/module/integration/service/integration-queue.service.ts +229 -229
  217. package/src/module/integration/service/integration.service.ts +2633 -2633
  218. package/src/module/integration/service/oauth.service.ts +224 -224
  219. package/src/module/integration/service/wrapper.service.ts +700 -494
  220. package/src/module/integration/strategies/email/gmail-api.strategy.ts +280 -280
  221. package/src/module/integration/strategies/email/outlook-api.strategy.ts +44 -44
  222. package/src/module/integration/strategies/email/outlook.strategy.ts +64 -64
  223. package/src/module/integration/strategies/email/sendgrid-api.strategy.ts +260 -260
  224. package/src/module/integration/strategies/integration.strategy.ts +97 -97
  225. package/src/module/integration/strategies/sms/gupshup-sms.strategy.ts +146 -146
  226. package/src/module/integration/strategies/sms/msg91-sms.strategy.ts +164 -164
  227. package/src/module/integration/strategies/sms/tubelight-sms.strategy.ts +163 -163
  228. package/src/module/integration/strategies/telephone/ozonetel-voice.strategy.ts +238 -238
  229. package/src/module/integration/strategies/telephone/tubelight-voice.strategy.ts +210 -210
  230. package/src/module/integration/strategies/whatsapp/gupshup-whatsapp.strategy.ts +359 -359
  231. package/src/module/integration/strategies/whatsapp/tubelight-whatsapp.strategy.ts +372 -372
  232. package/src/module/integration/strategies/whatsapp/whatsapp-cloud.strategy.ts +403 -403
  233. package/src/module/integration/strategies/whatsapp/whatsapp.strategy.ts +57 -57
  234. package/src/module/layout/controller/layout.controller.ts +47 -47
  235. package/src/module/layout/entity/header-items.entity.ts +28 -28
  236. package/src/module/layout/entity/header-section.entity.ts +19 -19
  237. package/src/module/layout/layout.module.ts +21 -21
  238. package/src/module/layout/repository/header-items.repository.ts +18 -18
  239. package/src/module/layout/repository/header-section.repository.ts +22 -22
  240. package/src/module/layout/service/header-section.service.ts +25 -25
  241. package/src/module/layout_preference/controller/layout_preference.controller.ts +73 -73
  242. package/src/module/layout_preference/entity/layout_preference.entity.ts +28 -28
  243. package/src/module/layout_preference/layout_preference.module.ts +22 -22
  244. package/src/module/layout_preference/repository/layout_preference.repository.ts +65 -65
  245. package/src/module/layout_preference/service/layout_preference.service.ts +191 -191
  246. package/src/module/lead/controller/lead.controller.ts +30 -30
  247. package/src/module/lead/lead.module.ts +14 -14
  248. package/src/module/lead/repository/lead.repository.ts +41 -41
  249. package/src/module/lead/service/lead.service.ts +54 -54
  250. package/src/module/listmaster/controller/list-master.controller.ts +230 -230
  251. package/src/module/listmaster/entity/list-master-items.entity.ts +43 -43
  252. package/src/module/listmaster/entity/list-master.entity.ts +33 -33
  253. package/src/module/listmaster/listmaster.module.ts +46 -46
  254. package/src/module/listmaster/repository/list-master-items.repository.ts +169 -169
  255. package/src/module/listmaster/repository/list-master.repository.ts +46 -46
  256. package/src/module/listmaster/service/list-master-engine.ts +19 -19
  257. package/src/module/listmaster/service/list-master-extension.interface.ts +4 -4
  258. package/src/module/listmaster/service/list-master-item.service.ts +292 -292
  259. package/src/module/listmaster/service/list-master-registry.ts +15 -15
  260. package/src/module/listmaster/service/list-master.service.ts +535 -535
  261. package/src/module/mapper/controller/field-mapper.controller.ts +76 -76
  262. package/src/module/mapper/controller/mapper.controller.ts +20 -20
  263. package/src/module/mapper/dto/field-mapper.dto.ts +14 -14
  264. package/src/module/mapper/entity/field-lovs.entity.ts +19 -19
  265. package/src/module/mapper/entity/field-mapper.entity.ts +53 -53
  266. package/src/module/mapper/entity/mapper.entity.ts +16 -16
  267. package/src/module/mapper/mapper.module.ts +34 -34
  268. package/src/module/mapper/repository/field-lovs.repository.ts +35 -35
  269. package/src/module/mapper/repository/field-mapper.repository.ts +42 -42
  270. package/src/module/mapper/repository/mapper.repository.ts +15 -15
  271. package/src/module/mapper/service/field-mapper.service.ts +271 -266
  272. package/src/module/mapper/service/mapper.service.ts +79 -79
  273. package/src/module/master/controller/master.controller.ts +74 -74
  274. package/src/module/master/service/master.service.ts +483 -483
  275. package/src/module/meta/controller/app-master.controller.ts +38 -38
  276. package/src/module/meta/controller/attribute-master.controller.ts +66 -66
  277. package/src/module/meta/controller/entity-dynamic.controller.ts +125 -125
  278. package/src/module/meta/controller/entity-master.controller.ts +28 -28
  279. package/src/module/meta/controller/entity-relation.controller.ts +36 -36
  280. package/src/module/meta/controller/entity.controller.ts +392 -392
  281. package/src/module/meta/controller/entity.public.controller.ts +75 -75
  282. package/src/module/meta/controller/media.controller.ts +107 -107
  283. package/src/module/meta/controller/meta.controller.ts +96 -96
  284. package/src/module/meta/controller/view-master.controller.ts +86 -86
  285. package/src/module/meta/dto/entity-list-data.dto.ts +6 -6
  286. package/src/module/meta/dto/entity-tab.dto.ts +4 -4
  287. package/src/module/meta/dto/entity-table.dto.ts +9 -9
  288. package/src/module/meta/entity/app-master.entity.ts +34 -34
  289. package/src/module/meta/entity/attribute-master.entity.ts +89 -89
  290. package/src/module/meta/entity/base-entity.entity.ts +75 -75
  291. package/src/module/meta/entity/entity-master.entity.ts +85 -85
  292. package/src/module/meta/entity/entity-relation-data.entity.ts +29 -29
  293. package/src/module/meta/entity/entity-relation.entity.ts +23 -23
  294. package/src/module/meta/entity/entity-table-column.entity.ts +61 -61
  295. package/src/module/meta/entity/entity-table.entity.ts +50 -50
  296. package/src/module/meta/entity/media-data.entity.ts +32 -32
  297. package/src/module/meta/entity/preference.entity.ts +62 -62
  298. package/src/module/meta/entity/view-master.entity.ts +41 -41
  299. package/src/module/meta/entity.module.ts +158 -158
  300. package/src/module/meta/repository/app-master.repository.ts +20 -20
  301. package/src/module/meta/repository/attribute-master.repository.ts +118 -118
  302. package/src/module/meta/repository/entity-master.repository.ts +69 -69
  303. package/src/module/meta/repository/entity-table-column.repository.ts +39 -39
  304. package/src/module/meta/repository/entity-table.repository.ts +53 -53
  305. package/src/module/meta/repository/media-data.repository.ts +50 -50
  306. package/src/module/meta/repository/preference.repository.ts +20 -20
  307. package/src/module/meta/repository/user-app-mapping.repository.ts +28 -28
  308. package/src/module/meta/repository/view-master.repository.ts +42 -42
  309. package/src/module/meta/service/app-master.service.ts +37 -37
  310. package/src/module/meta/service/attribute-master.service.ts +126 -126
  311. package/src/module/meta/service/common.service.ts +9 -9
  312. package/src/module/meta/service/entity-dynamic.service.ts +819 -819
  313. package/src/module/meta/service/entity-list.service.ts +205 -205
  314. package/src/module/meta/service/entity-master.service.ts +169 -169
  315. package/src/module/meta/service/entity-realation-data.service.ts +9 -9
  316. package/src/module/meta/service/entity-relation.service.ts +69 -69
  317. package/src/module/meta/service/entity-service-impl.service.ts +525 -525
  318. package/src/module/meta/service/entity-table-column.service.ts +39 -39
  319. package/src/module/meta/service/entity-table.service.ts +150 -150
  320. package/src/module/meta/service/entity-validation.service.ts +187 -187
  321. package/src/module/meta/service/entity.service.ts +67 -67
  322. package/src/module/meta/service/field-group.service.ts +103 -103
  323. package/src/module/meta/service/media-data.service.ts +507 -507
  324. package/src/module/meta/service/populate-meta.service.ts +193 -193
  325. package/src/module/meta/service/preference.service.ts +16 -16
  326. package/src/module/meta/service/resolver.service.ts +267 -267
  327. package/src/module/meta/service/section-master.service.ts +104 -104
  328. package/src/module/meta/service/update-form-json.service.ts +22 -22
  329. package/src/module/meta/service/user-app-mapping.service.ts +17 -17
  330. package/src/module/meta/service/view-master.service.ts +127 -127
  331. package/src/module/microservice-client/microservice-clients.module.ts +13 -13
  332. package/src/module/microservice-client/service/microservice-client-factory.ts +37 -37
  333. package/src/module/microservice-client/service/microservice-clients.ts +4 -4
  334. package/src/module/module/controller/menu.controller.ts +15 -15
  335. package/src/module/module/controller/module-access.controller.ts +134 -134
  336. package/src/module/module/entity/menu.entity.ts +43 -43
  337. package/src/module/module/entity/module-access.entity.ts +25 -25
  338. package/src/module/module/entity/module-action.entity.ts +17 -17
  339. package/src/module/module/entity/module.entity.ts +52 -52
  340. package/src/module/module/module.module.ts +42 -42
  341. package/src/module/module/repository/menu.repository.ts +184 -184
  342. package/src/module/module/repository/module-access.repository.ts +344 -344
  343. package/src/module/module/service/menu.service.ts +82 -82
  344. package/src/module/module/service/module-access.service.ts +209 -209
  345. package/src/module/notification/controller/notification.controller.ts +58 -58
  346. package/src/module/notification/controller/otp.controller.ts +117 -117
  347. package/src/module/notification/entity/notification.entity.ts +26 -26
  348. package/src/module/notification/entity/otp.entity.ts +28 -28
  349. package/src/module/notification/firebase-admin.config.ts +22 -22
  350. package/src/module/notification/notification.module.ts +69 -69
  351. package/src/module/notification/repository/otp.repository.ts +27 -27
  352. package/src/module/notification/service/email.service.ts +127 -127
  353. package/src/module/notification/service/notification.service.ts +163 -163
  354. package/src/module/notification/service/otp.service.ts +132 -132
  355. package/src/module/third-party-module/entity/third-party-api-registry.entity.ts +52 -52
  356. package/src/module/third-party-module/repository/third-party-api-registry.repository.ts +20 -20
  357. package/src/module/third-party-module/service/api-registry.service.ts +13 -13
  358. package/src/module/third-party-module/third-party.module.ts +12 -12
  359. package/src/module/user/controller/login.controller.ts +197 -197
  360. package/src/module/user/controller/user.controller.ts +40 -40
  361. package/src/module/user/dto/create-user.dto.ts +62 -62
  362. package/src/module/user/dto/update-user.dto.ts +4 -4
  363. package/src/module/user/entity/role.entity.ts +33 -33
  364. package/src/module/user/entity/user-role-mapping.entity.ts +38 -38
  365. package/src/module/user/entity/user-session.entity.ts +73 -73
  366. package/src/module/user/entity/user.entity.ts +59 -59
  367. package/src/module/user/repository/role.repository.ts +96 -96
  368. package/src/module/user/repository/user-role-mapping.repository.ts +126 -126
  369. package/src/module/user/repository/user.repository.ts +50 -50
  370. package/src/module/user/repository/userSession.repository.ts +33 -33
  371. package/src/module/user/service/login.service.ts +304 -304
  372. package/src/module/user/service/role.service.ts +189 -189
  373. package/src/module/user/service/user-role-mapping.service.ts +98 -98
  374. package/src/module/user/service/user-session.service.ts +168 -168
  375. package/src/module/user/service/user.service.ts +365 -365
  376. package/src/module/user/user.module.ts +65 -65
  377. package/src/module/workflow/controller/action-category.controller.ts +54 -54
  378. package/src/module/workflow/controller/action-resource-mapping.controller.ts +23 -23
  379. package/src/module/workflow/controller/action-template-mapping.controller.ts +35 -35
  380. package/src/module/workflow/controller/action.controller.ts +111 -111
  381. package/src/module/workflow/controller/activity-log.controller.ts +55 -55
  382. package/src/module/workflow/controller/comm-template.controller.ts +43 -43
  383. package/src/module/workflow/controller/entity-modification.controller.ts +35 -35
  384. package/src/module/workflow/controller/form-master.controller.ts +43 -43
  385. package/src/module/workflow/controller/stage-group.controller.ts +48 -48
  386. package/src/module/workflow/controller/stage.controller.ts +50 -50
  387. package/src/module/workflow/controller/task.controller.ts +77 -77
  388. package/src/module/workflow/controller/workflow-list-master.controller.ts +44 -44
  389. package/src/module/workflow/controller/workflow-meta.controller.ts +80 -80
  390. package/src/module/workflow/controller/workflow.controller.ts +67 -67
  391. package/src/module/workflow/entity/action-category.entity.ts +38 -38
  392. package/src/module/workflow/entity/action-data.entity.ts +55 -55
  393. package/src/module/workflow/entity/action-resources-mapping.entity.ts +29 -29
  394. package/src/module/workflow/entity/action-template-mapping.entity.ts +17 -17
  395. package/src/module/workflow/entity/action.entity.ts +53 -50
  396. package/src/module/workflow/entity/activity-log.entity.ts +43 -43
  397. package/src/module/workflow/entity/comm-template.entity.ts +43 -43
  398. package/src/module/workflow/entity/entity-modification.entity.ts +38 -38
  399. package/src/module/workflow/entity/form.entity.ts +25 -25
  400. package/src/module/workflow/entity/stage-action-mapping.entity.ts +17 -17
  401. package/src/module/workflow/entity/stage-group.entity.ts +23 -23
  402. package/src/module/workflow/entity/stage-movement-data.entity.ts +38 -38
  403. package/src/module/workflow/entity/stage.entity.ts +20 -20
  404. package/src/module/workflow/entity/task-data.entity.ts +88 -88
  405. package/src/module/workflow/entity/template-attach-mapper.entity.ts +30 -30
  406. package/src/module/workflow/entity/workflow-data.entity.ts +11 -11
  407. package/src/module/workflow/entity/workflow-level-mapping.entity.ts +18 -18
  408. package/src/module/workflow/entity/workflow.entity.ts +20 -20
  409. package/src/module/workflow/repository/action-category.repository.ts +79 -79
  410. package/src/module/workflow/repository/action-data.repository.ts +333 -333
  411. package/src/module/workflow/repository/action.repository.ts +323 -323
  412. package/src/module/workflow/repository/activity-log.repository.ts +148 -148
  413. package/src/module/workflow/repository/comm-template.repository.ts +149 -149
  414. package/src/module/workflow/repository/form-master.repository.ts +59 -59
  415. package/src/module/workflow/repository/stage-group.repository.ts +176 -176
  416. package/src/module/workflow/repository/stage-movement.repository.ts +244 -244
  417. package/src/module/workflow/repository/stage.repository.ts +172 -172
  418. package/src/module/workflow/repository/task.repository.ts +134 -127
  419. package/src/module/workflow/repository/workflow.repository.ts +42 -42
  420. package/src/module/workflow/service/action-category.service.ts +33 -33
  421. package/src/module/workflow/service/action-data.service.ts +62 -62
  422. package/src/module/workflow/service/action-resources-mapping.service.ts +10 -10
  423. package/src/module/workflow/service/action-template-mapping.service.ts +106 -106
  424. package/src/module/workflow/service/action.service.ts +279 -279
  425. package/src/module/workflow/service/activity-log.service.ts +107 -107
  426. package/src/module/workflow/service/comm-template.service.ts +180 -180
  427. package/src/module/workflow/service/entity-modification.service.ts +67 -67
  428. package/src/module/workflow/service/form-master.service.ts +35 -35
  429. package/src/module/workflow/service/populate-workflow.service.ts +303 -303
  430. package/src/module/workflow/service/stage-action-mapping.service.ts +5 -5
  431. package/src/module/workflow/service/stage-group.service.ts +319 -319
  432. package/src/module/workflow/service/stage.service.ts +199 -199
  433. package/src/module/workflow/service/task.service.ts +553 -560
  434. package/src/module/workflow/service/workflow-list-master.service.ts +60 -60
  435. package/src/module/workflow/service/workflow-meta.service.ts +654 -640
  436. package/src/module/workflow/service/workflow.service.ts +205 -205
  437. package/src/module/workflow/workflow.module.ts +176 -176
  438. package/src/module/workflow-automation/controller/workflow-automation.controller.ts +43 -21
  439. package/src/module/workflow-automation/entity/workflow-automation-action.entity.ts +26 -26
  440. package/src/module/workflow-automation/entity/workflow-automation.entity.ts +38 -35
  441. package/src/module/workflow-automation/interface/action.decorator.ts +7 -7
  442. package/src/module/workflow-automation/interface/action.interface.ts +5 -5
  443. package/src/module/workflow-automation/service/action-registery.service.ts +35 -35
  444. package/src/module/workflow-automation/service/workflow-automation-engine.service.ts +214 -214
  445. package/src/module/workflow-automation/service/workflow-automation.service.ts +421 -347
  446. package/src/module/workflow-automation/workflow-automation.module.ts +34 -34
  447. package/src/resources/dev.properties.yaml +30 -31
  448. package/src/resources/local.properties.yaml +27 -27
  449. package/src/resources/properties.module.ts +12 -12
  450. package/src/resources/properties.yaml.ts +11 -11
  451. package/src/resources/uat.properties.yaml +31 -31
  452. package/src/table.config.ts +126 -126
  453. package/src/utils/dto/excel-data.dto.ts +14 -14
  454. package/src/utils/dto/excelsheet-data.dto.ts +5 -5
  455. package/src/utils/service/base64util.service.ts +18 -18
  456. package/src/utils/service/clockIDGenUtil.service.ts +21 -21
  457. package/src/utils/service/codeGenerator.service.ts +22 -22
  458. package/src/utils/service/dateUtil.service.ts +17 -17
  459. package/src/utils/service/encryptUtil.service.ts +97 -97
  460. package/src/utils/service/excel-helper.service.ts +72 -72
  461. package/src/utils/service/excelUtil.service.ts +15 -15
  462. package/src/utils/service/file-util.service.ts +11 -11
  463. package/src/utils/service/json-util.service.ts +23 -23
  464. package/src/utils/service/loggingUtil.service.ts +88 -34
  465. package/src/utils/service/reflection-helper.service.ts +62 -62
  466. package/src/utils/service/wbsCodeGen.service.ts +8 -8
  467. package/src/utils/utils.module.ts +27 -25
  468. package/tsconfig.build.json +4 -4
  469. package/tsconfig.json +24 -24
  470. package/.claude/settings.local.json +0 -26
  471. package/.idea/250218_nodejs_core.iml +0 -9
  472. package/.idea/codeStyles/Project.xml +0 -59
  473. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  474. package/.idea/copilot.data.migration.agent.xml +0 -6
  475. package/.idea/copilot.data.migration.ask.xml +0 -6
  476. package/.idea/copilot.data.migration.ask2agent.xml +0 -6
  477. package/.idea/copilot.data.migration.edit.xml +0 -6
  478. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  479. package/.idea/misc.xml +0 -6
  480. package/.idea/modules.xml +0 -8
  481. package/.idea/prettier.xml +0 -6
  482. package/.idea/vcs.xml +0 -6
  483. package/server.log +0 -850
@@ -1,18 +1,18 @@
1
- export class Base64Util {
2
- static encode(byteArray: Uint8Array): string {
3
- return Buffer.from(byteArray).toString('base64');
4
- }
5
-
6
- static decode(base64String: string): Uint8Array {
7
- if (typeof Buffer !== 'undefined') {
8
- return Uint8Array.from(Buffer.from(base64String, 'base64'));
9
- }
10
-
11
- const binaryString = atob(base64String);
12
- const byteArray = new Uint8Array(binaryString.length);
13
- for (let i = 0; i < binaryString.length; i++) {
14
- byteArray[i] = binaryString.charCodeAt(i);
15
- }
16
- return byteArray;
17
- }
18
- }
1
+ export class Base64Util {
2
+ static encode(byteArray: Uint8Array): string {
3
+ return Buffer.from(byteArray).toString('base64');
4
+ }
5
+
6
+ static decode(base64String: string): Uint8Array {
7
+ if (typeof Buffer !== 'undefined') {
8
+ return Uint8Array.from(Buffer.from(base64String, 'base64'));
9
+ }
10
+
11
+ const binaryString = atob(base64String);
12
+ const byteArray = new Uint8Array(binaryString.length);
13
+ for (let i = 0; i < binaryString.length; i++) {
14
+ byteArray[i] = binaryString.charCodeAt(i);
15
+ }
16
+ return byteArray;
17
+ }
18
+ }
@@ -1,21 +1,21 @@
1
- import { Injectable } from '@nestjs/common';
2
-
3
- @Injectable()
4
- export class ClockIDGenService {
5
- private _counter = 0n;
6
- private timestampBits = 42;
7
- private timestampMask = BigInt(
8
- Math.floor(Math.pow(2, this.timestampBits)) - 1,
9
- );
10
- private counterBits = 10;
11
- private counterMask = BigInt(Math.floor(Math.pow(2, this.counterBits)) - 1);
12
-
13
- idGenerator(prefix?: string): string {
14
- const timestamp = BigInt(Date.now()) & this.timestampMask;
15
- const counter = BigInt(this._counter++) & this.counterMask;
16
- let now = timestamp << BigInt(this.counterBits);
17
- now = now | counter;
18
- const id = now.toString(36).toUpperCase();
19
- return prefix ? prefix + id : id;
20
- }
21
- }
1
+ import { Injectable } from '@nestjs/common';
2
+
3
+ @Injectable()
4
+ export class ClockIDGenService {
5
+ private _counter = 0n;
6
+ private timestampBits = 42;
7
+ private timestampMask = BigInt(
8
+ Math.floor(Math.pow(2, this.timestampBits)) - 1,
9
+ );
10
+ private counterBits = 10;
11
+ private counterMask = BigInt(Math.floor(Math.pow(2, this.counterBits)) - 1);
12
+
13
+ idGenerator(prefix?: string): string {
14
+ const timestamp = BigInt(Date.now()) & this.timestampMask;
15
+ const counter = BigInt(this._counter++) & this.counterMask;
16
+ let now = timestamp << BigInt(this.counterBits);
17
+ now = now | counter;
18
+ const id = now.toString(36).toUpperCase();
19
+ return prefix ? prefix + id : id;
20
+ }
21
+ }
@@ -1,22 +1,22 @@
1
- export class CodeGeneratorService {
2
- static generateCode(input_string: string) {
3
- if (!input_string) {
4
- throw new Error('Input string cannot be empty');
5
- }
6
-
7
- // Step 1: Trim, to lowercase
8
- let code = input_string.trim().toLowerCase();
9
-
10
- // Step 2: Replace all whitespace with underscores
11
- code = code.replace(/\s+/g, '_');
12
-
13
- // Step 3: Remove all non-alphanumeric and non-underscore characters
14
- const sanitizedCode = code.replace(/[^a-z0-9_]/g, '');
15
-
16
- if (!sanitizedCode) {
17
- throw new Error('Invalid input string, cannot generate code');
18
- }
19
-
20
- return sanitizedCode;
21
- }
22
- }
1
+ export class CodeGeneratorService {
2
+ static generateCode(input_string: string) {
3
+ if (!input_string) {
4
+ throw new Error('Input string cannot be empty');
5
+ }
6
+
7
+ // Step 1: Trim, to lowercase
8
+ let code = input_string.trim().toLowerCase();
9
+
10
+ // Step 2: Replace all whitespace with underscores
11
+ code = code.replace(/\s+/g, '_');
12
+
13
+ // Step 3: Remove all non-alphanumeric and non-underscore characters
14
+ const sanitizedCode = code.replace(/[^a-z0-9_]/g, '');
15
+
16
+ if (!sanitizedCode) {
17
+ throw new Error('Invalid input string, cannot generate code');
18
+ }
19
+
20
+ return sanitizedCode;
21
+ }
22
+ }
@@ -1,17 +1,17 @@
1
- import { Injectable } from '@nestjs/common';
2
-
3
- @Injectable()
4
- export class DateUtil {
5
- static formatDate(date: Date, format: string): string {
6
- const map: { [key: string]: string } = {
7
- dd: String(date.getDate()).padStart(2, '0'),
8
- MM: String(date.getMonth() + 1).padStart(2, '0'),
9
- yyyy: String(date.getFullYear()),
10
- HH: String(date.getHours()).padStart(2, '0'),
11
- mm: String(date.getMinutes()).padStart(2, '0'),
12
- ss: String(date.getSeconds()).padStart(2, '0'),
13
- };
14
-
15
- return format.replace(/dd|MM|yyyy|HH|mm|ss/g, (matched) => map[matched]);
16
- }
17
- }
1
+ import { Injectable } from '@nestjs/common';
2
+
3
+ @Injectable()
4
+ export class DateUtil {
5
+ static formatDate(date: Date, format: string): string {
6
+ const map: { [key: string]: string } = {
7
+ dd: String(date.getDate()).padStart(2, '0'),
8
+ MM: String(date.getMonth() + 1).padStart(2, '0'),
9
+ yyyy: String(date.getFullYear()),
10
+ HH: String(date.getHours()).padStart(2, '0'),
11
+ mm: String(date.getMinutes()).padStart(2, '0'),
12
+ ss: String(date.getSeconds()).padStart(2, '0'),
13
+ };
14
+
15
+ return format.replace(/dd|MM|yyyy|HH|mm|ss/g, (matched) => map[matched]);
16
+ }
17
+ }
@@ -1,97 +1,97 @@
1
- import { Injectable, InternalServerErrorException } from '@nestjs/common';
2
- import * as crypto from 'crypto';
3
-
4
- const CryptoJS = require('crypto-js');
5
- const encryptionType = 'aes-256-cbc';
6
-
7
- @Injectable()
8
- export class EncryptUtilService {
9
- constructor() {}
10
-
11
- static encryptGCM(data: any, Datakey: string, Dataiv: string) {
12
- try {
13
- const cipher = crypto.createCipheriv('aes-256-gcm', Datakey, Dataiv);
14
- const encrypted = Buffer.concat([
15
- cipher.update(data, 'utf8'),
16
- cipher.final(),
17
- ]);
18
- const tag = cipher.getAuthTag();
19
- return Buffer.concat([encrypted, tag]).toString('base64');
20
- } catch (error) {
21
- throw new InternalServerErrorException('Encryption process failed');
22
- }
23
- }
24
-
25
- static decryptGCM(data: any, Datakey: any, Dataiv: any) {
26
- try {
27
- data = Buffer.from(data, 'base64');
28
- const decipher = crypto.createDecipheriv('aes-256-gcm', Datakey, Dataiv);
29
- const tag = data.slice(data.length - 16);
30
- decipher.setAuthTag(tag);
31
- data = data.slice(0, data.length - 16);
32
- const decrypted = decipher.update(data, 'utf8') + decipher.final('utf8');
33
- return decrypted;
34
- } catch (error) {
35
- throw new InternalServerErrorException('Decryption process failed');
36
- }
37
- }
38
-
39
- static encryptCBC(data: any, Datakey: any, Dataiv: any) {
40
- let encryptedRequest;
41
- try {
42
- const cipher = CryptoJS.AES.encrypt(data, Datakey, {
43
- iv: Dataiv,
44
- mode: CryptoJS.mode.CBC,
45
- });
46
- encryptedRequest = cipher.toString();
47
- } catch (error) {
48
- console.log(error);
49
- throw new InternalServerErrorException('Encryption process failed');
50
- }
51
- return encryptedRequest;
52
- }
53
-
54
- static decryptCBC(data: any, Datakey: any, Dataiv: any) {
55
- let decryptRequest;
56
- try {
57
- const cipher = CryptoJS.AES.decrypt(data, Datakey, {
58
- iv: Dataiv,
59
- mode: CryptoJS.mode.CBC,
60
- });
61
- decryptRequest = cipher.toString(CryptoJS.enc.Utf8);
62
- } catch (error) {
63
- throw new InternalServerErrorException('Encryption process failed');
64
- }
65
- return decryptRequest;
66
- }
67
-
68
- static encryptRequest(data: any, Datakey: any, Dataiv: any, type?: any) {
69
- try {
70
- switch (type) {
71
- case 'GCM':
72
- return this.encryptGCM(data, Datakey, Dataiv);
73
- case 'CBC':
74
- return this.encryptCBC(data, Datakey, Dataiv);
75
- default:
76
- return this.encryptCBC(data, Datakey, Dataiv);
77
- }
78
- } catch (error) {
79
- throw new InternalServerErrorException('Encryption process failed');
80
- }
81
- }
82
-
83
- static decryptRequest(data: any, Datakey: any, Dataiv: any, type?: any) {
84
- try {
85
- switch (type) {
86
- case 'GCM':
87
- return this.decryptGCM(data, Datakey, Dataiv);
88
- case 'CBC':
89
- return this.decryptCBC(data, Datakey, Dataiv);
90
- default:
91
- return this.decryptCBC(data, Datakey, Dataiv);
92
- }
93
- } catch (error) {
94
- throw new InternalServerErrorException('Encryption process failed');
95
- }
96
- }
97
- }
1
+ import { Injectable, InternalServerErrorException } from '@nestjs/common';
2
+ import * as crypto from 'crypto';
3
+
4
+ const CryptoJS = require('crypto-js');
5
+ const encryptionType = 'aes-256-cbc';
6
+
7
+ @Injectable()
8
+ export class EncryptUtilService {
9
+ constructor() {}
10
+
11
+ static encryptGCM(data: any, Datakey: string, Dataiv: string) {
12
+ try {
13
+ const cipher = crypto.createCipheriv('aes-256-gcm', Datakey, Dataiv);
14
+ const encrypted = Buffer.concat([
15
+ cipher.update(data, 'utf8'),
16
+ cipher.final(),
17
+ ]);
18
+ const tag = cipher.getAuthTag();
19
+ return Buffer.concat([encrypted, tag]).toString('base64');
20
+ } catch (error) {
21
+ throw new InternalServerErrorException('Encryption process failed');
22
+ }
23
+ }
24
+
25
+ static decryptGCM(data: any, Datakey: any, Dataiv: any) {
26
+ try {
27
+ data = Buffer.from(data, 'base64');
28
+ const decipher = crypto.createDecipheriv('aes-256-gcm', Datakey, Dataiv);
29
+ const tag = data.slice(data.length - 16);
30
+ decipher.setAuthTag(tag);
31
+ data = data.slice(0, data.length - 16);
32
+ const decrypted = decipher.update(data, 'utf8') + decipher.final('utf8');
33
+ return decrypted;
34
+ } catch (error) {
35
+ throw new InternalServerErrorException('Decryption process failed');
36
+ }
37
+ }
38
+
39
+ static encryptCBC(data: any, Datakey: any, Dataiv: any) {
40
+ let encryptedRequest;
41
+ try {
42
+ const cipher = CryptoJS.AES.encrypt(data, Datakey, {
43
+ iv: Dataiv,
44
+ mode: CryptoJS.mode.CBC,
45
+ });
46
+ encryptedRequest = cipher.toString();
47
+ } catch (error) {
48
+ console.log(error);
49
+ throw new InternalServerErrorException('Encryption process failed');
50
+ }
51
+ return encryptedRequest;
52
+ }
53
+
54
+ static decryptCBC(data: any, Datakey: any, Dataiv: any) {
55
+ let decryptRequest;
56
+ try {
57
+ const cipher = CryptoJS.AES.decrypt(data, Datakey, {
58
+ iv: Dataiv,
59
+ mode: CryptoJS.mode.CBC,
60
+ });
61
+ decryptRequest = cipher.toString(CryptoJS.enc.Utf8);
62
+ } catch (error) {
63
+ throw new InternalServerErrorException('Encryption process failed');
64
+ }
65
+ return decryptRequest;
66
+ }
67
+
68
+ static encryptRequest(data: any, Datakey: any, Dataiv: any, type?: any) {
69
+ try {
70
+ switch (type) {
71
+ case 'GCM':
72
+ return this.encryptGCM(data, Datakey, Dataiv);
73
+ case 'CBC':
74
+ return this.encryptCBC(data, Datakey, Dataiv);
75
+ default:
76
+ return this.encryptCBC(data, Datakey, Dataiv);
77
+ }
78
+ } catch (error) {
79
+ throw new InternalServerErrorException('Encryption process failed');
80
+ }
81
+ }
82
+
83
+ static decryptRequest(data: any, Datakey: any, Dataiv: any, type?: any) {
84
+ try {
85
+ switch (type) {
86
+ case 'GCM':
87
+ return this.decryptGCM(data, Datakey, Dataiv);
88
+ case 'CBC':
89
+ return this.decryptCBC(data, Datakey, Dataiv);
90
+ default:
91
+ return this.decryptCBC(data, Datakey, Dataiv);
92
+ }
93
+ } catch (error) {
94
+ throw new InternalServerErrorException('Encryption process failed');
95
+ }
96
+ }
97
+ }
@@ -1,72 +1,72 @@
1
- import * as ExcelJS from 'exceljs';
2
- import { ExcelData } from '../dto/excel-data.dto';
3
- import * as XLSX from 'xlsx';
4
-
5
- export class ExcelHelper {
6
- static getHeader(filePath: string, sheetName: string): string[] {
7
- const rows = this.readExcel(filePath, 'HEADER', sheetName);
8
- return rows.length > 0 ? rows[0] : [];
9
- }
10
-
11
- static readExcel(
12
- filePath: string,
13
- rowLevel: string,
14
- sheetName: string,
15
- ): string[][] {
16
- const workbook = new ExcelJS.Workbook();
17
- workbook.xlsx.readFile(filePath);
18
- const sheet = workbook.getWorksheet(sheetName);
19
- if (!sheet) throw new Error(`Sheet ${sheetName} not found`);
20
-
21
- const result: string[][] = [];
22
- sheet.eachRow((row, rowNumber) => {
23
- if (rowLevel === 'HEADER' && rowNumber > 1) return;
24
- if (rowLevel === 'ROWDATA' && rowNumber === 1) return;
25
-
26
- const rowData: string[] = (row.values as any[]).slice(1).map((value) => {
27
- return value !== undefined ? String(value).trim() : '';
28
- });
29
- result.push(rowData);
30
- result.push(rowData);
31
- });
32
-
33
- return result;
34
- }
35
-
36
- static getRowData(filePath: string, sheetName: string): string[][] {
37
- return this.readExcel(filePath, 'ROWDATA', sheetName);
38
- }
39
-
40
- static getJSONStringFromList(header: string[], rowData: string[][]): string {
41
- return JSON.stringify(
42
- rowData.map((row) =>
43
- Object.fromEntries(header.map((col, i) => [col, row[i] || ''])),
44
- ),
45
- );
46
- }
47
-
48
- static getDataObjectListFromXLS<T>(
49
- filePath: string,
50
- sheetName: string,
51
- classType: new () => T,
52
- ): T[] {
53
- const header = this.getHeader(filePath, sheetName);
54
- const rowData = this.getRowData(filePath, sheetName);
55
- const jsonString = this.getJSONStringFromList(header, rowData);
56
- return JSON.parse(jsonString) as T[];
57
- }
58
-
59
- static writeExcel(excelData: ExcelData) {
60
- const wb = XLSX.utils.book_new();
61
-
62
- for (const sheetData of excelData.sheetList) {
63
- const ws = XLSX.utils.aoa_to_sheet([
64
- sheetData.headers,
65
- ...sheetData.rowList,
66
- ]);
67
- XLSX.utils.book_append_sheet(wb, ws, sheetData.sheetName || 'Sheet1');
68
- }
69
-
70
- XLSX.writeFile(wb, excelData.filePath);
71
- }
72
- }
1
+ import * as ExcelJS from 'exceljs';
2
+ import { ExcelData } from '../dto/excel-data.dto';
3
+ import * as XLSX from 'xlsx';
4
+
5
+ export class ExcelHelper {
6
+ static getHeader(filePath: string, sheetName: string): string[] {
7
+ const rows = this.readExcel(filePath, 'HEADER', sheetName);
8
+ return rows.length > 0 ? rows[0] : [];
9
+ }
10
+
11
+ static readExcel(
12
+ filePath: string,
13
+ rowLevel: string,
14
+ sheetName: string,
15
+ ): string[][] {
16
+ const workbook = new ExcelJS.Workbook();
17
+ workbook.xlsx.readFile(filePath);
18
+ const sheet = workbook.getWorksheet(sheetName);
19
+ if (!sheet) throw new Error(`Sheet ${sheetName} not found`);
20
+
21
+ const result: string[][] = [];
22
+ sheet.eachRow((row, rowNumber) => {
23
+ if (rowLevel === 'HEADER' && rowNumber > 1) return;
24
+ if (rowLevel === 'ROWDATA' && rowNumber === 1) return;
25
+
26
+ const rowData: string[] = (row.values as any[]).slice(1).map((value) => {
27
+ return value !== undefined ? String(value).trim() : '';
28
+ });
29
+ result.push(rowData);
30
+ result.push(rowData);
31
+ });
32
+
33
+ return result;
34
+ }
35
+
36
+ static getRowData(filePath: string, sheetName: string): string[][] {
37
+ return this.readExcel(filePath, 'ROWDATA', sheetName);
38
+ }
39
+
40
+ static getJSONStringFromList(header: string[], rowData: string[][]): string {
41
+ return JSON.stringify(
42
+ rowData.map((row) =>
43
+ Object.fromEntries(header.map((col, i) => [col, row[i] || ''])),
44
+ ),
45
+ );
46
+ }
47
+
48
+ static getDataObjectListFromXLS<T>(
49
+ filePath: string,
50
+ sheetName: string,
51
+ classType: new () => T,
52
+ ): T[] {
53
+ const header = this.getHeader(filePath, sheetName);
54
+ const rowData = this.getRowData(filePath, sheetName);
55
+ const jsonString = this.getJSONStringFromList(header, rowData);
56
+ return JSON.parse(jsonString) as T[];
57
+ }
58
+
59
+ static writeExcel(excelData: ExcelData) {
60
+ const wb = XLSX.utils.book_new();
61
+
62
+ for (const sheetData of excelData.sheetList) {
63
+ const ws = XLSX.utils.aoa_to_sheet([
64
+ sheetData.headers,
65
+ ...sheetData.rowList,
66
+ ]);
67
+ XLSX.utils.book_append_sheet(wb, ws, sheetData.sheetName || 'Sheet1');
68
+ }
69
+
70
+ XLSX.writeFile(wb, excelData.filePath);
71
+ }
72
+ }
@@ -1,15 +1,15 @@
1
- import * as xlsx from 'xlsx';
2
-
3
- export class ExcelUtil {
4
- static readExcel(fileBuffer: Buffer): Record<string, any[]> {
5
- const workbook = xlsx.read(fileBuffer, { type: 'buffer' });
6
- const data: Record<string, any[]> = {};
7
-
8
- workbook.SheetNames.forEach((sheetName) => {
9
- const sheet = workbook.Sheets[sheetName];
10
- data[sheetName] = xlsx.utils.sheet_to_json(sheet);
11
- });
12
-
13
- return data;
14
- }
15
- }
1
+ import * as xlsx from 'xlsx';
2
+
3
+ export class ExcelUtil {
4
+ static readExcel(fileBuffer: Buffer): Record<string, any[]> {
5
+ const workbook = xlsx.read(fileBuffer, { type: 'buffer' });
6
+ const data: Record<string, any[]> = {};
7
+
8
+ workbook.SheetNames.forEach((sheetName) => {
9
+ const sheet = workbook.Sheets[sheetName];
10
+ data[sheetName] = xlsx.utils.sheet_to_json(sheet);
11
+ });
12
+
13
+ return data;
14
+ }
15
+ }
@@ -1,11 +1,11 @@
1
- import * as fs from 'node:fs';
2
-
3
- export class FileUtil {
4
- static deleteFile(path: string) {
5
- fs.unlink(path, (err) => {
6
- if (err) {
7
- console.log(`Error deleting file ${path}:`, err);
8
- }
9
- });
10
- }
11
- }
1
+ import * as fs from 'node:fs';
2
+
3
+ export class FileUtil {
4
+ static deleteFile(path: string) {
5
+ fs.unlink(path, (err) => {
6
+ if (err) {
7
+ console.log(`Error deleting file ${path}:`, err);
8
+ }
9
+ });
10
+ }
11
+ }
@@ -1,23 +1,23 @@
1
- export class JsonUtil {
2
- static merge(mainNode: any, updatedNode: any): any {
3
- if (typeof mainNode !== 'object' || typeof updatedNode !== 'object') {
4
- return updatedNode;
5
- }
6
-
7
- const mergedNode: any = {};
8
-
9
- for (const key in updatedNode) {
10
- if (updatedNode.hasOwnProperty(key)) {
11
- mergedNode[key] = this.merge(mainNode[key], updatedNode[key]);
12
- }
13
- }
14
-
15
- for (const key in mainNode) {
16
- if (mainNode.hasOwnProperty(key) && !updatedNode.hasOwnProperty(key)) {
17
- mergedNode[key] = mainNode[key];
18
- }
19
- }
20
-
21
- return mergedNode;
22
- }
23
- }
1
+ export class JsonUtil {
2
+ static merge(mainNode: any, updatedNode: any): any {
3
+ if (typeof mainNode !== 'object' || typeof updatedNode !== 'object') {
4
+ return updatedNode;
5
+ }
6
+
7
+ const mergedNode: any = {};
8
+
9
+ for (const key in updatedNode) {
10
+ if (updatedNode.hasOwnProperty(key)) {
11
+ mergedNode[key] = this.merge(mainNode[key], updatedNode[key]);
12
+ }
13
+ }
14
+
15
+ for (const key in mainNode) {
16
+ if (mainNode.hasOwnProperty(key) && !updatedNode.hasOwnProperty(key)) {
17
+ mergedNode[key] = mainNode[key];
18
+ }
19
+ }
20
+
21
+ return mergedNode;
22
+ }
23
+ }