@nauth-toolkit/core 0.1.58 → 0.1.60
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/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +22 -0
- package/dist/bootstrap.js.map +1 -1
- package/dist/dto/admin-reset-password.dto.d.ts +277 -0
- package/dist/dto/admin-reset-password.dto.d.ts.map +1 -0
- package/dist/dto/admin-reset-password.dto.js +402 -0
- package/dist/dto/admin-reset-password.dto.js.map +1 -0
- package/dist/dto/index.d.ts +1 -0
- package/dist/dto/index.d.ts.map +1 -1
- package/dist/dto/index.js +1 -0
- package/dist/dto/index.js.map +1 -1
- package/dist/entities/verification-token.entity.d.ts +3 -2
- package/dist/entities/verification-token.entity.d.ts.map +1 -1
- package/dist/entities/verification-token.entity.js +2 -1
- package/dist/entities/verification-token.entity.js.map +1 -1
- package/dist/enums/auth-audit-event-type.enum.d.ts +12 -0
- package/dist/enums/auth-audit-event-type.enum.d.ts.map +1 -1
- package/dist/enums/auth-audit-event-type.enum.js +12 -0
- package/dist/enums/auth-audit-event-type.enum.js.map +1 -1
- package/dist/interfaces/config.interface.d.ts +25 -0
- package/dist/interfaces/config.interface.d.ts.map +1 -1
- package/dist/interfaces/provider.interface.d.ts +10 -0
- package/dist/interfaces/provider.interface.d.ts.map +1 -1
- package/dist/interfaces/template.interface.d.ts +1 -0
- package/dist/interfaces/template.interface.d.ts.map +1 -1
- package/dist/interfaces/template.interface.js +1 -0
- package/dist/interfaces/template.interface.js.map +1 -1
- package/dist/services/auth.service.d.ts +79 -0
- package/dist/services/auth.service.d.ts.map +1 -1
- package/dist/services/auth.service.js +219 -0
- package/dist/services/auth.service.js.map +1 -1
- package/dist/services/password-reset.service.d.ts +54 -6
- package/dist/services/password-reset.service.d.ts.map +1 -1
- package/dist/services/password-reset.service.js +191 -19
- package/dist/services/password-reset.service.js.map +1 -1
- package/dist/services/password.service.d.ts.map +1 -1
- package/dist/services/password.service.js +5 -0
- package/dist/services/password.service.js.map +1 -1
- package/dist/templates/html-template.engine.d.ts.map +1 -1
- package/dist/templates/html-template.engine.js +62 -0
- package/dist/templates/html-template.engine.js.map +1 -1
- package/dist/validators/template.validator.d.ts.map +1 -1
- package/dist/validators/template.validator.js +1 -0
- package/dist/validators/template.validator.js.map +1 -1
- package/package.json +1 -1
package/dist/bootstrap.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,OAAO,EAAE,YAAY,EAA+B,MAAM,uBAAuB,CAAC;AASlF,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAKtD,OAAO,EAAgB,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE1E,OAAO,EAAkB,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjF,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAOxD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,0BAA0B;IAC1B,MAAM,EAAE,WAAW,CAAC;IAEpB,yBAAyB;IACzB,UAAU,EAAE,UAAU,CAAC;IAEvB;;;OAGG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa,CAAC,WAAW,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,CACrE,SAAQ,IAAI,CAAC,aAAa,EAAE,kBAAkB,GAAG,4BAA4B,CAAC,EAAE,oBAAoB;IACpG,0CAA0C;IAC1C,UAAU,EAAE;QACV,6CAA6C;QAC7C,UAAU,EAAE,WAAW,CAAC;QACxB,yBAAyB;QACzB,IAAI,EAAE,WAAW,CAAC;QAClB,sBAAsB;QACtB,IAAI,EAAE,WAAW,CAAC;QAClB,4CAA4C;QAC5C,aAAa,EAAE,WAAW,CAAC;KAC5B,CAAC;IAEF,oBAAoB;IACpB,OAAO,EAAE;QACP,2CAA2C;QAC3C,MAAM,EAAE,MAAM,OAAO,CAAC;QACtB,yDAAyD;QACzD,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,OAAO,CAAA;SAAE,KAAK,OAAO,CAAC;QACvD,qCAAqC;QACrC,YAAY,EAAE,MAAM,OAAO,CAAC;QAC5B,mCAAmC;QACnC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC;QACrD,qCAAqC;QACrC,cAAc,EAAE,MAAM,KAAK,GAAG,SAAS,CAAC;QACxC,6BAA6B;QAC7B,iBAAiB,EAAE,MAAM,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;QACrD,sBAAsB;QACtB,aAAa,EAAE,MAAM,UAAU,GAAG,SAAS,CAAC;KAC7C,CAAC;IAEF,6BAA6B;IAC7B,OAAO,EAAE,YAAY,CAAC;IAEtB,oBAAoB;IACpB,MAAM,EAAE,WAAW,CAAC;IAEpB,sBAAsB;IACtB,MAAM,EAAE,WAAW,CAAC;IAEpB,gCAAgC;IAChC,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAMD;;;;GAIG;AACH,qBAAa,KAAK;IAChB;;;;;;;;;;;;;;OAcG;WACU,MAAM,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGnD,OAAO,EAAE,YAAY,EAA+B,MAAM,uBAAuB,CAAC;AASlF,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAKtD,OAAO,EAAgB,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE1E,OAAO,EAAkB,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAGjF,OAAO,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAOxD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,0BAA0B;IAC1B,MAAM,EAAE,WAAW,CAAC;IAEpB,yBAAyB;IACzB,UAAU,EAAE,UAAU,CAAC;IAEvB;;;OAGG;IACH,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa,CAAC,WAAW,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,CACrE,SAAQ,IAAI,CAAC,aAAa,EAAE,kBAAkB,GAAG,4BAA4B,CAAC,EAAE,oBAAoB;IACpG,0CAA0C;IAC1C,UAAU,EAAE;QACV,6CAA6C;QAC7C,UAAU,EAAE,WAAW,CAAC;QACxB,yBAAyB;QACzB,IAAI,EAAE,WAAW,CAAC;QAClB,sBAAsB;QACtB,IAAI,EAAE,WAAW,CAAC;QAClB,4CAA4C;QAC5C,aAAa,EAAE,WAAW,CAAC;KAC5B,CAAC;IAEF,oBAAoB;IACpB,OAAO,EAAE;QACP,2CAA2C;QAC3C,MAAM,EAAE,MAAM,OAAO,CAAC;QACtB,yDAAyD;QACzD,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,OAAO,CAAA;SAAE,KAAK,OAAO,CAAC;QACvD,qCAAqC;QACrC,YAAY,EAAE,MAAM,OAAO,CAAC;QAC5B,mCAAmC;QACnC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC;QACrD,qCAAqC;QACrC,cAAc,EAAE,MAAM,KAAK,GAAG,SAAS,CAAC;QACxC,6BAA6B;QAC7B,iBAAiB,EAAE,MAAM,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;QACrD,sBAAsB;QACtB,aAAa,EAAE,MAAM,UAAU,GAAG,SAAS,CAAC;KAC7C,CAAC;IAEF,6BAA6B;IAC7B,OAAO,EAAE,YAAY,CAAC;IAEtB,oBAAoB;IACpB,MAAM,EAAE,WAAW,CAAC;IAEpB,sBAAsB;IACtB,MAAM,EAAE,WAAW,CAAC;IAEpB,gCAAgC;IAChC,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAMD;;;;GAIG;AACH,qBAAa,KAAK;IAChB;;;;;;;;;;;;;;OAcG;WACU,MAAM,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;CAmPnE"}
|
package/dist/bootstrap.js
CHANGED
|
@@ -81,21 +81,30 @@ class NAuth {
|
|
|
81
81
|
// ========================================================================
|
|
82
82
|
// 0. Run database migrations (adapter-owned, auto-run, no consumer burden)
|
|
83
83
|
// ========================================================================
|
|
84
|
+
logger.debug('[PERF] Starting database migrations...');
|
|
84
85
|
await (0, run_nauth_migrations_1.runNAuthMigrationsOnStartup)(config, dataSource, logger);
|
|
86
|
+
logger.debug('[PERF] Database migrations completed');
|
|
85
87
|
// ========================================================================
|
|
86
88
|
// 1. Initialize Repositories & Storage
|
|
87
89
|
// ========================================================================
|
|
90
|
+
logger.debug('[PERF] Discovering repositories...');
|
|
88
91
|
const repos = (0, get_repositories_1.getRepositories)(dataSource);
|
|
92
|
+
logger.debug('[PERF] Repositories discovered');
|
|
93
|
+
logger.debug('[PERF] Initializing storage...');
|
|
89
94
|
const storage = await (0, init_storage_1.initStorage)(config, repos.rateLimitRepository, repos.storageLockRepository, logger);
|
|
95
|
+
logger.debug('[PERF] Storage initialized');
|
|
90
96
|
// ========================================================================
|
|
91
97
|
// 2. Initialize Services
|
|
92
98
|
// ========================================================================
|
|
99
|
+
logger.debug('[PERF] Initializing services...');
|
|
93
100
|
const emailProvider = config.emailProvider;
|
|
94
101
|
const smsProvider = config.smsProvider;
|
|
95
102
|
const services = (0, init_services_1.initServices)(config, repos, storage, logger, emailProvider, smsProvider);
|
|
103
|
+
logger.debug('[PERF] Services initialized');
|
|
96
104
|
// ========================================================================
|
|
97
105
|
// 3. Initialize Auth Flow State Machine
|
|
98
106
|
// ========================================================================
|
|
107
|
+
logger.debug('[PERF] Initializing auth flow state machine...');
|
|
99
108
|
const contextBuilder = new internal_1.AuthFlowContextBuilder(services.trustedDeviceService, services.adaptiveMFADecisionService, services.clientInfoService, logger);
|
|
100
109
|
const stateMachine = new internal_1.AuthFlowStateMachineService(contextBuilder, logger);
|
|
101
110
|
if (services.authChallengeHelperService) {
|
|
@@ -105,17 +114,25 @@ class NAuth {
|
|
|
105
114
|
else {
|
|
106
115
|
throw new nauth_exception_1.NAuthException(error_codes_enum_1.AuthErrorCode.INTERNAL_ERROR, 'AuthChallengeHelperService not initialized.');
|
|
107
116
|
}
|
|
117
|
+
logger.debug('[PERF] Auth flow state machine initialized');
|
|
108
118
|
// ========================================================================
|
|
109
119
|
// 4. Register MFA & Social Providers
|
|
110
120
|
// ========================================================================
|
|
121
|
+
logger.debug('[PERF] Registering providers...');
|
|
111
122
|
const socialAuthStateStore = new social_auth_state_store_service_1.SocialAuthStateStore(storage, logger);
|
|
112
123
|
if (config.mfa?.enabled && services.mfaService) {
|
|
124
|
+
logger.debug('[PERF] Registering MFA providers...');
|
|
113
125
|
await (0, register_mfa_1.registerMFAProviders)(config, services.mfaService, repos.mfaDeviceRepository, repos.userRepository, logger, services.passwordService, services.emailVerificationService, services.phoneVerificationService, services.challengeService, services.auditService, services.clientInfoService);
|
|
126
|
+
logger.debug('[PERF] MFA providers registered');
|
|
114
127
|
}
|
|
128
|
+
logger.debug('[PERF] Initializing social auth...');
|
|
115
129
|
const socialProviders = await (0, init_social_1.initSocialAuth)(config, services.socialProviderRegistry, services.authService, services.socialAuthService, services.jwtService, services.sessionService, services.authChallengeHelperService, services.clientInfoService, logger, socialAuthStateStore, repos.userRepository, services.phoneVerificationService, services.auditService, services.trustedDeviceService, repos.socialProviderSecretRepository, services.hookRegistry);
|
|
130
|
+
logger.debug('[PERF] Social auth initialized');
|
|
131
|
+
logger.debug('[PERF] Providers registration completed');
|
|
116
132
|
// ========================================================================
|
|
117
133
|
// 5. Create Handlers
|
|
118
134
|
// ========================================================================
|
|
135
|
+
logger.debug('[PERF] Creating handlers...');
|
|
119
136
|
const clientInfoHandler = new client_info_handler_1.ClientInfoHandler(services.clientInfoService, services.geoLocationService, logger);
|
|
120
137
|
const authHandler = new auth_handler_1.AuthHandler(services.jwtService, services.sessionService, services.authService, config, logger);
|
|
121
138
|
const tokenDeliveryHandler = new token_delivery_handler_1.TokenDeliveryHandler(config, logger);
|
|
@@ -124,9 +141,11 @@ class NAuth {
|
|
|
124
141
|
? new csrf_service_1.CsrfService(config)
|
|
125
142
|
: undefined;
|
|
126
143
|
const csrfHandler = csrfService ? new csrf_handler_1.CsrfHandler(csrfService, config, logger) : null;
|
|
144
|
+
logger.debug('[PERF] Handlers created');
|
|
127
145
|
// ========================================================================
|
|
128
146
|
// 6. Register Middleware with Adapter
|
|
129
147
|
// ========================================================================
|
|
148
|
+
logger.debug('[PERF] Registering middleware with adapter...');
|
|
130
149
|
const middleware = {
|
|
131
150
|
// ClientInfo MUST be first - initializes context
|
|
132
151
|
clientInfo: adapter.registerMiddleware('clientInfo', clientInfoHandler.handle.bind(clientInfoHandler), {
|
|
@@ -197,12 +216,15 @@ class NAuth {
|
|
|
197
216
|
getCurrentSession: () => context_storage_1.ContextStorage.get('CURRENT_SESSION'),
|
|
198
217
|
getClientInfo: () => context_storage_1.ContextStorage.get('CLIENT_INFO'),
|
|
199
218
|
};
|
|
219
|
+
logger.debug('[PERF] Middleware registered with adapter');
|
|
200
220
|
// ========================================================================
|
|
201
221
|
// 8. Build and Return Instance
|
|
202
222
|
// ========================================================================
|
|
223
|
+
logger.debug('[PERF] Building NAuth instance...');
|
|
203
224
|
// Exclude internal services from public API
|
|
204
225
|
const { challengeService, authChallengeHelperService, ...publicServices } = services;
|
|
205
226
|
logger.log(`NAuth initialized successfully with ${adapter.name}`);
|
|
227
|
+
logger.debug('[PERF] NAuth initialization completed');
|
|
206
228
|
return {
|
|
207
229
|
...publicServices,
|
|
208
230
|
...socialProviders,
|
package/dist/bootstrap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;;;AAIH,uDAAmD;AACnD,kEAA8D;AAC9D,+DAAyD;AAEzD,gEAA4D;AAC5D,6DAAyD;AAEzD,WAAW;AACX,wEAAmE;AACnE,0DAAsD;AACtD,8EAAyE;AACzE,0DAAsD;AACtD,0DAAsD;AAEtD,gBAAgB;AAChB,qEAAiE;AACjE,6DAAyD;AACzD,+DAA0E;AAC1E,6DAAkE;AAClE,2DAAiF;AACjF,6EAAiF;AACjF,yCAAiF;AAGjF,gGAAkF;AA4ElF,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E;;;;GAIG;AACH,MAAa,KAAK;IAChB;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAqB;QACvC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QACvC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,gCAAc,EAAE,CAAC;QAExD,MAAM,MAAM,GAAG,IAAI,0BAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC9C,MAAM,CAAC,GAAG,CAAC,2BAA2B,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC;QAEzD,2EAA2E;QAC3E,2EAA2E;QAC3E,2EAA2E;QAC3E,MAAM,IAAA,kDAA2B,EAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../src/bootstrap.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Admin Reset Password Request DTO
|
|
3
|
+
*
|
|
4
|
+
* Request DTO for admin-initiated password reset workflow.
|
|
5
|
+
* Allows resetting a user's password by identifier (email, username, phone, or sub).
|
|
6
|
+
*
|
|
7
|
+
* Security:
|
|
8
|
+
* - Admin-only operation (should be protected by admin guard)
|
|
9
|
+
* - User identifier validated
|
|
10
|
+
* - Code + optional link delivery (like email verification)
|
|
11
|
+
* - Configurable expiry (default: 1 hour)
|
|
12
|
+
* - Optional immediate session revocation
|
|
13
|
+
* - No rate limiting (admin bypass)
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* // With link for consumer app custom UI
|
|
18
|
+
* await authService.adminResetPassword({
|
|
19
|
+
* identifier: 'user@example.com',
|
|
20
|
+
* baseUrl: 'https://myapp.com/reset-password',
|
|
21
|
+
* deliveryMethod: 'email',
|
|
22
|
+
* revokeSessions: true
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* // Code only (no link)
|
|
26
|
+
* await authService.adminResetPassword({
|
|
27
|
+
* identifier: 'user@example.com',
|
|
28
|
+
* deliveryMethod: 'email'
|
|
29
|
+
* });
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
/**
|
|
33
|
+
* Request DTO for admin password reset
|
|
34
|
+
*/
|
|
35
|
+
export declare class AdminResetPasswordDTO {
|
|
36
|
+
/**
|
|
37
|
+
* User identifier (email, username, phone, or sub/UUID)
|
|
38
|
+
*
|
|
39
|
+
* Validation:
|
|
40
|
+
* - Must be a string
|
|
41
|
+
* - Min 1 character
|
|
42
|
+
* - Max 255 characters
|
|
43
|
+
*
|
|
44
|
+
* Sanitization:
|
|
45
|
+
* - Trimmed
|
|
46
|
+
* - Lowercased if email format detected
|
|
47
|
+
*
|
|
48
|
+
* @example "user@example.com" | "johndoe" | "+1234567890" | "uuid"
|
|
49
|
+
*/
|
|
50
|
+
identifier: string;
|
|
51
|
+
/**
|
|
52
|
+
* Delivery method for reset code
|
|
53
|
+
*
|
|
54
|
+
* Validation:
|
|
55
|
+
* - Must be 'email' or 'sms'
|
|
56
|
+
* - Optional (defaults to 'email')
|
|
57
|
+
*
|
|
58
|
+
* @default 'email'
|
|
59
|
+
* @example 'email' | 'sms'
|
|
60
|
+
*/
|
|
61
|
+
deliveryMethod?: 'email' | 'sms';
|
|
62
|
+
/**
|
|
63
|
+
* Base URL for building reset link
|
|
64
|
+
*
|
|
65
|
+
* Validation:
|
|
66
|
+
* - Must be valid URL with http:// or https://
|
|
67
|
+
* - Max 2048 characters
|
|
68
|
+
* - Optional
|
|
69
|
+
*
|
|
70
|
+
* Sanitization:
|
|
71
|
+
* - Trimmed
|
|
72
|
+
*
|
|
73
|
+
* WHY: Allows consumer apps to build custom reset UI (e.g., myapp.com/reset-password?token=xxx)
|
|
74
|
+
* Like email verification, supports both code AND link delivery
|
|
75
|
+
*
|
|
76
|
+
* @example "https://myapp.com/reset-password"
|
|
77
|
+
*/
|
|
78
|
+
baseUrl?: string;
|
|
79
|
+
/**
|
|
80
|
+
* Code expiry in seconds
|
|
81
|
+
*
|
|
82
|
+
* Validation:
|
|
83
|
+
* - Must be number
|
|
84
|
+
* - Min 300 seconds (5 minutes)
|
|
85
|
+
* - Max 86400 seconds (24 hours)
|
|
86
|
+
* - Optional
|
|
87
|
+
*
|
|
88
|
+
* @default 3600 (1 hour - longer than user-initiated 15min)
|
|
89
|
+
* @example 3600
|
|
90
|
+
*/
|
|
91
|
+
codeExpiresIn?: number;
|
|
92
|
+
/**
|
|
93
|
+
* Revoke all active sessions immediately (before sending email)
|
|
94
|
+
*
|
|
95
|
+
* Validation:
|
|
96
|
+
* - Must be boolean
|
|
97
|
+
* - Optional
|
|
98
|
+
*
|
|
99
|
+
* WHY: Admin can lock user out immediately while sending reset email
|
|
100
|
+
* Different from confirmAdminResetPassword which always revokes on completion
|
|
101
|
+
*
|
|
102
|
+
* @default false
|
|
103
|
+
* @example true
|
|
104
|
+
*/
|
|
105
|
+
revokeSessions?: boolean;
|
|
106
|
+
/**
|
|
107
|
+
* Reason for admin-initiated reset (for audit trail)
|
|
108
|
+
*
|
|
109
|
+
* Validation:
|
|
110
|
+
* - Must be string
|
|
111
|
+
* - Max 500 characters
|
|
112
|
+
* - Optional
|
|
113
|
+
*
|
|
114
|
+
* Sanitization:
|
|
115
|
+
* - Trimmed
|
|
116
|
+
*
|
|
117
|
+
* @example "User reported account compromise"
|
|
118
|
+
*/
|
|
119
|
+
reason?: string;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Admin Reset Password Response DTO
|
|
123
|
+
*
|
|
124
|
+
* Response DTO for admin-initiated password reset request.
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* ```typescript
|
|
128
|
+
* {
|
|
129
|
+
* success: true,
|
|
130
|
+
* destination: 'u***r@example.com',
|
|
131
|
+
* deliveryMedium: 'email',
|
|
132
|
+
* expiresIn: 3600,
|
|
133
|
+
* sessionsRevoked: 3
|
|
134
|
+
* }
|
|
135
|
+
* ```
|
|
136
|
+
*/
|
|
137
|
+
export declare class AdminResetPasswordResponseDTO {
|
|
138
|
+
/**
|
|
139
|
+
* Success indicator
|
|
140
|
+
* Always true on successful request
|
|
141
|
+
*/
|
|
142
|
+
success: boolean;
|
|
143
|
+
/**
|
|
144
|
+
* Masked destination where code was sent
|
|
145
|
+
* @example "u***r@example.com" | "***-***-5678"
|
|
146
|
+
*/
|
|
147
|
+
destination?: string;
|
|
148
|
+
/**
|
|
149
|
+
* Delivery medium used
|
|
150
|
+
* @example "email" | "sms"
|
|
151
|
+
*/
|
|
152
|
+
deliveryMedium?: 'email' | 'sms';
|
|
153
|
+
/**
|
|
154
|
+
* Code expiry in seconds
|
|
155
|
+
* @example 3600
|
|
156
|
+
*/
|
|
157
|
+
expiresIn?: number;
|
|
158
|
+
/**
|
|
159
|
+
* Number of sessions revoked (if revokeSessions was true)
|
|
160
|
+
* @example 3
|
|
161
|
+
*/
|
|
162
|
+
sessionsRevoked?: number;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Confirm Admin Reset Password DTO
|
|
166
|
+
*
|
|
167
|
+
* User completes admin-initiated password reset with code OR token.
|
|
168
|
+
* Accepts either short code from email/SMS OR long token from link.
|
|
169
|
+
*
|
|
170
|
+
* Security:
|
|
171
|
+
* - One of code or token is required
|
|
172
|
+
* - Token-based: No attempt tracking (single use, long random)
|
|
173
|
+
* - Code-based: Attempt tracking (max 3 attempts)
|
|
174
|
+
* - Always revokes all sessions on completion
|
|
175
|
+
* - Always sets mustChangePassword flag
|
|
176
|
+
*
|
|
177
|
+
* @example
|
|
178
|
+
* ```typescript
|
|
179
|
+
* // With code (from email/SMS)
|
|
180
|
+
* await authService.confirmAdminResetPassword({
|
|
181
|
+
* identifier: 'user@example.com',
|
|
182
|
+
* code: '123456',
|
|
183
|
+
* newPassword: 'NewSecurePass123!'
|
|
184
|
+
* });
|
|
185
|
+
*
|
|
186
|
+
* // With token (from link)
|
|
187
|
+
* await authService.confirmAdminResetPassword({
|
|
188
|
+
* identifier: 'user@example.com',
|
|
189
|
+
* token: '64-char-hex-token-from-link',
|
|
190
|
+
* newPassword: 'NewSecurePass123!'
|
|
191
|
+
* });
|
|
192
|
+
* ```
|
|
193
|
+
*/
|
|
194
|
+
export declare class ConfirmAdminResetPasswordDTO {
|
|
195
|
+
/**
|
|
196
|
+
* User identifier (email, username, phone, or sub/UUID)
|
|
197
|
+
*
|
|
198
|
+
* Validation:
|
|
199
|
+
* - Must be a string
|
|
200
|
+
* - Min 1 character
|
|
201
|
+
* - Max 255 characters
|
|
202
|
+
*
|
|
203
|
+
* Sanitization:
|
|
204
|
+
* - Trimmed
|
|
205
|
+
* - Lowercased if email format detected
|
|
206
|
+
*
|
|
207
|
+
* @example "user@example.com"
|
|
208
|
+
*/
|
|
209
|
+
identifier: string;
|
|
210
|
+
/**
|
|
211
|
+
* Verification code from email/SMS (6-10 digits)
|
|
212
|
+
*
|
|
213
|
+
* Validation:
|
|
214
|
+
* - Must be string
|
|
215
|
+
* - Length 6-10 characters
|
|
216
|
+
* - Optional (token OR code required)
|
|
217
|
+
*
|
|
218
|
+
* Sanitization:
|
|
219
|
+
* - Trimmed
|
|
220
|
+
*
|
|
221
|
+
* WHY: Short code for manual entry, subject to attempt tracking
|
|
222
|
+
*
|
|
223
|
+
* @example "123456"
|
|
224
|
+
*/
|
|
225
|
+
code?: string;
|
|
226
|
+
/**
|
|
227
|
+
* Verification token from link (64-char hex)
|
|
228
|
+
*
|
|
229
|
+
* Validation:
|
|
230
|
+
* - Must be string
|
|
231
|
+
* - Optional (token OR code required)
|
|
232
|
+
*
|
|
233
|
+
* Sanitization:
|
|
234
|
+
* - Trimmed
|
|
235
|
+
*
|
|
236
|
+
* WHY: Long token from link, single-use, no attempt tracking needed
|
|
237
|
+
*
|
|
238
|
+
* @example "a1b2c3d4..."
|
|
239
|
+
*/
|
|
240
|
+
token?: string;
|
|
241
|
+
/**
|
|
242
|
+
* New password
|
|
243
|
+
*
|
|
244
|
+
* Validation:
|
|
245
|
+
* - Must be string
|
|
246
|
+
* - Min 8 characters (security requirement)
|
|
247
|
+
* - Max 128 characters (prevents DoS)
|
|
248
|
+
*
|
|
249
|
+
* Note: NOT trimmed (passwords can have leading/trailing spaces)
|
|
250
|
+
* Additional checks in service layer:
|
|
251
|
+
* - Password strength (if configured)
|
|
252
|
+
* - Password history (prevent reuse)
|
|
253
|
+
*
|
|
254
|
+
* @example "NewSecurePassword123!"
|
|
255
|
+
*/
|
|
256
|
+
newPassword: string;
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Confirm Admin Reset Password Response DTO
|
|
260
|
+
*
|
|
261
|
+
* Response DTO for successful admin password reset completion.
|
|
262
|
+
*
|
|
263
|
+
* @example
|
|
264
|
+
* ```typescript
|
|
265
|
+
* {
|
|
266
|
+
* success: true
|
|
267
|
+
* }
|
|
268
|
+
* ```
|
|
269
|
+
*/
|
|
270
|
+
export declare class ConfirmAdminResetPasswordResponseDTO {
|
|
271
|
+
/**
|
|
272
|
+
* Success indicator
|
|
273
|
+
* Always true on successful reset
|
|
274
|
+
*/
|
|
275
|
+
success: boolean;
|
|
276
|
+
}
|
|
277
|
+
//# sourceMappingURL=admin-reset-password.dto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin-reset-password.dto.d.ts","sourceRoot":"","sources":["../../src/dto/admin-reset-password.dto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAkBH;;GAEG;AACH,qBAAa,qBAAqB;IAChC;;;;;;;;;;;;;OAaG;IAgBH,UAAU,EAAG,MAAM,CAAC;IAEpB;;;;;;;;;OASG;IAGH,cAAc,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAEjC;;;;;;;;;;;;;;;OAeG;IAaH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;;;;;OAWG;IAKH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;;;;;;;OAYG;IAGH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;;;;;;;;;;OAYG;IAUH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,6BAA6B;IACxC;;;OAGG;IACH,OAAO,EAAG,OAAO,CAAC;IAElB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAEjC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,4BAA4B;IACvC;;;;;;;;;;;;;OAaG;IAgBH,UAAU,EAAG,MAAM,CAAC;IAEpB;;;;;;;;;;;;;;OAcG;IAUH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;;;;;;;;;;OAaG;IASH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;;;;;;;;;OAcG;IAKH,WAAW,EAAG,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,oCAAoC;IAC/C;;;OAGG;IACH,OAAO,EAAG,OAAO,CAAC;CACnB"}
|