@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.
- package/dist/dto/admin-get-user-auth-history.dto.d.ts +62 -0
- package/dist/dto/admin-get-user-auth-history.dto.d.ts.map +1 -0
- package/dist/dto/admin-get-user-auth-history.dto.js +87 -0
- package/dist/dto/admin-get-user-auth-history.dto.js.map +1 -0
- package/dist/dto/admin-logout-all.dto.d.ts +48 -0
- package/dist/dto/admin-logout-all.dto.d.ts.map +1 -0
- package/dist/dto/{change-password-request.dto.js → admin-logout-all.dto.js} +36 -21
- package/dist/dto/admin-logout-all.dto.js.map +1 -0
- package/dist/dto/admin-remove-devices.dto.d.ts +25 -0
- package/dist/dto/admin-remove-devices.dto.d.ts.map +1 -0
- package/dist/dto/admin-remove-devices.dto.js +50 -0
- package/dist/dto/admin-remove-devices.dto.js.map +1 -0
- package/dist/dto/admin-reset-password.dto.d.ts +24 -49
- package/dist/dto/admin-reset-password.dto.d.ts.map +1 -1
- package/dist/dto/admin-reset-password.dto.js +30 -82
- package/dist/dto/admin-reset-password.dto.js.map +1 -1
- package/dist/dto/admin-revoke-session.dto.d.ts +22 -0
- package/dist/dto/admin-revoke-session.dto.d.ts.map +1 -0
- package/dist/dto/admin-revoke-session.dto.js +48 -0
- package/dist/dto/admin-revoke-session.dto.js.map +1 -0
- package/dist/dto/admin-set-password.dto.d.ts +8 -10
- package/dist/dto/admin-set-password.dto.d.ts.map +1 -1
- package/dist/dto/admin-set-password.dto.js +11 -21
- package/dist/dto/admin-set-password.dto.js.map +1 -1
- package/dist/dto/admin-set-preferred-method.dto.d.ts +25 -0
- package/dist/dto/admin-set-preferred-method.dto.d.ts.map +1 -0
- package/dist/dto/admin-set-preferred-method.dto.js +50 -0
- package/dist/dto/admin-set-preferred-method.dto.js.map +1 -0
- package/dist/dto/admin-update-user-attributes.dto.d.ts +41 -0
- package/dist/dto/admin-update-user-attributes.dto.d.ts.map +1 -0
- package/dist/dto/{update-user-attributes-request.dto.js → admin-update-user-attributes.dto.js} +12 -17
- package/dist/dto/admin-update-user-attributes.dto.js.map +1 -0
- package/dist/dto/auth-challenge.dto.d.ts +2 -2
- package/dist/dto/auth-challenge.dto.d.ts.map +1 -1
- package/dist/dto/auth-challenge.dto.js +3 -3
- package/dist/dto/auth-challenge.dto.js.map +1 -1
- package/dist/dto/auth-response.dto.d.ts +1 -1
- package/dist/dto/auth-response.dto.d.ts.map +1 -1
- package/dist/dto/auth-response.dto.js +1 -1
- package/dist/dto/auth-response.dto.js.map +1 -1
- package/dist/dto/get-mfa-status.dto.d.ts +8 -4
- package/dist/dto/get-mfa-status.dto.d.ts.map +1 -1
- package/dist/dto/get-mfa-status.dto.js +8 -4
- package/dist/dto/get-mfa-status.dto.js.map +1 -1
- package/dist/dto/get-risk-assessment-history.dto.d.ts +3 -3
- package/dist/dto/get-risk-assessment-history.dto.d.ts.map +1 -1
- package/dist/dto/get-risk-assessment-history.dto.js +5 -5
- package/dist/dto/get-risk-assessment-history.dto.js.map +1 -1
- package/dist/dto/get-suspicious-activity.dto.d.ts +3 -3
- package/dist/dto/get-suspicious-activity.dto.d.ts.map +1 -1
- package/dist/dto/get-suspicious-activity.dto.js +5 -5
- package/dist/dto/get-suspicious-activity.dto.js.map +1 -1
- package/dist/dto/get-user-auth-history.dto.d.ts +4 -39
- package/dist/dto/get-user-auth-history.dto.d.ts.map +1 -1
- package/dist/dto/get-user-auth-history.dto.js +53 -51
- package/dist/dto/get-user-auth-history.dto.js.map +1 -1
- package/dist/dto/get-user-devices.dto.d.ts +5 -18
- package/dist/dto/get-user-devices.dto.d.ts.map +1 -1
- package/dist/dto/get-user-devices.dto.js +5 -39
- package/dist/dto/get-user-devices.dto.js.map +1 -1
- package/dist/dto/get-user-sessions-response.dto.d.ts +1 -1
- package/dist/dto/get-user-sessions-response.dto.js +1 -1
- package/dist/dto/get-user-sessions.dto.d.ts +1 -1
- package/dist/dto/get-user-sessions.dto.js +1 -1
- package/dist/dto/index.d.ts +8 -2
- package/dist/dto/index.d.ts.map +1 -1
- package/dist/dto/index.js +8 -2
- package/dist/dto/index.js.map +1 -1
- package/dist/dto/logout-all-response.dto.d.ts +1 -1
- package/dist/dto/logout-all-response.dto.js +1 -1
- package/dist/dto/logout-all.dto.d.ts +1 -18
- package/dist/dto/logout-all.dto.d.ts.map +1 -1
- package/dist/dto/logout-all.dto.js +1 -30
- package/dist/dto/logout-all.dto.js.map +1 -1
- package/dist/dto/logout-session.dto.d.ts +0 -5
- package/dist/dto/logout-session.dto.d.ts.map +1 -1
- package/dist/dto/logout-session.dto.js +0 -12
- package/dist/dto/logout-session.dto.js.map +1 -1
- package/dist/dto/logout.dto.d.ts +1 -18
- package/dist/dto/logout.dto.d.ts.map +1 -1
- package/dist/dto/logout.dto.js +1 -30
- package/dist/dto/logout.dto.js.map +1 -1
- package/dist/dto/remove-devices.dto.d.ts +4 -16
- package/dist/dto/remove-devices.dto.d.ts.map +1 -1
- package/dist/dto/remove-devices.dto.js +4 -26
- package/dist/dto/remove-devices.dto.js.map +1 -1
- package/dist/dto/set-mfa-exemption.dto.d.ts +4 -2
- package/dist/dto/set-mfa-exemption.dto.d.ts.map +1 -1
- package/dist/dto/set-mfa-exemption.dto.js +5 -3
- package/dist/dto/set-mfa-exemption.dto.js.map +1 -1
- package/dist/dto/set-must-change-password.dto.d.ts +3 -3
- package/dist/dto/set-must-change-password.dto.d.ts.map +1 -1
- package/dist/dto/set-must-change-password.dto.js +5 -5
- package/dist/dto/set-must-change-password.dto.js.map +1 -1
- package/dist/dto/set-preferred-method.dto.d.ts +4 -16
- package/dist/dto/set-preferred-method.dto.d.ts.map +1 -1
- package/dist/dto/set-preferred-method.dto.js +4 -26
- package/dist/dto/set-preferred-method.dto.js.map +1 -1
- package/dist/dto/setup-mfa.dto.d.ts +3 -18
- package/dist/dto/setup-mfa.dto.d.ts.map +1 -1
- package/dist/dto/setup-mfa.dto.js +3 -30
- package/dist/dto/setup-mfa.dto.js.map +1 -1
- package/dist/dto/social-auth.dto.d.ts +4 -34
- package/dist/dto/social-auth.dto.d.ts.map +1 -1
- package/dist/dto/social-auth.dto.js +10 -68
- package/dist/dto/social-auth.dto.js.map +1 -1
- package/dist/dto/update-user-attributes.dto.d.ts +26 -0
- package/dist/dto/update-user-attributes.dto.d.ts.map +1 -0
- package/dist/dto/update-user-attributes.dto.js +30 -0
- package/dist/dto/update-user-attributes.dto.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces/hooks.interface.d.ts +2 -1
- package/dist/interfaces/hooks.interface.d.ts.map +1 -1
- package/dist/interfaces/provider.interface.d.ts +1 -1
- package/dist/interfaces/provider.interface.d.ts.map +1 -1
- package/dist/services/adaptive-mfa-decision.service.js +2 -2
- package/dist/services/adaptive-mfa-decision.service.js.map +1 -1
- package/dist/services/admin-auth.service.d.ts +307 -0
- package/dist/services/admin-auth.service.d.ts.map +1 -0
- package/dist/services/admin-auth.service.js +885 -0
- package/dist/services/admin-auth.service.js.map +1 -0
- package/dist/services/auth-audit.service.d.ts +16 -16
- package/dist/services/auth-audit.service.d.ts.map +1 -1
- package/dist/services/auth-audit.service.js +33 -33
- package/dist/services/auth-audit.service.js.map +1 -1
- package/dist/services/auth-challenge-helper.service.js +3 -3
- package/dist/services/auth-challenge-helper.service.js.map +1 -1
- package/dist/services/auth-service-internal-helpers.d.ts +2 -2
- package/dist/services/auth-service-internal-helpers.d.ts.map +1 -1
- package/dist/services/auth-service-internal-helpers.js.map +1 -1
- package/dist/services/auth.service.d.ts +122 -446
- package/dist/services/auth.service.d.ts.map +1 -1
- package/dist/services/auth.service.js +424 -1274
- package/dist/services/auth.service.js.map +1 -1
- package/dist/services/mfa.service.d.ts +90 -12
- package/dist/services/mfa.service.d.ts.map +1 -1
- package/dist/services/mfa.service.js +395 -264
- package/dist/services/mfa.service.js.map +1 -1
- package/dist/services/password-reset.service.d.ts.map +1 -1
- package/dist/services/password-reset.service.js +80 -29
- package/dist/services/password-reset.service.js.map +1 -1
- package/dist/services/social-auth.service.d.ts +7 -0
- package/dist/services/social-auth.service.d.ts.map +1 -1
- package/dist/services/social-auth.service.js +38 -26
- package/dist/services/social-auth.service.js.map +1 -1
- package/dist/services/user.service.d.ts +3 -3
- package/dist/services/user.service.d.ts.map +1 -1
- package/dist/services/user.service.js +7 -7
- package/dist/services/user.service.js.map +1 -1
- package/dist/utils/dto-validator.d.ts.map +1 -1
- package/dist/utils/dto-validator.js +50 -4
- package/dist/utils/dto-validator.js.map +1 -1
- package/dist/utils/setup/init-services.d.ts +2 -1
- package/dist/utils/setup/init-services.d.ts.map +1 -1
- package/dist/utils/setup/init-services.js +2 -0
- package/dist/utils/setup/init-services.js.map +1 -1
- package/package.json +1 -1
- package/dist/dto/change-password-request.dto.d.ts +0 -43
- package/dist/dto/change-password-request.dto.d.ts.map +0 -1
- package/dist/dto/change-password-request.dto.js.map +0 -1
- package/dist/dto/update-user-attributes-request.dto.d.ts +0 -44
- package/dist/dto/update-user-attributes-request.dto.d.ts.map +0 -1
- 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
|
|
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
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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
|
|
51
|
+
* User sub (UUID)
|
|
52
52
|
*
|
|
53
53
|
* Validation:
|
|
54
|
-
* - Must be a
|
|
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
|
|
58
|
+
* - Lowercased for consistency
|
|
61
59
|
*
|
|
62
|
-
* @example "
|
|
60
|
+
* @example "a21b654c-2746-4168-acee-c175083a65cd"
|
|
63
61
|
*/
|
|
64
|
-
|
|
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.
|
|
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
|
-
|
|
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, "
|
|
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' }),
|
|
@@ -241,56 +231,48 @@ exports.AdminResetPasswordResponseDTO = AdminResetPasswordResponseDTO;
|
|
|
241
231
|
/**
|
|
242
232
|
* Confirm Admin Reset Password DTO
|
|
243
233
|
*
|
|
244
|
-
* User completes admin-initiated password reset with
|
|
245
|
-
*
|
|
234
|
+
* User completes admin-initiated password reset with a verification code.
|
|
235
|
+
*
|
|
236
|
+
* NOTE:
|
|
237
|
+
* - Link support is optional, but links carry the same verification `code` as a query parameter
|
|
238
|
+
* (e.g., `...?code=123456`) to keep consumer apps consistent (code-only).
|
|
246
239
|
*
|
|
247
240
|
* Security:
|
|
248
|
-
* -
|
|
249
|
-
* -
|
|
250
|
-
* - Code-based: Attempt tracking (max 3 attempts)
|
|
241
|
+
* - Code is required
|
|
242
|
+
* - Attempt tracking enforced (max attempts configured in password reset service)
|
|
251
243
|
* - Always revokes all sessions on completion
|
|
252
244
|
* - Always sets mustChangePassword flag
|
|
253
245
|
*
|
|
254
246
|
* @example
|
|
255
247
|
* ```typescript
|
|
256
|
-
* // With code (from email/SMS)
|
|
257
248
|
* await authService.confirmAdminResetPassword({
|
|
258
|
-
*
|
|
249
|
+
* sub: 'a21b654c-2746-4168-acee-c175083a65cd',
|
|
259
250
|
* code: '123456',
|
|
260
251
|
* newPassword: 'NewSecurePass123!'
|
|
261
252
|
* });
|
|
262
|
-
*
|
|
263
|
-
* // With token (from link)
|
|
264
|
-
* await authService.confirmAdminResetPassword({
|
|
265
|
-
* identifier: 'user@example.com',
|
|
266
|
-
* token: '64-char-hex-token-from-link',
|
|
267
|
-
* newPassword: 'NewSecurePass123!'
|
|
268
|
-
* });
|
|
269
253
|
* ```
|
|
270
254
|
*/
|
|
271
255
|
class ConfirmAdminResetPasswordDTO {
|
|
272
256
|
/**
|
|
273
|
-
* User
|
|
257
|
+
* User sub (UUID)
|
|
274
258
|
*
|
|
275
259
|
* Validation:
|
|
276
|
-
* - Must be a
|
|
277
|
-
* - Min 1 character
|
|
278
|
-
* - Max 255 characters
|
|
260
|
+
* - Must be a valid UUID v4
|
|
279
261
|
*
|
|
280
262
|
* Sanitization:
|
|
281
263
|
* - Trimmed
|
|
282
|
-
* - Lowercased
|
|
264
|
+
* - Lowercased for consistency
|
|
283
265
|
*
|
|
284
|
-
* @example "
|
|
266
|
+
* @example "a21b654c-2746-4168-acee-c175083a65cd"
|
|
285
267
|
*/
|
|
286
|
-
|
|
268
|
+
sub;
|
|
287
269
|
/**
|
|
288
270
|
* Verification code from email/SMS (6-10 digits)
|
|
289
271
|
*
|
|
290
272
|
* Validation:
|
|
291
273
|
* - Must be string
|
|
292
274
|
* - Length 6-10 characters
|
|
293
|
-
* -
|
|
275
|
+
* - Required
|
|
294
276
|
*
|
|
295
277
|
* Sanitization:
|
|
296
278
|
* - Trimmed
|
|
@@ -300,21 +282,6 @@ class ConfirmAdminResetPasswordDTO {
|
|
|
300
282
|
* @example "123456"
|
|
301
283
|
*/
|
|
302
284
|
code;
|
|
303
|
-
/**
|
|
304
|
-
* Verification token from link (64-char hex)
|
|
305
|
-
*
|
|
306
|
-
* Validation:
|
|
307
|
-
* - Must be string
|
|
308
|
-
* - Optional (token OR code required)
|
|
309
|
-
*
|
|
310
|
-
* Sanitization:
|
|
311
|
-
* - Trimmed
|
|
312
|
-
*
|
|
313
|
-
* WHY: Long token from link, single-use, no attempt tracking needed
|
|
314
|
-
*
|
|
315
|
-
* @example "a1b2c3d4..."
|
|
316
|
-
*/
|
|
317
|
-
token;
|
|
318
285
|
/**
|
|
319
286
|
* New password
|
|
320
287
|
*
|
|
@@ -334,26 +301,18 @@ class ConfirmAdminResetPasswordDTO {
|
|
|
334
301
|
}
|
|
335
302
|
exports.ConfirmAdminResetPasswordDTO = ConfirmAdminResetPasswordDTO;
|
|
336
303
|
__decorate([
|
|
337
|
-
(0, class_validator_1.
|
|
338
|
-
(0, class_validator_1.IsNotEmpty)({ message: 'Identifier is required' }),
|
|
339
|
-
(0, class_validator_1.MinLength)(1, { message: 'Identifier is required' }),
|
|
340
|
-
(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' }),
|
|
341
305
|
(0, class_transformer_1.Transform)(({ value }) => {
|
|
342
306
|
if (typeof value === 'string') {
|
|
343
|
-
|
|
344
|
-
// If it contains @, treat as email and lowercase
|
|
345
|
-
if (trimmed.includes('@')) {
|
|
346
|
-
return trimmed.toLowerCase();
|
|
347
|
-
}
|
|
348
|
-
return trimmed;
|
|
307
|
+
return value.trim().toLowerCase();
|
|
349
308
|
}
|
|
350
309
|
return value;
|
|
351
310
|
}),
|
|
352
311
|
__metadata("design:type", String)
|
|
353
|
-
], ConfirmAdminResetPasswordDTO.prototype, "
|
|
312
|
+
], ConfirmAdminResetPasswordDTO.prototype, "sub", void 0);
|
|
354
313
|
__decorate([
|
|
355
|
-
(0, class_validator_1.IsOptional)(),
|
|
356
314
|
(0, class_validator_1.IsString)({ message: 'Code must be a string' }),
|
|
315
|
+
(0, class_validator_1.IsNotEmpty)({ message: 'Code is required' }),
|
|
357
316
|
(0, class_validator_1.Length)(6, 10, { message: 'Code must be between 6 and 10 characters' }),
|
|
358
317
|
(0, class_transformer_1.Transform)(({ value }) => {
|
|
359
318
|
if (typeof value === 'string') {
|
|
@@ -363,17 +322,6 @@ __decorate([
|
|
|
363
322
|
}),
|
|
364
323
|
__metadata("design:type", String)
|
|
365
324
|
], ConfirmAdminResetPasswordDTO.prototype, "code", void 0);
|
|
366
|
-
__decorate([
|
|
367
|
-
(0, class_validator_1.IsOptional)(),
|
|
368
|
-
(0, class_validator_1.IsString)({ message: 'Token must be a string' }),
|
|
369
|
-
(0, class_transformer_1.Transform)(({ value }) => {
|
|
370
|
-
if (typeof value === 'string') {
|
|
371
|
-
return value.trim();
|
|
372
|
-
}
|
|
373
|
-
return value;
|
|
374
|
-
}),
|
|
375
|
-
__metadata("design:type", String)
|
|
376
|
-
], ConfirmAdminResetPasswordDTO.prototype, "token", void 0);
|
|
377
325
|
__decorate([
|
|
378
326
|
(0, class_validator_1.IsString)({ message: 'New password must be a string' }),
|
|
379
327
|
(0, class_validator_1.IsNotEmpty)({ message: 'New password is required' }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin-reset-password.dto.js","sourceRoot":"","sources":["../../src/dto/admin-reset-password.dto.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;;;;;;;;;;;;AAEH,
|
|
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
|
|
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
|
|
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
|
-
*
|
|
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
|
|
28
|
+
* User sub (UUID)
|
|
29
29
|
*
|
|
30
30
|
* Validation:
|
|
31
|
-
* - Must be a
|
|
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
|
|
35
|
+
* - Lowercased for consistency
|
|
38
36
|
*
|
|
39
|
-
* @example "
|
|
37
|
+
* @example "a21b654c-2746-4168-acee-c175083a65cd"
|
|
40
38
|
*/
|
|
41
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
-
*
|
|
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
|
|
42
|
+
* User sub (UUID)
|
|
43
43
|
*
|
|
44
44
|
* Validation:
|
|
45
|
-
* - Must be a
|
|
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
|
|
49
|
+
* - Lowercased for consistency
|
|
52
50
|
*
|
|
53
|
-
* @example "
|
|
51
|
+
* @example "a21b654c-2746-4168-acee-c175083a65cd"
|
|
54
52
|
*/
|
|
55
|
-
|
|
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.
|
|
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
|
-
|
|
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, "
|
|
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,
|
|
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"}
|