@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
@@ -0,0 +1,26 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.CreateRoleDto = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ class CreateRoleDto {
15
+ }
16
+ exports.CreateRoleDto = CreateRoleDto;
17
+ __decorate([
18
+ (0, class_validator_1.IsString)(),
19
+ __metadata("design:type", String)
20
+ ], CreateRoleDto.prototype, "name", void 0);
21
+ __decorate([
22
+ (0, class_validator_1.IsOptional)(),
23
+ (0, class_validator_1.IsArray)(),
24
+ (0, class_validator_1.IsString)({ each: true }),
25
+ __metadata("design:type", Array)
26
+ ], CreateRoleDto.prototype, "permissions", void 0);
@@ -0,0 +1,7 @@
1
+ export declare class UpdateRoleDto {
2
+ name?: string;
3
+ permissions?: string[];
4
+ }
5
+ export declare class UpdateRolePermissionsDto {
6
+ permissions: string[];
7
+ }
@@ -0,0 +1,35 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UpdateRolePermissionsDto = exports.UpdateRoleDto = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ class UpdateRoleDto {
15
+ }
16
+ exports.UpdateRoleDto = UpdateRoleDto;
17
+ __decorate([
18
+ (0, class_validator_1.IsOptional)(),
19
+ (0, class_validator_1.IsString)(),
20
+ __metadata("design:type", String)
21
+ ], UpdateRoleDto.prototype, "name", void 0);
22
+ __decorate([
23
+ (0, class_validator_1.IsOptional)(),
24
+ (0, class_validator_1.IsArray)(),
25
+ (0, class_validator_1.IsString)({ each: true }),
26
+ __metadata("design:type", Array)
27
+ ], UpdateRoleDto.prototype, "permissions", void 0);
28
+ class UpdateRolePermissionsDto {
29
+ }
30
+ exports.UpdateRolePermissionsDto = UpdateRolePermissionsDto;
31
+ __decorate([
32
+ (0, class_validator_1.IsArray)(),
33
+ (0, class_validator_1.IsString)({ each: true }),
34
+ __metadata("design:type", Array)
35
+ ], UpdateRolePermissionsDto.prototype, "permissions", void 0);
package/dist/index.d.ts CHANGED
@@ -1,5 +1,8 @@
1
1
  import 'reflect-metadata';
2
2
  export { AuthKitModule } from './auth-kit.module';
3
3
  export { AuthenticateGuard } from './middleware/authenticate.guard';
4
- export { AuthGuard } from './middleware/auth.guard';
5
- export { hasPermission } from './middleware/permission.guard';
4
+ export { hasRole } from './middleware/role.guard';
5
+ export { Admin } from './middleware/admin.decorator';
6
+ export { SeedService } from './services/seed.service';
7
+ export { AdminGuard } from './middleware/admin.guard';
8
+ export { AdminRoleService } from './services/admin-role.service';
package/dist/index.js CHANGED
@@ -1,12 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.hasPermission = exports.AuthGuard = exports.AuthenticateGuard = exports.AuthKitModule = void 0;
3
+ exports.AdminRoleService = exports.AdminGuard = exports.SeedService = exports.Admin = exports.hasRole = exports.AuthenticateGuard = exports.AuthKitModule = void 0;
4
4
  require("reflect-metadata");
5
5
  var auth_kit_module_1 = require("./auth-kit.module");
6
6
  Object.defineProperty(exports, "AuthKitModule", { enumerable: true, get: function () { return auth_kit_module_1.AuthKitModule; } });
7
7
  var authenticate_guard_1 = require("./middleware/authenticate.guard");
8
8
  Object.defineProperty(exports, "AuthenticateGuard", { enumerable: true, get: function () { return authenticate_guard_1.AuthenticateGuard; } });
