@appxdigital/appx-core 0.1.68
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/dist/appx-core.module.d.ts +7 -0
- package/dist/appx-core.module.d.ts.map +1 -0
- package/dist/appx-core.module.js +46 -0
- package/dist/common/config/default-permissions.config.d.ts +3 -0
- package/dist/common/config/default-permissions.config.d.ts.map +1 -0
- package/dist/common/config/default-permissions.config.js +6 -0
- package/dist/common/config/permissions.config.provider.d.ts +8 -0
- package/dist/common/config/permissions.config.provider.d.ts.map +1 -0
- package/dist/common/config/permissions.config.provider.js +12 -0
- package/dist/common/config/permissions.service.d.ts +7 -0
- package/dist/common/config/permissions.service.d.ts.map +1 -0
- package/dist/common/config/permissions.service.js +31 -0
- package/dist/common/config/permissionsConfigTypes.d.ts +18 -0
- package/dist/common/config/permissionsConfigTypes.d.ts.map +1 -0
- package/dist/common/config/permissionsConfigTypes.js +2 -0
- package/dist/common/contants.d.ts +3 -0
- package/dist/common/contants.d.ts.map +1 -0
- package/dist/common/contants.js +5 -0
- package/dist/common/decorators/guard.decorator.d.ts +5 -0
- package/dist/common/decorators/guard.decorator.d.ts.map +1 -0
- package/dist/common/decorators/guard.decorator.js +22 -0
- package/dist/common/decorators/permission.decorator.d.ts +3 -0
- package/dist/common/decorators/permission.decorator.d.ts.map +1 -0
- package/dist/common/decorators/permission.decorator.js +7 -0
- package/dist/common/decorators/transaction.decorator.d.ts +8 -0
- package/dist/common/decorators/transaction.decorator.d.ts.map +1 -0
- package/dist/common/decorators/transaction.decorator.js +12 -0
- package/dist/common/enums/role.enum.d.ts +6 -0
- package/dist/common/enums/role.enum.d.ts.map +1 -0
- package/dist/common/enums/role.enum.js +9 -0
- package/dist/common/guards/rbac.guard.d.ts +10 -0
- package/dist/common/guards/rbac.guard.d.ts.map +1 -0
- package/dist/common/guards/rbac.guard.js +56 -0
- package/dist/common/guards/role.guard.d.ts +12 -0
- package/dist/common/guards/role.guard.d.ts.map +1 -0
- package/dist/common/guards/role.guard.js +44 -0
- package/dist/common/interceptors/file.interceptor.d.ts +9 -0
- package/dist/common/interceptors/file.interceptor.d.ts.map +1 -0
- package/dist/common/interceptors/file.interceptor.js +74 -0
- package/dist/common/interceptors/prisma.interceptor.d.ts +14 -0
- package/dist/common/interceptors/prisma.interceptor.d.ts.map +1 -0
- package/dist/common/interceptors/prisma.interceptor.js +82 -0
- package/dist/common/interfaces/file-upload.interface.d.ts +13 -0
- package/dist/common/interfaces/file-upload.interface.d.ts.map +1 -0
- package/dist/common/interfaces/file-upload.interface.js +2 -0
- package/dist/common/interfaces/storage-service.interface.d.ts +4 -0
- package/dist/common/interfaces/storage-service.interface.d.ts.map +1 -0
- package/dist/common/interfaces/storage-service.interface.js +2 -0
- package/dist/common/interfaces/user.interface.d.ts +12 -0
- package/dist/common/interfaces/user.interface.d.ts.map +1 -0
- package/dist/common/interfaces/user.interface.js +2 -0
- package/dist/common/providers/aws-storage.service.d.ts +10 -0
- package/dist/common/providers/aws-storage.service.d.ts.map +1 -0
- package/dist/common/providers/aws-storage.service.js +60 -0
- package/dist/common/providers/gcp-storage.service.d.ts +10 -0
- package/dist/common/providers/gcp-storage.service.d.ts.map +1 -0
- package/dist/common/providers/gcp-storage.service.js +87 -0
- package/dist/common/providers/local-storage.service.d.ts +7 -0
- package/dist/common/providers/local-storage.service.d.ts.map +1 -0
- package/dist/common/providers/local-storage.service.js +80 -0
- package/dist/common/types.d.ts +21 -0
- package/dist/common/types.d.ts.map +1 -0
- package/dist/common/types.js +3 -0
- package/dist/common/utils/context-transformer.util.d.ts +6 -0
- package/dist/common/utils/context-transformer.util.d.ts.map +1 -0
- package/dist/common/utils/context-transformer.util.js +28 -0
- package/dist/common/utils/error-handler.d.ts +2 -0
- package/dist/common/utils/error-handler.d.ts.map +1 -0
- package/dist/common/utils/error-handler.js +38 -0
- package/dist/config/admin/create.d.ts +2 -0
- package/dist/config/admin/create.d.ts.map +1 -0
- package/dist/config/admin/create.js +25 -0
- package/dist/config/admin/generate-admin.d.ts +2 -0
- package/dist/config/admin/generate-admin.d.ts.map +1 -0
- package/dist/config/admin/generate-admin.js +75 -0
- package/dist/config/admin/templates/admin.template.d.ts +2 -0
- package/dist/config/admin/templates/admin.template.d.ts.map +1 -0
- package/dist/config/admin/templates/admin.template.js +131 -0
- package/dist/config/admin/templates/component-loader.template.d.ts +2 -0
- package/dist/config/admin/templates/component-loader.template.d.ts.map +1 -0
- package/dist/config/admin/templates/component-loader.template.js +17 -0
- package/dist/config/admin/templates/dashboard.template.d.ts +2 -0
- package/dist/config/admin/templates/dashboard.template.d.ts.map +1 -0
- package/dist/config/admin/templates/dashboard.template.js +40 -0
- package/dist/config/admin/templates/utils.template.d.ts +2 -0
- package/dist/config/admin/templates/utils.template.d.ts.map +1 -0
- package/dist/config/admin/templates/utils.template.js +135 -0
- package/dist/config/generate-all.d.ts +3 -0
- package/dist/config/generate-all.d.ts.map +1 -0
- package/dist/config/generate-all.js +64 -0
- package/dist/config/generate-controllers.d.ts +2 -0
- package/dist/config/generate-controllers.d.ts.map +1 -0
- package/dist/config/generate-controllers.js +83 -0
- package/dist/config/generate-modules.d.ts +2 -0
- package/dist/config/generate-modules.d.ts.map +1 -0
- package/dist/config/generate-modules.js +158 -0
- package/dist/config/generate-resolvers.d.ts +2 -0
- package/dist/config/generate-resolvers.d.ts.map +1 -0
- package/dist/config/generate-resolvers.js +97 -0
- package/dist/config/generate-services.d.ts +2 -0
- package/dist/config/generate-services.d.ts.map +1 -0
- package/dist/config/generate-services.js +72 -0
- package/dist/config/generate-session-schema.d.ts +2 -0
- package/dist/config/generate-session-schema.d.ts.map +1 -0
- package/dist/config/generate-session-schema.js +78 -0
- package/dist/config/setup-fileupload.d.ts +3 -0
- package/dist/config/setup-fileupload.d.ts.map +1 -0
- package/dist/config/setup-fileupload.js +265 -0
- package/dist/config/utils.d.ts +3 -0
- package/dist/config/utils.d.ts.map +1 -0
- package/dist/config/utils.js +55 -0
- package/dist/graphql/batch.payload.d.ts +4 -0
- package/dist/graphql/batch.payload.d.ts.map +1 -0
- package/dist/graphql/batch.payload.js +23 -0
- package/dist/graphql/generic.resolver.d.ts +15 -0
- package/dist/graphql/generic.resolver.d.ts.map +1 -0
- package/dist/graphql/generic.resolver.js +107 -0
- package/dist/graphql/graphql.module.d.ts +3 -0
- package/dist/graphql/graphql.module.d.ts.map +1 -0
- package/dist/graphql/graphql.module.js +28 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +39 -0
- package/dist/modules/auth/auth-field.decorator.d.ts +10 -0
- package/dist/modules/auth/auth-field.decorator.d.ts.map +1 -0
- package/dist/modules/auth/auth-field.decorator.js +18 -0
- package/dist/modules/auth/auth.controller.d.ts +25 -0
- package/dist/modules/auth/auth.controller.d.ts.map +1 -0
- package/dist/modules/auth/auth.controller.js +158 -0
- package/dist/modules/auth/auth.module.d.ts +3 -0
- package/dist/modules/auth/auth.module.d.ts.map +1 -0
- package/dist/modules/auth/auth.module.js +28 -0
- package/dist/modules/auth/auth.resolver.d.ts +6 -0
- package/dist/modules/auth/auth.resolver.d.ts.map +1 -0
- package/dist/modules/auth/auth.resolver.js +24 -0
- package/dist/modules/auth/auth.service.d.ts +28 -0
- package/dist/modules/auth/auth.service.d.ts.map +1 -0
- package/dist/modules/auth/auth.service.js +197 -0
- package/dist/modules/auth/authenticated.guard.d.ts +5 -0
- package/dist/modules/auth/authenticated.guard.d.ts.map +1 -0
- package/dist/modules/auth/authenticated.guard.js +20 -0
- package/dist/modules/auth/dto/register.dto.d.ts +6 -0
- package/dist/modules/auth/dto/register.dto.d.ts.map +1 -0
- package/dist/modules/auth/dto/register.dto.js +21 -0
- package/dist/modules/auth/dto/user.dto.d.ts +5 -0
- package/dist/modules/auth/dto/user.dto.d.ts.map +1 -0
- package/dist/modules/auth/dto/user.dto.js +36 -0
- package/dist/modules/auth/local-auth.guard.d.ts +7 -0
- package/dist/modules/auth/local-auth.guard.d.ts.map +1 -0
- package/dist/modules/auth/local-auth.guard.js +31 -0
- package/dist/modules/auth/local.strategy.d.ts +15 -0
- package/dist/modules/auth/local.strategy.d.ts.map +1 -0
- package/dist/modules/auth/local.strategy.js +48 -0
- package/dist/modules/auth/session/session-auth.guard.d.ts +5 -0
- package/dist/modules/auth/session/session-auth.guard.d.ts.map +1 -0
- package/dist/modules/auth/session/session-auth.guard.js +30 -0
- package/dist/modules/auth/session/session-serializer.d.ts +9 -0
- package/dist/modules/auth/session/session-serializer.d.ts.map +1 -0
- package/dist/modules/auth/session/session-serializer.js +44 -0
- package/dist/modules/auth/session/session-store.d.ts +11 -0
- package/dist/modules/auth/session/session-store.d.ts.map +1 -0
- package/dist/modules/auth/session/session-store.js +97 -0
- package/dist/modules/common.module.d.ts +3 -0
- package/dist/modules/common.module.d.ts.map +1 -0
- package/dist/modules/common.module.js +20 -0
- package/dist/modules/core/core.controller.d.ts +14 -0
- package/dist/modules/core/core.controller.d.ts.map +1 -0
- package/dist/modules/core/core.controller.js +114 -0
- package/dist/modules/core/core.module.d.ts +3 -0
- package/dist/modules/core/core.module.d.ts.map +1 -0
- package/dist/modules/core/core.module.js +22 -0
- package/dist/modules/core/core.service.d.ts +44 -0
- package/dist/modules/core/core.service.d.ts.map +1 -0
- package/dist/modules/core/core.service.js +121 -0
- package/dist/modules/file/file-upload.controller.d.ts +11 -0
- package/dist/modules/file/file-upload.controller.d.ts.map +1 -0
- package/dist/modules/file/file-upload.controller.js +52 -0
- package/dist/modules/file/file-upload.module.d.ts +6 -0
- package/dist/modules/file/file-upload.module.d.ts.map +1 -0
- package/dist/modules/file/file-upload.module.js +62 -0
- package/dist/modules/file/file-upload.service.d.ts +27 -0
- package/dist/modules/file/file-upload.service.d.ts.map +1 -0
- package/dist/modules/file/file-upload.service.js +69 -0
- package/dist/modules/user/user.module.d.ts +3 -0
- package/dist/modules/user/user.module.d.ts.map +1 -0
- package/dist/modules/user/user.module.js +20 -0
- package/dist/modules/user/user.service.d.ts +10 -0
- package/dist/modules/user/user.service.d.ts.map +1 -0
- package/dist/modules/user/user.service.js +49 -0
- package/dist/prisma/prisma.service.d.ts +128 -0
- package/dist/prisma/prisma.service.d.ts.map +1 -0
- package/dist/prisma/prisma.service.js +512 -0
- package/dist/tasks/session-cleanup.service.d.ts +7 -0
- package/dist/tasks/session-cleanup.service.d.ts.map +1 -0
- package/dist/tasks/session-cleanup.service.js +38 -0
- package/package.json +66 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.controller.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/auth.controller.ts"],"names":[],"mappings":"AAWA,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAG/C,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAC,MAAM,SAAS,CAAC;AAE1C,qBACa,cAAc;IACX,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,EAAE,WAAW;IAG/C,QAAQ,CAAS,WAAW,EAAE,WAAW;;;;IAMzC,KAAK,CAAQ,GAAG,EAAE,OAAO,EAAS,GAAG,EAAE,QAAQ;IAW/C,MAAM,CAAQ,GAAG,EAAE,OAAO,EAAS,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBhE,EAAE,CAAQ,GAAG,EAAE,OAAO;;;IAQtB,iBAAiB,CAAQ,GAAG,EAAE,OAAO;;;IAOrC,gBAAgB,CAAQ,GAAG,EAAE,OAAO,EAAS,GAAG,EAAE,QAAQ;IAK1D,cAAc,CAAkB,MAAM,EAAE,MAAM,EAAS,GAAG,EAAE,OAAO;;;IAUnE,oBAAoB,CACF,SAAS,EAAE,MAAM,EAC9B,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ;CAa3B"}
|
|
@@ -0,0 +1,158 @@
|
|
|
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.AuthController = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const auth_service_1 = require("./auth.service");
|
|
18
|
+
const register_dto_1 = require("./dto/register.dto");
|
|
19
|
+
const local_auth_guard_1 = require("./local-auth.guard");
|
|
20
|
+
const authenticated_guard_1 = require("./authenticated.guard");
|
|
21
|
+
let AuthController = class AuthController {
|
|
22
|
+
constructor(authService) {
|
|
23
|
+
this.authService = authService;
|
|
24
|
+
}
|
|
25
|
+
async register(registerDto) {
|
|
26
|
+
return this.authService.register(registerDto);
|
|
27
|
+
}
|
|
28
|
+
async login(req, res) {
|
|
29
|
+
try {
|
|
30
|
+
const result = await this.authService.login(req);
|
|
31
|
+
res.status(200).send(result);
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
res.status(500).send({ message: 'Login failed' });
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
async logout(req, res) {
|
|
38
|
+
try {
|
|
39
|
+
await this.authService.logout(req, res);
|
|
40
|
+
res.status(200).send({ message: 'Logout successful' });
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
if (error.message === 'User is not authenticated.') {
|
|
44
|
+
res.status(common_1.HttpStatus.BAD_REQUEST).send({
|
|
45
|
+
message: 'User is not logged in or session already destroyed.',
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
throw new common_1.HttpException('Logout failed.', common_1.HttpStatus.INTERNAL_SERVER_ERROR);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
async me(req) {
|
|
54
|
+
return {
|
|
55
|
+
user: await this.authService.getCurrentUser(req)
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
async getActiveSessions(req) {
|
|
59
|
+
const sessions = await this.authService.getActiveSessions(req);
|
|
60
|
+
return { sessions };
|
|
61
|
+
}
|
|
62
|
+
async closeAllSessions(req, res) {
|
|
63
|
+
return this.authService.closeAllUserSessions(req, res);
|
|
64
|
+
}
|
|
65
|
+
async getAllSessions(userId, req) {
|
|
66
|
+
//TODO - Implement a more dynamic way to handle role access
|
|
67
|
+
if (req.user?.role !== 'ADMIN') {
|
|
68
|
+
throw new common_1.ForbiddenException('Access denied.');
|
|
69
|
+
}
|
|
70
|
+
const sessions = await this.authService.getSessionsByUserId(parseInt(userId, 10));
|
|
71
|
+
return { sessions };
|
|
72
|
+
}
|
|
73
|
+
async closeSpecificSession(sessionId, req, res) {
|
|
74
|
+
//TODO - Implement a more dynamic way to handle role access
|
|
75
|
+
if (req.user?.role !== 'ADMIN') {
|
|
76
|
+
throw new common_1.ForbiddenException('Access denied.');
|
|
77
|
+
}
|
|
78
|
+
const result = await this.authService.closeSpecificSession(sessionId);
|
|
79
|
+
if (result) {
|
|
80
|
+
res.status(common_1.HttpStatus.OK).send({ message: 'Session closed successfully.' });
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
res.status(common_1.HttpStatus.NOT_FOUND).send({ message: 'Session not found.' });
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
exports.AuthController = AuthController;
|
|
88
|
+
__decorate([
|
|
89
|
+
(0, common_1.Post)('register'),
|
|
90
|
+
__param(0, (0, common_1.Body)()),
|
|
91
|
+
__metadata("design:type", Function),
|
|
92
|
+
__metadata("design:paramtypes", [register_dto_1.RegisterDto]),
|
|
93
|
+
__metadata("design:returntype", Promise)
|
|
94
|
+
], AuthController.prototype, "register", null);
|
|
95
|
+
__decorate([
|
|
96
|
+
(0, common_1.UseGuards)(local_auth_guard_1.LocalAuthGuard),
|
|
97
|
+
(0, common_1.Post)('login'),
|
|
98
|
+
__param(0, (0, common_1.Req)()),
|
|
99
|
+
__param(1, (0, common_1.Res)()),
|
|
100
|
+
__metadata("design:type", Function),
|
|
101
|
+
__metadata("design:paramtypes", [Object, Object]),
|
|
102
|
+
__metadata("design:returntype", Promise)
|
|
103
|
+
], AuthController.prototype, "login", null);
|
|
104
|
+
__decorate([
|
|
105
|
+
(0, common_1.UseGuards)(authenticated_guard_1.AuthenticatedGuard),
|
|
106
|
+
(0, common_1.Post)('logout'),
|
|
107
|
+
__param(0, (0, common_1.Req)()),
|
|
108
|
+
__param(1, (0, common_1.Res)()),
|
|
109
|
+
__metadata("design:type", Function),
|
|
110
|
+
__metadata("design:paramtypes", [Object, Object]),
|
|
111
|
+
__metadata("design:returntype", Promise)
|
|
112
|
+
], AuthController.prototype, "logout", null);
|
|
113
|
+
__decorate([
|
|
114
|
+
(0, common_1.UseGuards)(authenticated_guard_1.AuthenticatedGuard),
|
|
115
|
+
(0, common_1.Get)('me'),
|
|
116
|
+
__param(0, (0, common_1.Req)()),
|
|
117
|
+
__metadata("design:type", Function),
|
|
118
|
+
__metadata("design:paramtypes", [Object]),
|
|
119
|
+
__metadata("design:returntype", Promise)
|
|
120
|
+
], AuthController.prototype, "me", null);
|
|
121
|
+
__decorate([
|
|
122
|
+
(0, common_1.UseGuards)(authenticated_guard_1.AuthenticatedGuard),
|
|
123
|
+
(0, common_1.Get)('sessions'),
|
|
124
|
+
__param(0, (0, common_1.Req)()),
|
|
125
|
+
__metadata("design:type", Function),
|
|
126
|
+
__metadata("design:paramtypes", [Object]),
|
|
127
|
+
__metadata("design:returntype", Promise)
|
|
128
|
+
], AuthController.prototype, "getActiveSessions", null);
|
|
129
|
+
__decorate([
|
|
130
|
+
(0, common_1.UseGuards)(authenticated_guard_1.AuthenticatedGuard),
|
|
131
|
+
(0, common_1.Post)('sessions/close-my-sessions'),
|
|
132
|
+
__param(0, (0, common_1.Req)()),
|
|
133
|
+
__param(1, (0, common_1.Res)()),
|
|
134
|
+
__metadata("design:type", Function),
|
|
135
|
+
__metadata("design:paramtypes", [Object, Object]),
|
|
136
|
+
__metadata("design:returntype", Promise)
|
|
137
|
+
], AuthController.prototype, "closeAllSessions", null);
|
|
138
|
+
__decorate([
|
|
139
|
+
(0, common_1.Get)('sessions/:userId'),
|
|
140
|
+
__param(0, (0, common_1.Param)('userId')),
|
|
141
|
+
__param(1, (0, common_1.Req)()),
|
|
142
|
+
__metadata("design:type", Function),
|
|
143
|
+
__metadata("design:paramtypes", [String, Object]),
|
|
144
|
+
__metadata("design:returntype", Promise)
|
|
145
|
+
], AuthController.prototype, "getAllSessions", null);
|
|
146
|
+
__decorate([
|
|
147
|
+
(0, common_1.Post)('sessions/:sessionId/close'),
|
|
148
|
+
__param(0, (0, common_1.Param)('sessionId')),
|
|
149
|
+
__param(1, (0, common_1.Req)()),
|
|
150
|
+
__param(2, (0, common_1.Res)()),
|
|
151
|
+
__metadata("design:type", Function),
|
|
152
|
+
__metadata("design:paramtypes", [String, Object, Object]),
|
|
153
|
+
__metadata("design:returntype", Promise)
|
|
154
|
+
], AuthController.prototype, "closeSpecificSession", null);
|
|
155
|
+
exports.AuthController = AuthController = __decorate([
|
|
156
|
+
(0, common_1.Controller)('auth'),
|
|
157
|
+
__metadata("design:paramtypes", [auth_service_1.AuthService])
|
|
158
|
+
], AuthController);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.module.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/auth.module.ts"],"names":[],"mappings":"AASA,qBAMa,UAAU;CACtB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
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.AuthModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const auth_service_1 = require("./auth.service");
|
|
12
|
+
const auth_controller_1 = require("./auth.controller");
|
|
13
|
+
const user_module_1 = require("../user/user.module");
|
|
14
|
+
const local_strategy_1 = require("./local.strategy");
|
|
15
|
+
const passport_1 = require("@nestjs/passport");
|
|
16
|
+
const session_serializer_1 = require("./session/session-serializer");
|
|
17
|
+
const config_1 = require("@nestjs/config");
|
|
18
|
+
let AuthModule = class AuthModule {
|
|
19
|
+
};
|
|
20
|
+
exports.AuthModule = AuthModule;
|
|
21
|
+
exports.AuthModule = AuthModule = __decorate([
|
|
22
|
+
(0, common_1.Module)({
|
|
23
|
+
imports: [config_1.ConfigModule, user_module_1.UserModule, passport_1.PassportModule.register({ session: true })],
|
|
24
|
+
providers: [auth_service_1.AuthService, local_strategy_1.LocalStrategy, session_serializer_1.SessionSerializer],
|
|
25
|
+
controllers: [auth_controller_1.AuthController],
|
|
26
|
+
exports: [auth_service_1.AuthService],
|
|
27
|
+
})
|
|
28
|
+
], AuthModule);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.resolver.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/auth.resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAE3C,qBACa,YAAY;IACT,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,WAAW;CAC/C"}
|
|
@@ -0,0 +1,24 @@
|
|
|
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.AuthResolver = void 0;
|
|
13
|
+
const graphql_1 = require("@nestjs/graphql");
|
|
14
|
+
const auth_service_1 = require("./auth.service");
|
|
15
|
+
let AuthResolver = class AuthResolver {
|
|
16
|
+
constructor(authService) {
|
|
17
|
+
this.authService = authService;
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
exports.AuthResolver = AuthResolver;
|
|
21
|
+
exports.AuthResolver = AuthResolver = __decorate([
|
|
22
|
+
(0, graphql_1.Resolver)(),
|
|
23
|
+
__metadata("design:paramtypes", [auth_service_1.AuthService])
|
|
24
|
+
], AuthResolver);
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { UserService } from '../user/user.service';
|
|
2
|
+
import { RegisterDto } from './dto/register.dto';
|
|
3
|
+
import { PrismaService } from '../../prisma/prisma.service';
|
|
4
|
+
import { ConfigService } from '@nestjs/config';
|
|
5
|
+
import { Request, Response } from 'express';
|
|
6
|
+
export declare class AuthService {
|
|
7
|
+
private readonly userService;
|
|
8
|
+
private prisma;
|
|
9
|
+
private configService;
|
|
10
|
+
private readonly sessionCookieName;
|
|
11
|
+
constructor(userService: UserService, prisma: PrismaService, configService: ConfigService);
|
|
12
|
+
register(registerDto: RegisterDto): Promise<{
|
|
13
|
+
message: string;
|
|
14
|
+
user: any;
|
|
15
|
+
}>;
|
|
16
|
+
login(req: Request): Promise<{
|
|
17
|
+
message: string;
|
|
18
|
+
user: any;
|
|
19
|
+
}>;
|
|
20
|
+
logout(req: Request, res: Response): Promise<void>;
|
|
21
|
+
validateUser(username: string, password: string, usernameField: string): Promise<any>;
|
|
22
|
+
getCurrentUser(req: Request): Promise<any>;
|
|
23
|
+
getActiveSessions(req: Request): Promise<any>;
|
|
24
|
+
closeAllUserSessions(req: Request, res: Response): Promise<void>;
|
|
25
|
+
getSessionsByUserId(userId: number): Promise<any>;
|
|
26
|
+
closeSpecificSession(sessionId: string): Promise<boolean>;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=auth.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/auth.service.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,WAAW,EAAC,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAC,WAAW,EAAC,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EAAC,aAAa,EAAC,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAC,aAAa,EAAC,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAC,OAAO,EAAE,QAAQ,EAAC,MAAM,SAAS,CAAC;AAE1C,qBACa,WAAW;IAIhB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,aAAa;IALzB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;gBAGtB,WAAW,EAAE,WAAW,EACjC,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,aAAa;IAKlC,QAAQ,CAAC,WAAW,EAAE,WAAW;;;;IAuBjC,KAAK,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAC,CAAC;IA8B1D,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBlD,YAAY,CACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,GACtB,OAAO,CAAC,GAAG,CAAC;IAuBT,cAAc,CAAC,GAAG,EAAE,OAAO;IAW3B,iBAAiB,CAAC,GAAG,EAAE,OAAO;IAW9B,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ;IA0BhD,mBAAmB,CAAC,MAAM,EAAE,MAAM;IAMlC,oBAAoB,CAAC,SAAS,EAAE,MAAM;CAM/C"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
+
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;
|
|
22
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
+
};
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
42
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
43
|
+
};
|
|
44
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
45
|
+
exports.AuthService = void 0;
|
|
46
|
+
const common_1 = require("@nestjs/common");
|
|
47
|
+
const user_service_1 = require("../user/user.service");
|
|
48
|
+
const argon2 = __importStar(require("argon2"));
|
|
49
|
+
const prisma_service_1 = require("../../prisma/prisma.service");
|
|
50
|
+
const config_1 = require("@nestjs/config");
|
|
51
|
+
let AuthService = class AuthService {
|
|
52
|
+
constructor(userService, prisma, configService) {
|
|
53
|
+
this.userService = userService;
|
|
54
|
+
this.prisma = prisma;
|
|
55
|
+
this.configService = configService;
|
|
56
|
+
this.sessionCookieName = this.configService.get('SESSION_COOKIE_NAME', 'defaultCookieName');
|
|
57
|
+
}
|
|
58
|
+
async register(registerDto) {
|
|
59
|
+
const existingUser = await this.userService.findByEmail(registerDto.email);
|
|
60
|
+
if (existingUser) {
|
|
61
|
+
throw new common_1.HttpException('Email already in use', common_1.HttpStatus.CONFLICT);
|
|
62
|
+
}
|
|
63
|
+
const newUserData = { ...registerDto };
|
|
64
|
+
newUserData.password = await argon2.hash(registerDto.password);
|
|
65
|
+
try {
|
|
66
|
+
const newUser = await this.userService.createUser(newUserData);
|
|
67
|
+
const { password, ...userWithoutPassword } = newUser;
|
|
68
|
+
return {
|
|
69
|
+
message: 'Registration successful',
|
|
70
|
+
user: userWithoutPassword,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
throw new common_1.HttpException('There was an error while creating your account. Please try again later.', common_1.HttpStatus.INTERNAL_SERVER_ERROR);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
async login(req) {
|
|
78
|
+
return new Promise((resolve, reject) => {
|
|
79
|
+
if (req?.user) {
|
|
80
|
+
req.login(req.user, (err) => {
|
|
81
|
+
if (err) {
|
|
82
|
+
console.error('Login error:', err);
|
|
83
|
+
return reject(new common_1.HttpException('Login failed', common_1.HttpStatus.INTERNAL_SERVER_ERROR));
|
|
84
|
+
}
|
|
85
|
+
req.session.save((err) => {
|
|
86
|
+
if (err) {
|
|
87
|
+
console.error('Session save error:', err);
|
|
88
|
+
return reject(new common_1.HttpException('Failed to save session', common_1.HttpStatus.INTERNAL_SERVER_ERROR));
|
|
89
|
+
}
|
|
90
|
+
resolve({
|
|
91
|
+
message: 'Login successful',
|
|
92
|
+
user: req.user,
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
async logout(req, res) {
|
|
100
|
+
return new Promise((resolve, reject) => {
|
|
101
|
+
if (!req.isAuthenticated()) {
|
|
102
|
+
return reject(new Error('User is not authenticated.'));
|
|
103
|
+
}
|
|
104
|
+
req.session.destroy((err) => {
|
|
105
|
+
if (err) {
|
|
106
|
+
console.error('Failed to destroy session: ', err);
|
|
107
|
+
return reject(new Error('Failed to destroy session.'));
|
|
108
|
+
}
|
|
109
|
+
res.clearCookie(this.sessionCookieName);
|
|
110
|
+
resolve();
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
async validateUser(username, password, usernameField) {
|
|
115
|
+
const user = await this.prisma.user.findFirst({
|
|
116
|
+
where: {
|
|
117
|
+
[usernameField]: username,
|
|
118
|
+
}
|
|
119
|
+
}, {
|
|
120
|
+
BYPASS_OMISSION: true,
|
|
121
|
+
BYPASS_FILTERING: true
|
|
122
|
+
});
|
|
123
|
+
if (!user) {
|
|
124
|
+
throw new common_1.UnauthorizedException(`No user found with this ${usernameField}`);
|
|
125
|
+
}
|
|
126
|
+
const isPasswordValid = await argon2.verify(user.password, password);
|
|
127
|
+
if (!isPasswordValid) {
|
|
128
|
+
throw new common_1.UnauthorizedException('Invalid credentials');
|
|
129
|
+
}
|
|
130
|
+
const { password: _password, ...userData } = user;
|
|
131
|
+
return userData;
|
|
132
|
+
}
|
|
133
|
+
async getCurrentUser(req) {
|
|
134
|
+
if (!req?.user?.id) {
|
|
135
|
+
throw new common_1.UnauthorizedException('Please log-in');
|
|
136
|
+
}
|
|
137
|
+
return this.prisma.user.findUnique({
|
|
138
|
+
where: {
|
|
139
|
+
id: req?.user?.id,
|
|
140
|
+
},
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
async getActiveSessions(req) {
|
|
144
|
+
return this.prisma.session.findMany({
|
|
145
|
+
where: {
|
|
146
|
+
userId: req?.user?.id,
|
|
147
|
+
expiresAt: {
|
|
148
|
+
gte: new Date(),
|
|
149
|
+
},
|
|
150
|
+
},
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
async closeAllUserSessions(req, res) {
|
|
154
|
+
try {
|
|
155
|
+
await new Promise((resolve, reject) => {
|
|
156
|
+
req.session.destroy((err) => {
|
|
157
|
+
if (err) {
|
|
158
|
+
console.error('Failed to destroy current session:', err);
|
|
159
|
+
return reject(new Error('Failed to destroy current session.'));
|
|
160
|
+
}
|
|
161
|
+
res.clearCookie(this.sessionCookieName);
|
|
162
|
+
resolve();
|
|
163
|
+
});
|
|
164
|
+
});
|
|
165
|
+
await this.prisma?.session.deleteMany({
|
|
166
|
+
where: {
|
|
167
|
+
userId: req?.user?.id,
|
|
168
|
+
},
|
|
169
|
+
});
|
|
170
|
+
res
|
|
171
|
+
.status(200)
|
|
172
|
+
.send({ message: 'All your sessions were closed successfully.' });
|
|
173
|
+
}
|
|
174
|
+
catch (error) {
|
|
175
|
+
console.error('Error closing sessions:', error);
|
|
176
|
+
res.status(500).send({ message: 'Failed to close sessions.' });
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
async getSessionsByUserId(userId) {
|
|
180
|
+
return this.prisma.session.findMany({
|
|
181
|
+
where: { userId, expiresAt: { gte: new Date() } },
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
async closeSpecificSession(sessionId) {
|
|
185
|
+
const deleted = await this.prisma.session.delete({
|
|
186
|
+
where: { id: sessionId },
|
|
187
|
+
}).catch(() => null);
|
|
188
|
+
return !!deleted;
|
|
189
|
+
}
|
|
190
|
+
};
|
|
191
|
+
exports.AuthService = AuthService;
|
|
192
|
+
exports.AuthService = AuthService = __decorate([
|
|
193
|
+
(0, common_1.Injectable)(),
|
|
194
|
+
__metadata("design:paramtypes", [user_service_1.UserService,
|
|
195
|
+
prisma_service_1.PrismaService,
|
|
196
|
+
config_1.ConfigService])
|
|
197
|
+
], AuthService);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authenticated.guard.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/authenticated.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,gBAAgB,EAAa,MAAM,gBAAgB,CAAC;AAEzE,qBACa,kBAAmB,YAAW,WAAW;IAClD,WAAW,CAAC,OAAO,EAAE,gBAAgB;CAIxC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
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.AuthenticatedGuard = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
let AuthenticatedGuard = class AuthenticatedGuard {
|
|
12
|
+
canActivate(context) {
|
|
13
|
+
const req = context.switchToHttp().getRequest();
|
|
14
|
+
return req.isAuthenticated();
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
exports.AuthenticatedGuard = AuthenticatedGuard;
|
|
18
|
+
exports.AuthenticatedGuard = AuthenticatedGuard = __decorate([
|
|
19
|
+
(0, common_1.Injectable)()
|
|
20
|
+
], AuthenticatedGuard);
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { UserDto } from './user.dto';
|
|
2
|
+
declare const RegisterDto_base: import("@nestjs/mapped-types").MappedType<Pick<UserDto, "password" | "email">>;
|
|
3
|
+
export declare class RegisterDto extends RegisterDto_base {
|
|
4
|
+
}
|
|
5
|
+
export {};
|
|
6
|
+
//# sourceMappingURL=register.dto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.dto.d.ts","sourceRoot":"","sources":["../../../../src/modules/auth/dto/register.dto.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAC;;AAEnC,qBACa,WAAY,SAAQ,gBAGtB;CAAG"}
|
|
@@ -0,0 +1,21 @@
|
|
|
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.RegisterDto = void 0;
|
|
10
|
+
const graphql_1 = require("@nestjs/graphql");
|
|
11
|
+
const mapped_types_1 = require("@nestjs/mapped-types");
|
|
12
|
+
const user_dto_1 = require("./user.dto");
|
|
13
|
+
let RegisterDto = class RegisterDto extends (0, mapped_types_1.PickType)(user_dto_1.UserDto, [
|
|
14
|
+
'email',
|
|
15
|
+
'password',
|
|
16
|
+
]) {
|
|
17
|
+
};
|
|
18
|
+
exports.RegisterDto = RegisterDto;
|
|
19
|
+
exports.RegisterDto = RegisterDto = __decorate([
|
|
20
|
+
(0, graphql_1.InputType)()
|
|
21
|
+
], RegisterDto);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.dto.d.ts","sourceRoot":"","sources":["../../../../src/modules/auth/dto/user.dto.ts"],"names":[],"mappings":"AASA,qBACa,OAAO;IAKhB,KAAK,EAAG,MAAM,CAAC;IAOf,QAAQ,EAAG,MAAM,CAAC;CACrB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
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.UserDto = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
const graphql_1 = require("@nestjs/graphql");
|
|
15
|
+
const auth_field_decorator_1 = require("../auth-field.decorator");
|
|
16
|
+
let UserDto = class UserDto {
|
|
17
|
+
};
|
|
18
|
+
exports.UserDto = UserDto;
|
|
19
|
+
__decorate([
|
|
20
|
+
(0, graphql_1.Field)(),
|
|
21
|
+
(0, class_validator_1.IsEmail)(),
|
|
22
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
23
|
+
(0, auth_field_decorator_1.AuthField)('username'),
|
|
24
|
+
__metadata("design:type", String)
|
|
25
|
+
], UserDto.prototype, "email", void 0);
|
|
26
|
+
__decorate([
|
|
27
|
+
(0, graphql_1.Field)(),
|
|
28
|
+
(0, class_validator_1.IsString)(),
|
|
29
|
+
(0, class_validator_1.MinLength)(6),
|
|
30
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
31
|
+
(0, auth_field_decorator_1.AuthField)('password'),
|
|
32
|
+
__metadata("design:type", String)
|
|
33
|
+
], UserDto.prototype, "password", void 0);
|
|
34
|
+
exports.UserDto = UserDto = __decorate([
|
|
35
|
+
(0, graphql_1.InputType)()
|
|
36
|
+
], UserDto);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ExecutionContext } from '@nestjs/common';
|
|
2
|
+
declare const LocalAuthGuard_base: import("@nestjs/passport").Type<import("@nestjs/passport").IAuthGuard>;
|
|
3
|
+
export declare class LocalAuthGuard extends LocalAuthGuard_base {
|
|
4
|
+
getRequest(context: ExecutionContext): any;
|
|
5
|
+
}
|
|
6
|
+
export {};
|
|
7
|
+
//# sourceMappingURL=local-auth.guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-auth.guard.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/local-auth.guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,gBAAgB,EAAa,MAAM,gBAAgB,CAAC;;AAK5D,qBACa,cAAe,SAAQ,mBAAkB;IAClD,UAAU,CAAC,OAAO,EAAE,gBAAgB;CAWvC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
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.LocalAuthGuard = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const passport_1 = require("@nestjs/passport");
|
|
12
|
+
const graphql_1 = require("@nestjs/graphql");
|
|
13
|
+
const context_transformer_util_1 = require("../../common/utils/context-transformer.util");
|
|
14
|
+
let LocalAuthGuard = class LocalAuthGuard extends (0, passport_1.AuthGuard)('local') {
|
|
15
|
+
getRequest(context) {
|
|
16
|
+
if (context.getType() === 'http') {
|
|
17
|
+
const { req } = (0, context_transformer_util_1.transformContext)(context);
|
|
18
|
+
return req;
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
const gqlContext = graphql_1.GqlExecutionContext.create(context);
|
|
22
|
+
const { req } = gqlContext.getContext();
|
|
23
|
+
req.body = gqlContext.getArgs().loginInput;
|
|
24
|
+
return req;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
exports.LocalAuthGuard = LocalAuthGuard;
|
|
29
|
+
exports.LocalAuthGuard = LocalAuthGuard = __decorate([
|
|
30
|
+
(0, common_1.Injectable)()
|
|
31
|
+
], LocalAuthGuard);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Strategy } from 'passport-local';
|
|
2
|
+
import { AuthService } from './auth.service';
|
|
3
|
+
import 'reflect-metadata';
|
|
4
|
+
declare const LocalStrategy_base: new (...args: [] | [options: import("passport-local").IStrategyOptionsWithRequest] | [options: import("passport-local").IStrategyOptions]) => Strategy & {
|
|
5
|
+
validate(...args: any[]): unknown;
|
|
6
|
+
};
|
|
7
|
+
export declare class LocalStrategy extends LocalStrategy_base {
|
|
8
|
+
private authService;
|
|
9
|
+
private readonly usernameField;
|
|
10
|
+
private readonly passwordField;
|
|
11
|
+
constructor(authService: AuthService);
|
|
12
|
+
validate(username: string, password: string): Promise<any>;
|
|
13
|
+
}
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=local.strategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local.strategy.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/local.strategy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,QAAQ,EAAC,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,kBAAkB,CAAC;;;;AAmB1B,qBACa,aAAc,SAAQ,kBAA0B;IAI7C,OAAO,CAAC,WAAW;IAH/B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;gBAEnB,WAAW,EAAE,WAAW;IAYtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;CAOnE"}
|