@nauth-toolkit/core 0.1.87 → 0.1.89

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 (174) hide show
  1. package/dist/dto/admin-get-mfa-status.dto.d.ts +20 -0
  2. package/dist/dto/admin-get-mfa-status.dto.d.ts.map +1 -0
  3. package/dist/dto/{change-password-request.dto.js → admin-get-mfa-status.dto.js} +22 -32
  4. package/dist/dto/admin-get-mfa-status.dto.js.map +1 -0
  5. package/dist/dto/admin-get-user-auth-history.dto.d.ts +62 -0
  6. package/dist/dto/admin-get-user-auth-history.dto.d.ts.map +1 -0
  7. package/dist/dto/admin-get-user-auth-history.dto.js +87 -0
  8. package/dist/dto/admin-get-user-auth-history.dto.js.map +1 -0
  9. package/dist/dto/admin-logout-all.dto.d.ts +48 -0
  10. package/dist/dto/admin-logout-all.dto.d.ts.map +1 -0
  11. package/dist/dto/admin-logout-all.dto.js +85 -0
  12. package/dist/dto/admin-logout-all.dto.js.map +1 -0
  13. package/dist/dto/admin-remove-devices.dto.d.ts +25 -0
  14. package/dist/dto/admin-remove-devices.dto.d.ts.map +1 -0
  15. package/dist/dto/admin-remove-devices.dto.js +50 -0
  16. package/dist/dto/admin-remove-devices.dto.js.map +1 -0
  17. package/dist/dto/admin-reset-password.dto.d.ts +15 -19
  18. package/dist/dto/admin-reset-password.dto.d.ts.map +1 -1
  19. package/dist/dto/admin-reset-password.dto.js +21 -41
  20. package/dist/dto/admin-reset-password.dto.js.map +1 -1
  21. package/dist/dto/admin-revoke-session.dto.d.ts +22 -0
  22. package/dist/dto/admin-revoke-session.dto.d.ts.map +1 -0
  23. package/dist/dto/admin-revoke-session.dto.js +48 -0
  24. package/dist/dto/admin-revoke-session.dto.js.map +1 -0
  25. package/dist/dto/admin-set-password.dto.d.ts +8 -10
  26. package/dist/dto/admin-set-password.dto.d.ts.map +1 -1
  27. package/dist/dto/admin-set-password.dto.js +11 -21
  28. package/dist/dto/admin-set-password.dto.js.map +1 -1
  29. package/dist/dto/admin-set-preferred-method.dto.d.ts +25 -0
  30. package/dist/dto/admin-set-preferred-method.dto.d.ts.map +1 -0
  31. package/dist/dto/admin-set-preferred-method.dto.js +50 -0
  32. package/dist/dto/admin-set-preferred-method.dto.js.map +1 -0
  33. package/dist/dto/admin-update-user-attributes.dto.d.ts +41 -0
  34. package/dist/dto/admin-update-user-attributes.dto.d.ts.map +1 -0
  35. package/dist/dto/{update-user-attributes-request.dto.js → admin-update-user-attributes.dto.js} +12 -17
  36. package/dist/dto/admin-update-user-attributes.dto.js.map +1 -0
  37. package/dist/dto/auth-challenge.dto.d.ts +2 -2
  38. package/dist/dto/auth-challenge.dto.d.ts.map +1 -1
  39. package/dist/dto/auth-challenge.dto.js +3 -3
  40. package/dist/dto/auth-challenge.dto.js.map +1 -1
  41. package/dist/dto/auth-response.dto.d.ts +1 -1
  42. package/dist/dto/auth-response.dto.d.ts.map +1 -1
  43. package/dist/dto/auth-response.dto.js +1 -1
  44. package/dist/dto/auth-response.dto.js.map +1 -1
  45. package/dist/dto/get-mfa-status.dto.d.ts +3 -32
  46. package/dist/dto/get-mfa-status.dto.d.ts.map +1 -1
  47. package/dist/dto/get-mfa-status.dto.js +4 -55
  48. package/dist/dto/get-mfa-status.dto.js.map +1 -1
  49. package/dist/dto/get-risk-assessment-history.dto.d.ts +3 -3
  50. package/dist/dto/get-risk-assessment-history.dto.d.ts.map +1 -1
  51. package/dist/dto/get-risk-assessment-history.dto.js +5 -5
  52. package/dist/dto/get-risk-assessment-history.dto.js.map +1 -1
  53. package/dist/dto/get-suspicious-activity.dto.d.ts +3 -3
  54. package/dist/dto/get-suspicious-activity.dto.d.ts.map +1 -1
  55. package/dist/dto/get-suspicious-activity.dto.js +5 -5
  56. package/dist/dto/get-suspicious-activity.dto.js.map +1 -1
  57. package/dist/dto/get-user-auth-history.dto.d.ts +4 -39
  58. package/dist/dto/get-user-auth-history.dto.d.ts.map +1 -1
  59. package/dist/dto/get-user-auth-history.dto.js +53 -51
  60. package/dist/dto/get-user-auth-history.dto.js.map +1 -1
  61. package/dist/dto/get-user-devices.dto.d.ts +5 -18
  62. package/dist/dto/get-user-devices.dto.d.ts.map +1 -1
  63. package/dist/dto/get-user-devices.dto.js +5 -39
  64. package/dist/dto/get-user-devices.dto.js.map +1 -1
  65. package/dist/dto/get-user-sessions-response.dto.d.ts +1 -1
  66. package/dist/dto/get-user-sessions-response.dto.js +1 -1
  67. package/dist/dto/get-user-sessions.dto.d.ts +1 -1
  68. package/dist/dto/get-user-sessions.dto.js +1 -1
  69. package/dist/dto/index.d.ts +9 -2
  70. package/dist/dto/index.d.ts.map +1 -1
  71. package/dist/dto/index.js +9 -2
  72. package/dist/dto/index.js.map +1 -1
  73. package/dist/dto/logout-all-response.dto.d.ts +1 -1
  74. package/dist/dto/logout-all-response.dto.js +1 -1
  75. package/dist/dto/logout-all.dto.d.ts +1 -18
  76. package/dist/dto/logout-all.dto.d.ts.map +1 -1
  77. package/dist/dto/logout-all.dto.js +1 -30
  78. package/dist/dto/logout-all.dto.js.map +1 -1
  79. package/dist/dto/logout-session.dto.d.ts +0 -5
  80. package/dist/dto/logout-session.dto.d.ts.map +1 -1
  81. package/dist/dto/logout-session.dto.js +0 -12
  82. package/dist/dto/logout-session.dto.js.map +1 -1
  83. package/dist/dto/logout.dto.d.ts +1 -18
  84. package/dist/dto/logout.dto.d.ts.map +1 -1
  85. package/dist/dto/logout.dto.js +1 -30
  86. package/dist/dto/logout.dto.js.map +1 -1
  87. package/dist/dto/remove-devices.dto.d.ts +4 -16
  88. package/dist/dto/remove-devices.dto.d.ts.map +1 -1
  89. package/dist/dto/remove-devices.dto.js +4 -26
  90. package/dist/dto/remove-devices.dto.js.map +1 -1
  91. package/dist/dto/set-mfa-exemption.dto.d.ts +8 -9
  92. package/dist/dto/set-mfa-exemption.dto.d.ts.map +1 -1
  93. package/dist/dto/set-mfa-exemption.dto.js +11 -13
  94. package/dist/dto/set-mfa-exemption.dto.js.map +1 -1
  95. package/dist/dto/set-must-change-password.dto.d.ts +3 -3
  96. package/dist/dto/set-must-change-password.dto.d.ts.map +1 -1
  97. package/dist/dto/set-must-change-password.dto.js +5 -5
  98. package/dist/dto/set-must-change-password.dto.js.map +1 -1
  99. package/dist/dto/set-preferred-method.dto.d.ts +4 -16
  100. package/dist/dto/set-preferred-method.dto.d.ts.map +1 -1
  101. package/dist/dto/set-preferred-method.dto.js +4 -26
  102. package/dist/dto/set-preferred-method.dto.js.map +1 -1
  103. package/dist/dto/setup-mfa.dto.d.ts +3 -18
  104. package/dist/dto/setup-mfa.dto.d.ts.map +1 -1
  105. package/dist/dto/setup-mfa.dto.js +3 -30
  106. package/dist/dto/setup-mfa.dto.js.map +1 -1
  107. package/dist/dto/social-auth.dto.d.ts +4 -34
  108. package/dist/dto/social-auth.dto.d.ts.map +1 -1
  109. package/dist/dto/social-auth.dto.js +10 -68
  110. package/dist/dto/social-auth.dto.js.map +1 -1
  111. package/dist/dto/update-user-attributes.dto.d.ts +26 -0
  112. package/dist/dto/update-user-attributes.dto.d.ts.map +1 -0
  113. package/dist/dto/update-user-attributes.dto.js +30 -0
  114. package/dist/dto/update-user-attributes.dto.js.map +1 -0
  115. package/dist/index.d.ts +5 -0
  116. package/dist/index.d.ts.map +1 -1
  117. package/dist/index.js +5 -0
  118. package/dist/index.js.map +1 -1
  119. package/dist/interfaces/hooks.interface.d.ts +2 -1
  120. package/dist/interfaces/hooks.interface.d.ts.map +1 -1
  121. package/dist/interfaces/mfa-provider.interface.d.ts +7 -8
  122. package/dist/interfaces/mfa-provider.interface.d.ts.map +1 -1
  123. package/dist/interfaces/provider.interface.d.ts +1 -1
  124. package/dist/interfaces/provider.interface.d.ts.map +1 -1
  125. package/dist/services/adaptive-mfa-decision.service.js +2 -2
  126. package/dist/services/adaptive-mfa-decision.service.js.map +1 -1
  127. package/dist/services/admin-auth.service.d.ts +307 -0
  128. package/dist/services/admin-auth.service.d.ts.map +1 -0
  129. package/dist/services/admin-auth.service.js +885 -0
  130. package/dist/services/admin-auth.service.js.map +1 -0
  131. package/dist/services/auth-audit.service.d.ts +16 -16
  132. package/dist/services/auth-audit.service.d.ts.map +1 -1
  133. package/dist/services/auth-audit.service.js +33 -33
  134. package/dist/services/auth-audit.service.js.map +1 -1
  135. package/dist/services/auth-challenge-helper.service.js +3 -3
  136. package/dist/services/auth-challenge-helper.service.js.map +1 -1
  137. package/dist/services/auth-service-internal-helpers.d.ts +13 -2
  138. package/dist/services/auth-service-internal-helpers.d.ts.map +1 -1
  139. package/dist/services/auth-service-internal-helpers.js +39 -1
  140. package/dist/services/auth-service-internal-helpers.js.map +1 -1
  141. package/dist/services/auth.service.d.ts +94 -438
  142. package/dist/services/auth.service.d.ts.map +1 -1
  143. package/dist/services/auth.service.js +388 -1255
  144. package/dist/services/auth.service.js.map +1 -1
  145. package/dist/services/mfa-base.service.d.ts +14 -4
  146. package/dist/services/mfa-base.service.d.ts.map +1 -1
  147. package/dist/services/mfa-base.service.js +22 -1
  148. package/dist/services/mfa-base.service.js.map +1 -1
  149. package/dist/services/mfa.service.d.ts +107 -33
  150. package/dist/services/mfa.service.d.ts.map +1 -1
  151. package/dist/services/mfa.service.js +456 -333
  152. package/dist/services/mfa.service.js.map +1 -1
  153. package/dist/services/social-auth.service.d.ts +7 -0
  154. package/dist/services/social-auth.service.d.ts.map +1 -1
  155. package/dist/services/social-auth.service.js +38 -26
  156. package/dist/services/social-auth.service.js.map +1 -1
  157. package/dist/services/user.service.d.ts +3 -3
  158. package/dist/services/user.service.d.ts.map +1 -1
  159. package/dist/services/user.service.js +7 -7
  160. package/dist/services/user.service.js.map +1 -1
  161. package/dist/utils/dto-validator.d.ts.map +1 -1
  162. package/dist/utils/dto-validator.js +50 -4
  163. package/dist/utils/dto-validator.js.map +1 -1
  164. package/dist/utils/setup/init-services.d.ts +2 -1
  165. package/dist/utils/setup/init-services.d.ts.map +1 -1
  166. package/dist/utils/setup/init-services.js +2 -0
  167. package/dist/utils/setup/init-services.js.map +1 -1
  168. package/package.json +1 -1
  169. package/dist/dto/change-password-request.dto.d.ts +0 -43
  170. package/dist/dto/change-password-request.dto.d.ts.map +0 -1
  171. package/dist/dto/change-password-request.dto.js.map +0 -1
  172. package/dist/dto/update-user-attributes-request.dto.d.ts +0 -44
  173. package/dist/dto/update-user-attributes-request.dto.d.ts.map +0 -1
  174. package/dist/dto/update-user-attributes-request.dto.js.map +0 -1