9
- var auth_guard_1 = require("./middleware/auth.guard");
10
- Object.defineProperty(exports, "AuthGuard", { enumerable: true, get: function () { return auth_guard_1.AuthGuard; } });
11
- var permission_guard_1 = require("./middleware/permission.guard");
12
- Object.defineProperty(exports, "hasPermission", { enumerable: true, get: function () { return permission_guard_1.hasPermission; } });
9
+ var role_guard_1 = require("./middleware/role.guard");
10
+ Object.defineProperty(exports, "hasRole", { enumerable: true, get: function () { return role_guard_1.hasRole; } });
11
+ var admin_decorator_1 = require("./middleware/admin.decorator");
12
+ Object.defineProperty(exports, "Admin", { enumerable: true, get: function () { return admin_decorator_1.Admin; } });
13
+ var seed_service_1 = require("./services/seed.service");
14
+ Object.defineProperty(exports, "SeedService", { enumerable: true, get: function () { return seed_service_1.SeedService; } });
15
+ var admin_guard_1 = require("./middleware/admin.guard");
16
+ Object.defineProperty(exports, "AdminGuard", { enumerable: true, get: function () { return admin_guard_1.AdminGuard; } });
17
+ var admin_role_service_1 = require("./services/admin-role.service");
18
+ Object.defineProperty(exports, "AdminRoleService", { enumerable: true, get: function () { return admin_role_service_1.AdminRoleService; } });
@@ -0,0 +1 @@
1
+ export declare const Admin: () => <TFunction extends Function, Y>(target: TFunction | object, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Admin = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const authenticate_guard_1 = require("./authenticate.guard");
6
+ const admin_guard_1 = require("./admin.guard");
7
+ const Admin = () => (0, common_1.applyDecorators)((0, common_1.UseGuards)(authenticate_guard_1.AuthenticateGuard, admin_guard_1.AdminGuard));
8
+ exports.Admin = Admin;
@@ -0,0 +1,7 @@
1
+ import { CanActivate, ExecutionContext } from '@nestjs/common';
2
+ import { AdminRoleService } from '../services/admin-role.service';
3
+ export declare class AdminGuard implements CanActivate {
4
+ private readonly adminRole;
5
+ constructor(adminRole: AdminRoleService);
6
+ canActivate(context: ExecutionContext): Promise<boolean>;
7
+ }
@@ -0,0 +1,35 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AdminGuard = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const admin_role_service_1 = require("../services/admin-role.service");
15
+ let AdminGuard = class AdminGuard {
16
+ constructor(adminRole) {
17
+ this.adminRole = adminRole;
18
+ }
19
+ async canActivate(context) {
20
+ var _a;
21
+ const req = context.switchToHttp().getRequest();
22
+ const res = context.switchToHttp().getResponse();
23
+ const roles = Array.isArray((_a = req.user) === null || _a === void 0 ? void 0 : _a.roles) ? req.user.roles : [];
24
+ const adminRoleId = await this.adminRole.loadAdminRoleId();
25
+ if (roles.includes(adminRoleId))
26
+ return true;
27
+ res.status(403).json({ message: 'Forbidden: admin required.' });
28
+ return false;
29
+ }
30
+ };
31
+ exports.AdminGuard = AdminGuard;
32
+ exports.AdminGuard = AdminGuard = __decorate([
33
+ (0, common_1.Injectable)(),
34
+ __metadata("design:paramtypes", [admin_role_service_1.AdminRoleService])
35
+ ], AdminGuard);
@@ -1,4 +1,8 @@
1
1
  import { CanActivate, ExecutionContext } from '@nestjs/common';
2
+ import { UserRepository } from '../repositories/user.repository';
2
3
  export declare class AuthenticateGuard implements CanActivate {
3
- canActivate(context: ExecutionContext): boolean;
4
+ private readonly users;
5
+ constructor(users: UserRepository);
6
+ private getEnv;
7
+ canActivate(context: ExecutionContext): Promise<boolean>;
4
8
  }
@@ -5,6 +5,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
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
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
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
+ };
8
11
  var __importDefault = (this && this.__importDefault) || function (mod) {
9
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
10
13
  };
@@ -12,8 +15,18 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
15
  exports.AuthenticateGuard = void 0;
13
16
  const common_1 = require("@nestjs/common");
14
17
  const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
