rez_core 5.0.182 → 6.5.1
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.
- package/.claude/settings.local.json +26 -0
- package/.idea/250218_nodejs_core.iml +8 -11
- package/.idea/codeStyles/Project.xml +58 -58
- package/.idea/codeStyles/codeStyleConfig.xml +4 -4
- package/.idea/copilot.data.migration.agent.xml +6 -0
- package/.idea/copilot.data.migration.ask.xml +6 -0
- package/.idea/copilot.data.migration.ask2agent.xml +6 -0
- package/.idea/copilot.data.migration.edit.xml +6 -0
- package/.idea/inspectionProfiles/Project_Default.xml +6 -0
- package/.idea/misc.xml +6 -0
- package/.idea/modules.xml +7 -7
- package/.idea/prettier.xml +6 -0
- package/.idea/vcs.xml +5 -5
- package/.prettierrc +3 -3
- package/README.md +99 -99
- package/dist/module/auth/guards/role.guard.js +3 -3
- package/dist/module/enterprise/controller/enterprise.controller.d.ts +12 -0
- package/dist/module/enterprise/controller/enterprise.controller.js +57 -0
- package/dist/module/enterprise/controller/enterprise.controller.js.map +1 -0
- package/dist/module/enterprise/controller/organization.controller.d.ts +11 -1
- package/dist/module/enterprise/controller/organization.controller.js +62 -2
- package/dist/module/enterprise/controller/organization.controller.js.map +1 -1
- package/dist/module/enterprise/enterprise.module.js +2 -1
- package/dist/module/enterprise/enterprise.module.js.map +1 -1
- package/dist/module/enterprise/entity/enterprise.entity.d.ts +1 -3
- package/dist/module/enterprise/entity/enterprise.entity.js +4 -12
- package/dist/module/enterprise/entity/enterprise.entity.js.map +1 -1
- package/dist/module/enterprise/entity/organization-app-mapping.entity.d.ts +4 -2
- package/dist/module/enterprise/entity/organization-app-mapping.entity.js +12 -7
- package/dist/module/enterprise/entity/organization-app-mapping.entity.js.map +1 -1
- package/dist/module/enterprise/entity/organization.entity.d.ts +1 -17
- package/dist/module/enterprise/entity/organization.entity.js +4 -72
- package/dist/module/enterprise/entity/organization.entity.js.map +1 -1
- package/dist/module/enterprise/repository/enterprise.repository.d.ts +2 -2
- package/dist/module/enterprise/repository/enterprise.repository.js +9 -4
- package/dist/module/enterprise/repository/enterprise.repository.js.map +1 -1
- package/dist/module/enterprise/service/enterprise.service.d.ts +2 -2
- package/dist/module/enterprise/service/enterprise.service.js +4 -4
- package/dist/module/enterprise/service/enterprise.service.js.map +1 -1
- package/dist/module/enterprise/service/organization.service.d.ts +2 -2
- package/dist/module/enterprise/service/organization.service.js +97 -20
- package/dist/module/enterprise/service/organization.service.js.map +1 -1
- package/dist/module/filter/service/filter.service.js +19 -19
- package/dist/module/integration/examples/usage.example.js +9 -9
- package/dist/module/meta/repository/attribute-master.repository.js +8 -8
- package/dist/module/meta/service/entity-dynamic.service.js +16 -16
- package/dist/module/meta/service/media-data.service.js +6 -6
- package/dist/module/meta/service/resolver.service.js +11 -11
- package/dist/module/module/repository/menu.repository.js +4 -4
- package/dist/module/notification/service/notification.service.js +6 -6
- package/dist/module/user/controller/login.controller.js +18 -18
- package/dist/module/workflow/repository/action.repository.js +2 -2
- package/dist/module/workflow/repository/stage.repository.js +8 -8
- package/dist/module/workflow/service/action-template-mapping.service.js +2 -2
- package/dist/module/workflow/service/action.service.js +5 -5
- package/dist/module/workflow/service/entity-modification.service.js +2 -2
- package/dist/module/workflow/service/task.service.js +8 -8
- package/dist/module/workflow-automation/service/schedule-handler.service.js +9 -9
- package/dist/table.config.d.ts +1 -2
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/service/reflection-helper.service.js +2 -2
- package/docs/modules/event-driven-integration-design.md +91 -91
- package/docs/modules/integration.md +250 -250
- package/eslint.config.mjs +34 -34
- package/nest-cli.json +14 -14
- package/package.json +125 -125
- package/server.log +850 -0
- package/src/app.controller.ts +12 -12
- package/src/app.module.ts +68 -68
- package/src/app.service.ts +8 -8
- package/src/config/bull.config.ts +69 -69
- package/src/config/config.module.ts +17 -17
- package/src/config/database.config.ts +48 -48
- package/src/constant/global.constant.ts +67 -67
- package/src/core.module.ts +94 -94
- package/src/decorators/roles.decorator.ts +7 -7
- package/src/dtos/response.dto.ts +6 -6
- package/src/dtos/response.ts +5 -5
- package/src/index.ts +1 -1
- package/src/module/auth/auth.module.ts +49 -49
- package/src/module/auth/controller/auth.controller.ts +28 -28
- package/src/module/auth/guards/google-auth.guard.ts +9 -9
- package/src/module/auth/guards/jwt.guard.ts +22 -22
- package/src/module/auth/guards/role.guard.ts +68 -68
- package/src/module/auth/services/auth.service.ts +56 -56
- package/src/module/auth/services/jwt.service.ts +11 -11
- package/src/module/auth/strategies/google.strategy.ts +54 -54
- package/src/module/auth/strategies/jwt.strategy.ts +58 -58
- package/src/module/auth/strategies/local.strategy.ts +13 -13
- package/src/module/dashboard/controller/dashboard.controller.ts +38 -38
- package/src/module/dashboard/dashboard.module.ts +21 -21
- package/src/module/dashboard/entity/dashboard_page_data.entity.ts +27 -27
- package/src/module/dashboard/entity/widget_master.entity.ts +18 -18
- package/src/module/dashboard/repository/dashboard.repository.ts +49 -49
- package/src/module/dashboard/service/dashboard.service.ts +72 -72
- package/src/module/enterprise/controller/enterprise.controller.ts +40 -0
- package/src/module/enterprise/controller/organization.controller.ts +93 -36
- package/src/module/enterprise/enterprise.module.ts +46 -45
- package/src/module/enterprise/entity/enterprise.entity.ts +31 -37
- package/src/module/enterprise/entity/organization-app-mapping.entity.ts +18 -13
- package/src/module/enterprise/entity/organization.entity.ts +40 -92
- package/src/module/enterprise/repository/enterprise.repository.ts +39 -31
- package/src/module/enterprise/repository/organization.repository.ts +26 -26
- package/src/module/enterprise/repository/school.repository.ts +272 -272
- package/src/module/enterprise/service/brand.service.ts +5 -5
- package/src/module/enterprise/service/enterprise.service.ts +22 -16
- package/src/module/enterprise/service/organization-app-mapping.service.ts +4 -4
- package/src/module/enterprise/service/organization.service.ts +262 -145
- package/src/module/entity_json/controller/entity_json.controller.ts +47 -47
- package/src/module/entity_json/entity/entityJson.entity.ts +39 -39
- package/src/module/entity_json/entity_json.module.ts +18 -18
- package/src/module/entity_json/service/entityJson.repository.ts +37 -37
- package/src/module/entity_json/service/entity_json.service.ts +241 -241
- package/src/module/export/controller/export.controller.ts +83 -83
- package/src/module/export/export.module.ts +14 -14
- package/src/module/export/service/export.service.ts +105 -105
- package/src/module/filter/controller/filter.controller.ts +87 -87
- package/src/module/filter/dto/filter-request.dto.ts +39 -39
- package/src/module/filter/entity/saved-filter-detail.entity.ts +41 -41
- package/src/module/filter/entity/saved-filter-master.entity.ts +35 -35
- package/src/module/filter/filter.module.ts +33 -33
- package/src/module/filter/repository/saved-filter.repository.ts +247 -247
- package/src/module/filter/repository/saved.filter-detail.repository.ts +19 -19
- package/src/module/filter/service/filter-evaluator.service.ts +82 -82
- package/src/module/filter/service/filter.service.ts +1316 -1316
- package/src/module/filter/service/saved-filter.service.ts +164 -164
- package/src/module/ics/controller/ics.controller.ts +21 -21
- package/src/module/ics/dto/ics.dto.ts +55 -55
- package/src/module/ics/ics.module.ts +13 -13
- package/src/module/ics/service/ics.service.ts +57 -57
- package/src/module/integration/controller/calender-event.controller.ts +31 -31
- package/src/module/integration/controller/integration.controller.ts +662 -662
- package/src/module/integration/controller/wrapper.controller.ts +37 -37
- package/src/module/integration/dto/create-config.dto.ts +526 -526
- package/src/module/integration/entity/integration-config.entity.ts +112 -112
- package/src/module/integration/entity/integration-entity-mapper.entity.ts +14 -14
- package/src/module/integration/entity/integration-source.entity.ts +17 -17
- package/src/module/integration/entity/user-integration.entity.ts +71 -71
- package/src/module/integration/examples/usage.example.ts +338 -338
- package/src/module/integration/factories/base.factory.ts +7 -7
- package/src/module/integration/factories/email.factory.ts +49 -49
- package/src/module/integration/factories/integration.factory.ts +121 -121
- package/src/module/integration/factories/sms.factory.ts +51 -51
- package/src/module/integration/factories/telephone.factory.ts +41 -41
- package/src/module/integration/factories/whatsapp.factory.ts +56 -56
- package/src/module/integration/integration.module.ts +110 -110
- package/src/module/integration/service/calendar-event.service.ts +118 -118
- package/src/module/integration/service/integration-entity-mapper.service.ts +17 -17
- package/src/module/integration/service/integration-queue.service.ts +229 -229
- package/src/module/integration/service/integration.service.ts +2634 -2634
- package/src/module/integration/service/oauth.service.ts +224 -224
- package/src/module/integration/service/wrapper.service.ts +753 -753
- package/src/module/integration/strategies/email/gmail-api.strategy.ts +280 -280
- package/src/module/integration/strategies/email/outlook-api.strategy.ts +44 -44
- package/src/module/integration/strategies/email/outlook.strategy.ts +64 -64
- package/src/module/integration/strategies/email/sendgrid-api.strategy.ts +260 -260
- package/src/module/integration/strategies/integration.strategy.ts +97 -97
- package/src/module/integration/strategies/sms/gupshup-sms.strategy.ts +146 -146
- package/src/module/integration/strategies/sms/msg91-sms.strategy.ts +164 -164
- package/src/module/integration/strategies/sms/tubelight-sms.strategy.ts +163 -163
- package/src/module/integration/strategies/telephone/ozonetel-voice.strategy.ts +238 -238
- package/src/module/integration/strategies/telephone/tubelight-voice.strategy.ts +210 -210
- package/src/module/integration/strategies/whatsapp/gupshup-whatsapp.strategy.ts +359 -359
- package/src/module/integration/strategies/whatsapp/tubelight-whatsapp.strategy.ts +372 -372
- package/src/module/integration/strategies/whatsapp/whatsapp-cloud.strategy.ts +403 -403
- package/src/module/integration/strategies/whatsapp/whatsapp.strategy.ts +57 -57
- package/src/module/layout/controller/layout.controller.ts +47 -47
- package/src/module/layout/entity/header-items.entity.ts +28 -28
- package/src/module/layout/entity/header-section.entity.ts +19 -19
- package/src/module/layout/layout.module.ts +21 -21
- package/src/module/layout/repository/header-items.repository.ts +18 -18
- package/src/module/layout/repository/header-section.repository.ts +22 -22
- package/src/module/layout/service/header-section.service.ts +25 -25
- package/src/module/layout_preference/controller/layout_preference.controller.ts +76 -76
- package/src/module/layout_preference/entity/layout_preference.entity.ts +28 -28
- package/src/module/layout_preference/layout_preference.module.ts +22 -22
- package/src/module/layout_preference/repository/layout_preference.repository.ts +65 -65
- package/src/module/layout_preference/service/layout_preference.service.ts +191 -191
- package/src/module/lead/controller/lead.controller.ts +30 -30
- package/src/module/lead/lead.module.ts +14 -14
- package/src/module/lead/repository/lead.repository.ts +41 -41
- package/src/module/lead/service/lead.service.ts +54 -54
- package/src/module/linked_attributes/controller/linked_attributes.controller.ts +37 -37
- package/src/module/linked_attributes/entity/linked_attribute.entity.ts +51 -51
- package/src/module/linked_attributes/linked_attributes.module.ts +16 -16
- package/src/module/linked_attributes/repository/linked_attribute.repository.ts +12 -12
- package/src/module/linked_attributes/service/linked_attributes.service.ts +73 -73
- package/src/module/listmaster/controller/list-master.controller.ts +230 -230
- package/src/module/listmaster/entity/list-master-items.entity.ts +43 -43
- package/src/module/listmaster/entity/list-master.entity.ts +33 -33
- package/src/module/listmaster/listmaster.module.ts +46 -46
- package/src/module/listmaster/repository/list-master-items.repository.ts +173 -173
- package/src/module/listmaster/repository/list-master.repository.ts +56 -56
- package/src/module/listmaster/service/list-master-engine.ts +19 -19
- package/src/module/listmaster/service/list-master-extension.interface.ts +4 -4
- package/src/module/listmaster/service/list-master-item.service.ts +280 -280
- package/src/module/listmaster/service/list-master-registry.ts +15 -15
- package/src/module/listmaster/service/list-master.service.ts +527 -527
- package/src/module/mapper/controller/field-mapper.controller.ts +76 -76
- package/src/module/mapper/controller/mapper.controller.ts +20 -20
- package/src/module/mapper/dto/field-mapper.dto.ts +14 -14
- package/src/module/mapper/entity/field-lovs.entity.ts +19 -19
- package/src/module/mapper/entity/field-mapper.entity.ts +53 -53
- package/src/module/mapper/entity/mapper.entity.ts +16 -16
- package/src/module/mapper/mapper.module.ts +35 -35
- package/src/module/mapper/repository/field-lovs.repository.ts +35 -35
- package/src/module/mapper/repository/field-mapper.repository.ts +42 -42
- package/src/module/mapper/repository/mapper.repository.ts +32 -32
- package/src/module/mapper/service/field-mapper.service.ts +269 -269
- package/src/module/mapper/service/mapper.service.ts +80 -80
- package/src/module/master/controller/master.controller.ts +74 -74
- package/src/module/master/service/master.service.ts +484 -484
- package/src/module/meta/controller/app-master.controller.ts +38 -38
- package/src/module/meta/controller/attribute-master.controller.ts +84 -84
- package/src/module/meta/controller/entity-dynamic.controller.ts +125 -125
- package/src/module/meta/controller/entity-master.controller.ts +41 -41
- package/src/module/meta/controller/entity-relation.controller.ts +36 -36
- package/src/module/meta/controller/entity.controller.ts +308 -308
- package/src/module/meta/controller/entity.public.controller.ts +75 -75
- package/src/module/meta/controller/media.controller.ts +135 -135
- package/src/module/meta/controller/meta.controller.ts +101 -101
- package/src/module/meta/controller/view-master.controller.ts +79 -79
- package/src/module/meta/dto/entity-list-data.dto.ts +6 -6
- package/src/module/meta/dto/entity-tab.dto.ts +4 -4
- package/src/module/meta/dto/entity-table.dto.ts +12 -12
- package/src/module/meta/entity/app-master.entity.ts +37 -37
- package/src/module/meta/entity/attribute-master.entity.ts +92 -92
- package/src/module/meta/entity/base-entity.entity.ts +75 -75
- package/src/module/meta/entity/entity-master.entity.ts +85 -85
- package/src/module/meta/entity/entity-relation-data.entity.ts +29 -29
- package/src/module/meta/entity/entity-relation.entity.ts +23 -23
- package/src/module/meta/entity/entity-table-column.entity.ts +61 -61
- package/src/module/meta/entity/entity-table.entity.ts +50 -50
- package/src/module/meta/entity/media-data.entity.ts +32 -32
- package/src/module/meta/entity/preference.entity.ts +62 -62
- package/src/module/meta/entity/view-master.entity.ts +41 -41
- package/src/module/meta/entity.module.ts +165 -165
- package/src/module/meta/repository/app-master.repository.ts +20 -20
- package/src/module/meta/repository/attribute-master.repository.ts +164 -164
- package/src/module/meta/repository/entity-attribute-update.repository.ts +48 -48
- package/src/module/meta/repository/entity-master.repository.ts +120 -120
- package/src/module/meta/repository/entity-relation.repository.ts +22 -22
- package/src/module/meta/repository/entity-table-column.repository.ts +39 -39
- package/src/module/meta/repository/entity-table.repository.ts +53 -53
- package/src/module/meta/repository/media-data.repository.ts +50 -50
- package/src/module/meta/repository/preference.repository.ts +20 -20
- package/src/module/meta/repository/user-app-mapping.repository.ts +28 -28
- package/src/module/meta/repository/view-master.repository.ts +42 -42
- package/src/module/meta/service/app-master.service.ts +37 -37
- package/src/module/meta/service/attribute-master.service.ts +132 -132
- package/src/module/meta/service/common.service.ts +9 -9
- package/src/module/meta/service/entity-attribute-update.service.ts +26 -26
- package/src/module/meta/service/entity-dynamic.service.ts +824 -824
- package/src/module/meta/service/entity-master.service.ts +171 -171
- package/src/module/meta/service/entity-realation-data.service.ts +9 -9
- package/src/module/meta/service/entity-relation.service.ts +74 -74
- package/src/module/meta/service/entity-service-impl.service.ts +388 -388
- package/src/module/meta/service/entity-table-column.service.ts +26 -26
- package/src/module/meta/service/entity-table.service.ts +157 -157
- package/src/module/meta/service/entity-validation.service.ts +188 -188
- package/src/module/meta/service/entity.service.ts +49 -49
- package/src/module/meta/service/field-group.service.ts +103 -103
- package/src/module/meta/service/media-data.service.ts +591 -591
- package/src/module/meta/service/populate-meta.service.ts +222 -222
- package/src/module/meta/service/preference.service.ts +16 -16
- package/src/module/meta/service/resolver.service.ts +280 -280
- package/src/module/meta/service/section-master.service.ts +104 -104
- package/src/module/meta/service/update-form-json.service.ts +22 -22
- package/src/module/meta/service/user-app-mapping.service.ts +17 -17
- package/src/module/meta/service/view-master.service.ts +127 -127
- package/src/module/microservice-client/microservice-clients.module.ts +13 -13
- package/src/module/microservice-client/service/microservice-client-factory.ts +37 -37
- package/src/module/microservice-client/service/microservice-clients.ts +4 -4
- package/src/module/module/controller/menu.controller.ts +15 -15
- package/src/module/module/controller/module-access.controller.ts +133 -133
- package/src/module/module/entity/menu.entity.ts +43 -43
- package/src/module/module/entity/module-access.entity.ts +25 -25
- package/src/module/module/entity/module-action.entity.ts +17 -17
- package/src/module/module/entity/module.entity.ts +52 -52
- package/src/module/module/module.module.ts +42 -42
- package/src/module/module/repository/menu.repository.ts +186 -186
- package/src/module/module/repository/module-access.repository.ts +344 -344
- package/src/module/module/service/menu.service.ts +82 -82
- package/src/module/module/service/module-access.service.ts +189 -189
- package/src/module/notification/controller/notification.controller.ts +58 -58
- package/src/module/notification/controller/otp.controller.ts +117 -117
- package/src/module/notification/entity/notification.entity.ts +26 -26
- package/src/module/notification/entity/otp.entity.ts +28 -28
- package/src/module/notification/firebase-admin.config.ts +22 -22
- package/src/module/notification/notification.module.ts +69 -69
- package/src/module/notification/repository/otp.repository.ts +27 -27
- package/src/module/notification/service/email.service.ts +127 -127
- package/src/module/notification/service/notification.service.ts +164 -164
- package/src/module/notification/service/otp.service.ts +133 -133
- package/src/module/third-party-module/entity/third-party-api-registry.entity.ts +52 -52
- package/src/module/third-party-module/repository/third-party-api-registry.repository.ts +20 -20
- package/src/module/third-party-module/service/api-registry.service.ts +13 -13
- package/src/module/third-party-module/third-party.module.ts +12 -12
- package/src/module/user/controller/login.controller.ts +198 -198
- package/src/module/user/controller/user.controller.ts +40 -40
- package/src/module/user/dto/create-user.dto.ts +62 -62
- package/src/module/user/dto/update-user.dto.ts +4 -4
- package/src/module/user/entity/role.entity.ts +33 -33
- package/src/module/user/entity/user-role-mapping.entity.ts +38 -38
- package/src/module/user/entity/user-session.entity.ts +73 -73
- package/src/module/user/entity/user.entity.ts +62 -62
- package/src/module/user/repository/role.repository.ts +96 -96
- package/src/module/user/repository/user-role-mapping.repository.ts +126 -126
- package/src/module/user/repository/user.repository.ts +50 -50
- package/src/module/user/repository/userSession.repository.ts +33 -33
- package/src/module/user/service/login.service.ts +326 -326
- package/src/module/user/service/role.service.ts +197 -197
- package/src/module/user/service/user-role-mapping.service.ts +98 -98
- package/src/module/user/service/user-session.service.ts +200 -200
- package/src/module/user/service/user.service.ts +368 -368
- package/src/module/user/user.module.ts +65 -65
- package/src/module/workflow/controller/action-category.controller.ts +54 -54
- package/src/module/workflow/controller/action-resource-mapping.controller.ts +23 -23
- package/src/module/workflow/controller/action-template-mapping.controller.ts +35 -35
- package/src/module/workflow/controller/action.controller.ts +111 -111
- package/src/module/workflow/controller/activity-log.controller.ts +55 -55
- package/src/module/workflow/controller/comm-template.controller.ts +43 -43
- package/src/module/workflow/controller/entity-modification.controller.ts +35 -35
- package/src/module/workflow/controller/form-master.controller.ts +43 -43
- package/src/module/workflow/controller/stage-group.controller.ts +49 -49
- package/src/module/workflow/controller/stage.controller.ts +51 -51
- package/src/module/workflow/controller/task.controller.ts +77 -77
- package/src/module/workflow/controller/workflow-list-master.controller.ts +44 -44
- package/src/module/workflow/controller/workflow-meta.controller.ts +80 -80
- package/src/module/workflow/controller/workflow.controller.ts +67 -67
- package/src/module/workflow/entity/action-category.entity.ts +38 -38
- package/src/module/workflow/entity/action-data.entity.ts +55 -55
- package/src/module/workflow/entity/action-resources-mapping.entity.ts +29 -29
- package/src/module/workflow/entity/action-template-mapping.entity.ts +17 -17
- package/src/module/workflow/entity/action.entity.ts +53 -53
- package/src/module/workflow/entity/activity-log.entity.ts +43 -43
- package/src/module/workflow/entity/comm-template.entity.ts +43 -43
- package/src/module/workflow/entity/entity-modification.entity.ts +38 -38
- package/src/module/workflow/entity/form.entity.ts +25 -25
- package/src/module/workflow/entity/stage-action-mapping.entity.ts +17 -17
- package/src/module/workflow/entity/stage-group.entity.ts +23 -23
- package/src/module/workflow/entity/stage-movement-data.entity.ts +38 -38
- package/src/module/workflow/entity/stage.entity.ts +20 -20
- package/src/module/workflow/entity/task-data.entity.ts +88 -88
- package/src/module/workflow/entity/template-attach-mapper.entity.ts +30 -30
- package/src/module/workflow/entity/workflow-data.entity.ts +11 -11
- package/src/module/workflow/entity/workflow-level-mapping.entity.ts +18 -18
- package/src/module/workflow/entity/workflow.entity.ts +20 -20
- package/src/module/workflow/repository/action-category.repository.ts +79 -79
- package/src/module/workflow/repository/action-data.repository.ts +347 -347
- package/src/module/workflow/repository/action.repository.ts +339 -339
- package/src/module/workflow/repository/activity-log.repository.ts +148 -148
- package/src/module/workflow/repository/comm-template.repository.ts +157 -157
- package/src/module/workflow/repository/form-master.repository.ts +50 -50
- package/src/module/workflow/repository/stage-group.repository.ts +186 -186
- package/src/module/workflow/repository/stage-movement.repository.ts +217 -217
- package/src/module/workflow/repository/stage.repository.ts +160 -160
- package/src/module/workflow/repository/task.repository.ts +154 -154
- package/src/module/workflow/repository/workflow.repository.ts +42 -42
- package/src/module/workflow/service/action-category.service.ts +33 -33
- package/src/module/workflow/service/action-data.service.ts +62 -62
- package/src/module/workflow/service/action-resources-mapping.service.ts +10 -10
- package/src/module/workflow/service/action-template-mapping.service.ts +137 -137
- package/src/module/workflow/service/action.service.ts +302 -302
- package/src/module/workflow/service/activity-log.service.ts +107 -107
- package/src/module/workflow/service/comm-template.service.ts +181 -181
- package/src/module/workflow/service/entity-modification.service.ts +61 -61
- package/src/module/workflow/service/form-master.service.ts +35 -35
- package/src/module/workflow/service/populate-workflow.service.ts +320 -320
- package/src/module/workflow/service/stage-action-mapping.service.ts +5 -5
- package/src/module/workflow/service/stage-group.service.ts +325 -325
- package/src/module/workflow/service/stage.service.ts +197 -197
- package/src/module/workflow/service/task.service.ts +551 -551
- package/src/module/workflow/service/workflow-list-master.service.ts +68 -68
- package/src/module/workflow/service/workflow-meta.service.ts +640 -640
- package/src/module/workflow/service/workflow.service.ts +213 -213
- package/src/module/workflow/workflow.module.ts +180 -180
- package/src/module/workflow-automation/SCHEDULING_GUIDE.md +145 -145
- package/src/module/workflow-automation/controller/workflow-automation.controller.ts +43 -43
- package/src/module/workflow-automation/entity/workflow-automation-action.entity.ts +26 -26
- package/src/module/workflow-automation/entity/workflow-automation.entity.ts +40 -40
- package/src/module/workflow-automation/interface/action.decorator.ts +7 -7
- package/src/module/workflow-automation/interface/action.interface.ts +5 -5
- package/src/module/workflow-automation/service/action-registery.service.ts +35 -35
- package/src/module/workflow-automation/service/schedule-handler.service.ts +168 -168
- package/src/module/workflow-automation/service/workflow-automation-engine.service.ts +219 -219
- package/src/module/workflow-automation/service/workflow-automation.service.ts +476 -476
- package/src/module/workflow-automation/workflow-automation.module.ts +54 -54
- package/src/module/workflow-schedule/INSTALLATION.md +244 -244
- package/src/module/workflow-schedule/MULTI_PROJECT_GUIDE.md +196 -196
- package/src/module/workflow-schedule/README.md +422 -422
- package/src/module/workflow-schedule/constants/schedule.constants.ts +48 -48
- package/src/module/workflow-schedule/controller/workflow-schedule.controller.ts +253 -253
- package/src/module/workflow-schedule/docs/CLAUDE_CODE_GUIDE.md +510 -510
- package/src/module/workflow-schedule/docs/CLAUDE_CODE_PROMPT.md +362 -362
- package/src/module/workflow-schedule/docs/RUN_CLAUDE_CODE.sh +68 -68
- package/src/module/workflow-schedule/dto/create-schedule.dto.ts +147 -147
- package/src/module/workflow-schedule/dto/get-execution-logs.dto.ts +119 -119
- package/src/module/workflow-schedule/dto/update-schedule.dto.ts +96 -96
- package/src/module/workflow-schedule/entities/scheduled-workflow.entity.ts +148 -148
- package/src/module/workflow-schedule/entities/workflow-execution-log.entity.ts +154 -154
- package/src/module/workflow-schedule/interfaces/schedule-job-data.interface.ts +53 -53
- package/src/module/workflow-schedule/interfaces/workflow-schedule-options.interface.ts +12 -12
- package/src/module/workflow-schedule/processors/schedule.processor.ts +620 -620
- package/src/module/workflow-schedule/service/workflow-schedule.service.ts +597 -597
- package/src/module/workflow-schedule/workflow-schedule.module.ts +67 -67
- package/src/resources/dev.properties.yaml +31 -31
- package/src/resources/local.properties.yaml +27 -27
- package/src/resources/properties.module.ts +12 -12
- package/src/resources/properties.yaml.ts +11 -11
- package/src/resources/uat.properties.yaml +31 -31
- package/src/table.config.ts +133 -133
- package/src/utils/dto/excel-data.dto.ts +14 -14
- package/src/utils/dto/excelsheet-data.dto.ts +5 -5
- package/src/utils/service/base64util.service.ts +18 -18
- package/src/utils/service/clockIDGenUtil.service.ts +21 -21
- package/src/utils/service/codeGenerator.service.ts +22 -22
- package/src/utils/service/dateUtil.service.ts +17 -17
- package/src/utils/service/encryptUtil.service.ts +97 -97
- package/src/utils/service/excel-helper.service.ts +72 -72
- package/src/utils/service/excelUtil.service.ts +15 -15
- package/src/utils/service/file-util.service.ts +11 -11
- package/src/utils/service/json-util.service.ts +23 -23
- package/src/utils/service/loggingUtil.service.ts +88 -88
- package/src/utils/service/reflection-helper.service.ts +62 -62
- package/src/utils/service/wbsCodeGen.service.ts +8 -8
- package/src/utils/utils.module.ts +27 -27
- package/tsconfig.build.json +4 -4
- package/tsconfig.json +24 -24
|
@@ -1,196 +1,196 @@
|
|
|
1
|
-
# Multi-Project Configuration Guide
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
This `workflow-schedule` module is designed to be used as a **shared package** across multiple NestJS projects. You can control whether the cron processor runs in each project independently.
|
|
5
|
-
|
|
6
|
-
## Problem Scenario
|
|
7
|
-
You have multiple servers importing this module:
|
|
8
|
-
- **Server 1 (Scheduler Server)** - Should run the cron processor ✅
|
|
9
|
-
- **Server 2 (API Server)** - Should NOT run cron, but can create/manage schedules ❌
|
|
10
|
-
- **Server 3 (Worker Server)** - Should NOT run cron, but can create/manage schedules ❌
|
|
11
|
-
|
|
12
|
-
## Solution
|
|
13
|
-
|
|
14
|
-
### Server 1: Enable Cron Processor (Scheduler Server)
|
|
15
|
-
|
|
16
|
-
```typescript
|
|
17
|
-
// app.module.ts
|
|
18
|
-
import { WorkflowScheduleModule } from './module/workflow-schedule/workflow-schedule.module';
|
|
19
|
-
|
|
20
|
-
@Module({
|
|
21
|
-
imports: [
|
|
22
|
-
BullModule.forRootAsync(bullConfigFactory),
|
|
23
|
-
// ✅ Enable processor - this server will execute scheduled workflows
|
|
24
|
-
WorkflowScheduleModule.forRoot({ enableProcessor: true }),
|
|
25
|
-
WorkflowAutomationModule,
|
|
26
|
-
// ... other modules
|
|
27
|
-
],
|
|
28
|
-
})
|
|
29
|
-
export class AppModule {}
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
### Server 2 & 3: Disable Cron Processor (API/Worker Servers)
|
|
33
|
-
|
|
34
|
-
```typescript
|
|
35
|
-
// app.module.ts
|
|
36
|
-
import { WorkflowScheduleModule } from './module/workflow-schedule/workflow-schedule.module';
|
|
37
|
-
|
|
38
|
-
@Module({
|
|
39
|
-
imports: [
|
|
40
|
-
BullModule.forRootAsync(bullConfigFactory),
|
|
41
|
-
// ❌ Disable processor - this server will NOT execute cron jobs
|
|
42
|
-
WorkflowScheduleModule.forRoot({ enableProcessor: false }),
|
|
43
|
-
WorkflowAutomationModule,
|
|
44
|
-
// ... other modules
|
|
45
|
-
],
|
|
46
|
-
})
|
|
47
|
-
export class AppModule {}
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
## What Each Configuration Does
|
|
51
|
-
|
|
52
|
-
### With `enableProcessor: true`
|
|
53
|
-
- ✅ `WorkflowScheduleService` is available (create/manage schedules)
|
|
54
|
-
- ✅ `ScheduleProcessor` is registered (listens to Bull queue)
|
|
55
|
-
- ✅ **Cron jobs WILL execute** on this server
|
|
56
|
-
- ✅ REST API endpoints are available
|
|
57
|
-
- ✅ Can trigger manual executions
|
|
58
|
-
|
|
59
|
-
### With `enableProcessor: false`
|
|
60
|
-
- ✅ `WorkflowScheduleService` is available (create/manage schedules)
|
|
61
|
-
- ❌ `ScheduleProcessor` is NOT registered
|
|
62
|
-
- ❌ **Cron jobs will NOT execute** on this server
|
|
63
|
-
- ✅ REST API endpoints are available
|
|
64
|
-
- ✅ Can trigger manual executions
|
|
65
|
-
- ⚠️ Scheduled workflows will be executed by the server with `enableProcessor: true`
|
|
66
|
-
|
|
67
|
-
## Environment-Based Configuration
|
|
68
|
-
|
|
69
|
-
For better control, use environment variables:
|
|
70
|
-
|
|
71
|
-
```typescript
|
|
72
|
-
// app.module.ts
|
|
73
|
-
import { WorkflowScheduleModule } from './module/workflow-schedule/workflow-schedule.module';
|
|
74
|
-
|
|
75
|
-
@Module({
|
|
76
|
-
imports: [
|
|
77
|
-
BullModule.forRootAsync(bullConfigFactory),
|
|
78
|
-
WorkflowScheduleModule.forRoot({
|
|
79
|
-
enableProcessor: process.env.ENABLE_WORKFLOW_SCHEDULER === 'true',
|
|
80
|
-
}),
|
|
81
|
-
WorkflowAutomationModule,
|
|
82
|
-
],
|
|
83
|
-
})
|
|
84
|
-
export class AppModule {}
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
Then in each project's `.env` file:
|
|
88
|
-
|
|
89
|
-
**Server 1 (Scheduler Server):**
|
|
90
|
-
```env
|
|
91
|
-
ENABLE_WORKFLOW_SCHEDULER=true
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
**Server 2 & 3:**
|
|
95
|
-
```env
|
|
96
|
-
ENABLE_WORKFLOW_SCHEDULER=false
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
## Default Behavior
|
|
100
|
-
|
|
101
|
-
If you call `WorkflowScheduleModule.forRoot()` without options, the processor is **ENABLED by default**:
|
|
102
|
-
|
|
103
|
-
```typescript
|
|
104
|
-
// This is equivalent to { enableProcessor: true }
|
|
105
|
-
WorkflowScheduleModule.forRoot()
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
## Architecture Considerations
|
|
109
|
-
|
|
110
|
-
### Recommended Setup for High Availability
|
|
111
|
-
|
|
112
|
-
1. **Dedicated Scheduler Server** (Server 1)
|
|
113
|
-
- `enableProcessor: true`
|
|
114
|
-
- Runs cron processor
|
|
115
|
-
- Handles scheduled workflow executions
|
|
116
|
-
- Monitor with PM2/Forever for auto-restart
|
|
117
|
-
|
|
118
|
-
2. **API Servers** (Server 2, 3, ...)
|
|
119
|
-
- `enableProcessor: false`
|
|
120
|
-
- Handle HTTP requests
|
|
121
|
-
- Create/update/delete schedules
|
|
122
|
-
- Schedules are executed by Server 1
|
|
123
|
-
|
|
124
|
-
### Redis Requirement
|
|
125
|
-
|
|
126
|
-
All servers must connect to the **same Redis instance**:
|
|
127
|
-
- Server 1 adds jobs to the queue
|
|
128
|
-
- Servers 2 & 3 can also add jobs (manual triggers)
|
|
129
|
-
- Only Server 1 (with processor enabled) will consume/execute jobs
|
|
130
|
-
|
|
131
|
-
```typescript
|
|
132
|
-
// bull.config.ts (same across all servers)
|
|
133
|
-
export const bullConfigFactory = {
|
|
134
|
-
useFactory: () => ({
|
|
135
|
-
redis: {
|
|
136
|
-
host: process.env.REDIS_HOST || 'localhost',
|
|
137
|
-
port: parseInt(process.env.REDIS_PORT) || 6379,
|
|
138
|
-
password: process.env.REDIS_PASSWORD,
|
|
139
|
-
},
|
|
140
|
-
}),
|
|
141
|
-
};
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
## Testing
|
|
145
|
-
|
|
146
|
-
### Test Processor is Disabled
|
|
147
|
-
|
|
148
|
-
Start your server with `enableProcessor: false` and check logs. You should NOT see:
|
|
149
|
-
```
|
|
150
|
-
[ScheduleProcessor] Processing job {jobId}
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
### Test Processor is Enabled
|
|
154
|
-
|
|
155
|
-
Start your server with `enableProcessor: true` and:
|
|
156
|
-
1. Create a schedule with `is_enabled: true`
|
|
157
|
-
2. Check logs for processor activity
|
|
158
|
-
3. Verify jobs execute on schedule
|
|
159
|
-
|
|
160
|
-
## Migration from Old Setup
|
|
161
|
-
|
|
162
|
-
If you previously imported the module directly:
|
|
163
|
-
|
|
164
|
-
**Before:**
|
|
165
|
-
```typescript
|
|
166
|
-
imports: [
|
|
167
|
-
WorkflowScheduleModule, // ❌ Old way
|
|
168
|
-
]
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
**After:**
|
|
172
|
-
```typescript
|
|
173
|
-
imports: [
|
|
174
|
-
WorkflowScheduleModule.forRoot({ enableProcessor: true }), // ✅ New way
|
|
175
|
-
]
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
## Troubleshooting
|
|
179
|
-
|
|
180
|
-
### Issue: Cron runs on multiple servers
|
|
181
|
-
|
|
182
|
-
**Cause:** Multiple servers have `enableProcessor: true`
|
|
183
|
-
|
|
184
|
-
**Solution:** Set `enableProcessor: false` on all servers except one
|
|
185
|
-
|
|
186
|
-
### Issue: Cron doesn't run on any server
|
|
187
|
-
|
|
188
|
-
**Cause:** All servers have `enableProcessor: false`
|
|
189
|
-
|
|
190
|
-
**Solution:** Set `enableProcessor: true` on at least one server
|
|
191
|
-
|
|
192
|
-
### Issue: "Cannot find module WorkflowScheduleModule"
|
|
193
|
-
|
|
194
|
-
**Cause:** Wrong import after refactor
|
|
195
|
-
|
|
196
|
-
**Solution:** Ensure you're importing from the correct path and using `.forRoot()`
|
|
1
|
+
# Multi-Project Configuration Guide
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
This `workflow-schedule` module is designed to be used as a **shared package** across multiple NestJS projects. You can control whether the cron processor runs in each project independently.
|
|
5
|
+
|
|
6
|
+
## Problem Scenario
|
|
7
|
+
You have multiple servers importing this module:
|
|
8
|
+
- **Server 1 (Scheduler Server)** - Should run the cron processor ✅
|
|
9
|
+
- **Server 2 (API Server)** - Should NOT run cron, but can create/manage schedules ❌
|
|
10
|
+
- **Server 3 (Worker Server)** - Should NOT run cron, but can create/manage schedules ❌
|
|
11
|
+
|
|
12
|
+
## Solution
|
|
13
|
+
|
|
14
|
+
### Server 1: Enable Cron Processor (Scheduler Server)
|
|
15
|
+
|
|
16
|
+
```typescript
|
|
17
|
+
// app.module.ts
|
|
18
|
+
import { WorkflowScheduleModule } from './module/workflow-schedule/workflow-schedule.module';
|
|
19
|
+
|
|
20
|
+
@Module({
|
|
21
|
+
imports: [
|
|
22
|
+
BullModule.forRootAsync(bullConfigFactory),
|
|
23
|
+
// ✅ Enable processor - this server will execute scheduled workflows
|
|
24
|
+
WorkflowScheduleModule.forRoot({ enableProcessor: true }),
|
|
25
|
+
WorkflowAutomationModule,
|
|
26
|
+
// ... other modules
|
|
27
|
+
],
|
|
28
|
+
})
|
|
29
|
+
export class AppModule {}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Server 2 & 3: Disable Cron Processor (API/Worker Servers)
|
|
33
|
+
|
|
34
|
+
```typescript
|
|
35
|
+
// app.module.ts
|
|
36
|
+
import { WorkflowScheduleModule } from './module/workflow-schedule/workflow-schedule.module';
|
|
37
|
+
|
|
38
|
+
@Module({
|
|
39
|
+
imports: [
|
|
40
|
+
BullModule.forRootAsync(bullConfigFactory),
|
|
41
|
+
// ❌ Disable processor - this server will NOT execute cron jobs
|
|
42
|
+
WorkflowScheduleModule.forRoot({ enableProcessor: false }),
|
|
43
|
+
WorkflowAutomationModule,
|
|
44
|
+
// ... other modules
|
|
45
|
+
],
|
|
46
|
+
})
|
|
47
|
+
export class AppModule {}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## What Each Configuration Does
|
|
51
|
+
|
|
52
|
+
### With `enableProcessor: true`
|
|
53
|
+
- ✅ `WorkflowScheduleService` is available (create/manage schedules)
|
|
54
|
+
- ✅ `ScheduleProcessor` is registered (listens to Bull queue)
|
|
55
|
+
- ✅ **Cron jobs WILL execute** on this server
|
|
56
|
+
- ✅ REST API endpoints are available
|
|
57
|
+
- ✅ Can trigger manual executions
|
|
58
|
+
|
|
59
|
+
### With `enableProcessor: false`
|
|
60
|
+
- ✅ `WorkflowScheduleService` is available (create/manage schedules)
|
|
61
|
+
- ❌ `ScheduleProcessor` is NOT registered
|
|
62
|
+
- ❌ **Cron jobs will NOT execute** on this server
|
|
63
|
+
- ✅ REST API endpoints are available
|
|
64
|
+
- ✅ Can trigger manual executions
|
|
65
|
+
- ⚠️ Scheduled workflows will be executed by the server with `enableProcessor: true`
|
|
66
|
+
|
|
67
|
+
## Environment-Based Configuration
|
|
68
|
+
|
|
69
|
+
For better control, use environment variables:
|
|
70
|
+
|
|
71
|
+
```typescript
|
|
72
|
+
// app.module.ts
|
|
73
|
+
import { WorkflowScheduleModule } from './module/workflow-schedule/workflow-schedule.module';
|
|
74
|
+
|
|
75
|
+
@Module({
|
|
76
|
+
imports: [
|
|
77
|
+
BullModule.forRootAsync(bullConfigFactory),
|
|
78
|
+
WorkflowScheduleModule.forRoot({
|
|
79
|
+
enableProcessor: process.env.ENABLE_WORKFLOW_SCHEDULER === 'true',
|
|
80
|
+
}),
|
|
81
|
+
WorkflowAutomationModule,
|
|
82
|
+
],
|
|
83
|
+
})
|
|
84
|
+
export class AppModule {}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Then in each project's `.env` file:
|
|
88
|
+
|
|
89
|
+
**Server 1 (Scheduler Server):**
|
|
90
|
+
```env
|
|
91
|
+
ENABLE_WORKFLOW_SCHEDULER=true
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**Server 2 & 3:**
|
|
95
|
+
```env
|
|
96
|
+
ENABLE_WORKFLOW_SCHEDULER=false
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Default Behavior
|
|
100
|
+
|
|
101
|
+
If you call `WorkflowScheduleModule.forRoot()` without options, the processor is **ENABLED by default**:
|
|
102
|
+
|
|
103
|
+
```typescript
|
|
104
|
+
// This is equivalent to { enableProcessor: true }
|
|
105
|
+
WorkflowScheduleModule.forRoot()
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Architecture Considerations
|
|
109
|
+
|
|
110
|
+
### Recommended Setup for High Availability
|
|
111
|
+
|
|
112
|
+
1. **Dedicated Scheduler Server** (Server 1)
|
|
113
|
+
- `enableProcessor: true`
|
|
114
|
+
- Runs cron processor
|
|
115
|
+
- Handles scheduled workflow executions
|
|
116
|
+
- Monitor with PM2/Forever for auto-restart
|
|
117
|
+
|
|
118
|
+
2. **API Servers** (Server 2, 3, ...)
|
|
119
|
+
- `enableProcessor: false`
|
|
120
|
+
- Handle HTTP requests
|
|
121
|
+
- Create/update/delete schedules
|
|
122
|
+
- Schedules are executed by Server 1
|
|
123
|
+
|
|
124
|
+
### Redis Requirement
|
|
125
|
+
|
|
126
|
+
All servers must connect to the **same Redis instance**:
|
|
127
|
+
- Server 1 adds jobs to the queue
|
|
128
|
+
- Servers 2 & 3 can also add jobs (manual triggers)
|
|
129
|
+
- Only Server 1 (with processor enabled) will consume/execute jobs
|
|
130
|
+
|
|
131
|
+
```typescript
|
|
132
|
+
// bull.config.ts (same across all servers)
|
|
133
|
+
export const bullConfigFactory = {
|
|
134
|
+
useFactory: () => ({
|
|
135
|
+
redis: {
|
|
136
|
+
host: process.env.REDIS_HOST || 'localhost',
|
|
137
|
+
port: parseInt(process.env.REDIS_PORT) || 6379,
|
|
138
|
+
password: process.env.REDIS_PASSWORD,
|
|
139
|
+
},
|
|
140
|
+
}),
|
|
141
|
+
};
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
## Testing
|
|
145
|
+
|
|
146
|
+
### Test Processor is Disabled
|
|
147
|
+
|
|
148
|
+
Start your server with `enableProcessor: false` and check logs. You should NOT see:
|
|
149
|
+
```
|
|
150
|
+
[ScheduleProcessor] Processing job {jobId}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Test Processor is Enabled
|
|
154
|
+
|
|
155
|
+
Start your server with `enableProcessor: true` and:
|
|
156
|
+
1. Create a schedule with `is_enabled: true`
|
|
157
|
+
2. Check logs for processor activity
|
|
158
|
+
3. Verify jobs execute on schedule
|
|
159
|
+
|
|
160
|
+
## Migration from Old Setup
|
|
161
|
+
|
|
162
|
+
If you previously imported the module directly:
|
|
163
|
+
|
|
164
|
+
**Before:**
|
|
165
|
+
```typescript
|
|
166
|
+
imports: [
|
|
167
|
+
WorkflowScheduleModule, // ❌ Old way
|
|
168
|
+
]
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
**After:**
|
|
172
|
+
```typescript
|
|
173
|
+
imports: [
|
|
174
|
+
WorkflowScheduleModule.forRoot({ enableProcessor: true }), // ✅ New way
|
|
175
|
+
]
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
## Troubleshooting
|
|
179
|
+
|
|
180
|
+
### Issue: Cron runs on multiple servers
|
|
181
|
+
|
|
182
|
+
**Cause:** Multiple servers have `enableProcessor: true`
|
|
183
|
+
|
|
184
|
+
**Solution:** Set `enableProcessor: false` on all servers except one
|
|
185
|
+
|
|
186
|
+
### Issue: Cron doesn't run on any server
|
|
187
|
+
|
|
188
|
+
**Cause:** All servers have `enableProcessor: false`
|
|
189
|
+
|
|
190
|
+
**Solution:** Set `enableProcessor: true` on at least one server
|
|
191
|
+
|
|
192
|
+
### Issue: "Cannot find module WorkflowScheduleModule"
|
|
193
|
+
|
|
194
|
+
**Cause:** Wrong import after refactor
|
|
195
|
+
|
|
196
|
+
**Solution:** Ensure you're importing from the correct path and using `.forRoot()`
|