@ciscode/authentication-kit 1.1.5 → 1.2.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.
Files changed (90) hide show
  1. package/README.md +455 -120
  2. package/dist/auth-kit.module.d.ts +6 -4
  3. package/dist/auth-kit.module.js +64 -13
  4. package/dist/config/passport.config.d.ts +2 -1
  5. package/dist/config/passport.config.js +64 -241
  6. package/dist/controllers/auth.controller.d.ts +35 -19
  7. package/dist/controllers/auth.controller.js +155 -488
  8. package/dist/controllers/permissions.controller.d.ts +10 -5
  9. package/dist/controllers/permissions.controller.js +40 -76
  10. package/dist/controllers/roles.controller.d.ts +11 -5
  11. package/dist/controllers/roles.controller.js +49 -66
  12. package/dist/controllers/users.controller.d.ts +15 -6
  13. package/dist/controllers/users.controller.js +56 -203
  14. package/dist/dtos/auth/forgot-password.dto.d.ts +3 -0
  15. package/dist/dtos/auth/forgot-password.dto.js +20 -0
  16. package/dist/dtos/auth/login.dto.d.ts +4 -0
  17. package/dist/dtos/auth/login.dto.js +24 -0
  18. package/dist/dtos/auth/refresh-token.dto.d.ts +3 -0
  19. package/dist/dtos/auth/refresh-token.dto.js +21 -0
  20. package/dist/dtos/auth/register.dto.d.ts +13 -0
  21. package/dist/dtos/auth/register.dto.js +56 -0
  22. package/dist/dtos/auth/resend-verification.dto.d.ts +3 -0
  23. package/dist/dtos/auth/resend-verification.dto.js +20 -0
  24. package/dist/dtos/auth/reset-password.dto.d.ts +4 -0
  25. package/dist/dtos/auth/reset-password.dto.js +25 -0
  26. package/dist/dtos/auth/update-user-role.dto.d.ts +3 -0
  27. package/dist/dtos/auth/update-user-role.dto.js +21 -0
  28. package/dist/dtos/auth/verify-email.dto.d.ts +3 -0
  29. package/dist/dtos/auth/verify-email.dto.js +20 -0
  30. package/dist/dtos/permission/create-permission.dto.d.ts +4 -0
  31. package/dist/dtos/permission/create-permission.dto.js +25 -0
  32. package/dist/dtos/permission/update-permission.dto.d.ts +4 -0
  33. package/dist/dtos/permission/update-permission.dto.js +26 -0
  34. package/dist/dtos/role/create-role.dto.d.ts +4 -0
  35. package/dist/dtos/role/create-role.dto.js +26 -0
  36. package/dist/dtos/role/update-role.dto.d.ts +7 -0
  37. package/dist/dtos/role/update-role.dto.js +35 -0
  38. package/dist/index.d.ts +5 -2
  39. package/dist/index.js +11 -5
  40. package/dist/middleware/admin.decorator.d.ts +1 -0
  41. package/dist/middleware/admin.decorator.js +8 -0
  42. package/dist/middleware/admin.guard.d.ts +7 -0
  43. package/dist/middleware/admin.guard.js +35 -0
  44. package/dist/middleware/authenticate.guard.d.ts +5 -1
  45. package/dist/middleware/authenticate.guard.js +35 -8
  46. package/dist/middleware/role.guard.d.ts +4 -0
  47. package/dist/middleware/role.guard.js +29 -0
  48. package/dist/models/permission.model.d.ts +8 -16
  49. package/dist/models/permission.model.js +25 -14
  50. package/dist/models/role.model.d.ts +9 -28
  51. package/dist/models/role.model.js +26 -14
  52. package/dist/models/user.model.d.ts +22 -64
  53. package/dist/models/user.model.js +82 -41
  54. package/dist/repositories/permission.repository.d.ts +34 -0
  55. package/dist/repositories/permission.repository.js +47 -0
  56. package/dist/repositories/role.repository.d.ts +39 -0
  57. package/dist/repositories/role.repository.js +50 -0
  58. package/dist/repositories/user.repository.d.ts +57 -0
  59. package/dist/repositories/user.repository.js +71 -0
  60. package/dist/services/admin-role.service.d.ts +7 -0
  61. package/dist/services/admin-role.service.js +33 -0
  62. package/dist/services/auth.service.d.ts +49 -0
  63. package/dist/services/auth.service.js +219 -0
  64. package/dist/services/mail.service.d.ts +5 -0
  65. package/dist/services/mail.service.js +39 -0
  66. package/dist/services/oauth.service.d.ts +32 -0
  67. package/dist/services/oauth.service.js +138 -0
  68. package/dist/services/permissions.service.d.ts +19 -0
  69. package/dist/services/permissions.service.js +44 -0
  70. package/dist/services/roles.service.d.ts +23 -0
  71. package/dist/services/roles.service.js +57 -0
  72. package/dist/services/seed.service.d.ts +11 -0
  73. package/dist/services/seed.service.js +50 -0
  74. package/dist/services/users.service.d.ts +30 -0
  75. package/dist/services/users.service.js +81 -0
  76. package/package.json +31 -21
  77. package/dist/config/db.config.d.ts +0 -1
  78. package/dist/config/db.config.js +0 -22
  79. package/dist/controllers/admin.controller.d.ts +0 -4
  80. package/dist/controllers/admin.controller.js +0 -59
  81. package/dist/controllers/password-reset.controller.d.ts +0 -8
  82. package/dist/controllers/password-reset.controller.js +0 -146
  83. package/dist/middleware/auth.guard.d.ts +0 -4
  84. package/dist/middleware/auth.guard.js +0 -39
  85. package/dist/middleware/permission.guard.d.ts +0 -4
  86. package/dist/middleware/permission.guard.js +0 -52
  87. package/dist/models/client.model.d.ts +0 -54
  88. package/dist/models/client.model.js +0 -37
  89. package/dist/models/tenant.model.d.ts +0 -19
  90. package/dist/models/tenant.model.js +0 -15