18
+ const user_repository_1 = require("../repositories/user.repository");
15
19
  let AuthenticateGuard = class AuthenticateGuard {
16
- canActivate(context) {
20
+ constructor(users) {
21
+ this.users = users;
22
+ }
23
+ getEnv(name) {
24
+ const v = process.env[name];
25
+ if (!v)
26
+ throw new Error(`${name} is not set`);
27
+ return v;
28
+ }
29
+ async canActivate(context) {
17
30
  var _a;
18
31
  const req = context.switchToHttp().getRequest();
19
32
  const res = context.switchToHttp().getResponse();
@@ -24,15 +37,28 @@ let AuthenticateGuard = class AuthenticateGuard {
24
37
  }
25
38
  const token = authHeader.split(' ')[1];
26
39
  try {
27
- const decoded = jsonwebtoken_1.default.verify(token, process.env.JWT_SECRET);
40
+ const decoded = jsonwebtoken_1.default.verify(token, this.getEnv('JWT_SECRET'));
41
+ const user = await this.users.findById(decoded.sub);
42
+ if (!user) {
43
+ res.status(401).json({ message: 'User not found.' });
44
+ return false;
45
+ }
46
+ if (!user.isVerified) {
47
+ res.status(403).json({ message: 'Email not verified.' });
48
+ return false;
49
+ }
50
+ if (user.isBanned) {
51
+ res.status(403).json({ message: 'Account banned.' });
52
+ return false;
53
+ }
54
+ if (user.passwordChangedAt && decoded.iat * 1000 < user.passwordChangedAt.getTime()) {
55
+ res.status(401).json({ message: 'Token expired.' });
56
+ return false;
57
+ }
28
58
  req.user = decoded;
29
59
  return true;
30
60
  }
31
- catch (err) {
32
- if ((err === null || err === void 0 ? void 0 : err.name) === 'TokenExpiredError') {
33
- res.status(401).json({ message: 'Access token expired.' });
34
- return false;
35
- }
61
+ catch {
36
62
  res.status(401).json({ message: 'Invalid access token.' });
37
63
  return false;
38
64
  }
@@ -40,5 +66,6 @@ let AuthenticateGuard = class AuthenticateGuard {
40
66
  };
41
67
  exports.AuthenticateGuard = AuthenticateGuard;
42
68
  exports.AuthenticateGuard = AuthenticateGuard = __decorate([
43
- (0, common_1.Injectable)()
69
+ (0, common_1.Injectable)(),
70
+ __metadata("design:paramtypes", [user_repository_1.UserRepository])
44
71
  ], AuthenticateGuard);
@@ -0,0 +1,4 @@
1
+ import { ExecutionContext } from '@nestjs/common';
2
+ export declare const hasRole: (requiredRoleId: string) => import("@nestjs/common").Type<{
3
+ canActivate(context: ExecutionContext): boolean;
4
+ }>;
@@ -0,0 +1,29 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.hasRole = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const hasRole = (requiredRoleId) => {
12
+ let RoleGuard = class RoleGuard {
13
+ canActivate(context) {
14
+ var _a;
15
+ const req = context.switchToHttp().getRequest();
16
+ const res = context.switchToHttp().getResponse();
17
+ const roles = Array.isArray((_a = req.user) === null || _a === void 0 ? void 0 : _a.roles) ? req.user.roles : [];
18
+ if (roles.includes(requiredRoleId))
19
+ return true;
20
+ res.status(403).json({ message: 'Forbidden: role required.' });
21
+ return false;
22
+ }
23
+ };
24
+ RoleGuard = __decorate([
25
+ (0, common_1.Injectable)()
26
+ ], RoleGuard);
27
+ return (0, common_1.mixin)(RoleGuard);
28
+ };
29
+ exports.hasRole = hasRole;
@@ -1,19 +1,11 @@
1
- import mongoose from 'mongoose';
2
- declare const PermissionSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, mongoose.DefaultSchemaOptions, {
1
+ import { Document } from 'mongoose';
2
+ export type PermissionDocument = Permission & Document;
3
+ export declare class Permission {
3
4
  name: string;
4
5
  description?: string;
5
- category?: string;
6
- }, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
7
- name: string;
8
- description?: string;
9
- category?: string;
10
- }>> & mongoose.FlatRecord<{
11
- name: string;
12
- description?: string;
13
- category?: string;
14
- }> & {
15
- _id: mongoose.Types.ObjectId;
6
+ }
7
+ export declare const PermissionSchema: import("mongoose").Schema<Permission, import("mongoose").Model<Permission, any, any, any, Document<unknown, any, Permission> & Permission & {
8
+ _id: import("mongoose").Types.ObjectId;
9
+ }, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, Permission, Document<unknown, {}, import("mongoose").FlatRecord<Permission>> & import("mongoose").FlatRecord<Permission> & {
10
+ _id: import("mongoose").Types.ObjectId;
16
11
  }>;
17
- declare const Permission: mongoose.Model<any, {}, {}, {}, any, any>;
18
- export { PermissionSchema };
19
- export default Permission;
@@ -1,17 +1,28 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
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);
4
10
  };
5
11
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.PermissionSchema = void 0;
7
- const mongoose_1 = __importDefault(require("mongoose"));
8
- const mongoose_paginate_v2_1 = __importDefault(require("mongoose-paginate-v2"));
9
- const PermissionSchema = new mongoose_1.default.Schema({
10
- name: { type: String, required: true, unique: true },
11
- category: { type: String },
12
- description: { type: String }
13
- });
14
- exports.PermissionSchema = PermissionSchema;
15
- PermissionSchema.plugin(mongoose_paginate_v2_1.default);
16
- const Permission = mongoose_1.default.models.Permission || mongoose_1.default.model('Permission', PermissionSchema);
17
- exports.default = Permission;
12
+ exports.PermissionSchema = exports.Permission = void 0;
13
+ const mongoose_1 = require("@nestjs/mongoose");
14
+ let Permission = class Permission {
15
+ };
16
+ exports.Permission = Permission;
17
+ __decorate([
18
+ (0, mongoose_1.Prop)({ required: true, unique: true, trim: true }),
19
+ __metadata("design:type", String)
20
+ ], Permission.prototype, "name", void 0);
21
+ __decorate([
22
+ (0, mongoose_1.Prop)({ trim: true }),
23
+ __metadata("design:type", String)
24
+ ], Permission.prototype, "description", void 0);
25
+ exports.Permission = Permission = __decorate([
26
+ (0, mongoose_1.Schema)({ timestamps: true })
27
+ ], Permission);
28
+ exports.PermissionSchema = mongoose_1.SchemaFactory.createForClass(Permission);
@@ -1,30 +1,11 @@
1
- import mongoose from 'mongoose';
2
- declare const RoleSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, {
3
- timestamps: true;
4
- }, {
5
- createdAt: NativeDate;
6
- updatedAt: NativeDate;
7
- } & {
1
+ import { Document, Types } from 'mongoose';
2
+ export type RoleDocument = Role & Document;
3
+ export declare class Role {
8
4
  name: string;
9
- permissions: string[];
10
- description?: string;
11
- }, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
12
- createdAt: NativeDate;
13
- updatedAt: NativeDate;
14
- } & {
15
- name: string;
16
- permissions: string[];
17
- description?: string;
18
- }>> & mongoose.FlatRecord<{
19
- createdAt: NativeDate;
20
- updatedAt: NativeDate;
21
- } & {
22
- name: string;
23
- permissions: string[];
24
- description?: string;
25
- }> & {
26
- _id: mongoose.Types.ObjectId;
5
+ permissions: Types.ObjectId[];
6
+ }
7
+ export declare const RoleSchema: import("mongoose").Schema<Role, import("mongoose").Model<Role, any, any, any, Document<unknown, any, Role> & Role & {
8
+ _id: Types.ObjectId;
9
+ }, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, Role, Document<unknown, {}, import("mongoose").FlatRecord<Role>> & import("mongoose").FlatRecord<Role> & {
10
+ _id: Types.ObjectId;
27
11
  }>;
28
- declare const Role: mongoose.Model<any, {}, {}, {}, any, any>;
29
- export { RoleSchema };
30
- export default Role;
@@ -1,17 +1,29 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
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);
4
10
  };
