@nauth-toolkit/core 0.1.86 → 0.1.88

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 (166) hide show
  1. package/dist/dto/admin-get-user-auth-history.dto.d.ts +62 -0
  2. package/dist/dto/admin-get-user-auth-history.dto.d.ts.map +1 -0
  3. package/dist/dto/admin-get-user-auth-history.dto.js +87 -0
  4. package/dist/dto/admin-get-user-auth-history.dto.js.map +1 -0
  5. package/dist/dto/admin-logout-all.dto.d.ts +48 -0
  6. package/dist/dto/admin-logout-all.dto.d.ts.map +1 -0
  7. package/dist/dto/{change-password-request.dto.js → admin-logout-all.dto.js} +36 -21
  8. package/dist/dto/admin-logout-all.dto.js.map +1 -0
  9. package/dist/dto/admin-remove-devices.dto.d.ts +25 -0
  10. package/dist/dto/admin-remove-devices.dto.d.ts.map +1 -0
  11. package/dist/dto/admin-remove-devices.dto.js +50 -0
  12. package/dist/dto/admin-remove-devices.dto.js.map +1 -0
  13. package/dist/dto/admin-reset-password.dto.d.ts +24 -49
  14. package/dist/dto/admin-reset-password.dto.d.ts.map +1 -1
  15. package/dist/dto/admin-reset-password.dto.js +30 -82
  16. package/dist/dto/admin-reset-password.dto.js.map +1 -1
  17. package/dist/dto/admin-revoke-session.dto.d.ts +22 -0
  18. package/dist/dto/admin-revoke-session.dto.d.ts.map +1 -0
  19. package/dist/dto/admin-revoke-session.dto.js +48 -0
  20. package/dist/dto/admin-revoke-session.dto.js.map +1 -0
  21. package/dist/dto/admin-set-password.dto.d.ts +8 -10
  22. package/dist/dto/admin-set-password.dto.d.ts.map +1 -1
  23. package/dist/dto/admin-set-password.dto.js +11 -21
  24. package/dist/dto/admin-set-password.dto.js.map +1 -1
  25. package/dist/dto/admin-set-preferred-method.dto.d.ts +25 -0
  26. package/dist/dto/admin-set-preferred-method.dto.d.ts.map +1 -0
  27. package/dist/dto/admin-set-preferred-method.dto.js +50 -0
  28. package/dist/dto/admin-set-preferred-method.dto.js.map +1 -0
  29. package/dist/dto/admin-update-user-attributes.dto.d.ts +41 -0
  30. package/dist/dto/admin-update-user-attributes.dto.d.ts.map +1 -0
  31. package/dist/dto/{update-user-attributes-request.dto.js → admin-update-user-attributes.dto.js} +12 -17
  32. package/dist/dto/admin-update-user-attributes.dto.js.map +1 -0
  33. package/dist/dto/auth-challenge.dto.d.ts +2 -2
  34. package/dist/dto/auth-challenge.dto.d.ts.map +1 -1
  35. package/dist/dto/auth-challenge.dto.js +3 -3
  36. package/dist/dto/auth-challenge.dto.js.map +1 -1
  37. package/dist/dto/auth-response.dto.d.ts +1 -1
  38. package/dist/dto/auth-response.dto.d.ts.map +1 -1
  39. package/dist/dto/auth-response.dto.js +1 -1
  40. package/dist/dto/auth-response.dto.js.map +1 -1
  41. package/dist/dto/get-mfa-status.dto.d.ts +8 -4
  42. package/dist/dto/get-mfa-status.dto.d.ts.map +1 -1
  43. package/dist/dto/get-mfa-status.dto.js +8 -4
  44. package/dist/dto/get-mfa-status.dto.js.map +1 -1
  45. package/dist/dto/get-risk-assessment-history.dto.d.ts +3 -3
  46. package/dist/dto/get-risk-assessment-history.dto.d.ts.map +1 -1
  47. package/dist/dto/get-risk-assessment-history.dto.js +5 -5
  48. package/dist/dto/get-risk-assessment-history.dto.js.map +1 -1
  49. package/dist/dto/get-suspicious-activity.dto.d.ts +3 -3
  50. package/dist/dto/get-suspicious-activity.dto.d.ts.map +1 -1
  51. package/dist/dto/get-suspicious-activity.dto.js +5 -5
  52. package/dist/dto/get-suspicious-activity.dto.js.map +1 -1
  53. package/dist/dto/get-user-auth-history.dto.d.ts +4 -39
  54. package/dist/dto/get-user-auth-history.dto.d.ts.map +1 -1
  55. package/dist/dto/get-user-auth-history.dto.js +53 -51
  56. package/dist/dto/get-user-auth-history.dto.js.map +1 -1
  57. package/dist/dto/get-user-devices.dto.d.ts +5 -18
  58. package/dist/dto/get-user-devices.dto.d.ts.map +1 -1
  59. package/dist/dto/get-user-devices.dto.js +5 -39
  60. package/dist/dto/get-user-devices.dto.js.map +1 -1
  61. package/dist/dto/get-user-sessions-response.dto.d.ts +1 -1
  62. package/dist/dto/get-user-sessions-response.dto.js +1 -1
  63. package/dist/dto/get-user-sessions.dto.d.ts +1 -1
  64. package/dist/dto/get-user-sessions.dto.js +1 -1
  65. package/dist/dto/index.d.ts +8 -2
  66. package/dist/dto/index.d.ts.map +1 -1
  67. package/dist/dto/index.js +8 -2
  68. package/dist/dto/index.js.map +1 -1
  69. package/dist/dto/logout-all-response.dto.d.ts +1 -1
  70. package/dist/dto/logout-all-response.dto.js +1 -1
  71. package/dist/dto/logout-all.dto.d.ts +1 -18
  72. package/dist/dto/logout-all.dto.d.ts.map +1 -1
  73. package/dist/dto/logout-all.dto.js +1 -30
  74. package/dist/dto/logout-all.dto.js.map +1 -1
  75. package/dist/dto/logout-session.dto.d.ts +0 -5
  76. package/dist/dto/logout-session.dto.d.ts.map +1 -1
  77. package/dist/dto/logout-session.dto.js +0 -12
  78. package/dist/dto/logout-session.dto.js.map +1 -1
  79. package/dist/dto/logout.dto.d.ts +1 -18
  80. package/dist/dto/logout.dto.d.ts.map +1 -1
  81. package/dist/dto/logout.dto.js +1 -30
  82. package/dist/dto/logout.dto.js.map +1 -1
  83. package/dist/dto/remove-devices.dto.d.ts +4 -16
  84. package/dist/dto/remove-devices.dto.d.ts.map +1 -1
  85. package/dist/dto/remove-devices.dto.js +4 -26
  86. package/dist/dto/remove-devices.dto.js.map +1 -1
  87. package/dist/dto/set-mfa-exemption.dto.d.ts +4 -2
  88. package/dist/dto/set-mfa-exemption.dto.d.ts.map +1 -1
  89. package/dist/dto/set-mfa-exemption.dto.js +5 -3
  90. package/dist/dto/set-mfa-exemption.dto.js.map +1 -1
  91. package/dist/dto/set-must-change-password.dto.d.ts +3 -3
  92. package/dist/dto/set-must-change-password.dto.d.ts.map +1 -1
  93. package/dist/dto/set-must-change-password.dto.js +5 -5
  94. package/dist/dto/set-must-change-password.dto.js.map +1 -1
  95. package/dist/dto/set-preferred-method.dto.d.ts +4 -16
  96. package/dist/dto/set-preferred-method.dto.d.ts.map +1 -1
  97. package/dist/dto/set-preferred-method.dto.js +4 -26
  98. package/dist/dto/set-preferred-method.dto.js.map +1 -1
  99. package/dist/dto/setup-mfa.dto.d.ts +3 -18
  100. package/dist/dto/setup-mfa.dto.d.ts.map +1 -1
  101. package/dist/dto/setup-mfa.dto.js +3 -30
  102. package/dist/dto/setup-mfa.dto.js.map +1 -1
  103. package/dist/dto/social-auth.dto.d.ts +4 -34
  104. package/dist/dto/social-auth.dto.d.ts.map +1 -1
  105. package/dist/dto/social-auth.dto.js +10 -68
  106. package/dist/dto/social-auth.dto.js.map +1 -1
  107. package/dist/dto/update-user-attributes.dto.d.ts +26 -0
  108. package/dist/dto/update-user-attributes.dto.d.ts.map +1 -0
  109. package/dist/dto/update-user-attributes.dto.js +30 -0
  110. package/dist/dto/update-user-attributes.dto.js.map +1 -0
  111. package/dist/index.d.ts +5 -0
  112. package/dist/index.d.ts.map +1 -1
  113. package/dist/index.js +5 -0
  114. package/dist/index.js.map +1 -1
  115. package/dist/interfaces/hooks.interface.d.ts +2 -1
  116. package/dist/interfaces/hooks.interface.d.ts.map +1 -1
  117. package/dist/interfaces/provider.interface.d.ts +1 -1
  118. package/dist/interfaces/provider.interface.d.ts.map +1 -1
  119. package/dist/services/adaptive-mfa-decision.service.js +2 -2
  120. package/dist/services/adaptive-mfa-decision.service.js.map +1 -1
  121. package/dist/services/admin-auth.service.d.ts +307 -0
  122. package/dist/services/admin-auth.service.d.ts.map +1 -0
  123. package/dist/services/admin-auth.service.js +885 -0
  124. package/dist/services/admin-auth.service.js.map +1 -0
  125. package/dist/services/auth-audit.service.d.ts +16 -16
  126. package/dist/services/auth-audit.service.d.ts.map +1 -1
  127. package/dist/services/auth-audit.service.js +33 -33
  128. package/dist/services/auth-audit.service.js.map +1 -1
  129. package/dist/services/auth-challenge-helper.service.js +3 -3
  130. package/dist/services/auth-challenge-helper.service.js.map +1 -1
  131. package/dist/services/auth-service-internal-helpers.d.ts +2 -2
  132. package/dist/services/auth-service-internal-helpers.d.ts.map +1 -1
  133. package/dist/services/auth-service-internal-helpers.js.map +1 -1
  134. package/dist/services/auth.service.d.ts +122 -446
  135. package/dist/services/auth.service.d.ts.map +1 -1
  136. package/dist/services/auth.service.js +424 -1274
  137. package/dist/services/auth.service.js.map +1 -1
  138. package/dist/services/mfa.service.d.ts +90 -12
  139. package/dist/services/mfa.service.d.ts.map +1 -1
  140. package/dist/services/mfa.service.js +395 -264
  141. package/dist/services/mfa.service.js.map +1 -1
  142. package/dist/services/password-reset.service.d.ts.map +1 -1
  143. package/dist/services/password-reset.service.js +80 -29
  144. package/dist/services/password-reset.service.js.map +1 -1
  145. package/dist/services/social-auth.service.d.ts +7 -0
  146. package/dist/services/social-auth.service.d.ts.map +1 -1
  147. package/dist/services/social-auth.service.js +38 -26
  148. package/dist/services/social-auth.service.js.map +1 -1
  149. package/dist/services/user.service.d.ts +3 -3
  150. package/dist/services/user.service.d.ts.map +1 -1
  151. package/dist/services/user.service.js +7 -7
  152. package/dist/services/user.service.js.map +1 -1
  153. package/dist/utils/dto-validator.d.ts.map +1 -1
  154. package/dist/utils/dto-validator.js +50 -4
  155. package/dist/utils/dto-validator.js.map +1 -1
  156. package/dist/utils/setup/init-services.d.ts +2 -1
  157. package/dist/utils/setup/init-services.d.ts.map +1 -1
  158. package/dist/utils/setup/init-services.js +2 -0
  159. package/dist/utils/setup/init-services.js.map +1 -1
  160. package/package.json +1 -1
  161. package/dist/dto/change-password-request.dto.d.ts +0 -43
  162. package/dist/dto/change-password-request.dto.d.ts.map +0 -1
  163. package/dist/dto/change-password-request.dto.js.map +0 -1
  164. package/dist/dto/update-user-attributes-request.dto.d.ts +0 -44
  165. package/dist/dto/update-user-attributes-request.dto.d.ts.map +0 -1
  166. package/dist/dto/update-user-attributes-request.dto.js.map +0 -1
