@nauth-toolkit/core 0.1.87 → 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 (163) 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 +15 -19
  14. package/dist/dto/admin-reset-password.dto.d.ts.map +1 -1
  15. package/dist/dto/admin-reset-password.dto.js +21 -41
  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 +8 -9
  88. package/dist/dto/set-mfa-exemption.dto.d.ts.map +1 -1
  89. package/dist/dto/set-mfa-exemption.dto.js +11 -13
  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 -438
  135. package/dist/services/auth.service.d.ts.map +1 -1
  136. package/dist/services/auth.service.js +424 -1255
  137. package/dist/services/auth.service.js.map +1 -1
  138. package/dist/services/mfa.service.d.ts +80 -12
  139. package/dist/services/mfa.service.d.ts.map +1 -1
  140. package/dist/services/mfa.service.js +347 -261
  141. package/dist/services/mfa.service.js.map +1 -1
  142. package/dist/services/social-auth.service.d.ts +7 -0
  143. package/dist/services/social-auth.service.d.ts.map +1 -1
  144. package/dist/services/social-auth.service.js +38 -26
  145. package/dist/services/social-auth.service.js.map +1 -1
  146. package/dist/services/user.service.d.ts +3 -3
  147. package/dist/services/user.service.d.ts.map +1 -1
  148. package/dist/services/user.service.js +7 -7
  149. package/dist/services/user.service.js.map +1 -1
  150. package/dist/utils/dto-validator.d.ts.map +1 -1
  151. package/dist/utils/dto-validator.js +50 -4
  152. package/dist/utils/dto-validator.js.map +1 -1
  153. package/dist/utils/setup/init-services.d.ts +2 -1
  154. package/dist/utils/setup/init-services.d.ts.map +1 -1
  155. package/dist/utils/setup/init-services.js +2 -0
  156. package/dist/utils/setup/init-services.js.map +1 -1
  157. package/package.json +1 -1
  158. package/dist/dto/change-password-request.dto.d.ts +0 -43
  159. package/dist/dto/change-password-request.dto.d.ts.map +0 -1
  160. package/dist/dto/change-password-request.dto.js.map +0 -1
  161. package/dist/dto/update-user-attributes-request.dto.d.ts +0 -44
  162. package/dist/dto/update-user-attributes-request.dto.d.ts.map +0 -1
  163. package/dist/dto/update-user-attributes-request.dto.js.map +0 -1
