@skyapp-labs/blueprint-backend-core 1.0.9
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/CHANGELOG.md +6 -0
- package/README.md +954 -0
- package/dist/common/base/base.entity.d.ts +12 -0
- package/dist/common/base/base.entity.d.ts.map +1 -0
- package/dist/common/base/base.entity.js +48 -0
- package/dist/common/base/base.entity.js.map +1 -0
- package/dist/common/base/base.repository.d.ts +26 -0
- package/dist/common/base/base.repository.d.ts.map +1 -0
- package/dist/common/base/base.repository.js +61 -0
- package/dist/common/base/base.repository.js.map +1 -0
- package/dist/common/constants/index.d.ts +9 -0
- package/dist/common/constants/index.d.ts.map +1 -0
- package/dist/common/constants/index.js +13 -0
- package/dist/common/constants/index.js.map +1 -0
- package/dist/common/decorators/auth-method-aware.decorator.d.ts +3 -0
- package/dist/common/decorators/auth-method-aware.decorator.d.ts.map +1 -0
- package/dist/common/decorators/auth-method-aware.decorator.js +8 -0
- package/dist/common/decorators/auth-method-aware.decorator.js.map +1 -0
- package/dist/common/decorators/index.d.ts +8 -0
- package/dist/common/decorators/index.d.ts.map +1 -0
- package/dist/common/decorators/index.js +24 -0
- package/dist/common/decorators/index.js.map +1 -0
- package/dist/common/dto/index.d.ts +2 -0
- package/dist/common/dto/index.d.ts.map +1 -0
- package/dist/common/dto/index.js +18 -0
- package/dist/common/dto/index.js.map +1 -0
- package/dist/common/dto/pagination.dto.d.ts +6 -0
- package/dist/common/dto/pagination.dto.d.ts.map +1 -0
- package/dist/common/dto/pagination.dto.js +45 -0
- package/dist/common/dto/pagination.dto.js.map +1 -0
- package/dist/common/filters/http-exception.filter.d.ts +9 -0
- package/dist/common/filters/http-exception.filter.d.ts.map +1 -0
- package/dist/common/filters/http-exception.filter.js +71 -0
- package/dist/common/filters/http-exception.filter.js.map +1 -0
- package/dist/common/filters/index.d.ts +2 -0
- package/dist/common/filters/index.d.ts.map +1 -0
- package/dist/common/filters/index.js +18 -0
- package/dist/common/filters/index.js.map +1 -0
- package/dist/common/guards/auth.guard.d.ts +11 -0
- package/dist/common/guards/auth.guard.d.ts.map +1 -0
- package/dist/common/guards/auth.guard.js +42 -0
- package/dist/common/guards/auth.guard.js.map +1 -0
- package/dist/common/guards/index.d.ts +5 -0
- package/dist/common/guards/index.d.ts.map +1 -0
- package/dist/common/guards/index.js +21 -0
- package/dist/common/guards/index.js.map +1 -0
- package/dist/common/guards/login-ip-rate-limit.guard.d.ts +12 -0
- package/dist/common/guards/login-ip-rate-limit.guard.d.ts.map +1 -0
- package/dist/common/guards/login-ip-rate-limit.guard.js +70 -0
- package/dist/common/guards/login-ip-rate-limit.guard.js.map +1 -0
- package/dist/common/guards/otp-ip-rate-limit.guard.d.ts +12 -0
- package/dist/common/guards/otp-ip-rate-limit.guard.d.ts.map +1 -0
- package/dist/common/guards/otp-ip-rate-limit.guard.js +70 -0
- package/dist/common/guards/otp-ip-rate-limit.guard.js.map +1 -0
- package/dist/common/guards/permissions.guard.d.ts +8 -0
- package/dist/common/guards/permissions.guard.d.ts.map +1 -0
- package/dist/common/guards/permissions.guard.js +41 -0
- package/dist/common/guards/permissions.guard.js.map +1 -0
- package/dist/common/index.d.ts +13 -0
- package/dist/common/index.d.ts.map +1 -0
- package/dist/common/index.js +33 -0
- package/dist/common/index.js.map +1 -0
- package/dist/common/interceptors/index.d.ts +2 -0
- package/dist/common/interceptors/index.d.ts.map +1 -0
- package/dist/common/interceptors/index.js +18 -0
- package/dist/common/interceptors/index.js.map +1 -0
- package/dist/common/interceptors/logging.interceptor.d.ts +10 -0
- package/dist/common/interceptors/logging.interceptor.d.ts.map +1 -0
- package/dist/common/interceptors/logging.interceptor.js +50 -0
- package/dist/common/interceptors/logging.interceptor.js.map +1 -0
- package/dist/common/interfaces/index.d.ts +2 -0
- package/dist/common/interfaces/index.d.ts.map +1 -0
- package/dist/common/interfaces/index.js +18 -0
- package/dist/common/interfaces/index.js.map +1 -0
- package/dist/common/interfaces/request-user.interface.d.ts +5 -0
- package/dist/common/interfaces/request-user.interface.d.ts.map +1 -0
- package/dist/common/interfaces/request-user.interface.js +3 -0
- package/dist/common/interfaces/request-user.interface.js.map +1 -0
- package/dist/common/middlewares/index.d.ts +6 -0
- package/dist/common/middlewares/index.d.ts.map +1 -0
- package/dist/common/middlewares/index.js +23 -0
- package/dist/common/middlewares/index.js.map +1 -0
- package/dist/common/pipes/config-aware-validation.pipe.d.ts +9 -0
- package/dist/common/pipes/config-aware-validation.pipe.d.ts.map +1 -0
- package/dist/common/pipes/config-aware-validation.pipe.js +38 -0
- package/dist/common/pipes/config-aware-validation.pipe.js.map +1 -0
- package/dist/common/pipes/index.d.ts +14 -0
- package/dist/common/pipes/index.d.ts.map +1 -0
- package/dist/common/pipes/index.js +62 -0
- package/dist/common/pipes/index.js.map +1 -0
- package/dist/common/utils/index.d.ts +8 -0
- package/dist/common/utils/index.d.ts.map +1 -0
- package/dist/common/utils/index.js +33 -0
- package/dist/common/utils/index.js.map +1 -0
- package/dist/common/utils/request.utils.d.ts +7 -0
- package/dist/common/utils/request.utils.d.ts.map +1 -0
- package/dist/common/utils/request.utils.js +12 -0
- package/dist/common/utils/request.utils.js.map +1 -0
- package/dist/config/app.config.d.ts +66 -0
- package/dist/config/app.config.d.ts.map +1 -0
- package/dist/config/app.config.js +43 -0
- package/dist/config/app.config.js.map +1 -0
- package/dist/config/database.config.d.ts +16 -0
- package/dist/config/database.config.d.ts.map +1 -0
- package/dist/config/database.config.js +13 -0
- package/dist/config/database.config.js.map +1 -0
- package/dist/config/env.validation.d.ts +34 -0
- package/dist/config/env.validation.d.ts.map +1 -0
- package/dist/config/env.validation.js +172 -0
- package/dist/config/env.validation.js.map +1 -0
- package/dist/config/firebase.module.d.ts +5 -0
- package/dist/config/firebase.module.d.ts.map +1 -0
- package/dist/config/firebase.module.js +21 -0
- package/dist/config/firebase.module.js.map +1 -0
- package/dist/config/index.d.ts +7 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +17 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/keycloak.module.d.ts +6 -0
- package/dist/config/keycloak.module.d.ts.map +1 -0
- package/dist/config/keycloak.module.js +92 -0
- package/dist/config/keycloak.module.js.map +1 -0
- package/dist/config/redis.module.d.ts +10 -0
- package/dist/config/redis.module.d.ts.map +1 -0
- package/dist/config/redis.module.js +111 -0
- package/dist/config/redis.module.js.map +1 -0
- package/dist/core.module.d.ts +12 -0
- package/dist/core.module.d.ts.map +1 -0
- package/dist/core.module.js +53 -0
- package/dist/core.module.js.map +1 -0
- package/dist/database/data-source.d.ts +5 -0
- package/dist/database/data-source.d.ts.map +1 -0
- package/dist/database/data-source.js +56 -0
- package/dist/database/data-source.js.map +1 -0
- package/dist/database/migrations/1775258543167-full-schema.d.ts +7 -0
- package/dist/database/migrations/1775258543167-full-schema.d.ts.map +1 -0
- package/dist/database/migrations/1775258543167-full-schema.js +100 -0
- package/dist/database/migrations/1775258543167-full-schema.js.map +1 -0
- package/dist/database/seeds/roles.seed.d.ts +11 -0
- package/dist/database/seeds/roles.seed.d.ts.map +1 -0
- package/dist/database/seeds/roles.seed.js +66 -0
- package/dist/database/seeds/roles.seed.js.map +1 -0
- package/dist/database/seeds/run-seed.d.ts +2 -0
- package/dist/database/seeds/run-seed.d.ts.map +1 -0
- package/dist/database/seeds/run-seed.js +32 -0
- package/dist/database/seeds/run-seed.js.map +1 -0
- package/dist/database/seeds/settings.seed.d.ts +9 -0
- package/dist/database/seeds/settings.seed.d.ts.map +1 -0
- package/dist/database/seeds/settings.seed.js +450 -0
- package/dist/database/seeds/settings.seed.js.map +1 -0
- package/dist/database/seeds/user.seed.d.ts +9 -0
- package/dist/database/seeds/user.seed.d.ts.map +1 -0
- package/dist/database/seeds/user.seed.js +90 -0
- package/dist/database/seeds/user.seed.js.map +1 -0
- package/dist/database/typeorm.service.d.ts +13 -0
- package/dist/database/typeorm.service.d.ts.map +1 -0
- package/dist/database/typeorm.service.js +52 -0
- package/dist/database/typeorm.service.js.map +1 -0
- package/dist/health/health.controller.d.ts +29 -0
- package/dist/health/health.controller.d.ts.map +1 -0
- package/dist/health/health.controller.js +182 -0
- package/dist/health/health.controller.js.map +1 -0
- package/dist/health/health.module.d.ts +3 -0
- package/dist/health/health.module.d.ts.map +1 -0
- package/dist/health/health.module.js +50 -0
- package/dist/health/health.module.js.map +1 -0
- package/dist/index.d.ts +40 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +79 -0
- package/dist/index.js.map +1 -0
- package/dist/jobs/index.d.ts +6 -0
- package/dist/jobs/index.d.ts.map +1 -0
- package/dist/jobs/index.js +10 -0
- package/dist/jobs/index.js.map +1 -0
- package/dist/jobs/jobs.module.d.ts +6 -0
- package/dist/jobs/jobs.module.d.ts.map +1 -0
- package/dist/jobs/jobs.module.js +63 -0
- package/dist/jobs/jobs.module.js.map +1 -0
- package/dist/jobs/processors/jobs.processor.d.ts +24 -0
- package/dist/jobs/processors/jobs.processor.d.ts.map +1 -0
- package/dist/jobs/processors/jobs.processor.js +164 -0
- package/dist/jobs/processors/jobs.processor.js.map +1 -0
- package/dist/jobs/queues/jobs.queue.d.ts +25 -0
- package/dist/jobs/queues/jobs.queue.d.ts.map +1 -0
- package/dist/jobs/queues/jobs.queue.js +55 -0
- package/dist/jobs/queues/jobs.queue.js.map +1 -0
- package/dist/jobs/queues/queue-names.d.ts +5 -0
- package/dist/jobs/queues/queue-names.d.ts.map +1 -0
- package/dist/jobs/queues/queue-names.js +7 -0
- package/dist/jobs/queues/queue-names.js.map +1 -0
- package/dist/modules/admin/admin.module.d.ts +3 -0
- package/dist/modules/admin/admin.module.d.ts.map +1 -0
- package/dist/modules/admin/admin.module.js +24 -0
- package/dist/modules/admin/admin.module.js.map +1 -0
- package/dist/modules/admin/controllers/admin.controller.d.ts +27 -0
- package/dist/modules/admin/controllers/admin.controller.d.ts.map +1 -0
- package/dist/modules/admin/controllers/admin.controller.js +110 -0
- package/dist/modules/admin/controllers/admin.controller.js.map +1 -0
- package/dist/modules/admin/dto/admin-log.dto.d.ts +17 -0
- package/dist/modules/admin/dto/admin-log.dto.d.ts.map +1 -0
- package/dist/modules/admin/dto/admin-log.dto.js +57 -0
- package/dist/modules/admin/dto/admin-log.dto.js.map +1 -0
- package/dist/modules/admin/entities/admin-log.entity.d.ts +12 -0
- package/dist/modules/admin/entities/admin-log.entity.d.ts.map +1 -0
- package/dist/modules/admin/entities/admin-log.entity.js +53 -0
- package/dist/modules/admin/entities/admin-log.entity.js.map +1 -0
- package/dist/modules/admin/services/admin-log.service.d.ts +11 -0
- package/dist/modules/admin/services/admin-log.service.d.ts.map +1 -0
- package/dist/modules/admin/services/admin-log.service.js +60 -0
- package/dist/modules/admin/services/admin-log.service.js.map +1 -0
- package/dist/modules/auth/auth-core/auth-core.module.d.ts +3 -0
- package/dist/modules/auth/auth-core/auth-core.module.d.ts.map +1 -0
- package/dist/modules/auth/auth-core/auth-core.module.js +40 -0
- package/dist/modules/auth/auth-core/auth-core.module.js.map +1 -0
- package/dist/modules/auth/auth-core/strategies/jwt.strategy.d.ts +18 -0
- package/dist/modules/auth/auth-core/strategies/jwt.strategy.d.ts.map +1 -0
- package/dist/modules/auth/auth-core/strategies/jwt.strategy.js +45 -0
- package/dist/modules/auth/auth-core/strategies/jwt.strategy.js.map +1 -0
- package/dist/modules/auth/auth.manifest.d.ts +9 -0
- package/dist/modules/auth/auth.manifest.d.ts.map +1 -0
- package/dist/modules/auth/auth.manifest.js +29 -0
- package/dist/modules/auth/auth.manifest.js.map +1 -0
- package/dist/modules/auth/auth.module.d.ts +3 -0
- package/dist/modules/auth/auth.module.d.ts.map +1 -0
- package/dist/modules/auth/auth.module.js +67 -0
- package/dist/modules/auth/auth.module.js.map +1 -0
- package/dist/modules/auth/controllers/account.controller.d.ts +42 -0
- package/dist/modules/auth/controllers/account.controller.d.ts.map +1 -0
- package/dist/modules/auth/controllers/account.controller.js +206 -0
- package/dist/modules/auth/controllers/account.controller.js.map +1 -0
- package/dist/modules/auth/controllers/auth.controller.d.ts +32 -0
- package/dist/modules/auth/controllers/auth.controller.d.ts.map +1 -0
- package/dist/modules/auth/controllers/auth.controller.js +206 -0
- package/dist/modules/auth/controllers/auth.controller.js.map +1 -0
- package/dist/modules/auth/controllers/otp.controller.d.ts +10 -0
- package/dist/modules/auth/controllers/otp.controller.d.ts.map +1 -0
- package/dist/modules/auth/controllers/otp.controller.js +156 -0
- package/dist/modules/auth/controllers/otp.controller.js.map +1 -0
- package/dist/modules/auth/dto/index.d.ts +7 -0
- package/dist/modules/auth/dto/index.d.ts.map +1 -0
- package/dist/modules/auth/dto/index.js +23 -0
- package/dist/modules/auth/dto/index.js.map +1 -0
- package/dist/modules/auth/dto/invite.dto.d.ts +7 -0
- package/dist/modules/auth/dto/invite.dto.d.ts.map +1 -0
- package/dist/modules/auth/dto/invite.dto.js +39 -0
- package/dist/modules/auth/dto/invite.dto.js.map +1 -0
- package/dist/modules/auth/dto/login.dto.d.ts +7 -0
- package/dist/modules/auth/dto/login.dto.d.ts.map +1 -0
- package/dist/modules/auth/dto/login.dto.js +48 -0
- package/dist/modules/auth/dto/login.dto.js.map +1 -0
- package/dist/modules/auth/dto/otp.dto.d.ts +15 -0
- package/dist/modules/auth/dto/otp.dto.d.ts.map +1 -0
- package/dist/modules/auth/dto/otp.dto.js +83 -0
- package/dist/modules/auth/dto/otp.dto.js.map +1 -0
- package/dist/modules/auth/dto/password.dto.d.ts +25 -0
- package/dist/modules/auth/dto/password.dto.d.ts.map +1 -0
- package/dist/modules/auth/dto/password.dto.js +122 -0
- package/dist/modules/auth/dto/password.dto.js.map +1 -0
- package/dist/modules/auth/dto/register.dto.d.ts +19 -0
- package/dist/modules/auth/dto/register.dto.d.ts.map +1 -0
- package/dist/modules/auth/dto/register.dto.js +132 -0
- package/dist/modules/auth/dto/register.dto.js.map +1 -0
- package/dist/modules/auth/dto/token.dto.d.ts +15 -0
- package/dist/modules/auth/dto/token.dto.d.ts.map +1 -0
- package/dist/modules/auth/dto/token.dto.js +24 -0
- package/dist/modules/auth/dto/token.dto.js.map +1 -0
- package/dist/modules/auth/entities/index.d.ts +2 -0
- package/dist/modules/auth/entities/index.d.ts.map +1 -0
- package/dist/modules/auth/entities/index.js +18 -0
- package/dist/modules/auth/entities/index.js.map +1 -0
- package/dist/modules/auth/entities/password-reset-token.entity.d.ts +9 -0
- package/dist/modules/auth/entities/password-reset-token.entity.d.ts.map +1 -0
- package/dist/modules/auth/entities/password-reset-token.entity.js +40 -0
- package/dist/modules/auth/entities/password-reset-token.entity.js.map +1 -0
- package/dist/modules/auth/index.d.ts +5 -0
- package/dist/modules/auth/index.d.ts.map +1 -0
- package/dist/modules/auth/index.js +21 -0
- package/dist/modules/auth/index.js.map +1 -0
- package/dist/modules/auth/providers/index.d.ts +5 -0
- package/dist/modules/auth/providers/index.d.ts.map +1 -0
- package/dist/modules/auth/providers/index.js +21 -0
- package/dist/modules/auth/providers/index.js.map +1 -0
- package/dist/modules/auth/providers/interfaces/auth-provider.interface.d.ts +37 -0
- package/dist/modules/auth/providers/interfaces/auth-provider.interface.d.ts.map +1 -0
- package/dist/modules/auth/providers/interfaces/auth-provider.interface.js +3 -0
- package/dist/modules/auth/providers/interfaces/auth-provider.interface.js.map +1 -0
- package/dist/modules/auth/providers/interfaces/index.d.ts +2 -0
- package/dist/modules/auth/providers/interfaces/index.d.ts.map +1 -0
- package/dist/modules/auth/providers/interfaces/index.js +18 -0
- package/dist/modules/auth/providers/interfaces/index.js.map +1 -0
- package/dist/modules/auth/providers/keycloak/index.d.ts +3 -0
- package/dist/modules/auth/providers/keycloak/index.d.ts.map +1 -0
- package/dist/modules/auth/providers/keycloak/index.js +19 -0
- package/dist/modules/auth/providers/keycloak/index.js.map +1 -0
- package/dist/modules/auth/providers/keycloak/keycloak-auth-provider.module.d.ts +3 -0
- package/dist/modules/auth/providers/keycloak/keycloak-auth-provider.module.d.ts.map +1 -0
- package/dist/modules/auth/providers/keycloak/keycloak-auth-provider.module.js +80 -0
- package/dist/modules/auth/providers/keycloak/keycloak-auth-provider.module.js.map +1 -0
- package/dist/modules/auth/providers/keycloak/keycloak-verify-email.strategy.d.ts +7 -0
- package/dist/modules/auth/providers/keycloak/keycloak-verify-email.strategy.d.ts.map +1 -0
- package/dist/modules/auth/providers/keycloak/keycloak-verify-email.strategy.js +54 -0
- package/dist/modules/auth/providers/keycloak/keycloak-verify-email.strategy.js.map +1 -0
- package/dist/modules/auth/providers/keycloak/keycloak.auth-provider.d.ts +36 -0
- package/dist/modules/auth/providers/keycloak/keycloak.auth-provider.d.ts.map +1 -0
- package/dist/modules/auth/providers/keycloak/keycloak.auth-provider.js +188 -0
- package/dist/modules/auth/providers/keycloak/keycloak.auth-provider.js.map +1 -0
- package/dist/modules/auth/providers/native/index.d.ts +3 -0
- package/dist/modules/auth/providers/native/index.d.ts.map +1 -0
- package/dist/modules/auth/providers/native/index.js +19 -0
- package/dist/modules/auth/providers/native/index.js.map +1 -0
- package/dist/modules/auth/providers/native/native.auth-provider.d.ts +19 -0
- package/dist/modules/auth/providers/native/native.auth-provider.d.ts.map +1 -0
- package/dist/modules/auth/providers/native/native.auth-provider.js +159 -0
- package/dist/modules/auth/providers/native/native.auth-provider.js.map +1 -0
- package/dist/modules/auth/providers/native/native.auth-provider.module.d.ts +3 -0
- package/dist/modules/auth/providers/native/native.auth-provider.module.d.ts.map +1 -0
- package/dist/modules/auth/providers/native/native.auth-provider.module.js +24 -0
- package/dist/modules/auth/providers/native/native.auth-provider.module.js.map +1 -0
- package/dist/modules/auth/providers/provider.registry.d.ts +14 -0
- package/dist/modules/auth/providers/provider.registry.d.ts.map +1 -0
- package/dist/modules/auth/providers/provider.registry.js +49 -0
- package/dist/modules/auth/providers/provider.registry.js.map +1 -0
- package/dist/modules/auth/services/account.service.d.ts +40 -0
- package/dist/modules/auth/services/account.service.d.ts.map +1 -0
- package/dist/modules/auth/services/account.service.js +165 -0
- package/dist/modules/auth/services/account.service.js.map +1 -0
- package/dist/modules/auth/services/index.d.ts +6 -0
- package/dist/modules/auth/services/index.d.ts.map +1 -0
- package/dist/modules/auth/services/index.js +22 -0
- package/dist/modules/auth/services/index.js.map +1 -0
- package/dist/modules/auth/services/login.service.d.ts +28 -0
- package/dist/modules/auth/services/login.service.d.ts.map +1 -0
- package/dist/modules/auth/services/login.service.js +210 -0
- package/dist/modules/auth/services/login.service.js.map +1 -0
- package/dist/modules/auth/services/otp-auth.service.d.ts +16 -0
- package/dist/modules/auth/services/otp-auth.service.d.ts.map +1 -0
- package/dist/modules/auth/services/otp-auth.service.js +75 -0
- package/dist/modules/auth/services/otp-auth.service.js.map +1 -0
- package/dist/modules/auth/services/password.service.d.ts +39 -0
- package/dist/modules/auth/services/password.service.d.ts.map +1 -0
- package/dist/modules/auth/services/password.service.js +213 -0
- package/dist/modules/auth/services/password.service.js.map +1 -0
- package/dist/modules/auth/services/registration.service.d.ts +30 -0
- package/dist/modules/auth/services/registration.service.d.ts.map +1 -0
- package/dist/modules/auth/services/registration.service.js +217 -0
- package/dist/modules/auth/services/registration.service.js.map +1 -0
- package/dist/modules/notifications/controllers/index.d.ts +2 -0
- package/dist/modules/notifications/controllers/index.d.ts.map +1 -0
- package/dist/modules/notifications/controllers/index.js +18 -0
- package/dist/modules/notifications/controllers/index.js.map +1 -0
- package/dist/modules/notifications/controllers/notifications.controller.d.ts +38 -0
- package/dist/modules/notifications/controllers/notifications.controller.d.ts.map +1 -0
- package/dist/modules/notifications/controllers/notifications.controller.js +140 -0
- package/dist/modules/notifications/controllers/notifications.controller.js.map +1 -0
- package/dist/modules/notifications/dto/device.dto.d.ts +10 -0
- package/dist/modules/notifications/dto/device.dto.d.ts.map +1 -0
- package/dist/modules/notifications/dto/device.dto.js +38 -0
- package/dist/modules/notifications/dto/device.dto.js.map +1 -0
- package/dist/modules/notifications/dto/event-types.dto.d.ts +6 -0
- package/dist/modules/notifications/dto/event-types.dto.d.ts.map +1 -0
- package/dist/modules/notifications/dto/event-types.dto.js +10 -0
- package/dist/modules/notifications/dto/event-types.dto.js.map +1 -0
- package/dist/modules/notifications/dto/fcm.dto.d.ts +14 -0
- package/dist/modules/notifications/dto/fcm.dto.d.ts.map +1 -0
- package/dist/modules/notifications/dto/fcm.dto.js +3 -0
- package/dist/modules/notifications/dto/fcm.dto.js.map +1 -0
- package/dist/modules/notifications/dto/index.d.ts +6 -0
- package/dist/modules/notifications/dto/index.d.ts.map +1 -0
- package/dist/modules/notifications/dto/index.js +22 -0
- package/dist/modules/notifications/dto/index.js.map +1 -0
- package/dist/modules/notifications/dto/notification-query.dto.d.ts +8 -0
- package/dist/modules/notifications/dto/notification-query.dto.d.ts.map +1 -0
- package/dist/modules/notifications/dto/notification-query.dto.js +44 -0
- package/dist/modules/notifications/dto/notification-query.dto.js.map +1 -0
- package/dist/modules/notifications/dto/user-device-token.dto.d.ts +9 -0
- package/dist/modules/notifications/dto/user-device-token.dto.d.ts.map +1 -0
- package/dist/modules/notifications/dto/user-device-token.dto.js +3 -0
- package/dist/modules/notifications/dto/user-device-token.dto.js.map +1 -0
- package/dist/modules/notifications/entities/device-token.entity.d.ts +17 -0
- package/dist/modules/notifications/entities/device-token.entity.d.ts.map +1 -0
- package/dist/modules/notifications/entities/device-token.entity.js +62 -0
- package/dist/modules/notifications/entities/device-token.entity.js.map +1 -0
- package/dist/modules/notifications/entities/index.d.ts +3 -0
- package/dist/modules/notifications/entities/index.d.ts.map +1 -0
- package/dist/modules/notifications/entities/index.js +19 -0
- package/dist/modules/notifications/entities/index.js.map +1 -0
- package/dist/modules/notifications/entities/notification.entity.d.ts +21 -0
- package/dist/modules/notifications/entities/notification.entity.d.ts.map +1 -0
- package/dist/modules/notifications/entities/notification.entity.js +70 -0
- package/dist/modules/notifications/entities/notification.entity.js.map +1 -0
- package/dist/modules/notifications/firebase.module.d.ts +3 -0
- package/dist/modules/notifications/firebase.module.d.ts.map +1 -0
- package/dist/modules/notifications/firebase.module.js +25 -0
- package/dist/modules/notifications/firebase.module.js.map +1 -0
- package/dist/modules/notifications/notifications.manifest.d.ts +9 -0
- package/dist/modules/notifications/notifications.manifest.d.ts.map +1 -0
- package/dist/modules/notifications/notifications.manifest.js +37 -0
- package/dist/modules/notifications/notifications.manifest.js.map +1 -0
- package/dist/modules/notifications/notifications.module.d.ts +3 -0
- package/dist/modules/notifications/notifications.module.d.ts.map +1 -0
- package/dist/modules/notifications/notifications.module.js +32 -0
- package/dist/modules/notifications/notifications.module.js.map +1 -0
- package/dist/modules/notifications/services/fcm.service.d.ts +17 -0
- package/dist/modules/notifications/services/fcm.service.d.ts.map +1 -0
- package/dist/modules/notifications/services/fcm.service.js +150 -0
- package/dist/modules/notifications/services/fcm.service.js.map +1 -0
- package/dist/modules/notifications/services/firebase.service.d.ts +19 -0
- package/dist/modules/notifications/services/firebase.service.d.ts.map +1 -0
- package/dist/modules/notifications/services/firebase.service.js +73 -0
- package/dist/modules/notifications/services/firebase.service.js.map +1 -0
- package/dist/modules/notifications/services/index.d.ts +4 -0
- package/dist/modules/notifications/services/index.d.ts.map +1 -0
- package/dist/modules/notifications/services/index.js +20 -0
- package/dist/modules/notifications/services/index.js.map +1 -0
- package/dist/modules/notifications/services/notifications.service.d.ts +19 -0
- package/dist/modules/notifications/services/notifications.service.d.ts.map +1 -0
- package/dist/modules/notifications/services/notifications.service.js +97 -0
- package/dist/modules/notifications/services/notifications.service.js.map +1 -0
- package/dist/modules/otp/constants/otp.constants.d.ts +4 -0
- package/dist/modules/otp/constants/otp.constants.d.ts.map +1 -0
- package/dist/modules/otp/constants/otp.constants.js +10 -0
- package/dist/modules/otp/constants/otp.constants.js.map +1 -0
- package/dist/modules/otp/email/email-provider.interface.d.ts +14 -0
- package/dist/modules/otp/email/email-provider.interface.d.ts.map +1 -0
- package/dist/modules/otp/email/email-provider.interface.js +15 -0
- package/dist/modules/otp/email/email-provider.interface.js.map +1 -0
- package/dist/modules/otp/email/email-proxy.service.d.ts +21 -0
- package/dist/modules/otp/email/email-proxy.service.d.ts.map +1 -0
- package/dist/modules/otp/email/email-proxy.service.js +67 -0
- package/dist/modules/otp/email/email-proxy.service.js.map +1 -0
- package/dist/modules/otp/email/email.module.d.ts +3 -0
- package/dist/modules/otp/email/email.module.d.ts.map +1 -0
- package/dist/modules/otp/email/email.module.js +33 -0
- package/dist/modules/otp/email/email.module.js.map +1 -0
- package/dist/modules/otp/email/index.d.ts +4 -0
- package/dist/modules/otp/email/index.d.ts.map +1 -0
- package/dist/modules/otp/email/index.js +20 -0
- package/dist/modules/otp/email/index.js.map +1 -0
- package/dist/modules/otp/email/providers/index.d.ts +5 -0
- package/dist/modules/otp/email/providers/index.d.ts.map +1 -0
- package/dist/modules/otp/email/providers/index.js +21 -0
- package/dist/modules/otp/email/providers/index.js.map +1 -0
- package/dist/modules/otp/email/providers/mailgun.provider.d.ts +10 -0
- package/dist/modules/otp/email/providers/mailgun.provider.d.ts.map +1 -0
- package/dist/modules/otp/email/providers/mailgun.provider.js +59 -0
- package/dist/modules/otp/email/providers/mailgun.provider.js.map +1 -0
- package/dist/modules/otp/email/providers/resend.provider.d.ts +10 -0
- package/dist/modules/otp/email/providers/resend.provider.d.ts.map +1 -0
- package/dist/modules/otp/email/providers/resend.provider.js +57 -0
- package/dist/modules/otp/email/providers/resend.provider.js.map +1 -0
- package/dist/modules/otp/email/providers/sendgrid.provider.d.ts +10 -0
- package/dist/modules/otp/email/providers/sendgrid.provider.d.ts.map +1 -0
- package/dist/modules/otp/email/providers/sendgrid.provider.js +58 -0
- package/dist/modules/otp/email/providers/sendgrid.provider.js.map +1 -0
- package/dist/modules/otp/email/providers/smtp.provider.d.ts +15 -0
- package/dist/modules/otp/email/providers/smtp.provider.d.ts.map +1 -0
- package/dist/modules/otp/email/providers/smtp.provider.js +115 -0
- package/dist/modules/otp/email/providers/smtp.provider.js.map +1 -0
- package/dist/modules/otp/index.d.ts +5 -0
- package/dist/modules/otp/index.d.ts.map +1 -0
- package/dist/modules/otp/index.js +21 -0
- package/dist/modules/otp/index.js.map +1 -0
- package/dist/modules/otp/interfaces/otp.service.interface.d.ts +26 -0
- package/dist/modules/otp/interfaces/otp.service.interface.d.ts.map +1 -0
- package/dist/modules/otp/interfaces/otp.service.interface.js +7 -0
- package/dist/modules/otp/interfaces/otp.service.interface.js.map +1 -0
- package/dist/modules/otp/otp.module.d.ts +3 -0
- package/dist/modules/otp/otp.module.d.ts.map +1 -0
- package/dist/modules/otp/otp.module.js +36 -0
- package/dist/modules/otp/otp.module.js.map +1 -0
- package/dist/modules/otp/otp.service.d.ts +25 -0
- package/dist/modules/otp/otp.service.d.ts.map +1 -0
- package/dist/modules/otp/otp.service.js +146 -0
- package/dist/modules/otp/otp.service.js.map +1 -0
- package/dist/modules/otp/services/otp.rate-limiter.d.ts +13 -0
- package/dist/modules/otp/services/otp.rate-limiter.d.ts.map +1 -0
- package/dist/modules/otp/services/otp.rate-limiter.js +70 -0
- package/dist/modules/otp/services/otp.rate-limiter.js.map +1 -0
- package/dist/modules/otp/services/otp.session.store.d.ts +28 -0
- package/dist/modules/otp/services/otp.session.store.d.ts.map +1 -0
- package/dist/modules/otp/services/otp.session.store.js +226 -0
- package/dist/modules/otp/services/otp.session.store.js.map +1 -0
- package/dist/modules/otp/sms/index.d.ts +4 -0
- package/dist/modules/otp/sms/index.d.ts.map +1 -0
- package/dist/modules/otp/sms/index.js +20 -0
- package/dist/modules/otp/sms/index.js.map +1 -0
- package/dist/modules/otp/sms/providers/index.d.ts +5 -0
- package/dist/modules/otp/sms/providers/index.d.ts.map +1 -0
- package/dist/modules/otp/sms/providers/index.js +21 -0
- package/dist/modules/otp/sms/providers/index.js.map +1 -0
- package/dist/modules/otp/sms/providers/infobip.provider.d.ts +10 -0
- package/dist/modules/otp/sms/providers/infobip.provider.d.ts.map +1 -0
- package/dist/modules/otp/sms/providers/infobip.provider.js +61 -0
- package/dist/modules/otp/sms/providers/infobip.provider.js.map +1 -0
- package/dist/modules/otp/sms/providers/smart-sms.provider.d.ts +11 -0
- package/dist/modules/otp/sms/providers/smart-sms.provider.d.ts.map +1 -0
- package/dist/modules/otp/sms/providers/smart-sms.provider.js +56 -0
- package/dist/modules/otp/sms/providers/smart-sms.provider.js.map +1 -0
- package/dist/modules/otp/sms/providers/termii.provider.d.ts +11 -0
- package/dist/modules/otp/sms/providers/termii.provider.d.ts.map +1 -0
- package/dist/modules/otp/sms/providers/termii.provider.js +56 -0
- package/dist/modules/otp/sms/providers/termii.provider.js.map +1 -0
- package/dist/modules/otp/sms/providers/twilio.provider.d.ts +10 -0
- package/dist/modules/otp/sms/providers/twilio.provider.d.ts.map +1 -0
- package/dist/modules/otp/sms/providers/twilio.provider.js +59 -0
- package/dist/modules/otp/sms/providers/twilio.provider.js.map +1 -0
- package/dist/modules/otp/sms/sms-provider.interface.d.ts +12 -0
- package/dist/modules/otp/sms/sms-provider.interface.d.ts.map +1 -0
- package/dist/modules/otp/sms/sms-provider.interface.js +15 -0
- package/dist/modules/otp/sms/sms-provider.interface.js.map +1 -0
- package/dist/modules/otp/sms/sms-proxy.service.d.ts +21 -0
- package/dist/modules/otp/sms/sms-proxy.service.d.ts.map +1 -0
- package/dist/modules/otp/sms/sms-proxy.service.js +67 -0
- package/dist/modules/otp/sms/sms-proxy.service.js.map +1 -0
- package/dist/modules/otp/sms/sms.module.d.ts +3 -0
- package/dist/modules/otp/sms/sms.module.d.ts.map +1 -0
- package/dist/modules/otp/sms/sms.module.js +33 -0
- package/dist/modules/otp/sms/sms.module.js.map +1 -0
- package/dist/modules/otp/utils/otp.utils.d.ts +13 -0
- package/dist/modules/otp/utils/otp.utils.d.ts.map +1 -0
- package/dist/modules/otp/utils/otp.utils.js +57 -0
- package/dist/modules/otp/utils/otp.utils.js.map +1 -0
- package/dist/modules/profile/controllers/profile.controller.d.ts +14 -0
- package/dist/modules/profile/controllers/profile.controller.d.ts.map +1 -0
- package/dist/modules/profile/controllers/profile.controller.js +81 -0
- package/dist/modules/profile/controllers/profile.controller.js.map +1 -0
- package/dist/modules/profile/dto/profile.dto.d.ts +11 -0
- package/dist/modules/profile/dto/profile.dto.d.ts.map +1 -0
- package/dist/modules/profile/dto/profile.dto.js +50 -0
- package/dist/modules/profile/dto/profile.dto.js.map +1 -0
- package/dist/modules/profile/index.d.ts +3 -0
- package/dist/modules/profile/index.d.ts.map +1 -0
- package/dist/modules/profile/index.js +19 -0
- package/dist/modules/profile/index.js.map +1 -0
- package/dist/modules/profile/profile.module.d.ts +3 -0
- package/dist/modules/profile/profile.module.d.ts.map +1 -0
- package/dist/modules/profile/profile.module.js +26 -0
- package/dist/modules/profile/profile.module.js.map +1 -0
- package/dist/modules/profile/services/profile.service.d.ts +16 -0
- package/dist/modules/profile/services/profile.service.d.ts.map +1 -0
- package/dist/modules/profile/services/profile.service.js +64 -0
- package/dist/modules/profile/services/profile.service.js.map +1 -0
- package/dist/modules/roles/controllers/index.d.ts +5 -0
- package/dist/modules/roles/controllers/index.d.ts.map +1 -0
- package/dist/modules/roles/controllers/index.js +12 -0
- package/dist/modules/roles/controllers/index.js.map +1 -0
- package/dist/modules/roles/controllers/modules.controller.d.ts +14 -0
- package/dist/modules/roles/controllers/modules.controller.d.ts.map +1 -0
- package/dist/modules/roles/controllers/modules.controller.js +82 -0
- package/dist/modules/roles/controllers/modules.controller.js.map +1 -0
- package/dist/modules/roles/controllers/permissions.controller.d.ts +14 -0
- package/dist/modules/roles/controllers/permissions.controller.d.ts.map +1 -0
- package/dist/modules/roles/controllers/permissions.controller.js +83 -0
- package/dist/modules/roles/controllers/permissions.controller.js.map +1 -0
- package/dist/modules/roles/controllers/roles.controller.d.ts +17 -0
- package/dist/modules/roles/controllers/roles.controller.d.ts.map +1 -0
- package/dist/modules/roles/controllers/roles.controller.js +93 -0
- package/dist/modules/roles/controllers/roles.controller.js.map +1 -0
- package/dist/modules/roles/controllers/user-roles.controller.d.ts +11 -0
- package/dist/modules/roles/controllers/user-roles.controller.d.ts.map +1 -0
- package/dist/modules/roles/controllers/user-roles.controller.js +94 -0
- package/dist/modules/roles/controllers/user-roles.controller.js.map +1 -0
- package/dist/modules/roles/dto/index.d.ts +4 -0
- package/dist/modules/roles/dto/index.d.ts.map +1 -0
- package/dist/modules/roles/dto/index.js +20 -0
- package/dist/modules/roles/dto/index.js.map +1 -0
- package/dist/modules/roles/dto/module.dto.d.ts +10 -0
- package/dist/modules/roles/dto/module.dto.d.ts.map +1 -0
- package/dist/modules/roles/dto/module.dto.js +48 -0
- package/dist/modules/roles/dto/module.dto.js.map +1 -0
- package/dist/modules/roles/dto/permission.dto.d.ts +14 -0
- package/dist/modules/roles/dto/permission.dto.d.ts.map +1 -0
- package/dist/modules/roles/dto/permission.dto.js +60 -0
- package/dist/modules/roles/dto/permission.dto.js.map +1 -0
- package/dist/modules/roles/dto/role.dto.d.ts +15 -0
- package/dist/modules/roles/dto/role.dto.d.ts.map +1 -0
- package/dist/modules/roles/dto/role.dto.js +65 -0
- package/dist/modules/roles/dto/role.dto.js.map +1 -0
- package/dist/modules/roles/entities/index.d.ts +4 -0
- package/dist/modules/roles/entities/index.d.ts.map +1 -0
- package/dist/modules/roles/entities/index.js +10 -0
- package/dist/modules/roles/entities/index.js.map +1 -0
- package/dist/modules/roles/entities/module.entity.d.ts +9 -0
- package/dist/modules/roles/entities/module.entity.d.ts.map +1 -0
- package/dist/modules/roles/entities/module.entity.js +39 -0
- package/dist/modules/roles/entities/module.entity.js.map +1 -0
- package/dist/modules/roles/entities/permission.entity.d.ts +12 -0
- package/dist/modules/roles/entities/permission.entity.d.ts.map +1 -0
- package/dist/modules/roles/entities/permission.entity.js +49 -0
- package/dist/modules/roles/entities/permission.entity.js.map +1 -0
- package/dist/modules/roles/entities/role.entity.d.ts +11 -0
- package/dist/modules/roles/entities/role.entity.d.ts.map +1 -0
- package/dist/modules/roles/entities/role.entity.js +49 -0
- package/dist/modules/roles/entities/role.entity.js.map +1 -0
- package/dist/modules/roles/index.d.ts +7 -0
- package/dist/modules/roles/index.d.ts.map +1 -0
- package/dist/modules/roles/index.js +25 -0
- package/dist/modules/roles/index.js.map +1 -0
- package/dist/modules/roles/registry/discover-manifests.d.ts +3 -0
- package/dist/modules/roles/registry/discover-manifests.d.ts.map +1 -0
- package/dist/modules/roles/registry/discover-manifests.js +83 -0
- package/dist/modules/roles/registry/discover-manifests.js.map +1 -0
- package/dist/modules/roles/registry/index.d.ts +3 -0
- package/dist/modules/roles/registry/index.d.ts.map +1 -0
- package/dist/modules/roles/registry/index.js +8 -0
- package/dist/modules/roles/registry/index.js.map +1 -0
- package/dist/modules/roles/registry/sync-manifests-to-db.d.ts +7 -0
- package/dist/modules/roles/registry/sync-manifests-to-db.d.ts.map +1 -0
- package/dist/modules/roles/registry/sync-manifests-to-db.js +52 -0
- package/dist/modules/roles/registry/sync-manifests-to-db.js.map +1 -0
- package/dist/modules/roles/roles.manifest.d.ts +12 -0
- package/dist/modules/roles/roles.manifest.d.ts.map +1 -0
- package/dist/modules/roles/roles.manifest.js +51 -0
- package/dist/modules/roles/roles.manifest.js.map +1 -0
- package/dist/modules/roles/roles.module.d.ts +8 -0
- package/dist/modules/roles/roles.module.d.ts.map +1 -0
- package/dist/modules/roles/roles.module.js +43 -0
- package/dist/modules/roles/roles.module.js.map +1 -0
- package/dist/modules/roles/services/index.d.ts +6 -0
- package/dist/modules/roles/services/index.d.ts.map +1 -0
- package/dist/modules/roles/services/index.js +14 -0
- package/dist/modules/roles/services/index.js.map +1 -0
- package/dist/modules/roles/services/manifest-sync.service.d.ts +11 -0
- package/dist/modules/roles/services/manifest-sync.service.d.ts.map +1 -0
- package/dist/modules/roles/services/manifest-sync.service.js +38 -0
- package/dist/modules/roles/services/manifest-sync.service.js.map +1 -0
- package/dist/modules/roles/services/modules.service.d.ts +14 -0
- package/dist/modules/roles/services/modules.service.d.ts.map +1 -0
- package/dist/modules/roles/services/modules.service.js +69 -0
- package/dist/modules/roles/services/modules.service.js.map +1 -0
- package/dist/modules/roles/services/permissions.service.d.ts +14 -0
- package/dist/modules/roles/services/permissions.service.d.ts.map +1 -0
- package/dist/modules/roles/services/permissions.service.js +72 -0
- package/dist/modules/roles/services/permissions.service.js.map +1 -0
- package/dist/modules/roles/services/roles.service.d.ts +17 -0
- package/dist/modules/roles/services/roles.service.d.ts.map +1 -0
- package/dist/modules/roles/services/roles.service.js +100 -0
- package/dist/modules/roles/services/roles.service.js.map +1 -0
- package/dist/modules/roles/services/user-roles.service.d.ts +15 -0
- package/dist/modules/roles/services/user-roles.service.d.ts.map +1 -0
- package/dist/modules/roles/services/user-roles.service.js +88 -0
- package/dist/modules/roles/services/user-roles.service.js.map +1 -0
- package/dist/modules/roles/types/manifest.types.d.ts +12 -0
- package/dist/modules/roles/types/manifest.types.d.ts.map +1 -0
- package/dist/modules/roles/types/manifest.types.js +3 -0
- package/dist/modules/roles/types/manifest.types.js.map +1 -0
- package/dist/modules/sessions/controllers/session.controller.d.ts +17 -0
- package/dist/modules/sessions/controllers/session.controller.d.ts.map +1 -0
- package/dist/modules/sessions/controllers/session.controller.js +95 -0
- package/dist/modules/sessions/controllers/session.controller.js.map +1 -0
- package/dist/modules/sessions/entities/refresh-token.entity.d.ts +21 -0
- package/dist/modules/sessions/entities/refresh-token.entity.d.ts.map +1 -0
- package/dist/modules/sessions/entities/refresh-token.entity.js +77 -0
- package/dist/modules/sessions/entities/refresh-token.entity.js.map +1 -0
- package/dist/modules/sessions/index.d.ts +4 -0
- package/dist/modules/sessions/index.d.ts.map +1 -0
- package/dist/modules/sessions/index.js +20 -0
- package/dist/modules/sessions/index.js.map +1 -0
- package/dist/modules/sessions/services/token.service.d.ts +42 -0
- package/dist/modules/sessions/services/token.service.d.ts.map +1 -0
- package/dist/modules/sessions/services/token.service.js +253 -0
- package/dist/modules/sessions/services/token.service.js.map +1 -0
- package/dist/modules/sessions/sessions.module.d.ts +3 -0
- package/dist/modules/sessions/sessions.module.d.ts.map +1 -0
- package/dist/modules/sessions/sessions.module.js +28 -0
- package/dist/modules/sessions/sessions.module.js.map +1 -0
- package/dist/modules/settings/constants/settings.defaults.d.ts +60 -0
- package/dist/modules/settings/constants/settings.defaults.d.ts.map +1 -0
- package/dist/modules/settings/constants/settings.defaults.js +78 -0
- package/dist/modules/settings/constants/settings.defaults.js.map +1 -0
- package/dist/modules/settings/constants/settings.keys.d.ts +56 -0
- package/dist/modules/settings/constants/settings.keys.d.ts.map +1 -0
- package/dist/modules/settings/constants/settings.keys.js +58 -0
- package/dist/modules/settings/constants/settings.keys.js.map +1 -0
- package/dist/modules/settings/controllers/settings.controller.d.ts +13 -0
- package/dist/modules/settings/controllers/settings.controller.d.ts.map +1 -0
- package/dist/modules/settings/controllers/settings.controller.js +91 -0
- package/dist/modules/settings/controllers/settings.controller.js.map +1 -0
- package/dist/modules/settings/dto/settings.dto.d.ts +4 -0
- package/dist/modules/settings/dto/settings.dto.d.ts.map +1 -0
- package/dist/modules/settings/dto/settings.dto.js +24 -0
- package/dist/modules/settings/dto/settings.dto.js.map +1 -0
- package/dist/modules/settings/entities/app-setting.entity.d.ts +13 -0
- package/dist/modules/settings/entities/app-setting.entity.d.ts.map +1 -0
- package/dist/modules/settings/entities/app-setting.entity.js +56 -0
- package/dist/modules/settings/entities/app-setting.entity.js.map +1 -0
- package/dist/modules/settings/index.d.ts +8 -0
- package/dist/modules/settings/index.d.ts.map +1 -0
- package/dist/modules/settings/index.js +24 -0
- package/dist/modules/settings/index.js.map +1 -0
- package/dist/modules/settings/services/settings.service.d.ts +23 -0
- package/dist/modules/settings/services/settings.service.d.ts.map +1 -0
- package/dist/modules/settings/services/settings.service.js +116 -0
- package/dist/modules/settings/services/settings.service.js.map +1 -0
- package/dist/modules/settings/settings.manifest.d.ts +7 -0
- package/dist/modules/settings/settings.manifest.d.ts.map +1 -0
- package/dist/modules/settings/settings.manifest.js +25 -0
- package/dist/modules/settings/settings.manifest.js.map +1 -0
- package/dist/modules/settings/settings.module.d.ts +3 -0
- package/dist/modules/settings/settings.module.d.ts.map +1 -0
- package/dist/modules/settings/settings.module.js +27 -0
- package/dist/modules/settings/settings.module.js.map +1 -0
- package/dist/modules/users/controllers/users.controller.d.ts +41 -0
- package/dist/modules/users/controllers/users.controller.d.ts.map +1 -0
- package/dist/modules/users/controllers/users.controller.js +273 -0
- package/dist/modules/users/controllers/users.controller.js.map +1 -0
- package/dist/modules/users/dto/user.dto.d.ts +52 -0
- package/dist/modules/users/dto/user.dto.d.ts.map +1 -0
- package/dist/modules/users/dto/user.dto.js +139 -0
- package/dist/modules/users/dto/user.dto.js.map +1 -0
- package/dist/modules/users/entities/user.entity.d.ts +33 -0
- package/dist/modules/users/entities/user.entity.d.ts.map +1 -0
- package/dist/modules/users/entities/user.entity.js +130 -0
- package/dist/modules/users/entities/user.entity.js.map +1 -0
- package/dist/modules/users/index.d.ts +7 -0
- package/dist/modules/users/index.d.ts.map +1 -0
- package/dist/modules/users/index.js +23 -0
- package/dist/modules/users/index.js.map +1 -0
- package/dist/modules/users/services/invite.service.d.ts +35 -0
- package/dist/modules/users/services/invite.service.d.ts.map +1 -0
- package/dist/modules/users/services/invite.service.js +236 -0
- package/dist/modules/users/services/invite.service.js.map +1 -0
- package/dist/modules/users/services/users.service.d.ts +40 -0
- package/dist/modules/users/services/users.service.d.ts.map +1 -0
- package/dist/modules/users/services/users.service.js +239 -0
- package/dist/modules/users/services/users.service.js.map +1 -0
- package/dist/modules/users/users.manifest.d.ts +12 -0
- package/dist/modules/users/users.manifest.d.ts.map +1 -0
- package/dist/modules/users/users.manifest.js +43 -0
- package/dist/modules/users/users.manifest.js.map +1 -0
- package/dist/modules/users/users.module.d.ts +3 -0
- package/dist/modules/users/users.module.d.ts.map +1 -0
- package/dist/modules/users/users.module.js +36 -0
- package/dist/modules/users/users.module.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +140 -0
|
@@ -0,0 +1,450 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SettingsSeed = void 0;
|
|
4
|
+
const app_setting_entity_1 = require("../../modules/settings/entities/app-setting.entity");
|
|
5
|
+
const settings_keys_1 = require("../../modules/settings/constants/settings.keys");
|
|
6
|
+
const settings_defaults_1 = require("../../modules/settings/constants/settings.defaults");
|
|
7
|
+
class SettingsSeed {
|
|
8
|
+
constructor(dataSource) {
|
|
9
|
+
this.dataSource = dataSource;
|
|
10
|
+
this.repo = this.dataSource.getRepository(app_setting_entity_1.AppSetting);
|
|
11
|
+
}
|
|
12
|
+
async run() {
|
|
13
|
+
console.log('🌱 Seeding app settings...');
|
|
14
|
+
const defaults = this.buildDefaults();
|
|
15
|
+
let inserted = 0;
|
|
16
|
+
for (const setting of defaults) {
|
|
17
|
+
const existing = await this.repo.findOne({ where: { key: setting.key } });
|
|
18
|
+
if (!existing) {
|
|
19
|
+
await this.repo.save(this.repo.create(setting));
|
|
20
|
+
inserted++;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
console.log(` ✓ Inserted ${inserted} new setting(s) (${defaults.length - inserted} already existed)`);
|
|
24
|
+
console.log('✅ Settings seeding completed');
|
|
25
|
+
}
|
|
26
|
+
buildDefaults() {
|
|
27
|
+
return [
|
|
28
|
+
{
|
|
29
|
+
key: settings_keys_1.SETTING_KEYS.OTP_TTL_SECONDS,
|
|
30
|
+
value: String(settings_defaults_1.SETTING_DEFAULTS['otp.ttl_seconds']),
|
|
31
|
+
type: 'integer',
|
|
32
|
+
group: 'otp',
|
|
33
|
+
description: 'OTP session lifetime in seconds before it expires.',
|
|
34
|
+
isEditable: true,
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
key: settings_keys_1.SETTING_KEYS.OTP_MAX_ATTEMPTS,
|
|
38
|
+
value: String(settings_defaults_1.SETTING_DEFAULTS['otp.max_attempts']),
|
|
39
|
+
type: 'integer',
|
|
40
|
+
group: 'otp',
|
|
41
|
+
description: 'Maximum wrong-code attempts before the session is locked out.',
|
|
42
|
+
isEditable: true,
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
key: settings_keys_1.SETTING_KEYS.OTP_RESEND_COOLDOWN_SECONDS,
|
|
46
|
+
value: String(settings_defaults_1.SETTING_DEFAULTS['otp.resend_cooldown_seconds']),
|
|
47
|
+
type: 'integer',
|
|
48
|
+
group: 'otp',
|
|
49
|
+
description: 'Minimum seconds a user must wait between OTP resend requests.',
|
|
50
|
+
isEditable: true,
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
key: settings_keys_1.SETTING_KEYS.OTP_RATE_LIMIT_MAX,
|
|
54
|
+
value: String(settings_defaults_1.SETTING_DEFAULTS['otp.rate_limit_max']),
|
|
55
|
+
type: 'integer',
|
|
56
|
+
group: 'otp',
|
|
57
|
+
description: 'Max OTP sends per identifier within the rate-limit window.',
|
|
58
|
+
isEditable: true,
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
key: settings_keys_1.SETTING_KEYS.OTP_RATE_LIMIT_WINDOW_SECONDS,
|
|
62
|
+
value: String(settings_defaults_1.SETTING_DEFAULTS['otp.rate_limit_window_seconds']),
|
|
63
|
+
type: 'integer',
|
|
64
|
+
group: 'otp',
|
|
65
|
+
description: 'Rolling window in seconds for the per-identifier OTP rate limit.',
|
|
66
|
+
isEditable: true,
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
key: settings_keys_1.SETTING_KEYS.OTP_IP_RATE_LIMIT_MAX,
|
|
70
|
+
value: String(settings_defaults_1.SETTING_DEFAULTS['otp.ip_rate_limit_max']),
|
|
71
|
+
type: 'integer',
|
|
72
|
+
group: 'otp',
|
|
73
|
+
description: 'Max OTP requests per IP within the rate-limit window. Prevents credit-drain enumeration attacks.',
|
|
74
|
+
isEditable: true,
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
key: settings_keys_1.SETTING_KEYS.OTP_IP_RATE_LIMIT_WINDOW_SECONDS,
|
|
78
|
+
value: String(settings_defaults_1.SETTING_DEFAULTS['otp.ip_rate_limit_window_seconds']),
|
|
79
|
+
type: 'integer',
|
|
80
|
+
group: 'otp',
|
|
81
|
+
description: 'Rolling window in seconds for the per-IP OTP rate limit. Independent from the per-identifier window.',
|
|
82
|
+
isEditable: true,
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
key: settings_keys_1.SETTING_KEYS.OTP_SMS_TEMPLATE,
|
|
86
|
+
value: settings_defaults_1.SETTING_DEFAULTS['otp.sms_template'],
|
|
87
|
+
type: 'string',
|
|
88
|
+
group: 'otp',
|
|
89
|
+
description: 'SMS body text. Use {code} as the placeholder for the OTP code.',
|
|
90
|
+
isEditable: true,
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
key: settings_keys_1.SETTING_KEYS.OTP_EMAIL_SUBJECT,
|
|
94
|
+
value: settings_defaults_1.SETTING_DEFAULTS['otp.email_subject'],
|
|
95
|
+
type: 'string',
|
|
96
|
+
group: 'otp',
|
|
97
|
+
description: 'Email subject line for OTP delivery.',
|
|
98
|
+
isEditable: true,
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
key: settings_keys_1.SETTING_KEYS.OTP_EMAIL_HTML_TEMPLATE,
|
|
102
|
+
value: settings_defaults_1.SETTING_DEFAULTS['otp.email_html_template'],
|
|
103
|
+
type: 'string',
|
|
104
|
+
group: 'otp',
|
|
105
|
+
description: 'HTML email body for OTP delivery. Use {code} as the placeholder.',
|
|
106
|
+
isEditable: true,
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
key: settings_keys_1.SETTING_KEYS.OTP_EMAIL_TEXT_TEMPLATE,
|
|
110
|
+
value: settings_defaults_1.SETTING_DEFAULTS['otp.email_text_template'],
|
|
111
|
+
type: 'string',
|
|
112
|
+
group: 'otp',
|
|
113
|
+
description: 'Plain-text email fallback for OTP delivery. Use {code} as the placeholder.',
|
|
114
|
+
isEditable: true,
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
key: settings_keys_1.SETTING_KEYS.TOKENS_REFRESH_TTL_DAYS,
|
|
118
|
+
value: String(settings_defaults_1.SETTING_DEFAULTS['tokens.refresh_ttl_days']),
|
|
119
|
+
type: 'integer',
|
|
120
|
+
group: 'tokens',
|
|
121
|
+
description: 'Refresh token lifetime in days.',
|
|
122
|
+
isEditable: true,
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
key: settings_keys_1.SETTING_KEYS.TOKENS_TEMPORARY_TTL_SECONDS,
|
|
126
|
+
value: String(settings_defaults_1.SETTING_DEFAULTS['tokens.temporary_ttl_seconds']),
|
|
127
|
+
type: 'integer',
|
|
128
|
+
group: 'tokens',
|
|
129
|
+
description: 'Post-OTP bridge token lifetime in seconds (used between verify-otp and login/register).',
|
|
130
|
+
isEditable: true,
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
key: settings_keys_1.SETTING_KEYS.TOKENS_ACCESS_EXPIRES_IN,
|
|
134
|
+
value: settings_defaults_1.SETTING_DEFAULTS['tokens.access_expires_in'],
|
|
135
|
+
type: 'string',
|
|
136
|
+
group: 'tokens',
|
|
137
|
+
description: 'JWT access token expiry. Use duration strings: "15m", "1h", "24h".',
|
|
138
|
+
isEditable: true,
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
key: settings_keys_1.SETTING_KEYS.TOKENS_INVITE_TTL_DAYS,
|
|
142
|
+
value: String(settings_defaults_1.SETTING_DEFAULTS['tokens.invite_ttl_days']),
|
|
143
|
+
type: 'integer',
|
|
144
|
+
group: 'tokens',
|
|
145
|
+
description: 'Invite link lifetime in days before it expires.',
|
|
146
|
+
isEditable: true,
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
key: settings_keys_1.SETTING_KEYS.TOKENS_PASSWORD_RESET_TTL_SECONDS,
|
|
150
|
+
value: String(settings_defaults_1.SETTING_DEFAULTS['tokens.password_reset_ttl_seconds']),
|
|
151
|
+
type: 'integer',
|
|
152
|
+
group: 'tokens',
|
|
153
|
+
description: 'Password reset token lifetime in seconds.',
|
|
154
|
+
isEditable: true,
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
key: settings_keys_1.SETTING_KEYS.TEST_OTP_IDENTIFIERS,
|
|
158
|
+
value: JSON.stringify([]),
|
|
159
|
+
type: 'json',
|
|
160
|
+
group: 'test',
|
|
161
|
+
description: 'Test OTP identifiers that bypass rate limiting and delivery in non-production environments. ' +
|
|
162
|
+
'Schema: [{ identifier: string, channel: "sms"|"email", code: string }]. ' +
|
|
163
|
+
'Hard-disabled when NODE_ENV=production. Manage directly in this table.',
|
|
164
|
+
isEditable: true,
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
key: settings_keys_1.SETTING_KEYS.AUTH_PROVIDER,
|
|
168
|
+
value: settings_defaults_1.SETTING_DEFAULTS['auth.provider'],
|
|
169
|
+
type: 'string',
|
|
170
|
+
group: 'auth',
|
|
171
|
+
description: 'Active auth provider. Values: "native" | "keycloak".',
|
|
172
|
+
isEditable: true,
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
key: settings_keys_1.SETTING_KEYS.AUTH_METHOD,
|
|
176
|
+
value: settings_defaults_1.SETTING_DEFAULTS['auth.method'],
|
|
177
|
+
type: 'string',
|
|
178
|
+
group: 'auth',
|
|
179
|
+
description: 'Primary identity mechanism. "phone" = phone OTP required; "email" = email + password required.',
|
|
180
|
+
isEditable: true,
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
key: settings_keys_1.SETTING_KEYS.AUTH_DEFAULT_ROLE_SLUG,
|
|
184
|
+
value: settings_defaults_1.SETTING_DEFAULTS['auth.default_role_slug'],
|
|
185
|
+
type: 'string',
|
|
186
|
+
group: 'auth',
|
|
187
|
+
description: 'Slug of the role automatically assigned to every self-registered user. Leave blank to assign no role.',
|
|
188
|
+
isEditable: true,
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
key: settings_keys_1.SETTING_KEYS.LOGIN_IP_RATE_LIMIT_MAX,
|
|
192
|
+
value: String(settings_defaults_1.SETTING_DEFAULTS['login.ip_rate_limit_max']),
|
|
193
|
+
type: 'integer',
|
|
194
|
+
group: 'login',
|
|
195
|
+
description: 'Max login attempts allowed per IP within the rate-limit window before returning 429.',
|
|
196
|
+
isEditable: true,
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
key: settings_keys_1.SETTING_KEYS.LOGIN_IP_RATE_LIMIT_WINDOW_SECONDS,
|
|
200
|
+
value: String(settings_defaults_1.SETTING_DEFAULTS['login.ip_rate_limit_window_seconds']),
|
|
201
|
+
type: 'integer',
|
|
202
|
+
group: 'login',
|
|
203
|
+
description: 'Rolling window in seconds for the per-IP login rate limit.',
|
|
204
|
+
isEditable: true,
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
key: settings_keys_1.SETTING_KEYS.LOGIN_LOCKOUT_MAX_ATTEMPTS,
|
|
208
|
+
value: String(settings_defaults_1.SETTING_DEFAULTS['login.lockout_max_attempts']),
|
|
209
|
+
type: 'integer',
|
|
210
|
+
group: 'login',
|
|
211
|
+
description: 'Number of consecutive failed password attempts before the identifier (email) is temporarily locked.',
|
|
212
|
+
isEditable: true,
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
key: settings_keys_1.SETTING_KEYS.LOGIN_LOCKOUT_DURATION_SECONDS,
|
|
216
|
+
value: String(settings_defaults_1.SETTING_DEFAULTS['login.lockout_duration_seconds']),
|
|
217
|
+
type: 'integer',
|
|
218
|
+
group: 'login',
|
|
219
|
+
description: 'How long (seconds) an identifier remains locked after exceeding the max failed attempts.',
|
|
220
|
+
isEditable: true,
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
key: settings_keys_1.SETTING_KEYS.HEALTH_MAX_HEAP_MB,
|
|
224
|
+
value: String(settings_defaults_1.SETTING_DEFAULTS['health.max_heap_mb']),
|
|
225
|
+
type: 'integer',
|
|
226
|
+
group: 'health',
|
|
227
|
+
description: 'Node.js heap threshold in MB. Health check warns when exceeded.',
|
|
228
|
+
isEditable: true,
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
key: settings_keys_1.SETTING_KEYS.HEALTH_MAX_RSS_MB,
|
|
232
|
+
value: String(settings_defaults_1.SETTING_DEFAULTS['health.max_rss_mb']),
|
|
233
|
+
type: 'integer',
|
|
234
|
+
group: 'health',
|
|
235
|
+
description: 'Process RSS threshold in MB. Health check warns when exceeded.',
|
|
236
|
+
isEditable: true,
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
key: settings_keys_1.SETTING_KEYS.HEALTH_QUEUE_DEPTH_THRESHOLD,
|
|
240
|
+
value: String(settings_defaults_1.SETTING_DEFAULTS['health.queue_depth_threshold']),
|
|
241
|
+
type: 'integer',
|
|
242
|
+
group: 'health',
|
|
243
|
+
description: 'BullMQ queue depth threshold. Health check warns above this.',
|
|
244
|
+
isEditable: true,
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
key: settings_keys_1.SETTING_KEYS.SMS_ACTIVE_PROVIDER,
|
|
248
|
+
value: settings_defaults_1.SETTING_DEFAULTS['sms.active_provider'],
|
|
249
|
+
type: 'string',
|
|
250
|
+
group: 'sms',
|
|
251
|
+
description: 'Active SMS gateway. Values: "twilio" | "termii" | "infobip" | "smartsms".',
|
|
252
|
+
isEditable: true,
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
key: settings_keys_1.SETTING_KEYS.SMS_TWILIO_ACCOUNT_SID,
|
|
256
|
+
value: settings_defaults_1.SETTING_DEFAULTS['sms.twilio_account_sid'],
|
|
257
|
+
type: 'string',
|
|
258
|
+
group: 'sms',
|
|
259
|
+
description: 'Twilio account SID (starts with AC...). Keep this value secure.',
|
|
260
|
+
isEditable: true,
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
key: settings_keys_1.SETTING_KEYS.SMS_TWILIO_AUTH_TOKEN,
|
|
264
|
+
value: settings_defaults_1.SETTING_DEFAULTS['sms.twilio_auth_token'],
|
|
265
|
+
type: 'string',
|
|
266
|
+
group: 'sms',
|
|
267
|
+
description: 'Twilio auth token. Keep this value secure.',
|
|
268
|
+
isEditable: true,
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
key: settings_keys_1.SETTING_KEYS.SMS_TWILIO_FROM_NUMBER,
|
|
272
|
+
value: settings_defaults_1.SETTING_DEFAULTS['sms.twilio_from_number'],
|
|
273
|
+
type: 'string',
|
|
274
|
+
group: 'sms',
|
|
275
|
+
description: 'Twilio sender phone number in E.164 format (e.g. +15005550006).',
|
|
276
|
+
isEditable: true,
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
key: settings_keys_1.SETTING_KEYS.SMS_TERMII_API_KEY,
|
|
280
|
+
value: settings_defaults_1.SETTING_DEFAULTS['sms.termii_api_key'],
|
|
281
|
+
type: 'string',
|
|
282
|
+
group: 'sms',
|
|
283
|
+
description: 'Termii API key. Keep this value secure.',
|
|
284
|
+
isEditable: true,
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
key: settings_keys_1.SETTING_KEYS.SMS_TERMII_SENDER_ID,
|
|
288
|
+
value: settings_defaults_1.SETTING_DEFAULTS['sms.termii_sender_id'],
|
|
289
|
+
type: 'string',
|
|
290
|
+
group: 'sms',
|
|
291
|
+
description: 'Termii sender ID shown to recipients.',
|
|
292
|
+
isEditable: true,
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
key: settings_keys_1.SETTING_KEYS.SMS_INFOBIP_API_KEY,
|
|
296
|
+
value: settings_defaults_1.SETTING_DEFAULTS['sms.infobip_api_key'],
|
|
297
|
+
type: 'string',
|
|
298
|
+
group: 'sms',
|
|
299
|
+
description: 'Infobip API key. Keep this value secure.',
|
|
300
|
+
isEditable: true,
|
|
301
|
+
},
|
|
302
|
+
{
|
|
303
|
+
key: settings_keys_1.SETTING_KEYS.SMS_INFOBIP_BASE_URL,
|
|
304
|
+
value: settings_defaults_1.SETTING_DEFAULTS['sms.infobip_base_url'],
|
|
305
|
+
type: 'string',
|
|
306
|
+
group: 'sms',
|
|
307
|
+
description: 'Infobip base URL (e.g. https://XXXXX.api.infobip.com).',
|
|
308
|
+
isEditable: true,
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
key: settings_keys_1.SETTING_KEYS.SMS_INFOBIP_SENDER_ID,
|
|
312
|
+
value: settings_defaults_1.SETTING_DEFAULTS['sms.infobip_sender_id'],
|
|
313
|
+
type: 'string',
|
|
314
|
+
group: 'sms',
|
|
315
|
+
description: 'Infobip sender ID shown to recipients.',
|
|
316
|
+
isEditable: true,
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
key: settings_keys_1.SETTING_KEYS.SMS_SMARTSMS_TOKEN,
|
|
320
|
+
value: settings_defaults_1.SETTING_DEFAULTS['sms.smartsms_token'],
|
|
321
|
+
type: 'string',
|
|
322
|
+
group: 'sms',
|
|
323
|
+
description: 'SmartSMS auth token. Keep this value secure.',
|
|
324
|
+
isEditable: true,
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
key: settings_keys_1.SETTING_KEYS.SMS_SMARTSMS_SENDER_ID,
|
|
328
|
+
value: settings_defaults_1.SETTING_DEFAULTS['sms.smartsms_sender_id'],
|
|
329
|
+
type: 'string',
|
|
330
|
+
group: 'sms',
|
|
331
|
+
description: 'SmartSMS sender ID shown to recipients.',
|
|
332
|
+
isEditable: true,
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
key: settings_keys_1.SETTING_KEYS.EMAIL_ACTIVE_PROVIDER,
|
|
336
|
+
value: settings_defaults_1.SETTING_DEFAULTS['email.active_provider'],
|
|
337
|
+
type: 'string',
|
|
338
|
+
group: 'email',
|
|
339
|
+
description: 'Active email gateway. Values: "resend" | "sendgrid" | "mailgun" | "smtp".',
|
|
340
|
+
isEditable: true,
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
key: settings_keys_1.SETTING_KEYS.EMAIL_FROM_ADDRESS,
|
|
344
|
+
value: settings_defaults_1.SETTING_DEFAULTS['email.from_address'],
|
|
345
|
+
type: 'string',
|
|
346
|
+
group: 'email',
|
|
347
|
+
description: 'From address used for all outbound emails (e.g. noreply@example.com).',
|
|
348
|
+
isEditable: true,
|
|
349
|
+
},
|
|
350
|
+
{
|
|
351
|
+
key: settings_keys_1.SETTING_KEYS.EMAIL_RESEND_API_KEY,
|
|
352
|
+
value: settings_defaults_1.SETTING_DEFAULTS['email.resend_api_key'],
|
|
353
|
+
type: 'string',
|
|
354
|
+
group: 'email',
|
|
355
|
+
description: 'Resend API key. Keep this value secure.',
|
|
356
|
+
isEditable: true,
|
|
357
|
+
},
|
|
358
|
+
{
|
|
359
|
+
key: settings_keys_1.SETTING_KEYS.EMAIL_SENDGRID_API_KEY,
|
|
360
|
+
value: settings_defaults_1.SETTING_DEFAULTS['email.sendgrid_api_key'],
|
|
361
|
+
type: 'string',
|
|
362
|
+
group: 'email',
|
|
363
|
+
description: 'SendGrid API key. Keep this value secure.',
|
|
364
|
+
isEditable: true,
|
|
365
|
+
},
|
|
366
|
+
{
|
|
367
|
+
key: settings_keys_1.SETTING_KEYS.EMAIL_MAILGUN_API_KEY,
|
|
368
|
+
value: settings_defaults_1.SETTING_DEFAULTS['email.mailgun_api_key'],
|
|
369
|
+
type: 'string',
|
|
370
|
+
group: 'email',
|
|
371
|
+
description: 'Mailgun API key. Keep this value secure.',
|
|
372
|
+
isEditable: true,
|
|
373
|
+
},
|
|
374
|
+
{
|
|
375
|
+
key: settings_keys_1.SETTING_KEYS.EMAIL_MAILGUN_DOMAIN,
|
|
376
|
+
value: settings_defaults_1.SETTING_DEFAULTS['email.mailgun_domain'],
|
|
377
|
+
type: 'string',
|
|
378
|
+
group: 'email',
|
|
379
|
+
description: 'Mailgun sending domain (e.g. mg.example.com). Required when email.active_provider=mailgun.',
|
|
380
|
+
isEditable: true,
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
key: settings_keys_1.SETTING_KEYS.EMAIL_SMTP_HOST,
|
|
384
|
+
value: settings_defaults_1.SETTING_DEFAULTS['email.smtp_host'],
|
|
385
|
+
type: 'string',
|
|
386
|
+
group: 'email',
|
|
387
|
+
description: 'SMTP server host. Required when email.active_provider=smtp.',
|
|
388
|
+
isEditable: true,
|
|
389
|
+
},
|
|
390
|
+
{
|
|
391
|
+
key: settings_keys_1.SETTING_KEYS.EMAIL_SMTP_PORT,
|
|
392
|
+
value: String(settings_defaults_1.SETTING_DEFAULTS['email.smtp_port']),
|
|
393
|
+
type: 'integer',
|
|
394
|
+
group: 'email',
|
|
395
|
+
description: 'SMTP port. 587 = STARTTLS (default), 465 = SSL, 25 = plain.',
|
|
396
|
+
isEditable: true,
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
key: settings_keys_1.SETTING_KEYS.EMAIL_SMTP_USER,
|
|
400
|
+
value: settings_defaults_1.SETTING_DEFAULTS['email.smtp_user'],
|
|
401
|
+
type: 'string',
|
|
402
|
+
group: 'email',
|
|
403
|
+
description: 'SMTP username / login address.',
|
|
404
|
+
isEditable: true,
|
|
405
|
+
},
|
|
406
|
+
{
|
|
407
|
+
key: settings_keys_1.SETTING_KEYS.EMAIL_SMTP_PASS,
|
|
408
|
+
value: settings_defaults_1.SETTING_DEFAULTS['email.smtp_pass'],
|
|
409
|
+
type: 'string',
|
|
410
|
+
group: 'email',
|
|
411
|
+
description: 'SMTP password. Keep this value secure.',
|
|
412
|
+
isEditable: true,
|
|
413
|
+
},
|
|
414
|
+
{
|
|
415
|
+
key: settings_keys_1.SETTING_KEYS.FIREBASE_PROJECT_ID,
|
|
416
|
+
value: settings_defaults_1.SETTING_DEFAULTS['firebase.project_id'],
|
|
417
|
+
type: 'string',
|
|
418
|
+
group: 'firebase',
|
|
419
|
+
description: 'Firebase project ID. Required for push notifications.',
|
|
420
|
+
isEditable: true,
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
key: settings_keys_1.SETTING_KEYS.FIREBASE_CLIENT_EMAIL,
|
|
424
|
+
value: settings_defaults_1.SETTING_DEFAULTS['firebase.client_email'],
|
|
425
|
+
type: 'string',
|
|
426
|
+
group: 'firebase',
|
|
427
|
+
description: 'Firebase service account client email.',
|
|
428
|
+
isEditable: true,
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
key: settings_keys_1.SETTING_KEYS.FIREBASE_PRIVATE_KEY,
|
|
432
|
+
value: settings_defaults_1.SETTING_DEFAULTS['firebase.private_key'],
|
|
433
|
+
type: 'string',
|
|
434
|
+
group: 'firebase',
|
|
435
|
+
description: 'Firebase service account private key (PEM). Keep this value secure.',
|
|
436
|
+
isEditable: true,
|
|
437
|
+
},
|
|
438
|
+
{
|
|
439
|
+
key: settings_keys_1.SETTING_KEYS.FIREBASE_API_KEY,
|
|
440
|
+
value: settings_defaults_1.SETTING_DEFAULTS['firebase.api_key'],
|
|
441
|
+
type: 'string',
|
|
442
|
+
group: 'firebase',
|
|
443
|
+
description: 'Firebase web API key (used by client SDKs).',
|
|
444
|
+
isEditable: true,
|
|
445
|
+
},
|
|
446
|
+
];
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
exports.SettingsSeed = SettingsSeed;
|
|
450
|
+
//# sourceMappingURL=settings.seed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"settings.seed.js","sourceRoot":"","sources":["../../../database/seeds/settings.seed.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.seed.d.ts","sourceRoot":"","sources":["../../../database/seeds/user.seed.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAc,MAAM,SAAS,CAAC;AAGjD,qBAAa,QAAQ;IAGR,OAAO,CAAC,UAAU;IAF9B,OAAO,CAAC,cAAc,CAAmB;gBAErB,UAAU,EAAE,UAAU;IAIpC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;YAYZ,eAAe;CA8C7B"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.UserSeed = void 0;
|
|
37
|
+
const argon2 = __importStar(require("argon2"));
|
|
38
|
+
const user_entity_1 = require("../../modules/users/entities/user.entity");
|
|
39
|
+
class UserSeed {
|
|
40
|
+
constructor(dataSource) {
|
|
41
|
+
this.dataSource = dataSource;
|
|
42
|
+
this.userRepository = this.dataSource.getRepository(user_entity_1.User);
|
|
43
|
+
}
|
|
44
|
+
async run() {
|
|
45
|
+
console.log('🌱 Seeding users...');
|
|
46
|
+
await this.createAdminUser();
|
|
47
|
+
console.log('✅ User seeding completed');
|
|
48
|
+
}
|
|
49
|
+
async createAdminUser() {
|
|
50
|
+
const adminPhone = process.env.SUPER_ADMIN_PHONE;
|
|
51
|
+
const adminFirstName = process.env.SUPER_ADMIN_FIRST_NAME || 'Admin';
|
|
52
|
+
const adminLastName = process.env.SUPER_ADMIN_LAST_NAME || 'User';
|
|
53
|
+
const adminEmail = process.env.SUPER_ADMIN_EMAIL;
|
|
54
|
+
const adminCountryCode = process.env.SUPER_ADMIN_COUNTRY_CODE || 'NG';
|
|
55
|
+
const adminPassword = process.env.SUPER_ADMIN_PASSWORD;
|
|
56
|
+
if (!adminPhone || adminPhone.trim() === '') {
|
|
57
|
+
console.log(' âš SUPER_ADMIN_PHONE not set, skipping admin user creation');
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const existingUser = await this.userRepository.findOne({
|
|
61
|
+
where: { phoneNumber: adminPhone },
|
|
62
|
+
});
|
|
63
|
+
if (existingUser) {
|
|
64
|
+
console.log(` - Admin user already exists: ${adminPhone}`);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
const adminUser = this.userRepository.create({
|
|
68
|
+
firstName: adminFirstName,
|
|
69
|
+
lastName: adminLastName,
|
|
70
|
+
phoneNumber: adminPhone,
|
|
71
|
+
email: adminEmail,
|
|
72
|
+
countryCode: adminCountryCode,
|
|
73
|
+
isActive: true,
|
|
74
|
+
isPhoneVerified: true,
|
|
75
|
+
isEmailVerified: !!adminEmail,
|
|
76
|
+
});
|
|
77
|
+
const savedUser = await this.userRepository.save(adminUser);
|
|
78
|
+
console.log(` ✓ Created admin user: ${adminPhone}<${adminEmail}>`);
|
|
79
|
+
if (adminPassword?.trim()) {
|
|
80
|
+
await this.userRepository.query('UPDATE users SET password_hash = $1 WHERE id = $2', [
|
|
81
|
+
await argon2.hash(adminPassword),
|
|
82
|
+
savedUser.id,
|
|
83
|
+
]);
|
|
84
|
+
console.log(` ✓ Set password for admin user`);
|
|
85
|
+
}
|
|
86
|
+
console.log(' → Assign roles via your roles/permissions API');
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
exports.UserSeed = UserSeed;
|
|
90
|
+
//# sourceMappingURL=user.seed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.seed.js","sourceRoot":"","sources":["../../../database/seeds/user.seed.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAiC;AAEjC,0EAAgE;AAEhE,MAAa,QAAQ;IAGpB,YAAoB,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QACzC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,kBAAI,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,GAAG;QACR,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAEnC,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAE7B,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACzC,CAAC;IAMO,KAAK,CAAC,eAAe;QAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QACjD,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,OAAO,CAAC;QACrE,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,MAAM,CAAC;QAClE,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QACjD,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,IAAI,CAAC;QACtE,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;QAEvD,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;YAC3E,OAAO;QACR,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YACtD,KAAK,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE;SAClC,CAAC,CAAC;QAEH,IAAI,YAAY,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,kCAAkC,UAAU,EAAE,CAAC,CAAC;YAC5D,OAAO;QACR,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;YAC5C,SAAS,EAAE,cAAc;YACzB,QAAQ,EAAE,aAAa;YACvB,WAAW,EAAE,UAAU;YACvB,KAAK,EAAE,UAAU;YACjB,WAAW,EAAE,gBAAgB;YAC7B,QAAQ,EAAE,IAAI;YACd,eAAe,EAAE,IAAI;YACrB,eAAe,EAAE,CAAC,CAAC,UAAU;SAC7B,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,2BAA2B,UAAU,IAAI,UAAU,GAAG,CAAC,CAAC;QAEpE,IAAI,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC;YAC3B,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,mDAAmD,EAAE;gBACpF,MAAM,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;gBAChC,SAAS,CAAC,EAAE;aACZ,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;IAChE,CAAC;CACD;AAjED,4BAiEC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { OnModuleInit, OnModuleDestroy } from '@nestjs/common';
|
|
2
|
+
import { DataSource } from 'typeorm';
|
|
3
|
+
export declare class TypeOrmService implements OnModuleInit, OnModuleDestroy {
|
|
4
|
+
private readonly dataSource;
|
|
5
|
+
private readonly logger;
|
|
6
|
+
constructor(dataSource: DataSource);
|
|
7
|
+
onModuleInit(): Promise<void>;
|
|
8
|
+
onModuleDestroy(): Promise<void>;
|
|
9
|
+
getDataSource(): DataSource;
|
|
10
|
+
runMigrations(): Promise<void>;
|
|
11
|
+
revertLastMigration(): Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=typeorm.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeorm.service.d.ts","sourceRoot":"","sources":["../../database/typeorm.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAE,eAAe,EAAU,MAAM,gBAAgB,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,qBACa,cAAe,YAAW,YAAY,EAAE,eAAe;IAGvD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAFvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;gBAE7B,UAAU,EAAE,UAAU;IAE7C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAO7B,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAOtC,aAAa,IAAI,UAAU;IAIrB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9B,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;CAK1C"}
|
|
@@ -0,0 +1,52 @@
|
|
|
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 TypeOrmService_1;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.TypeOrmService = void 0;
|
|
14
|
+
const common_1 = require("@nestjs/common");
|
|
15
|
+
const typeorm_1 = require("typeorm");
|
|
16
|
+
let TypeOrmService = TypeOrmService_1 = class TypeOrmService {
|
|
17
|
+
constructor(dataSource) {
|
|
18
|
+
this.dataSource = dataSource;
|
|
19
|
+
this.logger = new common_1.Logger(TypeOrmService_1.name);
|
|
20
|
+
}
|
|
21
|
+
async onModuleInit() {
|
|
22
|
+
if (!this.dataSource.isInitialized) {
|
|
23
|
+
await this.dataSource.initialize();
|
|
24
|
+
this.logger.log('Database connection initialized');
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
async onModuleDestroy() {
|
|
28
|
+
if (this.dataSource.isInitialized) {
|
|
29
|
+
await this.dataSource.destroy();
|
|
30
|
+
this.logger.log('Database connection closed');
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
getDataSource() {
|
|
34
|
+
return this.dataSource;
|
|
35
|
+
}
|
|
36
|
+
async runMigrations() {
|
|
37
|
+
this.logger.log('Running migrations...');
|
|
38
|
+
const migrations = await this.dataSource.runMigrations();
|
|
39
|
+
this.logger.log(`Applied ${migrations.length} migrations`);
|
|
40
|
+
}
|
|
41
|
+
async revertLastMigration() {
|
|
42
|
+
this.logger.log('Reverting last migration...');
|
|
43
|
+
await this.dataSource.undoLastMigration();
|
|
44
|
+
this.logger.log('Last migration reverted');
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
exports.TypeOrmService = TypeOrmService;
|
|
48
|
+
exports.TypeOrmService = TypeOrmService = TypeOrmService_1 = __decorate([
|
|
49
|
+
(0, common_1.Injectable)(),
|
|
50
|
+
__metadata("design:paramtypes", [typeorm_1.DataSource])
|
|
51
|
+
], TypeOrmService);
|
|
52
|
+
//# sourceMappingURL=typeorm.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typeorm.service.js","sourceRoot":"","sources":["../../database/typeorm.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAmF;AACnF,qCAAqC;AAG9B,IAAM,cAAc,sBAApB,MAAM,cAAc;IAG1B,YAA6B,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;QAFlC,WAAM,GAAG,IAAI,eAAM,CAAC,gBAAc,CAAC,IAAI,CAAC,CAAC;IAEJ,CAAC;IAEvD,KAAK,CAAC,YAAY;QACjB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;YACpC,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QACpD,CAAC;IACF,CAAC;IAED,KAAK,CAAC,eAAe;QACpB,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QAC/C,CAAC;IACF,CAAC;IAED,aAAa;QACZ,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,aAAa;QAClB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;QACzC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,UAAU,CAAC,MAAM,aAAa,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,mBAAmB;QACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC/C,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAC5C,CAAC;CACD,CAAA;AAlCY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAI6B,oBAAU;GAHvC,cAAc,CAkC1B"}
|