@anarchitects/auth-nest 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +88 -0
- package/package.json +60 -0
- package/src/application/application.module-definition.d.ts +25 -0
- package/src/application/application.module-definition.js +13 -0
- package/src/application/application.module-definition.js.map +1 -0
- package/src/application/application.module.d.ts +27 -0
- package/src/application/application.module.js +73 -0
- package/src/application/application.module.js.map +1 -0
- package/src/application/factories/ability.factory.d.ts +6 -0
- package/src/application/factories/ability.factory.js +34 -0
- package/src/application/factories/ability.factory.js.map +1 -0
- package/src/application/index.d.ts +8 -0
- package/src/application/index.js +12 -0
- package/src/application/index.js.map +1 -0
- package/src/application/services/auth.service.d.ts +32 -0
- package/src/application/services/auth.service.js +12 -0
- package/src/application/services/auth.service.js.map +1 -0
- package/src/application/services/bcrypt-hash.service.d.ts +5 -0
- package/src/application/services/bcrypt-hash.service.js +20 -0
- package/src/application/services/bcrypt-hash.service.js.map +1 -0
- package/src/application/services/hash.service.d.ts +4 -0
- package/src/application/services/hash.service.js +12 -0
- package/src/application/services/hash.service.js.map +1 -0
- package/src/application/services/jwt-auth.service.d.ts +41 -0
- package/src/application/services/jwt-auth.service.js +220 -0
- package/src/application/services/jwt-auth.service.js.map +1 -0
- package/src/application/services/policies.service.d.ts +10 -0
- package/src/application/services/policies.service.js +42 -0
- package/src/application/services/policies.service.js.map +1 -0
- package/src/application/strategies/jwt/strategy.d.ts +16 -0
- package/src/application/strategies/jwt/strategy.js +25 -0
- package/src/application/strategies/jwt/strategy.js.map +1 -0
- package/src/config/auth.config.d.ts +18 -0
- package/src/config/auth.config.js +17 -0
- package/src/config/auth.config.js.map +1 -0
- package/src/config/index.d.ts +1 -0
- package/src/config/index.js +5 -0
- package/src/config/index.js.map +1 -0
- package/src/index.d.ts +5 -0
- package/src/index.js +9 -0
- package/src/index.js.map +1 -0
- package/src/infrastructure-mailer/adapters/mailer.adapter.d.ts +4 -0
- package/src/infrastructure-mailer/adapters/mailer.adapter.js +7 -0
- package/src/infrastructure-mailer/adapters/mailer.adapter.js.map +1 -0
- package/src/infrastructure-mailer/adapters/node-mailer.adapter.d.ts +8 -0
- package/src/infrastructure-mailer/adapters/node-mailer.adapter.js +23 -0
- package/src/infrastructure-mailer/adapters/node-mailer.adapter.js.map +1 -0
- package/src/infrastructure-mailer/index.d.ts +3 -0
- package/src/infrastructure-mailer/index.js +7 -0
- package/src/infrastructure-mailer/index.js.map +1 -0
- package/src/infrastructure-mailer/mailer.module.d.ts +2 -0
- package/src/infrastructure-mailer/mailer.module.js +23 -0
- package/src/infrastructure-mailer/mailer.module.js.map +1 -0
- package/src/infrastructure-persistence/entities/invalidated-token.entity.d.ts +7 -0
- package/src/infrastructure-persistence/entities/invalidated-token.entity.js +42 -0
- package/src/infrastructure-persistence/entities/invalidated-token.entity.js.map +1 -0
- package/src/infrastructure-persistence/entities/permission.entity.d.ts +17 -0
- package/src/infrastructure-persistence/entities/permission.entity.js +76 -0
- package/src/infrastructure-persistence/entities/permission.entity.js.map +1 -0
- package/src/infrastructure-persistence/entities/role.entity.d.ts +12 -0
- package/src/infrastructure-persistence/entities/role.entity.js +69 -0
- package/src/infrastructure-persistence/entities/role.entity.js.map +1 -0
- package/src/infrastructure-persistence/entities/user.entity.d.ts +14 -0
- package/src/infrastructure-persistence/entities/user.entity.js +77 -0
- package/src/infrastructure-persistence/entities/user.entity.js.map +1 -0
- package/src/infrastructure-persistence/index.d.ts +2 -0
- package/src/infrastructure-persistence/index.js +6 -0
- package/src/infrastructure-persistence/index.js.map +1 -0
- package/src/infrastructure-persistence/migrations/1720200000000-create-invalidated-tokens-cache.table.d.ts +6 -0
- package/src/infrastructure-persistence/migrations/1720200000000-create-invalidated-tokens-cache.table.js +29 -0
- package/src/infrastructure-persistence/migrations/1720200000000-create-invalidated-tokens-cache.table.js.map +1 -0
- package/src/infrastructure-persistence/persistence.module-definition.d.ts +13 -0
- package/src/infrastructure-persistence/persistence.module-definition.js +13 -0
- package/src/infrastructure-persistence/persistence.module-definition.js.map +1 -0
- package/src/infrastructure-persistence/persistence.module.d.ts +7 -0
- package/src/infrastructure-persistence/persistence.module.js +52 -0
- package/src/infrastructure-persistence/persistence.module.js.map +1 -0
- package/src/infrastructure-persistence/repositories/auth-user.repository.d.ts +10 -0
- package/src/infrastructure-persistence/repositories/auth-user.repository.js +12 -0
- package/src/infrastructure-persistence/repositories/auth-user.repository.js.map +1 -0
- package/src/infrastructure-persistence/repositories/typeorm-auth-user.repository.d.ts +17 -0
- package/src/infrastructure-persistence/repositories/typeorm-auth-user.repository.js +62 -0
- package/src/infrastructure-persistence/repositories/typeorm-auth-user.repository.js.map +1 -0
- package/src/infrastructure-persistence/schema.d.ts +1 -0
- package/src/infrastructure-persistence/schema.js +5 -0
- package/src/infrastructure-persistence/schema.js.map +1 -0
- package/src/presentation/controllers/auth.controller.d.ts +39 -0
- package/src/presentation/controllers/auth.controller.js +198 -0
- package/src/presentation/controllers/auth.controller.js.map +1 -0
- package/src/presentation/decorators/policies.decorator.d.ts +3 -0
- package/src/presentation/decorators/policies.decorator.js +8 -0
- package/src/presentation/decorators/policies.decorator.js.map +1 -0
- package/src/presentation/guards/policies.guard.d.ts +9 -0
- package/src/presentation/guards/policies.guard.js +38 -0
- package/src/presentation/guards/policies.guard.js.map +1 -0
- package/src/presentation/index.d.ts +4 -0
- package/src/presentation/index.js +8 -0
- package/src/presentation/index.js.map +1 -0
- package/src/presentation/presentation.module.d.ts +2 -0
- package/src/presentation/presentation.module.js +15 -0
- package/src/presentation/presentation.module.js.map +1 -0
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AuthController = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const dtos_1 = require("@anarchitects/auth-ts/dtos");
|
|
6
|
+
const common_1 = require("@nestjs/common");
|
|
7
|
+
const platform_fastify_1 = require("@nestjs/platform-fastify");
|
|
8
|
+
const auth_service_1 = require("../../application/services/auth.service");
|
|
9
|
+
let AuthController = class AuthController {
|
|
10
|
+
constructor(authService) {
|
|
11
|
+
this.authService = authService;
|
|
12
|
+
}
|
|
13
|
+
async registerUser(dto) {
|
|
14
|
+
return this.authService.registerUser(dto);
|
|
15
|
+
}
|
|
16
|
+
async activateUser(dto) {
|
|
17
|
+
return this.authService.activateUser(dto);
|
|
18
|
+
}
|
|
19
|
+
async login(dto) {
|
|
20
|
+
return this.authService.login(dto);
|
|
21
|
+
}
|
|
22
|
+
async logout(dto) {
|
|
23
|
+
return this.authService.logout(dto);
|
|
24
|
+
}
|
|
25
|
+
async changePassword(userId, dto) {
|
|
26
|
+
return this.authService.changePassword(userId, dto);
|
|
27
|
+
}
|
|
28
|
+
async forgotPassword(dto) {
|
|
29
|
+
return this.authService.forgotPassword(dto);
|
|
30
|
+
}
|
|
31
|
+
async resetPassword(dto) {
|
|
32
|
+
return this.authService.resetPassword(dto);
|
|
33
|
+
}
|
|
34
|
+
async verifyEmail(dto) {
|
|
35
|
+
return this.authService.verifyEmail(dto);
|
|
36
|
+
}
|
|
37
|
+
async updateEmail(userId, dto) {
|
|
38
|
+
return this.authService.updateEmail(userId, dto);
|
|
39
|
+
}
|
|
40
|
+
async refreshTokens(userId, dto) {
|
|
41
|
+
return this.authService.refreshTokens(userId, dto);
|
|
42
|
+
}
|
|
43
|
+
async getLoggedInUserInfo(req) {
|
|
44
|
+
const userId = req.user.sub; // Assuming JWT payload contains 'sub' as userId
|
|
45
|
+
return this.authService.getLoggedInUserInfo(userId);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
exports.AuthController = AuthController;
|
|
49
|
+
tslib_1.__decorate([
|
|
50
|
+
(0, common_1.Post)('/register'),
|
|
51
|
+
(0, platform_fastify_1.RouteSchema)({
|
|
52
|
+
body: dtos_1.RegisterRequestSchema,
|
|
53
|
+
response: { 200: dtos_1.RegisterResponseSchema },
|
|
54
|
+
}),
|
|
55
|
+
tslib_1.__param(0, (0, common_1.Body)()),
|
|
56
|
+
tslib_1.__metadata("design:type", Function),
|
|
57
|
+
tslib_1.__metadata("design:paramtypes", [Object]),
|
|
58
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
59
|
+
], AuthController.prototype, "registerUser", null);
|
|
60
|
+
tslib_1.__decorate([
|
|
61
|
+
(0, common_1.Patch)('/activate'),
|
|
62
|
+
(0, platform_fastify_1.RouteSchema)({
|
|
63
|
+
body: dtos_1.ActivateUserRequestSchema,
|
|
64
|
+
response: {
|
|
65
|
+
200: { success: { type: 'boolean' } },
|
|
66
|
+
},
|
|
67
|
+
}),
|
|
68
|
+
tslib_1.__param(0, (0, common_1.Body)()),
|
|
69
|
+
tslib_1.__metadata("design:type", Function),
|
|
70
|
+
tslib_1.__metadata("design:paramtypes", [Object]),
|
|
71
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
72
|
+
], AuthController.prototype, "activateUser", null);
|
|
73
|
+
tslib_1.__decorate([
|
|
74
|
+
(0, common_1.Post)('/login'),
|
|
75
|
+
(0, platform_fastify_1.RouteSchema)({
|
|
76
|
+
body: dtos_1.LoginRequestSchema,
|
|
77
|
+
response: { 200: dtos_1.LoginResponseSchema },
|
|
78
|
+
}),
|
|
79
|
+
tslib_1.__param(0, (0, common_1.Body)()),
|
|
80
|
+
tslib_1.__metadata("design:type", Function),
|
|
81
|
+
tslib_1.__metadata("design:paramtypes", [Object]),
|
|
82
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
83
|
+
], AuthController.prototype, "login", null);
|
|
84
|
+
tslib_1.__decorate([
|
|
85
|
+
(0, common_1.Post)('/logout'),
|
|
86
|
+
(0, platform_fastify_1.RouteSchema)({
|
|
87
|
+
body: dtos_1.LogoutRequestSchema,
|
|
88
|
+
response: { 200: { success: { type: 'boolean' } } },
|
|
89
|
+
}),
|
|
90
|
+
tslib_1.__param(0, (0, common_1.Body)()),
|
|
91
|
+
tslib_1.__metadata("design:type", Function),
|
|
92
|
+
tslib_1.__metadata("design:paramtypes", [Object]),
|
|
93
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
94
|
+
], AuthController.prototype, "logout", null);
|
|
95
|
+
tslib_1.__decorate([
|
|
96
|
+
(0, common_1.Patch)('/change-password/:userId'),
|
|
97
|
+
(0, platform_fastify_1.RouteSchema)({
|
|
98
|
+
body: dtos_1.ChangePasswordRequestSchema,
|
|
99
|
+
params: {
|
|
100
|
+
userId: { type: 'string' },
|
|
101
|
+
},
|
|
102
|
+
response: { 200: { success: { type: 'boolean' } } },
|
|
103
|
+
}),
|
|
104
|
+
tslib_1.__param(0, (0, common_1.Param)('userId')),
|
|
105
|
+
tslib_1.__param(1, (0, common_1.Body)()),
|
|
106
|
+
tslib_1.__metadata("design:type", Function),
|
|
107
|
+
tslib_1.__metadata("design:paramtypes", [String, Object]),
|
|
108
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
109
|
+
], AuthController.prototype, "changePassword", null);
|
|
110
|
+
tslib_1.__decorate([
|
|
111
|
+
(0, common_1.Post)('/forgot-password'),
|
|
112
|
+
(0, platform_fastify_1.RouteSchema)({
|
|
113
|
+
body: dtos_1.ForgotPasswordRequestSchema,
|
|
114
|
+
response: { 200: { success: { type: 'boolean' } } },
|
|
115
|
+
}),
|
|
116
|
+
tslib_1.__param(0, (0, common_1.Body)()),
|
|
117
|
+
tslib_1.__metadata("design:type", Function),
|
|
118
|
+
tslib_1.__metadata("design:paramtypes", [Object]),
|
|
119
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
120
|
+
], AuthController.prototype, "forgotPassword", null);
|
|
121
|
+
tslib_1.__decorate([
|
|
122
|
+
(0, common_1.Post)('/reset-password'),
|
|
123
|
+
(0, platform_fastify_1.RouteSchema)({
|
|
124
|
+
body: dtos_1.ResetPasswordRequestSchema,
|
|
125
|
+
response: { 200: { success: { type: 'boolean' } } },
|
|
126
|
+
}),
|
|
127
|
+
tslib_1.__param(0, (0, common_1.Body)()),
|
|
128
|
+
tslib_1.__metadata("design:type", Function),
|
|
129
|
+
tslib_1.__metadata("design:paramtypes", [Object]),
|
|
130
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
131
|
+
], AuthController.prototype, "resetPassword", null);
|
|
132
|
+
tslib_1.__decorate([
|
|
133
|
+
(0, common_1.Post)('/verify-email'),
|
|
134
|
+
(0, platform_fastify_1.RouteSchema)({
|
|
135
|
+
body: dtos_1.VerifyEmailRequestSchema,
|
|
136
|
+
response: { 200: { success: { type: 'boolean' } } },
|
|
137
|
+
}),
|
|
138
|
+
tslib_1.__param(0, (0, common_1.Body)()),
|
|
139
|
+
tslib_1.__metadata("design:type", Function),
|
|
140
|
+
tslib_1.__metadata("design:paramtypes", [Object]),
|
|
141
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
142
|
+
], AuthController.prototype, "verifyEmail", null);
|
|
143
|
+
tslib_1.__decorate([
|
|
144
|
+
(0, common_1.Patch)('/update-email/:userId'),
|
|
145
|
+
(0, platform_fastify_1.RouteSchema)({
|
|
146
|
+
body: dtos_1.UpdateEmailRequestSchema,
|
|
147
|
+
params: {
|
|
148
|
+
userId: { type: 'string' },
|
|
149
|
+
},
|
|
150
|
+
response: { 200: { success: { type: 'boolean' } } },
|
|
151
|
+
}),
|
|
152
|
+
tslib_1.__param(0, (0, common_1.Param)('userId')),
|
|
153
|
+
tslib_1.__param(1, (0, common_1.Body)()),
|
|
154
|
+
tslib_1.__metadata("design:type", Function),
|
|
155
|
+
tslib_1.__metadata("design:paramtypes", [String, Object]),
|
|
156
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
157
|
+
], AuthController.prototype, "updateEmail", null);
|
|
158
|
+
tslib_1.__decorate([
|
|
159
|
+
(0, common_1.Post)('/refresh-tokens/:userId'),
|
|
160
|
+
(0, platform_fastify_1.RouteSchema)({
|
|
161
|
+
body: dtos_1.RefreshTokenRequestSchema,
|
|
162
|
+
params: {
|
|
163
|
+
userId: { type: 'string' },
|
|
164
|
+
},
|
|
165
|
+
response: { 200: dtos_1.LoginResponseSchema },
|
|
166
|
+
}),
|
|
167
|
+
tslib_1.__param(0, (0, common_1.Param)('userId')),
|
|
168
|
+
tslib_1.__param(1, (0, common_1.Body)()),
|
|
169
|
+
tslib_1.__metadata("design:type", Function),
|
|
170
|
+
tslib_1.__metadata("design:paramtypes", [String, Object]),
|
|
171
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
172
|
+
], AuthController.prototype, "refreshTokens", null);
|
|
173
|
+
tslib_1.__decorate([
|
|
174
|
+
(0, common_1.Get)('/me'),
|
|
175
|
+
(0, platform_fastify_1.RouteSchema)({
|
|
176
|
+
response: {
|
|
177
|
+
200: {
|
|
178
|
+
type: 'object',
|
|
179
|
+
properties: {
|
|
180
|
+
user: { type: 'object' }, // Define user schema as needed
|
|
181
|
+
rbac: {
|
|
182
|
+
type: 'array',
|
|
183
|
+
items: { type: 'object' }, // Define PolicyRule schema as needed
|
|
184
|
+
},
|
|
185
|
+
},
|
|
186
|
+
},
|
|
187
|
+
},
|
|
188
|
+
}),
|
|
189
|
+
tslib_1.__param(0, (0, common_1.Req)()),
|
|
190
|
+
tslib_1.__metadata("design:type", Function),
|
|
191
|
+
tslib_1.__metadata("design:paramtypes", [Object]),
|
|
192
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
193
|
+
], AuthController.prototype, "getLoggedInUserInfo", null);
|
|
194
|
+
exports.AuthController = AuthController = tslib_1.__decorate([
|
|
195
|
+
(0, common_1.Controller)('auth'),
|
|
196
|
+
tslib_1.__metadata("design:paramtypes", [auth_service_1.AuthService])
|
|
197
|
+
], AuthController);
|
|
198
|
+
//# sourceMappingURL=auth.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.controller.js","sourceRoot":"","sources":["../../../../../../../libs/auth/nest/src/presentation/controllers/auth.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { PolicyRule } from '@anarchitects/auth-ts/models';
|
|
2
|
+
export declare const POLICIES_KEY = "policies";
|
|
3
|
+
export declare const Policies: (...rules: PolicyRule[]) => <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.Policies = exports.POLICIES_KEY = void 0;
|
|
4
|
+
const common_1 = require("@nestjs/common");
|
|
5
|
+
exports.POLICIES_KEY = 'policies';
|
|
6
|
+
const Policies = (...rules) => (0, common_1.applyDecorators)((0, common_1.SetMetadata)(exports.POLICIES_KEY, rules));
|
|
7
|
+
exports.Policies = Policies;
|
|
8
|
+
//# sourceMappingURL=policies.decorator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policies.decorator.js","sourceRoot":"","sources":["../../../../../../../libs/auth/nest/src/presentation/decorators/policies.decorator.ts"],"names":[],"mappings":";;;AACA,2CAA8D;AAEjD,QAAA,YAAY,GAAG,UAAU,CAAC;AAChC,MAAM,QAAQ,GAAG,CAAC,GAAG,KAAmB,EAAE,EAAE,CACjD,IAAA,wBAAe,EAAC,IAAA,oBAAW,EAAC,oBAAY,EAAE,KAAK,CAAC,CAAC,CAAC;AADvC,QAAA,QAAQ,YAC+B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { CanActivate, ExecutionContext } from '@nestjs/common';
|
|
2
|
+
import { Reflector } from '@nestjs/core';
|
|
3
|
+
import { PoliciesService } from '../../application/services/policies.service';
|
|
4
|
+
export declare class PoliciesGuard implements CanActivate {
|
|
5
|
+
private readonly reflector;
|
|
6
|
+
private readonly policiesService;
|
|
7
|
+
constructor(reflector: Reflector, policiesService: PoliciesService);
|
|
8
|
+
canActivate(context: ExecutionContext): Promise<boolean>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PoliciesGuard = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const core_1 = require("@nestjs/core");
|
|
7
|
+
const policies_service_1 = require("../../application/services/policies.service");
|
|
8
|
+
const policies_decorator_1 = require("../decorators/policies.decorator");
|
|
9
|
+
let PoliciesGuard = class PoliciesGuard {
|
|
10
|
+
constructor(reflector, policiesService) {
|
|
11
|
+
this.reflector = reflector;
|
|
12
|
+
this.policiesService = policiesService;
|
|
13
|
+
}
|
|
14
|
+
async canActivate(context) {
|
|
15
|
+
const req = context.switchToHttp().getRequest();
|
|
16
|
+
const policies = this.reflector.getAllAndOverride(policies_decorator_1.POLICIES_KEY, [context.getHandler(), context.getClass()]);
|
|
17
|
+
if (policies) {
|
|
18
|
+
const user = req.user;
|
|
19
|
+
if (!user) {
|
|
20
|
+
throw new common_1.UnauthorizedException('User not authenticated');
|
|
21
|
+
}
|
|
22
|
+
const ability = await this.policiesService.buildAbilityForUser(user);
|
|
23
|
+
policies.forEach((policy) => {
|
|
24
|
+
if (!ability.can(policy.action, policy.subject)) {
|
|
25
|
+
throw new common_1.ForbiddenException();
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
exports.PoliciesGuard = PoliciesGuard;
|
|
33
|
+
exports.PoliciesGuard = PoliciesGuard = tslib_1.__decorate([
|
|
34
|
+
(0, common_1.Injectable)(),
|
|
35
|
+
tslib_1.__metadata("design:paramtypes", [core_1.Reflector,
|
|
36
|
+
policies_service_1.PoliciesService])
|
|
37
|
+
], PoliciesGuard);
|
|
38
|
+
//# sourceMappingURL=policies.guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policies.guard.js","sourceRoot":"","sources":["../../../../../../../libs/auth/nest/src/presentation/guards/policies.guard.ts"],"names":[],"mappings":";;;;AAAA,2CAMwB;AACxB,uCAAyC;AAEzC,kFAA8E;AAC9E,yEAAgE;AAGzD,IAAM,aAAa,GAAnB,MAAM,aAAa;IACxB,YACmB,SAAoB,EACpB,eAAgC;QADhC,cAAS,GAAT,SAAS,CAAW;QACpB,oBAAe,GAAf,eAAe,CAAiB;IAChD,CAAC;IACJ,KAAK,CAAC,WAAW,CAAC,OAAyB;QACzC,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QAEhD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAC/C,iCAAY,EACZ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAC3C,CAAC;QACF,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;YACtB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,8BAAqB,CAAC,wBAAwB,CAAC,CAAC;YAC5D,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACrE,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC1B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;oBAChD,MAAM,IAAI,2BAAkB,EAAE,CAAC;gBACjC,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AA1BY,sCAAa;wBAAb,aAAa;IADzB,IAAA,mBAAU,GAAE;6CAGmB,gBAAS;QACH,kCAAe;GAHxC,aAAa,CA0BzB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./presentation.module"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./controllers/auth.controller"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./guards/policies.guard"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./decorators/policies.decorator"), exports);
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/auth/nest/src/presentation/index.ts"],"names":[],"mappings":";;;AAAA,gEAAsC;AACtC,wEAA8C;AAC9C,kEAAwC;AACxC,0EAAgD"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PresentationModule = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const auth_controller_1 = require("./controllers/auth.controller");
|
|
7
|
+
let PresentationModule = class PresentationModule {
|
|
8
|
+
};
|
|
9
|
+
exports.PresentationModule = PresentationModule;
|
|
10
|
+
exports.PresentationModule = PresentationModule = tslib_1.__decorate([
|
|
11
|
+
(0, common_1.Module)({
|
|
12
|
+
controllers: [auth_controller_1.AuthController],
|
|
13
|
+
})
|
|
14
|
+
], PresentationModule);
|
|
15
|
+
//# sourceMappingURL=presentation.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"presentation.module.js","sourceRoot":"","sources":["../../../../../../libs/auth/nest/src/presentation/presentation.module.ts"],"names":[],"mappings":";;;;AAAA,2CAAwC;AACxC,mEAA+D;AAKxD,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;CAAG,CAAA;AAArB,gDAAkB;6BAAlB,kBAAkB;IAH9B,IAAA,eAAM,EAAC;QACN,WAAW,EAAE,CAAC,gCAAc,CAAC;KAC9B,CAAC;GACW,kBAAkB,CAAG"}
|