@ackplus/nest-auth 0.0.39 → 0.0.40

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 (178) hide show
  1. package/README.md +226 -0
  2. package/package.json +2 -2
  3. package/src/index.js +12 -0
  4. package/src/index.js.map +1 -0
  5. package/src/lib/auth/auth.module.js +52 -0
  6. package/src/lib/auth/auth.module.js.map +1 -0
  7. package/src/lib/auth/controllers/auth.controller.js +189 -0
  8. package/src/lib/auth/controllers/auth.controller.js.map +1 -0
  9. package/src/lib/auth/controllers/mfa.controller.js +130 -0
  10. package/src/lib/auth/controllers/mfa.controller.js.map +1 -0
  11. package/src/lib/auth/dto/index.js +1 -0
  12. package/src/lib/auth/dto/index.js.map +1 -0
  13. package/src/lib/auth/dto/requests/forgot-password.request.dto.js +30 -0
  14. package/src/lib/auth/dto/requests/forgot-password.request.dto.js.map +1 -0
  15. package/src/lib/auth/dto/requests/login.request.dto.js +34 -0
  16. package/src/lib/auth/dto/requests/login.request.dto.js.map +1 -0
  17. package/src/lib/auth/dto/requests/refresh-token.request.dto.js +15 -0
  18. package/src/lib/auth/dto/requests/refresh-token.request.dto.js.map +1 -0
  19. package/src/lib/auth/dto/requests/reset-password.request.dto.js +42 -0
  20. package/src/lib/auth/dto/requests/reset-password.request.dto.js.map +1 -0
  21. package/src/lib/auth/dto/requests/send-mfa-code.request.dto.js +16 -0
  22. package/src/lib/auth/dto/requests/send-mfa-code.request.dto.js.map +1 -0
  23. package/src/lib/auth/dto/requests/signup.request.dto.js +37 -0
  24. package/src/lib/auth/dto/requests/signup.request.dto.js.map +1 -0
  25. package/src/lib/auth/dto/requests/social-login.request.dto.js +16 -0
  26. package/src/lib/auth/dto/requests/social-login.request.dto.js.map +1 -0
  27. package/src/lib/auth/dto/requests/verify-2fa.request.dto.js +21 -0
  28. package/src/lib/auth/dto/requests/verify-2fa.request.dto.js.map +1 -0
  29. package/src/lib/auth/dto/requests/verify-totp-setup.request.dto.js +20 -0
  30. package/src/lib/auth/dto/requests/verify-totp-setup.request.dto.js.map +1 -0
  31. package/src/lib/auth/dto/responses/auth.response.dto.js +50 -0
  32. package/src/lib/auth/dto/responses/auth.response.dto.js.map +1 -0
  33. package/src/lib/auth/entities/mfa-secret.entity.js +50 -0
  34. package/src/lib/auth/entities/mfa-secret.entity.js.map +1 -0
  35. package/src/lib/auth/entities/otp.entity.js +50 -0
  36. package/src/lib/auth/entities/otp.entity.js.map +1 -0
  37. package/src/lib/auth/events/logged-out-all.event.js +10 -0
  38. package/src/lib/auth/events/logged-out-all.event.js.map +1 -0
  39. package/src/lib/auth/events/logged-out.event.js +10 -0
  40. package/src/lib/auth/events/logged-out.event.js.map +1 -0
  41. package/src/lib/auth/events/password-reset-requested.event.js +10 -0
  42. package/src/lib/auth/events/password-reset-requested.event.js.map +1 -0
  43. package/src/lib/auth/events/password-reset.event.js +10 -0
  44. package/src/lib/auth/events/password-reset.event.js.map +1 -0
  45. package/src/lib/auth/events/user-2fa-verified.event.js +10 -0
  46. package/src/lib/auth/events/user-2fa-verified.event.js.map +1 -0
  47. package/src/lib/auth/events/user-logged-in.event.js +10 -0
  48. package/src/lib/auth/events/user-logged-in.event.js.map +1 -0
  49. package/src/lib/auth/events/user-refresh-token.event.js +10 -0
  50. package/src/lib/auth/events/user-refresh-token.event.js.map +1 -0
  51. package/src/lib/auth/index.js +20 -0
  52. package/src/lib/auth/index.js.map +1 -0
  53. package/src/lib/auth/services/auth.service.js +396 -0
  54. package/src/lib/auth/services/auth.service.js.map +1 -0
  55. package/src/lib/auth/services/cookie.service.js +43 -0
  56. package/src/lib/auth/services/cookie.service.js.map +1 -0
  57. package/src/lib/auth/services/mfa.service.js +255 -0
  58. package/src/lib/auth/services/mfa.service.js.map +1 -0
  59. package/src/lib/auth.constants.js +43 -0
  60. package/src/lib/auth.constants.js.map +1 -0
  61. package/src/lib/core/core.module.js +67 -0
  62. package/src/lib/core/core.module.js.map +1 -0
  63. package/src/lib/core/decorators/role.decorator.js +14 -0
  64. package/src/lib/core/decorators/role.decorator.js.map +1 -0
  65. package/src/lib/core/decorators/skip-mfa.decorator.js +8 -0
  66. package/src/lib/core/decorators/skip-mfa.decorator.js.map +1 -0
  67. package/src/lib/core/dto/message.response.dto.js +13 -0
  68. package/src/lib/core/dto/message.response.dto.js.map +1 -0
  69. package/src/lib/core/entities.d.ts +1 -1
  70. package/src/lib/core/entities.js +34 -0
  71. package/src/lib/core/entities.js.map +1 -0
  72. package/src/lib/core/guards/auth.guard.js +135 -0
  73. package/src/lib/core/guards/auth.guard.js.map +1 -0
  74. package/src/lib/core/guards/role.guard.js +40 -0
  75. package/src/lib/core/guards/role.guard.js.map +1 -0
  76. package/src/lib/core/index.js +27 -0
  77. package/src/lib/core/index.js.map +1 -0
  78. package/src/lib/core/interfaces/auth-module-options.interface.js +3 -0
  79. package/src/lib/core/interfaces/auth-module-options.interface.js.map +1 -0
  80. package/src/lib/core/interfaces/mfa-options.interface.js +10 -0
  81. package/src/lib/core/interfaces/mfa-options.interface.js.map +1 -0
  82. package/src/lib/core/interfaces/otp.interface.js +10 -0
  83. package/src/lib/core/interfaces/otp.interface.js.map +1 -0
  84. package/src/lib/core/interfaces/session-options.interface.js +9 -0
  85. package/src/lib/core/interfaces/session-options.interface.js.map +1 -0
  86. package/src/lib/core/interfaces/token-payload.interface.js +3 -0
  87. package/src/lib/core/interfaces/token-payload.interface.js.map +1 -0
  88. package/src/lib/core/providers/apple-auth.provider.js +58 -0
  89. package/src/lib/core/providers/apple-auth.provider.js.map +1 -0
  90. package/src/lib/core/providers/base-auth.provider.js +41 -0
  91. package/src/lib/core/providers/base-auth.provider.js.map +1 -0
  92. package/src/lib/core/providers/email-auth.provider.js +42 -0
  93. package/src/lib/core/providers/email-auth.provider.js.map +1 -0
  94. package/src/lib/core/providers/facebook-auth.provider.js +58 -0
  95. package/src/lib/core/providers/facebook-auth.provider.js.map +1 -0
  96. package/src/lib/core/providers/google-auth.provider.js +60 -0
  97. package/src/lib/core/providers/google-auth.provider.js.map +1 -0
  98. package/src/lib/core/providers/jwt-auth.provider.js +51 -0
  99. package/src/lib/core/providers/jwt-auth.provider.js.map +1 -0
  100. package/src/lib/core/providers/phone-auth.provider.js +45 -0
  101. package/src/lib/core/providers/phone-auth.provider.js.map +1 -0
  102. package/src/lib/core/services/auth-provider-registry.service.js +72 -0
  103. package/src/lib/core/services/auth-provider-registry.service.js.map +1 -0
  104. package/src/lib/core/services/jwt.service.js +93 -0
  105. package/src/lib/core/services/jwt.service.js.map +1 -0
  106. package/src/lib/nest-auth.module.js +118 -0
  107. package/src/lib/nest-auth.module.js.map +1 -0
  108. package/src/lib/request-context/request-context.js +108 -0
  109. package/src/lib/request-context/request-context.js.map +1 -0
  110. package/src/lib/request-context/request-context.middleware.js +16 -0
  111. package/src/lib/request-context/request-context.middleware.js.map +1 -0
  112. package/src/lib/role/entities/permission.entity.js +42 -0
  113. package/src/lib/role/entities/permission.entity.js.map +1 -0
  114. package/src/lib/role/entities/role.entity.js +106 -0
  115. package/src/lib/role/entities/role.entity.js.map +1 -0
  116. package/src/lib/role/index.js +6 -0
  117. package/src/lib/role/index.js.map +1 -0
  118. package/src/lib/role/role.module.js +22 -0
  119. package/src/lib/role/role.module.js.map +1 -0
  120. package/src/lib/role/services/role.service.js +220 -0
  121. package/src/lib/role/services/role.service.js.map +1 -0
  122. package/src/lib/session/entities/session.entity.js +63 -0
  123. package/src/lib/session/entities/session.entity.js.map +1 -0
  124. package/src/lib/session/index.js +8 -0
  125. package/src/lib/session/index.js.map +1 -0
  126. package/src/lib/session/services/base-session.service.js +66 -0
  127. package/src/lib/session/services/base-session.service.js.map +1 -0
  128. package/src/lib/session/services/database-session.service.js +55 -0
  129. package/src/lib/session/services/database-session.service.js.map +1 -0
  130. package/src/lib/session/services/redis-session.service.js +120 -0
  131. package/src/lib/session/services/redis-session.service.js.map +1 -0
  132. package/src/lib/session/session.module.js +33 -0
  133. package/src/lib/session/session.module.js.map +1 -0
  134. package/src/lib/tenant/entities/tenant.entity.js +44 -0
  135. package/src/lib/tenant/entities/tenant.entity.js.map +1 -0
  136. package/src/lib/tenant/events/tenant-created.event.js +10 -0
  137. package/src/lib/tenant/events/tenant-created.event.js.map +1 -0
  138. package/src/lib/tenant/events/tenant-deleted.event.js +10 -0
  139. package/src/lib/tenant/events/tenant-deleted.event.js.map +1 -0
  140. package/src/lib/tenant/events/tenant-updated.event.js +10 -0
  141. package/src/lib/tenant/events/tenant-updated.event.js.map +1 -0
  142. package/src/lib/tenant/index.js +7 -0
  143. package/src/lib/tenant/index.js.map +1 -0
  144. package/src/lib/tenant/services/tenant.service.js +136 -0
  145. package/src/lib/tenant/services/tenant.service.js.map +1 -0
  146. package/src/lib/tenant/tenant.module.js +27 -0
  147. package/src/lib/tenant/tenant.module.js.map +1 -0
  148. package/src/lib/user/dto/requests/update-user.dto.js +24 -0
  149. package/src/lib/user/dto/requests/update-user.dto.js.map +1 -0
  150. package/src/lib/user/entities/access-key.entity.js +63 -0
  151. package/src/lib/user/entities/access-key.entity.js.map +1 -0
  152. package/src/lib/user/entities/auth-identity.entity.js +47 -0
  153. package/src/lib/user/entities/auth-identity.entity.js.map +1 -0
  154. package/src/lib/user/entities/user.entity.js +189 -0
  155. package/src/lib/user/entities/user.entity.js.map +1 -0
  156. package/src/lib/user/events/user-created.event.js +10 -0
  157. package/src/lib/user/events/user-created.event.js.map +1 -0
  158. package/src/lib/user/events/user-deleted.event.js +10 -0
  159. package/src/lib/user/events/user-deleted.event.js.map +1 -0
  160. package/src/lib/user/events/user-registered.event.js +10 -0
  161. package/src/lib/user/events/user-registered.event.js.map +1 -0
  162. package/src/lib/user/events/user-updated.event.js +10 -0
  163. package/src/lib/user/events/user-updated.event.js.map +1 -0
  164. package/src/lib/user/index.js +8 -0
  165. package/src/lib/user/index.js.map +1 -0
  166. package/src/lib/user/services/access-key.service.js +119 -0
  167. package/src/lib/user/services/access-key.service.js.map +1 -0
  168. package/src/lib/user/services/user.service.js +217 -0
  169. package/src/lib/user/services/user.service.js.map +1 -0
  170. package/src/lib/user/user.module.js +32 -0
  171. package/src/lib/user/user.module.js.map +1 -0
  172. package/src/lib/utils/database.utils.js +8 -0
  173. package/src/lib/utils/database.utils.js.map +1 -0
  174. package/src/lib/utils/otp.js +7 -0
  175. package/src/lib/utils/otp.js.map +1 -0
  176. package/tsconfig.tsbuildinfo +1 -0
  177. package/index.cjs.d.ts +0 -1
  178. package/index.cjs.js +0 -28350
