@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.
- package/dist/dto/admin-get-mfa-status.dto.d.ts +20 -0
- package/dist/dto/admin-get-mfa-status.dto.d.ts.map +1 -0
- package/dist/dto/{change-password-request.dto.js → admin-get-mfa-status.dto.js} +22 -32
- package/dist/dto/admin-get-mfa-status.dto.js.map +1 -0
- 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/admin-logout-all.dto.js +85 -0
- 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 +15 -19
- package/dist/dto/admin-reset-password.dto.d.ts.map +1 -1
- package/dist/dto/admin-reset-password.dto.js +21 -41
- 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 +3 -32
- package/dist/dto/get-mfa-status.dto.d.ts.map +1 -1
- package/dist/dto/get-mfa-status.dto.js +4 -55
- 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 +9 -2
- package/dist/dto/index.d.ts.map +1 -1
- package/dist/dto/index.js +9 -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 +8 -9
- package/dist/dto/set-mfa-exemption.dto.d.ts.map +1 -1
- package/dist/dto/set-mfa-exemption.dto.js +11 -13
- 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/mfa-provider.interface.d.ts +7 -8
- package/dist/interfaces/mfa-provider.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 +13 -2
- package/dist/services/auth-service-internal-helpers.d.ts.map +1 -1
- package/dist/services/auth-service-internal-helpers.js +39 -1
- package/dist/services/auth-service-internal-helpers.js.map +1 -1
- package/dist/services/auth.service.d.ts +94 -438
- package/dist/services/auth.service.d.ts.map +1 -1
- package/dist/services/auth.service.js +388 -1255
- package/dist/services/auth.service.js.map +1 -1
- package/dist/services/mfa-base.service.d.ts +14 -4
- package/dist/services/mfa-base.service.d.ts.map +1 -1
- package/dist/services/mfa-base.service.js +22 -1
- package/dist/services/mfa-base.service.js.map +1 -1
- package/dist/services/mfa.service.d.ts +107 -33
- package/dist/services/mfa.service.d.ts.map +1 -1
- package/dist/services/mfa.service.js +456 -333
- package/dist/services/mfa.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' }),
|
|
@@ -256,7 +246,7 @@ exports.AdminResetPasswordResponseDTO = AdminResetPasswordResponseDTO;
|
|
|
256
246
|
* @example
|
|
257
247
|
* ```typescript
|
|
258
248
|
* await authService.confirmAdminResetPassword({
|
|
259
|
-
*
|
|
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
|
|
257
|
+
* User sub (UUID)
|
|
268
258
|
*
|
|
269
259
|
* Validation:
|
|
270
|
-
* - Must be a
|
|
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
|
|
264
|
+
* - Lowercased for consistency
|
|
277
265
|
*
|
|
278
|
-
* @example "
|
|
266
|
+
* @example "a21b654c-2746-4168-acee-c175083a65cd"
|
|
279
267
|
*/
|
|
280
|
-
|
|
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.
|
|
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
|
-
|
|
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, "
|
|
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":";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"}
|
package/dist/dto/{update-user-attributes-request.dto.js → admin-update-user-attributes.dto.js}
RENAMED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* Update User Attributes
|
|
3
|
+
* Admin Update User Attributes DTO
|
|
4
4
|
*
|
|
5
|
-
* Request DTO for
|
|
5
|
+
* Request DTO for administrators to update a user's profile information.
|
|
6
6
|
*
|
|
7
7
|
* Security:
|
|
8
|
-
* -
|
|
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
|
|
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.
|
|
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
|
|
37
|
+
* Request DTO for admin updating user attributes (includes sub)
|
|
38
38
|
*/
|
|
39
|
-
class
|
|
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
|
|
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.
|
|
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
|
-
],
|
|
71
|
-
//# sourceMappingURL=update-user-attributes
|
|
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
|
-
*
|
|
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
|
-
|
|
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,
|
|
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
|
-
*
|
|
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
|
-
|
|
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, "
|
|
169
|
+
], AuthChallengeResponseDTO.prototype, "sub", void 0);
|
|
170
170
|
/**
|
|
171
171
|
* Challenge Completion Request DTO
|
|
172
172
|
*
|