@@ -0,0 +1,62 @@
1
+ import { IAuthAudit } from '../interfaces/entities.interface';
2
+ import { GetUserAuthHistoryDTO } from './get-user-auth-history.dto';
3
+ /**
4
+ * Request DTO for getting user authentication history (admin-only)
5
+ *
6
+ * Admin DTO - requires sub field. Used by AdminAuthService.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * const result = await auditService.getUserAuthHistory({
11
+ * sub: 'user-uuid',
12
+ * page: 1,
13
+ * limit: 50,
14
+ * eventTypes: [AuthAuditEventType.LOGIN_SUCCESS],
15
+ * startDate: new Date('2025-01-01'),
16
+ * });
17
+ * ```
18
+ */
19
+ export declare class AdminGetUserAuthHistoryDTO extends GetUserAuthHistoryDTO {
20
+ /**
21
+ * User's unique identifier (UUID v4)
22
+ *
23
+ * Validation:
24
+ * - Must be a valid UUID v4 format
25
+ * - Matches DB constraint: char(36) or uuid
26
+ *
27
+ * Sanitization:
28
+ * - Trimmed
29
+ * - Lowercased for consistency
30
+ *
31
+ * Required for admin operations.
32
+ *
33
+ * @example "a21b654c-2746-4168-acee-c175083a65cd"
34
+ */
35
+ sub: string;
36
+ }
37
+ /**
38
+ * Response DTO for paginated user authentication history
39
+ */
40
+ export declare class GetUserAuthHistoryResponseDTO {
41
+ /**
42
+ * Array of audit records
43
+ */
44
+ data: IAuthAudit[];
45
+ /**
46
+ * Total number of records matching the query
47
+ */
48
+ total: number;
49
+ /**
50
+ * Current page number
51
+ */
52
+ page: number;
53
+ /**
54
+ * Number of records per page
55
+ */
56
+ limit: number;
57
+ /**
58
+ * Total number of pages
59
+ */
60
+ totalPages: number;
61
+ }
62
+ //# sourceMappingURL=admin-get-user-auth-history.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-get-user-auth-history.dto.d.ts","sourceRoot":"","sources":["../../src/dto/admin-get-user-auth-history.dto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAG9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,0BAA2B,SAAQ,qBAAqB;IACnE;;;;;;;;;;;;;;OAcG;IAQH,GAAG,EAAG,MAAM,CAAC;CACd;AAED;;GAEG;AACH,qBAAa,6BAA6B;IACxC;;OAEG;IACH,IAAI,EAAG,UAAU,EAAE,CAAC;IAEpB;;OAEG;IACH,KAAK,EAAG,MAAM,CAAC;IAEf;;OAEG;IACH,IAAI,EAAG,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,EAAG,MAAM,CAAC;IAEf;;OAEG;IACH,UAAU,EAAG,MAAM,CAAC;CACrB"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.GetUserAuthHistoryResponseDTO = exports.AdminGetUserAuthHistoryDTO = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const class_transformer_1 = require("class-transformer");
15
+ const get_user_auth_history_dto_1 = require("./get-user-auth-history.dto");
16
+ /**
17
+ * Request DTO for getting user authentication history (admin-only)
18
+ *
19
+ * Admin DTO - requires sub field. Used by AdminAuthService.
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * const result = await auditService.getUserAuthHistory({
24
+ * sub: 'user-uuid',
25
+ * page: 1,
26
+ * limit: 50,
27
+ * eventTypes: [AuthAuditEventType.LOGIN_SUCCESS],
28
+ * startDate: new Date('2025-01-01'),
29
+ * });
30
+ * ```
31
+ */
32
+ class AdminGetUserAuthHistoryDTO extends get_user_auth_history_dto_1.GetUserAuthHistoryDTO {
33
+ /**
34
+ * User's unique identifier (UUID v4)
35
+ *
36
+ * Validation:
37
+ * - Must be a valid UUID v4 format
38
+ * - Matches DB constraint: char(36) or uuid
39
+ *
40
+ * Sanitization:
41
+ * - Trimmed
42
+ * - Lowercased for consistency
43
+ *
44
+ * Required for admin operations.
45
+ *
46
+ * @example "a21b654c-2746-4168-acee-c175083a65cd"
47
+ */
48
+ sub;
49
+ }
50
+ exports.AdminGetUserAuthHistoryDTO = AdminGetUserAuthHistoryDTO;
51
+ __decorate([
52
+ (0, class_validator_1.IsUUID)('4', { message: 'User sub must be a valid UUID v4 format' }),
53
+ (0, class_transformer_1.Transform)(({ value }) => {
54
+ if (typeof value === 'string') {
55
+ return value.trim().toLowerCase();
56
+ }
57
+ return value;
58
+ }),
59
+ __metadata("design:type", String)
60
+ ], AdminGetUserAuthHistoryDTO.prototype, "sub", void 0);
61
+ /**
62
+ * Response DTO for paginated user authentication history
63
+ */
64
+ class GetUserAuthHistoryResponseDTO {
65
+ /**
66
+ * Array of audit records
67
+ */
68
+ data;
69
+ /**
70
+ * Total number of records matching the query
71
+ */
72
+ total;
73
+ /**
74
+ * Current page number
75
+ */
76
+ page;
77
+ /**
78
+ * Number of records per page
79
+ */
80
+ limit;
81
+ /**
82
+ * Total number of pages
83
+ */
84
+ totalPages;
85
+ }
86
+ exports.GetUserAuthHistoryResponseDTO = GetUserAuthHistoryResponseDTO;
87
+ //# sourceMappingURL=admin-get-user-auth-history.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-get-user-auth-history.dto.js","sourceRoot":"","sources":["../../src/dto/admin-get-user-auth-history.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,qDAAyC;AACzC,yDAA8C;AAC9C,2EAAoE;AAEpE;;;;;;;;;;;;;;;GAeG;AACH,MAAa,0BAA2B,SAAQ,iDAAqB;IACnE;;;;;;;;;;;;;;OAcG;IAQH,GAAG,CAAU;CACd;AAxBD,gEAwBC;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;;uDACW;AAGf;;GAEG;AACH,MAAa,6BAA6B;IACxC;;OAEG;IACH,IAAI,CAAgB;IAEpB;;OAEG;IACH,KAAK,CAAU;IAEf;;OAEG;IACH,IAAI,CAAU;IAEd;;OAEG;IACH,KAAK,CAAU;IAEf;;OAEG;IACH,UAAU,CAAU;CACrB;AAzBD,sEAyBC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Admin Logout All DTO
3
+ *
4
+ * Request DTO for logging out a target user from all sessions (admin-initiated).
5
+ *
6
+ * Security:
7
+ * - Requires target user sub (UUID)
8
+ * - Prevents unauthorized logout attempts
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const result = await adminAuthService.logoutAll({
13
+ * sub: 'user-uuid',
14
+ * forgetDevices: true,
15
+ * });
16
+ * ```
17
+ */
18
+ /**
19
+ * Request DTO for admin logout all sessions
20
+ */
21
+ export declare class AdminLogoutAllDTO {
22
+ /**
23
+ * User's unique identifier (UUID v4)
24
+ *
25
+ * Validation:
26
+ * - Must be a valid UUID v4 format
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
+ /**
37
+ * Whether to also forget/revoke all trusted devices
38
+ *
39
+ * If true, all trusted devices for this user will be revoked,
40
+ * requiring MFA on next login from any device.
41
+ *
42
+ * Default: false (devices remain trusted)
43
+ *
44
+ * @example false
45
+ */
46
+ forgetDevices?: boolean;
47
+ }
48
+ //# sourceMappingURL=admin-logout-all.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-logout-all.dto.d.ts","sourceRoot":"","sources":["../../src/dto/admin-logout-all.dto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH;;GAEG;AACH,qBAAa,iBAAiB;IAC5B;;;;;;;;;;;;OAYG;IAQH,GAAG,EAAG,MAAM,CAAC;IAEb;;;;;;;;;OASG;IAQH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB"}
@@ -1,20 +1,18 @@
1
1
  "use strict";
2
2
  /**
3
- * Change Password Request DTO
3
+ * Admin Logout All DTO
4
4
  *
5
- * Request DTO for changing a user's password (includes user sub).
5
+ * Request DTO for logging out a target user from all sessions (admin-initiated).
6
6
  *
7
7
  * Security:
8
- * - User sub validated (UUID)
9
- * - Password validation enforced
10
- * - Current password required for security
8
+ * - Requires target user sub (UUID)
9
+ * - Prevents unauthorized logout attempts
11
10
  *
12
11
  * @example
13
12
  * ```typescript