@@ -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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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * DTO for revoking a specific user session (admin-only)
3
+ *
4
+ * @example
5
+ * ```typescript
6
+ * const dto = new AdminRevokeSessionDTO();
7
+ * dto.sub = 'user-uuid-123';
8
+ * dto.sessionId = '456';
9
+ * await adminAuthService.revokeUserSession(dto);
10
+ * ```
11
+ */
12
+ export declare class AdminRevokeSessionDTO {
13
+ /**
14
+ * User sub (UUID) - must match the session owner
15
+ */
16
+ sub: string;
17
+ /**
18
+ * Session ID to revoke
19
+ */
20
+ sessionId: string;
21
+ }
22
+ //# sourceMappingURL=admin-revoke-session.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-revoke-session.dto.d.ts","sourceRoot":"","sources":["../../src/dto/admin-revoke-session.dto.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AACH,qBAAa,qBAAqB;IAChC;;OAEG;IAIH,GAAG,EAAG,MAAM,CAAC;IAEb;;OAEG;IAGH,SAAS,EAAG,MAAM,CAAC;CACpB"}
@@ -0,0 +1,48 @@
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.AdminRevokeSessionDTO = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const class_transformer_1 = require("class-transformer");
15
+ /**
16
+ * DTO for revoking a specific user session (admin-only)
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * const dto = new AdminRevokeSessionDTO();
21
+ * dto.sub = 'user-uuid-123';
22
+ * dto.sessionId = '456';
23
+ * await adminAuthService.revokeUserSession(dto);
24
+ * ```
25
+ */
26
+ class AdminRevokeSessionDTO {
27
+ /**
28
+ * User sub (UUID) - must match the session owner
29
+ */
30
+ sub;
31
+ /**
32
+ * Session ID to revoke
33
+ */
34
+ sessionId;
35
+ }
36
+ exports.AdminRevokeSessionDTO = AdminRevokeSessionDTO;
37
+ __decorate([
38
+ (0, class_validator_1.IsUUID)('4'),
39
+ (0, class_validator_1.IsNotEmpty)(),
40
+ (0, class_transformer_1.Transform)(({ value }) => value?.trim().toLowerCase()),
41
+ __metadata("design:type", String)
42
+ ], AdminRevokeSessionDTO.prototype, "sub", void 0);
43
+ __decorate([
44
+ (0, class_validator_1.IsString)(),
45
+ (0, class_validator_1.IsNotEmpty)(),
46
+ __metadata("design:type", String)
47
+ ], AdminRevokeSessionDTO.prototype, "sessionId", void 0);
48
+ //# sourceMappingURL=admin-revoke-session.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-revoke-session.dto.js","sourceRoot":"","sources":["../../src/dto/admin-revoke-session.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAA+D;AAC/D,yDAA8C;AAE9C;;;;;;;;;;GAUG;AACH,MAAa,qBAAqB;IAChC;;OAEG;IAIH,GAAG,CAAU;IAEb;;OAEG;IAGH,SAAS,CAAU;CACpB;AAfD,sDAeC;AARC;IAHC,IAAA,wBAAM,EAAC,GAAG,CAAC;IACX,IAAA,4BAAU,GAAE;IACZ,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;;kDACzC;AAOb;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;wDACM"}
@@ -2,18 +2,18 @@
2
2
  * Admin Set Password Request DTO