@@ -1,7 +1,12 @@
1
- import type { Request, Response } from 'express';
1
+ import type { Response } from 'express';
2
+ import { PermissionsService } from '../services/permissions.service';
3
+ import { CreatePermissionDto } from '../dtos/permission/create-permission.dto';
4
+ import { UpdatePermissionDto } from '../dtos/permission/update-permission.dto';
2
5
  export declare class PermissionsController {
3
- createPermission(req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
4
- getPermissions(req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
5
- updatePermission(req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
6
- deletePermission(req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
6
+ private readonly perms;
7
+ constructor(perms: PermissionsService);
8
+ create(dto: CreatePermissionDto, res: Response): Promise<Response<any, Record<string, any>>>;
9
+ list(res: Response): Promise<Response<any, Record<string, any>>>;
10
+ update(id: string, dto: UpdatePermissionDto, res: Response): Promise<Response<any, Record<string, any>>>;
11
+ delete(id: string, res: Response): Promise<Response<any, Record<string, any>>>;
7
12
  }
@@ -11,105 +11,69 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
- var __importDefault = (this && this.__importDefault) || function (mod) {
15
- return (mod && mod.__esModule) ? mod : { "default": mod };
16
- };
17
14
  Object.defineProperty(exports, "__esModule", { value: true });
18
15
  exports.PermissionsController = void 0;
19
16
  const common_1 = require("@nestjs/common");
20
- const permission_model_1 = __importDefault(require("../models/permission.model"));
17
+ const permissions_service_1 = require("../services/permissions.service");
18
+ const create_permission_dto_1 = require("../dtos/permission/create-permission.dto");
19
+ const update_permission_dto_1 = require("../dtos/permission/update-permission.dto");
20
+ const admin_decorator_1 = require("../middleware/admin.decorator");
21
21
  let PermissionsController = class PermissionsController {
22
- async createPermission(req, res) {
23
- try {
24
- const { name, description } = req.body;
25
- if (!name) {
26
- return res.status(400).json({ message: 'Permission name is required.' });
27
- }
28
- const newPermission = new permission_model_1.default({ name, description });
29
- await newPermission.save();
30
- return res.status(201).json(newPermission);
31
- }
32
- catch (error) {
33
- console.error('Error creating permission:', error);
34
- return res.status(500).json({ message: 'Server error', error: error.message });
35
- }
22
+ constructor(perms) {
23
+ this.perms = perms;
24
+ }
25
+ async create(dto, res) {
26
+ const result = await this.perms.create(dto);
27
+ return res.status(201).json(result);
36
28
  }
37
- async getPermissions(req, res) {
38
- try {
39
- const { page, limit } = req.query;
40
- const permissions = await permission_model_1.default.paginate({}, {
41
- page: parseInt(page, 10) || 1,
42
- limit: parseInt(limit, 10) || 10
43
- });
44
- return res.status(200).json(permissions);
45
- }
46
- catch (error) {
47
- console.error('Error retrieving permissions:', error);
48
- return res.status(500).json({ message: 'Server error', error: error.message });
49
- }
29
+ async list(res) {
30
+ const result = await this.perms.list();
31
+ return res.status(200).json(result);
50
32
  }
51
- async updatePermission(req, res) {
52
- try {
53
- const { id } = req.params;
54
- const updatedPermission = await permission_model_1.default.findByIdAndUpdate(id, req.body, { new: true });
55
- if (!updatedPermission) {
56
- return res.status(404).json({ message: 'Permission not found.' });
57
- }
58
- return res.status(200).json(updatedPermission);
59
- }
60
- catch (error) {
61
- console.error('Error updating permission:', error);
62
- return res.status(500).json({ message: 'Server error', error: error.message });
63
- }
33
+ async update(id, dto, res) {
34
+ const result = await this.perms.update(id, dto);
35
+ return res.status(200).json(result);
64
36
  }
65
- async deletePermission(req, res) {
66
- try {
67
- const { id } = req.params;
68
- const deletedPermission = await permission_model_1.default.findByIdAndDelete(id);
69
- if (!deletedPermission) {
70
- return res.status(404).json({ message: 'Permission not found.' });
71
- }
72
- return res.status(200).json({ message: 'Permission deleted successfully.' });
73
- }
74
- catch (error) {
75
- console.error('Error deleting permission:', error);
76
- return res.status(500).json({ message: 'Server error', error: error.message });
77
- }
37
+ async delete(id, res) {
38
+ const result = await this.perms.delete(id);
39
+ return res.status(200).json(result);
78
40
  }
79
41
  };
80
42
  exports.PermissionsController = PermissionsController;
81
43
  __decorate([
82
- (0, common_1.Post)('add-permission'),
83
- __param(0, (0, common_1.Req)()),
44
+ (0, common_1.Post)(),
45
+ __param(0, (0, common_1.Body)()),
84
46
  __param(1, (0, common_1.Res)()),
85
47
  __metadata("design:type", Function),
86
- __metadata("design:paramtypes", [Object, Object]),
48
+ __metadata("design:paramtypes", [create_permission_dto_1.CreatePermissionDto, Object]),
87
49
  __metadata("design:returntype", Promise)
88
- ], PermissionsController.prototype, "createPermission", null);
50
+ ], PermissionsController.prototype, "create", null);
89
51
  __decorate([
90
- (0, common_1.Get)('get-permission'),
91
- __param(0, (0, common_1.Req)()),
92
- __param(1, (0, common_1.Res)()),
52
+ (0, common_1.Get)(),
53
+ __param(0, (0, common_1.Res)()),
93
54
  __metadata("design:type", Function),
94
- __metadata("design:paramtypes", [Object, Object]),
55
+ __metadata("design:paramtypes", [Object]),
95
56
  __metadata("design:returntype", Promise)
96
- ], PermissionsController.prototype, "getPermissions", null);
57
+ ], PermissionsController.prototype, "list", null);
97
58
  __decorate([
98
- (0, common_1.Put)('update-permission/:id'),
99
- __param(0, (0, common_1.Req)()),
100
- __param(1, (0, common_1.Res)()),
59
+ (0, common_1.Put)(':id'),
60
+ __param(0, (0, common_1.Param)('id')),
61
+ __param(1, (0, common_1.Body)()),
62
+ __param(2, (0, common_1.Res)()),
101
63
  __metadata("design:type", Function),
102
- __metadata("design:paramtypes", [Object, Object]),
64
+ __metadata("design:paramtypes", [String, update_permission_dto_1.UpdatePermissionDto, Object]),
103
65
  __metadata("design:returntype", Promise)
104
- ], PermissionsController.prototype, "updatePermission", null);
66
+ ], PermissionsController.prototype, "update", null);
105
67
  __decorate([
106
- (0, common_1.Delete)('delete-permission/:id'),
107
- __param(0, (0, common_1.Req)()),
68
+ (0, common_1.Delete)(':id'),
69
+ __param(0, (0, common_1.Param)('id')),
108
70
  __param(1, (0, common_1.Res)()),
109
71
  __metadata("design:type", Function),
110
- __metadata("design:paramtypes", [Object, Object]),
72
+ __metadata("design:paramtypes", [String, Object]),
111
73
  __metadata("design:returntype", Promise)
112
- ], PermissionsController.prototype, "deletePermission", null);
74
+ ], PermissionsController.prototype, "delete", null);
113
75
  exports.PermissionsController = PermissionsController = __decorate([
114
- (0, common_1.Controller)('api/auth/permissions')
76
+ (0, admin_decorator_1.Admin)(),
77
+ (0, common_1.Controller)('api/admin/permissions'),
78
+ __metadata("design:paramtypes", [permissions_service_1.PermissionsService])
115
79
  ], PermissionsController);