14
- * await authService.changePassword({
13
+ * const result = await adminAuthService.logoutAll({
15
14
  * sub: 'user-uuid',
16
- * currentPassword: 'OldPass123!',
17
- * newPassword: 'NewPass456!'
15
+ * forgetDevices: true,
18
16
  * });
19
17
  * ```
20
18
  */
@@ -28,22 +26,18 @@ var __metadata = (this && this.__metadata) || function (k, v) {
28
26
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
29
27
  };
30
28
  Object.defineProperty(exports, "__esModule", { value: true });
31
- exports.ChangePasswordRequestDTO = void 0;
29
+ exports.AdminLogoutAllDTO = void 0;
32
30
  const class_validator_1 = require("class-validator");
33
31
  const class_transformer_1 = require("class-transformer");
34
- const change_password_dto_1 = require("./change-password.dto");
35
32
  /**
36
- * Request DTO for changing password (includes user sub)
33
+ * Request DTO for admin logout all sessions
37
34
  */
38
- class ChangePasswordRequestDTO extends change_password_dto_1.ChangePasswordDTO {
35
+ class AdminLogoutAllDTO {
39
36
  /**
40
37
  * User's unique identifier (UUID v4)
41
38
  *
42
- * Optional at controller level - filled from authenticated user's JWT.
43
- * Validated only when provided (service layer will ensure it's set).
44
- *
45
39
  * Validation:
46
- * - Must be a valid UUID v4 format when provided
40
+ * - Must be a valid UUID v4 format
47
41
  * - Matches DB constraint: char(36) or uuid
48
42
  *
49
43
  * Sanitization:
@@ -53,10 +47,20 @@ class ChangePasswordRequestDTO extends change_password_dto_1.ChangePasswordDTO {
53
47
  * @example "a21b654c-2746-4168-acee-c175083a65cd"
54
48
  */
55
49
  sub;
50
+ /**
51
+ * Whether to also forget/revoke all trusted devices
52
+ *
53
+ * If true, all trusted devices for this user will be revoked,
54
+ * requiring MFA on next login from any device.
55
+ *
56
+ * Default: false (devices remain trusted)
57
+ *
58
+ * @example false
59
+ */
60
+ forgetDevices;
56
61
  }
57
- exports.ChangePasswordRequestDTO = ChangePasswordRequestDTO;
62
+ exports.AdminLogoutAllDTO = AdminLogoutAllDTO;
58
63
  __decorate([
59
- (0, class_validator_1.ValidateIf)((o) => o.sub !== undefined && o.sub !== null && o.sub !== ''),
60
64
  (0, class_validator_1.IsUUID)('4', { message: 'User sub must be a valid UUID v4 format' }),
61
65
  (0, class_transformer_1.Transform)(({ value }) => {
62
66
  if (typeof value === 'string') {
@@ -64,7 +68,18 @@ __decorate([
64
68
  }
65
69
  return value;
66
70
  }),
67
- (0, class_validator_1.IsOptional)(),
68
71
  __metadata("design:type", String)
69
- ], ChangePasswordRequestDTO.prototype, "sub", void 0);
70
- //# sourceMappingURL=change-password-request.dto.js.map
72
+ ], AdminLogoutAllDTO.prototype, "sub", void 0);
73
+ __decorate([
74
+ (0, class_validator_1.IsOptional)(),
75
+ (0, class_validator_1.IsBoolean)(),
76
+ (0, class_transformer_1.Transform)(({ value }) => {
77
+ if (value === 'true' || value === '1')
78
+ return true;
79
+ if (value === 'false' || value === '0')
80
+ return false;
81
+ return value;
82
+ }),
83
+ __metadata("design:type", Boolean)
84
+ ], AdminLogoutAllDTO.prototype, "forgetDevices", void 0);
85
+ //# sourceMappingURL=admin-logout-all.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-logout-all.dto.js","sourceRoot":"","sources":["../../src/dto/admin-logout-all.dto.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;;;;;;;;;;AAEH,qDAAgE;AAChE,yDAA8C;AAE9C;;GAEG;AACH,MAAa,iBAAiB;IAC5B;;;;;;;;;;;;OAYG;IAQH,GAAG,CAAU;IAEb;;;;;;;;;OASG;IAQH,aAAa,CAAW;CACzB;AAzCD,8CAyCC;AApBC;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;;8CACW;AAmBb;IAPC,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;IACX,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACvB,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC;QACnD,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,GAAG;YAAE,OAAO,KAAK,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;wDACsB"}
@@ -0,0 +1,25 @@
1
+ import { RemoveDevicesDTO, RemoveDevicesResponseDTO } from './remove-devices.dto';
2
+ /**
3
+ * Admin DTO for removing MFA devices for a specific user
4
+ *
5
+ * Admin APIs must explicitly target a user via `sub`.
6
+ * This DTO mirrors {@link RemoveDevicesDTO} but adds `sub`.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * const result = await mfaService.adminRemoveDevices({
11
+ * sub: 'a21b654c-2746-4168-acee-c175083a65cd',
12
+ * methodType: 'totp',
13
+ * });
14
+ * ```
15
+ */
16
+ export declare class AdminRemoveDevicesDTO extends RemoveDevicesDTO {
17
+ /**
18
+ * Target user's unique identifier (UUID v4)
19
+ *
20
+ * @example "a21b654c-2746-4168-acee-c175083a65cd"
21
+ */
22
+ sub: string;
23
+ }
24
+ export { RemoveDevicesResponseDTO };
25
+ //# sourceMappingURL=admin-remove-devices.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-remove-devices.dto.d.ts","sourceRoot":"","sources":["../../src/dto/admin-remove-devices.dto.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAElF;;;;;;;;;;;;;GAaG;AACH,qBAAa,qBAAsB,SAAQ,gBAAgB;IACzD;;;;OAIG;IAQH,GAAG,EAAG,MAAM,CAAC;CACd;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RemoveDevicesResponseDTO = exports.AdminRemoveDevicesDTO = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const class_transformer_1 = require("class-transformer");
15
+ const remove_devices_dto_1 = require("./remove-devices.dto");
16
+ Object.defineProperty(exports, "RemoveDevicesResponseDTO", { enumerable: true, get: function () { return remove_devices_dto_1.RemoveDevicesResponseDTO; } });
17
+ /**
18
+ * Admin DTO for removing MFA devices for a specific user
19
+ *
20
+ * Admin APIs must explicitly target a user via `sub`.
21
+ * This DTO mirrors {@link RemoveDevicesDTO} but adds `sub`.
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * const result = await mfaService.adminRemoveDevices({
26
+ * sub: 'a21b654c-2746-4168-acee-c175083a65cd',
27
+ * methodType: 'totp',
28
+ * });
29
+ * ```
30
+ */
31
+ class AdminRemoveDevicesDTO extends remove_devices_dto_1.RemoveDevicesDTO {
32
+ /**
33
+ * Target user's unique identifier (UUID v4)
34
+ *
35
+ * @example "a21b654c-2746-4168-acee-c175083a65cd"
36
+ */
37
+ sub;
38
+ }
39
+ exports.AdminRemoveDevicesDTO = AdminRemoveDevicesDTO;
40
+ __decorate([
41
+ (0, class_validator_1.IsUUID)('4', { message: 'User sub must be a valid UUID v4 format' }),
42
+ (0, class_transformer_1.Transform)(({ value }) => {
43
+ if (typeof value === 'string') {
44
+ return value.trim().toLowerCase();
45
+ }
46
+ return value;
47
+ }),
48
+ __metadata("design:type", String)
49
+ ], AdminRemoveDevicesDTO.prototype, "sub", void 0);
50
+ //# sourceMappingURL=admin-remove-devices.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-remove-devices.dto.js","sourceRoot":"","sources":["../../src/dto/admin-remove-devices.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAyC;AACzC,yDAA8C;AAC9C,6DAAkF;AAgCzE,yGAhCkB,6CAAwB,OAgClB;AA9BjC;;;;;;;;;;;;;GAaG;AACH,MAAa,qBAAsB,SAAQ,qCAAgB;IACzD;;;;OAIG;IAQH,GAAG,CAAU;CACd;AAdD,sDAcC;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;;kDACW"}
@@ -2,11 +2,11 @@
2
2
  * Admin Reset Password Request DTO
3
3
  *
4
4
  * Request DTO for admin-initiated password reset workflow.
5
- * Allows resetting a user's password by identifier (email, username, phone, or sub).
5
+ * Allows resetting a user's password by sub (UUID).
6
6
  *
7
7
  * Security:
8
8
  * - Admin-only operation (should be protected by admin guard)
9
- * - User identifier validated
9
+ * - User sub validated
10
10
  * - Code + optional link delivery (like email verification)
11
11
  * - Configurable expiry (default: 1 hour)
12
12
  * - Optional immediate session revocation
@@ -16,7 +16,7 @@
16
16
  * ```typescript
17
17
  * // With link for consumer app custom UI
18
18
  * await authService.adminResetPassword({
19
- * identifier: 'user@example.com',
19
+ * sub: 'a21b654c-2746-4168-acee-c175083a65cd',
20
20
  * baseUrl: 'https://myapp.com/reset-password',
21
21
  * deliveryMethod: 'email',
22
22
  * revokeSessions: true
@@ -24,7 +24,7 @@
24
24
  *
25
25
  * // Code only (no link)
26
26
  * await authService.adminResetPassword({
27
- * identifier: 'user@example.com',
27
+ * sub: 'a21b654c-2746-4168-acee-c175083a65cd',
28
28
  * deliveryMethod: 'email'
29
29
  * });
30
30
  * ```
@@ -34,20 +34,18 @@
34
34
  */
35
35
  export declare class AdminResetPasswordDTO {
36
36
  /**
37
- * User identifier (email, username, phone, or sub/UUID)
37
+ * User sub (UUID)
38
38
  *
39
39
  * Validation:
40
- * - Must be a string
41
- * - Min 1 character
42
- * - Max 255 characters
40
+ * - Must be a valid UUID v4
43
41
  *
44
42
  * Sanitization:
45
43
  * - Trimmed
46
- * - Lowercased if email format detected
44
+ * - Lowercased for consistency
47
45
  *
48
- * @example "user@example.com" | "johndoe" | "+1234567890" | "uuid"
46
+ * @example "a21b654c-2746-4168-acee-c175083a65cd"
49
47
  */
50
- identifier: string;
48
+ sub: string;
51
49
  /**
52
50
  * Delivery method for reset code
53
51
  *
@@ -181,7 +179,7 @@ export declare class AdminResetPasswordResponseDTO {
181
179
  * @example
182
180
  * ```typescript
183
181
  * await authService.confirmAdminResetPassword({
184
- * identifier: 'user@example.com',
182
+ * sub: 'a21b654c-2746-4168-acee-c175083a65cd',
185
183
  * code: '123456',
186
184
  * newPassword: 'NewSecurePass123!'
187
185
  * });
@@ -189,20 +187,18 @@ export declare class AdminResetPasswordResponseDTO {
189
187
  */
190
188
  export declare class ConfirmAdminResetPasswordDTO {
191
189
  /**
192
- * User identifier (email, username, phone, or sub/UUID)
190
+ * User sub (UUID)
193
191
  *
194
192
  * Validation:
195
- * - Must be a string
196
- * - Min 1 character
197
- * - Max 255 characters
193
+ * - Must be a valid UUID v4
198
194
  *
199
195
  * Sanitization:
200
196
  * - Trimmed
201
- * - Lowercased if email format detected
197
+ * - Lowercased for consistency
202
198
  *
203
- * @example "user@example.com"
199
+ * @example "a21b654c-2746-4168-acee-c175083a65cd"
204
200
  */
205
- identifier: string;
201
+ sub: string;
206
202
  /**
207
203
  * Verification code from email/SMS (6-10 digits)
208
204
  *
@@ -1 +1 @@
1
- {"version":3,"file":"admin-reset-password.dto.d.ts","sourceRoot":"","sources":["../../src/dto/admin-reset-password.dto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAkBH;;GAEG;AACH,qBAAa,qBAAqB;IAChC;;;;;;;;;;;;;OAaG;IAgBH,UAAU,EAAG,MAAM,CAAC;IAEpB;;;;;;;;;OASG;IAGH,cAAc,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAEjC;;;;;;;;;;;;;;;;;OAiBG;IAaH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;;;;;OAWG;IAKH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;;;;;;;OAYG;IAGH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;;;;;;;;;;OAYG;IAUH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,6BAA6B;IACxC;;;OAGG;IACH,OAAO,EAAG,OAAO,CAAC;IAElB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAEjC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,4BAA4B;IACvC;;;;;;;;;;;;;OAaG;IAgBH,UAAU,EAAG,MAAM,CAAC;IAEpB;;;;;;;;;;;;;;OAcG;IAUH,IAAI,EAAG,MAAM,CAAC;IAEd;;;;;;;;;;;;;;OAcG;IAKH,WAAW,EAAG,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,oCAAoC;IAC/C;;;OAGG;IACH,OAAO,EAAG,OAAO,CAAC;CACnB"}
1
+ {"version":3,"file":"admin-reset-password.dto.d.ts","sourceRoot":"","sources":["../../src/dto/admin-reset-password.dto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAmBH;;GAEG;AACH,qBAAa,qBAAqB;IAChC;;;;;;;;;;;OAWG;IAQH,GAAG,EAAG,MAAM,CAAC;IAEb;;;;;;;;;OASG;IAGH,cAAc,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAEjC;;;;;;;;;;;;;;;;;OAiBG;IAaH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;;;;;OAWG;IAKH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;;;;;;;OAYG;IAGH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;;;;;;;;;;OAYG;IAUH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,6BAA6B;IACxC;;;OAGG;IACH,OAAO,EAAG,OAAO,CAAC;IAElB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAEjC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,4BAA4B;IACvC;;;;;;;;;;;OAWG;IAQH,GAAG,EAAG,MAAM,CAAC;IAEb;;;;;;;;;;;;;;OAcG;IAUH,IAAI,EAAG,MAAM,CAAC;IAEd;;;;;;;;;;;;;;OAcG;IAKH,WAAW,EAAG,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,oCAAoC;IAC/C;;;OAGG;IACH,OAAO,EAAG,OAAO,CAAC;CACnB"}
@@ -3,11 +3,11 @@
3
3
  * Admin Reset Password Request DTO
4
4
  *
5
5
  * Request DTO for admin-initiated password reset workflow.
6
- * Allows resetting a user's password by identifier (email, username, phone, or sub).
6
+ * Allows resetting a user's password by sub (UUID).
7
7
  *
8
8
  * Security:
9
9
  * - Admin-only operation (should be protected by admin guard)
10
- * - User identifier validated
10
+ * - User sub validated
11
11
  * - Code + optional link delivery (like email verification)
12
12
  * - Configurable expiry (default: 1 hour)
13
13
  * - Optional immediate session revocation
@@ -17,7 +17,7 @@
17
17
  * ```typescript
18
18
  * // With link for consumer app custom UI
19
19
  * await authService.adminResetPassword({
20
- * identifier: 'user@example.com',
20
+ * sub: 'a21b654c-2746-4168-acee-c175083a65cd',
21
21
  * baseUrl: 'https://myapp.com/reset-password',
22
22
  * deliveryMethod: 'email',
23
23
  * revokeSessions: true
@@ -25,7 +25,7 @@
25
25
  *
26
26
  * // Code only (no link)
27
27
  * await authService.adminResetPassword({
28
- * identifier: 'user@example.com',
28
+ * sub: 'a21b654c-2746-4168-acee-c175083a65cd',
29
29
  * deliveryMethod: 'email'
30
30
  * });
31
31
  * ```
@@ -48,20 +48,18 @@ const class_transformer_1 = require("class-transformer");
48
48
  */
49
49
  class AdminResetPasswordDTO {
50
50
  /**
51
- * User identifier (email, username, phone, or sub/UUID)
51
+ * User sub (UUID)
52
52
  *
53
53
  * Validation:
54
- * - Must be a string
55
- * - Min 1 character
56
- * - Max 255 characters
54
+ * - Must be a valid UUID v4
57
55
  *
58
56
  * Sanitization:
59
57
  * - Trimmed
60
- * - Lowercased if email format detected
58
+ * - Lowercased for consistency
61
59
  *
62
- * @example "user@example.com" | "johndoe" | "+1234567890" | "uuid"
60
+ * @example "a21b654c-2746-4168-acee-c175083a65cd"
63
61
  */
64
- identifier;
62
+ sub;
65
63
  /**
66
64
  * Delivery method for reset code
67
65
  *
@@ -136,23 +134,15 @@ class AdminResetPasswordDTO {
136
134
  }
137
135
  exports.AdminResetPasswordDTO = AdminResetPasswordDTO;
138
136
  __decorate([
139
- (0, class_validator_1.IsString)({ message: 'Identifier must be a string' }),
140
- (0, class_validator_1.IsNotEmpty)({ message: 'Identifier is required' }),
141
- (0, class_validator_1.MinLength)(1, { message: 'Identifier is required' }),
142
- (0, class_validator_1.MaxLength)(255, { message: 'Identifier must not exceed 255 characters' }),
137
+ (0, class_validator_1.IsUUID)('4', { message: 'User sub must be a valid UUID v4 format' }),
143
138
  (0, class_transformer_1.Transform)(({ value }) => {
144
139
  if (typeof value === 'string') {
145
- const trimmed = value.trim();
146
- // If it contains @, treat as email and lowercase
147
- if (trimmed.includes('@')) {
148
- return trimmed.toLowerCase();
149
- }
150
- return trimmed;
140
+ return value.trim().toLowerCase();
151
141
  }
152
142
  return value;
153
143
  }),
154
144
  __metadata("design:type", String)
155
- ], AdminResetPasswordDTO.prototype, "identifier", void 0);
145
+ ], AdminResetPasswordDTO.prototype, "sub", void 0);
156
146
  __decorate([
157
147
  (0, class_validator_1.IsOptional)(),
158
148
  (0, class_validator_1.IsIn)(['email', 'sms'], { message: 'Delivery method must be email or sms' }),
@@ -256,7 +246,7 @@ exports.AdminResetPasswordResponseDTO = AdminResetPasswordResponseDTO;
256
246
  * @example
257
247
  * ```typescript
258
248
  * await authService.confirmAdminResetPassword({
259
- * identifier: 'user@example.com',
249
+ * sub: 'a21b654c-2746-4168-acee-c175083a65cd',
260
250
  * code: '123456',
261
251
  * newPassword: 'NewSecurePass123!'
262
252
  * });
@@ -264,20 +254,18 @@ exports.AdminResetPasswordResponseDTO = AdminResetPasswordResponseDTO;
264
254
  */
265
255
  class ConfirmAdminResetPasswordDTO {
266
256
  /**
267
- * User identifier (email, username, phone, or sub/UUID)
257
+ * User sub (UUID)
268
258
  *
269
259
  * Validation:
270
- * - Must be a string
271
- * - Min 1 character
272
- * - Max 255 characters
260
+ * - Must be a valid UUID v4
273
261
  *
274
262
  * Sanitization:
275
263
  * - Trimmed
276
- * - Lowercased if email format detected
264
+ * - Lowercased for consistency
277
265
  *
278
- * @example "user@example.com"
266
+ * @example "a21b654c-2746-4168-acee-c175083a65cd"
279
267
  */
280
- identifier;
268
+ sub;
281
269
  /**
282
270
  * Verification code from email/SMS (6-10 digits)
283
271
  *
@@ -313,23 +301,15 @@ class ConfirmAdminResetPasswordDTO {
313
301
  }
314
302
  exports.ConfirmAdminResetPasswordDTO = ConfirmAdminResetPasswordDTO;
315
303
  __decorate([
316
- (0, class_validator_1.IsString)({ message: 'Identifier must be a string' }),
317
- (0, class_validator_1.IsNotEmpty)({ message: 'Identifier is required' }),
318
- (0, class_validator_1.MinLength)(1, { message: 'Identifier is required' }),
319
- (0, class_validator_1.MaxLength)(255, { message: 'Identifier must not exceed 255 characters' }),
304
+ (0, class_validator_1.IsUUID)('4', { message: 'User sub must be a valid UUID v4 format' }),
320
305
  (0, class_transformer_1.Transform)(({ value }) => {
321
306
  if (typeof value === 'string') {
322
- const trimmed = value.trim();
323
- // If it contains @, treat as email and lowercase
324
- if (trimmed.includes('@')) {
325
- return trimmed.toLowerCase();
326
- }
327
- return trimmed;
307
+ return value.trim().toLowerCase();
328
308
  }
329
309
  return value;
330
310
  }),
331
311
  __metadata("design:type", String)
332
- ], ConfirmAdminResetPasswordDTO.prototype, "identifier", void 0);
312
+ ], ConfirmAdminResetPasswordDTO.prototype, "sub", void 0);
333
313
  __decorate([
334
314
  (0, class_validator_1.IsString)({ message: 'Code must be a string' }),
335
315
  (0, class_validator_1.IsNotEmpty)({ message: 'Code is required' }),
@@ -1 +1 @@
1
- {"version":3,"file":"admin-reset-password.dto.js","sourceRoot":"","sources":["../../src/dto/admin-reset-password.dto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin-reset-password.dto.js","sourceRoot":"","sources":["../../src/dto/admin-reset-password.dto.ts"],"names":[],"mappings":"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"}