3
3
  *
4
4
  * Request DTO for admin-initiated password reset.
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
  * - Password policy enforced
11
11
  * - Session revocation configurable
12
12
  *
13
13
  * @example
14
14
  * ```typescript
15
15
  * await authService.adminSetPassword({
16
- * identifier: 'user@example.com',
16
+ * sub: 'a21b654c-2746-4168-acee-c175083a65cd',
17
17
  * newPassword: 'NewSecurePassword123!',
18
18
  * mustChangePassword: true,
19
19
  * revokeSessions: true
@@ -25,20 +25,18 @@
25
25
  */
26
26
  export declare class AdminSetPasswordDTO {
27
27
  /**
28
- * User identifier (email, username, phone, or sub/UUID)
28
+ * User sub (UUID)
29
29
  *
30
30
  * Validation:
31
- * - Must be a string
32
- * - Min 1 character
33
- * - Max 255 characters
31
+ * - Must be a valid UUID v4
34
32
  *
35
33
  * Sanitization:
36
34
  * - Trimmed
37
- * - Lowercased if email format detected
35
+ * - Lowercased for consistency
38
36
  *
39
- * @example "user@example.com" | "johndoe" | "+1234567890" | "a21b654c-2746-4168-acee-c175083a65cd"
37
+ * @example "a21b654c-2746-4168-acee-c175083a65cd"
40
38
  */
41
- identifier: string;
39
+ sub: string;
42
40
  /**
43
41
  * New password
44
42
  *
@@ -1 +1 @@
1
- {"version":3,"file":"admin-set-password.dto.d.ts","sourceRoot":"","sources":["../../src/dto/admin-set-password.dto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAKH;;GAEG;AACH,qBAAa,mBAAmB;IAC9B;;;;;;;;;;;;;OAaG;IAgBH,UAAU,EAAG,MAAM,CAAC;IAEpB;;;;;;;;;;;;OAYG;IAKH,WAAW,EAAG,MAAM,CAAC;IAErB;;;;;;OAMG;IAGH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;;;;OAMG;IAGH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,2BAA2B;IACtC;;;OAGG;IACH,OAAO,EAAG,OAAO,CAAC;IAElB;;OAEG;IACH,kBAAkB,EAAG,OAAO,CAAC;IAE7B;;OAEG;IACH,eAAe,EAAG,MAAM,CAAC;CAC1B"}
1
+ {"version":3,"file":"admin-set-password.dto.d.ts","sourceRoot":"","sources":["../../src/dto/admin-set-password.dto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAKH;;GAEG;AACH,qBAAa,mBAAmB;IAC9B;;;;;;;;;;;OAWG;IAQH,GAAG,EAAG,MAAM,CAAC;IAEb;;;;;;;;;;;;OAYG;IAKH,WAAW,EAAG,MAAM,CAAC;IAErB;;;;;;OAMG;IAGH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;;;;OAMG;IAGH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,2BAA2B;IACtC;;;OAGG;IACH,OAAO,EAAG,OAAO,CAAC;IAElB;;OAEG;IACH,kBAAkB,EAAG,OAAO,CAAC;IAE7B;;OAEG;IACH,eAAe,EAAG,MAAM,CAAC;CAC1B"}
@@ -3,18 +3,18 @@
3
3
  * Admin Set Password Request DTO
4
4
  *
5
5
  * Request DTO for admin-initiated password reset.
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
  * - Password policy enforced
12
12
  * - Session revocation configurable
13
13
  *
14
14
  * @example
15
15
  * ```typescript
