@vynelix/nestjs-multi-auth 0.3.2 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +309 -18
  3. package/dist/auth/auth.controller.d.ts +3 -2
  4. package/dist/auth/auth.controller.js +32 -5
  5. package/dist/auth/auth.controller.js.map +1 -1
  6. package/dist/auth/auth.module.js +116 -68
  7. package/dist/auth/auth.module.js.map +1 -1
  8. package/dist/auth/auth.service.d.ts +52 -25
  9. package/dist/auth/auth.service.js +238 -327
  10. package/dist/auth/auth.service.js.map +1 -1
  11. package/dist/auth/core/auth-mapper.d.ts +1 -1
  12. package/dist/auth/core/database-otp.provider.d.ts +12 -0
  13. package/dist/auth/core/database-otp.provider.js +122 -0
  14. package/dist/auth/core/database-otp.provider.js.map +1 -0
  15. package/dist/auth/dto/requests/magic-link.dto.d.ts +1 -0
  16. package/dist/auth/dto/requests/magic-link.dto.js +6 -0
  17. package/dist/auth/dto/requests/magic-link.dto.js.map +1 -1
  18. package/dist/auth/dto/requests/mfa.dto.d.ts +5 -1
  19. package/dist/auth/dto/requests/mfa.dto.js +29 -8
  20. package/dist/auth/dto/requests/mfa.dto.js.map +1 -1
  21. package/dist/auth/enums/identifier-type.enum.d.ts +11 -0
  22. package/dist/auth/enums/identifier-type.enum.js +17 -0
  23. package/dist/auth/enums/identifier-type.enum.js.map +1 -0
  24. package/dist/auth/enums/mfa-type.enum.d.ts +5 -0
  25. package/dist/auth/enums/mfa-type.enum.js +10 -0
  26. package/dist/auth/enums/mfa-type.enum.js.map +1 -0
  27. package/dist/auth/enums/otp-purpose.enum.d.ts +8 -0
  28. package/dist/auth/enums/otp-purpose.enum.js +13 -0
  29. package/dist/auth/enums/otp-purpose.enum.js.map +1 -0
  30. package/dist/auth/enums/session-event.enum.d.ts +7 -0
  31. package/dist/auth/enums/session-event.enum.js +12 -0
  32. package/dist/auth/enums/session-event.enum.js.map +1 -0
  33. package/dist/auth/interfaces/auth-module-options.interface.d.ts +36 -1
  34. package/dist/auth/interfaces/auth-notification-provider.interface.d.ts +7 -1
  35. package/dist/auth/interfaces/auth-otp-provider.interface.d.ts +60 -0
  36. package/dist/auth/interfaces/auth-otp-provider.interface.js +7 -0
  37. package/dist/auth/interfaces/auth-otp-provider.interface.js.map +1 -0
  38. package/dist/auth/interfaces/models.interface.d.ts +91 -0
  39. package/dist/auth/interfaces/models.interface.js +3 -0
  40. package/dist/auth/interfaces/models.interface.js.map +1 -0
  41. package/dist/auth/interfaces/oauth-strategy.interface.d.ts +2 -2
  42. package/dist/auth/interfaces/repositories.interface.d.ts +70 -0
  43. package/dist/auth/interfaces/repositories.interface.js +3 -0
  44. package/dist/auth/interfaces/repositories.interface.js.map +1 -0
  45. package/dist/auth/interfaces/repository-tokens.d.ts +7 -0
  46. package/dist/auth/interfaces/repository-tokens.js +11 -0
  47. package/dist/auth/interfaces/repository-tokens.js.map +1 -0
  48. package/dist/auth/interfaces/signup-event-body.interface.d.ts +1 -1
  49. package/dist/auth/strategies/local-auth.strategy.d.ts +3 -5
  50. package/dist/auth/strategies/local-auth.strategy.js +64 -99
  51. package/dist/auth/strategies/local-auth.strategy.js.map +1 -1
  52. package/dist/auth/strategies/oauth/apple.strategy.d.ts +4 -6
  53. package/dist/auth/strategies/oauth/apple.strategy.js +57 -70
  54. package/dist/auth/strategies/oauth/apple.strategy.js.map +1 -1
  55. package/dist/auth/strategies/oauth/facebook.strategy.d.ts +4 -6
  56. package/dist/auth/strategies/oauth/facebook.strategy.js +58 -71
  57. package/dist/auth/strategies/oauth/facebook.strategy.js.map +1 -1
  58. package/dist/auth/strategies/oauth/google.strategy.d.ts +4 -6
  59. package/dist/auth/strategies/oauth/google.strategy.js +84 -155
  60. package/dist/auth/strategies/oauth/google.strategy.js.map +1 -1
  61. package/dist/auth/strategies/oauth/oauth.strategy.d.ts +2 -2
  62. package/dist/database/prisma/prisma-auth.adapter.d.ts +11 -0
  63. package/dist/database/prisma/prisma-auth.adapter.js +64 -0
  64. package/dist/database/prisma/prisma-auth.adapter.js.map +1 -0
  65. package/dist/database/prisma/repositories/auth-identifier.repository.d.ts +16 -0
  66. package/dist/database/prisma/repositories/auth-identifier.repository.js +41 -0
  67. package/dist/database/prisma/repositories/auth-identifier.repository.js.map +1 -0
  68. package/dist/database/prisma/repositories/auth.repository.d.ts +19 -0
  69. package/dist/database/prisma/repositories/auth.repository.js +49 -0
  70. package/dist/database/prisma/repositories/auth.repository.js.map +1 -0
  71. package/dist/database/prisma/repositories/index.d.ts +7 -0
  72. package/dist/database/prisma/repositories/index.js +24 -0
  73. package/dist/database/prisma/repositories/index.js.map +1 -0
  74. package/dist/database/prisma/repositories/mfa-method.repository.d.ts +11 -0
  75. package/dist/database/prisma/repositories/mfa-method.repository.js +33 -0
  76. package/dist/database/prisma/repositories/mfa-method.repository.js.map +1 -0
  77. package/dist/database/prisma/repositories/oauth-provider.repository.d.ts +14 -0
  78. package/dist/database/prisma/repositories/oauth-provider.repository.js +39 -0
  79. package/dist/database/prisma/repositories/oauth-provider.repository.js.map +1 -0
  80. package/dist/database/prisma/repositories/otp-token.repository.d.ts +13 -0
  81. package/dist/database/prisma/repositories/otp-token.repository.js +52 -0
  82. package/dist/database/prisma/repositories/otp-token.repository.js.map +1 -0
  83. package/dist/database/prisma/repositories/session-log.repository.d.ts +12 -0
  84. package/dist/database/prisma/repositories/session-log.repository.js +42 -0
  85. package/dist/database/prisma/repositories/session-log.repository.js.map +1 -0
  86. package/dist/database/prisma/repositories/session.repository.d.ts +16 -0
  87. package/dist/database/prisma/repositories/session.repository.js +41 -0
  88. package/dist/database/prisma/repositories/session.repository.js.map +1 -0
  89. package/dist/database/typeorm/entities/auth-identify.entity.d.ts +23 -0
  90. package/dist/database/typeorm/entities/auth-identify.entity.js +61 -0
  91. package/dist/database/typeorm/entities/auth-identify.entity.js.map +1 -0
  92. package/dist/database/typeorm/entities/auth.entity.d.ts +45 -0
  93. package/dist/database/typeorm/entities/auth.entity.js +129 -0
  94. package/dist/database/typeorm/entities/auth.entity.js.map +1 -0
  95. package/dist/database/typeorm/entities/base.entity.d.ts +7 -0
  96. package/dist/database/typeorm/entities/base.entity.js +44 -0
  97. package/dist/database/typeorm/entities/base.entity.js.map +1 -0
  98. package/dist/database/typeorm/entities/entities.d.ts +7 -0
  99. package/dist/database/typeorm/entities/entities.js +18 -0
  100. package/dist/database/typeorm/entities/entities.js.map +1 -0
  101. package/dist/database/typeorm/entities/mfa-method.entity.d.ts +10 -0
  102. package/dist/database/typeorm/entities/mfa-method.entity.js +47 -0
  103. package/dist/database/typeorm/entities/mfa-method.entity.js.map +1 -0
  104. package/dist/database/typeorm/entities/oauth-provider.entity.d.ts +38 -0
  105. package/dist/database/typeorm/entities/oauth-provider.entity.js +88 -0
  106. package/dist/database/typeorm/entities/oauth-provider.entity.js.map +1 -0
  107. package/dist/database/typeorm/entities/otp-token.entity.d.ts +15 -0
  108. package/dist/database/typeorm/entities/otp-token.entity.js +53 -0
  109. package/dist/database/typeorm/entities/otp-token.entity.js.map +1 -0
  110. package/dist/database/typeorm/entities/session.entity.d.ts +21 -0
  111. package/dist/database/typeorm/entities/session.entity.js +71 -0
  112. package/dist/database/typeorm/entities/session.entity.js.map +1 -0
  113. package/dist/database/typeorm/entities/session_log.entity.d.ts +25 -0
  114. package/dist/database/typeorm/entities/session_log.entity.js +78 -0
  115. package/dist/database/typeorm/entities/session_log.entity.js.map +1 -0
  116. package/dist/database/typeorm/migrations/auth-entities.d.ts +7 -0
  117. package/dist/database/typeorm/migrations/auth-entities.js +18 -0
  118. package/dist/database/typeorm/migrations/auth-entities.js.map +1 -0
  119. package/dist/database/typeorm/migrations/auth-schema.initializer.d.ts +9 -0
  120. package/dist/database/typeorm/migrations/auth-schema.initializer.js +36 -0
  121. package/dist/database/typeorm/migrations/auth-schema.initializer.js.map +1 -0
  122. package/dist/database/typeorm/migrations/auth.migration.v1.d.ts +12 -0
  123. package/dist/database/typeorm/migrations/auth.migration.v1.js +157 -0
  124. package/dist/database/typeorm/migrations/auth.migration.v1.js.map +1 -0
  125. package/dist/database/typeorm/migrations/auth.migration.v2.d.ts +8 -0
  126. package/dist/database/typeorm/migrations/auth.migration.v2.js +23 -0
  127. package/dist/database/typeorm/migrations/auth.migration.v2.js.map +1 -0
  128. package/dist/database/typeorm/migrations/auth.migrations.d.ts +2 -0
  129. package/dist/database/typeorm/migrations/auth.migrations.js +10 -0
  130. package/dist/database/typeorm/migrations/auth.migrations.js.map +1 -0
  131. package/dist/database/typeorm/migrations/migration.service.d.ts +9 -0
  132. package/dist/database/typeorm/migrations/migration.service.js +75 -0
  133. package/dist/database/typeorm/migrations/migration.service.js.map +1 -0
  134. package/dist/database/typeorm/repositories/auth-identifier.repository.d.ts +18 -0
  135. package/dist/database/typeorm/repositories/auth-identifier.repository.js +64 -0
  136. package/dist/database/typeorm/repositories/auth-identifier.repository.js.map +1 -0
  137. package/dist/database/typeorm/repositories/auth.repository.d.ts +21 -0
  138. package/dist/database/typeorm/repositories/auth.repository.js +71 -0
  139. package/dist/database/typeorm/repositories/auth.repository.js.map +1 -0
  140. package/dist/database/typeorm/repositories/index.d.ts +7 -0
  141. package/dist/database/typeorm/repositories/index.js +24 -0
  142. package/dist/database/typeorm/repositories/index.js.map +1 -0
  143. package/dist/database/typeorm/repositories/mfa-method.repository.d.ts +13 -0
  144. package/dist/database/typeorm/repositories/mfa-method.repository.js +46 -0
  145. package/dist/database/typeorm/repositories/mfa-method.repository.js.map +1 -0
  146. package/dist/database/typeorm/repositories/oauth-provider.repository.d.ts +16 -0
  147. package/dist/database/typeorm/repositories/oauth-provider.repository.js +52 -0
  148. package/dist/database/typeorm/repositories/oauth-provider.repository.js.map +1 -0
  149. package/dist/database/typeorm/repositories/otp-token.repository.d.ts +13 -0
  150. package/dist/database/typeorm/repositories/otp-token.repository.js +52 -0
  151. package/dist/database/typeorm/repositories/otp-token.repository.js.map +1 -0
  152. package/dist/database/typeorm/repositories/session-log.repository.d.ts +12 -0
  153. package/dist/database/typeorm/repositories/session-log.repository.js +47 -0
  154. package/dist/database/typeorm/repositories/session-log.repository.js.map +1 -0
  155. package/dist/database/typeorm/repositories/session.repository.d.ts +18 -0
  156. package/dist/database/typeorm/repositories/session.repository.js +84 -0
  157. package/dist/database/typeorm/repositories/session.repository.js.map +1 -0
  158. package/dist/database/typeorm/typeorm-auth.adapter.d.ts +2 -0
  159. package/dist/database/typeorm/typeorm-auth.adapter.js +50 -0
  160. package/dist/database/typeorm/typeorm-auth.adapter.js.map +1 -0
  161. package/dist/index.d.ts +11 -9
  162. package/dist/index.js +18 -10
  163. package/dist/index.js.map +1 -1
  164. package/dist/tsconfig.tsbuildinfo +1 -1
  165. package/fix-imports.js +46 -0
  166. package/fix-syntax.js +66 -0
  167. package/package.json +22 -20
  168. package/patch-local-specs.js +52 -0
  169. package/patch-oauth-specs.js +41 -0
  170. package/patch-specs.js +36 -0
  171. package/prompts/database_adapter.md +157 -0
  172. package/prompts/otp_provider.md +292 -0
  173. package/scratch/create-prisma-repos-final.js +139 -0
  174. package/scratch/create-prisma-repos.js +280 -0
  175. package/scratch/fix-events-spec.js +12 -0
  176. package/scratch/fix-imports.js +53 -0
  177. package/scratch/fix-prisma-interfaces.js +41 -0
  178. package/scratch/fix-prisma-interfaces2.js +36 -0
  179. package/scratch/fix-prisma-interfaces3.js +26 -0
  180. package/scratch/fix-prisma.js +28 -0
  181. package/scratch/fix-test-imports.js +51 -0
  182. package/scratch/fix-tests-advanced.js +68 -0
  183. package/scratch/fix-tests-advanced2.js +23 -0
  184. package/scratch/fix-tests-concrete.js +40 -0
  185. package/scratch/fix-tests-final.js +35 -0
  186. package/scratch/fix-tests-final2.js +28 -0
  187. package/scratch/fix-tests-final3.js +26 -0
  188. package/scratch/fix-tests-methods.js +40 -0
  189. package/scratch/fix-tests-proxy.js +67 -0
  190. package/scratch/fix-tests-types.js +24 -0
  191. package/scratch/rewrite-tests.js +110 -0
  192. package/tsc_errors.txt +60 -0
  193. package/tsc_errors2.txt +93 -0
  194. package/tmp-cv-test/package-lock.json +0 -250
  195. package/tmp-cv-test/package.json +0 -17
  196. package/tmp-cv-test/test.ts +0 -11
