@neohm/nestend 1.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 +125 -0
- package/dist/app.controller.d.ts +7 -0
- package/dist/app.controller.d.ts.map +1 -0
- package/dist/app.controller.js +35 -0
- package/dist/app.controller.js.map +1 -0
- package/dist/app.module.d.ts +3 -0
- package/dist/app.module.d.ts.map +1 -0
- package/dist/app.module.js +23 -0
- package/dist/app.module.js.map +1 -0
- package/dist/app.service.d.ts +4 -0
- package/dist/app.service.d.ts.map +1 -0
- package/dist/app.service.js +20 -0
- package/dist/app.service.js.map +1 -0
- package/dist/auth/auth.module.d.ts +8 -0
- package/dist/auth/auth.module.d.ts.map +1 -0
- package/dist/auth/auth.module.js +86 -0
- package/dist/auth/auth.module.js.map +1 -0
- package/dist/auth/decorators/api.key.scopes.decorator.d.ts +3 -0
- package/dist/auth/decorators/api.key.scopes.decorator.d.ts.map +1 -0
- package/dist/auth/decorators/api.key.scopes.decorator.js +8 -0
- package/dist/auth/decorators/api.key.scopes.decorator.js.map +1 -0
- package/dist/auth/decorators/current.user.decorator.d.ts +2 -0
- package/dist/auth/decorators/current.user.decorator.d.ts.map +1 -0
- package/dist/auth/decorators/current.user.decorator.js +11 -0
- package/dist/auth/decorators/current.user.decorator.js.map +1 -0
- package/dist/auth/decorators/public.decorator.d.ts +3 -0
- package/dist/auth/decorators/public.decorator.d.ts.map +1 -0
- package/dist/auth/decorators/public.decorator.js +8 -0
- package/dist/auth/decorators/public.decorator.js.map +1 -0
- package/dist/auth/entities/api.key.entity.d.ts +12 -0
- package/dist/auth/entities/api.key.entity.d.ts.map +1 -0
- package/dist/auth/entities/api.key.entity.js +61 -0
- package/dist/auth/entities/api.key.entity.js.map +1 -0
- package/dist/auth/entities/system.refresh.token.entity.d.ts +10 -0
- package/dist/auth/entities/system.refresh.token.entity.d.ts.map +1 -0
- package/dist/auth/entities/system.refresh.token.entity.js +51 -0
- package/dist/auth/entities/system.refresh.token.entity.js.map +1 -0
- package/dist/auth/entities/system.role.entity.d.ts +11 -0
- package/dist/auth/entities/system.role.entity.d.ts.map +1 -0
- package/dist/auth/entities/system.role.entity.js +52 -0
- package/dist/auth/entities/system.role.entity.js.map +1 -0
- package/dist/auth/entities/user.details.entity.d.ts +19 -0
- package/dist/auth/entities/user.details.entity.d.ts.map +1 -0
- package/dist/auth/entities/user.details.entity.js +92 -0
- package/dist/auth/entities/user.details.entity.js.map +1 -0
- package/dist/auth/entities/user.entity.d.ts +19 -0
- package/dist/auth/entities/user.entity.d.ts.map +1 -0
- package/dist/auth/entities/user.entity.js +89 -0
- package/dist/auth/entities/user.entity.js.map +1 -0
- package/dist/auth/entities/user.role.entity.d.ts +10 -0
- package/dist/auth/entities/user.role.entity.d.ts.map +1 -0
- package/dist/auth/entities/user.role.entity.js +45 -0
- package/dist/auth/entities/user.role.entity.js.map +1 -0
- package/dist/auth/enums/api.key.default.enum.d.ts +7 -0
- package/dist/auth/enums/api.key.default.enum.d.ts.map +1 -0
- package/dist/auth/enums/api.key.default.enum.js +11 -0
- package/dist/auth/enums/api.key.default.enum.js.map +1 -0
- package/dist/auth/es6.classes.d.ts +17 -0
- package/dist/auth/es6.classes.d.ts.map +1 -0
- package/dist/auth/es6.classes.js +19 -0
- package/dist/auth/es6.classes.js.map +1 -0
- package/dist/auth/guards/api.key.guard.d.ts +11 -0
- package/dist/auth/guards/api.key.guard.d.ts.map +1 -0
- package/dist/auth/guards/api.key.guard.js +71 -0
- package/dist/auth/guards/api.key.guard.js.map +1 -0
- package/dist/auth/guards/jwt.auth.guard.d.ts +10 -0
- package/dist/auth/guards/jwt.auth.guard.d.ts.map +1 -0
- package/dist/auth/guards/jwt.auth.guard.js +38 -0
- package/dist/auth/guards/jwt.auth.guard.js.map +1 -0
- package/dist/auth/guards/jwt.refresh.guard.d.ts +5 -0
- package/dist/auth/guards/jwt.refresh.guard.d.ts.map +1 -0
- package/dist/auth/guards/jwt.refresh.guard.js +18 -0
- package/dist/auth/guards/jwt.refresh.guard.js.map +1 -0
- package/dist/auth/jobs/system.refresh.token.job.d.ts +8 -0
- package/dist/auth/jobs/system.refresh.token.job.d.ts.map +1 -0
- package/dist/auth/jobs/system.refresh.token.job.js +32 -0
- package/dist/auth/jobs/system.refresh.token.job.js.map +1 -0
- package/dist/auth/jobs/system.role.job.d.ts +8 -0
- package/dist/auth/jobs/system.role.job.d.ts.map +1 -0
- package/dist/auth/jobs/system.role.job.js +32 -0
- package/dist/auth/jobs/system.role.job.js.map +1 -0
- package/dist/auth/jobs/user.details.job.d.ts +8 -0
- package/dist/auth/jobs/user.details.job.d.ts.map +1 -0
- package/dist/auth/jobs/user.details.job.js +32 -0
- package/dist/auth/jobs/user.details.job.js.map +1 -0
- package/dist/auth/jobs/user.job.d.ts +8 -0
- package/dist/auth/jobs/user.job.d.ts.map +1 -0
- package/dist/auth/jobs/user.job.js +32 -0
- package/dist/auth/jobs/user.job.js.map +1 -0
- package/dist/auth/jobs/user.role.job.d.ts +8 -0
- package/dist/auth/jobs/user.role.job.d.ts.map +1 -0
- package/dist/auth/jobs/user.role.job.js +32 -0
- package/dist/auth/jobs/user.role.job.js.map +1 -0
- package/dist/auth/services/api.key.service.d.ts +17 -0
- package/dist/auth/services/api.key.service.d.ts.map +1 -0
- package/dist/auth/services/api.key.service.js +83 -0
- package/dist/auth/services/api.key.service.js.map +1 -0
- package/dist/auth/services/auth.service.d.ts +19 -0
- package/dist/auth/services/auth.service.d.ts.map +1 -0
- package/dist/auth/services/auth.service.js +115 -0
- package/dist/auth/services/auth.service.js.map +1 -0
- package/dist/auth/strategy/jwt.refresh.strategy.d.ts +14 -0
- package/dist/auth/strategy/jwt.refresh.strategy.d.ts.map +1 -0
- package/dist/auth/strategy/jwt.refresh.strategy.js +34 -0
- package/dist/auth/strategy/jwt.refresh.strategy.js.map +1 -0
- package/dist/auth/strategy/jwt.strategy.d.ts +13 -0
- package/dist/auth/strategy/jwt.strategy.d.ts.map +1 -0
- package/dist/auth/strategy/jwt.strategy.js +41 -0
- package/dist/auth/strategy/jwt.strategy.js.map +1 -0
- package/dist/auth/subscribers/system.refresh.token.subscriber.d.ts +10 -0
- package/dist/auth/subscribers/system.refresh.token.subscriber.d.ts.map +1 -0
- package/dist/auth/subscribers/system.refresh.token.subscriber.js +34 -0
- package/dist/auth/subscribers/system.refresh.token.subscriber.js.map +1 -0
- package/dist/auth/subscribers/system.role.subscriber.d.ts +10 -0
- package/dist/auth/subscribers/system.role.subscriber.d.ts.map +1 -0
- package/dist/auth/subscribers/system.role.subscriber.js +34 -0
- package/dist/auth/subscribers/system.role.subscriber.js.map +1 -0
- package/dist/auth/subscribers/user.details.subscriber.d.ts +10 -0
- package/dist/auth/subscribers/user.details.subscriber.d.ts.map +1 -0
- package/dist/auth/subscribers/user.details.subscriber.js +34 -0
- package/dist/auth/subscribers/user.details.subscriber.js.map +1 -0
- package/dist/auth/subscribers/user.role.subscriber.d.ts +10 -0
- package/dist/auth/subscribers/user.role.subscriber.d.ts.map +1 -0
- package/dist/auth/subscribers/user.role.subscriber.js +34 -0
- package/dist/auth/subscribers/user.role.subscriber.js.map +1 -0
- package/dist/auth/subscribers/user.subscriber.d.ts +11 -0
- package/dist/auth/subscribers/user.subscriber.d.ts.map +1 -0
- package/dist/auth/subscribers/user.subscriber.js +40 -0
- package/dist/auth/subscribers/user.subscriber.js.map +1 -0
- package/dist/auth/types/api.key.types.d.ts +11 -0
- package/dist/auth/types/api.key.types.d.ts.map +1 -0
- package/dist/auth/types/api.key.types.js +3 -0
- package/dist/auth/types/api.key.types.js.map +1 -0
- package/dist/auth/types/auth.types.d.ts +31 -0
- package/dist/auth/types/auth.types.d.ts.map +1 -0
- package/dist/auth/types/auth.types.js +3 -0
- package/dist/auth/types/auth.types.js.map +1 -0
- package/dist/auth/utilities/auth.utilities.d.ts +4 -0
- package/dist/auth/utilities/auth.utilities.d.ts.map +1 -0
- package/dist/auth/utilities/auth.utilities.js +25 -0
- package/dist/auth/utilities/auth.utilities.js.map +1 -0
- package/dist/common/adapters/sentry.monitoring.adapter.d.ts +10 -0
- package/dist/common/adapters/sentry.monitoring.adapter.d.ts.map +1 -0
- package/dist/common/adapters/sentry.monitoring.adapter.js +39 -0
- package/dist/common/adapters/sentry.monitoring.adapter.js.map +1 -0
- package/dist/common/common.module.d.ts +3 -0
- package/dist/common/common.module.d.ts.map +1 -0
- package/dist/common/common.module.js +25 -0
- package/dist/common/common.module.js.map +1 -0
- package/dist/common/controllers/common.controller.d.ts +7 -0
- package/dist/common/controllers/common.controller.d.ts.map +1 -0
- package/dist/common/controllers/common.controller.js +31 -0
- package/dist/common/controllers/common.controller.js.map +1 -0
- package/dist/common/dtos/common.params.dto.d.ts +4 -0
- package/dist/common/dtos/common.params.dto.d.ts.map +1 -0
- package/dist/common/dtos/common.params.dto.js +25 -0
- package/dist/common/dtos/common.params.dto.js.map +1 -0
- package/dist/common/dtos/common.payload.dto.d.ts +4 -0
- package/dist/common/dtos/common.payload.dto.d.ts.map +1 -0
- package/dist/common/dtos/common.payload.dto.js +25 -0
- package/dist/common/dtos/common.payload.dto.js.map +1 -0
- package/dist/common/dtos/database.event.dto.d.ts +14 -0
- package/dist/common/dtos/database.event.dto.d.ts.map +1 -0
- package/dist/common/dtos/database.event.dto.js +34 -0
- package/dist/common/dtos/database.event.dto.js.map +1 -0
- package/dist/common/dtos/paginated.query.dto.d.ts +13 -0
- package/dist/common/dtos/paginated.query.dto.d.ts.map +1 -0
- package/dist/common/dtos/paginated.query.dto.js +45 -0
- package/dist/common/dtos/paginated.query.dto.js.map +1 -0
- package/dist/common/entities/activity.log.entity.d.ts +10 -0
- package/dist/common/entities/activity.log.entity.d.ts.map +1 -0
- package/dist/common/entities/activity.log.entity.js +51 -0
- package/dist/common/entities/activity.log.entity.js.map +1 -0
- package/dist/common/entities/common.entity.d.ts +6 -0
- package/dist/common/entities/common.entity.d.ts.map +1 -0
- package/dist/common/entities/common.entity.js +29 -0
- package/dist/common/entities/common.entity.js.map +1 -0
- package/dist/common/entities/document.entity.d.ts +13 -0
- package/dist/common/entities/document.entity.d.ts.map +1 -0
- package/dist/common/entities/document.entity.js +66 -0
- package/dist/common/entities/document.entity.js.map +1 -0
- package/dist/common/entities/root.entity.d.ts +21 -0
- package/dist/common/entities/root.entity.d.ts.map +1 -0
- package/dist/common/entities/root.entity.js +81 -0
- package/dist/common/entities/root.entity.js.map +1 -0
- package/dist/common/entities/system.audit.log.entity.d.ts +11 -0
- package/dist/common/entities/system.audit.log.entity.d.ts.map +1 -0
- package/dist/common/entities/system.audit.log.entity.js +56 -0
- package/dist/common/entities/system.audit.log.entity.js.map +1 -0
- package/dist/common/entities/system.constant.entity.d.ts +10 -0
- package/dist/common/entities/system.constant.entity.d.ts.map +1 -0
- package/dist/common/entities/system.constant.entity.js +48 -0
- package/dist/common/entities/system.constant.entity.js.map +1 -0
- package/dist/common/entities/system.constant.type.entity.d.ts +9 -0
- package/dist/common/entities/system.constant.type.entity.d.ts.map +1 -0
- package/dist/common/entities/system.constant.type.entity.js +42 -0
- package/dist/common/entities/system.constant.type.entity.js.map +1 -0
- package/dist/common/entities/system.failed.job.entity.d.ts +10 -0
- package/dist/common/entities/system.failed.job.entity.d.ts.map +1 -0
- package/dist/common/entities/system.failed.job.entity.js +51 -0
- package/dist/common/entities/system.failed.job.entity.js.map +1 -0
- package/dist/common/entities/system.notification.entity.d.ts +12 -0
- package/dist/common/entities/system.notification.entity.d.ts.map +1 -0
- package/dist/common/entities/system.notification.entity.js +61 -0
- package/dist/common/entities/system.notification.entity.js.map +1 -0
- package/dist/common/entities/system.property.entity.d.ts +9 -0
- package/dist/common/entities/system.property.entity.d.ts.map +1 -0
- package/dist/common/entities/system.property.entity.js +46 -0
- package/dist/common/entities/system.property.entity.js.map +1 -0
- package/dist/common/enums/audit.action.enum.d.ts +13 -0
- package/dist/common/enums/audit.action.enum.d.ts.map +1 -0
- package/dist/common/enums/audit.action.enum.js +17 -0
- package/dist/common/enums/audit.action.enum.js.map +1 -0
- package/dist/common/enums/encryption.enum.d.ts +10 -0
- package/dist/common/enums/encryption.enum.d.ts.map +1 -0
- package/dist/common/enums/encryption.enum.js +15 -0
- package/dist/common/enums/encryption.enum.js.map +1 -0
- package/dist/common/enums/feature.flag.default.enum.d.ts +4 -0
- package/dist/common/enums/feature.flag.default.enum.d.ts.map +1 -0
- package/dist/common/enums/feature.flag.default.enum.js +8 -0
- package/dist/common/enums/feature.flag.default.enum.js.map +1 -0
- package/dist/common/enums/feature.flag.truthy.value.enum.d.ts +7 -0
- package/dist/common/enums/feature.flag.truthy.value.enum.d.ts.map +1 -0
- package/dist/common/enums/feature.flag.truthy.value.enum.js +11 -0
- package/dist/common/enums/feature.flag.truthy.value.enum.js.map +1 -0
- package/dist/common/enums/http.log.format.enum.d.ts +5 -0
- package/dist/common/enums/http.log.format.enum.d.ts.map +1 -0
- package/dist/common/enums/http.log.format.enum.js +9 -0
- package/dist/common/enums/http.log.format.enum.js.map +1 -0
- package/dist/common/enums/monitoring.default.enum.d.ts +4 -0
- package/dist/common/enums/monitoring.default.enum.d.ts.map +1 -0
- package/dist/common/enums/monitoring.default.enum.js +8 -0
- package/dist/common/enums/monitoring.default.enum.js.map +1 -0
- package/dist/common/enums/notification.type.enum.d.ts +8 -0
- package/dist/common/enums/notification.type.enum.d.ts.map +1 -0
- package/dist/common/enums/notification.type.enum.js +12 -0
- package/dist/common/enums/notification.type.enum.js.map +1 -0
- package/dist/common/enums/queue.enum.d.ts +4 -0
- package/dist/common/enums/queue.enum.d.ts.map +1 -0
- package/dist/common/enums/queue.enum.js +8 -0
- package/dist/common/enums/queue.enum.js.map +1 -0
- package/dist/common/enums/storage.driver.enum.d.ts +8 -0
- package/dist/common/enums/storage.driver.enum.d.ts.map +1 -0
- package/dist/common/enums/storage.driver.enum.js +12 -0
- package/dist/common/enums/storage.driver.enum.js.map +1 -0
- package/dist/common/es6.classes.d.ts +31 -0
- package/dist/common/es6.classes.d.ts.map +1 -0
- package/dist/common/es6.classes.js +64 -0
- package/dist/common/es6.classes.js.map +1 -0
- package/dist/common/interceptors/logging.interceptor.d.ts +8 -0
- package/dist/common/interceptors/logging.interceptor.d.ts.map +1 -0
- package/dist/common/interceptors/logging.interceptor.js +46 -0
- package/dist/common/interceptors/logging.interceptor.js.map +1 -0
- package/dist/common/interceptors/monitoring.interceptor.d.ts +11 -0
- package/dist/common/interceptors/monitoring.interceptor.d.ts.map +1 -0
- package/dist/common/interceptors/monitoring.interceptor.js +63 -0
- package/dist/common/interceptors/monitoring.interceptor.js.map +1 -0
- package/dist/common/jobs/activity.log.job.d.ts +8 -0
- package/dist/common/jobs/activity.log.job.d.ts.map +1 -0
- package/dist/common/jobs/activity.log.job.js +32 -0
- package/dist/common/jobs/activity.log.job.js.map +1 -0
- package/dist/common/jobs/common.job.d.ts +16 -0
- package/dist/common/jobs/common.job.d.ts.map +1 -0
- package/dist/common/jobs/common.job.js +30 -0
- package/dist/common/jobs/common.job.js.map +1 -0
- package/dist/common/jobs/document.job.d.ts +8 -0
- package/dist/common/jobs/document.job.d.ts.map +1 -0
- package/dist/common/jobs/document.job.js +32 -0
- package/dist/common/jobs/document.job.js.map +1 -0
- package/dist/common/jobs/system.audit.log.job.d.ts +8 -0
- package/dist/common/jobs/system.audit.log.job.d.ts.map +1 -0
- package/dist/common/jobs/system.audit.log.job.js +32 -0
- package/dist/common/jobs/system.audit.log.job.js.map +1 -0
- package/dist/common/jobs/system.constant.job.d.ts +8 -0
- package/dist/common/jobs/system.constant.job.d.ts.map +1 -0
- package/dist/common/jobs/system.constant.job.js +32 -0
- package/dist/common/jobs/system.constant.job.js.map +1 -0
- package/dist/common/jobs/system.constant.type.job.d.ts +8 -0
- package/dist/common/jobs/system.constant.type.job.d.ts.map +1 -0
- package/dist/common/jobs/system.constant.type.job.js +32 -0
- package/dist/common/jobs/system.constant.type.job.js.map +1 -0
- package/dist/common/jobs/system.failed.job.job.d.ts +8 -0
- package/dist/common/jobs/system.failed.job.job.d.ts.map +1 -0
- package/dist/common/jobs/system.failed.job.job.js +32 -0
- package/dist/common/jobs/system.failed.job.job.js.map +1 -0
- package/dist/common/jobs/system.notification.job.d.ts +8 -0
- package/dist/common/jobs/system.notification.job.d.ts.map +1 -0
- package/dist/common/jobs/system.notification.job.js +32 -0
- package/dist/common/jobs/system.notification.job.js.map +1 -0
- package/dist/common/jobs/system.property.job.d.ts +8 -0
- package/dist/common/jobs/system.property.job.d.ts.map +1 -0
- package/dist/common/jobs/system.property.job.js +32 -0
- package/dist/common/jobs/system.property.job.js.map +1 -0
- package/dist/common/processors/common.data.processor.d.ts +19 -0
- package/dist/common/processors/common.data.processor.d.ts.map +1 -0
- package/dist/common/processors/common.data.processor.js +76 -0
- package/dist/common/processors/common.data.processor.js.map +1 -0
- package/dist/common/queue.module.d.ts +9 -0
- package/dist/common/queue.module.d.ts.map +1 -0
- package/dist/common/queue.module.js +71 -0
- package/dist/common/queue.module.js.map +1 -0
- package/dist/common/services/audit.service.d.ts +15 -0
- package/dist/common/services/audit.service.d.ts.map +1 -0
- package/dist/common/services/audit.service.js +101 -0
- package/dist/common/services/audit.service.js.map +1 -0
- package/dist/common/services/cache.service.d.ts +22 -0
- package/dist/common/services/cache.service.d.ts.map +1 -0
- package/dist/common/services/cache.service.js +101 -0
- package/dist/common/services/cache.service.js.map +1 -0
- package/dist/common/services/encryption.service.d.ts +9 -0
- package/dist/common/services/encryption.service.d.ts.map +1 -0
- package/dist/common/services/encryption.service.js +75 -0
- package/dist/common/services/encryption.service.js.map +1 -0
- package/dist/common/services/feature.flag.service.d.ts +24 -0
- package/dist/common/services/feature.flag.service.d.ts.map +1 -0
- package/dist/common/services/feature.flag.service.js +107 -0
- package/dist/common/services/feature.flag.service.js.map +1 -0
- package/dist/common/services/monitoring.service.d.ts +13 -0
- package/dist/common/services/monitoring.service.d.ts.map +1 -0
- package/dist/common/services/monitoring.service.js +64 -0
- package/dist/common/services/monitoring.service.js.map +1 -0
- package/dist/common/services/queue.service.d.ts +61 -0
- package/dist/common/services/queue.service.d.ts.map +1 -0
- package/dist/common/services/queue.service.js +266 -0
- package/dist/common/services/queue.service.js.map +1 -0
- package/dist/common/services/system.property.service.d.ts +26 -0
- package/dist/common/services/system.property.service.d.ts.map +1 -0
- package/dist/common/services/system.property.service.js +105 -0
- package/dist/common/services/system.property.service.js.map +1 -0
- package/dist/common/subscribers/activity.log.subscriber.d.ts +10 -0
- package/dist/common/subscribers/activity.log.subscriber.d.ts.map +1 -0
- package/dist/common/subscribers/activity.log.subscriber.js +34 -0
- package/dist/common/subscribers/activity.log.subscriber.js.map +1 -0
- package/dist/common/subscribers/common.subscriber.d.ts +20 -0
- package/dist/common/subscribers/common.subscriber.d.ts.map +1 -0
- package/dist/common/subscribers/common.subscriber.js +53 -0
- package/dist/common/subscribers/common.subscriber.js.map +1 -0
- package/dist/common/subscribers/document.subscriber.d.ts +10 -0
- package/dist/common/subscribers/document.subscriber.d.ts.map +1 -0
- package/dist/common/subscribers/document.subscriber.js +34 -0
- package/dist/common/subscribers/document.subscriber.js.map +1 -0
- package/dist/common/subscribers/system.audit.log.subscriber.d.ts +10 -0
- package/dist/common/subscribers/system.audit.log.subscriber.d.ts.map +1 -0
- package/dist/common/subscribers/system.audit.log.subscriber.js +34 -0
- package/dist/common/subscribers/system.audit.log.subscriber.js.map +1 -0
- package/dist/common/subscribers/system.constant.subscriber.d.ts +10 -0
- package/dist/common/subscribers/system.constant.subscriber.d.ts.map +1 -0
- package/dist/common/subscribers/system.constant.subscriber.js +34 -0
- package/dist/common/subscribers/system.constant.subscriber.js.map +1 -0
- package/dist/common/subscribers/system.constant.type.subscriber.d.ts +10 -0
- package/dist/common/subscribers/system.constant.type.subscriber.d.ts.map +1 -0
- package/dist/common/subscribers/system.constant.type.subscriber.js +34 -0
- package/dist/common/subscribers/system.constant.type.subscriber.js.map +1 -0
- package/dist/common/subscribers/system.failed.job.subscriber.d.ts +10 -0
- package/dist/common/subscribers/system.failed.job.subscriber.d.ts.map +1 -0
- package/dist/common/subscribers/system.failed.job.subscriber.js +34 -0
- package/dist/common/subscribers/system.failed.job.subscriber.js.map +1 -0
- package/dist/common/subscribers/system.notification.subscriber.d.ts +10 -0
- package/dist/common/subscribers/system.notification.subscriber.d.ts.map +1 -0
- package/dist/common/subscribers/system.notification.subscriber.js +34 -0
- package/dist/common/subscribers/system.notification.subscriber.js.map +1 -0
- package/dist/common/subscribers/system.property.subscriber.d.ts +10 -0
- package/dist/common/subscribers/system.property.subscriber.d.ts.map +1 -0
- package/dist/common/subscribers/system.property.subscriber.js +34 -0
- package/dist/common/subscribers/system.property.subscriber.js.map +1 -0
- package/dist/common/system.property.module.d.ts +8 -0
- package/dist/common/system.property.module.d.ts.map +1 -0
- package/dist/common/system.property.module.js +56 -0
- package/dist/common/system.property.module.js.map +1 -0
- package/dist/common/types/audit.types.d.ts +25 -0
- package/dist/common/types/audit.types.d.ts.map +1 -0
- package/dist/common/types/audit.types.js +3 -0
- package/dist/common/types/audit.types.js.map +1 -0
- package/dist/common/types/cache.types.d.ts +18 -0
- package/dist/common/types/cache.types.d.ts.map +1 -0
- package/dist/common/types/cache.types.js +10 -0
- package/dist/common/types/cache.types.js.map +1 -0
- package/dist/common/types/common.response.types.d.ts +15 -0
- package/dist/common/types/common.response.types.d.ts.map +1 -0
- package/dist/common/types/common.response.types.js +7 -0
- package/dist/common/types/common.response.types.js.map +1 -0
- package/dist/common/types/entity.helper.types.d.ts +7 -0
- package/dist/common/types/entity.helper.types.d.ts.map +1 -0
- package/dist/common/types/entity.helper.types.js +3 -0
- package/dist/common/types/entity.helper.types.js.map +1 -0
- package/dist/common/types/feature.flag.types.d.ts +9 -0
- package/dist/common/types/feature.flag.types.d.ts.map +1 -0
- package/dist/common/types/feature.flag.types.js +3 -0
- package/dist/common/types/feature.flag.types.js.map +1 -0
- package/dist/common/types/monitoring.types.d.ts +20 -0
- package/dist/common/types/monitoring.types.d.ts.map +1 -0
- package/dist/common/types/monitoring.types.js +3 -0
- package/dist/common/types/monitoring.types.js.map +1 -0
- package/dist/common/types/paginated.result.types.d.ts +9 -0
- package/dist/common/types/paginated.result.types.d.ts.map +1 -0
- package/dist/common/types/paginated.result.types.js +13 -0
- package/dist/common/types/paginated.result.types.js.map +1 -0
- package/dist/common/types/queue.types.d.ts +47 -0
- package/dist/common/types/queue.types.d.ts.map +1 -0
- package/dist/common/types/queue.types.js +3 -0
- package/dist/common/types/queue.types.js.map +1 -0
- package/dist/constants/entity.constants.d.ts +19 -0
- package/dist/constants/entity.constants.d.ts.map +1 -0
- package/dist/constants/entity.constants.js +22 -0
- package/dist/constants/entity.constants.js.map +1 -0
- package/dist/constants/job.constants.d.ts +16 -0
- package/dist/constants/job.constants.d.ts.map +1 -0
- package/dist/constants/job.constants.js +19 -0
- package/dist/constants/job.constants.js.map +1 -0
- package/dist/database/config/data.source.config.d.ts +3 -0
- package/dist/database/config/data.source.config.d.ts.map +1 -0
- package/dist/database/config/data.source.config.js +19 -0
- package/dist/database/config/data.source.config.js.map +1 -0
- package/dist/document/document.module.d.ts +8 -0
- package/dist/document/document.module.d.ts.map +1 -0
- package/dist/document/document.module.js +54 -0
- package/dist/document/document.module.js.map +1 -0
- package/dist/document/enums/document.default.enum.d.ts +4 -0
- package/dist/document/enums/document.default.enum.d.ts.map +1 -0
- package/dist/document/enums/document.default.enum.js +8 -0
- package/dist/document/enums/document.default.enum.js.map +1 -0
- package/dist/document/es6.classes.d.ts +8 -0
- package/dist/document/es6.classes.d.ts.map +1 -0
- package/dist/document/es6.classes.js +14 -0
- package/dist/document/es6.classes.js.map +1 -0
- package/dist/document/services/document.service.d.ts +32 -0
- package/dist/document/services/document.service.d.ts.map +1 -0
- package/dist/document/services/document.service.js +148 -0
- package/dist/document/services/document.service.js.map +1 -0
- package/dist/document/services/minio.bucket.document.service.d.ts +23 -0
- package/dist/document/services/minio.bucket.document.service.d.ts.map +1 -0
- package/dist/document/services/minio.bucket.document.service.js +98 -0
- package/dist/document/services/minio.bucket.document.service.js.map +1 -0
- package/dist/document/services/s3.bucket.document.service.d.ts +20 -0
- package/dist/document/services/s3.bucket.document.service.d.ts.map +1 -0
- package/dist/document/services/s3.bucket.document.service.js +98 -0
- package/dist/document/services/s3.bucket.document.service.js.map +1 -0
- package/dist/document/types/document.types.d.ts +40 -0
- package/dist/document/types/document.types.d.ts.map +1 -0
- package/dist/document/types/document.types.js +3 -0
- package/dist/document/types/document.types.js.map +1 -0
- package/dist/global/exceptions/access.exception.d.ts +5 -0
- package/dist/global/exceptions/access.exception.d.ts.map +1 -0
- package/dist/global/exceptions/access.exception.js +11 -0
- package/dist/global/exceptions/access.exception.js.map +1 -0
- package/dist/global/exceptions/bad.request.exception.d.ts +5 -0
- package/dist/global/exceptions/bad.request.exception.d.ts.map +1 -0
- package/dist/global/exceptions/bad.request.exception.js +13 -0
- package/dist/global/exceptions/bad.request.exception.js.map +1 -0
- package/dist/global/exceptions/not.found.exception.d.ts +5 -0
- package/dist/global/exceptions/not.found.exception.d.ts.map +1 -0
- package/dist/global/exceptions/not.found.exception.js +11 -0
- package/dist/global/exceptions/not.found.exception.js.map +1 -0
- package/dist/global/exceptions/operation.exception.d.ts +5 -0
- package/dist/global/exceptions/operation.exception.d.ts.map +1 -0
- package/dist/global/exceptions/operation.exception.js +11 -0
- package/dist/global/exceptions/operation.exception.js.map +1 -0
- package/dist/global/filters/global.exception.filter.d.ts +7 -0
- package/dist/global/filters/global.exception.filter.d.ts.map +1 -0
- package/dist/global/filters/global.exception.filter.js +60 -0
- package/dist/global/filters/global.exception.filter.js.map +1 -0
- package/dist/global/utilities/hash.util.d.ts +6 -0
- package/dist/global/utilities/hash.util.d.ts.map +1 -0
- package/dist/global/utilities/hash.util.js +17 -0
- package/dist/global/utilities/hash.util.js.map +1 -0
- package/dist/global/utilities/migration.utility.d.ts +57 -0
- package/dist/global/utilities/migration.utility.d.ts.map +1 -0
- package/dist/global/utilities/migration.utility.js +169 -0
- package/dist/global/utilities/migration.utility.js.map +1 -0
- package/dist/global/utilities/seeder.utility.d.ts +11 -0
- package/dist/global/utilities/seeder.utility.d.ts.map +1 -0
- package/dist/global/utilities/seeder.utility.js +58 -0
- package/dist/global/utilities/seeder.utility.js.map +1 -0
- package/dist/index.d.ts +118 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +219 -0
- package/dist/index.js.map +1 -0
- package/dist/main.d.ts +2 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +11 -0
- package/dist/main.js.map +1 -0
- package/dist/migrations/1749600000001.CreateSysUsersTable.d.ts +6 -0
- package/dist/migrations/1749600000001.CreateSysUsersTable.d.ts.map +1 -0
- package/dist/migrations/1749600000001.CreateSysUsersTable.js +28 -0
- package/dist/migrations/1749600000001.CreateSysUsersTable.js.map +1 -0
- package/dist/migrations/1749600000002.CreateSysUserDetailsTable.d.ts +6 -0
- package/dist/migrations/1749600000002.CreateSysUserDetailsTable.d.ts.map +1 -0
- package/dist/migrations/1749600000002.CreateSysUserDetailsTable.js +33 -0
- package/dist/migrations/1749600000002.CreateSysUserDetailsTable.js.map +1 -0
- package/dist/migrations/1749600000003.CreateSysRolesTable.d.ts +6 -0
- package/dist/migrations/1749600000003.CreateSysRolesTable.d.ts.map +1 -0
- package/dist/migrations/1749600000003.CreateSysRolesTable.js +23 -0
- package/dist/migrations/1749600000003.CreateSysRolesTable.js.map +1 -0
- package/dist/migrations/1749600000004.CreateSysUserRolesJoinTable.d.ts +6 -0
- package/dist/migrations/1749600000004.CreateSysUserRolesJoinTable.d.ts.map +1 -0
- package/dist/migrations/1749600000004.CreateSysUserRolesJoinTable.js +40 -0
- package/dist/migrations/1749600000004.CreateSysUserRolesJoinTable.js.map +1 -0
- package/dist/migrations/1749600000005.CreateSysConstantTypesTable.d.ts +6 -0
- package/dist/migrations/1749600000005.CreateSysConstantTypesTable.d.ts.map +1 -0
- package/dist/migrations/1749600000005.CreateSysConstantTypesTable.js +21 -0
- package/dist/migrations/1749600000005.CreateSysConstantTypesTable.js.map +1 -0
- package/dist/migrations/1749600000006.CreateSysConstantsTable.d.ts +6 -0
- package/dist/migrations/1749600000006.CreateSysConstantsTable.d.ts.map +1 -0
- package/dist/migrations/1749600000006.CreateSysConstantsTable.js +26 -0
- package/dist/migrations/1749600000006.CreateSysConstantsTable.js.map +1 -0
- package/dist/migrations/1749600000007.CreateSysFailedJobsTable.d.ts +6 -0
- package/dist/migrations/1749600000007.CreateSysFailedJobsTable.d.ts.map +1 -0
- package/dist/migrations/1749600000007.CreateSysFailedJobsTable.js +25 -0
- package/dist/migrations/1749600000007.CreateSysFailedJobsTable.js.map +1 -0
- package/dist/migrations/1749600000008.CreateSysPropertiesTable.d.ts +6 -0
- package/dist/migrations/1749600000008.CreateSysPropertiesTable.d.ts.map +1 -0
- package/dist/migrations/1749600000008.CreateSysPropertiesTable.js +24 -0
- package/dist/migrations/1749600000008.CreateSysPropertiesTable.js.map +1 -0
- package/dist/migrations/1749600000009.CreateSysNotificationsTable.d.ts +6 -0
- package/dist/migrations/1749600000009.CreateSysNotificationsTable.d.ts.map +1 -0
- package/dist/migrations/1749600000009.CreateSysNotificationsTable.js +28 -0
- package/dist/migrations/1749600000009.CreateSysNotificationsTable.js.map +1 -0
- package/dist/migrations/1749600000010.CreateSysAuditLogsTable.d.ts +6 -0
- package/dist/migrations/1749600000010.CreateSysAuditLogsTable.d.ts.map +1 -0
- package/dist/migrations/1749600000010.CreateSysAuditLogsTable.js +27 -0
- package/dist/migrations/1749600000010.CreateSysAuditLogsTable.js.map +1 -0
- package/dist/migrations/1749600000011.CreateSysDocumentDetailsTable.d.ts +6 -0
- package/dist/migrations/1749600000011.CreateSysDocumentDetailsTable.d.ts.map +1 -0
- package/dist/migrations/1749600000011.CreateSysDocumentDetailsTable.js +28 -0
- package/dist/migrations/1749600000011.CreateSysDocumentDetailsTable.js.map +1 -0
- package/dist/migrations/1749600000012.CreateSysRefreshTokensTable.d.ts +6 -0
- package/dist/migrations/1749600000012.CreateSysRefreshTokensTable.d.ts.map +1 -0
- package/dist/migrations/1749600000012.CreateSysRefreshTokensTable.js +30 -0
- package/dist/migrations/1749600000012.CreateSysRefreshTokensTable.js.map +1 -0
- package/dist/migrations/1749600000013.CreateSysActivityLogsTable.d.ts +6 -0
- package/dist/migrations/1749600000013.CreateSysActivityLogsTable.d.ts.map +1 -0
- package/dist/migrations/1749600000013.CreateSysActivityLogsTable.js +25 -0
- package/dist/migrations/1749600000013.CreateSysActivityLogsTable.js.map +1 -0
- package/dist/migrations/1749600000014.CreateSysTenantsTable.d.ts +6 -0
- package/dist/migrations/1749600000014.CreateSysTenantsTable.d.ts.map +1 -0
- package/dist/migrations/1749600000014.CreateSysTenantsTable.js +24 -0
- package/dist/migrations/1749600000014.CreateSysTenantsTable.js.map +1 -0
- package/dist/migrations/1749600000015.CreateSysUserDeviceTokensTable.d.ts +6 -0
- package/dist/migrations/1749600000015.CreateSysUserDeviceTokensTable.d.ts.map +1 -0
- package/dist/migrations/1749600000015.CreateSysUserDeviceTokensTable.js +28 -0
- package/dist/migrations/1749600000015.CreateSysUserDeviceTokensTable.js.map +1 -0
- package/dist/migrations/1749600000016.CreateSysApiKeysTable.d.ts +6 -0
- package/dist/migrations/1749600000016.CreateSysApiKeysTable.d.ts.map +1 -0
- package/dist/migrations/1749600000016.CreateSysApiKeysTable.js +26 -0
- package/dist/migrations/1749600000016.CreateSysApiKeysTable.js.map +1 -0
- package/dist/notification/entities/user.device.token.entity.d.ts +9 -0
- package/dist/notification/entities/user.device.token.entity.d.ts.map +1 -0
- package/dist/notification/entities/user.device.token.entity.js +46 -0
- package/dist/notification/entities/user.device.token.entity.js.map +1 -0
- package/dist/notification/enums/fcm.invalid.token.error.code.enum.d.ts +6 -0
- package/dist/notification/enums/fcm.invalid.token.error.code.enum.d.ts.map +1 -0
- package/dist/notification/enums/fcm.invalid.token.error.code.enum.js +10 -0
- package/dist/notification/enums/fcm.invalid.token.error.code.enum.js.map +1 -0
- package/dist/notification/es6.classes.d.ts +9 -0
- package/dist/notification/es6.classes.d.ts.map +1 -0
- package/dist/notification/es6.classes.js +11 -0
- package/dist/notification/es6.classes.js.map +1 -0
- package/dist/notification/notification.module.d.ts +8 -0
- package/dist/notification/notification.module.d.ts.map +1 -0
- package/dist/notification/notification.module.js +48 -0
- package/dist/notification/notification.module.js.map +1 -0
- package/dist/notification/services/fcm.push.notification.service.d.ts +11 -0
- package/dist/notification/services/fcm.push.notification.service.d.ts.map +1 -0
- package/dist/notification/services/fcm.push.notification.service.js +93 -0
- package/dist/notification/services/fcm.push.notification.service.js.map +1 -0
- package/dist/notification/services/notification.service.d.ts +27 -0
- package/dist/notification/services/notification.service.d.ts.map +1 -0
- package/dist/notification/services/notification.service.js +141 -0
- package/dist/notification/services/notification.service.js.map +1 -0
- package/dist/notification/types/fcm.types.d.ts +23 -0
- package/dist/notification/types/fcm.types.d.ts.map +1 -0
- package/dist/notification/types/fcm.types.js +3 -0
- package/dist/notification/types/fcm.types.js.map +1 -0
- package/dist/notification/types/notification.types.d.ts +28 -0
- package/dist/notification/types/notification.types.d.ts.map +1 -0
- package/dist/notification/types/notification.types.js +3 -0
- package/dist/notification/types/notification.types.js.map +1 -0
- package/dist/tenant/entities/tenant.common.entity.d.ts +6 -0
- package/dist/tenant/entities/tenant.common.entity.d.ts.map +1 -0
- package/dist/tenant/entities/tenant.common.entity.js +29 -0
- package/dist/tenant/entities/tenant.common.entity.js.map +1 -0
- package/dist/tenant/entities/tenant.entity.d.ts +9 -0
- package/dist/tenant/entities/tenant.entity.d.ts.map +1 -0
- package/dist/tenant/entities/tenant.entity.js +46 -0
- package/dist/tenant/entities/tenant.entity.js.map +1 -0
- package/dist/tenant/enums/tenant.default.enum.d.ts +4 -0
- package/dist/tenant/enums/tenant.default.enum.d.ts.map +1 -0
- package/dist/tenant/enums/tenant.default.enum.js +8 -0
- package/dist/tenant/enums/tenant.default.enum.js.map +1 -0
- package/dist/tenant/es6.classes.d.ts +12 -0
- package/dist/tenant/es6.classes.d.ts.map +1 -0
- package/dist/tenant/es6.classes.js +14 -0
- package/dist/tenant/es6.classes.js.map +1 -0
- package/dist/tenant/middlewares/tenant.context.middleware.d.ts +13 -0
- package/dist/tenant/middlewares/tenant.context.middleware.d.ts.map +1 -0
- package/dist/tenant/middlewares/tenant.context.middleware.js +57 -0
- package/dist/tenant/middlewares/tenant.context.middleware.js.map +1 -0
- package/dist/tenant/services/tenant.context.service.d.ts +12 -0
- package/dist/tenant/services/tenant.context.service.d.ts.map +1 -0
- package/dist/tenant/services/tenant.context.service.js +42 -0
- package/dist/tenant/services/tenant.context.service.js.map +1 -0
- package/dist/tenant/services/tenant.service.d.ts +14 -0
- package/dist/tenant/services/tenant.service.d.ts.map +1 -0
- package/dist/tenant/services/tenant.service.js +71 -0
- package/dist/tenant/services/tenant.service.js.map +1 -0
- package/dist/tenant/tenant.module.d.ts +8 -0
- package/dist/tenant/tenant.module.d.ts.map +1 -0
- package/dist/tenant/tenant.module.js +51 -0
- package/dist/tenant/tenant.module.js.map +1 -0
- package/dist/tenant/types/tenant.types.d.ts +11 -0
- package/dist/tenant/types/tenant.types.d.ts.map +1 -0
- package/dist/tenant/types/tenant.types.js +3 -0
- package/dist/tenant/types/tenant.types.js.map +1 -0
- package/package.json +118 -0
|
@@ -0,0 +1,54 @@
|
|
|
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 __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
11
|
+
var DocumentModule_1;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.DocumentModule = void 0;
|
|
14
|
+
const common_1 = require("@nestjs/common");
|
|
15
|
+
const typeorm_1 = require("@nestjs/typeorm");
|
|
16
|
+
const es6_classes_1 = __importDefault(require("./es6.classes"));
|
|
17
|
+
const [DocumentService, S3BucketDocumentService, MinioBucketDocumentService] = es6_classes_1.default.services;
|
|
18
|
+
function createDocumentProviders(options = {}) {
|
|
19
|
+
return [
|
|
20
|
+
S3BucketDocumentService,
|
|
21
|
+
MinioBucketDocumentService,
|
|
22
|
+
{
|
|
23
|
+
provide: DocumentService,
|
|
24
|
+
useFactory: (s3Service, minioService, dataSource) => new DocumentService(s3Service, minioService, dataSource),
|
|
25
|
+
inject: [
|
|
26
|
+
S3BucketDocumentService,
|
|
27
|
+
MinioBucketDocumentService,
|
|
28
|
+
(0, typeorm_1.getDataSourceToken)(options.dataSourceName),
|
|
29
|
+
],
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
}
|
|
33
|
+
const documentExports = [
|
|
34
|
+
DocumentService,
|
|
35
|
+
S3BucketDocumentService,
|
|
36
|
+
MinioBucketDocumentService,
|
|
37
|
+
];
|
|
38
|
+
let DocumentModule = DocumentModule_1 = class DocumentModule {
|
|
39
|
+
static register(options = {}) {
|
|
40
|
+
return {
|
|
41
|
+
module: DocumentModule_1,
|
|
42
|
+
providers: createDocumentProviders(options),
|
|
43
|
+
exports: documentExports,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
exports.DocumentModule = DocumentModule;
|
|
48
|
+
exports.DocumentModule = DocumentModule = DocumentModule_1 = __decorate([
|
|
49
|
+
(0, common_1.Module)({
|
|
50
|
+
providers: createDocumentProviders(),
|
|
51
|
+
exports: documentExports,
|
|
52
|
+
})
|
|
53
|
+
], DocumentModule);
|
|
54
|
+
//# sourceMappingURL=document.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.module.js","sourceRoot":"","sources":["../../src/document/document.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAiE;AACjE,6CAAqD;AAErD,gEAAuC;AAEvC,MAAM,CAAC,eAAe,EAAE,uBAAuB,EAAE,0BAA0B,CAAC,GAC1E,qBAAU,CAAC,QAAQ,CAAC;AAMtB,SAAS,uBAAuB,CAC9B,UAAiC,EAAE;IAEnC,OAAO;QACL,uBAAuB;QACvB,0BAA0B;QAC1B;YACE,OAAO,EAAE,eAAe;YACxB,UAAU,EAAE,CAAC,SAAc,EAAE,YAAiB,EAAE,UAAsB,EAAE,EAAE,CACxE,IAAI,eAAe,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,CAAC;YAC1D,MAAM,EAAE;gBACN,uBAAuB;gBACvB,0BAA0B;gBAC1B,IAAA,4BAAkB,EAAC,OAAO,CAAC,cAAc,CAAC;aAC3C;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,eAAe,GAAG;IACtB,eAAe;IACf,uBAAuB;IACvB,0BAA0B;CAC3B,CAAC;AAWK,IAAM,cAAc,sBAApB,MAAM,cAAc;IACzB,MAAM,CAAC,QAAQ,CAAC,UAAiC,EAAE;QACjD,OAAO;YACL,MAAM,EAAE,gBAAc;YACtB,SAAS,EAAE,uBAAuB,CAAC,OAAO,CAAC;YAC3C,OAAO,EAAE,eAAe;SACzB,CAAC;IACJ,CAAC;CACF,CAAA;AARY,wCAAc;yBAAd,cAAc;IAJ1B,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,uBAAuB,EAAE;QACpC,OAAO,EAAE,eAAe;KACzB,CAAC;GACW,cAAc,CAQ1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.default.enum.d.ts","sourceRoot":"","sources":["../../../src/document/enums/document.default.enum.ts"],"names":[],"mappings":"AAAA,oBAAY,eAAe;IACzB,4BAA4B,OAAO;CACpC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DocumentDefault = void 0;
|
|
4
|
+
var DocumentDefault;
|
|
5
|
+
(function (DocumentDefault) {
|
|
6
|
+
DocumentDefault[DocumentDefault["PRESIGNED_URL_EXPIRY_SECONDS"] = 3600] = "PRESIGNED_URL_EXPIRY_SECONDS";
|
|
7
|
+
})(DocumentDefault || (exports.DocumentDefault = DocumentDefault = {}));
|
|
8
|
+
//# sourceMappingURL=document.default.enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.default.enum.js","sourceRoot":"","sources":["../../../src/document/enums/document.default.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,eAEX;AAFD,WAAY,eAAe;IACzB,wGAAmC,CAAA;AACrC,CAAC,EAFW,eAAe,+BAAf,eAAe,QAE1B"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DocumentService } from './services/document.service';
|
|
2
|
+
import { MinioBucketDocumentService } from './services/minio.bucket.document.service';
|
|
3
|
+
import { S3BucketDocumentService } from './services/s3.bucket.document.service';
|
|
4
|
+
declare const es6Classes: {
|
|
5
|
+
services: readonly [typeof DocumentService, typeof S3BucketDocumentService, typeof MinioBucketDocumentService];
|
|
6
|
+
};
|
|
7
|
+
export default es6Classes;
|
|
8
|
+
//# sourceMappingURL=es6.classes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"es6.classes.d.ts","sourceRoot":"","sources":["../../src/document/es6.classes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AACtF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAEhF,QAAA,MAAM,UAAU;;CAMf,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const document_service_1 = require("./services/document.service");
|
|
4
|
+
const minio_bucket_document_service_1 = require("./services/minio.bucket.document.service");
|
|
5
|
+
const s3_bucket_document_service_1 = require("./services/s3.bucket.document.service");
|
|
6
|
+
const es6Classes = {
|
|
7
|
+
services: [
|
|
8
|
+
document_service_1.DocumentService,
|
|
9
|
+
s3_bucket_document_service_1.S3BucketDocumentService,
|
|
10
|
+
minio_bucket_document_service_1.MinioBucketDocumentService,
|
|
11
|
+
],
|
|
12
|
+
};
|
|
13
|
+
exports.default = es6Classes;
|
|
14
|
+
//# sourceMappingURL=es6.classes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"es6.classes.js","sourceRoot":"","sources":["../../src/document/es6.classes.ts"],"names":[],"mappings":";;AAAA,kEAA8D;AAC9D,4FAAsF;AACtF,sFAAgF;AAEhF,MAAM,UAAU,GAAG;IACjB,QAAQ,EAAE;QACR,kCAAe;QACf,oDAAuB;QACvB,0DAA0B;KAClB;CACX,CAAC;AAEF,kBAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Logger } from '@nestjs/common';
|
|
2
|
+
import { Readable } from 'stream';
|
|
3
|
+
import { DataSource } from 'typeorm';
|
|
4
|
+
import { DocumentEntity } from '../../common/entities/document.entity';
|
|
5
|
+
import { MinioBucketDocumentService } from './minio.bucket.document.service';
|
|
6
|
+
import { S3BucketDocumentService } from './s3.bucket.document.service';
|
|
7
|
+
import { BucketDocumentStorage, DocumentLinkOptions, PresignedUrlOptions, StoredDocument, UploadDocumentOptions, UploadableFile } from '../types/document.types';
|
|
8
|
+
export declare class DocumentService {
|
|
9
|
+
private readonly s3BucketDocumentService;
|
|
10
|
+
private readonly minioBucketDocumentService;
|
|
11
|
+
private readonly dataSource;
|
|
12
|
+
protected readonly logger: Logger;
|
|
13
|
+
constructor(s3BucketDocumentService: S3BucketDocumentService, minioBucketDocumentService: MinioBucketDocumentService, dataSource: DataSource);
|
|
14
|
+
uploadDocument(files: UploadableFile[], options?: UploadDocumentOptions): Promise<string[]>;
|
|
15
|
+
uploadDocuments(files: UploadableFile[], options?: UploadDocumentOptions): Promise<StoredDocument[]>;
|
|
16
|
+
uploadSingleDocument(file: UploadableFile, options?: UploadDocumentOptions): Promise<StoredDocument>;
|
|
17
|
+
persistDocumentRecord(storedDocument: StoredDocument, options: Pick<UploadDocumentOptions, 'createdBy' | 'sourceType' | 'sourceId' | 'isPublic'>): Promise<DocumentEntity>;
|
|
18
|
+
deleteDocument(documentUuid: string, options?: {
|
|
19
|
+
hard?: boolean;
|
|
20
|
+
}): Promise<void>;
|
|
21
|
+
getDocumentLink(document: DocumentEntity, options?: DocumentLinkOptions): Promise<string>;
|
|
22
|
+
getPresignedUrl(objectPath: string, options?: PresignedUrlOptions): Promise<string>;
|
|
23
|
+
documentExists(objectPath: string): Promise<boolean>;
|
|
24
|
+
getDocumentStream(document: DocumentEntity): Promise<Readable>;
|
|
25
|
+
findDocumentsBySource(sourceType: string, sourceId: string): Promise<DocumentEntity[]>;
|
|
26
|
+
getActiveStorage(): BucketDocumentStorage;
|
|
27
|
+
getStorageByDriver(driver: string): BucketDocumentStorage;
|
|
28
|
+
generateStoredName(originalName: string): string;
|
|
29
|
+
private buildObjectPath;
|
|
30
|
+
private get documentRepository();
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=document.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.service.d.ts","sourceRoot":"","sources":["../../../src/document/services/document.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAGpD,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,UAAU,EAAc,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAKvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,cAAc,EACf,MAAM,yBAAyB,CAAC;AAOjC,qBACa,eAAe;IAIxB,OAAO,CAAC,QAAQ,CAAC,uBAAuB;IACxC,OAAO,CAAC,QAAQ,CAAC,0BAA0B;IAC3C,OAAO,CAAC,QAAQ,CAAC,UAAU;IAL7B,SAAS,CAAC,QAAQ,CAAC,MAAM,SAAoC;gBAG1C,uBAAuB,EAAE,uBAAuB,EAChD,0BAA0B,EAAE,0BAA0B,EACtD,UAAU,EAAE,UAAU;IAInC,cAAc,CAClB,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,MAAM,EAAE,CAAC;IAMd,eAAe,CACnB,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,cAAc,EAAE,CAAC;IAMtB,oBAAoB,CACxB,IAAI,EAAE,cAAc,EACpB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,cAAc,CAAC;IAsBpB,qBAAqB,CACzB,cAAc,EAAE,cAAc,EAC9B,OAAO,EAAE,IAAI,CACX,qBAAqB,EACrB,WAAW,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU,CACrD,GACA,OAAO,CAAC,cAAc,CAAC;IAuBpB,cAAc,CAClB,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,GAC3B,OAAO,CAAC,IAAI,CAAC;IAgBV,eAAe,CACnB,QAAQ,EAAE,cAAc,EACxB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,MAAM,CAAC;IAOZ,eAAe,CACnB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,MAAM,CAAC;IAIZ,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIpD,iBAAiB,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IAM9D,qBAAqB,CACzB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,EAAE,CAAC;IAQ5B,gBAAgB,IAAI,qBAAqB;IAOzC,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,qBAAqB;IAezD,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAOhD,OAAO,CAAC,eAAe;IAKvB,OAAO,KAAK,kBAAkB,GAE7B;CACF"}
|
|
@@ -0,0 +1,148 @@
|
|
|
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 DocumentService_1;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.DocumentService = void 0;
|
|
14
|
+
const common_1 = require("@nestjs/common");
|
|
15
|
+
const crypto_1 = require("crypto");
|
|
16
|
+
const path_1 = require("path");
|
|
17
|
+
const typeorm_1 = require("typeorm");
|
|
18
|
+
const document_entity_1 = require("../../common/entities/document.entity");
|
|
19
|
+
const storage_driver_enum_1 = require("../../common/enums/storage.driver.enum");
|
|
20
|
+
const bad_request_exception_1 = require("../../global/exceptions/bad.request.exception");
|
|
21
|
+
const not_found_exception_1 = require("../../global/exceptions/not.found.exception");
|
|
22
|
+
const operation_exception_1 = require("../../global/exceptions/operation.exception");
|
|
23
|
+
const minio_bucket_document_service_1 = require("./minio.bucket.document.service");
|
|
24
|
+
const s3_bucket_document_service_1 = require("./s3.bucket.document.service");
|
|
25
|
+
let DocumentService = DocumentService_1 = class DocumentService {
|
|
26
|
+
s3BucketDocumentService;
|
|
27
|
+
minioBucketDocumentService;
|
|
28
|
+
dataSource;
|
|
29
|
+
logger = new common_1.Logger(DocumentService_1.name);
|
|
30
|
+
constructor(s3BucketDocumentService, minioBucketDocumentService, dataSource) {
|
|
31
|
+
this.s3BucketDocumentService = s3BucketDocumentService;
|
|
32
|
+
this.minioBucketDocumentService = minioBucketDocumentService;
|
|
33
|
+
this.dataSource = dataSource;
|
|
34
|
+
}
|
|
35
|
+
async uploadDocument(files, options) {
|
|
36
|
+
const storedDocuments = await this.uploadDocuments(files, options);
|
|
37
|
+
return storedDocuments.map((storedDocument) => storedDocument.link);
|
|
38
|
+
}
|
|
39
|
+
async uploadDocuments(files, options) {
|
|
40
|
+
return Promise.all(files.map((file) => this.uploadSingleDocument(file, options)));
|
|
41
|
+
}
|
|
42
|
+
async uploadSingleDocument(file, options) {
|
|
43
|
+
const storage = this.getActiveStorage();
|
|
44
|
+
const storedName = this.generateStoredName(file.originalname);
|
|
45
|
+
const objectPath = this.buildObjectPath(storedName, options?.pathPrefix);
|
|
46
|
+
const link = await storage.upload(objectPath, file.buffer, file.mimetype);
|
|
47
|
+
const storedDocument = {
|
|
48
|
+
link,
|
|
49
|
+
path: objectPath,
|
|
50
|
+
storedName,
|
|
51
|
+
originalName: file.originalname,
|
|
52
|
+
mimeType: file.mimetype,
|
|
53
|
+
sizeBytes: file.size,
|
|
54
|
+
storageDriver: storage.driver,
|
|
55
|
+
};
|
|
56
|
+
if (options?.persist)
|
|
57
|
+
await this.persistDocumentRecord(storedDocument, options);
|
|
58
|
+
return storedDocument;
|
|
59
|
+
}
|
|
60
|
+
async persistDocumentRecord(storedDocument, options) {
|
|
61
|
+
if (!options.createdBy || !options.sourceType || !options.sourceId) {
|
|
62
|
+
throw new bad_request_exception_1.BadRequestException('Persisting a document record requires createdBy, sourceType and sourceId options.');
|
|
63
|
+
}
|
|
64
|
+
return this.documentRepository.save(this.documentRepository.create({
|
|
65
|
+
original_name: storedDocument.originalName,
|
|
66
|
+
stored_name: storedDocument.storedName,
|
|
67
|
+
mime_type: storedDocument.mimeType,
|
|
68
|
+
size_bytes: storedDocument.sizeBytes,
|
|
69
|
+
storage_driver: storedDocument.storageDriver,
|
|
70
|
+
path: storedDocument.path,
|
|
71
|
+
is_public: options.isPublic ?? false,
|
|
72
|
+
source_type: options.sourceType,
|
|
73
|
+
source_id: options.sourceId,
|
|
74
|
+
created_by: options.createdBy,
|
|
75
|
+
}));
|
|
76
|
+
}
|
|
77
|
+
async deleteDocument(documentUuid, options) {
|
|
78
|
+
const document = await this.documentRepository.findOne({
|
|
79
|
+
where: { uuid: documentUuid },
|
|
80
|
+
});
|
|
81
|
+
if (!document)
|
|
82
|
+
throw new not_found_exception_1.NotFoundException(`Document "${documentUuid}" was not found.`);
|
|
83
|
+
await this.getStorageByDriver(document.storage_driver).delete(document.path);
|
|
84
|
+
if (options?.hard)
|
|
85
|
+
await this.documentRepository.delete({ uuid: documentUuid });
|
|
86
|
+
else
|
|
87
|
+
await this.documentRepository.softDelete({ uuid: documentUuid });
|
|
88
|
+
}
|
|
89
|
+
async getDocumentLink(document, options) {
|
|
90
|
+
const storage = this.getStorageByDriver(document.storage_driver);
|
|
91
|
+
if (document.is_public && !options?.signed)
|
|
92
|
+
return storage.getPublicUrl(document.path);
|
|
93
|
+
return storage.getPresignedUrl(document.path, options);
|
|
94
|
+
}
|
|
95
|
+
async getPresignedUrl(objectPath, options) {
|
|
96
|
+
return this.getActiveStorage().getPresignedUrl(objectPath, options);
|
|
97
|
+
}
|
|
98
|
+
async documentExists(objectPath) {
|
|
99
|
+
return this.getActiveStorage().exists(objectPath);
|
|
100
|
+
}
|
|
101
|
+
async getDocumentStream(document) {
|
|
102
|
+
return this.getStorageByDriver(document.storage_driver).getStream(document.path);
|
|
103
|
+
}
|
|
104
|
+
async findDocumentsBySource(sourceType, sourceId) {
|
|
105
|
+
return this.documentRepository.find({
|
|
106
|
+
where: { source_type: sourceType, source_id: sourceId },
|
|
107
|
+
order: { created_at: 'DESC' },
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
getActiveStorage() {
|
|
111
|
+
const driver = (process.env.DOCUMENT_STORAGE_DRIVER || storage_driver_enum_1.StorageDriver.MINIO).toLowerCase();
|
|
112
|
+
return this.getStorageByDriver(driver);
|
|
113
|
+
}
|
|
114
|
+
getStorageByDriver(driver) {
|
|
115
|
+
const storageByDriver = {
|
|
116
|
+
[storage_driver_enum_1.StorageDriver.S3]: this.s3BucketDocumentService,
|
|
117
|
+
[storage_driver_enum_1.StorageDriver.MINIO]: this.minioBucketDocumentService,
|
|
118
|
+
[storage_driver_enum_1.StorageDriver.LOCAL]: this.minioBucketDocumentService,
|
|
119
|
+
};
|
|
120
|
+
const storage = storageByDriver[driver];
|
|
121
|
+
if (!storage) {
|
|
122
|
+
throw new operation_exception_1.OperationException(`Unsupported document storage driver "${driver}".`);
|
|
123
|
+
}
|
|
124
|
+
return storage;
|
|
125
|
+
}
|
|
126
|
+
generateStoredName(originalName) {
|
|
127
|
+
const extension = (0, path_1.extname)(originalName)
|
|
128
|
+
.toLowerCase()
|
|
129
|
+
.replace(/[^.a-z0-9]/g, '');
|
|
130
|
+
return `${(0, crypto_1.randomUUID)()}${extension}`;
|
|
131
|
+
}
|
|
132
|
+
buildObjectPath(storedName, pathPrefix) {
|
|
133
|
+
if (!pathPrefix)
|
|
134
|
+
return storedName;
|
|
135
|
+
return `${pathPrefix.replace(/^\/+|\/+$/g, '')}/${storedName}`;
|
|
136
|
+
}
|
|
137
|
+
get documentRepository() {
|
|
138
|
+
return this.dataSource.getRepository(document_entity_1.DocumentEntity);
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
exports.DocumentService = DocumentService;
|
|
142
|
+
exports.DocumentService = DocumentService = DocumentService_1 = __decorate([
|
|
143
|
+
(0, common_1.Injectable)(),
|
|
144
|
+
__metadata("design:paramtypes", [s3_bucket_document_service_1.S3BucketDocumentService,
|
|
145
|
+
minio_bucket_document_service_1.MinioBucketDocumentService,
|
|
146
|
+
typeorm_1.DataSource])
|
|
147
|
+
], DocumentService);
|
|
148
|
+
//# sourceMappingURL=document.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.service.js","sourceRoot":"","sources":["../../../src/document/services/document.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Logger } from '@nestjs/common';
|
|
2
|
+
import { Readable } from 'stream';
|
|
3
|
+
import { StorageDriver } from '../../common/enums/storage.driver.enum';
|
|
4
|
+
import { BucketDocumentStorage, PresignedUrlOptions } from '../types/document.types';
|
|
5
|
+
export declare class MinioBucketDocumentService implements BucketDocumentStorage {
|
|
6
|
+
readonly driver = StorageDriver.MINIO;
|
|
7
|
+
protected readonly logger: Logger;
|
|
8
|
+
private client;
|
|
9
|
+
private bucketEnsured;
|
|
10
|
+
upload(objectPath: string, content: Buffer, mimeType: string): Promise<string>;
|
|
11
|
+
delete(objectPath: string): Promise<void>;
|
|
12
|
+
exists(objectPath: string): Promise<boolean>;
|
|
13
|
+
getPresignedUrl(objectPath: string, options?: PresignedUrlOptions): Promise<string>;
|
|
14
|
+
getPublicUrl(objectPath: string): string;
|
|
15
|
+
getStream(objectPath: string): Promise<Readable>;
|
|
16
|
+
private ensureBucketExists;
|
|
17
|
+
private getClient;
|
|
18
|
+
private getBucketName;
|
|
19
|
+
private getEndpoint;
|
|
20
|
+
private getPort;
|
|
21
|
+
private getDefaultPresignedUrlExpiry;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=minio.bucket.document.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"minio.bucket.document.service.d.ts","sourceRoot":"","sources":["../../../src/document/services/minio.bucket.document.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAGvE,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AAOjC,qBACa,0BAA2B,YAAW,qBAAqB;IACtE,QAAQ,CAAC,MAAM,uBAAuB;IACtC,SAAS,CAAC,QAAQ,CAAC,MAAM,SAA+C;IACxE,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,aAAa,CAAS;IAExB,MAAM,CACV,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC;IAcZ,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAS5C,eAAe,CACnB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,MAAM,CAAC;IAQlB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IASlC,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;YAIxC,kBAAkB;IAWhC,OAAO,CAAC,SAAS;IAajB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,4BAA4B;CAMrC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
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 MinioBucketDocumentService_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.MinioBucketDocumentService = void 0;
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
const minio_1 = require("minio");
|
|
13
|
+
const storage_driver_enum_1 = require("../../common/enums/storage.driver.enum");
|
|
14
|
+
const operation_exception_1 = require("../../global/exceptions/operation.exception");
|
|
15
|
+
const document_default_enum_1 = require("../enums/document.default.enum");
|
|
16
|
+
let MinioBucketDocumentService = MinioBucketDocumentService_1 = class MinioBucketDocumentService {
|
|
17
|
+
driver = storage_driver_enum_1.StorageDriver.MINIO;
|
|
18
|
+
logger = new common_1.Logger(MinioBucketDocumentService_1.name);
|
|
19
|
+
client = null;
|
|
20
|
+
bucketEnsured = false;
|
|
21
|
+
async upload(objectPath, content, mimeType) {
|
|
22
|
+
await this.ensureBucketExists();
|
|
23
|
+
await this.getClient().putObject(this.getBucketName(), objectPath, content, content.length, {
|
|
24
|
+
'Content-Type': mimeType,
|
|
25
|
+
});
|
|
26
|
+
return this.getPublicUrl(objectPath);
|
|
27
|
+
}
|
|
28
|
+
async delete(objectPath) {
|
|
29
|
+
await this.getClient().removeObject(this.getBucketName(), objectPath);
|
|
30
|
+
}
|
|
31
|
+
async exists(objectPath) {
|
|
32
|
+
try {
|
|
33
|
+
await this.getClient().statObject(this.getBucketName(), objectPath);
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
async getPresignedUrl(objectPath, options) {
|
|
41
|
+
return this.getClient().presignedGetObject(this.getBucketName(), objectPath, options?.expirySeconds ?? this.getDefaultPresignedUrlExpiry());
|
|
42
|
+
}
|
|
43
|
+
getPublicUrl(objectPath) {
|
|
44
|
+
const publicBaseUrl = process.env.MINIO_PUBLIC_URL;
|
|
45
|
+
if (publicBaseUrl) {
|
|
46
|
+
return `${publicBaseUrl.replace(/\/+$/, '')}/${this.getBucketName()}/${objectPath}`;
|
|
47
|
+
}
|
|
48
|
+
const protocol = process.env.MINIO_USE_SSL === 'true' ? 'https' : 'http';
|
|
49
|
+
return `${protocol}://${this.getEndpoint()}:${this.getPort()}/${this.getBucketName()}/${objectPath}`;
|
|
50
|
+
}
|
|
51
|
+
async getStream(objectPath) {
|
|
52
|
+
return this.getClient().getObject(this.getBucketName(), objectPath);
|
|
53
|
+
}
|
|
54
|
+
async ensureBucketExists() {
|
|
55
|
+
if (this.bucketEnsured)
|
|
56
|
+
return;
|
|
57
|
+
const bucketName = this.getBucketName();
|
|
58
|
+
const exists = await this.getClient().bucketExists(bucketName);
|
|
59
|
+
if (!exists) {
|
|
60
|
+
await this.getClient().makeBucket(bucketName);
|
|
61
|
+
this.logger.log(`Created MinIO bucket "${bucketName}"`);
|
|
62
|
+
}
|
|
63
|
+
this.bucketEnsured = true;
|
|
64
|
+
}
|
|
65
|
+
getClient() {
|
|
66
|
+
if (!this.client) {
|
|
67
|
+
this.client = new minio_1.Client({
|
|
68
|
+
endPoint: this.getEndpoint(),
|
|
69
|
+
port: this.getPort(),
|
|
70
|
+
useSSL: process.env.MINIO_USE_SSL === 'true',
|
|
71
|
+
accessKey: process.env.MINIO_ACCESS_KEY || '',
|
|
72
|
+
secretKey: process.env.MINIO_SECRET_KEY || '',
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
return this.client;
|
|
76
|
+
}
|
|
77
|
+
getBucketName() {
|
|
78
|
+
const bucketName = process.env.MINIO_BUCKET;
|
|
79
|
+
if (!bucketName)
|
|
80
|
+
throw new operation_exception_1.OperationException('MINIO_BUCKET env variable is not set.');
|
|
81
|
+
return bucketName;
|
|
82
|
+
}
|
|
83
|
+
getEndpoint() {
|
|
84
|
+
return process.env.MINIO_ENDPOINT || 'localhost';
|
|
85
|
+
}
|
|
86
|
+
getPort() {
|
|
87
|
+
return parseInt(process.env.MINIO_PORT || '9000', 10);
|
|
88
|
+
}
|
|
89
|
+
getDefaultPresignedUrlExpiry() {
|
|
90
|
+
return (parseInt(process.env.DOCUMENT_PRESIGNED_URL_EXPIRY_SECONDS || '', 10) ||
|
|
91
|
+
document_default_enum_1.DocumentDefault.PRESIGNED_URL_EXPIRY_SECONDS);
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
exports.MinioBucketDocumentService = MinioBucketDocumentService;
|
|
95
|
+
exports.MinioBucketDocumentService = MinioBucketDocumentService = MinioBucketDocumentService_1 = __decorate([
|
|
96
|
+
(0, common_1.Injectable)()
|
|
97
|
+
], MinioBucketDocumentService);
|
|
98
|
+
//# sourceMappingURL=minio.bucket.document.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"minio.bucket.document.service.js","sourceRoot":"","sources":["../../../src/document/services/minio.bucket.document.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Logger } from '@nestjs/common';
|
|
2
|
+
import { Readable } from 'stream';
|
|
3
|
+
import { StorageDriver } from '../../common/enums/storage.driver.enum';
|
|
4
|
+
import { BucketDocumentStorage, PresignedUrlOptions } from '../types/document.types';
|
|
5
|
+
export declare class S3BucketDocumentService implements BucketDocumentStorage {
|
|
6
|
+
readonly driver = StorageDriver.S3;
|
|
7
|
+
protected readonly logger: Logger;
|
|
8
|
+
private client;
|
|
9
|
+
upload(objectPath: string, content: Buffer, mimeType: string): Promise<string>;
|
|
10
|
+
delete(objectPath: string): Promise<void>;
|
|
11
|
+
exists(objectPath: string): Promise<boolean>;
|
|
12
|
+
getPresignedUrl(objectPath: string, options?: PresignedUrlOptions): Promise<string>;
|
|
13
|
+
getPublicUrl(objectPath: string): string;
|
|
14
|
+
getStream(objectPath: string): Promise<Readable>;
|
|
15
|
+
private getClient;
|
|
16
|
+
private getBucketName;
|
|
17
|
+
private getRegion;
|
|
18
|
+
private getDefaultPresignedUrlExpiry;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=s3.bucket.document.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3.bucket.document.service.d.ts","sourceRoot":"","sources":["../../../src/document/services/s3.bucket.document.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,MAAM,EAAE,MAAM,gBAAgB,CAAC;AASpD,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAGvE,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AAOjC,qBACa,uBAAwB,YAAW,qBAAqB;IACnE,QAAQ,CAAC,MAAM,oBAAoB;IACnC,SAAS,CAAC,QAAQ,CAAC,MAAM,SAA4C;IACrE,OAAO,CAAC,MAAM,CAAyB;IAEjC,MAAM,CACV,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC;IAYZ,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASzC,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAc5C,eAAe,CACnB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,MAAM,CAAC;IAUlB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAUlC,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAOtD,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,4BAA4B;CAMrC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
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 S3BucketDocumentService_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.S3BucketDocumentService = void 0;
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
13
|
+
const s3_request_presigner_1 = require("@aws-sdk/s3-request-presigner");
|
|
14
|
+
const storage_driver_enum_1 = require("../../common/enums/storage.driver.enum");
|
|
15
|
+
const operation_exception_1 = require("../../global/exceptions/operation.exception");
|
|
16
|
+
const document_default_enum_1 = require("../enums/document.default.enum");
|
|
17
|
+
let S3BucketDocumentService = S3BucketDocumentService_1 = class S3BucketDocumentService {
|
|
18
|
+
driver = storage_driver_enum_1.StorageDriver.S3;
|
|
19
|
+
logger = new common_1.Logger(S3BucketDocumentService_1.name);
|
|
20
|
+
client = null;
|
|
21
|
+
async upload(objectPath, content, mimeType) {
|
|
22
|
+
await this.getClient().send(new client_s3_1.PutObjectCommand({
|
|
23
|
+
Bucket: this.getBucketName(),
|
|
24
|
+
Key: objectPath,
|
|
25
|
+
Body: content,
|
|
26
|
+
ContentType: mimeType,
|
|
27
|
+
}));
|
|
28
|
+
return this.getPublicUrl(objectPath);
|
|
29
|
+
}
|
|
30
|
+
async delete(objectPath) {
|
|
31
|
+
await this.getClient().send(new client_s3_1.DeleteObjectCommand({
|
|
32
|
+
Bucket: this.getBucketName(),
|
|
33
|
+
Key: objectPath,
|
|
34
|
+
}));
|
|
35
|
+
}
|
|
36
|
+
async exists(objectPath) {
|
|
37
|
+
try {
|
|
38
|
+
await this.getClient().send(new client_s3_1.HeadObjectCommand({
|
|
39
|
+
Bucket: this.getBucketName(),
|
|
40
|
+
Key: objectPath,
|
|
41
|
+
}));
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
async getPresignedUrl(objectPath, options) {
|
|
49
|
+
const command = new client_s3_1.GetObjectCommand({
|
|
50
|
+
Bucket: this.getBucketName(),
|
|
51
|
+
Key: objectPath,
|
|
52
|
+
});
|
|
53
|
+
return (0, s3_request_presigner_1.getSignedUrl)(this.getClient(), command, {
|
|
54
|
+
expiresIn: options?.expirySeconds ?? this.getDefaultPresignedUrlExpiry(),
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
getPublicUrl(objectPath) {
|
|
58
|
+
const publicBaseUrl = process.env.AWS_S3_PUBLIC_URL;
|
|
59
|
+
if (publicBaseUrl)
|
|
60
|
+
return `${publicBaseUrl.replace(/\/+$/, '')}/${objectPath}`;
|
|
61
|
+
const endpoint = process.env.AWS_S3_ENDPOINT;
|
|
62
|
+
if (endpoint)
|
|
63
|
+
return `${endpoint.replace(/\/+$/, '')}/${this.getBucketName()}/${objectPath}`;
|
|
64
|
+
return `https://${this.getBucketName()}.s3.${this.getRegion()}.amazonaws.com/${objectPath}`;
|
|
65
|
+
}
|
|
66
|
+
async getStream(objectPath) {
|
|
67
|
+
const response = await this.getClient().send(new client_s3_1.GetObjectCommand({ Bucket: this.getBucketName(), Key: objectPath }));
|
|
68
|
+
return response.Body;
|
|
69
|
+
}
|
|
70
|
+
getClient() {
|
|
71
|
+
if (!this.client) {
|
|
72
|
+
this.client = new client_s3_1.S3Client({
|
|
73
|
+
region: this.getRegion(),
|
|
74
|
+
endpoint: process.env.AWS_S3_ENDPOINT || undefined,
|
|
75
|
+
forcePathStyle: process.env.AWS_S3_FORCE_PATH_STYLE === 'true',
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
return this.client;
|
|
79
|
+
}
|
|
80
|
+
getBucketName() {
|
|
81
|
+
const bucketName = process.env.AWS_S3_BUCKET;
|
|
82
|
+
if (!bucketName)
|
|
83
|
+
throw new operation_exception_1.OperationException('AWS_S3_BUCKET env variable is not set.');
|
|
84
|
+
return bucketName;
|
|
85
|
+
}
|
|
86
|
+
getRegion() {
|
|
87
|
+
return process.env.AWS_S3_REGION || process.env.AWS_REGION || 'us-east-1';
|
|
88
|
+
}
|
|
89
|
+
getDefaultPresignedUrlExpiry() {
|
|
90
|
+
return (parseInt(process.env.DOCUMENT_PRESIGNED_URL_EXPIRY_SECONDS || '', 10) ||
|
|
91
|
+
document_default_enum_1.DocumentDefault.PRESIGNED_URL_EXPIRY_SECONDS);
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
exports.S3BucketDocumentService = S3BucketDocumentService;
|
|
95
|
+
exports.S3BucketDocumentService = S3BucketDocumentService = S3BucketDocumentService_1 = __decorate([
|
|
96
|
+
(0, common_1.Injectable)()
|
|
97
|
+
], S3BucketDocumentService);
|
|
98
|
+
//# sourceMappingURL=s3.bucket.document.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"s3.bucket.document.service.js","sourceRoot":"","sources":["../../../src/document/services/s3.bucket.document.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Readable } from 'stream';
|
|
2
|
+
export interface UploadableFile {
|
|
3
|
+
originalname: string;
|
|
4
|
+
mimetype: string;
|
|
5
|
+
size: number;
|
|
6
|
+
buffer: Buffer;
|
|
7
|
+
}
|
|
8
|
+
export interface UploadDocumentOptions {
|
|
9
|
+
pathPrefix?: string;
|
|
10
|
+
isPublic?: boolean;
|
|
11
|
+
persist?: boolean;
|
|
12
|
+
createdBy?: string;
|
|
13
|
+
sourceType?: string;
|
|
14
|
+
sourceId?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface StoredDocument {
|
|
17
|
+
link: string;
|
|
18
|
+
path: string;
|
|
19
|
+
storedName: string;
|
|
20
|
+
originalName: string;
|
|
21
|
+
mimeType: string;
|
|
22
|
+
sizeBytes: number;
|
|
23
|
+
storageDriver: string;
|
|
24
|
+
}
|
|
25
|
+
export interface PresignedUrlOptions {
|
|
26
|
+
expirySeconds?: number;
|
|
27
|
+
}
|
|
28
|
+
export interface DocumentLinkOptions extends PresignedUrlOptions {
|
|
29
|
+
signed?: boolean;
|
|
30
|
+
}
|
|
31
|
+
export interface BucketDocumentStorage {
|
|
32
|
+
readonly driver: string;
|
|
33
|
+
upload(objectPath: string, content: Buffer, mimeType: string): Promise<string>;
|
|
34
|
+
delete(objectPath: string): Promise<void>;
|
|
35
|
+
exists(objectPath: string): Promise<boolean>;
|
|
36
|
+
getPresignedUrl(objectPath: string, options?: PresignedUrlOptions): Promise<string>;
|
|
37
|
+
getPublicUrl(objectPath: string): string;
|
|
38
|
+
getStream(objectPath: string): Promise<Readable>;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=document.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.types.d.ts","sourceRoot":"","sources":["../../../src/document/types/document.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAMlC,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IAEpC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAElC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAE9D,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAGD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,MAAM,CACJ,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,eAAe,CACb,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IACzC,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CAClD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.types.js","sourceRoot":"","sources":["../../../src/document/types/document.types.ts"],"names":[],"mappings":""}
|