@evara-group/guard 1.0.30 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +346 -28
- package/dist/common.d.ts +2 -0
- package/dist/common.js +6 -0
- package/dist/common.js.map +1 -0
- package/dist/core/database/switch.schema.d.ts +6 -0
- package/dist/core/database/switch.schema.js +39 -0
- package/dist/core/database/switch.schema.js.map +1 -0
- package/dist/core/enums/user-permission.d.ts +32 -0
- package/dist/core/enums/user-permission.js +37 -0
- package/dist/core/enums/user-permission.js.map +1 -0
- package/dist/core/utils/base.entity.d.ts +1 -0
- package/dist/core/utils/base.entity.js +4 -3
- package/dist/core/utils/base.entity.js.map +1 -1
- package/dist/core/utils/base.migration.d.ts +2 -0
- package/dist/core/utils/base.migration.js +44 -0
- package/dist/core/utils/base.migration.js.map +1 -0
- package/dist/core/utils/guard-base.entity.d.ts +10 -0
- package/dist/core/utils/guard-base.entity.js +46 -0
- package/dist/core/utils/guard-base.entity.js.map +1 -0
- package/dist/core/utils/lower-case.transformer.d.ts +3 -0
- package/dist/core/utils/lower-case.transformer.js +6 -0
- package/dist/core/utils/lower-case.transformer.js.map +1 -0
- package/dist/core/utils/pagination.entity.js.map +1 -1
- package/dist/core/utils/remove-spaces.transformer.d.ts +3 -0
- package/dist/core/utils/remove-spaces.transformer.js +6 -0
- package/dist/core/utils/remove-spaces.transformer.js.map +1 -0
- package/dist/core/utils/request.d.ts +1 -1
- package/dist/database/config/typeorm.config.d.ts +5 -0
- package/dist/database/config/typeorm.config.js +38 -0
- package/dist/database/config/typeorm.config.js.map +1 -0
- package/dist/database/migrations/1765027603465-CreateUserTable.d.ts +6 -0
- package/dist/database/migrations/1765027603465-CreateUserTable.js +63 -0
- package/dist/database/migrations/1765027603465-CreateUserTable.js.map +1 -0
- package/dist/database/migrations/1765042818137-CreateModuleTable.d.ts +6 -0
- package/dist/database/migrations/1765042818137-CreateModuleTable.js +53 -0
- package/dist/database/migrations/1765042818137-CreateModuleTable.js.map +1 -0
- package/dist/database/migrations/1765042839363-CreatepermissionTable.d.ts +6 -0
- package/dist/database/migrations/1765042839363-CreatepermissionTable.js +74 -0
- package/dist/database/migrations/1765042839363-CreatepermissionTable.js.map +1 -0
- package/dist/database/migrations/1765042865354-CreateRoleTable.d.ts +6 -0
- package/dist/database/migrations/1765042865354-CreateRoleTable.js +60 -0
- package/dist/database/migrations/1765042865354-CreateRoleTable.js.map +1 -0
- package/dist/database/migrations/1765042888581-CreateUserTable.d.ts +6 -0
- package/dist/database/migrations/1765042888581-CreateUserTable.js +58 -0
- package/dist/database/migrations/1765042888581-CreateUserTable.js.map +1 -0
- package/dist/database/migrations/1765042926793-CreateUserRoleTable.d.ts +6 -0
- package/dist/database/migrations/1765042926793-CreateUserRoleTable.js +54 -0
- package/dist/database/migrations/1765042926793-CreateUserRoleTable.js.map +1 -0
- package/dist/database/migrations/1765042959694-CreateRolePermissionTable.d.ts +6 -0
- package/dist/database/migrations/1765042959694-CreateRolePermissionTable.js +45 -0
- package/dist/database/migrations/1765042959694-CreateRolePermissionTable.js.map +1 -0
- package/dist/database/migrations/1765042980940-CreateUserPermissionTable.d.ts +6 -0
- package/dist/database/migrations/1765042980940-CreateUserPermissionTable.js +50 -0
- package/dist/database/migrations/1765042980940-CreateUserPermissionTable.js.map +1 -0
- package/dist/database/seeders/auth.seeder.d.ts +12 -0
- package/dist/database/seeders/auth.seeder.js +338 -0
- package/dist/database/seeders/auth.seeder.js.map +1 -0
- package/dist/database/seeders/modules.seeder.d.ts +6 -0
- package/dist/database/seeders/modules.seeder.js +39 -0
- package/dist/database/seeders/modules.seeder.js.map +1 -0
- package/dist/database/seeders/orchestrator.seeder.d.ts +6 -0
- package/dist/database/seeders/orchestrator.seeder.js +32 -0
- package/dist/database/seeders/orchestrator.seeder.js.map +1 -0
- package/dist/database/seeders/permissions.seeder.d.ts +6 -0
- package/dist/database/seeders/permissions.seeder.js +96 -0
- package/dist/database/seeders/permissions.seeder.js.map +1 -0
- package/dist/database/seeders/role-permissions.seeder.d.ts +6 -0
- package/dist/database/seeders/role-permissions.seeder.js +35 -0
- package/dist/database/seeders/role-permissions.seeder.js.map +1 -0
- package/dist/database/seeders/roles.seeder.d.ts +6 -0
- package/dist/database/seeders/roles.seeder.js +33 -0
- package/dist/database/seeders/roles.seeder.js.map +1 -0
- package/dist/database/seeders/run.seeder.d.ts +1 -0
- package/dist/database/seeders/run.seeder.js +82 -0
- package/dist/database/seeders/run.seeder.js.map +1 -0
- package/dist/database/seeders/user-roles.seeder.d.ts +6 -0
- package/dist/database/seeders/user-roles.seeder.js +41 -0
- package/dist/database/seeders/user-roles.seeder.js.map +1 -0
- package/dist/database/seeders/users.seeder.d.ts +6 -0
- package/dist/database/seeders/users.seeder.js +72 -0
- package/dist/database/seeders/users.seeder.js.map +1 -0
- package/dist/index.d.ts +72 -5
- package/dist/index.js +76 -5
- package/dist/index.js.map +1 -1
- package/dist/modules/app.module.d.ts +16 -0
- package/dist/modules/app.module.js +86 -0
- package/dist/modules/app.module.js.map +1 -0
- package/dist/modules/auth/auth.controller.d.ts +10 -0
- package/dist/modules/auth/auth.controller.js +47 -0
- package/dist/modules/auth/auth.controller.js.map +1 -0
- package/dist/modules/auth/auth.module-definition.d.ts +2 -0
- package/dist/modules/auth/auth.module-definition.js +11 -0
- package/dist/modules/auth/auth.module-definition.js.map +1 -0
- package/dist/modules/auth/auth.module.d.ts +2 -0
- package/dist/modules/auth/auth.module.js +48 -0
- package/dist/modules/auth/auth.module.js.map +1 -0
- package/dist/modules/auth/auth.options.d.ts +13 -0
- package/dist/modules/auth/auth.options.js +3 -0
- package/dist/modules/auth/auth.options.js.map +1 -0
- package/dist/modules/auth/auth.service.d.ts +15 -0
- package/dist/modules/auth/auth.service.js +133 -0
- package/dist/modules/auth/auth.service.js.map +1 -0
- package/dist/modules/auth/dto/auth-login.dto.d.ts +5 -0
- package/dist/modules/auth/dto/auth-login.dto.js +32 -0
- package/dist/modules/auth/dto/auth-login.dto.js.map +1 -0
- package/dist/modules/auth/dto/register.dto.d.ts +7 -0
- package/dist/modules/auth/dto/register.dto.js +46 -0
- package/dist/modules/auth/dto/register.dto.js.map +1 -0
- package/dist/modules/module/dtos/create-module.dto.d.ts +5 -0
- package/dist/modules/module/dtos/create-module.dto.js +14 -0
- package/dist/modules/module/dtos/create-module.dto.js.map +1 -0
- package/dist/modules/module/dtos/module-query.dto.d.ts +3 -0
- package/dist/modules/module/dtos/module-query.dto.js +8 -0
- package/dist/modules/module/dtos/module-query.dto.js.map +1 -0
- package/dist/modules/module/dtos/module.dto.d.ts +10 -0
- package/dist/modules/module/dtos/module.dto.js +84 -0
- package/dist/modules/module/dtos/module.dto.js.map +1 -0
- package/dist/modules/module/dtos/update-module.dto.d.ts +5 -0
- package/dist/modules/module/dtos/update-module.dto.js +14 -0
- package/dist/modules/module/dtos/update-module.dto.js.map +1 -0
- package/dist/modules/module/module.controller.d.ts +12 -0
- package/dist/modules/module/module.controller.js +111 -0
- package/dist/modules/module/module.controller.js.map +1 -0
- package/dist/modules/module/module.entity.d.ts +10 -0
- package/dist/modules/module/module.entity.js +46 -0
- package/dist/modules/module/module.entity.js.map +1 -0
- package/dist/modules/module/module.mapper.d.ts +5 -0
- package/dist/modules/module/module.mapper.js +35 -0
- package/dist/modules/module/module.mapper.js.map +1 -0
- package/dist/modules/module/module.module.d.ts +2 -0
- package/dist/modules/module/module.module.js +27 -0
- package/dist/modules/module/module.module.js.map +1 -0
- package/dist/modules/module/module.service.d.ts +13 -0
- package/dist/modules/module/module.service.js +63 -0
- package/dist/modules/module/module.service.js.map +1 -0
- package/dist/modules/permission/dtos/create-permission.dto.d.ts +5 -0
- package/dist/modules/permission/dtos/create-permission.dto.js +14 -0
- package/dist/modules/permission/dtos/create-permission.dto.js.map +1 -0
- package/dist/modules/permission/dtos/permission-query.dto.d.ts +3 -0
- package/dist/modules/permission/dtos/permission-query.dto.js +8 -0
- package/dist/modules/permission/dtos/permission-query.dto.js.map +1 -0
- package/dist/modules/permission/dtos/permission.dto.d.ts +9 -0
- package/dist/modules/permission/dtos/permission.dto.js +72 -0
- package/dist/modules/permission/dtos/permission.dto.js.map +1 -0
- package/dist/modules/permission/dtos/update-permission.dto.d.ts +5 -0
- package/dist/modules/permission/dtos/update-permission.dto.js +9 -0
- package/dist/modules/permission/dtos/update-permission.dto.js.map +1 -0
- package/dist/modules/permission/permission.controller.d.ts +11 -0
- package/dist/modules/permission/permission.controller.js +109 -0
- package/dist/modules/permission/permission.controller.js.map +1 -0
- package/dist/modules/permission/permission.entity.d.ts +11 -0
- package/dist/modules/permission/permission.entity.js +57 -0
- package/dist/modules/permission/permission.entity.js.map +1 -0
- package/dist/modules/permission/permission.mapper.d.ts +5 -0
- package/dist/modules/permission/permission.mapper.js +32 -0
- package/dist/modules/permission/permission.mapper.js.map +1 -0
- package/dist/modules/permission/permission.module.d.ts +2 -0
- package/dist/modules/permission/permission.module.js +27 -0
- package/dist/modules/permission/permission.module.js.map +1 -0
- package/dist/modules/permission/permission.service.d.ts +13 -0
- package/dist/modules/permission/permission.service.js +60 -0
- package/dist/modules/permission/permission.service.js.map +1 -0
- package/dist/modules/role/dtos/create-role.dto.d.ts +6 -0
- package/dist/modules/role/dtos/create-role.dto.js +15 -0
- package/dist/modules/role/dtos/create-role.dto.js.map +1 -0
- package/dist/modules/role/dtos/role-query.dto.d.ts +3 -0
- package/dist/modules/role/dtos/role-query.dto.js +8 -0
- package/dist/modules/role/dtos/role-query.dto.js.map +1 -0
- package/dist/modules/role/dtos/role.dto.d.ts +11 -0
- package/dist/modules/role/dtos/role.dto.js +82 -0
- package/dist/modules/role/dtos/role.dto.js.map +1 -0
- package/dist/modules/role/dtos/update-role.dto.d.ts +5 -0
- package/dist/modules/role/dtos/update-role.dto.js +9 -0
- package/dist/modules/role/dtos/update-role.dto.js.map +1 -0
- package/dist/modules/role/role.controller.d.ts +16 -0
- package/dist/modules/role/role.controller.js +174 -0
- package/dist/modules/role/role.controller.js.map +1 -0
- package/dist/modules/role/role.entity.d.ts +11 -0
- package/dist/modules/role/role.entity.js +61 -0
- package/dist/modules/role/role.entity.js.map +1 -0
- package/dist/modules/role/role.mapper.d.ts +9 -0
- package/dist/modules/role/role.mapper.js +74 -0
- package/dist/modules/role/role.mapper.js.map +1 -0
- package/dist/modules/role/role.module.d.ts +2 -0
- package/dist/modules/role/role.module.js +27 -0
- package/dist/modules/role/role.module.js.map +1 -0
- package/dist/modules/role/role.service.d.ts +13 -0
- package/dist/modules/role/role.service.js +63 -0
- package/dist/modules/role/role.service.js.map +1 -0
- package/dist/modules/role-permission/dtos/create-role-permission.dto.d.ts +5 -0
- package/dist/modules/role-permission/dtos/create-role-permission.dto.js +14 -0
- package/dist/modules/role-permission/dtos/create-role-permission.dto.js.map +1 -0
- package/dist/modules/role-permission/dtos/role-permission-query.dto.d.ts +3 -0
- package/dist/modules/role-permission/dtos/role-permission-query.dto.js +8 -0
- package/dist/modules/role-permission/dtos/role-permission-query.dto.js.map +1 -0
- package/dist/modules/role-permission/dtos/role-permission.dto.d.ts +7 -0
- package/dist/modules/role-permission/dtos/role-permission.dto.js +28 -0
- package/dist/modules/role-permission/dtos/role-permission.dto.js.map +1 -0
- package/dist/modules/role-permission/dtos/update-role-permission.dto.d.ts +5 -0
- package/dist/modules/role-permission/dtos/update-role-permission.dto.js +9 -0
- package/dist/modules/role-permission/dtos/update-role-permission.dto.js.map +1 -0
- package/dist/modules/role-permission/role-permission.controller.d.ts +2 -0
- package/dist/modules/role-permission/role-permission.controller.js +17 -0
- package/dist/modules/role-permission/role-permission.controller.js.map +1 -0
- package/dist/modules/role-permission/role-permission.entity.d.ts +7 -0
- package/dist/modules/role-permission/role-permission.entity.js +33 -0
- package/dist/modules/role-permission/role-permission.entity.js.map +1 -0
- package/dist/modules/role-permission/role-permission.mapper.d.ts +10 -0
- package/dist/modules/role-permission/role-permission.mapper.js +47 -0
- package/dist/modules/role-permission/role-permission.mapper.js.map +1 -0
- package/dist/modules/role-permission/role-permission.module.d.ts +2 -0
- package/dist/modules/role-permission/role-permission.module.js +29 -0
- package/dist/modules/role-permission/role-permission.module.js.map +1 -0
- package/dist/modules/role-permission/role-permission.service.d.ts +13 -0
- package/dist/modules/role-permission/role-permission.service.js +60 -0
- package/dist/modules/role-permission/role-permission.service.js.map +1 -0
- package/dist/modules/user/dtos/create-user.dto.d.ts +6 -0
- package/dist/modules/user/dtos/create-user.dto.js +15 -0
- package/dist/modules/user/dtos/create-user.dto.js.map +1 -0
- package/dist/modules/user/dtos/update-user.dto.js.map +1 -0
- package/dist/modules/user/dtos/user-query.dto.d.ts +3 -0
- package/dist/{user → modules/user}/dtos/user-query.dto.js +1 -1
- package/dist/modules/user/dtos/user-query.dto.js.map +1 -0
- package/dist/modules/user/dtos/user.dto.d.ts +13 -0
- package/dist/{user → modules/user}/dtos/user.dto.js +1 -12
- package/dist/modules/user/dtos/user.dto.js.map +1 -0
- package/dist/modules/user/user.controller.d.ts +18 -0
- package/dist/{user → modules/user}/user.controller.js +62 -29
- package/dist/modules/user/user.controller.js.map +1 -0
- package/dist/{user → modules/user}/user.entity.d.ts +4 -3
- package/dist/{user → modules/user}/user.entity.js +17 -6
- package/dist/modules/user/user.entity.js.map +1 -0
- package/dist/{user → modules/user}/user.mapper.d.ts +6 -2
- package/dist/modules/user/user.mapper.js +126 -0
- package/dist/modules/user/user.mapper.js.map +1 -0
- package/dist/modules/user/user.module-definition.d.ts +5 -0
- package/dist/modules/user/user.module-definition.js +9 -0
- package/dist/modules/user/user.module-definition.js.map +1 -0
- package/dist/modules/user/user.module.d.ts +2 -0
- package/dist/{user → modules/user}/user.module.js +10 -14
- package/dist/modules/user/user.module.js.map +1 -0
- package/dist/{user → modules/user}/user.service.d.ts +4 -4
- package/dist/{user → modules/user}/user.service.js +8 -8
- package/dist/modules/user/user.service.js.map +1 -0
- package/dist/modules/user-permission/dtos/create-user-permission.dto.d.ts +5 -0
- package/dist/modules/user-permission/dtos/create-user-permission.dto.js +14 -0
- package/dist/modules/user-permission/dtos/create-user-permission.dto.js.map +1 -0
- package/dist/modules/user-permission/dtos/update-user-permission.dto.d.ts +5 -0
- package/dist/modules/user-permission/dtos/update-user-permission.dto.js +9 -0
- package/dist/modules/user-permission/dtos/update-user-permission.dto.js.map +1 -0
- package/dist/modules/user-permission/dtos/user-permission-query.dto.d.ts +3 -0
- package/dist/modules/user-permission/dtos/user-permission-query.dto.js +8 -0
- package/dist/modules/user-permission/dtos/user-permission-query.dto.js.map +1 -0
- package/dist/modules/user-permission/dtos/user-permission.dto.d.ts +8 -0
- package/dist/modules/user-permission/dtos/user-permission.dto.js +36 -0
- package/dist/modules/user-permission/dtos/user-permission.dto.js.map +1 -0
- package/dist/modules/user-permission/user-permission.controller.d.ts +2 -0
- package/dist/modules/user-permission/user-permission.controller.js +17 -0
- package/dist/modules/user-permission/user-permission.controller.js.map +1 -0
- package/dist/modules/user-permission/user-permission.entity.d.ts +8 -0
- package/dist/modules/user-permission/user-permission.entity.js +41 -0
- package/dist/modules/user-permission/user-permission.entity.js.map +1 -0
- package/dist/modules/user-permission/user-permission.mapper.d.ts +10 -0
- package/dist/modules/user-permission/user-permission.mapper.js +51 -0
- package/dist/modules/user-permission/user-permission.mapper.js.map +1 -0
- package/dist/modules/user-permission/user-permission.module.d.ts +2 -0
- package/dist/modules/user-permission/user-permission.module.js +29 -0
- package/dist/modules/user-permission/user-permission.module.js.map +1 -0
- package/dist/modules/user-permission/user-permission.service.d.ts +13 -0
- package/dist/modules/user-permission/user-permission.service.js +60 -0
- package/dist/modules/user-permission/user-permission.service.js.map +1 -0
- package/dist/modules/user-role/dtos/create-user-role.dto.d.ts +5 -0
- package/dist/modules/user-role/dtos/create-user-role.dto.js +14 -0
- package/dist/modules/user-role/dtos/create-user-role.dto.js.map +1 -0
- package/dist/modules/user-role/dtos/update-user-role.dto.d.ts +5 -0
- package/dist/modules/user-role/dtos/update-user-role.dto.js +9 -0
- package/dist/modules/user-role/dtos/update-user-role.dto.js.map +1 -0
- package/dist/modules/user-role/dtos/user-role-query.dto.d.ts +3 -0
- package/dist/modules/user-role/dtos/user-role-query.dto.js +8 -0
- package/dist/modules/user-role/dtos/user-role-query.dto.js.map +1 -0
- package/dist/modules/user-role/dtos/user-role.dto.d.ts +7 -0
- package/dist/{security/security.service.js → modules/user-role/dtos/user-role.dto.js} +17 -20
- package/dist/modules/user-role/dtos/user-role.dto.js.map +1 -0
- package/dist/modules/user-role/user-role.controller.d.ts +0 -0
- package/dist/modules/user-role/user-role.controller.js +2 -0
- package/dist/modules/user-role/user-role.controller.js.map +1 -0
- package/dist/modules/user-role/user-role.entity.d.ts +0 -0
- package/dist/modules/user-role/user-role.entity.js +2 -0
- package/dist/modules/user-role/user-role.entity.js.map +1 -0
- package/dist/modules/user-role/user-role.mapper.d.ts +0 -0
- package/dist/modules/user-role/user-role.mapper.js +2 -0
- package/dist/modules/user-role/user-role.mapper.js.map +1 -0
- package/dist/modules/user-role/user-role.module.d.ts +0 -0
- package/dist/modules/user-role/user-role.module.js +2 -0
- package/dist/modules/user-role/user-role.module.js.map +1 -0
- package/dist/modules/user-role/user-role.service.d.ts +0 -0
- package/dist/modules/user-role/user-role.service.js +2 -0
- package/dist/modules/user-role/user-role.service.js.map +1 -0
- package/dist/scripts/run-migrations.d.ts +1 -0
- package/dist/scripts/run-migrations.js +60 -0
- package/dist/scripts/run-migrations.js.map +1 -0
- package/dist/security/decorators/auth-user.decorator.d.ts +1 -1
- package/dist/security/decorators/auth-user.decorator.js +3 -3
- package/dist/security/decorators/auth-user.decorator.js.map +1 -1
- package/dist/security/decorators/permissions.decorator.d.ts +2 -0
- package/dist/security/decorators/permissions.decorator.js +7 -0
- package/dist/security/decorators/permissions.decorator.js.map +1 -0
- package/dist/security/decorators/roles.decorator.d.ts +2 -1
- package/dist/security/decorators/roles.decorator.js +1 -1
- package/dist/security/decorators/roles.decorator.js.map +1 -1
- package/dist/security/guards/jwt-auth.guard.d.ts +5 -2
- package/dist/security/guards/jwt-auth.guard.js +12 -5
- package/dist/security/guards/jwt-auth.guard.js.map +1 -1
- package/dist/security/guards/roles.guard.d.ts +7 -5
- package/dist/security/guards/roles.guard.js +33 -9
- package/dist/security/guards/roles.guard.js.map +1 -1
- package/dist/security/interfaces/jwt-payload.interface.d.ts +14 -0
- package/dist/security/interfaces/jwt-payload.interface.js +3 -0
- package/dist/security/interfaces/jwt-payload.interface.js.map +1 -0
- package/dist/security/interfaces/token.interface.d.ts +3 -0
- package/dist/security/interfaces/token.interface.js +3 -0
- package/dist/security/interfaces/token.interface.js.map +1 -0
- package/dist/security/password-util.d.ts +3 -0
- package/dist/security/password-util.js +44 -0
- package/dist/security/password-util.js.map +1 -0
- package/dist/security/strategies/jwt.strategy.d.ts +14 -3
- package/dist/security/strategies/jwt.strategy.js +28 -13
- package/dist/security/strategies/jwt.strategy.js.map +1 -1
- package/dist/seeders/auth.seeder.d.ts +12 -0
- package/dist/seeders/auth.seeder.js +404 -0
- package/dist/seeders/auth.seeder.js.map +1 -0
- package/dist/seeders/modules.seeder.d.ts +6 -0
- package/dist/seeders/modules.seeder.js +53 -0
- package/dist/seeders/modules.seeder.js.map +1 -0
- package/dist/seeders/orchestrator.seeder.d.ts +6 -0
- package/dist/seeders/orchestrator.seeder.js +32 -0
- package/dist/seeders/orchestrator.seeder.js.map +1 -0
- package/dist/seeders/permissions.seeder.d.ts +6 -0
- package/dist/seeders/permissions.seeder.js +51 -0
- package/dist/seeders/permissions.seeder.js.map +1 -0
- package/dist/seeders/role-permissions.seeder.d.ts +6 -0
- package/dist/seeders/role-permissions.seeder.js +65 -0
- package/dist/seeders/role-permissions.seeder.js.map +1 -0
- package/dist/seeders/roles.seeder.d.ts +6 -0
- package/dist/seeders/roles.seeder.js +57 -0
- package/dist/seeders/roles.seeder.js.map +1 -0
- package/dist/seeders/run.seeder.d.ts +1 -0
- package/dist/seeders/run.seeder.js +82 -0
- package/dist/seeders/run.seeder.js.map +1 -0
- package/dist/seeders/user/data.d.ts +2 -0
- package/dist/seeders/user/data.js +16 -0
- package/dist/seeders/user/data.js.map +1 -0
- package/dist/seeders/user/user-seeder.module.d.ts +2 -0
- package/dist/seeders/user/user-seeder.module.js +24 -0
- package/dist/seeders/user/user-seeder.module.js.map +1 -0
- package/dist/seeders/user/user-seeder.service.d.ts +7 -0
- package/dist/seeders/user/user-seeder.service.js +51 -0
- package/dist/seeders/user/user-seeder.service.js.map +1 -0
- package/dist/seeders/user-roles.seeder.d.ts +6 -0
- package/dist/seeders/user-roles.seeder.js +44 -0
- package/dist/seeders/user-roles.seeder.js.map +1 -0
- package/dist/seeders/users.seeder.d.ts +6 -0
- package/dist/seeders/users.seeder.js +93 -0
- package/dist/seeders/users.seeder.js.map +1 -0
- package/dist/tenant-db/config/tenant-db.config.d.ts +4 -0
- package/dist/tenant-db/config/tenant-db.config.js +18 -0
- package/dist/tenant-db/config/tenant-db.config.js.map +1 -0
- package/dist/tenant-db/context/tenant-db.context.d.ts +11 -0
- package/dist/tenant-db/context/tenant-db.context.js +46 -0
- package/dist/tenant-db/context/tenant-db.context.js.map +1 -0
- package/dist/tenant-db/helpers/tenant-db.helpers.d.ts +13 -0
- package/dist/tenant-db/helpers/tenant-db.helpers.js +42 -0
- package/dist/tenant-db/helpers/tenant-db.helpers.js.map +1 -0
- package/dist/tenant-db/manager/tenant-db.manager.d.ts +20 -0
- package/dist/tenant-db/manager/tenant-db.manager.js +135 -0
- package/dist/tenant-db/manager/tenant-db.manager.js.map +1 -0
- package/dist/tenant-db/middleware/tenant-db.middleware.d.ts +13 -0
- package/dist/tenant-db/middleware/tenant-db.middleware.js +46 -0
- package/dist/tenant-db/middleware/tenant-db.middleware.js.map +1 -0
- package/dist/tenant-db/module/tenant=db-module.d.ts +10 -0
- package/dist/tenant-db/module/tenant=db-module.js +53 -0
- package/dist/tenant-db/module/tenant=db-module.js.map +1 -0
- package/dist/tenant-db/resolvers/tenant.resolver.d.ts +9 -0
- package/dist/tenant-db/resolvers/tenant.resolver.js +42 -0
- package/dist/tenant-db/resolvers/tenant.resolver.js.map +1 -0
- package/dist/tenant-db/service/tenant-db.service.d.ts +14 -0
- package/dist/tenant-db/service/tenant-db.service.js +62 -0
- package/dist/tenant-db/service/tenant-db.service.js.map +1 -0
- package/dist/tenant-db/tenant-cache.d.ts +10 -0
- package/dist/tenant-db/tenant-cache.js +17 -0
- package/dist/tenant-db/tenant-cache.js.map +1 -0
- package/dist/tenant-db/types/tenant-db.types.d.ts +29 -0
- package/dist/tenant-db/types/tenant-db.types.js +3 -0
- package/dist/tenant-db/types/tenant-db.types.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +18 -10
- package/dist/security/security.module.d.ts +0 -7
- package/dist/security/security.module.js +0 -43
- package/dist/security/security.module.js.map +0 -1
- package/dist/security/security.service.d.ts +0 -7
- package/dist/security/security.service.js.map +0 -1
- package/dist/user/dtos/create-user.dto.d.ts +0 -5
- package/dist/user/dtos/create-user.dto.js +0 -7
- package/dist/user/dtos/create-user.dto.js.map +0 -1
- package/dist/user/dtos/update-user.dto.js.map +0 -1
- package/dist/user/dtos/user-query.dto.d.ts +0 -3
- package/dist/user/dtos/user-query.dto.js.map +0 -1
- package/dist/user/dtos/user.dto.d.ts +0 -11
- package/dist/user/dtos/user.dto.js.map +0 -1
- package/dist/user/user.controller.d.ts +0 -16
- package/dist/user/user.controller.js.map +0 -1
- package/dist/user/user.entity.js.map +0 -1
- package/dist/user/user.mapper.js +0 -32
- package/dist/user/user.mapper.js.map +0 -1
- package/dist/user/user.module.d.ts +0 -4
- package/dist/user/user.module.js.map +0 -1
- package/dist/user/user.service.js.map +0 -1
- /package/dist/{user → modules/user}/dtos/update-user.dto.d.ts +0 -0
- /package/dist/{user → modules/user}/dtos/update-user.dto.js +0 -0
package/README.md
CHANGED
|
@@ -1,46 +1,364 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @evara-group/guard - Authentication & Authorization Package
|
|
2
2
|
|
|
3
|
-
A reusable and
|
|
3
|
+
A reusable **authentication and authorization** package for NestJS applications with isolated database support. This package provides a complete auth system with its own dedicated database connection, allowing you to reuse authentication across multiple applications while each application maintains its own separate database.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
## 🚀 Features
|
|
8
8
|
|
|
9
|
-
- ✅
|
|
10
|
-
- ✅
|
|
11
|
-
- ✅
|
|
12
|
-
- ✅ Built-in `
|
|
13
|
-
- ✅
|
|
14
|
-
- ✅
|
|
9
|
+
- ✅ **Isolated Database Connection** - Dedicated auth database that doesn't conflict with your app's database
|
|
10
|
+
- ✅ **Role-based access control** (`UserRole`)
|
|
11
|
+
- ✅ **JWT-based authentication** with configurable expiration
|
|
12
|
+
- ✅ **Built-in `AuthGuard`** for route protection
|
|
13
|
+
- ✅ **Built-in `RolesGuard`** for role-based authorization
|
|
14
|
+
- ✅ **`@Roles()` decorator** for easy role checking
|
|
15
|
+
- ✅ **`@AuthUser()` decorator** for easy access to authenticated user
|
|
16
|
+
- ✅ **Complete user management** (CRUD operations)
|
|
17
|
+
- ✅ **Password hashing** with bcrypt
|
|
18
|
+
- ✅ **Type-safe** with TypeScript and DTOs
|
|
15
19
|
|
|
16
20
|
---
|
|
17
21
|
|
|
18
|
-
## 📦
|
|
22
|
+
## 📦 Installation
|
|
19
23
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
| `permission.enum.ts` | Enum defining permission constants |
|
|
28
|
-
| `user.dto.ts` | DTO representing user payload structure |
|
|
24
|
+
```bash
|
|
25
|
+
npm install @evara-group/guard
|
|
26
|
+
# or
|
|
27
|
+
pnpm add @evara-group/guard
|
|
28
|
+
# or
|
|
29
|
+
yarn add @evara-group/guard
|
|
30
|
+
```
|
|
29
31
|
|
|
30
32
|
---
|
|
31
33
|
|
|
32
|
-
##
|
|
34
|
+
## 🏗️ Architecture
|
|
33
35
|
|
|
34
|
-
|
|
36
|
+
This package uses a **named TypeORM connection** (`AUTH_DATABASE_CONNECTION`) to ensure complete isolation from your application's database. This means:
|
|
35
37
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
- ✅ Your app can have its own database connection
|
|
39
|
+
- ✅ The auth package uses a separate, dedicated database for users
|
|
40
|
+
- ✅ No conflicts between connections
|
|
41
|
+
- ✅ Easy to reuse across multiple applications
|
|
42
|
+
|
|
43
|
+
### Module Structure
|
|
44
|
+
|
|
45
|
+
The package follows the same architecture pattern as dms-new-backend-nestjs:
|
|
46
|
+
|
|
47
|
+
1. **`AuthorizationGuardModule`** - Unified entry point that:
|
|
48
|
+
- Configures TypeORM connection for the auth database (named connection)
|
|
49
|
+
- Loads `UserModule` (simple module for user management)
|
|
50
|
+
- Loads `AuthModule` (simple module for authentication)
|
|
51
|
+
|
|
52
|
+
2. **`UserModule`** - Simple module that:
|
|
53
|
+
- Uses `TypeOrmModule.forFeature([User], AUTH_DATABASE_CONNECTION)`
|
|
54
|
+
- Provides `UserService` for CRUD operations
|
|
55
|
+
- Exports `UserService` and `TypeOrmModule`
|
|
56
|
+
|
|
57
|
+
3. **`AuthModule`** - Simple module that:
|
|
58
|
+
- Imports `UserModule` directly
|
|
59
|
+
- Configures JWT using `JwtModule.registerAsync()` with `ConfigService`
|
|
60
|
+
- Provides `AuthService` and `JwtStrategy`
|
|
61
|
+
- Exports `AuthService`
|
|
62
|
+
|
|
63
|
+
This architecture ensures:
|
|
64
|
+
|
|
65
|
+
- ✅ Clear separation of concerns
|
|
66
|
+
- ✅ Proper dependency resolution
|
|
67
|
+
- ✅ Simple, maintainable code structure
|
|
68
|
+
- ✅ Follows NestJS best practices
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## 📖 Usage
|
|
73
|
+
|
|
74
|
+
### 1. Basic Setup
|
|
75
|
+
|
|
76
|
+
In your `app.module.ts`:
|
|
77
|
+
|
|
78
|
+
```typescript
|
|
79
|
+
import { Module } from "@nestjs/common";
|
|
80
|
+
import { ConfigModule } from "@nestjs/config";
|
|
81
|
+
import { TypeOrmModule } from "@nestjs/typeorm";
|
|
82
|
+
import { AuthorizationGuardModule } from "@evara-group/guard";
|
|
83
|
+
|
|
84
|
+
@Module({
|
|
85
|
+
imports: [
|
|
86
|
+
// Global configuration
|
|
87
|
+
ConfigModule.forRoot({
|
|
88
|
+
isGlobal: true,
|
|
89
|
+
envFilePath: [".env"],
|
|
90
|
+
}),
|
|
91
|
+
|
|
92
|
+
// Your application database connection (for business entities)
|
|
93
|
+
TypeOrmModule.forRootAsync({
|
|
94
|
+
// Your app database configuration
|
|
95
|
+
// ...
|
|
96
|
+
}),
|
|
97
|
+
|
|
98
|
+
// Authorization Guard Module - Unified module that configures auth database and loads UserModule & AuthModule
|
|
99
|
+
AuthorizationGuardModule.forRoot({
|
|
100
|
+
database: {
|
|
101
|
+
name: process.env.AUTH_DATABASE_NAME || "auth_db",
|
|
102
|
+
host: process.env.AUTH_DATABASE_HOST || "localhost",
|
|
103
|
+
port: Number(process.env.AUTH_DATABASE_PORT || "5432"),
|
|
104
|
+
user: process.env.AUTH_DATABASE_USER || "postgres",
|
|
105
|
+
password: process.env.AUTH_DATABASE_PASSWORD || "postgres",
|
|
106
|
+
ssl: process.env.AUTH_DATABASE_SSL === "true" || false,
|
|
107
|
+
},
|
|
108
|
+
jwtSecret: process.env.JWT_SECRET || "your-secret-key",
|
|
109
|
+
expiresIn: "7d", // Optional, defaults to '7d'
|
|
110
|
+
}),
|
|
111
|
+
|
|
112
|
+
// Your other modules...
|
|
113
|
+
],
|
|
114
|
+
})
|
|
115
|
+
export class AppModule {}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### 2. Environment Variables
|
|
119
|
+
|
|
120
|
+
Create a `.env` file:
|
|
121
|
+
|
|
122
|
+
```env
|
|
123
|
+
# Auth Database Configuration
|
|
124
|
+
AUTH_DATABASE_NAME=auth_db
|
|
125
|
+
AUTH_DATABASE_HOST=localhost
|
|
126
|
+
AUTH_DATABASE_PORT=5432
|
|
127
|
+
AUTH_DATABASE_USER=postgres
|
|
128
|
+
AUTH_DATABASE_PASSWORD=postgres
|
|
129
|
+
AUTH_DATABASE_SSL=false
|
|
130
|
+
|
|
131
|
+
# JWT Configuration
|
|
132
|
+
JWT_SECRET=your-super-secret-jwt-key-change-this-in-production
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### 3. Protecting Routes
|
|
136
|
+
|
|
137
|
+
```typescript
|
|
138
|
+
import { Controller, Get } from "@nestjs/common";
|
|
139
|
+
import { AuthGuard, RolesGuard, Roles, AuthUser } from "@evara-group/guard";
|
|
140
|
+
import { UseGuards } from "@nestjs/common";
|
|
141
|
+
import { UserDTO } from "@evara-group/guard";
|
|
142
|
+
|
|
143
|
+
@Controller("protected")
|
|
144
|
+
@UseGuards(AuthGuard, RolesGuard)
|
|
145
|
+
export class ProtectedController {
|
|
146
|
+
@Get("profile")
|
|
147
|
+
@Roles("user", "admin") // Allow both user and admin roles
|
|
148
|
+
getProfile(@AuthUser() user: UserDTO) {
|
|
149
|
+
return {
|
|
150
|
+
message: `Hello ${user.email}`,
|
|
151
|
+
user: user,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
@Get("admin-only")
|
|
156
|
+
@Roles("admin") // Only admin can access
|
|
157
|
+
adminOnly() {
|
|
158
|
+
return { message: "Admin area" };
|
|
159
|
+
}
|
|
41
160
|
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### 4. Using Auth Service
|
|
42
164
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
165
|
+
```typescript
|
|
166
|
+
import { Injectable } from "@nestjs/common";
|
|
167
|
+
import { AuthService } from "@evara-group/guard";
|
|
168
|
+
|
|
169
|
+
@Injectable()
|
|
170
|
+
export class MyService {
|
|
171
|
+
constructor(private readonly authService: AuthService) {}
|
|
172
|
+
|
|
173
|
+
async login(email: string, password: string) {
|
|
174
|
+
return this.authService.login({ email, password });
|
|
175
|
+
}
|
|
46
176
|
}
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### 5. Using User Service
|
|
180
|
+
|
|
181
|
+
```typescript
|
|
182
|
+
import { Injectable } from "@nestjs/common";
|
|
183
|
+
import { UserService } from "@evara-group/guard";
|
|
184
|
+
|
|
185
|
+
@Injectable()
|
|
186
|
+
export class MyService {
|
|
187
|
+
constructor(private readonly userService: UserService) {}
|
|
188
|
+
|
|
189
|
+
async getUserById(id: number) {
|
|
190
|
+
return this.userService.findById(id);
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
async createUser(userData: CreateUserDTO) {
|
|
194
|
+
return this.userService.save(userData);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## 🔐 Database Setup
|
|
202
|
+
|
|
203
|
+
### Create the Auth Database
|
|
204
|
+
|
|
205
|
+
The package requires a separate PostgreSQL database for authentication. Create it:
|
|
206
|
+
|
|
207
|
+
```sql
|
|
208
|
+
CREATE DATABASE auth_db;
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
### Run Migrations
|
|
212
|
+
|
|
213
|
+
The package uses TypeORM entities. You'll need to:
|
|
214
|
+
|
|
215
|
+
1. **Option 1: Use TypeORM migrations** (recommended)
|
|
216
|
+
- Generate migration from the `User` entity
|
|
217
|
+
- Run migrations on your auth database
|
|
218
|
+
|
|
219
|
+
2. **Option 2: Use synchronize** (development only)
|
|
220
|
+
- Modify `AuthorizationGuardModule.forRoot()` to set `synchronize: true` in the TypeORM config (NOT recommended for production)
|
|
221
|
+
|
|
222
|
+
### User Entity Schema
|
|
223
|
+
|
|
224
|
+
The package includes a `User` entity with the following fields:
|
|
225
|
+
|
|
226
|
+
- `id` - Primary key
|
|
227
|
+
- `email` - Unique email address
|
|
228
|
+
- `password` - Hashed password
|
|
229
|
+
- `username` - Optional username
|
|
230
|
+
- `activated` - Account activation status
|
|
231
|
+
- `imageUrl` - Optional profile image URL
|
|
232
|
+
- `role` - User role (enum: UserRole)
|
|
233
|
+
- `resetPasswordRequest` - Password reset flag
|
|
234
|
+
- `createdAt`, `updatedAt`, `deletedAt` - Timestamps
|
|
235
|
+
- `createdBy`, `updatedBy`, `deletedBy` - Audit fields
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
## 🎯 API Reference
|
|
240
|
+
|
|
241
|
+
### AuthorizationGuardModule
|
|
242
|
+
|
|
243
|
+
#### `AuthorizationGuardModule.forRoot(options: GuardModuleOptions)`
|
|
244
|
+
|
|
245
|
+
Unified module that configures the TypeORM connection for the auth database and loads both `UserModule` and `AuthModule`. This is the recommended way to use the package.
|
|
246
|
+
|
|
247
|
+
**Options:**
|
|
248
|
+
|
|
249
|
+
- `database` - Database configuration object
|
|
250
|
+
- `name` - Database name
|
|
251
|
+
- `host` - Database host
|
|
252
|
+
- `port` - Database port (number)
|
|
253
|
+
- `user` - Database user
|
|
254
|
+
- `password` - Database password
|
|
255
|
+
- `ssl` - Enable SSL (optional, boolean)
|
|
256
|
+
- `jwtSecret` - JWT secret key (required)
|
|
257
|
+
- `expiresIn` - Token expiration time (optional, default: '7d')
|
|
258
|
+
|
|
259
|
+
**Architecture:**
|
|
260
|
+
|
|
261
|
+
The module follows the same pattern as dms-new-backend-nestjs:
|
|
262
|
+
|
|
263
|
+
1. Configures TypeORM connection first (with named connection `AUTH_DATABASE_CONNECTION`)
|
|
264
|
+
2. Loads `UserModule` (simple module that uses the configured TypeORM connection)
|
|
265
|
+
3. Loads `AuthModule` (simple module that imports `UserModule` and configures JWT)
|
|
266
|
+
|
|
267
|
+
This ensures proper dependency resolution and follows NestJS best practices.
|
|
268
|
+
|
|
269
|
+
### Guards
|
|
270
|
+
|
|
271
|
+
#### `AuthGuard`
|
|
272
|
+
|
|
273
|
+
Protects routes requiring authentication. Validates JWT tokens.
|
|
274
|
+
|
|
275
|
+
#### `RolesGuard`
|
|
276
|
+
|
|
277
|
+
Checks user roles against route requirements. Must be used with `@Roles()` decorator.
|
|
278
|
+
|
|
279
|
+
### Decorators
|
|
280
|
+
|
|
281
|
+
#### `@Roles(...roles: string[])`
|
|
282
|
+
|
|
283
|
+
Specifies which roles can access a route.
|
|
284
|
+
|
|
285
|
+
#### `@AuthUser()`
|
|
286
|
+
|
|
287
|
+
Extracts the authenticated user from the request.
|
|
288
|
+
|
|
289
|
+
### Services
|
|
290
|
+
|
|
291
|
+
#### `AuthService`
|
|
292
|
+
|
|
293
|
+
- `login(dto: AuthLoginDTO)` - Authenticate user and return JWT token
|
|
294
|
+
- `validateUser(payload: JwtPayload)` - Validate user from JWT payload
|
|
295
|
+
|
|
296
|
+
#### `UserService`
|
|
297
|
+
|
|
298
|
+
- `findById(id: number)` - Find user by ID
|
|
299
|
+
- `findByFields(options)` - Find user by custom criteria
|
|
300
|
+
- `save(userDTO, creator?, updatePassword?)` - Create or update user
|
|
301
|
+
- `update(userDTO, updater?)` - Update user
|
|
302
|
+
- `delete(userDTO)` - Delete user
|
|
303
|
+
- `findAndCount(options)` - Find users with pagination
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
## 🔄 Multiple Applications Setup
|
|
308
|
+
|
|
309
|
+
This package is designed to be reused across multiple applications. Each application can:
|
|
310
|
+
|
|
311
|
+
1. **Share the same auth database** - All apps authenticate against the same user database
|
|
312
|
+
2. **Have separate application databases** - Each app has its own business data
|
|
313
|
+
|
|
314
|
+
Example setup:
|
|
315
|
+
|
|
316
|
+
```
|
|
317
|
+
Application A (E-commerce)
|
|
318
|
+
├── Auth Database (shared) ← Users from @evara-group/guard
|
|
319
|
+
└── App Database A ← Products, Orders, etc.
|
|
320
|
+
|
|
321
|
+
Application B (CMS)
|
|
322
|
+
├── Auth Database (shared) ← Users from @evara-group/guard
|
|
323
|
+
└── App Database B ← Articles, Pages, etc.
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
Both applications use the same `AuthorizationGuardModule.forRoot()` configuration pointing to the same auth database, but each has its own application database.
|
|
327
|
+
|
|
328
|
+
---
|
|
329
|
+
|
|
330
|
+
## 🛠️ Development
|
|
331
|
+
|
|
332
|
+
### Building the Package
|
|
333
|
+
|
|
334
|
+
```bash
|
|
335
|
+
pnpm build
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
### Running Tests
|
|
339
|
+
|
|
340
|
+
```bash
|
|
341
|
+
pnpm test
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
---
|
|
345
|
+
|
|
346
|
+
## 📝 Notes
|
|
347
|
+
|
|
348
|
+
- The package uses a **named TypeORM connection** (`AUTH_DATABASE_CONNECTION`) to avoid conflicts
|
|
349
|
+
- Never set `synchronize: true` in production
|
|
350
|
+
- Always use strong JWT secrets in production
|
|
351
|
+
- The auth database is completely isolated from your application database
|
|
352
|
+
- All password operations use bcrypt for security
|
|
353
|
+
|
|
354
|
+
---
|
|
355
|
+
|
|
356
|
+
## 📄 License
|
|
357
|
+
|
|
358
|
+
ISC
|
|
359
|
+
|
|
360
|
+
---
|
|
361
|
+
|
|
362
|
+
## 👤 Author
|
|
363
|
+
|
|
364
|
+
abdullah anter
|
package/dist/common.d.ts
ADDED
package/dist/common.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AUTH_DATABASE_CONNECTION = exports.JWT_SECRET = void 0;
|
|
4
|
+
exports.JWT_SECRET = "JWT_SECRET_TOKEN";
|
|
5
|
+
exports.AUTH_DATABASE_CONNECTION = "AUTH_DATABASE_CONNECTION";
|
|
6
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":";;;AAIa,QAAA,UAAU,GAAG,kBAAkB,CAAC;AAMhC,QAAA,wBAAwB,GAAG,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
+
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.DatabaseService = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const typeorm_1 = require("@nestjs/typeorm");
|
|
18
|
+
const typeorm_2 = require("typeorm");
|
|
19
|
+
let DatabaseService = class DatabaseService {
|
|
20
|
+
constructor(dataSource) {
|
|
21
|
+
this.dataSource = dataSource;
|
|
22
|
+
}
|
|
23
|
+
async listDatabases() {
|
|
24
|
+
const query = this.dataSource
|
|
25
|
+
.createQueryBuilder()
|
|
26
|
+
.select("datname", "database_name")
|
|
27
|
+
.from("pg_database", "pg_database")
|
|
28
|
+
.where("datistemplate = :isTemplate", { isTemplate: false })
|
|
29
|
+
.orderBy("datname", "ASC");
|
|
30
|
+
return await query.getRawMany();
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
exports.DatabaseService = DatabaseService;
|
|
34
|
+
exports.DatabaseService = DatabaseService = __decorate([
|
|
35
|
+
(0, common_1.Injectable)(),
|
|
36
|
+
__param(0, (0, typeorm_1.InjectDataSource)()),
|
|
37
|
+
__metadata("design:paramtypes", [typeorm_2.DataSource])
|
|
38
|
+
], DatabaseService);
|
|
39
|
+
//# sourceMappingURL=switch.schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switch.schema.js","sourceRoot":"","sources":["../../../src/core/database/switch.schema.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAmD;AACnD,qCAAqC;AAG9B,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,YAAiD,UAAsB;QAAtB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAE3E,KAAK,CAAC,aAAa;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU;aAC1B,kBAAkB,EAAE;aACpB,MAAM,CAAC,SAAS,EAAE,eAAe,CAAC;aAClC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC;aAClC,KAAK,CAAC,6BAA6B,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;aAC3D,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAE7B,OAAO,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;IAClC,CAAC;CACF,CAAA;AAbY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;IAEE,WAAA,IAAA,0BAAgB,GAAE,CAAA;qCAA8B,oBAAU;GAD5D,eAAe,CAa3B"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export declare enum UserPermissionEnum {
|
|
2
|
+
AUTH_USER_LIST = "AUTH_USER_LIST",
|
|
3
|
+
AUTH_USER_CREATE = "AUTH_USER_CREATE",
|
|
4
|
+
AUTH_USER_READ = "AUTH_USER_READ",
|
|
5
|
+
AUTH_USER_UPDATE = "AUTH_USER_UPDATE",
|
|
6
|
+
AUTH_USER_DELETE = "AUTH_USER_DELETE",
|
|
7
|
+
AUTH_ROLE_LIST = "AUTH_ROLE_LIST",
|
|
8
|
+
AUTH_ROLE_CREATE = "AUTH_ROLE_CREATE",
|
|
9
|
+
AUTH_ROLE_READ = "AUTH_ROLE_READ",
|
|
10
|
+
AUTH_ROLE_UPDATE = "AUTH_ROLE_UPDATE",
|
|
11
|
+
AUTH_ROLE_DELETE = "AUTH_ROLE_DELETE",
|
|
12
|
+
AUTH_PERMISSION_LIST = "AUTH_PERMISSION_LIST",
|
|
13
|
+
AUTH_PERMISSION_CREATE = "AUTH_PERMISSION_CREATE",
|
|
14
|
+
AUTH_PERMISSION_READ = "AUTH_PERMISSION_READ",
|
|
15
|
+
AUTH_PERMISSION_UPDATE = "AUTH_PERMISSION_UPDATE",
|
|
16
|
+
AUTH_PERMISSION_DELETE = "AUTH_PERMISSION_DELETE",
|
|
17
|
+
ORGANIZATION_SETTINGS_MINISTRIES_LIST = "ORGANIZATION_SETTINGS_MINISTRIES_LIST",
|
|
18
|
+
ORGANIZATION_SETTINGS_MINISTRIES_CREATE = "ORGANIZATION_SETTINGS_MINISTRIES_CREATE",
|
|
19
|
+
ORGANIZATION_SETTINGS_MINISTRIES_READ = "ORGANIZATION_SETTINGS_MINISTRIES_READ",
|
|
20
|
+
ORGANIZATION_SETTINGS_MINISTRIES_UPDATE = "ORGANIZATION_SETTINGS_MINISTRIES_UPDATE",
|
|
21
|
+
ORGANIZATION_SETTINGS_MINISTRIES_DELETE = "ORGANIZATION_SETTINGS_MINISTRIES_DELETE",
|
|
22
|
+
ORGANIZATION_SETTINGS_DEPARTMENTS_LIST = "ORGANIZATION_SETTINGS_DEPARTMENTS_LIST",
|
|
23
|
+
ORGANIZATION_SETTINGS_DEPARTMENTS_CREATE = "ORGANIZATION_SETTINGS_DEPARTMENTS_CREATE",
|
|
24
|
+
ORGANIZATION_SETTINGS_DEPARTMENTS_READ = "ORGANIZATION_SETTINGS_DEPARTMENTS_READ",
|
|
25
|
+
ORGANIZATION_SETTINGS_DEPARTMENTS_UPDATE = "ORGANIZATION_SETTINGS_DEPARTMENTS_UPDATE",
|
|
26
|
+
ORGANIZATION_SETTINGS_DEPARTMENTS_DELETE = "ORGANIZATION_SETTINGS_DEPARTMENTS_DELETE",
|
|
27
|
+
ORGANIZATION_SETTINGS_AGENCIES_LIST = "ORGANIZATION_SETTINGS_AGENCIES_LIST",
|
|
28
|
+
ORGANIZATION_SETTINGS_AGENCIES_CREATE = "ORGANIZATION_SETTINGS_AGENCIES_CREATE",
|
|
29
|
+
ORGANIZATION_SETTINGS_AGENCIES_READ = "ORGANIZATION_SETTINGS_AGENCIES_READ",
|
|
30
|
+
ORGANIZATION_SETTINGS_AGENCIES_UPDATE = "ORGANIZATION_SETTINGS_AGENCIES_UPDATE",
|
|
31
|
+
ORGANIZATION_SETTINGS_AGENCIES_DELETE = "ORGANIZATION_SETTINGS_AGENCIES_DELETE"
|
|
32
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UserPermissionEnum = void 0;
|
|
4
|
+
var UserPermissionEnum;
|
|
5
|
+
(function (UserPermissionEnum) {
|
|
6
|
+
UserPermissionEnum["AUTH_USER_LIST"] = "AUTH_USER_LIST";
|
|
7
|
+
UserPermissionEnum["AUTH_USER_CREATE"] = "AUTH_USER_CREATE";
|
|
8
|
+
UserPermissionEnum["AUTH_USER_READ"] = "AUTH_USER_READ";
|
|
9
|
+
UserPermissionEnum["AUTH_USER_UPDATE"] = "AUTH_USER_UPDATE";
|
|
10
|
+
UserPermissionEnum["AUTH_USER_DELETE"] = "AUTH_USER_DELETE";
|
|
11
|
+
UserPermissionEnum["AUTH_ROLE_LIST"] = "AUTH_ROLE_LIST";
|
|
12
|
+
UserPermissionEnum["AUTH_ROLE_CREATE"] = "AUTH_ROLE_CREATE";
|
|
13
|
+
UserPermissionEnum["AUTH_ROLE_READ"] = "AUTH_ROLE_READ";
|
|
14
|
+
UserPermissionEnum["AUTH_ROLE_UPDATE"] = "AUTH_ROLE_UPDATE";
|
|
15
|
+
UserPermissionEnum["AUTH_ROLE_DELETE"] = "AUTH_ROLE_DELETE";
|
|
16
|
+
UserPermissionEnum["AUTH_PERMISSION_LIST"] = "AUTH_PERMISSION_LIST";
|
|
17
|
+
UserPermissionEnum["AUTH_PERMISSION_CREATE"] = "AUTH_PERMISSION_CREATE";
|
|
18
|
+
UserPermissionEnum["AUTH_PERMISSION_READ"] = "AUTH_PERMISSION_READ";
|
|
19
|
+
UserPermissionEnum["AUTH_PERMISSION_UPDATE"] = "AUTH_PERMISSION_UPDATE";
|
|
20
|
+
UserPermissionEnum["AUTH_PERMISSION_DELETE"] = "AUTH_PERMISSION_DELETE";
|
|
21
|
+
UserPermissionEnum["ORGANIZATION_SETTINGS_MINISTRIES_LIST"] = "ORGANIZATION_SETTINGS_MINISTRIES_LIST";
|
|
22
|
+
UserPermissionEnum["ORGANIZATION_SETTINGS_MINISTRIES_CREATE"] = "ORGANIZATION_SETTINGS_MINISTRIES_CREATE";
|
|
23
|
+
UserPermissionEnum["ORGANIZATION_SETTINGS_MINISTRIES_READ"] = "ORGANIZATION_SETTINGS_MINISTRIES_READ";
|
|
24
|
+
UserPermissionEnum["ORGANIZATION_SETTINGS_MINISTRIES_UPDATE"] = "ORGANIZATION_SETTINGS_MINISTRIES_UPDATE";
|
|
25
|
+
UserPermissionEnum["ORGANIZATION_SETTINGS_MINISTRIES_DELETE"] = "ORGANIZATION_SETTINGS_MINISTRIES_DELETE";
|
|
26
|
+
UserPermissionEnum["ORGANIZATION_SETTINGS_DEPARTMENTS_LIST"] = "ORGANIZATION_SETTINGS_DEPARTMENTS_LIST";
|
|
27
|
+
UserPermissionEnum["ORGANIZATION_SETTINGS_DEPARTMENTS_CREATE"] = "ORGANIZATION_SETTINGS_DEPARTMENTS_CREATE";
|
|
28
|
+
UserPermissionEnum["ORGANIZATION_SETTINGS_DEPARTMENTS_READ"] = "ORGANIZATION_SETTINGS_DEPARTMENTS_READ";
|
|
29
|
+
UserPermissionEnum["ORGANIZATION_SETTINGS_DEPARTMENTS_UPDATE"] = "ORGANIZATION_SETTINGS_DEPARTMENTS_UPDATE";
|
|
30
|
+
UserPermissionEnum["ORGANIZATION_SETTINGS_DEPARTMENTS_DELETE"] = "ORGANIZATION_SETTINGS_DEPARTMENTS_DELETE";
|
|
31
|
+
UserPermissionEnum["ORGANIZATION_SETTINGS_AGENCIES_LIST"] = "ORGANIZATION_SETTINGS_AGENCIES_LIST";
|
|
32
|
+
UserPermissionEnum["ORGANIZATION_SETTINGS_AGENCIES_CREATE"] = "ORGANIZATION_SETTINGS_AGENCIES_CREATE";
|
|
33
|
+
UserPermissionEnum["ORGANIZATION_SETTINGS_AGENCIES_READ"] = "ORGANIZATION_SETTINGS_AGENCIES_READ";
|
|
34
|
+
UserPermissionEnum["ORGANIZATION_SETTINGS_AGENCIES_UPDATE"] = "ORGANIZATION_SETTINGS_AGENCIES_UPDATE";
|
|
35
|
+
UserPermissionEnum["ORGANIZATION_SETTINGS_AGENCIES_DELETE"] = "ORGANIZATION_SETTINGS_AGENCIES_DELETE";
|
|
36
|
+
})(UserPermissionEnum || (exports.UserPermissionEnum = UserPermissionEnum = {}));
|
|
37
|
+
//# sourceMappingURL=user-permission.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-permission.js","sourceRoot":"","sources":["../../../src/core/enums/user-permission.ts"],"names":[],"mappings":";;;AAAA,IAAY,kBAkCX;AAlCD,WAAY,kBAAkB;IAC5B,uDAAiC,CAAA;IACjC,2DAAqC,CAAA;IACrC,uDAAiC,CAAA;IACjC,2DAAqC,CAAA;IACrC,2DAAqC,CAAA;IACrC,uDAAiC,CAAA;IACjC,2DAAqC,CAAA;IACrC,uDAAiC,CAAA;IACjC,2DAAqC,CAAA;IACrC,2DAAqC,CAAA;IACrC,mEAA6C,CAAA;IAC7C,uEAAiD,CAAA;IACjD,mEAA6C,CAAA;IAC7C,uEAAiD,CAAA;IACjD,uEAAiD,CAAA;IAEjD,qGAA+E,CAAA;IAC/E,yGAAmF,CAAA;IACnF,qGAA+E,CAAA;IAC/E,yGAAmF,CAAA;IACnF,yGAAmF,CAAA;IAEnF,uGAAiF,CAAA;IACjF,2GAAqF,CAAA;IACrF,uGAAiF,CAAA;IACjF,2GAAqF,CAAA;IACrF,2GAAqF,CAAA;IAErF,iGAA2E,CAAA;IAC3E,qGAA+E,CAAA;IAC/E,iGAA2E,CAAA;IAC3E,qGAA+E,CAAA;IAC/E,qGAA+E,CAAA;AACjF,CAAC,EAlCW,kBAAkB,kCAAlB,kBAAkB,QAkC7B"}
|
|
@@ -10,6 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.BaseEntity = void 0;
|
|
13
|
+
require("reflect-metadata");
|
|
13
14
|
const typeorm_1 = require("typeorm");
|
|
14
15
|
class BaseEntity {
|
|
15
16
|
}
|
|
@@ -23,7 +24,7 @@ __decorate([
|
|
|
23
24
|
__metadata("design:type", String)
|
|
24
25
|
], BaseEntity.prototype, "createdBy", void 0);
|
|
25
26
|
__decorate([
|
|
26
|
-
(0, typeorm_1.
|
|
27
|
+
(0, typeorm_1.Column)({ name: "created_at", type: "timestamptz", nullable: true }),
|
|
27
28
|
__metadata("design:type", Date)
|
|
28
29
|
], BaseEntity.prototype, "createdAt", void 0);
|
|
29
30
|
__decorate([
|
|
@@ -31,7 +32,7 @@ __decorate([
|
|
|
31
32
|
__metadata("design:type", String)
|
|
32
33
|
], BaseEntity.prototype, "updatedBy", void 0);
|
|
33
34
|
__decorate([
|
|
34
|
-
(0, typeorm_1.
|
|
35
|
+
(0, typeorm_1.Column)({ name: "updated_at", type: "timestamptz", nullable: true }),
|
|
35
36
|
__metadata("design:type", Date)
|
|
36
37
|
], BaseEntity.prototype, "updatedAt", void 0);
|
|
37
38
|
__decorate([
|
|
@@ -39,7 +40,7 @@ __decorate([
|
|
|
39
40
|
__metadata("design:type", String)
|
|
40
41
|
], BaseEntity.prototype, "deletedBy", void 0);
|
|
41
42
|
__decorate([
|
|
42
|
-
(0, typeorm_1.
|
|
43
|
+
(0, typeorm_1.Column)({ name: "deleted_at", type: "timestamptz", nullable: true }),
|
|
43
44
|
__metadata("design:type", Date)
|
|
44
45
|
], BaseEntity.prototype, "deletedAt", void 0);
|
|
45
46
|
//# sourceMappingURL=base.entity.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.entity.js","sourceRoot":"","sources":["../../../src/core/utils/base.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"base.entity.js","sourceRoot":"","sources":["../../../src/core/utils/base.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4BAA0B;AAE1B,qCAAyD;AAKzD,MAAsB,UAAU;CAqB/B;AArBD,gCAqBC;AAnBC;IADC,IAAA,gCAAsB,GAAE;;sCACb;AAGZ;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CAC5B;AAGnB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACxD,IAAI;6CAAC;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CAC5B;AAGnB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACxD,IAAI;6CAAC;AAGjB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CAC5B;AAGnB;IADC,IAAA,gBAAM,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;8BACxD,IAAI;6CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.baseColumns = void 0;
|
|
4
|
+
exports.baseColumns = [
|
|
5
|
+
{
|
|
6
|
+
name: 'id',
|
|
7
|
+
type: 'int4',
|
|
8
|
+
isPrimary: true,
|
|
9
|
+
isGenerated: true,
|
|
10
|
+
generationStrategy: 'increment',
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
name: 'created_by',
|
|
14
|
+
type: 'varchar',
|
|
15
|
+
isNullable: true,
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: 'created_at',
|
|
19
|
+
type: 'timestamptz',
|
|
20
|
+
isNullable: true,
|
|
21
|
+
default: 'now()',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
name: 'updated_by',
|
|
25
|
+
type: 'varchar',
|
|
26
|
+
isNullable: true,
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
name: 'updated_at',
|
|
30
|
+
type: 'timestamptz',
|
|
31
|
+
isNullable: true,
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'deleted_by',
|
|
35
|
+
type: 'varchar',
|
|
36
|
+
isNullable: true,
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
name: 'deleted_at',
|
|
40
|
+
type: 'timestamptz',
|
|
41
|
+
isNullable: true,
|
|
42
|
+
},
|
|
43
|
+
];
|
|
44
|
+
//# sourceMappingURL=base.migration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.migration.js","sourceRoot":"","sources":["../../../src/core/utils/base.migration.ts"],"names":[],"mappings":";;;AAEa,QAAA,WAAW,GAAyB;IAC/C;QACE,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,MAAM;QACZ,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,IAAI;QACjB,kBAAkB,EAAE,WAAW;KAChC;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,IAAI;KACjB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,IAAI;QAChB,OAAO,EAAE,OAAO;KACjB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,IAAI;KACjB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,IAAI;KACjB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,IAAI;KACjB;IACD;QACE,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,IAAI;KACjB;CACF,CAAC"}
|