@@ -1 +1 @@
1
- {"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/auth/auth.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/auth/auth.service.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { AuthResponseDto } from "../dto/responses/auth-response.dto";
2
- import { Auth } from "../entities/auth.entity";
2
+ import { Auth } from '../interfaces/models.interface';
3
3
  export declare class AuthMapper {
4
4
  static toDto(auth: Auth): AuthResponseDto;
5
5
  static toDtoList(auths: Auth[]): AuthResponseDto[];
@@ -0,0 +1,12 @@
1
+ import { AuthOtpProvider, IssueOtpRequest, IssueOtpResult, VerifyOtpRequest, VerifyOtpResult, ResendOtpRequest, ResendOtpResult } from '../interfaces/auth-otp-provider.interface';
2
+ import { OtpTokenRepository } from '../interfaces/repositories.interface';
3
+ import { AuthModuleOptions } from '../interfaces/auth-module-options.interface';
4
+ export declare class DatabaseOtpProvider implements AuthOtpProvider {
5
+ private readonly otpRepo;
6
+ private readonly options;
7
+ private readonly logger;
8
+ constructor(otpRepo: OtpTokenRepository, options: AuthModuleOptions);
9
+ issue(request: IssueOtpRequest): Promise<IssueOtpResult>;
10
+ verify(request: VerifyOtpRequest): Promise<VerifyOtpResult>;
11
+ resend(request: ResendOtpRequest): Promise<ResendOtpResult>;
12
+ }
@@ -0,0 +1,122 @@
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
+ var DatabaseOtpProvider_1;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.DatabaseOtpProvider = void 0;
17
+ const common_1 = require("@nestjs/common");
18
+ const bcrypt = require("bcrypt");
19
+ const repository_tokens_1 = require("../interfaces/repository-tokens");
20
+ const auth_module_options_interface_1 = require("../interfaces/auth-module-options.interface");
21
+ let DatabaseOtpProvider = DatabaseOtpProvider_1 = class DatabaseOtpProvider {
22
+ constructor(otpRepo, options) {
23
+ this.otpRepo = otpRepo;
24
+ this.options = options;
25
+ this.logger = new common_1.Logger(DatabaseOtpProvider_1.name);
26
+ }
27
+ async issue(request) {
28
+ let code;
29
+ let handledDelivery = false;
30
+ const testAccount = this.options.testAccounts?.find(ta => ta.identifier === request.identifier);
31
+ if (testAccount) {
32
+ code = testAccount.otp;
33
+ handledDelivery = true; // Skip sending notification
34
+ }
35
+ else if (this.options.debugMode && this.options.defaultOtp) {
36
+ code = this.options.defaultOtp;
37
+ }
38
+ else {
39
+ code = Math.floor(100000 + Math.random() * 900000).toString();
40
+ }
41
+ const hash = await bcrypt.hash(code, 10);
42
+ const expiresAt = new Date();
43
+ const otpExpMins = request.expiresIn || this.options.otpExpiresIn || 15;
44
+ expiresAt.setMinutes(expiresAt.getMinutes() + otpExpMins);
45
+ await this.otpRepo.create({
46
+ identifier: request.identifier,
47
+ purpose: request.purpose,
48
+ codeHash: hash,
49
+ expiresAt,
50
+ requestUserId: request.uid,
51
+ requestAuthId: request.authId,
52
+ });
53
+ return {
54
+ handledDelivery,
55
+ code,
56
+ expiresAt,
57
+ };
58
+ }
59
+ async verify(request) {
60
+ let otp;
61
+ if (request.purpose) {
62
+ otp = await this.otpRepo.findLatestUnusedByPurpose(request.uid, request.purpose);
63
+ }
64
+ else {
65
+ otp = await this.otpRepo.findLatestUnused(request.uid);
66
+ }
67
+ if (!otp) {
68
+ throw new common_1.BadRequestException('No verification code found');
69
+ }
70
+ if (new Date() > otp.expiresAt) {
71
+ throw new common_1.BadRequestException('Verification code expired');
72
+ }
73
+ const isMatch = await bcrypt.compare(request.code, otp.codeHash);
74
+ if (!isMatch) {
75
+ throw new common_1.BadRequestException('Invalid verification code');
76
+ }
77
+ otp.isUsed = true;
78
+ await this.otpRepo.save(otp);
79
+ return {
80
+ success: true,
81
+ authId: otp.requestAuthId,
82
+ metadata: {
83
+ identifier: otp.identifier,
84
+ purpose: otp.purpose,
85
+ }
86
+ };
87
+ }
88
+ async resend(request) {
89
+ let latestOtp;
90
+ if (request.purpose) {
91
+ latestOtp = await this.otpRepo.findLatestUnusedByPurpose(request.uid, request.purpose);
92
+ }
93
+ else {
94
+ latestOtp = await this.otpRepo.findLatestUnused(request.uid);
95
+ }
96
+ if (latestOtp) {
97
+ const intervalSeconds = this.options.otpResendInterval || 60;
98
+ const diffMs = Date.now() - latestOtp.createdAt.getTime();
99
+ if (diffMs < intervalSeconds * 1000) {
100
+ const wait = Math.ceil(intervalSeconds - (diffMs / 1000));
101
+ throw new common_1.BadRequestException(`Please wait ${wait} seconds before requesting a new code.`);
102
+ }
103
+ // We issue a new OTP for the same identifier and purpose
104
+ return this.issue({
105
+ uid: request.uid,
106
+ authId: latestOtp.requestAuthId,
107
+ identifier: latestOtp.identifier,
108
+ identifierType: latestOtp.identifier.includes('@') ? 'email' : 'phone', // rough heuristic, ideally should come from request
109
+ purpose: latestOtp.purpose,
110
+ });
111
+ }
112
+ throw new common_1.BadRequestException('No previous verification code found to resend.');
113
+ }
114
+ };
115
+ exports.DatabaseOtpProvider = DatabaseOtpProvider;
116
+ exports.DatabaseOtpProvider = DatabaseOtpProvider = DatabaseOtpProvider_1 = __decorate([
117
+ (0, common_1.Injectable)(),
118
+ __param(0, (0, common_1.Inject)(repository_tokens_1.OTP_TOKEN_REPOSITORY_TOKEN)),
119
+ __param(1, (0, common_1.Inject)(auth_module_options_interface_1.AUTH_MODULE_OPTIONS)),
120
+ __metadata("design:paramtypes", [Object, Object])
121
+ ], DatabaseOtpProvider);
122
+ //# sourceMappingURL=database-otp.provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database-otp.provider.js","sourceRoot":"","sources":["../../../src/auth/core/database-otp.provider.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,5 @@ export declare class MagicLinkRequestDto {
3
3
  }
4
4
  export declare class MagicLinkVerifyDto {
5
5
  token: string;
6
+ email: string;
6
7
  }
@@ -30,4 +30,10 @@ __decorate([
30
30
  (0, class_validator_1.IsNotEmpty)(),
31
31
  __metadata("design:type", String)
32
32
  ], MagicLinkVerifyDto.prototype, "token", void 0);
33
+ __decorate([
34
+ (0, swagger_1.ApiProperty)({ example: 'john@example.com' }),
35
+ (0, class_validator_1.IsEmail)(),
36
+ (0, class_validator_1.IsNotEmpty)(),
37
+ __metadata("design:type", String)
38
+ ], MagicLinkVerifyDto.prototype, "email", void 0);
33
39
  //# sourceMappingURL=magic-link.dto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"magic-link.dto.js","sourceRoot":"","sources":["../../../../src/auth/dto/requests/magic-link.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,qDAAgE;AAEhE,MAAa,mBAAmB;CAK/B;AALD,kDAKC;AADC;IAHC,IAAA,qBAAW,EAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC5C,IAAA,yBAAO,GAAE;IACT,IAAA,4BAAU,GAAE;;kDACC;AAGhB,MAAa,kBAAkB;CAK9B;AALD,gDAKC;AADC;IAHC,IAAA,qBAAW,EAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAC9C,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;iDACC"}
1
+ {"version":3,"file":"magic-link.dto.js","sourceRoot":"","sources":["../../../../src/auth/dto/requests/magic-link.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA8C;AAC9C,qDAAgE;AAEhE,MAAa,mBAAmB;CAK/B;AALD,kDAKC;AADC;IAHC,IAAA,qBAAW,EAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC5C,IAAA,yBAAO,GAAE;IACT,IAAA,4BAAU,GAAE;;kDACC;AAGhB,MAAa,kBAAkB;CAU9B;AAVD,gDAUC;AANC;IAHC,IAAA,qBAAW,EAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAC9C,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;iDACC;AAKd;IAHC,IAAA,qBAAW,EAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC5C,IAAA,yBAAO,GAAE;IACT,IAAA,4BAAU,GAAE;;iDACC"}
@@ -1,4 +1,4 @@
1
- import { MfaType } from '../../entities/mfa-method.entity';
1
+ import { MfaType } from '../../enums/mfa-type.enum';
2
2
  export declare class EnrollMfaDto {
3
3
  type: MfaType;
4
4
  }
@@ -6,3 +6,7 @@ export declare class ActivateMfaDto {
6
6
  type: MfaType;
7
7
  code: string;
8
8
  }
9
+ export declare class VerifyMfaLoginDto {
10
+ uid: string;
11
+ code: string;
12
+ }
@@ -9,21 +9,21 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.ActivateMfaDto = exports.EnrollMfaDto = void 0;
12
+ exports.VerifyMfaLoginDto = exports.ActivateMfaDto = exports.EnrollMfaDto = void 0;
13
13
  const class_validator_1 = require("class-validator");
14
14
  const swagger_1 = require("@nestjs/swagger");
15
- const mfa_method_entity_1 = require("../../entities/mfa-method.entity");
15
+ const mfa_type_enum_1 = require("../../enums/mfa-type.enum");
16
16
  class EnrollMfaDto {
17
17
  }
18
18
  exports.EnrollMfaDto = EnrollMfaDto;
19
19
  __decorate([
20
20
  (0, swagger_1.ApiProperty)({
21
21
  description: 'The type of MFA to enroll (e.g., TOTP)',
22
- enum: mfa_method_entity_1.MfaType,
23
- example: mfa_method_entity_1.MfaType.TOTP,
22
+ enum: mfa_type_enum_1.MfaType,
23
+ example: mfa_type_enum_1.MfaType.TOTP,
24
24
  }),
25
25
  (0, class_validator_1.IsNotEmpty)(),
26
- (0, class_validator_1.IsEnum)(mfa_method_entity_1.MfaType),
26
+ (0, class_validator_1.IsEnum)(mfa_type_enum_1.MfaType),
27
27
  __metadata("design:type", String)
28
28
  ], EnrollMfaDto.prototype, "type", void 0);
29
29
  class ActivateMfaDto {
@@ -32,11 +32,11 @@ exports.ActivateMfaDto = ActivateMfaDto;
32
32
  __decorate([
33
33
  (0, swagger_1.ApiProperty)({
34
34
  description: 'The type of MFA to activate',
35
- enum: mfa_method_entity_1.MfaType,
36
- example: mfa_method_entity_1.MfaType.TOTP,
35
+ enum: mfa_type_enum_1.MfaType,
36
+ example: mfa_type_enum_1.MfaType.TOTP,
37
37
  }),
38
38
  (0, class_validator_1.IsNotEmpty)(),
39
- (0, class_validator_1.IsEnum)(mfa_method_entity_1.MfaType),
39
+ (0, class_validator_1.IsEnum)(mfa_type_enum_1.MfaType),
40
40
  __metadata("design:type", String)
41
41
  ], ActivateMfaDto.prototype, "type", void 0);
42
42
  __decorate([
@@ -48,4 +48,25 @@ __decorate([
48
48
  (0, class_validator_1.IsString)(),
49
49
  __metadata("design:type", String)
50
50
  ], ActivateMfaDto.prototype, "code", void 0);
51
+ class VerifyMfaLoginDto {
52
+ }
53
+ exports.VerifyMfaLoginDto = VerifyMfaLoginDto;
54
+ __decorate([
55
+ (0, swagger_1.ApiProperty)({
56
+ description: 'The user identity ID',
57
+ example: '123e4567-e89b-12d3-a456-426614174000',
58
+ }),
59
+ (0, class_validator_1.IsNotEmpty)(),
60
+ (0, class_validator_1.IsString)(),
61
+ __metadata("design:type", String)
62
+ ], VerifyMfaLoginDto.prototype, "uid", void 0);
63
+ __decorate([
64
+ (0, swagger_1.ApiProperty)({
65
+ description: 'The verification code from the MFA app',
66
+ example: '123456',
67
+ }),
68
+ (0, class_validator_1.IsNotEmpty)(),
69
+ (0, class_validator_1.IsString)(),
70
+ __metadata("design:type", String)
71
+ ], VerifyMfaLoginDto.prototype, "code", void 0);
51
72
  //# sourceMappingURL=mfa.dto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mfa.dto.js","sourceRoot":"","sources":["../../../../src/auth/dto/requests/mfa.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAA+D;AAC/D,6CAA8C;AAC9C,wEAA2D;AAE3D,MAAa,YAAY;CASxB;AATD,oCASC;AADG;IAPC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,wCAAwC;QACrD,IAAI,EAAE,2BAAO;QACb,OAAO,EAAE,2BAAO,CAAC,IAAI;KACxB,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,EAAC,2BAAO,CAAC;;0CACF;AAGlB,MAAa,cAAc;CAiB1B;AAjBD,wCAiBC;AATG;IAPC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,6BAA6B;QAC1C,IAAI,EAAE,2BAAO;QACb,OAAO,EAAE,2BAAO,CAAC,IAAI;KACxB,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,EAAC,2BAAO,CAAC;;4CACF;AAQd;IANC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,wCAAwC;QACrD,OAAO,EAAE,QAAQ;KACpB,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;4CACE"}
1
+ {"version":3,"file":"mfa.dto.js","sourceRoot":"","sources":["../../../../src/auth/dto/requests/mfa.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAA+D;AAC/D,6CAA8C;AAC9C,6DAAoD;AAEpD,MAAa,YAAY;CASxB;AATD,oCASC;AADG;IAPC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,wCAAwC;QACrD,IAAI,EAAE,uBAAO;QACb,OAAO,EAAE,uBAAO,CAAC,IAAI;KACxB,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,EAAC,uBAAO,CAAC;;0CACF;AAGlB,MAAa,cAAc;CAiB1B;AAjBD,wCAiBC;AATG;IAPC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,6BAA6B;QAC1C,IAAI,EAAE,uBAAO;QACb,OAAO,EAAE,uBAAO,CAAC,IAAI;KACxB,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAM,EAAC,uBAAO,CAAC;;4CACF;AAQd;IANC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,wCAAwC;QACrD,OAAO,EAAE,QAAQ;KACpB,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;4CACE;AAGjB,MAAa,iBAAiB;CAgB7B;AAhBD,8CAgBC;AATG;IANC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,sBAAsB;QACnC,OAAO,EAAE,sCAAsC;KAClD,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;8CACC;AAQZ;IANC,IAAA,qBAAW,EAAC;QACT,WAAW,EAAE,wCAAwC;QACrD,OAAO,EAAE,QAAQ;KACpB,CAAC;IACD,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;+CACE"}
@@ -0,0 +1,11 @@
1
+ export declare enum IdentifierType {
2
+ EMAIL = "EMAIL",
3
+ PHONE = "PHONE",
4
+ USERNAME = "USERNAME"
5
+ }
6
+ export declare enum IdentifierSource {
7
+ APPLE = "APPLE",
8
+ FACEBOOK = "FACEBOOK",
9
+ GOOGLE = "GOOGLE",
10
+ LOCAL = "LOCAL"
11
+ }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IdentifierSource = exports.IdentifierType = void 0;
4
+ var IdentifierType;
5
+ (function (IdentifierType) {
6
+ IdentifierType["EMAIL"] = "EMAIL";
7
+ IdentifierType["PHONE"] = "PHONE";
8
+ IdentifierType["USERNAME"] = "USERNAME";
9
+ })(IdentifierType || (exports.IdentifierType = IdentifierType = {}));
10
+ var IdentifierSource;
11
+ (function (IdentifierSource) {
12
+ IdentifierSource["APPLE"] = "APPLE";
13
+ IdentifierSource["FACEBOOK"] = "FACEBOOK";
14
+ IdentifierSource["GOOGLE"] = "GOOGLE";
15
+ IdentifierSource["LOCAL"] = "LOCAL";
16
+ })(IdentifierSource || (exports.IdentifierSource = IdentifierSource = {}));
17
+ //# sourceMappingURL=identifier-type.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identifier-type.enum.js","sourceRoot":"","sources":["../../../src/auth/enums/identifier-type.enum.ts"],"names":[],"mappings":";;;AAEA,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,iCAAe,CAAA;IACf,iCAAe,CAAA;IACf,uCAAqB,CAAA;AACvB,CAAC,EAJW,cAAc,8BAAd,cAAc,QAIzB;AAED,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,mCAA0B,CAAA;IAC1B,yCAAgC,CAAA;IAChC,qCAA4B,CAAA;IAC5B,mCAA0B,CAAA;AAC5B,CAAC,EALW,gBAAgB,gCAAhB,gBAAgB,QAK3B"}
@@ -0,0 +1,5 @@
1
+ export declare enum MfaType {
2
+ TOTP = "TOTP",
3
+ SMS = "SMS",
4
+ EMAIL = "EMAIL"
5
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MfaType = void 0;
4
+ var MfaType;
5
+ (function (MfaType) {
6
+ MfaType["TOTP"] = "TOTP";
7
+ MfaType["SMS"] = "SMS";
8
+ MfaType["EMAIL"] = "EMAIL";
9
+ })(MfaType || (exports.MfaType = MfaType = {}));
10
+ //# sourceMappingURL=mfa-type.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mfa-type.enum.js","sourceRoot":"","sources":["../../../src/auth/enums/mfa-type.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,OAIX;AAJD,WAAY,OAAO;IACjB,wBAAa,CAAA;IACb,sBAAW,CAAA;IACX,0BAAe,CAAA;AACjB,CAAC,EAJW,OAAO,uBAAP,OAAO,QAIlB"}
@@ -0,0 +1,8 @@
1
+ export declare enum OtpPurpose {
2
+ VERIFY_EMAIL = "VERIFY_EMAIL",
3
+ VERIFY_PHONE = "VERIFY_PHONE",
4
+ PASSWORD_RESET = "PASSWORD_RESET",
5
+ LOGIN_2FA = "LOGIN_2FA",
6
+ MAGIC_LINK = "MAGIC_LINK",
7
+ SECURE_ACCOUNT = "SECURE_ACCOUNT"
8
+ }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OtpPurpose = void 0;
4
+ var OtpPurpose;
5
+ (function (OtpPurpose) {
6
+ OtpPurpose["VERIFY_EMAIL"] = "VERIFY_EMAIL";
7
+ OtpPurpose["VERIFY_PHONE"] = "VERIFY_PHONE";
8
+ OtpPurpose["PASSWORD_RESET"] = "PASSWORD_RESET";
9
+ OtpPurpose["LOGIN_2FA"] = "LOGIN_2FA";
10
+ OtpPurpose["MAGIC_LINK"] = "MAGIC_LINK";
11
+ OtpPurpose["SECURE_ACCOUNT"] = "SECURE_ACCOUNT";
12
+ })(OtpPurpose || (exports.OtpPurpose = OtpPurpose = {}));
13
+ //# sourceMappingURL=otp-purpose.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otp-purpose.enum.js","sourceRoot":"","sources":["../../../src/auth/enums/otp-purpose.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,UAOX;AAPD,WAAY,UAAU;IACpB,2CAA6B,CAAA;IAC7B,2CAA6B,CAAA;IAC7B,+CAAiC,CAAA;IACjC,qCAAuB,CAAA;IACvB,uCAAyB,CAAA;IACzB,+CAAiC,CAAA;AACnC,CAAC,EAPW,UAAU,0BAAV,UAAU,QAOrB"}
@@ -0,0 +1,7 @@
1
+ export declare enum SessionEvent {
2
+ LOGIN = 0,
3
+ LOGOUT = 1,
4
+ REVOKE = 2,
5
+ EXPIRE = 3,
6
+ DELETE = 4
7
+ }
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SessionEvent = void 0;
4
+ var SessionEvent;
5
+ (function (SessionEvent) {
6
+ SessionEvent[SessionEvent["LOGIN"] = 0] = "LOGIN";
7
+ SessionEvent[SessionEvent["LOGOUT"] = 1] = "LOGOUT";
8
+ SessionEvent[SessionEvent["REVOKE"] = 2] = "REVOKE";
9
+ SessionEvent[SessionEvent["EXPIRE"] = 3] = "EXPIRE";
10
+ SessionEvent[SessionEvent["DELETE"] = 4] = "DELETE";
11
+ })(SessionEvent || (exports.SessionEvent = SessionEvent = {}));
12
+ //# sourceMappingURL=session-event.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-event.enum.js","sourceRoot":"","sources":["../../../src/auth/enums/session-event.enum.ts"],"names":[],"mappings":";;;AAAA,IAAY,YAMX;AAND,WAAY,YAAY;IACtB,iDAAK,CAAA;IACL,mDAAM,CAAA;IACN,mDAAM,CAAA;IACN,mDAAM,CAAA;IACN,mDAAM,CAAA;AACR,CAAC,EANW,YAAY,4BAAZ,YAAY,QAMvB"}
@@ -1,4 +1,4 @@
1
- import { Type } from '@nestjs/common';
1
+ import { Type, DynamicModule } from '@nestjs/common';
2
2
  import { AuthTransport, AuthStrategy } from '../enums/auth-type.enum';
3
3
  import { AuthNotificationProvider } from './auth-notification-provider.interface';
4
4
  import { Request } from 'express';
@@ -25,6 +25,10 @@ export declare enum SessionCreationPolicy {
25
25
  ALWAYS_NEW = 0,
26
26
  REUSE_DEVICE = 1
27
27
  }
28
+ export interface TestAccount {
29
+ identifier: string;
30
+ otp: string;
31
+ }
28
32
  export interface AuthModuleOptions {
29
33
  /**
30
34
  * Secret key for signing Access Tokens
@@ -209,4 +213,35 @@ export interface AuthModuleOptions {
209
213
  * Defaults to `false`. But you can set it to true for audit and other need
210
214
  */
211
215
  createSessionLogOnInvalid?: boolean;
216
+ /**
217
+ * Optional: Custom adapter for database operations.
218
+ * If not provided, TypeOrmAuthAdapter is used by default.
219
+ */
220
+ adapter?: Type<any> | DynamicModule;
221
+ /**
222
+ * Optional: Pluggable provider for managing OTP lifecycle.
223
+ * Defaults to DatabaseOtpProvider.
224
+ * This applies to all identifier types unless overridden by `otpProviders`.
225
+ */
226
+ otpProvider?: Type<any>;
227
+ /**
228
+ * Optional: Granular per-channel OTP provider map.
229
+ * Allows different OTP backends per identifier type.
230
+ * Any channel not specified here falls back to `otpProvider` (or `DatabaseOtpProvider`).
231
+ *
232
+ * @example
233
+ * otpProviders: {
234
+ * phone: TwilioOtpProvider, // Twilio Verify for phone
235
+ * email: DatabaseOtpProvider, // built-in database storage for email
236
+ * }
237
+ */
238
+ otpProviders?: {
239
+ email?: Type<any>;
240
+ phone?: Type<any>;
241
+ };
242
+ /**
243
+ * Optional: List of test accounts. If an OTP is requested for one of these identifiers,
244
+ * the configured static OTP is used and the notification provider is bypassed.
245
+ */
246
+ testAccounts?: TestAccount[];
212
247
  }
@@ -7,7 +7,13 @@ export interface AuthNotificationProvider {
7
7
  * @param code The numeric or alphanumeric verification code
8
8
  * @param type The type of identifier ('email' | 'phone')
9
9
  */
10
- sendVerificationCode(to: string, code: string, type: 'email' | 'phone'): Promise<void>;
10
+ sendVerificationCode(request: {
11
+ to: string;
12
+ code: string;
13
+ type: 'email' | 'phone';
14
+ purpose?: string;
15
+ expiresAt?: Date;
16
+ }): Promise<void>;
11
17
  /**
12
18
  * Sends a notification when a password is changed, including security context.
13
19
  *