@@ -0,0 +1,220 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RoleService = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const typeorm_1 = require("@nestjs/typeorm");
7
+ const typeorm_2 = require("typeorm");
8
+ const role_entity_1 = require("../entities/role.entity");
9
+ let RoleService = class RoleService {
10
+ constructor(roleRepository) {
11
+ this.roleRepository = roleRepository;
12
+ }
13
+ async createRole(name, guard, tenantId = null, isSystem = false, permissionIds) {
14
+ const existingRole = await this.roleRepository.findOne({
15
+ where: {
16
+ name,
17
+ guard,
18
+ tenantId: tenantId || (0, typeorm_2.IsNull)()
19
+ },
20
+ });
21
+ if (existingRole) {
22
+ throw new common_1.ConflictException({
23
+ message: `Role with name '${name}' already exists in guard '${guard}'${tenantId ? ` for tenant '${tenantId}'` : ''}`,
24
+ code: 'ROLE_ALREADY_EXISTS'
25
+ });
26
+ }
27
+ const role = await role_entity_1.Role.createRole(name, guard, isSystem, tenantId);
28
+ if (permissionIds) {
29
+ await role.syncPermissions(permissionIds);
30
+ }
31
+ await this.roleRepository.save(role);
32
+ return role;
33
+ }
34
+ async getRoleById(id, options) {
35
+ if (!id) {
36
+ return null;
37
+ }
38
+ const role = await this.roleRepository.findOne({
39
+ ...(options ? options : {}),
40
+ where: { id }
41
+ });
42
+ if (!role) {
43
+ return null;
44
+ }
45
+ return role;
46
+ }
47
+ async getRoleByName(name, guard, tenantId, options) {
48
+ const systemRole = await this.roleRepository.findOne({
49
+ ...(options ? options : {}),
50
+ where: {
51
+ name,
52
+ ...(guard ? { guard } : {}),
53
+ isSystem: true
54
+ }
55
+ });
56
+ if (systemRole) {
57
+ return systemRole;
58
+ }
59
+ const role = await this.roleRepository.findOne({
60
+ ...(options ? options : {}),
61
+ where: {
62
+ name,
63
+ ...(guard ? { guard } : {}),
64
+ ...(tenantId ? { tenantId } : { tenantId: (0, typeorm_2.IsNull)() })
65
+ }
66
+ });
67
+ return role;
68
+ }
69
+ async getSystemRoles(options) {
70
+ return this.roleRepository.find({
71
+ ...(options ? options : {}),
72
+ where: {
73
+ isSystem: true,
74
+ tenantId: (0, typeorm_2.IsNull)(),
75
+ ...(options?.where ? options.where : {})
76
+ },
77
+ order: {
78
+ name: 'ASC'
79
+ }
80
+ });
81
+ }
82
+ async getRoles(options) {
83
+ return this.roleRepository.find(options);
84
+ }
85
+ async getSystemRolesByGuard(guard, options) {
86
+ return this.roleRepository.find({
87
+ ...(options ? options : {}),
88
+ where: {
89
+ guard,
90
+ isSystem: true,
91
+ ...(options?.where ? options.where : {})
92
+ },
93
+ order: {
94
+ name: 'ASC'
95
+ }
96
+ });
97
+ }
98
+ async getRolesByGuard(guard, tenantId, options) {
99
+ if (!guard) {
100
+ return [];
101
+ }
102
+ return this.roleRepository.find({
103
+ ...(options ? options : {}),
104
+ where: {
105
+ guard,
106
+ ...(tenantId ? { tenantId } : { tenantId: (0, typeorm_2.IsNull)() }),
107
+ ...(options?.where ? options.where : {})
108
+ },
109
+ });
110
+ }
111
+ async getRolesByTenant(tenantId, includeSystemRoles = true, options) {
112
+ if (!tenantId) {
113
+ return [];
114
+ }
115
+ const query = this.roleRepository.createQueryBuilder('role')
116
+ .leftJoinAndSelect('role.rolePermissions', 'rolePermission');
117
+ query.where('role.tenantId = :tenantId', { tenantId });
118
+ if (includeSystemRoles) {
119
+ query.orWhere('role.tenantId IS NULL AND role.isSystem = :isSystem', { isSystem: true });
120
+ }
121
+ if (options) {
122
+ if (options.where) {
123
+ query.andWhere(options.where);
124
+ }
125
+ if (options.order) {
126
+ Object.entries(options.order).forEach(([key, value]) => {
127
+ query.addOrderBy(`role.${key}`, value);
128
+ });
129
+ }
130
+ if (options.skip) {
131
+ query.skip(options.skip);
132
+ }
133
+ if (options.take) {
134
+ query.take(options.take);
135
+ }
136
+ }
137
+ return query.getMany();
138
+ }
139
+ async updateRole(id, data) {
140
+ const role = await this.getRoleById(id);
141
+ if (!role) {
142
+ throw new common_1.NotFoundException({
143
+ message: `Role with ID ${id} not found`,
144
+ code: 'ROLE_NOT_FOUND'
145
+ });
146
+ }
147
+ if (role.isSystem) {
148
+ throw new common_1.ConflictException({
149
+ message: 'Cannot update system role',
150
+ code: 'SYSTEM_ROLE_UPDATE_ERROR',
151
+ });
152
+ }
153
+ delete data.isSystem;
154
+ delete data.tenantId;
155
+ if ((data.name && data.name !== role.name) || (data.guard && data.guard !== role.guard)) {
156
+ const systemRole = await this.getRoleByName(data.name || role.name, data.guard || role.guard);
157
+ if (systemRole) {
158
+ throw new common_1.ConflictException({
159
+ message: `Cannot use name '${data.name || role.name}' as it conflicts with a system role`,
160
+ code: 'SYSTEM_ROLE_CONFLICT'
161
+ });
162
+ }
163
+ const existingRole = await this.getRoleByName(data.name || role.name, data.guard || role.guard, role.tenantId);
164
+ if (existingRole && existingRole.id !== role.id) {
165
+ throw new common_1.ConflictException({
166
+ message: `Role with name '${data.name || role.name}' already exists in guard '${data.guard || role.guard}'${role.tenantId ? ` for tenant '${role.tenantId}'` : ''}`,
167
+ code: 'ROLE_ALREADY_EXISTS'
168
+ });
169
+ }
170
+ }
171
+ Object.assign(role, data);
172
+ return this.roleRepository.save(role);
173
+ }
174
+ async updateRolePermissions(id, permissionIds) {
175
+ const role = await this.getRoleById(id);
176
+ if (!role) {
177
+ throw new common_1.NotFoundException({
178
+ message: `Role with ID ${id} not found`,
179
+ code: 'ROLE_NOT_FOUND'
180
+ });
181
+ }
182
+ if (role.isSystem) {
183
+ throw new common_1.BadRequestException({
184
+ message: 'Cannot update system role',
185
+ code: 'SYSTEM_ROLE_UPDATE_ERROR',
186
+ });
187
+ }
188
+ await role.syncPermissions(permissionIds);
189
+ return this.roleRepository.save(role);
190
+ }
191
+ async deleteRole(id) {
192
+ const role = await this.getRoleById(id);
193
+ if (!role) {
194
+ throw new common_1.NotFoundException({
195
+ message: `Role with ID ${id} not found`,
196
+ code: 'ROLE_NOT_FOUND'
197
+ });
198
+ }
199
+ if (role.isSystem) {
200
+ throw new common_1.BadRequestException({
201
+ message: 'Cannot delete system role',
202
+ code: 'SYSTEM_ROLE_DELETE_ERROR',
203
+ });
204
+ }
205
+ await this.roleRepository.remove(role);
206
+ }
207
+ async deleteSystemRole(id) {
208
+ const role = await this.getRoleById(id);
209
+ if (role?.isSystem) {
210
+ await this.roleRepository.remove(role);
211
+ }
212
+ }
213
+ };
214
+ exports.RoleService = RoleService;
215
+ exports.RoleService = RoleService = tslib_1.__decorate([
216
+ (0, common_1.Injectable)(),
217
+ tslib_1.__param(0, (0, typeorm_1.InjectRepository)(role_entity_1.Role)),
218
+ tslib_1.__metadata("design:paramtypes", [typeorm_2.Repository])
219
+ ], RoleService);
220
+ //# sourceMappingURL=role.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role.service.js","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/role/services/role.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Session = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const typeorm_1 = require("typeorm");
6
+ const user_entity_1 = require("../../user/entities/user.entity");
7
+ let Session = class Session extends typeorm_1.BaseEntity {
8
+ };
9
+ exports.Session = Session;
10
+ tslib_1.__decorate([
11
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
12
+ tslib_1.__metadata("design:type", String)
13
+ ], Session.prototype, "id", void 0);
14
+ tslib_1.__decorate([
15
+ (0, typeorm_1.Column)({ nullable: true }),
16
+ (0, typeorm_1.RelationId)((session) => session.user),
17
+ tslib_1.__metadata("design:type", String)
18
+ ], Session.prototype, "userId", void 0);
19
+ tslib_1.__decorate([
20
+ (0, typeorm_1.ManyToOne)(() => user_entity_1.User, { onDelete: 'CASCADE' }),
21
+ (0, typeorm_1.JoinColumn)({ name: 'userId' }),
22
+ tslib_1.__metadata("design:type", user_entity_1.User)
23
+ ], Session.prototype, "user", void 0);
24
+ tslib_1.__decorate([
25
+ (0, typeorm_1.Column)('simple-json', { nullable: true, default: '{}' }),
26
+ tslib_1.__metadata("design:type", Object)
27
+ ], Session.prototype, "data", void 0);
28
+ tslib_1.__decorate([
29
+ (0, typeorm_1.Column)({ nullable: true }),
30
+ tslib_1.__metadata("design:type", String)
31
+ ], Session.prototype, "refreshToken", void 0);
32
+ tslib_1.__decorate([
33
+ (0, typeorm_1.Column)({ nullable: true }),
34
+ tslib_1.__metadata("design:type", Date)
35
+ ], Session.prototype, "expiresAt", void 0);
36
+ tslib_1.__decorate([
37
+ (0, typeorm_1.Column)({ nullable: true }),
38
+ tslib_1.__metadata("design:type", String)
39
+ ], Session.prototype, "userAgent", void 0);
40
+ tslib_1.__decorate([
41
+ (0, typeorm_1.Column)({ nullable: true }),
42
+ tslib_1.__metadata("design:type", String)
43
+ ], Session.prototype, "deviceName", void 0);
44
+ tslib_1.__decorate([
45
+ (0, typeorm_1.Column)({ nullable: true }),
46
+ tslib_1.__metadata("design:type", String)
47
+ ], Session.prototype, "ipAddress", void 0);
48
+ tslib_1.__decorate([
49
+ (0, typeorm_1.Column)({ nullable: true }),
50
+ tslib_1.__metadata("design:type", Date)
51
+ ], Session.prototype, "lastActive", void 0);
52
+ tslib_1.__decorate([
53
+ (0, typeorm_1.CreateDateColumn)(),
54
+ tslib_1.__metadata("design:type", Date)
55
+ ], Session.prototype, "createdAt", void 0);
56
+ tslib_1.__decorate([
57
+ (0, typeorm_1.UpdateDateColumn)(),
58
+ tslib_1.__metadata("design:type", Date)
59
+ ], Session.prototype, "updatedAt", void 0);
60
+ exports.Session = Session = tslib_1.__decorate([
61
+ (0, typeorm_1.Entity)('nest_auth_sessions')
62
+ ], Session);
63
+ //# sourceMappingURL=session.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.entity.js","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/session/entities/session.entity.ts"],"names":[],"mappings":";;;;AAAA,qCAUiB;AACjB,iEAAuD;AAIhD,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,oBAAU;CAsCtC,CAAA;AAtCY,0BAAO;AAEhB;IADC,IAAA,gCAAsB,EAAC,MAAM,CAAC;;mCACpB;AAIX;IAFC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1B,IAAA,oBAAU,EAAC,CAAC,OAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;;uCAChC;AAIf;IAFC,IAAA,mBAAS,EAAC,GAAG,EAAE,CAAC,kBAAI,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAC9C,IAAA,oBAAU,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;sCACzB,kBAAI;qCAAC;AAGX;IADC,IAAA,gBAAM,EAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;;qCAC9C;AAGX;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;6CACN;AAGrB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCAChB,IAAI;0CAAC;AAGhB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CACR;AAGnB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;2CACP;AAGpB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CACR;AAGnB;IADC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;sCACf,IAAI;2CAAC;AAGjB;IADC,IAAA,0BAAgB,GAAE;sCACP,IAAI;0CAAC;AAGjB;IADC,IAAA,0BAAgB,GAAE;sCACP,IAAI;0CAAC;kBArCR,OAAO;IADnB,IAAA,gBAAM,EAAC,oBAAoB,CAAC;GAChB,OAAO,CAsCnB"}
@@ -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("./services/base-session.service"), exports);
5
+ tslib_1.__exportStar(require("./services/database-session.service"), exports);
6
+ tslib_1.__exportStar(require("./services/redis-session.service"), exports);
7
+ tslib_1.__exportStar(require("./session.module"), exports);
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/nest-auth/src/lib/session/index.ts"],"names":[],"mappings":";;;AAIA,0EAAgD;AAChD,8EAAoD;AACpD,2EAAiD;AAGjD,2DAAiC"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseSessionService = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const auth_constants_1 = require("../../auth.constants");
7
+ const common_2 = require("@nestjs/common");
8
+ const request_context_1 = require("../../request-context/request-context");
9
+ const ms_1 = tslib_1.__importDefault(require("ms"));
10
+ const lodash_1 = require("lodash");
11
+ const session_options_interface_1 = require("../../core/interfaces/session-options.interface");
12
+ let BaseSessionService = class BaseSessionService {
13
+ constructor(authModuleOptions) {
14
+ this.authModuleOptions = authModuleOptions;
15
+ const defaultSessionOptions = {
16
+ sessionExpiry: 7 * 24 * 60 * 60 * 1000,
17
+ refreshTokenExpiry: 15 * 60 * 1000,
18
+ storageType: session_options_interface_1.SessionStorageType.DATABASE,
19
+ };
20
+ this.sessionOptions = Object.assign({}, defaultSessionOptions, this.authModuleOptions.session);
21
+ }
22
+ getSessionOptions() {
23
+ return this.sessionOptions;
24
+ }
25
+ async createSessionFromUser(user, extraData = {}) {
26
+ const { deviceName, ipAddress, browser } = request_context_1.RequestContext.getDeviceInfo();
27
+ const { isMfaVerified = false } = extraData;
28
+ if (!user) {
29
+ throw new common_1.UnauthorizedException('User not found');
30
+ }
31
+ const expiresAt = new Date(Date.now() + (0, ms_1.default)(this.authModuleOptions.session.sessionExpiry));
32
+ const roles = await user.getRoles();
33
+ const permissions = await user.getPermissions();
34
+ const session = {
35
+ userId: user.id,
36
+ data: {
37
+ user,
38
+ isMfaVerified: isMfaVerified,
39
+ roles,
40
+ permissions,
41
+ },
42
+ userAgent: [browser, deviceName].join(' - '),
43
+ ipAddress,
44
+ deviceName,
45
+ expiresAt,
46
+ lastActive: new Date(),
47
+ createdAt: new Date(),
48
+ updatedAt: new Date(),
49
+ };
50
+ return this.createSession(session);
51
+ }
52
+ createSessionFromSession(session) {
53
+ const newSession = {
54
+ ...(0, lodash_1.omit)(session, 'id'),
55
+ expiresAt: new Date(Date.now() + (0, ms_1.default)(this.authModuleOptions.session.sessionExpiry)),
56
+ };
57
+ return this.createSession(newSession);
58
+ }
59
+ };
60
+ exports.BaseSessionService = BaseSessionService;
61
+ exports.BaseSessionService = BaseSessionService = tslib_1.__decorate([
62
+ (0, common_1.Injectable)(),
63
+ tslib_1.__param(0, (0, common_2.Inject)(auth_constants_1.AUTH_MODULE_OPTIONS)),
64
+ tslib_1.__metadata("design:paramtypes", [Object])
65
+ ], BaseSessionService);
66
+ //# sourceMappingURL=base-session.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-session.service.js","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/session/services/base-session.service.ts"],"names":[],"mappings":";;;;AAAA,2CAAmE;AACnE,yDAA2D;AAC3D,2CAAwC;AACxC,2EAAuE;AACvE,oDAAoB;AACpB,mCAA8B;AAE9B,+FAAqG;AAK9F,IAAe,kBAAkB,GAAjC,MAAe,kBAAkB;IAGpC,YAEuB,iBAAoC;QAApC,sBAAiB,GAAjB,iBAAiB,CAAmB;QAEvD,MAAM,qBAAqB,GAAmB;YAC1C,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;YACtC,kBAAkB,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI;YAClC,WAAW,EAAE,8CAAkB,CAAC,QAAQ;SAC3C,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,qBAAqB,EAAE,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACnG,CAAC;IAED,iBAAiB;QACb,OAAO,IAAI,CAAC,cAAc,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,IAAU,EAAE,YAAyC,EAAE;QAC/E,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,gCAAc,CAAC,aAAa,EAAE,CAAC;QAC1E,MAAM,EAAE,aAAa,GAAG,KAAK,EAAE,GAAG,SAAS,CAAC;QAE5C,IAAI,CAAC,IAAI,EAAE,CAAC;YACR,MAAM,IAAI,8BAAqB,CAAC,gBAAgB,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAA,YAAE,EAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;QAE1F,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAGhD,MAAM,OAAO,GAAmB;YAC5B,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,IAAI,EAAE;gBACF,IAAI;gBACJ,aAAa,EAAE,aAAa;gBAC5B,KAAK;gBACL,WAAW;aACd;YACD,SAAS,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;YAC5C,SAAS;YACT,UAAU;YACV,SAAS;YACT,UAAU,EAAE,IAAI,IAAI,EAAE;YACtB,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,SAAS,EAAE,IAAI,IAAI,EAAE;SACxB,CAAC;QAEF,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAED,wBAAwB,CAAC,OAAuB;QAC5C,MAAM,UAAU,GAAmB;YAC/B,GAAG,IAAA,aAAI,EAAC,OAAO,EAAE,IAAI,CAAC;YACtB,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAA,YAAE,EAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;SACrF,CAAC;QAEF,OAAO,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAC1C,CAAC;CAWJ,CAAA;AAvEqB,gDAAkB;6BAAlB,kBAAkB;IADvC,IAAA,mBAAU,GAAE;IAKJ,mBAAA,IAAA,eAAM,EAAC,oCAAmB,CAAC,CAAA;;GAJd,kBAAkB,CAuEvC"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DatabaseSessionService = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const typeorm_1 = require("@nestjs/typeorm");
7
+ const typeorm_2 = require("typeorm");
8
+ const session_entity_1 = require("../../session/entities/session.entity");
9
+ const base_session_service_1 = require("./base-session.service");
10
+ const auth_constants_1 = require("../../auth.constants");
11
+ const common_2 = require("@nestjs/common");
12
+ let DatabaseSessionService = class DatabaseSessionService extends base_session_service_1.BaseSessionService {
13
+ constructor(authModuleOptions, sessionRepository) {
14
+ super(authModuleOptions);
15
+ this.authModuleOptions = authModuleOptions;
16
+ this.sessionRepository = sessionRepository;
17
+ }
18
+ async createSession(session) {
19
+ const sessionEntity = await this.sessionRepository.save(session);
20
+ return sessionEntity;
21
+ }
22
+ async getSession(sessionId) {
23
+ return this.sessionRepository.findOne({ where: { id: sessionId } });
24
+ }
25
+ async getUserSessions(userId) {
26
+ return this.sessionRepository.find({ where: { userId } });
27
+ }
28
+ async getCurrentSessions(userId) {
29
+ return this.sessionRepository.find({ where: { userId, expiresAt: (0, typeorm_2.MoreThan)(new Date()) } });
30
+ }
31
+ async updateSession(sessionId, updates) {
32
+ await this.sessionRepository.update(sessionId, updates);
33
+ return this.getSession(sessionId);
34
+ }
35
+ async deleteSession(sessionId) {
36
+ await this.sessionRepository.delete(sessionId);
37
+ }
38
+ async deleteUserSessions(userId) {
39
+ await this.sessionRepository.delete({ userId });
40
+ }
41
+ async revokeSession(sessionId) {
42
+ await this.sessionRepository.delete(sessionId);
43
+ }
44
+ async revokeUserSessions(userId) {
45
+ await this.sessionRepository.delete({ userId });
46
+ }
47
+ };
48
+ exports.DatabaseSessionService = DatabaseSessionService;
49
+ exports.DatabaseSessionService = DatabaseSessionService = tslib_1.__decorate([
50
+ (0, common_1.Injectable)(),
51
+ tslib_1.__param(0, (0, common_2.Inject)(auth_constants_1.AUTH_MODULE_OPTIONS)),
52
+ tslib_1.__param(1, (0, typeorm_1.InjectRepository)(session_entity_1.Session)),
53
+ tslib_1.__metadata("design:paramtypes", [Object, typeorm_2.Repository])
54
+ ], DatabaseSessionService);
55
+ //# sourceMappingURL=database-session.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-session.service.js","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/session/services/database-session.service.ts"],"names":[],"mappings":";;;;AAAA,2CAA4C;AAC5C,6CAAmD;AACnD,qCAA+C;AAC/C,0EAAgE;AAChE,iEAA4D;AAE5D,yDAA2D;AAC3D,2CAAwC;AAKjC,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,yCAAkB;IAC1D,YAEsB,iBAAoC,EAGrC,iBAAsC;QAEvD,KAAK,CAAC,iBAAiB,CAAC,CAAC;QALP,sBAAiB,GAAjB,iBAAiB,CAAmB;QAGrC,sBAAiB,GAAjB,iBAAiB,CAAqB;IAG3D,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAuB;QACvC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjE,OAAO,aAAa,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiB;QAC9B,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,MAAc;QAChC,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,MAAc;QACnC,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAA,kBAAQ,EAAC,IAAI,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,OAAyB;QAC5D,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB;QACjC,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,MAAc;QACnC,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAiB;QACjC,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,MAAc;QACnC,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACpD,CAAC;CACJ,CAAA;AAhDY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,mBAAU,GAAE;IAGJ,mBAAA,IAAA,eAAM,EAAC,oCAAmB,CAAC,CAAA;IAG3B,mBAAA,IAAA,0BAAgB,EAAC,wBAAO,CAAC,CAAA;qDACU,oBAAU;GANzC,sBAAsB,CAgDlC"}
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RedisSessionService = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const ioredis_1 = require("ioredis");
7
+ const ioredis_2 = require("@nestjs-modules/ioredis");
8
+ const auth_constants_1 = require("../../auth.constants");
9
+ const base_session_service_1 = require("./base-session.service");
10
+ const uuid_1 = require("uuid");
11
+ let RedisSessionService = class RedisSessionService extends base_session_service_1.BaseSessionService {
12
+ constructor(authModuleOptions, redis) {
13
+ super(authModuleOptions);
14
+ this.authModuleOptions = authModuleOptions;
15
+ this.redis = redis;
16
+ this.sessionPrefix = 'session:';
17
+ this.userSessionsPrefix = 'user_sessions:';
18
+ }
19
+ getSessionKey(sessionId) {
20
+ return `${this.sessionPrefix}${sessionId}`;
21
+ }
22
+ getUserSessionsKey(userId) {
23
+ return `${this.userSessionsPrefix}${userId}`;
24
+ }
25
+ async createSession(session) {
26
+ const sessionKey = this.getSessionKey(session.id);
27
+ const userSessionsKey = this.getUserSessionsKey(session.userId);
28
+ await this.redis.hset(sessionKey, {
29
+ id: session.id || (0, uuid_1.v4)(),
30
+ userId: session.userId,
31
+ refreshToken: session.refreshToken,
32
+ userAgent: session.userAgent || '',
33
+ ipAddress: session.ipAddress || '',
34
+ deviceName: session.deviceName || '',
35
+ expiresAt: session.expiresAt.toISOString(),
36
+ lastActive: session.lastActive.toISOString(),
37
+ data: JSON.stringify(session.data),
38
+ });
39
+ await this.redis.sadd(userSessionsKey, session.id);
40
+ const ttl = Math.floor((session.expiresAt.getTime() - Date.now()) / 1000);
41
+ await this.redis.expire(sessionKey, ttl);
42
+ await this.redis.expire(userSessionsKey, ttl);
43
+ return session;
44
+ }
45
+ async getSession(sessionId) {
46
+ const sessionKey = this.getSessionKey(sessionId);
47
+ const sessionData = await this.redis.hgetall(sessionKey);
48
+ if (!sessionData || !sessionData.id) {
49
+ return null;
50
+ }
51
+ return {
52
+ id: sessionData.id,
53
+ userId: sessionData.userId,
54
+ refreshToken: sessionData.refreshToken,
55
+ userAgent: sessionData.userAgent,
56
+ ipAddress: sessionData.ipAddress,
57
+ deviceName: sessionData.deviceName,
58
+ expiresAt: new Date(sessionData.expiresAt),
59
+ lastActive: new Date(sessionData.lastActive),
60
+ data: JSON.parse(sessionData.data || '{}'),
61
+ };
62
+ }
63
+ async getUserSessions(userId) {
64
+ const userSessionsKey = this.getUserSessionsKey(userId);
65
+ const sessionIds = await this.redis.smembers(userSessionsKey);
66
+ const sessions = [];
67
+ for (const sessionId of sessionIds) {
68
+ const session = await this.getSession(sessionId);
69
+ if (session) {
70
+ sessions.push(session);
71
+ }
72
+ }
73
+ return sessions;
74
+ }
75
+ async getCurrentSessions(userId) {
76
+ const sessions = await this.getUserSessions(userId);
77
+ return sessions.filter(session => session.expiresAt > new Date());
78
+ }
79
+ async updateSession(sessionId, updates) {
80
+ const sessionKey = this.getSessionKey(sessionId);
81
+ const session = await this.getSession(sessionId);
82
+ if (!session) {
83
+ return;
84
+ }
85
+ const updatedSession = { ...session, ...updates };
86
+ await this.createSession(updatedSession);
87
+ return this.getSession(sessionId);
88
+ }
89
+ async deleteSession(sessionId) {
90
+ const session = await this.getSession(sessionId);
91
+ if (!session) {
92
+ return;
93
+ }
94
+ const sessionKey = this.getSessionKey(sessionId);
95
+ const userSessionsKey = this.getUserSessionsKey(session.userId);
96
+ await this.redis.del(sessionKey);
97
+ await this.redis.srem(userSessionsKey, sessionId);
98
+ }
99
+ async deleteUserSessions(userId) {
100
+ const userSessionsKey = this.getUserSessionsKey(userId);
101
+ const sessionIds = await this.redis.smembers(userSessionsKey);
102
+ for (const sessionId of sessionIds) {
103
+ await this.deleteSession(sessionId);
104
+ }
105
+ }
106
+ async revokeSession(sessionId) {
107
+ await this.deleteSession(sessionId);
108
+ }
109
+ async revokeUserSessions(userId) {
110
+ await this.deleteUserSessions(userId);
111
+ }
112
+ };
113
+ exports.RedisSessionService = RedisSessionService;
114
+ exports.RedisSessionService = RedisSessionService = tslib_1.__decorate([
115
+ (0, common_1.Injectable)(),
116
+ tslib_1.__param(0, (0, common_1.Inject)(auth_constants_1.AUTH_MODULE_OPTIONS)),
117
+ tslib_1.__param(1, (0, ioredis_2.InjectRedis)()),
118
+ tslib_1.__metadata("design:paramtypes", [Object, ioredis_1.Redis])
119
+ ], RedisSessionService);
120
+ //# sourceMappingURL=redis-session.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redis-session.service.js","sourceRoot":"","sources":["../../../../../../../packages/nest-auth/src/lib/session/services/redis-session.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SessionModule = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const common_1 = require("@nestjs/common");
6
+ const typeorm_1 = require("@nestjs/typeorm");
7
+ const session_entity_1 = require("./entities/session.entity");
8
+ const database_session_service_1 = require("./services/database-session.service");
9
+ const base_session_service_1 = require("./services/base-session.service");
10
+ const core_module_1 = require("../core/core.module");
11
+ let SessionModule = class SessionModule {
12
+ };
13
+ exports.SessionModule = SessionModule;
14
+ exports.SessionModule = SessionModule = tslib_1.__decorate([
15
+ (0, common_1.Module)({
16
+ imports: [
17
+ typeorm_1.TypeOrmModule.forFeature([session_entity_1.Session]),
18
+ (0, common_1.forwardRef)(() => core_module_1.CoreModule),
19
+ ],
20
+ providers: [
21
+ database_session_service_1.DatabaseSessionService,
22
+ {
23
+ provide: base_session_service_1.BaseSessionService,
24
+ useClass: database_session_service_1.DatabaseSessionService,
25
+ },
26
+ ],
27
+ exports: [
28
+ database_session_service_1.DatabaseSessionService,
29
+ base_session_service_1.BaseSessionService,
30
+ ],
31
+ })
32
+ ], SessionModule);
33
+ //# sourceMappingURL=session.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.module.js","sourceRoot":"","sources":["../../../../../../packages/nest-auth/src/lib/session/session.module.ts"],"names":[],"mappings":";;;;AAAA,2CAAoD;AACpD,6CAAgD;AAChD,8DAAoD;AACpD,kFAA6E;AAC7E,0EAAqE;AACrE,qDAAiD;AAmB1C,IAAM,aAAa,GAAnB,MAAM,aAAa;CACzB,CAAA;AADY,sCAAa;wBAAb,aAAa;IAjBzB,IAAA,eAAM,EAAC;QACJ,OAAO,EAAE;YACL,uBAAa,CAAC,UAAU,CAAC,CAAC,wBAAO,CAAC,CAAC;YACnC,IAAA,mBAAU,EAAC,GAAG,EAAE,CAAC,wBAAU,CAAC;SAC/B;QACD,SAAS,EAAE;YACP,iDAAsB;YACtB;gBACI,OAAO,EAAE,yCAAkB;gBAC3B,QAAQ,EAAE,iDAAsB;aACnC;SACJ;QACD,OAAO,EAAE;YACL,iDAAsB;YACtB,yCAAkB;SACrB;KACJ,CAAC;GACW,aAAa,CACzB"}