@neohm/nestend 1.0.1 → 2.0.0
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/README.md +316 -18
- package/dist/admin/admin.module.d.ts +8 -0
- package/dist/admin/admin.module.d.ts.map +1 -0
- package/dist/admin/admin.module.js +36 -0
- package/dist/admin/admin.module.js.map +1 -0
- package/dist/admin/controllers/admin.scheduled.task.controller.d.ts +18 -0
- package/dist/admin/controllers/admin.scheduled.task.controller.d.ts.map +1 -0
- package/dist/admin/controllers/admin.scheduled.task.controller.js +68 -0
- package/dist/admin/controllers/admin.scheduled.task.controller.js.map +1 -0
- package/dist/admin/controllers/admin.tenant.controller.d.ts +18 -0
- package/dist/admin/controllers/admin.tenant.controller.d.ts.map +1 -0
- package/dist/admin/controllers/admin.tenant.controller.js +68 -0
- package/dist/admin/controllers/admin.tenant.controller.js.map +1 -0
- package/dist/admin/controllers/admin.user.controller.d.ts +14 -0
- package/dist/admin/controllers/admin.user.controller.d.ts.map +1 -0
- package/dist/admin/controllers/admin.user.controller.js +85 -0
- package/dist/admin/controllers/admin.user.controller.js.map +1 -0
- package/dist/admin/dtos/add.admin.user.dto.d.ts +5 -0
- package/dist/admin/dtos/add.admin.user.dto.d.ts.map +1 -0
- package/dist/admin/dtos/add.admin.user.dto.js +30 -0
- package/dist/admin/dtos/add.admin.user.dto.js.map +1 -0
- package/dist/admin/dtos/add.bulk.users.dto.d.ts +8 -0
- package/dist/admin/dtos/add.bulk.users.dto.d.ts.map +1 -0
- package/dist/admin/dtos/add.bulk.users.dto.js +38 -0
- package/dist/admin/dtos/add.bulk.users.dto.js.map +1 -0
- package/dist/admin/dtos/add.client.user.dto.d.ts +5 -0
- package/dist/admin/dtos/add.client.user.dto.d.ts.map +1 -0
- package/dist/admin/dtos/add.client.user.dto.js +25 -0
- package/dist/admin/dtos/add.client.user.dto.js.map +1 -0
- package/dist/admin/dtos/add.scheduled.task.dto.d.ts +13 -0
- package/dist/admin/dtos/add.scheduled.task.dto.d.ts.map +1 -0
- package/dist/admin/dtos/add.scheduled.task.dto.js +76 -0
- package/dist/admin/dtos/add.scheduled.task.dto.js.map +1 -0
- package/dist/admin/dtos/add.tenant.dto.d.ts +18 -0
- package/dist/admin/dtos/add.tenant.dto.d.ts.map +1 -0
- package/dist/admin/dtos/add.tenant.dto.js +127 -0
- package/dist/admin/dtos/add.tenant.dto.js.map +1 -0
- package/dist/admin/dtos/base.user.dto.d.ts +12 -0
- package/dist/admin/dtos/base.user.dto.d.ts.map +1 -0
- package/dist/admin/dtos/base.user.dto.js +81 -0
- package/dist/admin/dtos/base.user.dto.js.map +1 -0
- package/dist/admin/dtos/scheduled.task.list.dto.d.ts +4 -0
- package/dist/admin/dtos/scheduled.task.list.dto.d.ts.map +1 -0
- package/dist/admin/dtos/scheduled.task.list.dto.js +8 -0
- package/dist/admin/dtos/scheduled.task.list.dto.js.map +1 -0
- package/dist/admin/dtos/tenant.list.dto.d.ts +4 -0
- package/dist/admin/dtos/tenant.list.dto.d.ts.map +1 -0
- package/dist/admin/dtos/tenant.list.dto.js +8 -0
- package/dist/admin/dtos/tenant.list.dto.js.map +1 -0
- package/dist/admin/es6.classes.d.ts +23 -0
- package/dist/admin/es6.classes.d.ts.map +1 -0
- package/dist/admin/es6.classes.js +31 -0
- package/dist/admin/es6.classes.js.map +1 -0
- package/dist/admin/libraries/admin.user.data.processor.d.ts +10 -0
- package/dist/admin/libraries/admin.user.data.processor.d.ts.map +1 -0
- package/dist/admin/libraries/admin.user.data.processor.js +39 -0
- package/dist/admin/libraries/admin.user.data.processor.js.map +1 -0
- package/dist/admin/libraries/bulk.user.data.processor.d.ts +19 -0
- package/dist/admin/libraries/bulk.user.data.processor.d.ts.map +1 -0
- package/dist/admin/libraries/bulk.user.data.processor.js +82 -0
- package/dist/admin/libraries/bulk.user.data.processor.js.map +1 -0
- package/dist/admin/libraries/client.user.data.processor.d.ts +13 -0
- package/dist/admin/libraries/client.user.data.processor.d.ts.map +1 -0
- package/dist/admin/libraries/client.user.data.processor.js +47 -0
- package/dist/admin/libraries/client.user.data.processor.js.map +1 -0
- package/dist/admin/libraries/scheduled.task.data.processor.d.ts +13 -0
- package/dist/admin/libraries/scheduled.task.data.processor.d.ts.map +1 -0
- package/dist/admin/libraries/scheduled.task.data.processor.js +45 -0
- package/dist/admin/libraries/scheduled.task.data.processor.js.map +1 -0
- package/dist/admin/libraries/scheduled.task.list.processor.d.ts +12 -0
- package/dist/admin/libraries/scheduled.task.list.processor.d.ts.map +1 -0
- package/dist/admin/libraries/scheduled.task.list.processor.js +27 -0
- package/dist/admin/libraries/scheduled.task.list.processor.js.map +1 -0
- package/dist/admin/libraries/tenant.data.processor.d.ts +13 -0
- package/dist/admin/libraries/tenant.data.processor.d.ts.map +1 -0
- package/dist/admin/libraries/tenant.data.processor.js +51 -0
- package/dist/admin/libraries/tenant.data.processor.js.map +1 -0
- package/dist/admin/libraries/tenant.list.processor.d.ts +12 -0
- package/dist/admin/libraries/tenant.list.processor.d.ts.map +1 -0
- package/dist/admin/libraries/tenant.list.processor.js +31 -0
- package/dist/admin/libraries/tenant.list.processor.js.map +1 -0
- package/dist/admin/libraries/user.data.processor.d.ts +18 -0
- package/dist/admin/libraries/user.data.processor.d.ts.map +1 -0
- package/dist/admin/libraries/user.data.processor.js +62 -0
- package/dist/admin/libraries/user.data.processor.js.map +1 -0
- package/dist/admin/services/admin.access.service.d.ts +14 -0
- package/dist/admin/services/admin.access.service.d.ts.map +1 -0
- package/dist/admin/services/admin.access.service.js +60 -0
- package/dist/admin/services/admin.access.service.js.map +1 -0
- package/dist/app.controller.js +0 -1
- package/dist/app.controller.js.map +1 -1
- package/dist/app.module.d.ts.map +1 -1
- package/dist/app.module.js +14 -1
- package/dist/app.module.js.map +1 -1
- package/dist/auth/auth.module.d.ts.map +1 -1
- package/dist/auth/auth.module.js +23 -16
- package/dist/auth/auth.module.js.map +1 -1
- package/dist/auth/controllers/auth.controller.d.ts +30 -0
- package/dist/auth/controllers/auth.controller.d.ts.map +1 -0
- package/dist/auth/controllers/auth.controller.js +147 -0
- package/dist/auth/controllers/auth.controller.js.map +1 -0
- package/dist/auth/dtos/change.password.dto.d.ts +5 -0
- package/dist/auth/dtos/change.password.dto.d.ts.map +1 -0
- package/dist/auth/dtos/change.password.dto.js +31 -0
- package/dist/auth/dtos/change.password.dto.js.map +1 -0
- package/dist/auth/dtos/google.login.dto.d.ts +4 -0
- package/dist/auth/dtos/google.login.dto.d.ts.map +1 -0
- package/dist/auth/dtos/google.login.dto.js +26 -0
- package/dist/auth/dtos/google.login.dto.js.map +1 -0
- package/dist/auth/dtos/login.dto.d.ts +5 -0
- package/dist/auth/dtos/login.dto.d.ts.map +1 -0
- package/dist/auth/dtos/login.dto.js +29 -0
- package/dist/auth/dtos/login.dto.js.map +1 -0
- package/dist/auth/dtos/refresh.token.dto.d.ts +4 -0
- package/dist/auth/dtos/refresh.token.dto.d.ts.map +1 -0
- package/dist/auth/dtos/refresh.token.dto.js +24 -0
- package/dist/auth/dtos/refresh.token.dto.js.map +1 -0
- package/dist/auth/dtos/register.dto.d.ts +9 -0
- package/dist/auth/dtos/register.dto.d.ts.map +1 -0
- package/dist/auth/dtos/register.dto.js +59 -0
- package/dist/auth/dtos/register.dto.js.map +1 -0
- package/dist/auth/entities/api.key.entity.js +0 -8
- package/dist/auth/entities/api.key.entity.js.map +1 -1
- package/dist/auth/entities/system.refresh.token.entity.d.ts +1 -0
- package/dist/auth/entities/system.refresh.token.entity.d.ts.map +1 -1
- package/dist/auth/entities/system.refresh.token.entity.js +4 -6
- package/dist/auth/entities/system.refresh.token.entity.js.map +1 -1
- package/dist/auth/entities/system.role.entity.d.ts +1 -0
- package/dist/auth/entities/system.role.entity.d.ts.map +1 -1
- package/dist/auth/entities/system.role.entity.js +4 -6
- package/dist/auth/entities/system.role.entity.js.map +1 -1
- package/dist/auth/entities/user.details.entity.js +0 -14
- package/dist/auth/entities/user.details.entity.js.map +1 -1
- package/dist/auth/entities/user.entity.d.ts +7 -2
- package/dist/auth/entities/user.entity.d.ts.map +1 -1
- package/dist/auth/entities/user.entity.js +18 -18
- package/dist/auth/entities/user.entity.js.map +1 -1
- package/dist/auth/entities/user.role.entity.js +0 -4
- package/dist/auth/entities/user.role.entity.js.map +1 -1
- package/dist/auth/enums/auth.default.enum.d.ts +4 -0
- package/dist/auth/enums/auth.default.enum.d.ts.map +1 -0
- package/dist/auth/enums/auth.default.enum.js +8 -0
- package/dist/auth/enums/auth.default.enum.js.map +1 -0
- package/dist/auth/enums/global.admin.roles.enum.d.ts +7 -0
- package/dist/auth/enums/global.admin.roles.enum.d.ts.map +1 -0
- package/dist/auth/enums/global.admin.roles.enum.js +11 -0
- package/dist/auth/enums/global.admin.roles.enum.js.map +1 -0
- package/dist/auth/enums/google.auth.default.enum.d.ts +10 -0
- package/dist/auth/enums/google.auth.default.enum.d.ts.map +1 -0
- package/dist/auth/enums/google.auth.default.enum.js +15 -0
- package/dist/auth/enums/google.auth.default.enum.js.map +1 -0
- package/dist/auth/enums/user.type.enum.d.ts +5 -0
- package/dist/auth/enums/user.type.enum.d.ts.map +1 -0
- package/dist/auth/enums/user.type.enum.js +9 -0
- package/dist/auth/enums/user.type.enum.js.map +1 -0
- package/dist/auth/es6.classes.d.ts +24 -13
- package/dist/auth/es6.classes.d.ts.map +1 -1
- package/dist/auth/es6.classes.js +26 -13
- package/dist/auth/es6.classes.js.map +1 -1
- package/dist/auth/guards/api.key.guard.js +0 -2
- package/dist/auth/guards/api.key.guard.js.map +1 -1
- package/dist/auth/guards/jwt.auth.guard.js +0 -1
- package/dist/auth/guards/jwt.auth.guard.js.map +1 -1
- package/dist/auth/jobs/system.refresh.token.job.js +0 -1
- package/dist/auth/jobs/system.refresh.token.job.js.map +1 -1
- package/dist/auth/jobs/system.role.job.js +0 -1
- package/dist/auth/jobs/system.role.job.js.map +1 -1
- package/dist/auth/jobs/user.details.job.js +0 -1
- package/dist/auth/jobs/user.details.job.js.map +1 -1
- package/dist/auth/jobs/user.job.js +0 -1
- package/dist/auth/jobs/user.job.js.map +1 -1
- package/dist/auth/jobs/user.role.job.js +0 -1
- package/dist/auth/jobs/user.role.job.js.map +1 -1
- package/dist/auth/middlewares/auth.context.middleware.d.ts +10 -0
- package/dist/auth/middlewares/auth.context.middleware.d.ts.map +1 -0
- package/dist/auth/middlewares/auth.context.middleware.js +37 -0
- package/dist/auth/middlewares/auth.context.middleware.js.map +1 -0
- package/dist/auth/processors/change.password.data.processor.d.ts +12 -0
- package/dist/auth/processors/change.password.data.processor.d.ts.map +1 -0
- package/dist/auth/processors/change.password.data.processor.js +47 -0
- package/dist/auth/processors/change.password.data.processor.js.map +1 -0
- package/dist/auth/processors/google.user.data.processor.d.ts +10 -0
- package/dist/auth/processors/google.user.data.processor.d.ts.map +1 -0
- package/dist/auth/processors/google.user.data.processor.js +41 -0
- package/dist/auth/processors/google.user.data.processor.js.map +1 -0
- package/dist/auth/processors/register.user.data.processor.d.ts +10 -0
- package/dist/auth/processors/register.user.data.processor.d.ts.map +1 -0
- package/dist/auth/processors/register.user.data.processor.js +40 -0
- package/dist/auth/processors/register.user.data.processor.js.map +1 -0
- package/dist/auth/services/api.key.service.js +1 -2
- package/dist/auth/services/api.key.service.js.map +1 -1
- package/dist/auth/services/auth.context.service.d.ts +9 -0
- package/dist/auth/services/auth.context.service.d.ts.map +1 -0
- package/dist/auth/services/auth.context.service.js +33 -0
- package/dist/auth/services/auth.context.service.js.map +1 -0
- package/dist/auth/services/auth.service.d.ts +7 -2
- package/dist/auth/services/auth.service.d.ts.map +1 -1
- package/dist/auth/services/auth.service.js +57 -6
- package/dist/auth/services/auth.service.js.map +1 -1
- package/dist/auth/services/google.auth.service.d.ts +8 -0
- package/dist/auth/services/google.auth.service.d.ts.map +1 -0
- package/dist/auth/services/google.auth.service.js +55 -0
- package/dist/auth/services/google.auth.service.js.map +1 -0
- package/dist/auth/strategy/jwt.strategy.js +0 -1
- package/dist/auth/strategy/jwt.strategy.js.map +1 -1
- package/dist/auth/subscribers/system.refresh.token.subscriber.js +0 -1
- package/dist/auth/subscribers/system.refresh.token.subscriber.js.map +1 -1
- package/dist/auth/subscribers/system.role.subscriber.js +0 -1
- package/dist/auth/subscribers/system.role.subscriber.js.map +1 -1
- package/dist/auth/subscribers/user.details.subscriber.js +0 -1
- package/dist/auth/subscribers/user.details.subscriber.js.map +1 -1
- package/dist/auth/subscribers/user.role.subscriber.js +0 -1
- package/dist/auth/subscribers/user.role.subscriber.js.map +1 -1
- package/dist/auth/subscribers/user.subscriber.d.ts.map +1 -1
- package/dist/auth/subscribers/user.subscriber.js +2 -3
- package/dist/auth/subscribers/user.subscriber.js.map +1 -1
- package/dist/auth/types/auth.types.d.ts +10 -0
- package/dist/auth/types/auth.types.d.ts.map +1 -1
- package/dist/auth/types/google.auth.types.d.ts +13 -0
- package/dist/auth/types/google.auth.types.d.ts.map +1 -0
- package/dist/auth/types/google.auth.types.js +3 -0
- package/dist/auth/types/google.auth.types.js.map +1 -0
- package/dist/auth/utilities/auth.utilities.d.ts +2 -0
- package/dist/auth/utilities/auth.utilities.d.ts.map +1 -1
- package/dist/auth/utilities/auth.utilities.js +8 -0
- package/dist/auth/utilities/auth.utilities.js.map +1 -1
- package/dist/common/adapters/sentry.monitoring.adapter.d.ts.map +1 -1
- package/dist/common/adapters/sentry.monitoring.adapter.js +3 -3
- package/dist/common/adapters/sentry.monitoring.adapter.js.map +1 -1
- package/dist/common/common.module.d.ts.map +1 -1
- package/dist/common/common.module.js +20 -6
- package/dist/common/common.module.js.map +1 -1
- package/dist/common/consumers/job.consumer.d.ts +20 -0
- package/dist/common/consumers/job.consumer.d.ts.map +1 -0
- package/dist/common/consumers/job.consumer.js +159 -0
- package/dist/common/consumers/job.consumer.js.map +1 -0
- package/dist/common/controllers/common.controller.d.ts +7 -0
- package/dist/common/controllers/common.controller.d.ts.map +1 -1
- package/dist/common/controllers/common.controller.js +19 -1
- package/dist/common/controllers/common.controller.js.map +1 -1
- package/dist/common/dtos/common.list.filter.dto.d.ts +10 -0
- package/dist/common/dtos/common.list.filter.dto.d.ts.map +1 -0
- package/dist/common/dtos/common.list.filter.dto.js +53 -0
- package/dist/common/dtos/common.list.filter.dto.js.map +1 -0
- package/dist/common/dtos/common.params.dto.js +0 -1
- package/dist/common/dtos/common.params.dto.js.map +1 -1
- package/dist/common/dtos/common.payload.dto.d.ts +1 -1
- package/dist/common/dtos/common.payload.dto.d.ts.map +1 -1
- package/dist/common/dtos/common.payload.dto.js +1 -2
- package/dist/common/dtos/common.payload.dto.js.map +1 -1
- package/dist/common/dtos/database.event.dto.d.ts +1 -1
- package/dist/common/dtos/database.event.dto.d.ts.map +1 -1
- package/dist/common/dtos/database.event.dto.js +0 -6
- package/dist/common/dtos/database.event.dto.js.map +1 -1
- package/dist/common/dtos/filter.dto.d.ts +9 -0
- package/dist/common/dtos/filter.dto.d.ts.map +1 -0
- package/dist/common/dtos/filter.dto.js +40 -0
- package/dist/common/dtos/filter.dto.js.map +1 -0
- package/dist/common/dtos/sort.dto.d.ts +6 -0
- package/dist/common/dtos/sort.dto.d.ts.map +1 -0
- package/dist/common/dtos/{paginated.query.dto.js → sort.dto.js} +12 -27
- package/dist/common/dtos/sort.dto.js.map +1 -0
- package/dist/common/entities/activity.log.entity.js +0 -6
- package/dist/common/entities/activity.log.entity.js.map +1 -1
- package/dist/common/entities/common.entity.d.ts.map +1 -1
- package/dist/common/entities/common.entity.js +1 -3
- package/dist/common/entities/common.entity.js.map +1 -1
- package/dist/common/entities/document.entity.d.ts +1 -0
- package/dist/common/entities/document.entity.d.ts.map +1 -1
- package/dist/common/entities/document.entity.js +4 -9
- package/dist/common/entities/document.entity.js.map +1 -1
- package/dist/common/entities/root.entity.d.ts +2 -3
- package/dist/common/entities/root.entity.d.ts.map +1 -1
- package/dist/common/entities/root.entity.js +0 -5
- package/dist/common/entities/root.entity.js.map +1 -1
- package/dist/common/entities/scheduled.event.entity.d.ts +13 -0
- package/dist/common/entities/scheduled.event.entity.d.ts.map +1 -0
- package/dist/common/entities/scheduled.event.entity.js +57 -0
- package/dist/common/entities/scheduled.event.entity.js.map +1 -0
- package/dist/common/entities/system.audit.log.entity.d.ts +1 -0
- package/dist/common/entities/system.audit.log.entity.d.ts.map +1 -1
- package/dist/common/entities/system.audit.log.entity.js +4 -7
- package/dist/common/entities/system.audit.log.entity.js.map +1 -1
- package/dist/common/entities/system.constant.entity.d.ts +1 -0
- package/dist/common/entities/system.constant.entity.d.ts.map +1 -1
- package/dist/common/entities/system.constant.entity.js +5 -6
- package/dist/common/entities/system.constant.entity.js.map +1 -1
- package/dist/common/entities/system.constant.type.entity.d.ts +1 -0
- package/dist/common/entities/system.constant.type.entity.d.ts.map +1 -1
- package/dist/common/entities/system.constant.type.entity.js +4 -4
- package/dist/common/entities/system.constant.type.entity.js.map +1 -1
- package/dist/common/entities/system.failed.job.entity.d.ts +1 -0
- package/dist/common/entities/system.failed.job.entity.d.ts.map +1 -1
- package/dist/common/entities/system.failed.job.entity.js +4 -6
- package/dist/common/entities/system.failed.job.entity.js.map +1 -1
- package/dist/common/entities/system.notification.entity.d.ts +1 -0
- package/dist/common/entities/system.notification.entity.d.ts.map +1 -1
- package/dist/common/entities/system.notification.entity.js +4 -8
- package/dist/common/entities/system.notification.entity.js.map +1 -1
- package/dist/common/entities/system.property.entity.d.ts +1 -0
- package/dist/common/entities/system.property.entity.d.ts.map +1 -1
- package/dist/common/entities/system.property.entity.js +4 -5
- package/dist/common/entities/system.property.entity.js.map +1 -1
- package/dist/common/entities/system.scheduled.task.entity.d.ts +13 -0
- package/dist/common/entities/system.scheduled.task.entity.d.ts.map +1 -0
- package/dist/common/entities/system.scheduled.task.entity.js +50 -0
- package/dist/common/entities/system.scheduled.task.entity.js.map +1 -0
- package/dist/common/enums/api.content.type.enum.d.ts +7 -0
- package/dist/common/enums/api.content.type.enum.d.ts.map +1 -0
- package/dist/common/enums/api.content.type.enum.js +11 -0
- package/dist/common/enums/api.content.type.enum.js.map +1 -0
- package/dist/common/enums/api.request.type.enum.d.ts +8 -0
- package/dist/common/enums/api.request.type.enum.d.ts.map +1 -0
- package/dist/common/enums/api.request.type.enum.js +12 -0
- package/dist/common/enums/api.request.type.enum.js.map +1 -0
- package/dist/common/enums/filter.operator.enum.d.ts +14 -0
- package/dist/common/enums/filter.operator.enum.d.ts.map +1 -0
- package/dist/common/enums/filter.operator.enum.js +18 -0
- package/dist/common/enums/filter.operator.enum.js.map +1 -0
- package/dist/common/enums/filter.value.type.enum.d.ts +7 -0
- package/dist/common/enums/filter.value.type.enum.d.ts.map +1 -0
- package/dist/common/enums/filter.value.type.enum.js +11 -0
- package/dist/common/enums/filter.value.type.enum.js.map +1 -0
- package/dist/common/enums/queue.enum.d.ts +3 -1
- package/dist/common/enums/queue.enum.d.ts.map +1 -1
- package/dist/common/enums/queue.enum.js +2 -0
- package/dist/common/enums/queue.enum.js.map +1 -1
- package/dist/common/enums/server.environment.enum.d.ts +7 -0
- package/dist/common/enums/server.environment.enum.d.ts.map +1 -0
- package/dist/common/enums/server.environment.enum.js +11 -0
- package/dist/common/enums/server.environment.enum.js.map +1 -0
- package/dist/common/enums/sort.direction.enum.d.ts +5 -0
- package/dist/common/enums/sort.direction.enum.d.ts.map +1 -0
- package/dist/common/enums/sort.direction.enum.js +9 -0
- package/dist/common/enums/sort.direction.enum.js.map +1 -0
- package/dist/common/enums/sql.default.enum.d.ts +7 -0
- package/dist/common/enums/sql.default.enum.d.ts.map +1 -0
- package/dist/common/enums/sql.default.enum.js +11 -0
- package/dist/common/enums/sql.default.enum.js.map +1 -0
- package/dist/common/enums/sql.target.enum.d.ts +5 -0
- package/dist/common/enums/sql.target.enum.d.ts.map +1 -0
- package/dist/common/enums/sql.target.enum.js +9 -0
- package/dist/common/enums/sql.target.enum.js.map +1 -0
- package/dist/common/es6.classes.d.ts +39 -23
- package/dist/common/es6.classes.d.ts.map +1 -1
- package/dist/common/es6.classes.js +41 -54
- package/dist/common/es6.classes.js.map +1 -1
- package/dist/common/interceptors/logging.interceptor.js +3 -1
- package/dist/common/interceptors/logging.interceptor.js.map +1 -1
- package/dist/common/interceptors/monitoring.interceptor.js +0 -1
- package/dist/common/interceptors/monitoring.interceptor.js.map +1 -1
- package/dist/common/jobs/activity.log.job.js +0 -1
- package/dist/common/jobs/activity.log.job.js.map +1 -1
- package/dist/common/jobs/common.job.d.ts +9 -5
- package/dist/common/jobs/common.job.d.ts.map +1 -1
- package/dist/common/jobs/common.job.js +21 -6
- package/dist/common/jobs/common.job.js.map +1 -1
- package/dist/common/jobs/dispatch.scheduled.event.job.d.ts +11 -0
- package/dist/common/jobs/dispatch.scheduled.event.job.d.ts.map +1 -0
- package/dist/common/jobs/dispatch.scheduled.event.job.js +65 -0
- package/dist/common/jobs/dispatch.scheduled.event.job.js.map +1 -0
- package/dist/common/jobs/document.job.js +0 -1
- package/dist/common/jobs/document.job.js.map +1 -1
- package/dist/common/jobs/scheduled.event.job.d.ts +10 -0
- package/dist/common/jobs/scheduled.event.job.d.ts.map +1 -0
- package/dist/common/jobs/scheduled.event.job.js +30 -0
- package/dist/common/jobs/scheduled.event.job.js.map +1 -0
- package/dist/common/jobs/set.scheduled.event.job.d.ts +15 -0
- package/dist/common/jobs/set.scheduled.event.job.d.ts.map +1 -0
- package/dist/common/jobs/set.scheduled.event.job.js +74 -0
- package/dist/common/jobs/set.scheduled.event.job.js.map +1 -0
- package/dist/common/jobs/system.audit.log.job.js +0 -1
- package/dist/common/jobs/system.audit.log.job.js.map +1 -1
- package/dist/common/jobs/system.constant.job.js +0 -1
- package/dist/common/jobs/system.constant.job.js.map +1 -1
- package/dist/common/jobs/system.constant.type.job.js +0 -1
- package/dist/common/jobs/system.constant.type.job.js.map +1 -1
- package/dist/common/jobs/system.failed.job.job.js +0 -1
- package/dist/common/jobs/system.failed.job.job.js.map +1 -1
- package/dist/common/jobs/system.notification.job.js +0 -1
- package/dist/common/jobs/system.notification.job.js.map +1 -1
- package/dist/common/jobs/system.property.job.js +0 -1
- package/dist/common/jobs/system.property.job.js.map +1 -1
- package/dist/common/jobs/system.scheduled.task.job.d.ts +12 -0
- package/dist/common/jobs/system.scheduled.task.job.d.ts.map +1 -0
- package/dist/common/jobs/system.scheduled.task.job.js +53 -0
- package/dist/common/jobs/system.scheduled.task.job.js.map +1 -0
- package/dist/common/{processors → libraries}/common.data.processor.d.ts +3 -4
- package/dist/common/libraries/common.data.processor.d.ts.map +1 -0
- package/dist/common/{processors → libraries}/common.data.processor.js +16 -22
- package/dist/common/libraries/common.data.processor.js.map +1 -0
- package/dist/common/libraries/common.list.processor.d.ts +27 -0
- package/dist/common/libraries/common.list.processor.d.ts.map +1 -0
- package/dist/common/libraries/common.list.processor.js +130 -0
- package/dist/common/libraries/common.list.processor.js.map +1 -0
- package/dist/common/libraries/filter.operator.registry.d.ts +4 -0
- package/dist/common/libraries/filter.operator.registry.d.ts.map +1 -0
- package/dist/common/libraries/filter.operator.registry.js +54 -0
- package/dist/common/libraries/filter.operator.registry.js.map +1 -0
- package/dist/common/queue.module.d.ts +1 -4
- package/dist/common/queue.module.d.ts.map +1 -1
- package/dist/common/queue.module.js +50 -38
- package/dist/common/queue.module.js.map +1 -1
- package/dist/common/services/cache.service.js +1 -3
- package/dist/common/services/cache.service.js.map +1 -1
- package/dist/common/services/encryption.service.js +3 -1
- package/dist/common/services/encryption.service.js.map +1 -1
- package/dist/common/services/feature.flag.service.js +1 -2
- package/dist/common/services/feature.flag.service.js.map +1 -1
- package/dist/common/services/monitoring.service.js +4 -2
- package/dist/common/services/monitoring.service.js.map +1 -1
- package/dist/common/services/queue.service.d.ts +16 -6
- package/dist/common/services/queue.service.d.ts.map +1 -1
- package/dist/common/services/queue.service.js +61 -80
- package/dist/common/services/queue.service.js.map +1 -1
- package/dist/common/services/remote.request.service.d.ts +7 -0
- package/dist/common/services/remote.request.service.d.ts.map +1 -0
- package/dist/common/services/remote.request.service.js +48 -0
- package/dist/common/services/remote.request.service.js.map +1 -0
- package/dist/common/services/sql.service.d.ts +25 -0
- package/dist/common/services/sql.service.d.ts.map +1 -0
- package/dist/common/services/sql.service.js +119 -0
- package/dist/common/services/sql.service.js.map +1 -0
- package/dist/common/services/system.property.service.js +2 -5
- package/dist/common/services/system.property.service.js.map +1 -1
- package/dist/common/subscribers/activity.log.subscriber.js +0 -1
- package/dist/common/subscribers/activity.log.subscriber.js.map +1 -1
- package/dist/common/subscribers/document.subscriber.js +0 -1
- package/dist/common/subscribers/document.subscriber.js.map +1 -1
- package/dist/common/subscribers/scheduled.event.subscriber.d.ts +11 -0
- package/dist/common/subscribers/scheduled.event.subscriber.d.ts.map +1 -0
- package/dist/common/subscribers/scheduled.event.subscriber.js +35 -0
- package/dist/common/subscribers/scheduled.event.subscriber.js.map +1 -0
- package/dist/common/subscribers/system.audit.log.subscriber.js +0 -1
- package/dist/common/subscribers/system.audit.log.subscriber.js.map +1 -1
- package/dist/common/subscribers/system.constant.subscriber.js +0 -1
- package/dist/common/subscribers/system.constant.subscriber.js.map +1 -1
- package/dist/common/subscribers/system.constant.type.subscriber.js +0 -1
- package/dist/common/subscribers/system.constant.type.subscriber.js.map +1 -1
- package/dist/common/subscribers/system.failed.job.subscriber.js +0 -1
- package/dist/common/subscribers/system.failed.job.subscriber.js.map +1 -1
- package/dist/common/subscribers/system.notification.subscriber.js +0 -1
- package/dist/common/subscribers/system.notification.subscriber.js.map +1 -1
- package/dist/common/subscribers/system.property.subscriber.js +0 -1
- package/dist/common/subscribers/system.property.subscriber.js.map +1 -1
- package/dist/common/subscribers/system.scheduled.task.subscriber.d.ts +11 -0
- package/dist/common/subscribers/system.scheduled.task.subscriber.d.ts.map +1 -0
- package/dist/common/subscribers/system.scheduled.task.subscriber.js +34 -0
- package/dist/common/subscribers/system.scheduled.task.subscriber.js.map +1 -0
- package/dist/common/system.property.module.js +13 -15
- package/dist/common/system.property.module.js.map +1 -1
- package/dist/common/types/database.event.type.d.ts +2 -0
- package/dist/common/types/database.event.type.d.ts.map +1 -0
- package/dist/common/types/database.event.type.js +3 -0
- package/dist/common/types/database.event.type.js.map +1 -0
- package/dist/common/types/list.types.d.ts +20 -0
- package/dist/common/types/list.types.d.ts.map +1 -0
- package/dist/common/types/list.types.js +3 -0
- package/dist/common/types/list.types.js.map +1 -0
- package/dist/common/types/paginated.result.types.d.ts +4 -0
- package/dist/common/types/paginated.result.types.d.ts.map +1 -1
- package/dist/common/types/paginated.result.types.js.map +1 -1
- package/dist/common/types/queue.types.d.ts +9 -0
- package/dist/common/types/queue.types.d.ts.map +1 -1
- package/dist/common/types/remote.request.options.d.ts +10 -0
- package/dist/common/types/remote.request.options.d.ts.map +1 -0
- package/dist/common/types/remote.request.options.js +3 -0
- package/dist/common/types/remote.request.options.js.map +1 -0
- package/dist/common/types/sql.types.d.ts +11 -0
- package/dist/common/types/sql.types.d.ts.map +1 -0
- package/dist/common/types/sql.types.js +3 -0
- package/dist/common/types/sql.types.js.map +1 -0
- package/dist/constants/job.constants.d.ts +19 -13
- package/dist/constants/job.constants.d.ts.map +1 -1
- package/dist/constants/job.constants.js +6 -0
- package/dist/constants/job.constants.js.map +1 -1
- package/dist/database/config/data.source.config.d.ts.map +1 -1
- package/dist/database/config/data.source.config.js +30 -2
- package/dist/database/config/data.source.config.js.map +1 -1
- package/dist/document/document.module.d.ts.map +1 -1
- package/dist/document/document.module.js +2 -5
- package/dist/document/document.module.js.map +1 -1
- package/dist/document/es6.classes.d.ts +7 -3
- package/dist/document/es6.classes.d.ts.map +1 -1
- package/dist/document/es6.classes.js +8 -7
- package/dist/document/es6.classes.js.map +1 -1
- package/dist/document/services/document.service.js +1 -4
- package/dist/document/services/document.service.js.map +1 -1
- package/dist/document/services/minio.bucket.document.service.js +6 -4
- package/dist/document/services/minio.bucket.document.service.js.map +1 -1
- package/dist/document/services/s3.bucket.document.service.js +5 -3
- package/dist/document/services/s3.bucket.document.service.js.map +1 -1
- package/dist/global/filters/global.exception.filter.js +3 -1
- package/dist/global/filters/global.exception.filter.js.map +1 -1
- package/dist/global/utilities/migration.utility.js +3 -4
- package/dist/global/utilities/migration.utility.js.map +1 -1
- package/dist/global/utilities/schedule.utility.d.ts +8 -0
- package/dist/global/utilities/schedule.utility.d.ts.map +1 -0
- package/dist/global/utilities/schedule.utility.js +23 -0
- package/dist/global/utilities/schedule.utility.js.map +1 -0
- package/dist/global/utilities/seeder.utility.js +1 -2
- package/dist/global/utilities/seeder.utility.js.map +1 -1
- package/dist/index.d.ts +92 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +169 -8
- package/dist/index.js.map +1 -1
- package/dist/main.js +12 -0
- package/dist/main.js.map +1 -1
- package/dist/migrations/1749600000001.CreateSysUsersTable.d.ts.map +1 -1
- package/dist/migrations/1749600000001.CreateSysUsersTable.js +15 -2
- package/dist/migrations/1749600000001.CreateSysUsersTable.js.map +1 -1
- package/dist/migrations/1749600000012.CreateSysRefreshTokensTable.d.ts.map +1 -1
- package/dist/migrations/1749600000012.CreateSysRefreshTokensTable.js +1 -0
- package/dist/migrations/1749600000012.CreateSysRefreshTokensTable.js.map +1 -1
- package/dist/migrations/1749600000014.CreateSysTenantsTable.d.ts.map +1 -1
- package/dist/migrations/1749600000014.CreateSysTenantsTable.js +11 -0
- package/dist/migrations/1749600000014.CreateSysTenantsTable.js.map +1 -1
- package/dist/migrations/1749600000015.CreateSysUserDeviceTokensTable.d.ts.map +1 -1
- package/dist/migrations/1749600000015.CreateSysUserDeviceTokensTable.js +1 -0
- package/dist/migrations/1749600000015.CreateSysUserDeviceTokensTable.js.map +1 -1
- package/dist/migrations/1749600000017.CreateSysScheduledTasksTable.d.ts +6 -0
- package/dist/migrations/1749600000017.CreateSysScheduledTasksTable.d.ts.map +1 -0
- package/dist/migrations/1749600000017.CreateSysScheduledTasksTable.js +23 -0
- package/dist/migrations/1749600000017.CreateSysScheduledTasksTable.js.map +1 -0
- package/dist/migrations/1749600000018.CreateSysScheduledEventsTable.d.ts +6 -0
- package/dist/migrations/1749600000018.CreateSysScheduledEventsTable.d.ts.map +1 -0
- package/dist/migrations/1749600000018.CreateSysScheduledEventsTable.js +30 -0
- package/dist/migrations/1749600000018.CreateSysScheduledEventsTable.js.map +1 -0
- package/dist/migrations/1749600000019.CreateSysEmailTemplatesTable.d.ts +6 -0
- package/dist/migrations/1749600000019.CreateSysEmailTemplatesTable.d.ts.map +1 -0
- package/dist/migrations/1749600000019.CreateSysEmailTemplatesTable.js +22 -0
- package/dist/migrations/1749600000019.CreateSysEmailTemplatesTable.js.map +1 -0
- package/dist/migrations/1749600000020.CreateSysEmailNotificationLogsTable.d.ts +6 -0
- package/dist/migrations/1749600000020.CreateSysEmailNotificationLogsTable.d.ts.map +1 -0
- package/dist/migrations/1749600000020.CreateSysEmailNotificationLogsTable.js +22 -0
- package/dist/migrations/1749600000020.CreateSysEmailNotificationLogsTable.js.map +1 -0
- package/dist/notification/dtos/email.notification.log.attributes.dto.d.ts +5 -0
- package/dist/notification/dtos/email.notification.log.attributes.dto.d.ts.map +1 -0
- package/dist/notification/dtos/email.notification.log.attributes.dto.js +7 -0
- package/dist/notification/dtos/email.notification.log.attributes.dto.js.map +1 -0
- package/dist/notification/dtos/email.notification.options.dto.d.ts +11 -0
- package/dist/notification/dtos/email.notification.options.dto.d.ts.map +1 -0
- package/dist/notification/dtos/email.notification.options.dto.js +10 -0
- package/dist/notification/dtos/email.notification.options.dto.js.map +1 -0
- package/dist/notification/dtos/email.template.attributes.dto.d.ts +3 -0
- package/dist/notification/dtos/email.template.attributes.dto.d.ts.map +1 -0
- package/dist/notification/dtos/email.template.attributes.dto.js +7 -0
- package/dist/notification/dtos/email.template.attributes.dto.js.map +1 -0
- package/dist/notification/entities/email.notification.log.entity.d.ts +9 -0
- package/dist/notification/entities/email.notification.log.entity.d.ts.map +1 -0
- package/dist/notification/entities/email.notification.log.entity.js +38 -0
- package/dist/notification/entities/email.notification.log.entity.js.map +1 -0
- package/dist/notification/entities/email.template.entity.d.ts +10 -0
- package/dist/notification/entities/email.template.entity.d.ts.map +1 -0
- package/dist/notification/entities/email.template.entity.js +42 -0
- package/dist/notification/entities/email.template.entity.js.map +1 -0
- package/dist/notification/entities/user.device.token.entity.js +0 -5
- package/dist/notification/entities/user.device.token.entity.js.map +1 -1
- package/dist/notification/enums/email.notification.default.enum.d.ts +5 -0
- package/dist/notification/enums/email.notification.default.enum.d.ts.map +1 -0
- package/dist/notification/enums/email.notification.default.enum.js +9 -0
- package/dist/notification/enums/email.notification.default.enum.js.map +1 -0
- package/dist/notification/es6.classes.d.ts +14 -5
- package/dist/notification/es6.classes.d.ts.map +1 -1
- package/dist/notification/es6.classes.js +17 -5
- package/dist/notification/es6.classes.js.map +1 -1
- package/dist/notification/jobs/email.notification.log.job.d.ts +8 -0
- package/dist/notification/jobs/email.notification.log.job.d.ts.map +1 -0
- package/dist/notification/jobs/email.notification.log.job.js +31 -0
- package/dist/notification/jobs/email.notification.log.job.js.map +1 -0
- package/dist/notification/jobs/email.template.job.d.ts +8 -0
- package/dist/notification/jobs/email.template.job.d.ts.map +1 -0
- package/dist/notification/jobs/email.template.job.js +31 -0
- package/dist/notification/jobs/email.template.job.js.map +1 -0
- package/dist/notification/libraries/process.email.notification.d.ts +11 -0
- package/dist/notification/libraries/process.email.notification.d.ts.map +1 -0
- package/dist/notification/libraries/process.email.notification.js +33 -0
- package/dist/notification/libraries/process.email.notification.js.map +1 -0
- package/dist/notification/notification.module.d.ts.map +1 -1
- package/dist/notification/notification.module.js +24 -6
- package/dist/notification/notification.module.js.map +1 -1
- package/dist/notification/services/email.notification.service.d.ts +18 -0
- package/dist/notification/services/email.notification.service.d.ts.map +1 -0
- package/dist/notification/services/email.notification.service.js +122 -0
- package/dist/notification/services/email.notification.service.js.map +1 -0
- package/dist/notification/services/fcm.push.notification.service.js +4 -2
- package/dist/notification/services/fcm.push.notification.service.js.map +1 -1
- package/dist/notification/services/notification.service.js +1 -3
- package/dist/notification/services/notification.service.js.map +1 -1
- package/dist/notification/subscribers/email.notification.log.subscriber.d.ts +11 -0
- package/dist/notification/subscribers/email.notification.log.subscriber.d.ts.map +1 -0
- package/dist/notification/subscribers/email.notification.log.subscriber.js +35 -0
- package/dist/notification/subscribers/email.notification.log.subscriber.js.map +1 -0
- package/dist/notification/subscribers/email.template.subscriber.d.ts +11 -0
- package/dist/notification/subscribers/email.template.subscriber.d.ts.map +1 -0
- package/dist/notification/subscribers/email.template.subscriber.js +35 -0
- package/dist/notification/subscribers/email.template.subscriber.js.map +1 -0
- package/dist/notification/types/email.notification.types.d.ts +10 -0
- package/dist/notification/types/email.notification.types.d.ts.map +1 -0
- package/dist/notification/types/email.notification.types.js +3 -0
- package/dist/notification/types/email.notification.types.js.map +1 -0
- package/dist/tenant/entities/common.tenant.entity.d.ts +7 -0
- package/dist/tenant/entities/common.tenant.entity.d.ts.map +1 -0
- package/dist/tenant/entities/{tenant.common.entity.js → common.tenant.entity.js} +9 -10
- package/dist/tenant/entities/common.tenant.entity.js.map +1 -0
- package/dist/tenant/entities/tenant.entity.d.ts +14 -2
- package/dist/tenant/entities/tenant.entity.d.ts.map +1 -1
- package/dist/tenant/entities/tenant.entity.js +50 -7
- package/dist/tenant/entities/tenant.entity.js.map +1 -1
- package/dist/tenant/es6.classes.d.ts +7 -8
- package/dist/tenant/es6.classes.d.ts.map +1 -1
- package/dist/tenant/es6.classes.js +8 -8
- package/dist/tenant/es6.classes.js.map +1 -1
- package/dist/tenant/middlewares/tenant.context.middleware.js +2 -5
- package/dist/tenant/middlewares/tenant.context.middleware.js.map +1 -1
- package/dist/tenant/services/tenant.context.service.js +3 -1
- package/dist/tenant/services/tenant.context.service.js.map +1 -1
- package/dist/tenant/services/tenant.service.js +0 -1
- package/dist/tenant/services/tenant.service.js.map +1 -1
- package/dist/tenant/tenant.module.js +5 -8
- package/dist/tenant/tenant.module.js.map +1 -1
- package/package.json +2 -1
- package/dist/common/dtos/paginated.query.dto.d.ts +0 -13
- package/dist/common/dtos/paginated.query.dto.d.ts.map +0 -1
- package/dist/common/dtos/paginated.query.dto.js.map +0 -1
- package/dist/common/processors/common.data.processor.d.ts.map +0 -1
- package/dist/common/processors/common.data.processor.js.map +0 -1
- package/dist/tenant/entities/tenant.common.entity.d.ts +0 -6
- package/dist/tenant/entities/tenant.common.entity.d.ts.map +0 -1
- package/dist/tenant/entities/tenant.common.entity.js.map +0 -1
package/README.md
CHANGED
|
@@ -81,24 +81,263 @@ app.useGlobalInterceptors(
|
|
|
81
81
|
|
|
82
82
|
## Feature Map
|
|
83
83
|
|
|
84
|
-
| Area | Key exports
|
|
85
|
-
| ----------------- |
|
|
86
|
-
| Entities | `RootEntity`, `CommonEntity`, `UserEntity`, `SystemRoleEntity`, ...
|
|
87
|
-
| Migrations | `CreateSysUsersTable...` (16 files), `MigrationUtility`, `SeederUtility`
|
|
88
|
-
| Queue | `QueueModule`, `QueueService`, `CommonJob`
|
|
89
|
-
|
|
|
90
|
-
|
|
|
91
|
-
|
|
|
92
|
-
|
|
|
93
|
-
|
|
|
94
|
-
|
|
|
95
|
-
|
|
|
96
|
-
|
|
|
97
|
-
|
|
|
98
|
-
|
|
|
99
|
-
|
|
|
100
|
-
|
|
|
101
|
-
|
|
|
84
|
+
| Area | Key exports | Notes |
|
|
85
|
+
| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
86
|
+
| Entities | `RootEntity`, `CommonEntity`, `UserEntity`, `SystemRoleEntity`, ... | uuid PK, soft deletes, `created_by`, jsonb `attributes`; entity-level `findOneOrNew`, `softDelete`, `hardDelete`, `restore`, `paginate` statics |
|
|
87
|
+
| Migrations | `CreateSysUsersTable...` (16 files), `MigrationUtility`, `SeederUtility` | fluent `this.string()`, `this.numeric()`, `addRecord()` seeding |
|
|
88
|
+
| Queue | `QueueModule`, `QueueService`, `CommonJob`, `JobConsumer` | BullMQ `@Processor`/`WorkerHost` consumer; auto-discovered jobs, duplicate prevention, recurring schedulers, 1-day TTL, retries, failures persisted to `sys_failed_jobs` |
|
|
89
|
+
| Scheduled events | `SystemScheduledTaskEntity`, `ScheduledEventEntity`, `SetScheduledEventJob`, `DispatchScheduledEventJob` | schedule definitions in `sys_scheduled_tasks` → events in `sys_scheduled_events`; worker-driven materialisation + dispatch via `SCHEDULED_EVENT_*` env |
|
|
90
|
+
| Auth | `AuthModule`, `AuthService.validateAccess()`, `AuthContextService`, `AuthContextMiddleware` | imperative auth (open by default); bearer token via AsyncLocalStorage → user + roles; access + rotating refresh tokens, Redis JTI blocklist |
|
|
91
|
+
| API keys | `ApiKeyService`, `ApiKeyGuard`, `@ApiKeyScopes()` | hashed keys in `sys_api_keys`, scopes, expiry/revocation, `x-api-key` header |
|
|
92
|
+
| Multi-tenancy | `TenantModule`, `TenantEntity`, `TenantCommonEntity`, `TenantContextService`, `TenantContextMiddleware` | AsyncLocalStorage tenant context; resolve by header, slug, or domain |
|
|
93
|
+
| Admin | `AdminModule`, `AdminAccessService`, `TenantDataProcessor`, `ClientUserDataProcessor`, `BulkUserDataProcessor`, `AdminUserDataProcessor`, list processors | back-office APIs: tenant onboarding, client/admin user registration (single + bulk), tenant + scheduled-task listing; 4-tier `GlobalAdminRoles` gate; `UserType` discriminator on `sys_users`; Swagger at `/docs` (hidden in production) |
|
|
94
|
+
| Notifications | `NotificationModule`, `NotificationService`, `FcmPushNotificationService` | in-app rows + FCM push (optional `firebase-admin`); device token registry |
|
|
95
|
+
| Audit | `AuditService` | `saveAuditLog(old, new)` with changed-value diffing into `sys_audit_logs` |
|
|
96
|
+
| Feature flags | `FeatureFlagService` | on/off, percentage rollouts, allow lists — stored as `feature.*` system properties |
|
|
97
|
+
| Cache | `CacheService` | Redis, TTL objects (`{days, hours, min}`), transparent encryption |
|
|
98
|
+
| Encryption | `EncryptionService` | AES-256-GCM, scrypt-derived keys |
|
|
99
|
+
| System properties | `SystemPropertyModule`, `SystemPropertyService` | cached + optionally encrypted key/value settings in `sys_properties` |
|
|
100
|
+
| Documents | `DocumentModule`, `DocumentService`, `S3BucketDocumentService`, `MinioBucketDocumentService` | `uploadDocument(multerFiles) → links[]`; driver chosen via `DOCUMENT_STORAGE_DRIVER` |
|
|
101
|
+
| HTTP | `CommonController`, `GlobalExceptionFilter`, common DTOs | health endpoint base controller, uniform error envelope |
|
|
102
|
+
| Observability | `LoggingInterceptor`, `MonitoringInterceptor`, `MonitoringService` | Sentry auto-registers when `@sentry/node` + `SENTRY_DSN` present; pluggable `MonitoringAdapter` |
|
|
103
|
+
| Jobs/Events | `CommonJob`, `JobConsumer`, `CommonSubscriber`, `CommonDataProcessor` | dispatch/handle separation, discovery-based registration, worker-event lifecycle, column-change detection, field error collection |
|
|
104
|
+
|
|
105
|
+
## Environment Variables
|
|
106
|
+
|
|
107
|
+
Copy [`.env.example`](./.env.example) into your project. Every variable is optional
|
|
108
|
+
unless marked **required**.
|
|
109
|
+
|
|
110
|
+
### Application
|
|
111
|
+
|
|
112
|
+
| Variable | Default | Description |
|
|
113
|
+
| ------------ | ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
114
|
+
| `SERVER_ENV` | `development` | Runtime environment (`development` / `staging` / `production` / `test`). Swagger docs at `/docs` are mounted in every value **except** `production`. |
|
|
115
|
+
| `PORT` | `8000` | HTTP port the server listens on |
|
|
116
|
+
|
|
117
|
+
### Database (PostgreSQL)
|
|
118
|
+
|
|
119
|
+
| Variable | Default | Description |
|
|
120
|
+
| ------------- | ----------- | ----------------- |
|
|
121
|
+
| `DB_HOST` | `localhost` | Postgres host |
|
|
122
|
+
| `DB_PORT` | `5432` | Postgres port |
|
|
123
|
+
| `DB_USERNAME` | `postgres` | Postgres user |
|
|
124
|
+
| `DB_PASSWORD` | `postgres` | Postgres password |
|
|
125
|
+
| `DB_NAME` | `myapp_db` | Database name |
|
|
126
|
+
|
|
127
|
+
### JWT / Auth
|
|
128
|
+
|
|
129
|
+
| Variable | Default | Description |
|
|
130
|
+
| ---------------------- | ------- | ------------------------------------------------------------- |
|
|
131
|
+
| `ACCESS_TOKEN_SECRET` | — | **Required.** Secret for signing access tokens. Min 32 chars |
|
|
132
|
+
| `REFRESH_TOKEN_SECRET` | — | **Required.** Secret for signing refresh tokens. Min 32 chars |
|
|
133
|
+
| `ACCESS_TOKEN_EXPIRY` | `1h` | Access token lifetime (`60s`, `15m`, `1h`, `7d`, …) |
|
|
134
|
+
| `REFRESH_TOKEN_EXPIRY` | `30d` | Refresh token lifetime |
|
|
135
|
+
|
|
136
|
+
#### Authentication (imperative)
|
|
137
|
+
|
|
138
|
+
Controllers are **open by default**; you authenticate explicitly inside the
|
|
139
|
+
handler with `AuthService.validateAccess()`. It reads the bearer token from the
|
|
140
|
+
request (held in `AsyncLocalStorage` by `AuthContextMiddleware`), verifies it,
|
|
141
|
+
rejects revoked tokens, and returns the user row with its roles — throwing
|
|
142
|
+
`AccessException` (403) when missing/invalid. This keeps authorization next to
|
|
143
|
+
your business logic, so layering tenant/plan/role checks is just more code.
|
|
144
|
+
|
|
145
|
+
`AuthController` (mounted at `/auth`) exposes the ready-made flows: `POST
|
|
146
|
+
/auth/login`, `/auth/register`, `/auth/refresh`, `/auth/logout`,
|
|
147
|
+
`/auth/change-password`, and `GET /auth/me`. Passwords are hashed/verified via
|
|
148
|
+
`AuthUtility` (bcrypt); the write flows use the processor lifecycle.
|
|
149
|
+
|
|
150
|
+
```ts
|
|
151
|
+
@Controller('reports')
|
|
152
|
+
export class ReportController {
|
|
153
|
+
constructor(private readonly authService: AuthService) {}
|
|
154
|
+
|
|
155
|
+
@Get()
|
|
156
|
+
async list() {
|
|
157
|
+
const { user, roles } = await this.authService.validateAccess();
|
|
158
|
+
// ...custom checks: roles, tenant membership, subscription, ownership
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Wire the middleware once in your app so the token is captured per request
|
|
164
|
+
(mirrors `TenantContextMiddleware`):
|
|
165
|
+
|
|
166
|
+
```ts
|
|
167
|
+
export class AppModule implements NestModule {
|
|
168
|
+
configure(consumer: MiddlewareConsumer) {
|
|
169
|
+
consumer.apply(AuthContextMiddleware).forRoutes('*'); // Express 5: e.g. '{*splat}'
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
`validateAccess()` reads the token via `AuthContextService` (no request-scoped
|
|
175
|
+
providers). The Passport `JwtStrategy`/`JwtAuthGuard` remain available if you
|
|
176
|
+
prefer guard-based protection on specific routes, but they're no longer the
|
|
177
|
+
default path.
|
|
178
|
+
|
|
179
|
+
### Encryption
|
|
180
|
+
|
|
181
|
+
| Variable | Default | Description |
|
|
182
|
+
| ------------------- | ------- | ------------------------------------------------------------------------------------- |
|
|
183
|
+
| `ENCRYPTION_SECRET` | — | **Required** when `EncryptionService` is used. AES-256-GCM key material. Min 32 chars |
|
|
184
|
+
|
|
185
|
+
### Cache (Redis)
|
|
186
|
+
|
|
187
|
+
| Variable | Default | Description |
|
|
188
|
+
| ---------------------- | ----------- | ----------------------------------------- |
|
|
189
|
+
| `CACHE_REDIS_HOST` | `localhost` | Redis host for `CacheService` |
|
|
190
|
+
| `CACHE_REDIS_PORT` | `6379` | Redis port |
|
|
191
|
+
| `CACHE_REDIS_PASSWORD` | _(empty)_ | Redis password |
|
|
192
|
+
| `CACHE_REDIS_DB` | `1` | Redis DB index (keep separate from queue) |
|
|
193
|
+
|
|
194
|
+
### Queue (BullMQ / Redis)
|
|
195
|
+
|
|
196
|
+
| Variable | Default | Description |
|
|
197
|
+
| ---------------------- | ------------- | --------------------------------------------------------------------------------------------------- |
|
|
198
|
+
| `BULL_REDIS_HOST` | `localhost` | Redis host for BullMQ |
|
|
199
|
+
| `BULL_REDIS_PORT` | `6379` | Redis port |
|
|
200
|
+
| `BULL_REDIS_PASSWORD` | _(empty)_ | Redis password |
|
|
201
|
+
| `BULL_REDIS_DB` | `0` | Redis DB index |
|
|
202
|
+
| `BULL_QUEUE_NAME` | `myapp-queue` | Name of the BullMQ queue |
|
|
203
|
+
| `BULL_WORKERS` | `2` | Concurrent worker threads per process |
|
|
204
|
+
| `BULL_QUEUE_WORKER` | `false` | Set `true` on consumer instances only — API servers should leave this `false` |
|
|
205
|
+
| `BULL_JOB_TTL_SECONDS` | `86400` | Retention (seconds) for completed/failed jobs before removal from the queue + Redis (default 1 day) |
|
|
206
|
+
| `MAX_JOB_RETRIES` | `3` | Max attempts per job (BullMQ `attempts` default) and the scheduled-event retry ceiling |
|
|
207
|
+
| `SCHEDULED_EVENT_HOUR` | `1` | Hour component of the `SetScheduledEventJob` cadence |
|
|
208
|
+
| `SCHEDULED_EVENT_MIN` | `0` | Minute component of the cadence |
|
|
209
|
+
| `SCHEDULED_EVENT_SEC` | `0` | Second component of the cadence (all three are summed; all-zero disables it) |
|
|
210
|
+
|
|
211
|
+
#### Jobs
|
|
212
|
+
|
|
213
|
+
A job pairs a **dispatch** side (enqueue work) with a **handle** side (process it).
|
|
214
|
+
Extend `CommonJob`, add it to your module's providers, and inject `QueueService`:
|
|
215
|
+
|
|
216
|
+
```ts
|
|
217
|
+
@Injectable()
|
|
218
|
+
export class WelcomeEmailJob extends CommonJob {
|
|
219
|
+
constructor(protected readonly queueService: QueueService) {
|
|
220
|
+
super('welcome.email.job'); // unique identifier
|
|
221
|
+
}
|
|
222
|
+
async handle(data: { userId: string }): Promise<void> {
|
|
223
|
+
// ...send the email
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
// elsewhere: await welcomeEmailJob.dispatch({ userId });
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
`CommonJob` has **no `onModuleInit`**. At boot `QueueService` uses Nest's
|
|
231
|
+
`DiscoveryService` to find every `CommonJob` provider and register its handler
|
|
232
|
+
by identifier — so simply providing the job is enough; nothing self-registers.
|
|
233
|
+
|
|
234
|
+
For database-event jobs (dispatched by a `CommonSubscriber`), `CommonJob`
|
|
235
|
+
exposes `isNewRecord(event)`, `isColumnUpdated(event, col)` and
|
|
236
|
+
`isAnyColumnUpdated(event, cols)` — usable directly inside `handle()` (they work
|
|
237
|
+
on the plain event object after the queue round-trip).
|
|
238
|
+
|
|
239
|
+
**Consumer / worker.** A single `JobConsumer` (a BullMQ `@Processor` /
|
|
240
|
+
`WorkerHost`) is the only worker. On instances where `BULL_QUEUE_WORKER=true` it
|
|
241
|
+
processes every job — routing each to the handler registered under
|
|
242
|
+
`job.data.job` — tracks queue stats via worker lifecycle events
|
|
243
|
+
(`active`/`completed`/`failed`), and persists _final_ failures (after
|
|
244
|
+
`MAX_JOB_RETRIES` attempts) to `sys_failed_jobs`. API instances leave
|
|
245
|
+
`BULL_QUEUE_WORKER=false` so no worker spawns; they can still `dispatch()`.
|
|
246
|
+
|
|
247
|
+
#### Scheduled events
|
|
248
|
+
|
|
249
|
+
Recurring work is event-driven (off the BullMQ worker), not a reconciliation
|
|
250
|
+
loop. Two tables back it:
|
|
251
|
+
|
|
252
|
+
| Table | Entity | Role |
|
|
253
|
+
| ---------------------- | --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
|
|
254
|
+
| `sys_scheduled_tasks` | `SystemScheduledTaskEntity` | a schedule definition (`identifier`, `name`, `start_from`, `schedule_interval`, `enabled`, `next_upsert_at`) |
|
|
255
|
+
| `sys_scheduled_events` | `ScheduledEventEntity` | one row per fire time (`job_id` → task, `scheduled_at`, `started_at`, `failed_at`, `total_attempts`, `active`); one task → many events |
|
|
256
|
+
|
|
257
|
+
When the worker emits `ready`, `JobConsumer` enrols `SetScheduledEventJob` as a
|
|
258
|
+
recurring scheduler whose cadence comes from `SCHEDULED_EVENT_{HOUR,MIN,SEC}`
|
|
259
|
+
(summed to an interval; all-zero disables it). BullMQ keys the scheduler on the
|
|
260
|
+
job identifier, so re-running on each boot **upserts** rather than duplicates.
|
|
261
|
+
|
|
262
|
+
Each tick, `SetScheduledEventJob.handle()` materialises due
|
|
263
|
+
`sys_scheduled_events` rows from enabled `sys_scheduled_tasks` (using
|
|
264
|
+
`ScheduleUtility.addInterval`) and triggers `DispatchScheduledEventJob`, which
|
|
265
|
+
enqueues each due event's job (bounded by `MAX_JOB_RETRIES`).
|
|
266
|
+
`SystemScheduledTaskJob` (via `SystemScheduledTaskSubscriber`) keeps events in
|
|
267
|
+
step with task changes — toggling `active` when a task is enabled/disabled and
|
|
268
|
+
soft-deleting events when a task is removed.
|
|
269
|
+
|
|
270
|
+
When a `ScheduledEventEntity` row is written, `ScheduledEventSubscriber` fires
|
|
271
|
+
`ScheduledEventJob` with the database event — wire your per-event dispatch logic
|
|
272
|
+
into that job's `handle()`.
|
|
273
|
+
|
|
274
|
+
### Document Storage
|
|
275
|
+
|
|
276
|
+
| Variable | Default | Description |
|
|
277
|
+
| --------------------------------------- | ------- | ------------------------------------------ |
|
|
278
|
+
| `DOCUMENT_STORAGE_DRIVER` | `minio` | Active driver: `s3` or `minio` |
|
|
279
|
+
| `DOCUMENT_PRESIGNED_URL_EXPIRY_SECONDS` | `3600` | Presigned download URL validity in seconds |
|
|
280
|
+
|
|
281
|
+
**S3 driver** (`DOCUMENT_STORAGE_DRIVER=s3`):
|
|
282
|
+
|
|
283
|
+
| Variable | Default | Description |
|
|
284
|
+
| ------------------------- | ----------- | --------------------------------------------------------------- |
|
|
285
|
+
| `AWS_S3_BUCKET` | — | **Required.** S3 bucket name |
|
|
286
|
+
| `AWS_S3_REGION` | `us-east-1` | AWS region |
|
|
287
|
+
| `AWS_ACCESS_KEY_ID` | — | AWS access key (falls back to instance profile / env chain) |
|
|
288
|
+
| `AWS_SECRET_ACCESS_KEY` | — | AWS secret key |
|
|
289
|
+
| `AWS_S3_ENDPOINT` | _(empty)_ | Custom endpoint for S3-compatible providers |
|
|
290
|
+
| `AWS_S3_PUBLIC_URL` | _(empty)_ | CDN base URL for public files |
|
|
291
|
+
| `AWS_S3_FORCE_PATH_STYLE` | `false` | Force path-style URLs (required by some S3-compatible services) |
|
|
292
|
+
|
|
293
|
+
**MinIO driver** (`DOCUMENT_STORAGE_DRIVER=minio`):
|
|
294
|
+
|
|
295
|
+
| Variable | Default | Description |
|
|
296
|
+
| ------------------ | ------------ | ------------------------------------------- |
|
|
297
|
+
| `MINIO_ENDPOINT` | `localhost` | MinIO host |
|
|
298
|
+
| `MINIO_PORT` | `9000` | MinIO port |
|
|
299
|
+
| `MINIO_USE_SSL` | `false` | Enable TLS |
|
|
300
|
+
| `MINIO_ACCESS_KEY` | `minioadmin` | MinIO access key |
|
|
301
|
+
| `MINIO_SECRET_KEY` | `minioadmin` | MinIO secret key |
|
|
302
|
+
| `MINIO_BUCKET` | `documents` | Bucket name (auto-created if missing) |
|
|
303
|
+
| `MINIO_PUBLIC_URL` | _(empty)_ | CDN base URL when MinIO sits behind a proxy |
|
|
304
|
+
|
|
305
|
+
### HTTP Logging
|
|
306
|
+
|
|
307
|
+
| Variable | Default | Description |
|
|
308
|
+
| ----------------- | ------- | --------------------------------------------------------------------------- |
|
|
309
|
+
| `HTTP_LOG_FORMAT` | `dev` | Morgan log format: `dev` (compact) or `combined` (includes IP + user agent) |
|
|
310
|
+
|
|
311
|
+
### Monitoring
|
|
312
|
+
|
|
313
|
+
| Variable | Default | Description |
|
|
314
|
+
| ---------------------------- | --------- | -------------------------------------------------------------------------------------- |
|
|
315
|
+
| `SENTRY_DSN` | _(empty)_ | Sentry DSN — Sentry is only activated when this is set and `@sentry/node` is installed |
|
|
316
|
+
| `SENTRY_TRACES_SAMPLE_RATE` | `0` | Sentry performance traces sample rate (0–1) |
|
|
317
|
+
| `MONITORING_SLOW_REQUEST_MS` | `3000` | Requests slower than this (ms) are flagged as warnings |
|
|
318
|
+
|
|
319
|
+
### Multi-tenancy
|
|
320
|
+
|
|
321
|
+
| Variable | Default | Description |
|
|
322
|
+
| -------------------- | ------------- | ----------------------------------------------- |
|
|
323
|
+
| `TENANT_HEADER_NAME` | `x-tenant-id` | Request header carrying the tenant UUID or slug |
|
|
324
|
+
|
|
325
|
+
### API Keys
|
|
326
|
+
|
|
327
|
+
| Variable | Default | Description |
|
|
328
|
+
| --------------------- | ----------- | ----------------------------------- |
|
|
329
|
+
| `API_KEY_HEADER_NAME` | `x-api-key` | Request header carrying the API key |
|
|
330
|
+
|
|
331
|
+
### Push Notifications (FCM)
|
|
332
|
+
|
|
333
|
+
Requires the optional peer dependency `firebase-admin`. Provide **one** of:
|
|
334
|
+
|
|
335
|
+
| Variable | Default | Description |
|
|
336
|
+
| ---------------------------- | --------- | ----------------------------------------------------------------------------- |
|
|
337
|
+
| `FCM_SERVICE_ACCOUNT_PATH` | _(empty)_ | Absolute path to the Firebase service account JSON file |
|
|
338
|
+
| `FCM_SERVICE_ACCOUNT_BASE64` | _(empty)_ | Base64-encoded service account JSON (preferred for containerised deployments) |
|
|
339
|
+
|
|
340
|
+
---
|
|
102
341
|
|
|
103
342
|
## Document Uploads in 10 Lines
|
|
104
343
|
|
|
@@ -120,6 +359,65 @@ async upload(@UploadedFiles() files: Express.Multer.File[], @CurrentUser() user:
|
|
|
120
359
|
Set `DOCUMENT_STORAGE_DRIVER=minio` for a local MinIO bucket (auto-created) or
|
|
121
360
|
`DOCUMENT_STORAGE_DRIVER=s3` for Amazon S3. Switching drivers requires no code change.
|
|
122
361
|
|
|
362
|
+
## Admin Module
|
|
363
|
+
|
|
364
|
+
`AdminModule` is the back-office surface — tenant onboarding, client/admin user
|
|
365
|
+
registration, tenant listing and scheduled-task management. It uses the same
|
|
366
|
+
imperative auth model as the rest of the app: controllers are open by default and
|
|
367
|
+
gate each action through `AdminAccessService` before handing the work to a
|
|
368
|
+
processor.
|
|
369
|
+
|
|
370
|
+
### Roles
|
|
371
|
+
|
|
372
|
+
Global roles (`GlobalAdminRoles`) are ordered by seniority — a senior role
|
|
373
|
+
satisfies any junior requirement:
|
|
374
|
+
|
|
375
|
+
| Role (`sys_roles.name`) | Capability |
|
|
376
|
+
| ------------------------ | ---------------------------------------------------- |
|
|
377
|
+
| `global.super.admin` | View/change/delete everything, including tenant info |
|
|
378
|
+
| `global.admin` | Tenant listing and admin-user management |
|
|
379
|
+
| `global.content.manager` | View/change/edit everything except tenant info |
|
|
380
|
+
| `global.content.reader` | Read-only access to non-tenant content |
|
|
381
|
+
|
|
382
|
+
`AdminAccessService` exposes `validateSuperAdmin()`, `validateAdmin()`,
|
|
383
|
+
`validateContentManager()` and `validateContentReader()`. Each authenticates the
|
|
384
|
+
caller and returns `{ user, roles }` so the controller can pass the actor to a
|
|
385
|
+
processor.
|
|
386
|
+
|
|
387
|
+
### Endpoints
|
|
388
|
+
|
|
389
|
+
| Route | Min. role | Processor |
|
|
390
|
+
| -------------------------------- | --------------- | ---------------------------- |
|
|
391
|
+
| `POST /admin/tenants` | super admin | `TenantDataProcessor` |
|
|
392
|
+
| `GET /admin/tenants` | admin | `TenantListProcessor` |
|
|
393
|
+
| `POST /admin/users/clients` | super admin | `ClientUserDataProcessor` |
|
|
394
|
+
| `POST /admin/users/clients/bulk` | super admin | `BulkUserDataProcessor` |
|
|
395
|
+
| `POST /admin/users/admins` | admin | `AdminUserDataProcessor` |
|
|
396
|
+
| `POST /admin/scheduled-tasks` | content manager | `ScheduledTaskDataProcessor` |
|
|
397
|
+
| `GET /admin/scheduled-tasks` | content reader | `ScheduledTaskListProcessor` |
|
|
398
|
+
|
|
399
|
+
### Flow
|
|
400
|
+
|
|
401
|
+
```ts
|
|
402
|
+
@Post()
|
|
403
|
+
async onboard(@Body() dto: AddTenantDto) {
|
|
404
|
+
const { user } = await this.adminAccessService.validateSuperAdmin();
|
|
405
|
+
return new TenantDataProcessor(user).process(dto);
|
|
406
|
+
}
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
Data processors extend `CommonDataProcessor` and are created per request
|
|
410
|
+
(`new XxxDataProcessor(actor, ...deps).process(dto)`); list processors return a
|
|
411
|
+
`PaginatedResult`. Bulk registration validates the entire batch before any insert.
|
|
412
|
+
Admins and client users share `sys_users`, distinguished by the `UserType` enum on
|
|
413
|
+
`user_type` (`system.user` vs `tenant.user`).
|
|
414
|
+
|
|
415
|
+
### API docs (Swagger)
|
|
416
|
+
|
|
417
|
+
Interactive docs are served at `GET /docs` (JSON at `/docs-json`) in every
|
|
418
|
+
environment **except production** — `main.ts` only mounts Swagger when
|
|
419
|
+
`SERVER_ENV !== 'production'`, so the schema is never exposed in prod.
|
|
420
|
+
|
|
123
421
|
## License
|
|
124
422
|
|
|
125
423
|
MIT
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DynamicModule } from '@nestjs/common';
|
|
2
|
+
export interface AdminModuleOptions {
|
|
3
|
+
dataSourceName?: string;
|
|
4
|
+
}
|
|
5
|
+
export declare class AdminModule {
|
|
6
|
+
static register(options?: AdminModuleOptions): DynamicModule;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=admin.module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin.module.d.ts","sourceRoot":"","sources":["../../src/admin/admin.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAU,MAAM,gBAAgB,CAAC;AAOvD,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAWD,qBAMa,WAAW;IACtB,MAAM,CAAC,QAAQ,CAAC,OAAO,GAAE,kBAAuB,GAAG,aAAa;CASjE"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var AdminModule_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.AdminModule = void 0;
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
const auth_module_1 = require("../auth/auth.module");
|
|
13
|
+
const tenant_module_1 = require("../tenant/tenant.module");
|
|
14
|
+
const es6_classes_1 = require("./es6.classes");
|
|
15
|
+
const [AdminAccessService] = es6_classes_1.es6Classes.services;
|
|
16
|
+
let AdminModule = AdminModule_1 = class AdminModule {
|
|
17
|
+
static register(options = {}) {
|
|
18
|
+
return {
|
|
19
|
+
module: AdminModule_1,
|
|
20
|
+
imports: [auth_module_1.AuthModule.register(options), tenant_module_1.TenantModule.register(options)],
|
|
21
|
+
controllers: [...es6_classes_1.es6Classes.controllers],
|
|
22
|
+
providers: [...es6_classes_1.es6Classes.services],
|
|
23
|
+
exports: [...es6_classes_1.es6Classes.services],
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
exports.AdminModule = AdminModule;
|
|
28
|
+
exports.AdminModule = AdminModule = AdminModule_1 = __decorate([
|
|
29
|
+
(0, common_1.Module)({
|
|
30
|
+
imports: [auth_module_1.AuthModule, tenant_module_1.TenantModule],
|
|
31
|
+
controllers: [...es6_classes_1.es6Classes.controllers],
|
|
32
|
+
providers: [...es6_classes_1.es6Classes.services],
|
|
33
|
+
exports: [...es6_classes_1.es6Classes.services],
|
|
34
|
+
})
|
|
35
|
+
], AdminModule);
|
|
36
|
+
//# sourceMappingURL=admin.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin.module.js","sourceRoot":"","sources":["../../src/admin/admin.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuD;AACvD,qDAAiD;AACjD,2DAAuD;AACvD,+CAA2C;AAE3C,MAAM,CAAC,kBAAkB,CAAC,GAAG,wBAAU,CAAC,QAAQ,CAAC;AAqB1C,IAAM,WAAW,mBAAjB,MAAM,WAAW;IACtB,MAAM,CAAC,QAAQ,CAAC,UAA8B,EAAE;QAC9C,OAAO;YACL,MAAM,EAAE,aAAW;YACnB,OAAO,EAAE,CAAC,wBAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,4BAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACvE,WAAW,EAAE,CAAC,GAAG,wBAAU,CAAC,WAAW,CAAC;YACxC,SAAS,EAAE,CAAC,GAAG,wBAAU,CAAC,QAAQ,CAAC;YACnC,OAAO,EAAE,CAAC,GAAG,wBAAU,CAAC,QAAQ,CAAC;SAClC,CAAC;IACJ,CAAC;CACF,CAAA;AAVY,kCAAW;sBAAX,WAAW;IANvB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,wBAAU,EAAE,4BAAY,CAAC;QACnC,WAAW,EAAE,CAAC,GAAG,wBAAU,CAAC,WAAW,CAAC;QACxC,SAAS,EAAE,CAAC,GAAG,wBAAU,CAAC,QAAQ,CAAC;QACnC,OAAO,EAAE,CAAC,GAAG,wBAAU,CAAC,QAAQ,CAAC;KAClC,CAAC;GACW,WAAW,CAUvB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { SqlService } from '../../common/services/sql.service';
|
|
2
|
+
import { AdminAccessService } from '../services/admin.access.service';
|
|
3
|
+
import { AddScheduledTaskDto } from '../dtos/add.scheduled.task.dto';
|
|
4
|
+
import { ScheduledTaskListDto } from '../dtos/scheduled.task.list.dto';
|
|
5
|
+
export declare class AdminScheduledTaskController {
|
|
6
|
+
private readonly adminAccessService;
|
|
7
|
+
private readonly sqlService;
|
|
8
|
+
constructor(adminAccessService: AdminAccessService, sqlService: SqlService);
|
|
9
|
+
add(dto: AddScheduledTaskDto): Promise<import("../..").SystemScheduledTaskEntity>;
|
|
10
|
+
list(dto: ScheduledTaskListDto): Promise<{
|
|
11
|
+
records: import("../..").SqlRow[];
|
|
12
|
+
total: number;
|
|
13
|
+
page: number;
|
|
14
|
+
limit: number;
|
|
15
|
+
total_pages: number;
|
|
16
|
+
}>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=admin.scheduled.task.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin.scheduled.task.controller.d.ts","sourceRoot":"","sources":["../../../src/admin/controllers/admin.scheduled.task.controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAGtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEvE,qBAGa,4BAA4B;IAErC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU;gBADV,kBAAkB,EAAE,kBAAkB,EACtC,UAAU,EAAE,UAAU;IAQnC,GAAG,CAAS,GAAG,EAAE,mBAAmB;IAUpC,IAAI,CAAS,GAAG,EAAE,oBAAoB;;;;;;;CAI7C"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.AdminScheduledTaskController = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
18
|
+
const sql_service_1 = require("../../common/services/sql.service");
|
|
19
|
+
const admin_access_service_1 = require("../services/admin.access.service");
|
|
20
|
+
const scheduled_task_data_processor_1 = require("../libraries/scheduled.task.data.processor");
|
|
21
|
+
const scheduled_task_list_processor_1 = require("../libraries/scheduled.task.list.processor");
|
|
22
|
+
const add_scheduled_task_dto_1 = require("../dtos/add.scheduled.task.dto");
|
|
23
|
+
const scheduled_task_list_dto_1 = require("../dtos/scheduled.task.list.dto");
|
|
24
|
+
let AdminScheduledTaskController = class AdminScheduledTaskController {
|
|
25
|
+
constructor(adminAccessService, sqlService) {
|
|
26
|
+
this.adminAccessService = adminAccessService;
|
|
27
|
+
this.sqlService = sqlService;
|
|
28
|
+
}
|
|
29
|
+
async add(dto) {
|
|
30
|
+
const { user } = await this.adminAccessService.validateContentManager();
|
|
31
|
+
return new scheduled_task_data_processor_1.ScheduledTaskDataProcessor(user).process(dto);
|
|
32
|
+
}
|
|
33
|
+
async list(dto) {
|
|
34
|
+
await this.adminAccessService.validateContentReader();
|
|
35
|
+
return new scheduled_task_list_processor_1.ScheduledTaskListProcessor(this.sqlService).process(dto);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
exports.AdminScheduledTaskController = AdminScheduledTaskController;
|
|
39
|
+
__decorate([
|
|
40
|
+
(0, common_1.Post)(),
|
|
41
|
+
(0, swagger_1.ApiOperation)({
|
|
42
|
+
summary: 'Add a scheduled task.',
|
|
43
|
+
description: 'Requires at least the global content manager role.',
|
|
44
|
+
}),
|
|
45
|
+
__param(0, (0, common_1.Body)()),
|
|
46
|
+
__metadata("design:type", Function),
|
|
47
|
+
__metadata("design:paramtypes", [add_scheduled_task_dto_1.AddScheduledTaskDto]),
|
|
48
|
+
__metadata("design:returntype", Promise)
|
|
49
|
+
], AdminScheduledTaskController.prototype, "add", null);
|
|
50
|
+
__decorate([
|
|
51
|
+
(0, common_1.Post)('list'),
|
|
52
|
+
(0, swagger_1.ApiOperation)({
|
|
53
|
+
summary: 'List, search and filter scheduled tasks.',
|
|
54
|
+
description: 'Requires at least the global content reader role.',
|
|
55
|
+
}),
|
|
56
|
+
__param(0, (0, common_1.Body)()),
|
|
57
|
+
__metadata("design:type", Function),
|
|
58
|
+
__metadata("design:paramtypes", [scheduled_task_list_dto_1.ScheduledTaskListDto]),
|
|
59
|
+
__metadata("design:returntype", Promise)
|
|
60
|
+
], AdminScheduledTaskController.prototype, "list", null);
|
|
61
|
+
exports.AdminScheduledTaskController = AdminScheduledTaskController = __decorate([
|
|
62
|
+
(0, swagger_1.ApiTags)('Admin - Scheduled Tasks'),
|
|
63
|
+
(0, swagger_1.ApiBearerAuth)(),
|
|
64
|
+
(0, common_1.Controller)('admin/scheduled-tasks'),
|
|
65
|
+
__metadata("design:paramtypes", [admin_access_service_1.AdminAccessService,
|
|
66
|
+
sql_service_1.SqlService])
|
|
67
|
+
], AdminScheduledTaskController);
|
|
68
|
+
//# sourceMappingURL=admin.scheduled.task.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin.scheduled.task.controller.js","sourceRoot":"","sources":["../../../src/admin/controllers/admin.scheduled.task.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwD;AACxD,6CAAuE;AACvE,mEAA+D;AAC/D,2EAAsE;AACtE,8FAAwF;AACxF,8FAAwF;AACxF,2EAAqE;AACrE,6EAAuE;AAKhE,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;IACvC,YACmB,kBAAsC,EACtC,UAAsB;QADtB,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,eAAU,GAAV,UAAU,CAAY;IACtC,CAAC;IAOE,AAAN,KAAK,CAAC,GAAG,CAAS,GAAwB;QACxC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,EAAE,CAAC;QACxE,OAAO,IAAI,0DAA0B,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3D,CAAC;IAOK,AAAN,KAAK,CAAC,IAAI,CAAS,GAAyB;QAC1C,MAAM,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,CAAC;QACtD,OAAO,IAAI,0DAA0B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtE,CAAC;CACF,CAAA;AAzBY,oEAA4B;AAWjC;IALL,IAAA,aAAI,GAAE;IACN,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,uBAAuB;QAChC,WAAW,EAAE,oDAAoD;KAClE,CAAC;IACS,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,4CAAmB;;uDAGzC;AAOK;IALL,IAAA,aAAI,EAAC,MAAM,CAAC;IACZ,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,0CAA0C;QACnD,WAAW,EAAE,mDAAmD;KACjE,CAAC;IACU,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,8CAAoB;;wDAG3C;uCAxBU,4BAA4B;IAHxC,IAAA,iBAAO,EAAC,yBAAyB,CAAC;IAClC,IAAA,uBAAa,GAAE;IACf,IAAA,mBAAU,EAAC,uBAAuB,CAAC;qCAGK,yCAAkB;QAC1B,wBAAU;GAH9B,4BAA4B,CAyBxC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { SqlService } from '../../common/services/sql.service';
|
|
2
|
+
import { AdminAccessService } from '../services/admin.access.service';
|
|
3
|
+
import { AddTenantDto } from '../dtos/add.tenant.dto';
|
|
4
|
+
import { TenantListDto } from '../dtos/tenant.list.dto';
|
|
5
|
+
export declare class AdminTenantController {
|
|
6
|
+
private readonly adminAccessService;
|
|
7
|
+
private readonly sqlService;
|
|
8
|
+
constructor(adminAccessService: AdminAccessService, sqlService: SqlService);
|
|
9
|
+
onboard(dto: AddTenantDto): Promise<import("../..").TenantEntity>;
|
|
10
|
+
list(dto: TenantListDto): Promise<{
|
|
11
|
+
records: import("../..").SqlRow[];
|
|
12
|
+
total: number;
|
|
13
|
+
page: number;
|
|
14
|
+
limit: number;
|
|
15
|
+
total_pages: number;
|
|
16
|
+
}>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=admin.tenant.controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin.tenant.controller.d.ts","sourceRoot":"","sources":["../../../src/admin/controllers/admin.tenant.controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAGtE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,qBAGa,qBAAqB;IAE9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU;gBADV,kBAAkB,EAAE,kBAAkB,EACtC,UAAU,EAAE,UAAU;IAQnC,OAAO,CAAS,GAAG,EAAE,YAAY;IAUjC,IAAI,CAAS,GAAG,EAAE,aAAa;;;;;;;CAItC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.AdminTenantController = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
18
|
+
const sql_service_1 = require("../../common/services/sql.service");
|
|
19
|
+
const admin_access_service_1 = require("../services/admin.access.service");
|
|
20
|
+
const tenant_data_processor_1 = require("../libraries/tenant.data.processor");
|
|
21
|
+
const tenant_list_processor_1 = require("../libraries/tenant.list.processor");
|
|
22
|
+
const add_tenant_dto_1 = require("../dtos/add.tenant.dto");
|
|
23
|
+
const tenant_list_dto_1 = require("../dtos/tenant.list.dto");
|
|
24
|
+
let AdminTenantController = class AdminTenantController {
|
|
25
|
+
constructor(adminAccessService, sqlService) {
|
|
26
|
+
this.adminAccessService = adminAccessService;
|
|
27
|
+
this.sqlService = sqlService;
|
|
28
|
+
}
|
|
29
|
+
async onboard(dto) {
|
|
30
|
+
const { user } = await this.adminAccessService.validateSuperAdmin();
|
|
31
|
+
return new tenant_data_processor_1.TenantDataProcessor(user).process(dto);
|
|
32
|
+
}
|
|
33
|
+
async list(dto) {
|
|
34
|
+
await this.adminAccessService.validateAdmin();
|
|
35
|
+
return new tenant_list_processor_1.TenantListProcessor(this.sqlService).process(dto);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
exports.AdminTenantController = AdminTenantController;
|
|
39
|
+
__decorate([
|
|
40
|
+
(0, common_1.Post)(),
|
|
41
|
+
(0, swagger_1.ApiOperation)({
|
|
42
|
+
summary: 'Onboard (register) a new client tenant.',
|
|
43
|
+
description: 'Requires the global super admin role.',
|
|
44
|
+
}),
|
|
45
|
+
__param(0, (0, common_1.Body)()),
|
|
46
|
+
__metadata("design:type", Function),
|
|
47
|
+
__metadata("design:paramtypes", [add_tenant_dto_1.AddTenantDto]),
|
|
48
|
+
__metadata("design:returntype", Promise)
|
|
49
|
+
], AdminTenantController.prototype, "onboard", null);
|
|
50
|
+
__decorate([
|
|
51
|
+
(0, common_1.Post)('list'),
|
|
52
|
+
(0, swagger_1.ApiOperation)({
|
|
53
|
+
summary: 'List, search and filter tenants.',
|
|
54
|
+
description: 'Requires at least the global admin role.',
|
|
55
|
+
}),
|
|
56
|
+
__param(0, (0, common_1.Body)()),
|
|
57
|
+
__metadata("design:type", Function),
|
|
58
|
+
__metadata("design:paramtypes", [tenant_list_dto_1.TenantListDto]),
|
|
59
|
+
__metadata("design:returntype", Promise)
|
|
60
|
+
], AdminTenantController.prototype, "list", null);
|
|
61
|
+
exports.AdminTenantController = AdminTenantController = __decorate([
|
|
62
|
+
(0, swagger_1.ApiTags)('Admin - Tenants'),
|
|
63
|
+
(0, swagger_1.ApiBearerAuth)(),
|
|
64
|
+
(0, common_1.Controller)('admin/tenants'),
|
|
65
|
+
__metadata("design:paramtypes", [admin_access_service_1.AdminAccessService,
|
|
66
|
+
sql_service_1.SqlService])
|
|
67
|
+
], AdminTenantController);
|
|
68
|
+
//# sourceMappingURL=admin.tenant.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin.tenant.controller.js","sourceRoot":"","sources":["../../../src/admin/controllers/admin.tenant.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwD;AACxD,6CAAuE;AACvE,mEAA+D;AAC/D,2EAAsE;AACtE,8EAAyE;AACzE,8EAAyE;AACzE,2DAAsD;AACtD,6DAAwD;AAKjD,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAChC,YACmB,kBAAsC,EACtC,UAAsB;QADtB,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,eAAU,GAAV,UAAU,CAAY;IACtC,CAAC;IAOE,AAAN,KAAK,CAAC,OAAO,CAAS,GAAiB;QACrC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,CAAC;QACpE,OAAO,IAAI,2CAAmB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACpD,CAAC;IAOK,AAAN,KAAK,CAAC,IAAI,CAAS,GAAkB;QACnC,MAAM,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC;QAC9C,OAAO,IAAI,2CAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC/D,CAAC;CACF,CAAA;AAzBY,sDAAqB;AAW1B;IALL,IAAA,aAAI,GAAE;IACN,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,yCAAyC;QAClD,WAAW,EAAE,uCAAuC;KACrD,CAAC;IACa,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,6BAAY;;oDAGtC;AAOK;IALL,IAAA,aAAI,EAAC,MAAM,CAAC;IACZ,IAAA,sBAAY,EAAC;QACZ,OAAO,EAAE,kCAAkC;QAC3C,WAAW,EAAE,0CAA0C;KACxD,CAAC;IACU,WAAA,IAAA,aAAI,GAAE,CAAA;;qCAAM,+BAAa;;iDAGpC;gCAxBU,qBAAqB;IAHjC,IAAA,iBAAO,EAAC,iBAAiB,CAAC;IAC1B,IAAA,uBAAa,GAAE;IACf,IAAA,mBAAU,EAAC,eAAe,CAAC;qCAGa,yCAAkB;QAC1B,wBAAU;GAH9B,qBAAqB,CAyBjC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TenantService } from '../../tenant/services/tenant.service';
|
|
2
|
+
import { AdminAccessService } from '../services/admin.access.service';
|
|
3
|
+
import { AddClientUserDto } from '../dtos/add.client.user.dto';
|
|
4
|
+
import { AddBulkUsersDto } from '../dtos/add.bulk.users.dto';
|
|
5
|
+
import { AddAdminUserDto } from '../dtos/add.admin.user.dto';
|
|
6
|
+
export declare class AdminUserController {
|
|
7
|
+
private readonly adminAccessService;
|
|
8
|
+
private readonly tenantService;
|
|
9
|
+
constructor(adminAccessService: AdminAccessService, tenantService: TenantService);
|
|
10
|
+
addClientUser(dto: AddClientUserDto): Promise<import("../..").UserEntity>;
|
|
11
|
+
addClientUsersBulk(dto: AddBulkUsersDto): Promise<import("../libraries/bulk.user.data.processor").BulkUserResult>;
|
|
12
|
+
addAdminUser(dto: AddAdminUserDto): Promise<import("../..").UserEntity>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=admin.user.controller.d.ts.map
|