@@ -1,7 +1,13 @@
1
- import type { Request, Response } from 'express';
1
+ import type { Response } from 'express';
2
+ import { RolesService } from '../services/roles.service';
3
+ import { CreateRoleDto } from '../dtos/role/create-role.dto';
4
+ import { UpdateRoleDto, UpdateRolePermissionsDto } from '../dtos/role/update-role.dto';
2
5
  export declare class RolesController {
3
- createRole(req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
4
- getRoles(req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
5
- updateRole(req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
6
- deleteRole(req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
6
+ private readonly roles;
7
+ constructor(roles: RolesService);
8
+ create(dto: CreateRoleDto, res: Response): Promise<Response<any, Record<string, any>>>;
9
+ list(res: Response): Promise<Response<any, Record<string, any>>>;
10
+ update(id: string, dto: UpdateRoleDto, res: Response): Promise<Response<any, Record<string, any>>>;
11
+ delete(id: string, res: Response): Promise<Response<any, Record<string, any>>>;
12
+ setPermissions(id: string, dto: UpdateRolePermissionsDto, res: Response): Promise<Response<any, Record<string, any>>>;
7
13
  }
@@ -11,99 +11,82 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
- var __importDefault = (this && this.__importDefault) || function (mod) {
15
- return (mod && mod.__esModule) ? mod : { "default": mod };
16
- };
17
14
  Object.defineProperty(exports, "__esModule", { value: true });
18
15
  exports.RolesController = void 0;
19
16
  const common_1 = require("@nestjs/common");
20
- const role_model_1 = __importDefault(require("../models/role.model"));
17
+ const roles_service_1 = require("../services/roles.service");
18
+ const create_role_dto_1 = require("../dtos/role/create-role.dto");
19
+ const update_role_dto_1 = require("../dtos/role/update-role.dto");
20
+ const admin_decorator_1 = require("../middleware/admin.decorator");
21
21
  let RolesController = class RolesController {
22
- async createRole(req, res) {
23
- try {
24
- const { name, description, permissions } = req.body;
25
- if (!name) {
26
- return res.status(400).json({ message: 'Role name is required.' });
27
- }
28
- const newRole = new role_model_1.default({ name, description, permissions });
29
- await newRole.save();
30
- return res.status(201).json(newRole);
31
- }
32
- catch (error) {
33
- console.error('Error creating role:', error);
34
- return res.status(500).json({ message: 'Server error', error: error.message });
35
- }
22
+ constructor(roles) {
23
+ this.roles = roles;
24
+ }
25
+ async create(dto, res) {
26
+ const result = await this.roles.create(dto);
27
+ return res.status(201).json(result);
36
28
  }
37
- async getRoles(req, res) {
38
- try {
39
- const roles = await role_model_1.default.paginate({}, { page: 1, limit: 100 });
40
- return res.status(200).json(roles);
41
- }
42
- catch (error) {
43
- console.error('Error retrieving roles:', error);
44
- return res.status(500).json({ message: 'Server error', error: error.message });
45
- }
29
+ async list(res) {
30
+ const result = await this.roles.list();
31
+ return res.status(200).json(result);
46
32
  }
47
- async updateRole(req, res) {
48
- try {
49
- const updatedRole = await role_model_1.default.findByIdAndUpdate(req.params.id, req.body, { new: true });
50
- if (!updatedRole) {
51
- return res.status(404).json({ message: 'Role not found.' });
52
- }
53
- return res.status(200).json(updatedRole);
54
- }
55
- catch (error) {
56
- console.error('Error updating role:', error);
57
- return res.status(500).json({ message: 'Server error', error: error.message });
58
- }
33
+ async update(id, dto, res) {
34
+ const result = await this.roles.update(id, dto);
35
+ return res.status(200).json(result);
59
36
  }
60
- async deleteRole(req, res) {
61
- try {
62
- const deletedRole = await role_model_1.default.findByIdAndDelete(req.params.id);
63
- if (!deletedRole) {
64
- return res.status(404).json({ message: 'Role not found.' });
65
- }
66
- return res.status(200).json({ message: 'Role deleted successfully.' });
67
- }
68
- catch (error) {
69
- console.error('Error deleting role:', error);
70
- return res.status(500).json({ message: 'Server error', error: error.message });
71
- }
37
+ async delete(id, res) {
38
+ const result = await this.roles.delete(id);
39
+ return res.status(200).json(result);
40
+ }
41
+ async setPermissions(id, dto, res) {
42
+ const result = await this.roles.setPermissions(id, dto.permissions);
43
+ return res.status(200).json(result);
72
44
  }
73
45
  };
74
46
  exports.RolesController = RolesController;
75
47
  __decorate([
76
48
  (0, common_1.Post)(),
77
- __param(0, (0, common_1.Req)()),
49
+ __param(0, (0, common_1.Body)()),
78
50
  __param(1, (0, common_1.Res)()),
79
51
  __metadata("design:type", Function),
80
- __metadata("design:paramtypes", [Object, Object]),
52
+ __metadata("design:paramtypes", [create_role_dto_1.CreateRoleDto, Object]),
81
53
  __metadata("design:returntype", Promise)
82
- ], RolesController.prototype, "createRole", null);
54
+ ], RolesController.prototype, "create", null);
83
55
  __decorate([
84
56
  (0, common_1.Get)(),
85
- __param(0, (0, common_1.Req)()),
86
- __param(1, (0, common_1.Res)()),
57
+ __param(0, (0, common_1.Res)()),
87
58
  __metadata("design:type", Function),
88
- __metadata("design:paramtypes", [Object, Object]),
59
+ __metadata("design:paramtypes", [Object]),
89
60
  __metadata("design:returntype", Promise)
90
- ], RolesController.prototype, "getRoles", null);
61
+ ], RolesController.prototype, "list", null);
91
62
  __decorate([
92
63
  (0, common_1.Put)(':id'),
93
- __param(0, (0, common_1.Req)()),
94
- __param(1, (0, common_1.Res)()),
64
+ __param(0, (0, common_1.Param)('id')),
65
+ __param(1, (0, common_1.Body)()),
66
+ __param(2, (0, common_1.Res)()),
95
67
  __metadata("design:type", Function),
96
- __metadata("design:paramtypes", [Object, Object]),
68
+ __metadata("design:paramtypes", [String, update_role_dto_1.UpdateRoleDto, Object]),
97
69
  __metadata("design:returntype", Promise)
98
- ], RolesController.prototype, "updateRole", null);
70
+ ], RolesController.prototype, "update", null);
99
71
  __decorate([
100
72
  (0, common_1.Delete)(':id'),
101
- __param(0, (0, common_1.Req)()),
73
+ __param(0, (0, common_1.Param)('id')),
102
74
  __param(1, (0, common_1.Res)()),
103
75
  __metadata("design:type", Function),
104
- __metadata("design:paramtypes", [Object, Object]),
76
+ __metadata("design:paramtypes", [String, Object]),
77
+ __metadata("design:returntype", Promise)
78
+ ], RolesController.prototype, "delete", null);
79
+ __decorate([
80
+ (0, common_1.Put)(':id/permissions'),
81
+ __param(0, (0, common_1.Param)('id')),
82
+ __param(1, (0, common_1.Body)()),
83
+ __param(2, (0, common_1.Res)()),
84
+ __metadata("design:type", Function),
85
+ __metadata("design:paramtypes", [String, update_role_dto_1.UpdateRolePermissionsDto, Object]),
105
86
  __metadata("design:returntype", Promise)
106
- ], RolesController.prototype, "deleteRole", null);
87
+ ], RolesController.prototype, "setPermissions", null);
107
88
  exports.RolesController = RolesController = __decorate([
108
- (0, common_1.Controller)('api/auth/roles')
89
+ (0, admin_decorator_1.Admin)(),
90
+ (0, common_1.Controller)('api/admin/roles'),
91
+ __metadata("design:paramtypes", [roles_service_1.RolesService])
109
92
  ], RolesController);