16
16
  * await authService.adminSetPassword({
17
- * identifier: 'user@example.com',
17
+ * sub: 'a21b654c-2746-4168-acee-c175083a65cd',
18
18
  * newPassword: 'NewSecurePassword123!',
19
19
  * mustChangePassword: true,
20
20
  * revokeSessions: true
@@ -39,20 +39,18 @@ const class_transformer_1 = require("class-transformer");
39
39
  */
40
40
  class AdminSetPasswordDTO {
41
41
  /**
42
- * User identifier (email, username, phone, or sub/UUID)
42
+ * User sub (UUID)
43
43
  *
44
44
  * Validation:
45
- * - Must be a string
46
- * - Min 1 character
47
- * - Max 255 characters
45
+ * - Must be a valid UUID v4
48
46
  *
49
47
  * Sanitization:
50
48
  * - Trimmed
51
- * - Lowercased if email format detected
49
+ * - Lowercased for consistency
52
50
  *
53
- * @example "user@example.com" | "johndoe" | "+1234567890" | "a21b654c-2746-4168-acee-c175083a65cd"
51
+ * @example "a21b654c-2746-4168-acee-c175083a65cd"
54
52
  */
55
- identifier;
53
+ sub;
56
54
  /**
57
55
  * New password
58
56
  *
@@ -86,23 +84,15 @@ class AdminSetPasswordDTO {
86
84
  }
87
85
  exports.AdminSetPasswordDTO = AdminSetPasswordDTO;
88
86
  __decorate([
89
- (0, class_validator_1.IsString)({ message: 'Identifier must be a string' }),
90
- (0, class_validator_1.IsNotEmpty)({ message: 'Identifier is required' }),
91
- (0, class_validator_1.MinLength)(1, { message: 'Identifier is required' }),
92
- (0, class_validator_1.MaxLength)(255, { message: 'Identifier must not exceed 255 characters' }),
87
+ (0, class_validator_1.IsUUID)('4', { message: 'User sub must be a valid UUID v4 format' }),
93
88
  (0, class_transformer_1.Transform)(({ value }) => {
94
89
  if (typeof value === 'string') {
95
- const trimmed = value.trim();
96
- // If it contains @, treat as email and lowercase
97
- if (trimmed.includes('@')) {
98
- return trimmed.toLowerCase();
99
- }
100
- return trimmed;
90
+ return value.trim().toLowerCase();
101
91
  }
102
92
  return value;
103
93
  }),
104
94
  __metadata("design:type", String)
105
- ], AdminSetPasswordDTO.prototype, "identifier", void 0);
95
+ ], AdminSetPasswordDTO.prototype, "sub", void 0);
106
96
  __decorate([
107
97
  (0, class_validator_1.IsString)({ message: 'New password must be a string' }),
108
98
  (0, class_validator_1.IsNotEmpty)({ message: 'New password is required' }),
@@ -1 +1 @@
1
- {"version":3,"file":"admin-set-password.dto.js","sourceRoot":"","sources":["../../src/dto/admin-set-password.dto.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;;;;;;;;;;;AAEH,qDAAoG;AACpG,yDAA8C;AAE9C;;GAEG;AACH,MAAa,mBAAmB;IAC9B;;;;;;;;;;;;;OAaG;IAgBH,UAAU,CAAU;IAEpB;;;;;;;;;;;;OAYG;IAKH,WAAW,CAAU;IAErB;;;;;;OAMG;IAGH,kBAAkB,CAAW;IAE7B;;;;;;OAMG;IAGH,cAAc,CAAW;CAC1B;AAxED,kDAwEC;AA1CC;IAfC,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC;IACpD,IAAA,4BAAU,EAAC,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC;IACjD,IAAA,2BAAS,EAAC,CAAC,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC;IACnD,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,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7B,iDAAiD;YACjD,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC;YAC/B,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;;uDACkB;AAmBpB;IAJC,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC;IACtD,IAAA,4BAAU,EAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC;IACnD,IAAA,2BAAS,EAAC,CAAC,EAAE,EAAE,OAAO,EAAE,wCAAwC,EAAE,CAAC;IACnE,IAAA,2BAAS,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC;;wDAClD;AAWrB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,EAAC,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC;;+DAClC;AAW7B;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,EAAC,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC;;2DAClC;AAG3B;;;;;;;;;;;;;GAaG;AACH,MAAa,2BAA2B;IACtC;;;OAGG;IACH,OAAO,CAAW;IAElB;;OAEG;IACH,kBAAkB,CAAW;IAE7B;;OAEG;IACH,eAAe,CAAU;CAC1B;AAhBD,kEAgBC"}
1
+ {"version":3,"file":"admin-set-password.dto.js","sourceRoot":"","sources":["../../src/dto/admin-set-password.dto.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;;;;;;;;;;;AAEH,qDAA4G;AAC5G,yDAA8C;AAE9C;;GAEG;AACH,MAAa,mBAAmB;IAC9B;;;;;;;;;;;OAWG;IAQH,GAAG,CAAU;IAEb;;;;;;;;;;;;OAYG;IAKH,WAAW,CAAU;IAErB;;;;;;OAMG;IAGH,kBAAkB,CAAW;IAE7B;;;;;;OAMG;IAGH,cAAc,CAAW;CAC1B;AA9DD,kDA8DC;AA1CC;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;;gDACW;AAmBb;IAJC,IAAA,0BAAQ,EAAC,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC;IACtD,IAAA,4BAAU,EAAC,EAAE,OAAO,EAAE,0BAA0B,EAAE,CAAC;IACnD,IAAA,2BAAS,EAAC,CAAC,EAAE,EAAE,OAAO,EAAE,wCAAwC,EAAE,CAAC;IACnE,IAAA,2BAAS,EAAC,GAAG,EAAE,EAAE,OAAO,EAAE,yCAAyC,EAAE,CAAC;;wDAClD;AAWrB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,EAAC,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC;;+DAClC;AAW7B;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,EAAC,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC;;2DAClC;AAG3B;;;;;;;;;;;;;GAaG;AACH,MAAa,2BAA2B;IACtC;;;OAGG;IACH,OAAO,CAAW;IAElB;;OAEG;IACH,kBAAkB,CAAW;IAE7B;;OAEG;IACH,eAAe,CAAU;CAC1B;AAhBD,kEAgBC"}
@@ -0,0 +1,25 @@
1
+ import { SetPreferredMethodDTO, SetPreferredMethodResponseDTO } from './set-preferred-method.dto';
2
+ /**
3
+ * Admin DTO for setting preferred MFA method for a specific user
4
+ *
5
+ * Admin APIs must explicitly target a user via `sub`.
6
+ * This DTO mirrors {@link SetPreferredMethodDTO} but adds `sub`.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * const result = await mfaService.adminSetPreferredMethod({
11
+ * sub: 'a21b654c-2746-4168-acee-c175083a65cd',
12
+ * methodType: 'sms',
13
+ * });
14
+ * ```
15
+ */
16
+ export declare class AdminSetPreferredMethodDTO extends SetPreferredMethodDTO {
17
+ /**
18
+ * Target user's unique identifier (UUID v4)
19
+ *
20
+ * @example "a21b654c-2746-4168-acee-c175083a65cd"
21
+ */
22
+ sub: string;
23
+ }
24
+ export { SetPreferredMethodResponseDTO };
25
+ //# sourceMappingURL=admin-set-preferred-method.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-set-preferred-method.dto.d.ts","sourceRoot":"","sources":["../../src/dto/admin-set-preferred-method.dto.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAElG;;;;;;;;;;;;;GAaG;AACH,qBAAa,0BAA2B,SAAQ,qBAAqB;IACnE;;;;OAIG;IAQH,GAAG,EAAG,MAAM,CAAC;CACd;AAED,OAAO,EAAE,6BAA6B,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.SetPreferredMethodResponseDTO = exports.AdminSetPreferredMethodDTO = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const class_transformer_1 = require("class-transformer");
15
+ const set_preferred_method_dto_1 = require("./set-preferred-method.dto");
16
+ Object.defineProperty(exports, "SetPreferredMethodResponseDTO", { enumerable: true, get: function () { return set_preferred_method_dto_1.SetPreferredMethodResponseDTO; } });
17
+ /**
18
+ * Admin DTO for setting preferred MFA method for a specific user
19
+ *
20
+ * Admin APIs must explicitly target a user via `sub`.
21
+ * This DTO mirrors {@link SetPreferredMethodDTO} but adds `sub`.
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * const result = await mfaService.adminSetPreferredMethod({
26
+ * sub: 'a21b654c-2746-4168-acee-c175083a65cd',
27
+ * methodType: 'sms',
28
+ * });
29
+ * ```
30
+ */
31
+ class AdminSetPreferredMethodDTO extends set_preferred_method_dto_1.SetPreferredMethodDTO {
32
+ /**
33
+ * Target user's unique identifier (UUID v4)
34
+ *
35
+ * @example "a21b654c-2746-4168-acee-c175083a65cd"
36
+ */
37
+ sub;
38
+ }
39
+ exports.AdminSetPreferredMethodDTO = AdminSetPreferredMethodDTO;
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
+ ], AdminSetPreferredMethodDTO.prototype, "sub", void 0);
50
+ //# sourceMappingURL=admin-set-preferred-method.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-set-preferred-method.dto.js","sourceRoot":"","sources":["../../src/dto/admin-set-preferred-method.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAyC;AACzC,yDAA8C;AAC9C,yEAAkG;AAgCzF,8GAhCuB,wDAA6B,OAgCvB;AA9BtC;;;;;;;;;;;;;GAaG;AACH,MAAa,0BAA2B,SAAQ,gDAAqB;IACnE;;;;OAIG;IAQH,GAAG,CAAU;CACd;AAdD,gEAcC;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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Admin Update User Attributes DTO
3
+ *
4
+ * Request DTO for administrators to update a user's profile information.
5
+ *
6
+ * Security:
7
+ * - Requires target user sub (UUID)
8
+ * - All fields validated according to UserUpdateDTO rules
9
+ * - Uniqueness constraints enforced
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * const result = await adminAuthService.updateUserAttributes({
14
+ * sub: 'user-uuid',
15
+ * username: 'newusername',
16
+ * firstName: 'John',
17
+ * lastName: 'Doe',
18
+ * });
19
+ * ```
20
+ */
21
+ import { UserUpdateDTO } from './user-update.dto';
22
+ /**
23
+ * Request DTO for admin updating user attributes (includes sub)
24
+ */
25
+ export declare class AdminUpdateUserAttributesDTO extends UserUpdateDTO {
26
+ /**
27
+ * User's unique identifier (UUID v4)
28
+ *
29
+ * Validation:
30
+ * - Must be a valid UUID v4 format
31
+ * - Matches DB constraint: char(36) or uuid
32
+ *
33
+ * Sanitization:
34
+ * - Trimmed
35
+ * - Lowercased for consistency
36
+ *
37
+ * @example "a21b654c-2746-4168-acee-c175083a65cd"
38
+ */
39
+ sub: string;
40
+ }
41
+ //# sourceMappingURL=admin-update-user-attributes.dto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-update-user-attributes.dto.d.ts","sourceRoot":"","sources":["../../src/dto/admin-update-user-attributes.dto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD;;GAEG;AACH,qBAAa,4BAA6B,SAAQ,aAAa;IAC7D;;;;;;;;;;;;OAYG;IAQH,GAAG,EAAG,MAAM,CAAC;CACd"}
@@ -1,21 +1,21 @@
1
1
  "use strict";
2
2
  /**
3
- * Update User Attributes Request DTO
3
+ * Admin Update User Attributes DTO
4
4
  *
5
- * Request DTO for updating user profile information (includes user sub).
5
+ * Request DTO for administrators to update a user's profile information.
6
6
  *
7
7
  * Security:
8
- * - User sub validated (UUID)
8
+ * - Requires target user sub (UUID)
9
9
  * - All fields validated according to UserUpdateDTO rules
10
10
  * - Uniqueness constraints enforced
11
11
  *
12
12
  * @example
13
13
  * ```typescript
14
- * const result = await authService.updateUserAttributes({
14
+ * const result = await adminAuthService.updateUserAttributes({
15
15
  * sub: 'user-uuid',
16
16
  * username: 'newusername',
17
17
  * firstName: 'John',
18
- * lastName: 'Doe'
18
+ * lastName: 'Doe',
19
19
  * });
20
20
  * ```
21
21
  */
@@ -29,22 +29,19 @@ var __metadata = (this && this.__metadata) || function (k, v) {
29
29
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
30
30
  };
31
31
  Object.defineProperty(exports, "__esModule", { value: true });
32
- exports.UpdateUserAttributesRequestDTO = void 0;
32
+ exports.AdminUpdateUserAttributesDTO = void 0;
33
33
  const class_validator_1 = require("class-validator");
34
34
  const class_transformer_1 = require("class-transformer");
35
35
  const user_update_dto_1 = require("./user-update.dto");
36
36
  /**
37
- * Request DTO for updating user attributes (includes user sub)
37
+ * Request DTO for admin updating user attributes (includes sub)
38
38
  */
39
- class UpdateUserAttributesRequestDTO extends user_update_dto_1.UserUpdateDTO {
39
+ class AdminUpdateUserAttributesDTO extends user_update_dto_1.UserUpdateDTO {
40
40
  /**
41
41
  * User's unique identifier (UUID v4)
42
42
  *
43
- * Optional at controller level - filled from authenticated user's JWT.
44
- * Validated only when provided (service layer will ensure it's set).
45
- *
46
43
  * Validation:
47
- * - Must be a valid UUID v4 format when provided
44
+ * - Must be a valid UUID v4 format
48
45
  * - Matches DB constraint: char(36) or uuid
49
46
  *
50
47
  * Sanitization:
@@ -55,9 +52,8 @@ class UpdateUserAttributesRequestDTO extends user_update_dto_1.UserUpdateDTO {
55
52
  */
56
53
  sub;
57
54
  }
58
- exports.UpdateUserAttributesRequestDTO = UpdateUserAttributesRequestDTO;
55
+ exports.AdminUpdateUserAttributesDTO = AdminUpdateUserAttributesDTO;
59
56
  __decorate([
60
- (0, class_validator_1.ValidateIf)((o) => o.sub !== undefined && o.sub !== null && o.sub !== ''),
61
57
  (0, class_validator_1.IsUUID)('4', { message: 'User sub must be a valid UUID v4 format' }),
62
58
  (0, class_transformer_1.Transform)(({ value }) => {
63
59
  if (typeof value === 'string') {
@@ -65,7 +61,6 @@ __decorate([
65
61
  }
66
62
  return value;
67
63
  }),
68
- (0, class_validator_1.IsOptional)(),
69
64
  __metadata("design:type", String)
70
- ], UpdateUserAttributesRequestDTO.prototype, "sub", void 0);
71
- //# sourceMappingURL=update-user-attributes-request.dto.js.map
65
+ ], AdminUpdateUserAttributesDTO.prototype, "sub", void 0);
66
+ //# sourceMappingURL=admin-update-user-attributes.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin-update-user-attributes.dto.js","sourceRoot":"","sources":["../../src/dto/admin-update-user-attributes.dto.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;;;;;;;;;;;AAEH,qDAAyC;AACzC,yDAA8C;AAC9C,uDAAkD;AAElD;;GAEG;AACH,MAAa,4BAA6B,SAAQ,+BAAa;IAC7D;;;;;;;;;;;;OAYG;IAQH,GAAG,CAAU;CACd;AAtBD,oEAsBC;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;;yDACW"}
@@ -63,7 +63,7 @@ export declare enum AuthChallenge {
63
63
  * email: 'user@example.com',
64
64
  * codeDeliveryDestination: 'u***@example.com'
65
65
  * },
66
- * userSub: 'a21b654c-2746-4168-acee-c175083a65cd'
66
+ * sub: 'a21b654c-2746-4168-acee-c175083a65cd'
67
67
  * }
68
68
  * ```
69
69
  */
@@ -119,7 +119,7 @@ export declare class AuthChallengeResponseDTO {
119
119
  *
120
120
  * @example "a21b654c-2746-4168-acee-c175083a65cd"
121
121
  */
122
- userSub: string;
122
+ sub: string;
123
123
  }
124
124
  /**
125
125
  * Challenge Completion Request DTO
@@ -1 +1 @@
1
- {"version":3,"file":"auth-challenge.dto.d.ts","sourceRoot":"","sources":["../../src/dto/auth-challenge.dto.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;GAgBG;AACH,oBAAY,aAAa;IACvB;;;OAGG;IACH,YAAY,iBAAiB;IAE7B;;;OAGG;IACH,YAAY,iBAAiB;IAE7B;;;;OAIG;IACH,YAAY,iBAAiB;IAE7B;;;;OAIG;IACH,kBAAkB,uBAAuB;IAEzC;;;;OAIG;IACH,qBAAqB,0BAA0B;CAChD;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,wBAAwB;IACnC;;;;;OAKG;IAIH,aAAa,EAAG,aAAa,CAAC;IAE9B;;;;;;;;;OASG;IAQH,OAAO,EAAG,MAAM,CAAC;IAEjB;;;;;;;;;;;;;;;;;;;;;OAqBG;IAEH,mBAAmB,EAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE9C;;;;;;;;;OASG;IAQH,OAAO,EAAG,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,2BAA2B;IACtC;;;;;;;;;;;;OAYG;IAQH,OAAO,EAAG,MAAM,CAAC;IAEjB;;;;;OAKG;IAIH,aAAa,EAAG,aAAa,CAAC;IAE9B;;;;;;;;;;;;;;;OAeG;IAEH,kBAAkB,EAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9C"}
1
+ {"version":3,"file":"auth-challenge.dto.d.ts","sourceRoot":"","sources":["../../src/dto/auth-challenge.dto.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;GAgBG;AACH,oBAAY,aAAa;IACvB;;;OAGG;IACH,YAAY,iBAAiB;IAE7B;;;OAGG;IACH,YAAY,iBAAiB;IAE7B;;;;OAIG;IACH,YAAY,iBAAiB;IAE7B;;;;OAIG;IACH,kBAAkB,uBAAuB;IAEzC;;;;OAIG;IACH,qBAAqB,0BAA0B;CAChD;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,wBAAwB;IACnC;;;;;OAKG;IAIH,aAAa,EAAG,aAAa,CAAC;IAE9B;;;;;;;;;OASG;IAQH,OAAO,EAAG,MAAM,CAAC;IAEjB;;;;;;;;;;;;;;;;;;;;;OAqBG;IAEH,mBAAmB,EAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE9C;;;;;;;;;OASG;IAQH,GAAG,EAAG,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,2BAA2B;IACtC;;;;;;;;;;;;OAYG;IAQH,OAAO,EAAG,MAAM,CAAC;IAEjB;;;;;OAKG;IAIH,aAAa,EAAG,aAAa,CAAC;IAE9B;;;;;;;;;;;;;;;OAeG;IAEH,kBAAkB,EAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9C"}
@@ -78,7 +78,7 @@ var AuthChallenge;
78
78
  * email: 'user@example.com',
79
79
  * codeDeliveryDestination: 'u***@example.com'
80
80
  * },
81
- * userSub: 'a21b654c-2746-4168-acee-c175083a65cd'
81
+ * sub: 'a21b654c-2746-4168-acee-c175083a65cd'
82
82
  * }
83
83
  * ```
84
84
  */
@@ -134,7 +134,7 @@ class AuthChallengeResponseDTO {
134
134
  *
135
135
  * @example "a21b654c-2746-4168-acee-c175083a65cd"
136
136
  */
137
- userSub;
137
+ sub;
138
138
  }
139
139
  exports.AuthChallengeResponseDTO = AuthChallengeResponseDTO;
140
140
  __decorate([
@@ -166,7 +166,7 @@ __decorate([
166
166
  return value;
167
167
  }),
168
168
  __metadata("design:type", String)
169
- ], AuthChallengeResponseDTO.prototype, "userSub", void 0);
169
+ ], AuthChallengeResponseDTO.prototype, "sub", void 0);
170
170
  /**
171
171
  * Challenge Completion Request DTO
172
172
  *