@@ -2,13 +2,13 @@
2
2
  /**
3
3
  * DTO for removing MFA devices
4
4
  *
5
- * Used to remove all MFA devices of a specific method type for a user.
5
+ * Used to remove all MFA devices of a specific method type for the current authenticated user.
6
6
  * Automatically disables MFA if this was the last device.
7
+ * User sub is obtained from authenticated context automatically.
7
8
  *
8
9
  * @example
9
10
  * ```typescript
10
11
  * const result = await mfaService.removeDevices({
11
- * userSub: 'user-uuid',
12
12
  * methodType: 'totp'
13
13
  * });
14
14
  * ```
@@ -29,22 +29,10 @@ const class_transformer_1 = require("class-transformer");
29
29
  const mfa_method_enum_1 = require("../enums/mfa-method.enum");
30
30
  /**
31
31
  * DTO for removing MFA devices
32
+ *
33
+ * User self-service DTO - no userSub field. Service gets user from authenticated context.
32
34
  */
33
35
  class RemoveDevicesDTO {
34
- /**
35
- * User's unique identifier (UUID v4)
36
- *
37
- * Validation:
38
- * - Must be a valid UUID v4 format
39
- * - Matches DB constraint: char(36) or uuid
40
- *
41
- * Sanitization:
42
- * - Trimmed
43
- * - Lowercased for consistency
44
- *
45
- * @example "a21b654c-2746-4168-acee-c175083a65cd"
46
- */
47
- userSub;
48
36
  /**
49
37
  * MFA method type to remove
50
38
  *
@@ -60,16 +48,6 @@ class RemoveDevicesDTO {
60
48
  methodType;
61
49
  }
62
50
  exports.RemoveDevicesDTO = RemoveDevicesDTO;
63
- __decorate([
64
- (0, class_validator_1.IsUUID)('4', { message: 'User sub must be a valid UUID v4 format' }),
65
- (0, class_transformer_1.Transform)(({ value }) => {
66
- if (typeof value === 'string') {
67
- return value.trim().toLowerCase();
68
- }
69
- return value;
70
- }),
71
- __metadata("design:type", String)
72
- ], RemoveDevicesDTO.prototype, "userSub", void 0);
73
51
  __decorate([
74
52
  (0, class_validator_1.IsString)({ message: 'Method type must be a string' }),
75
53
  (0, class_validator_1.IsEnum)([mfa_method_enum_1.MFAMethod.TOTP, mfa_method_enum_1.MFAMethod.SMS, mfa_method_enum_1.MFAMethod.EMAIL, mfa_method_enum_1.MFAMethod.PASSKEY], {
@@ -1 +1 @@
1
- {"version":3,"file":"remove-devices.dto.js","sourceRoot":"","sources":["../../src/dto/remove-devices.dto.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;;;;;;;;;;AAEH,qDAAsE;AACtE,yDAA8C;AAC9C,8DAAqD;AAErD;;GAEG;AACH,MAAa,gBAAgB;IAC3B;;;;;;;;;;;;OAYG;IAQH,OAAO,CAAU;IAEjB;;;;;;;;;;;OAWG;IAYH,UAAU,CAAU;CACrB;AA/CD,4CA+CC;AA1BC;IAPC,IAAA,wBAAM,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC;IACnE,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;iDACe;AAyBjB;IAXC,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC;IACrD,IAAA,wBAAM,EAAC,CAAC,2BAAS,CAAC,IAAI,EAAE,2BAAS,CAAC,GAAG,EAAE,2BAAS,CAAC,KAAK,EAAE,2BAAS,CAAC,OAAO,CAAC,EAAE;QAC3E,OAAO,EAAE,uDAAuD;KACjE,CAAC;IACD,IAAA,2BAAS,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,2CAA2C,EAAE,CAAC;IACvE,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;oDACkB;AAGtB;;GAEG;AACH,MAAa,wBAAwB;IACnC;;OAEG;IACH,YAAY,CAAU;IAEtB;;OAEG;IACH,WAAW,CAAW;CACvB;AAVD,4DAUC"}
1
+ {"version":3,"file":"remove-devices.dto.js","sourceRoot":"","sources":["../../src/dto/remove-devices.dto.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;;;;;;;;;;AAEH,qDAA8D;AAC9D,yDAA8C;AAC9C,8DAAqD;AAErD;;;;GAIG;AACH,MAAa,gBAAgB;IAE3B;;;;;;;;;;;OAWG;IAYH,UAAU,CAAU;CACrB;AA1BD,4CA0BC;AADC;IAXC,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC;IACrD,IAAA,wBAAM,EAAC,CAAC,2BAAS,CAAC,IAAI,EAAE,2BAAS,CAAC,GAAG,EAAE,2BAAS,CAAC,KAAK,EAAE,2BAAS,CAAC,OAAO,CAAC,EAAE;QAC3E,OAAO,EAAE,uDAAuD;KACjE,CAAC;IACD,IAAA,2BAAS,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,2CAA2C,EAAE,CAAC;IACvE,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;oDACkB;AAGtB;;GAEG;AACH,MAAa,wBAAwB;IACnC;;OAEG;IACH,YAAY,CAAU;IAEtB;;OAEG;IACH,WAAW,CAAW;CACvB;AAVD,4DAUC"}
@@ -7,7 +7,7 @@
7
7
  * @example
8
8
  * ```typescript
9
9
  * const result = await mfaService.setMFAExemption({
10
- * userSub: 'user-uuid',
10
+ * sub: 'a21b654c-2746-4168-acee-c175083a65cd', // User sub (UUID v4)
11
11
  * exempt: true,
12
12
  * reason: 'Business partner requires MFA bypass',
13
13
  * grantedBy: 'admin@example.com'
@@ -16,6 +16,8 @@
16
16
  */
17
17
  /**
18
18
  * DTO for setting MFA exemption
19
+ *
20
+ * SECURITY: This DTO targets an arbitrary user; it must only be accepted by admin-protected APIs.
19
21
  */
20
22
  export declare class SetMFAExemptionDTO {
21
23
  /**
@@ -31,7 +33,7 @@ export declare class SetMFAExemptionDTO {
31
33
  *
32
34
  * @example "a21b654c-2746-4168-acee-c175083a65cd"
33
35
  */
34
- userSub: string;
36
+ sub: string;
35
37
  /**
36
38
  * Whether to grant exemption (true) or revoke exemption (false)
37
39
  */
@@ -1 +1 @@
1
- {"version":3,"file":"set-mfa-exemption.dto.d.ts","sourceRoot":"","sources":["../../src/dto/set-mfa-exemption.dto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH;;GAEG;AACH,qBAAa,kBAAkB;IAC7B;;;;;;;;;;;;OAYG;IAQH,OAAO,EAAG,MAAM,CAAC;IAEjB;;OAEG;IAEH,MAAM,EAAG,OAAO,CAAC;IAEjB;;;;;;;;OAQG;IAUH,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvB;;;;;;;;OAQG;IAUH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;GAEG;AACH,qBAAa,0BAA0B;IACrC;;OAEG;IACH,SAAS,EAAG,OAAO,CAAC;IAEpB;;OAEG;IACH,eAAe,EAAG,MAAM,GAAG,IAAI,CAAC;IAEhC;;OAEG;IACH,kBAAkB,EAAG,IAAI,GAAG,IAAI,CAAC;CAClC"}
1
+ {"version":3,"file":"set-mfa-exemption.dto.d.ts","sourceRoot":"","sources":["../../src/dto/set-mfa-exemption.dto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH;;;;GAIG;AACH,qBAAa,kBAAkB;IAC7B;;;;;;;;;;;;OAYG;IAQH,GAAG,EAAG,MAAM,CAAC;IAEb;;OAEG;IAEH,MAAM,EAAG,OAAO,CAAC;IAEjB;;;;;;;;OAQG;IAUH,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEvB;;;;;;;;OAQG;IAUH,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;GAEG;AACH,qBAAa,0BAA0B;IACrC;;OAEG;IACH,SAAS,EAAG,OAAO,CAAC;IAEpB;;OAEG;IACH,eAAe,EAAG,MAAM,GAAG,IAAI,CAAC;IAEhC;;OAEG;IACH,kBAAkB,EAAG,IAAI,GAAG,IAAI,CAAC;CAClC"}
@@ -8,7 +8,7 @@
8
8
  * @example
9
9
  * ```typescript
10
10
  * const result = await mfaService.setMFAExemption({
11
- * userSub: 'user-uuid',
11
+ * sub: 'a21b654c-2746-4168-acee-c175083a65cd', // User sub (UUID v4)
12
12
  * exempt: true,
13
13
  * reason: 'Business partner requires MFA bypass',
14
14
  * grantedBy: 'admin@example.com'
@@ -30,6 +30,8 @@ const class_validator_1 = require("class-validator");
30
30
  const class_transformer_1 = require("class-transformer");
31
31
  /**
32
32
  * DTO for setting MFA exemption
33
+ *
34
+ * SECURITY: This DTO targets an arbitrary user; it must only be accepted by admin-protected APIs.
33
35
  */
34
36
  class SetMFAExemptionDTO {
35
37
  /**
@@ -45,7 +47,7 @@ class SetMFAExemptionDTO {
45
47
  *
46
48
  * @example "a21b654c-2746-4168-acee-c175083a65cd"
47
49
  */
48
- userSub;
50
+ sub;
49
51
  /**
50
52
  * Whether to grant exemption (true) or revoke exemption (false)
51
53
  */
@@ -81,7 +83,7 @@ __decorate([
81
83
  return value;
82
84
  }),
83
85
  __metadata("design:type", String)
84
- ], SetMFAExemptionDTO.prototype, "userSub", void 0);
86
+ ], SetMFAExemptionDTO.prototype, "sub", void 0);
85
87
  __decorate([
86
88
  (0, class_validator_1.IsBoolean)({ message: 'Exempt must be a boolean' }),
87
89
  __metadata("design:type", Boolean)
@@ -1 +1 @@
1
- {"version":3,"file":"set-mfa-exemption.dto.js","sourceRoot":"","sources":["../../src/dto/set-mfa-exemption.dto.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;;;;;;;;;;AAEH,qDAAqF;AACrF,yDAA8C;AAE9C;;GAEG;AACH,MAAa,kBAAkB;IAC7B;;;;;;;;;;;;OAYG;IAQH,OAAO,CAAU;IAEjB;;OAEG;IAEH,MAAM,CAAW;IAEjB;;;;;;;;OAQG;IAUH,MAAM,CAAiB;IAEvB;;;;;;;;OAQG;IAUH,SAAS,CAAiB;CAC3B;AApED,gDAoEC;AA/CC;IAPC,IAAA,wBAAM,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC;IACnE,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;mDACe;AAMjB;IADC,IAAA,2BAAS,EAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC;;kDAClC;AAoBjB;IATC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;IAChD,IAAA,2BAAS,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,uCAAuC,EAAE,CAAC;IACpE,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;kDACqB;AAoBvB;IATC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC;IACpD,IAAA,2BAAS,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,2CAA2C,EAAE,CAAC;IACxE,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;qDACwB;AAG5B;;GAEG;AACH,MAAa,0BAA0B;IACrC;;OAEG;IACH,SAAS,CAAW;IAEpB;;OAEG;IACH,eAAe,CAAiB;IAEhC;;OAEG;IACH,kBAAkB,CAAe;CAClC;AAfD,gEAeC"}
1
+ {"version":3,"file":"set-mfa-exemption.dto.js","sourceRoot":"","sources":["../../src/dto/set-mfa-exemption.dto.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;;;;;;;;;;AAEH,qDAAqF;AACrF,yDAA8C;AAE9C;;;;GAIG;AACH,MAAa,kBAAkB;IAC7B;;;;;;;;;;;;OAYG;IAQH,GAAG,CAAU;IAEb;;OAEG;IAEH,MAAM,CAAW;IAEjB;;;;;;;;OAQG;IAUH,MAAM,CAAiB;IAEvB;;;;;;;;OAQG;IAUH,SAAS,CAAiB;CAC3B;AApED,gDAoEC;AA/CC;IAPC,IAAA,wBAAM,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC;IACnE,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;+CACW;AAMb;IADC,IAAA,2BAAS,EAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC;;kDAClC;AAoBjB;IATC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;IAChD,IAAA,2BAAS,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,uCAAuC,EAAE,CAAC;IACpE,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;kDACqB;AAoBvB;IATC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC;IACpD,IAAA,2BAAS,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,2CAA2C,EAAE,CAAC;IACxE,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;qDACwB;AAG5B;;GAEG;AACH,MAAa,0BAA0B;IACrC;;OAEG;IACH,SAAS,CAAW;IAEpB;;OAEG;IACH,eAAe,CAAiB;IAEhC;;OAEG;IACH,kBAAkB,CAAe;CAClC;AAfD,gEAeC"}
@@ -4,13 +4,13 @@
4
4
  * Request DTO for requiring a user to change their password on next login.
5
5
  *
6
6
  * Security:
7
- * - User ID validated (UUID)
7
+ * - User sub validated (UUID)
8
8
  * - Prevents unauthorized password change requirements
9
9
  *
10
10
  * @example
11
11
  * ```typescript
12
12
  * await authService.setMustChangePassword({
13
- * userId: 'user-uuid'
13
+ * sub: 'user-uuid'
14
14
  * });
15
15
  * ```
16
16
  */
@@ -31,6 +31,6 @@ export declare class SetMustChangePasswordDTO {
31
31
  *
32
32
  * @example "a21b654c-2746-4168-acee-c175083a65cd"
33
33
  */
34
- userId: string;
34
+ sub: string;
35
35
  }
36
36
  //# sourceMappingURL=set-must-change-password.dto.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"set-must-change-password.dto.d.ts","sourceRoot":"","sources":["../../src/dto/set-must-change-password.dto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH;;GAEG;AACH,qBAAa,wBAAwB;IACnC;;;;;;;;;;;;OAYG;IAQH,MAAM,EAAG,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"set-must-change-password.dto.d.ts","sourceRoot":"","sources":["../../src/dto/set-must-change-password.dto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH;;GAEG;AACH,qBAAa,wBAAwB;IACnC;;;;;;;;;;;;OAYG;IAQH,GAAG,EAAG,MAAM,CAAC;CACd"}
@@ -5,13 +5,13 @@
5
5
  * Request DTO for requiring a user to change their password on next login.
6
6
  *
7
7
  * Security:
8
- * - User ID validated (UUID)
8
+ * - User sub validated (UUID)
9
9
  * - Prevents unauthorized password change requirements
10
10
  *
11
11
  * @example
12
12
  * ```typescript
13
13
  * await authService.setMustChangePassword({
14
- * userId: 'user-uuid'
14
+ * sub: 'user-uuid'
15
15
  * });
16
16
  * ```
17
17
  */
@@ -45,11 +45,11 @@ class SetMustChangePasswordDTO {
45
45
  *
46
46
  * @example "a21b654c-2746-4168-acee-c175083a65cd"
47
47
  */
48
- userId;
48
+ sub;
49
49
  }
50
50
  exports.SetMustChangePasswordDTO = SetMustChangePasswordDTO;
51
51
  __decorate([
52
- (0, class_validator_1.IsUUID)('4', { message: 'User ID must be a valid UUID v4 format' }),
52
+ (0, class_validator_1.IsUUID)('4', { message: 'User sub must be a valid UUID v4 format' }),
53
53
  (0, class_transformer_1.Transform)(({ value }) => {
54
54
  if (typeof value === 'string') {
55
55
  return value.trim().toLowerCase();
@@ -57,5 +57,5 @@ __decorate([
57
57
  return value;
58
58
  }),
59
59
  __metadata("design:type", String)
60
- ], SetMustChangePasswordDTO.prototype, "userId", void 0);
60
+ ], SetMustChangePasswordDTO.prototype, "sub", void 0);
61
61
  //# sourceMappingURL=set-must-change-password.dto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"set-must-change-password.dto.js","sourceRoot":"","sources":["../../src/dto/set-must-change-password.dto.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;;;;;;;;;;AAEH,qDAAyC;AACzC,yDAA8C;AAE9C;;GAEG;AACH,MAAa,wBAAwB;IACnC;;;;;;;;;;;;OAYG;IAQH,MAAM,CAAU;CACjB;AAtBD,4DAsBC;AADC;IAPC,IAAA,wBAAM,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,wCAAwC,EAAE,CAAC;IAClE,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;wDACc"}
1
+ {"version":3,"file":"set-must-change-password.dto.js","sourceRoot":"","sources":["../../src/dto/set-must-change-password.dto.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;;;;;;;;;;AAEH,qDAAyC;AACzC,yDAA8C;AAE9C;;GAEG;AACH,MAAa,wBAAwB;IACnC;;;;;;;;;;;;OAYG;IAQH,GAAG,CAAU;CACd;AAtBD,4DAsBC;AADC;IAPC,IAAA,wBAAM,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC;IACnE,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;qDACW"}
@@ -1,35 +1,23 @@
1
1
  /**
2
2
  * DTO for setting preferred MFA method
3
3
  *
4
- * Used to set the preferred MFA method for a user.
4
+ * Used to set the preferred MFA method for the current authenticated user.
5
5
  * Updates the user's preferred method and device primary flags.
6
+ * User sub is obtained from authenticated context automatically.
6
7
  *
7
8
  * @example
8
9
  * ```typescript
9
10
  * await mfaService.setPreferredMethod({
10
- * userSub: 'user-uuid',
11
11
  * methodType: 'totp'
12
12
  * });
13
13
  * ```
14
14
  */
15
15
  /**
16
16
  * DTO for setting preferred MFA method
17
+ *
18
+ * User self-service DTO - no userSub field. Service gets user from authenticated context.
17
19
  */
18
20
  export declare class SetPreferredMethodDTO {
19
- /**
20
- * User's unique identifier (UUID v4)
21
- *
22
- * Validation:
23
- * - Must be a valid UUID v4 format
24
- * - Matches DB constraint: char(36) or uuid
25
- *
26
- * Sanitization:
27
- * - Trimmed
28
- * - Lowercased for consistency
29
- *
30
- * @example "a21b654c-2746-4168-acee-c175083a65cd"
31
- */
32
- userSub: string;
33
21
  /**
34
22
  * MFA method type to set as preferred
35
23
  *
@@ -1 +1 @@
1
- {"version":3,"file":"set-preferred-method.dto.d.ts","sourceRoot":"","sources":["../../src/dto/set-preferred-method.dto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH;;GAEG;AACH,qBAAa,qBAAqB;IAChC;;;;;;;;;;;;OAYG;IAQH,OAAO,EAAG,MAAM,CAAC;IAEjB;;;;;;;;;;;OAWG;IAYH,UAAU,EAAG,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,6BAA6B;IACxC;;OAEG;IACH,OAAO,EAAG,MAAM,CAAC;CAClB"}
1
+ {"version":3,"file":"set-preferred-method.dto.d.ts","sourceRoot":"","sources":["../../src/dto/set-preferred-method.dto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH;;;;GAIG;AACH,qBAAa,qBAAqB;IAChC;;;;;;;;;;;OAWG;IAYH,UAAU,EAAG,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,6BAA6B;IACxC;;OAEG;IACH,OAAO,EAAG,MAAM,CAAC;CAClB"}
@@ -2,13 +2,13 @@
2
2
  /**
3
3
  * DTO for setting preferred MFA method
4
4
  *
5
- * Used to set the preferred MFA method for a user.
5
+ * Used to set the preferred MFA method for the current authenticated user.
6
6
  * Updates the user's preferred method and device primary flags.
7
+ * User sub is obtained from authenticated context automatically.
7
8
  *
8
9
  * @example
9
10
  * ```typescript
10
11
  * await mfaService.setPreferredMethod({
11
- * userSub: 'user-uuid',
12
12
  * methodType: 'totp'
13
13
  * });
14
14
  * ```
@@ -29,22 +29,10 @@ const class_transformer_1 = require("class-transformer");
29
29
  const mfa_method_enum_1 = require("../enums/mfa-method.enum");
30
30
  /**
31
31
  * DTO for setting preferred MFA method
32
+ *
33
+ * User self-service DTO - no userSub field. Service gets user from authenticated context.
32
34
  */
33
35
  class SetPreferredMethodDTO {
34
- /**
35
- * User's unique identifier (UUID v4)
36
- *
37
- * Validation:
38
- * - Must be a valid UUID v4 format
39
- * - Matches DB constraint: char(36) or uuid
40
- *
41
- * Sanitization:
42
- * - Trimmed
43
- * - Lowercased for consistency
44
- *
45
- * @example "a21b654c-2746-4168-acee-c175083a65cd"
46
- */
47
- userSub;
48
36
  /**
49
37
  * MFA method type to set as preferred
50
38
  *
@@ -60,16 +48,6 @@ class SetPreferredMethodDTO {
60
48
  methodType;
61
49
  }
62
50
  exports.SetPreferredMethodDTO = SetPreferredMethodDTO;
63
- __decorate([
64
- (0, class_validator_1.IsUUID)('4', { message: 'User sub must be a valid UUID v4 format' }),
65
- (0, class_transformer_1.Transform)(({ value }) => {
66
- if (typeof value === 'string') {
67
- return value.trim().toLowerCase();
68
- }
69
- return value;
70
- }),
71
- __metadata("design:type", String)
72
- ], SetPreferredMethodDTO.prototype, "userSub", void 0);
73
51
  __decorate([
74
52
  (0, class_validator_1.IsString)({ message: 'Method type must be a string' }),
75
53
  (0, class_validator_1.IsEnum)([mfa_method_enum_1.MFAMethod.TOTP, mfa_method_enum_1.MFAMethod.SMS, mfa_method_enum_1.MFAMethod.EMAIL, mfa_method_enum_1.MFAMethod.PASSKEY], {
@@ -1 +1 @@
1
- {"version":3,"file":"set-preferred-method.dto.js","sourceRoot":"","sources":["../../src/dto/set-preferred-method.dto.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;;;;;;;;;;AAEH,qDAAsE;AACtE,yDAA8C;AAC9C,8DAAqD;AAErD;;GAEG;AACH,MAAa,qBAAqB;IAChC;;;;;;;;;;;;OAYG;IAQH,OAAO,CAAU;IAEjB;;;;;;;;;;;OAWG;IAYH,UAAU,CAAU;CACrB;AA/CD,sDA+CC;AA1BC;IAPC,IAAA,wBAAM,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC;IACnE,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;sDACe;AAyBjB;IAXC,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC;IACrD,IAAA,wBAAM,EAAC,CAAC,2BAAS,CAAC,IAAI,EAAE,2BAAS,CAAC,GAAG,EAAE,2BAAS,CAAC,KAAK,EAAE,2BAAS,CAAC,OAAO,CAAC,EAAE;QAC3E,OAAO,EAAE,uDAAuD;KACjE,CAAC;IACD,IAAA,2BAAS,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,2CAA2C,EAAE,CAAC;IACvE,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;yDACkB;AAGtB;;GAEG;AACH,MAAa,6BAA6B;IACxC;;OAEG;IACH,OAAO,CAAU;CAClB;AALD,sEAKC"}
1
+ {"version":3,"file":"set-preferred-method.dto.js","sourceRoot":"","sources":["../../src/dto/set-preferred-method.dto.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;;;;;;;;;;AAEH,qDAA8D;AAC9D,yDAA8C;AAC9C,8DAAqD;AAErD;;;;GAIG;AACH,MAAa,qBAAqB;IAChC;;;;;;;;;;;OAWG;IAYH,UAAU,CAAU;CACrB;AAzBD,sDAyBC;AADC;IAXC,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC;IACrD,IAAA,wBAAM,EAAC,CAAC,2BAAS,CAAC,IAAI,EAAE,2BAAS,CAAC,GAAG,EAAE,2BAAS,CAAC,KAAK,EAAE,2BAAS,CAAC,OAAO,CAAC,EAAE;QAC3E,OAAO,EAAE,uDAAuD;KACjE,CAAC;IACD,IAAA,2BAAS,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,2CAA2C,EAAE,CAAC;IACvE,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;yDACkB;AAGtB;;GAEG;AACH,MAAa,6BAA6B;IACxC;;OAEG;IACH,OAAO,CAAU;CAClB;AALD,sEAKC"}
@@ -2,11 +2,11 @@
2
2
  * DTO for setting up MFA device
3
3
  *
4
4
  * Used to initiate MFA device setup using the appropriate provider.
5
+ * User sub is obtained from authenticated context automatically.
5
6
  *
6
7
  * @example
7
8
  * ```typescript
8
9
  * const setup = await mfaService.setup({
9
- * sub: 'user-uuid',
10
10
  * methodName: 'totp',
11
11
  * setupData: {}
12
12
  * });
@@ -14,25 +14,10 @@
14
14
  */
15
15
  /**
16
16
  * DTO for setting up MFA device
17
+ *
18
+ * User self-service DTO - no sub field. Service gets user from authenticated context.
17
19
  */
18
20
  export declare class SetupMFADTO {
19
- /**
20
- * User's unique identifier (UUID v4)
21
- *
22
- * Optional at controller level - filled from authenticated user's JWT.
23
- * Validated only when provided (service layer will ensure it's set).
24
- *
25
- * Validation:
26
- * - Must be a valid UUID v4 format when provided
27
- * - Matches DB constraint: char(36) or uuid
28
- *
29
- * Sanitization:
30
- * - Trimmed
31
- * - Lowercased for consistency
32
- *
33
- * @example "a21b654c-2746-4168-acee-c175083a65cd"
34
- */
35
- sub?: string;
36
21
  /**
37
22
  * MFA method name
38
23
  *
@@ -1 +1 @@
1
- {"version":3,"file":"setup-mfa.dto.d.ts","sourceRoot":"","sources":["../../src/dto/setup-mfa.dto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH;;GAEG;AACH,qBAAa,WAAW;IACtB;;;;;;;;;;;;;;;OAeG;IAUH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;;;;;;;;OAWG;IAYH,UAAU,EAAG,MAAM,CAAC;IAEpB;;;;;;;;OAQG;IAGH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED;;GAEG;AACH,qBAAa,mBAAmB;IAC9B;;;;;;;OAOG;IACH,SAAS,EAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC"}
1
+ {"version":3,"file":"setup-mfa.dto.d.ts","sourceRoot":"","sources":["../../src/dto/setup-mfa.dto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAMH;;;;GAIG;AACH,qBAAa,WAAW;IAEtB;;;;;;;;;;;OAWG;IAYH,UAAU,EAAG,MAAM,CAAC;IAEpB;;;;;;;;OAQG;IAGH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED;;GAEG;AACH,qBAAa,mBAAmB;IAC9B;;;;;;;OAOG;IACH,SAAS,EAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC"}
@@ -3,11 +3,11 @@
3
3
  * DTO for setting up MFA device
4
4
  *
5
5
  * Used to initiate MFA device setup using the appropriate provider.
6
+ * User sub is obtained from authenticated context automatically.
6
7
  *
7
8
  * @example
8
9
  * ```typescript
9
10
  * const setup = await mfaService.setup({
10
- * sub: 'user-uuid',
11
11
  * methodName: 'totp',
12
12
  * setupData: {}
13
13
  * });
@@ -29,25 +29,10 @@ const class_transformer_1 = require("class-transformer");
29
29
  const mfa_method_enum_1 = require("../enums/mfa-method.enum");
30
30
  /**
31
31
  * DTO for setting up MFA device
32
+ *
33
+ * User self-service DTO - no sub field. Service gets user from authenticated context.
32
34
  */
33
35
  class SetupMFADTO {
34
- /**
35
- * User's unique identifier (UUID v4)
36
- *
37
- * Optional at controller level - filled from authenticated user's JWT.
38
- * Validated only when provided (service layer will ensure it's set).
39
- *
40
- * Validation:
41
- * - Must be a valid UUID v4 format when provided
42
- * - Matches DB constraint: char(36) or uuid
43
- *
44
- * Sanitization:
45
- * - Trimmed
46
- * - Lowercased for consistency
47
- *
48
- * @example "a21b654c-2746-4168-acee-c175083a65cd"
49
- */
50
- sub;
51
36
  /**
52
37
  * MFA method name
53
38
  *
@@ -73,18 +58,6 @@ class SetupMFADTO {
73
58
  setupData;
74
59
  }
75
60
  exports.SetupMFADTO = SetupMFADTO;
76
- __decorate([
77
- (0, class_validator_1.ValidateIf)((o) => o.sub !== undefined && o.sub !== null && o.sub !== ''),
78
- (0, class_validator_1.IsUUID)('4', { message: 'User sub must be a valid UUID v4 format' }),
79
- (0, class_transformer_1.Transform)(({ value }) => {
80
- if (typeof value === 'string') {
81
- return value.trim().toLowerCase();
82
- }
83
- return value;
84
- }),
85
- (0, class_validator_1.IsOptional)(),
86
- __metadata("design:type", String)
87
- ], SetupMFADTO.prototype, "sub", void 0);
88
61
  __decorate([
89
62
  (0, class_validator_1.IsString)({ message: 'Method name must be a string' }),
90
63
  (0, class_validator_1.IsEnum)([mfa_method_enum_1.MFAMethod.TOTP, mfa_method_enum_1.MFAMethod.SMS, mfa_method_enum_1.MFAMethod.EMAIL, mfa_method_enum_1.MFAMethod.PASSKEY], {
@@ -1 +1 @@
1
- {"version":3,"file":"setup-mfa.dto.js","sourceRoot":"","sources":["../../src/dto/setup-mfa.dto.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;;;;;;;;;;AAEH,qDAAwG;AACxG,yDAA8C;AAC9C,8DAAqD;AAErD;;GAEG;AACH,MAAa,WAAW;IACtB;;;;;;;;;;;;;;;OAeG;IAUH,GAAG,CAAU;IAEb;;;;;;;;;;;OAWG;IAYH,UAAU,CAAU;IAEpB;;;;;;;;OAQG;IAGH,SAAS,CAA2B;CACrC;AAjED,kCAiEC;AAvCC;IATC,IAAA,4BAAU,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC;IACxE,IAAA,wBAAM,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC;IACnE,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACD,IAAA,4BAAU,GAAE;;wCACA;AAyBb;IAXC,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC;IACrD,IAAA,wBAAM,EAAC,CAAC,2BAAS,CAAC,IAAI,EAAE,2BAAS,CAAC,GAAG,EAAE,2BAAS,CAAC,KAAK,EAAE,2BAAS,CAAC,OAAO,CAAC,EAAE;QAC3E,OAAO,EAAE,uDAAuD;KACjE,CAAC;IACD,IAAA,2BAAS,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,2CAA2C,EAAE,CAAC;IACvE,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;+CACkB;AAapB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC;;8CAClB;AAGtC;;GAEG;AACH,MAAa,mBAAmB;IAC9B;;;;;;;OAOG;IACH,SAAS,CAA2B;CACrC;AAVD,kDAUC"}
1
+ {"version":3,"file":"setup-mfa.dto.js","sourceRoot":"","sources":["../../src/dto/setup-mfa.dto.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;;;;;;;;;;AAEH,qDAAoF;AACpF,yDAA8C;AAC9C,8DAAqD;AAErD;;;;GAIG;AACH,MAAa,WAAW;IAEtB;;;;;;;;;;;OAWG;IAYH,UAAU,CAAU;IAEpB;;;;;;;;OAQG;IAGH,SAAS,CAA2B;CACrC;AAvCD,kCAuCC;AAdC;IAXC,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC;IACrD,IAAA,wBAAM,EAAC,CAAC,2BAAS,CAAC,IAAI,EAAE,2BAAS,CAAC,GAAG,EAAE,2BAAS,CAAC,KAAK,EAAE,2BAAS,CAAC,OAAO,CAAC,EAAE;QAC3E,OAAO,EAAE,uDAAuD;KACjE,CAAC;IACD,IAAA,2BAAS,EAAC,EAAE,EAAE,EAAE,OAAO,EAAE,2CAA2C,EAAE,CAAC;IACvE,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACpC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;+CACkB;AAapB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC;;8CAClB;AAGtC;;GAEG;AACH,MAAa,mBAAmB;IAC9B;;;;;;;OAOG;IACH,SAAS,CAA2B;CACrC;AAVD,kDAUC"}
@@ -7,16 +7,6 @@
7
7
  * - Code and state validated for length
8
8
  */
9
9
  export declare class LinkSocialAccountDTO {
10
- /**
11
- * User identifier (UUID v4)
12
- *
13
- * Validation:
14
- * - Must be valid UUID v4 format
15
- *
16
- * Sanitization:
17
- * - Trimmed and lowercased
18
- */
19
- userId: string;
20
10
  /**
21
11
  * Social provider name (e.g., 'google', 'apple', 'facebook')
22
12
  *
@@ -71,16 +61,6 @@ export declare class LinkSocialAccountResponseDTO {
71
61
  * - User ID validated as UUID v4
72
62
  */
73
63
  export declare class GetLinkedAccountsDTO {
74
- /**
75
- * User identifier (UUID v4)
76
- *
77
- * Validation:
78
- * - Must be valid UUID v4 format
79
- *
80
- * Sanitization:
81
- * - Trimmed and lowercased
82
- */
83
- userId: string;
84
64
  }
85
65
  /**
86
66
  * Response DTO for getLinkedAccounts
@@ -104,16 +84,6 @@ export declare class GetLinkedAccountsResponseDTO {
104
84
  * - Provider name validated
105
85
  */
106
86
  export declare class UnlinkSocialAccountDTO {
107
- /**
108
- * User identifier (UUID v4)
109
- *
110
- * Validation:
111
- * - Must be valid UUID v4 format
112
- *
113
- * Sanitization:
114
- * - Trimmed and lowercased
115
- */
116
- userId: string;
117
87
  /**
118
88
  * Social provider name (e.g., 'google', 'apple', 'facebook')
119
89
  *
@@ -139,7 +109,7 @@ export declare class UnlinkSocialAccountResponseDTO {
139
109
  * DTO for checking if user can set password
140
110
  *
141
111
  * Security:
142
- * - User ID validated as UUID v4
112
+ * - User sub validated as UUID v4
143
113
  */
144
114
  export declare class CanSetPasswordDTO {
145
115
  /**
@@ -151,7 +121,7 @@ export declare class CanSetPasswordDTO {
151
121
  * Sanitization:
152
122
  * - Trimmed and lowercased
153
123
  */
154
- userId: string;
124
+ sub: string;
155
125
  }
156
126
  /**
157
127
  * Response DTO for canSetPassword
@@ -166,7 +136,7 @@ export declare class CanSetPasswordResponseDTO {
166
136
  * DTO for setting password for social-only user
167
137
  *
168
138
  * Security:
169
- * - User ID validated as UUID v4
139
+ * - User sub validated as UUID v4
170
140
  * - Password validated for strength (delegated to AuthService)
171
141
  */
172
142
  export declare class SetPasswordForSocialUserDTO {
@@ -179,7 +149,7 @@ export declare class SetPasswordForSocialUserDTO {
179
149
  * Sanitization:
180
150
  * - Trimmed and lowercased
181
151
  */
182
- userId: string;
152
+ sub: string;
183
153
  /**
184
154
  * New password
185
155
  *
@@ -1 +1 @@
1
- {"version":3,"file":"social-auth.dto.d.ts","sourceRoot":"","sources":["../../src/dto/social-auth.dto.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,qBAAa,oBAAoB;IAC/B;;;;;;;;OAQG;IAQH,MAAM,EAAG,MAAM,CAAC;IAEhB;;;;;;;;;OASG;IASH,QAAQ,EAAG,MAAM,CAAC;IAElB;;;;;;;;;OASG;IASH,IAAI,EAAG,MAAM,CAAC;IAEd;;;;;;;;;OASG;IASH,KAAK,EAAG,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,4BAA4B;IACvC;;OAEG;IACH,OAAO,EAAG,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,EAAG,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,qBAAa,oBAAoB;IAC/B;;;;;;;;OAQG;IAQH,MAAM,EAAG,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,4BAA4B;IACvC;;OAEG;IACH,QAAQ,EAAG,KAAK,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,IAAI,CAAC;QACf,UAAU,CAAC,EAAE,IAAI,CAAC;KACnB,CAAC,CAAC;CACJ;AAED;;;;;;GAMG;AACH,qBAAa,sBAAsB;IACjC;;;;;;;;OAQG;IAQH,MAAM,EAAG,MAAM,CAAC;IAEhB;;;;;;;;;OASG;IASH,QAAQ,EAAG,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,8BAA8B;IACzC;;OAEG;IACH,OAAO,EAAG,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B;;;;;;;;OAQG;IAQH,MAAM,EAAG,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,yBAAyB;IACpC;;OAEG;IACH,cAAc,EAAG,OAAO,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,qBAAa,2BAA2B;IACtC;;;;;;;;OAQG;IAQH,MAAM,EAAG,MAAM,CAAC;IAEhB;;;;;;;;;;OAUG;IAIH,QAAQ,EAAG,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,mCAAmC;IAC9C;;OAEG;IACH,OAAO,EAAG,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,iBAAiB;IAC5B;;;;;;;;;OASG;IASH,IAAI,EAAG,MAAM,CAAC;IAEd;;;;;;;;;OASG;IASH,KAAK,EAAG,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,qBAAa,cAAc;IACzB;;;;;;;;;;;;;;OAcG;IAQH,QAAQ,EAAG,MAAM,CAAC;IAElB;;;;;;;;;;;;;;;;OAgBG;IAWH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;;;;;;;;;;OAgBG;IAWH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;;;;;;;;;;;;OAiBG;IAGH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED;;;;;;;;;;GAUG;AACH,qBAAa,iBAAiB;IAC5B;;;;;;;;;OASG;IASH,aAAa,EAAG,MAAM,CAAC;CACxB"}
1
+ {"version":3,"file":"social-auth.dto.d.ts","sourceRoot":"","sources":["../../src/dto/social-auth.dto.ts"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH,qBAAa,oBAAoB;IAG/B;;;;;;;;;OASG;IASH,QAAQ,EAAG,MAAM,CAAC;IAElB;;;;;;;;;OASG;IASH,IAAI,EAAG,MAAM,CAAC;IAEd;;;;;;;;;OASG;IASH,KAAK,EAAG,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,4BAA4B;IACvC;;OAEG;IACH,OAAO,EAAG,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,EAAG,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,qBAAa,oBAAoB;CAEhC;AAED;;GAEG;AACH,qBAAa,4BAA4B;IACvC;;OAEG;IACH,QAAQ,EAAG,KAAK,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,EAAE,IAAI,CAAC;QACf,UAAU,CAAC,EAAE,IAAI,CAAC;KACnB,CAAC,CAAC;CACJ;AAED;;;;;;GAMG;AACH,qBAAa,sBAAsB;IAGjC;;;;;;;;;OASG;IASH,QAAQ,EAAG,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,8BAA8B;IACzC;;OAEG;IACH,OAAO,EAAG,MAAM,CAAC;CAClB;AAED;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B;;;;;;;;OAQG;IAQH,GAAG,EAAG,MAAM,CAAC;CACd;AAED;;GAEG;AACH,qBAAa,yBAAyB;IACpC;;OAEG;IACH,cAAc,EAAG,OAAO,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,qBAAa,2BAA2B;IACtC;;;;;;;;OAQG;IAQH,GAAG,EAAG,MAAM,CAAC;IAEb;;;;;;;;;;OAUG;IAIH,QAAQ,EAAG,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,mCAAmC;IAC9C;;OAEG;IACH,OAAO,EAAG,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,iBAAiB;IAC5B;;;;;;;;;OASG;IASH,IAAI,EAAG,MAAM,CAAC;IAEd;;;;;;;;;OASG;IASH,KAAK,EAAG,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,qBAAa,cAAc;IACzB;;;;;;;;;;;;;;OAcG;IAQH,QAAQ,EAAG,MAAM,CAAC;IAElB;;;;;;;;;;;;;;;;OAgBG;IAWH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;;;;;;;;;;OAgBG;IAWH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;;;;;;;;;;;;OAiBG;IAGH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED;;;;;;;;;;GAUG;AACH,qBAAa,iBAAiB;IAC5B;;;;;;;;;OASG;IASH,aAAa,EAAG,MAAM,CAAC;CACxB"}