@@ -1,8 +1,17 @@
1
- import type { Request, Response } from 'express';
1
+ import type { Response } from 'express';
2
+ import { UsersService } from '../services/users.service';
3
+ import { RegisterDto } from '../dtos/auth/register.dto';
4
+ import { UpdateUserRolesDto } from '../dtos/auth/update-user-role.dto';
2
5
  export declare class UsersController {
3
- createUser(req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
4
- updateUser(req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
5
- deleteUser(req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
6
- createUserInvitation(req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
7
- getAllUsers(req: Request, res: Response): Promise<Response<any, Record<string, any>>>;
6
+ private readonly users;
7
+ constructor(users: UsersService);
8
+ create(dto: RegisterDto, res: Response): Promise<Response<any, Record<string, any>>>;
9
+ list(query: {
10
+ email?: string;
11
+ username?: string;
12
+ }, res: Response): Promise<Response<any, Record<string, any>>>;
13
+ ban(id: string, res: Response): Promise<Response<any, Record<string, any>>>;
14
+ unban(id: string, res: Response): Promise<Response<any, Record<string, any>>>;
15
+ delete(id: string, res: Response): Promise<Response<any, Record<string, any>>>;
16
+ updateRoles(id: string, dto: UpdateUserRolesDto, res: Response): Promise<Response<any, Record<string, any>>>;
8
17
  }