5
11
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.RoleSchema = void 0;
7
- const mongoose_1 = __importDefault(require("mongoose"));
8
- const mongoose_paginate_v2_1 = __importDefault(require("mongoose-paginate-v2"));
9
- const RoleSchema = new mongoose_1.default.Schema({
10
- name: { type: String, required: true, unique: true },
11
- description: { type: String },
12
- permissions: [{ type: String }]
13
- }, { timestamps: true });
14
- exports.RoleSchema = RoleSchema;
15
- RoleSchema.plugin(mongoose_paginate_v2_1.default);
16
- const Role = mongoose_1.default.models.Role || mongoose_1.default.model('Role', RoleSchema);
17
- exports.default = Role;
12
+ exports.RoleSchema = exports.Role = void 0;
13
+ const mongoose_1 = require("@nestjs/mongoose");
14
+ const mongoose_2 = require("mongoose");
15
+ let Role = class Role {
16
+ };
17
+ exports.Role = Role;
18
+ __decorate([
19
+ (0, mongoose_1.Prop)({ required: true, unique: true, trim: true }),
20
+ __metadata("design:type", String)
21
+ ], Role.prototype, "name", void 0);
22
+ __decorate([
23
+ (0, mongoose_1.Prop)({ type: [{ type: mongoose_2.Types.ObjectId, ref: 'Permission' }], default: [] }),
24
+ __metadata("design:type", Array)
25
+ ], Role.prototype, "permissions", void 0);
26
+ exports.Role = Role = __decorate([
27
+ (0, mongoose_1.Schema)({ timestamps: true })
28
+ ], Role);
29
+ exports.RoleSchema = mongoose_1.SchemaFactory.createForClass(Role);
@@ -1,66 +1,24 @@
1
- import mongoose from 'mongoose';
2
- declare const UserSchema: mongoose.Schema<any, mongoose.Model<any, any, any, any, any, any>, {}, {}, {}, {}, {
3
- timestamps: true;
4
- }, {
5
- createdAt: NativeDate;
6
- updatedAt: NativeDate;
7
- } & {
8
- roles: mongoose.Types.ObjectId[];
9
- status: "pending" | "active" | "suspended" | "deactivated";
10
- failedLoginAttempts: number;
11
- email?: string;
12
- name?: string;
1
+ import { Document, Types } from 'mongoose';
2
+ export type UserDocument = User & Document;
3
+ declare class FullName {
4
+ fname: string;
5
+ lname: string;
6
+ }
7
+ export declare class User {
8
+ fullname: FullName;
9
+ username: string;
10
+ email: string;
11
+ avatar?: string;
12
+ phoneNumber?: string;
13
13
  password?: string;
14
- jobTitle?: string;
15
- company?: string;
16
- microsoftId?: string;
17
- googleId?: string;
18
- facebookId?: string;
19
- resetPasswordToken?: string;
20
- resetPasswordExpires?: Date;
21
- refreshToken?: string;
22
- lockUntil?: Date;
23
- }, mongoose.Document<unknown, {}, mongoose.FlatRecord<{
24
- createdAt: NativeDate;
25
- updatedAt: NativeDate;
26
- } & {
27
- roles: mongoose.Types.ObjectId[];
28
- status: "pending" | "active" | "suspended" | "deactivated";
29
- failedLoginAttempts: number;
30
- email?: string;
31
- name?: string;
32
- password?: string;
33
- jobTitle?: string;
34
- company?: string;
35
- microsoftId?: string;
36
- googleId?: string;
37
- facebookId?: string;
38
- resetPasswordToken?: string;
39
- resetPasswordExpires?: Date;
40
- refreshToken?: string;
41
- lockUntil?: Date;
42
- }>> & mongoose.FlatRecord<{
43
- createdAt: NativeDate;
44
- updatedAt: NativeDate;
45
- } & {
46
- roles: mongoose.Types.ObjectId[];
47
- status: "pending" | "active" | "suspended" | "deactivated";
48
- failedLoginAttempts: number;
49
- email?: string;
50
- name?: string;
51
- password?: string;
52
- jobTitle?: string;
53
- company?: string;
54
- microsoftId?: string;
55
- googleId?: string;
56
- facebookId?: string;
57
- resetPasswordToken?: string;
58
- resetPasswordExpires?: Date;
59
- refreshToken?: string;
60
- lockUntil?: Date;
61
- }> & {
62
- _id: mongoose.Types.ObjectId;
14
+ passwordChangedAt: Date;
15
+ roles: Types.ObjectId[];
16
+ isVerified: boolean;
17
+ isBanned: boolean;
18
+ }
19
+ export declare const UserSchema: import("mongoose").Schema<User, import("mongoose").Model<User, any, any, any, Document<unknown, any, User> & User & {
20
+ _id: Types.ObjectId;
21
+ }, any>, {}, {}, {}, {}, import("mongoose").DefaultSchemaOptions, User, Document<unknown, {}, import("mongoose").FlatRecord<User>> & import("mongoose").FlatRecord<User> & {
22
+ _id: Types.ObjectId;
63
23
  }>;
64
- declare const User: mongoose.Model<any, {}, {}, {}, any, any>;
65
- export { UserSchema };
66
- export default User;
24
+ export {};