@eaccess/auth 0.1.3 → 0.1.4
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/index.cjs +562 -525
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +219 -57
- package/dist/index.d.ts +219 -57
- package/dist/index.js +568 -526
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -263,7 +263,6 @@ declare global {
|
|
|
263
263
|
namespace Express {
|
|
264
264
|
interface Request {
|
|
265
265
|
auth: AuthManager$1;
|
|
266
|
-
authAdmin: AuthAdminManager;
|
|
267
266
|
}
|
|
268
267
|
}
|
|
269
268
|
}
|
|
@@ -290,6 +289,55 @@ interface AuthManager$1 {
|
|
|
290
289
|
verifyPassword(password: string): Promise<boolean>;
|
|
291
290
|
logoutEverywhere(): Promise<void>;
|
|
292
291
|
logoutEverywhereElse(): Promise<void>;
|
|
292
|
+
createUser(credentials: {
|
|
293
|
+
email: string;
|
|
294
|
+
password: string;
|
|
295
|
+
}, userId?: string | number, callback?: TokenCallback): Promise<AuthAccount>;
|
|
296
|
+
deleteUserBy(identifier: {
|
|
297
|
+
accountId?: number;
|
|
298
|
+
email?: string;
|
|
299
|
+
userId?: string;
|
|
300
|
+
}): Promise<void>;
|
|
301
|
+
addRoleForUserBy(identifier: {
|
|
302
|
+
accountId?: number;
|
|
303
|
+
email?: string;
|
|
304
|
+
userId?: string;
|
|
305
|
+
}, role: number): Promise<void>;
|
|
306
|
+
removeRoleForUserBy(identifier: {
|
|
307
|
+
accountId?: number;
|
|
308
|
+
email?: string;
|
|
309
|
+
userId?: string;
|
|
310
|
+
}, role: number): Promise<void>;
|
|
311
|
+
hasRoleForUserBy(identifier: {
|
|
312
|
+
accountId?: number;
|
|
313
|
+
email?: string;
|
|
314
|
+
userId?: string;
|
|
315
|
+
}, role: number): Promise<boolean>;
|
|
316
|
+
changePasswordForUserBy(identifier: {
|
|
317
|
+
accountId?: number;
|
|
318
|
+
email?: string;
|
|
319
|
+
userId?: string;
|
|
320
|
+
}, password: string): Promise<void>;
|
|
321
|
+
setStatusForUserBy(identifier: {
|
|
322
|
+
accountId?: number;
|
|
323
|
+
email?: string;
|
|
324
|
+
userId?: string;
|
|
325
|
+
}, status: number): Promise<void>;
|
|
326
|
+
initiatePasswordResetForUserBy(identifier: {
|
|
327
|
+
accountId?: number;
|
|
328
|
+
email?: string;
|
|
329
|
+
userId?: string;
|
|
330
|
+
}, expiresAfter?: string | number | null, callback?: TokenCallback): Promise<void>;
|
|
331
|
+
forceLogoutForUserBy(identifier: {
|
|
332
|
+
accountId?: number;
|
|
333
|
+
email?: string;
|
|
334
|
+
userId?: string;
|
|
335
|
+
}): Promise<void>;
|
|
336
|
+
loginAsUserBy(identifier: {
|
|
337
|
+
accountId?: number;
|
|
338
|
+
email?: string;
|
|
339
|
+
userId?: string;
|
|
340
|
+
}): Promise<void>;
|
|
293
341
|
providers: {
|
|
294
342
|
github?: OAuthProvider;
|
|
295
343
|
google?: OAuthProvider;
|
|
@@ -460,93 +508,150 @@ interface TwoFactorManager$1 {
|
|
|
460
508
|
*/
|
|
461
509
|
getContact(mechanism: TwoFactorMechanism.EMAIL | TwoFactorMechanism.SMS): Promise<string | null>;
|
|
462
510
|
}
|
|
463
|
-
|
|
464
|
-
|
|
511
|
+
|
|
512
|
+
declare function createAuthMiddleware(config: AuthConfig): (req: Request, res: Response, next: NextFunction) => Promise<void>;
|
|
513
|
+
|
|
514
|
+
declare function createAuthTables(config: AuthConfig): Promise<void>;
|
|
515
|
+
declare function dropAuthTables(config: AuthConfig): Promise<void>;
|
|
516
|
+
declare function cleanupExpiredTokens(config: AuthConfig): Promise<void>;
|
|
517
|
+
declare function getAuthTableStats(config: AuthConfig): Promise<{
|
|
518
|
+
accounts: number;
|
|
519
|
+
providers: number;
|
|
520
|
+
confirmations: number;
|
|
521
|
+
remembers: number;
|
|
522
|
+
resets: number;
|
|
523
|
+
twoFactorMethods: number;
|
|
524
|
+
twoFactorTokens: number;
|
|
525
|
+
expiredConfirmations: number;
|
|
526
|
+
expiredRemembers: number;
|
|
527
|
+
expiredResets: number;
|
|
528
|
+
expiredTwoFactorTokens: number;
|
|
529
|
+
}>;
|
|
530
|
+
|
|
531
|
+
interface AuthContext {
|
|
532
|
+
createUser: (credentials: {
|
|
465
533
|
email: string;
|
|
466
534
|
password: string;
|
|
467
|
-
}, userId?: string | number, callback?: TokenCallback)
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
email?: string;
|
|
471
|
-
userId?: string;
|
|
472
|
-
}): Promise<void>;
|
|
473
|
-
deleteUserBy(identifier: {
|
|
535
|
+
}, userId?: string | number, callback?: TokenCallback) => Promise<AuthAccount>;
|
|
536
|
+
register: (email: string, password: string, userId?: string | number, callback?: TokenCallback) => Promise<AuthAccount>;
|
|
537
|
+
deleteUserBy: (identifier: {
|
|
474
538
|
accountId?: number;
|
|
475
539
|
email?: string;
|
|
476
540
|
userId?: string;
|
|
477
|
-
})
|
|
478
|
-
addRoleForUserBy(identifier: {
|
|
541
|
+
}) => Promise<void>;
|
|
542
|
+
addRoleForUserBy: (identifier: {
|
|
479
543
|
accountId?: number;
|
|
480
544
|
email?: string;
|
|
481
545
|
userId?: string;
|
|
482
|
-
}, role: number)
|
|
483
|
-
removeRoleForUserBy(identifier: {
|
|
546
|
+
}, role: number) => Promise<void>;
|
|
547
|
+
removeRoleForUserBy: (identifier: {
|
|
484
548
|
accountId?: number;
|
|
485
549
|
email?: string;
|
|
486
550
|
userId?: string;
|
|
487
|
-
}, role: number)
|
|
488
|
-
hasRoleForUserBy(identifier: {
|
|
551
|
+
}, role: number) => Promise<void>;
|
|
552
|
+
hasRoleForUserBy: (identifier: {
|
|
489
553
|
accountId?: number;
|
|
490
554
|
email?: string;
|
|
491
555
|
userId?: string;
|
|
492
|
-
}, role: number)
|
|
493
|
-
changePasswordForUserBy(identifier: {
|
|
556
|
+
}, role: number) => Promise<boolean>;
|
|
557
|
+
changePasswordForUserBy: (identifier: {
|
|
494
558
|
accountId?: number;
|
|
495
559
|
email?: string;
|
|
496
560
|
userId?: string;
|
|
497
|
-
}, password: string)
|
|
498
|
-
setStatusForUserBy(identifier: {
|
|
561
|
+
}, password: string) => Promise<void>;
|
|
562
|
+
setStatusForUserBy: (identifier: {
|
|
499
563
|
accountId?: number;
|
|
500
564
|
email?: string;
|
|
501
565
|
userId?: string;
|
|
502
|
-
}, status: number)
|
|
503
|
-
initiatePasswordResetForUserBy(identifier: {
|
|
566
|
+
}, status: number) => Promise<void>;
|
|
567
|
+
initiatePasswordResetForUserBy: (identifier: {
|
|
504
568
|
accountId?: number;
|
|
505
569
|
email?: string;
|
|
506
570
|
userId?: string;
|
|
507
|
-
}, expiresAfter?: string | number | null, callback?: TokenCallback)
|
|
508
|
-
|
|
571
|
+
}, expiresAfter?: string | number | null, callback?: TokenCallback) => Promise<void>;
|
|
572
|
+
resetPassword: (email: string, expiresAfter?: string | number | null, maxOpenRequests?: number | null, callback?: TokenCallback) => Promise<void>;
|
|
573
|
+
confirmResetPassword: (token: string, password: string) => Promise<{
|
|
574
|
+
accountId: number;
|
|
575
|
+
email: string;
|
|
576
|
+
}>;
|
|
577
|
+
forceLogoutForUserBy: (identifier: {
|
|
509
578
|
accountId?: number;
|
|
510
579
|
email?: string;
|
|
511
580
|
userId?: string;
|
|
512
|
-
})
|
|
581
|
+
}) => Promise<{
|
|
582
|
+
accountId: number;
|
|
583
|
+
}>;
|
|
513
584
|
}
|
|
585
|
+
declare function createAuthContext(config: AuthConfig): AuthContext;
|
|
514
586
|
|
|
515
|
-
declare function createAuthMiddleware(config: AuthConfig): (req: Request, res: Response, next: NextFunction) => Promise<void>;
|
|
516
|
-
|
|
517
|
-
declare function createAuthTables(config: AuthConfig): Promise<void>;
|
|
518
|
-
declare function dropAuthTables(config: AuthConfig): Promise<void>;
|
|
519
|
-
declare function cleanupExpiredTokens(config: AuthConfig): Promise<void>;
|
|
520
|
-
declare function getAuthTableStats(config: AuthConfig): Promise<{
|
|
521
|
-
accounts: number;
|
|
522
|
-
providers: number;
|
|
523
|
-
confirmations: number;
|
|
524
|
-
remembers: number;
|
|
525
|
-
resets: number;
|
|
526
|
-
twoFactorMethods: number;
|
|
527
|
-
twoFactorTokens: number;
|
|
528
|
-
expiredConfirmations: number;
|
|
529
|
-
expiredRemembers: number;
|
|
530
|
-
expiredResets: number;
|
|
531
|
-
expiredTwoFactorTokens: number;
|
|
532
|
-
}>;
|
|
533
|
-
|
|
534
|
-
/**
|
|
535
|
-
* Create a new user account without requiring Express request/response objects.
|
|
536
|
-
* This function is suitable for use in seeders, CLI tools, and other standalone contexts.
|
|
537
|
-
*
|
|
538
|
-
* @param config - Auth configuration containing database connection and settings
|
|
539
|
-
* @param credentials - Email and password for new account
|
|
540
|
-
* @param userId - Optional user ID to link this auth account to. If not provided, a UUID will be generated automatically.
|
|
541
|
-
* @param callback - If provided, account is created unverified and callback receives confirmation token. Create a URL like /confirm/{token} and call confirmEmail() in that handler. If omitted, account is immediately verified.
|
|
542
|
-
* @returns The created account record
|
|
543
|
-
* @throws {EmailTakenError} Email is already registered
|
|
544
|
-
* @throws {InvalidPasswordError} Password doesn't meet length requirements
|
|
545
|
-
*/
|
|
546
587
|
declare function createUser(config: AuthConfig, credentials: {
|
|
547
588
|
email: string;
|
|
548
589
|
password: string;
|
|
549
590
|
}, userId?: string | number, callback?: TokenCallback): Promise<AuthAccount>;
|
|
591
|
+
declare function register(config: AuthConfig, email: string, password: string, userId?: string | number, callback?: TokenCallback): Promise<AuthAccount>;
|
|
592
|
+
declare function deleteUserBy(config: AuthConfig, identifier: {
|
|
593
|
+
accountId?: number;
|
|
594
|
+
email?: string;
|
|
595
|
+
userId?: string;
|
|
596
|
+
}): Promise<void>;
|
|
597
|
+
declare function addRoleForUserBy(config: AuthConfig, identifier: {
|
|
598
|
+
accountId?: number;
|
|
599
|
+
email?: string;
|
|
600
|
+
userId?: string;
|
|
601
|
+
}, role: number): Promise<void>;
|
|
602
|
+
declare function removeRoleForUserBy(config: AuthConfig, identifier: {
|
|
603
|
+
accountId?: number;
|
|
604
|
+
email?: string;
|
|
605
|
+
userId?: string;
|
|
606
|
+
}, role: number): Promise<void>;
|
|
607
|
+
declare function hasRoleForUserBy(config: AuthConfig, identifier: {
|
|
608
|
+
accountId?: number;
|
|
609
|
+
email?: string;
|
|
610
|
+
userId?: string;
|
|
611
|
+
}, role: number): Promise<boolean>;
|
|
612
|
+
declare function changePasswordForUserBy(config: AuthConfig, identifier: {
|
|
613
|
+
accountId?: number;
|
|
614
|
+
email?: string;
|
|
615
|
+
userId?: string;
|
|
616
|
+
}, password: string): Promise<void>;
|
|
617
|
+
declare function setStatusForUserBy(config: AuthConfig, identifier: {
|
|
618
|
+
accountId?: number;
|
|
619
|
+
email?: string;
|
|
620
|
+
userId?: string;
|
|
621
|
+
}, status: number): Promise<void>;
|
|
622
|
+
declare function initiatePasswordResetForUserBy(config: AuthConfig, identifier: {
|
|
623
|
+
accountId?: number;
|
|
624
|
+
email?: string;
|
|
625
|
+
userId?: string;
|
|
626
|
+
}, expiresAfter?: string | number | null, callback?: TokenCallback): Promise<void>;
|
|
627
|
+
declare function resetPassword(config: AuthConfig, email: string, expiresAfter?: string | number | null, maxOpenRequests?: number | null, callback?: TokenCallback): Promise<void>;
|
|
628
|
+
declare function confirmResetPassword(config: AuthConfig, token: string, password: string): Promise<{
|
|
629
|
+
accountId: number;
|
|
630
|
+
email: string;
|
|
631
|
+
}>;
|
|
632
|
+
declare function forceLogoutForUserBy(config: AuthConfig, identifier: {
|
|
633
|
+
accountId?: number;
|
|
634
|
+
email?: string;
|
|
635
|
+
userId?: string;
|
|
636
|
+
}): Promise<{
|
|
637
|
+
accountId: number;
|
|
638
|
+
}>;
|
|
639
|
+
|
|
640
|
+
declare const authFunctions_addRoleForUserBy: typeof addRoleForUserBy;
|
|
641
|
+
declare const authFunctions_changePasswordForUserBy: typeof changePasswordForUserBy;
|
|
642
|
+
declare const authFunctions_confirmResetPassword: typeof confirmResetPassword;
|
|
643
|
+
declare const authFunctions_createUser: typeof createUser;
|
|
644
|
+
declare const authFunctions_deleteUserBy: typeof deleteUserBy;
|
|
645
|
+
declare const authFunctions_forceLogoutForUserBy: typeof forceLogoutForUserBy;
|
|
646
|
+
declare const authFunctions_hasRoleForUserBy: typeof hasRoleForUserBy;
|
|
647
|
+
declare const authFunctions_initiatePasswordResetForUserBy: typeof initiatePasswordResetForUserBy;
|
|
648
|
+
declare const authFunctions_register: typeof register;
|
|
649
|
+
declare const authFunctions_removeRoleForUserBy: typeof removeRoleForUserBy;
|
|
650
|
+
declare const authFunctions_resetPassword: typeof resetPassword;
|
|
651
|
+
declare const authFunctions_setStatusForUserBy: typeof setStatusForUserBy;
|
|
652
|
+
declare namespace authFunctions {
|
|
653
|
+
export { authFunctions_addRoleForUserBy as addRoleForUserBy, authFunctions_changePasswordForUserBy as changePasswordForUserBy, authFunctions_confirmResetPassword as confirmResetPassword, authFunctions_createUser as createUser, authFunctions_deleteUserBy as deleteUserBy, authFunctions_forceLogoutForUserBy as forceLogoutForUserBy, authFunctions_hasRoleForUserBy as hasRoleForUserBy, authFunctions_initiatePasswordResetForUserBy as initiatePasswordResetForUserBy, authFunctions_register as register, authFunctions_removeRoleForUserBy as removeRoleForUserBy, authFunctions_resetPassword as resetPassword, authFunctions_setStatusForUserBy as setStatusForUserBy };
|
|
654
|
+
}
|
|
550
655
|
|
|
551
656
|
type UserIdentifier = {
|
|
552
657
|
accountId?: number;
|
|
@@ -968,6 +1073,63 @@ declare class AuthManager implements AuthManager$1 {
|
|
|
968
1073
|
* Logs out everywhere else, then logs out current session.
|
|
969
1074
|
*/
|
|
970
1075
|
logoutEverywhere(): Promise<void>;
|
|
1076
|
+
private findAccountByIdentifier;
|
|
1077
|
+
createUser(credentials: {
|
|
1078
|
+
email: string;
|
|
1079
|
+
password: string;
|
|
1080
|
+
}, userId?: string | number, callback?: TokenCallback): Promise<AuthAccount>;
|
|
1081
|
+
deleteUserBy(identifier: {
|
|
1082
|
+
accountId?: number;
|
|
1083
|
+
email?: string;
|
|
1084
|
+
userId?: string;
|
|
1085
|
+
}): Promise<void>;
|
|
1086
|
+
addRoleForUserBy(identifier: {
|
|
1087
|
+
accountId?: number;
|
|
1088
|
+
email?: string;
|
|
1089
|
+
userId?: string;
|
|
1090
|
+
}, role: number): Promise<void>;
|
|
1091
|
+
removeRoleForUserBy(identifier: {
|
|
1092
|
+
accountId?: number;
|
|
1093
|
+
email?: string;
|
|
1094
|
+
userId?: string;
|
|
1095
|
+
}, role: number): Promise<void>;
|
|
1096
|
+
hasRoleForUserBy(identifier: {
|
|
1097
|
+
accountId?: number;
|
|
1098
|
+
email?: string;
|
|
1099
|
+
userId?: string;
|
|
1100
|
+
}, role: number): Promise<boolean>;
|
|
1101
|
+
changePasswordForUserBy(identifier: {
|
|
1102
|
+
accountId?: number;
|
|
1103
|
+
email?: string;
|
|
1104
|
+
userId?: string;
|
|
1105
|
+
}, password: string): Promise<void>;
|
|
1106
|
+
setStatusForUserBy(identifier: {
|
|
1107
|
+
accountId?: number;
|
|
1108
|
+
email?: string;
|
|
1109
|
+
userId?: string;
|
|
1110
|
+
}, status: number): Promise<void>;
|
|
1111
|
+
initiatePasswordResetForUserBy(identifier: {
|
|
1112
|
+
accountId?: number;
|
|
1113
|
+
email?: string;
|
|
1114
|
+
userId?: string;
|
|
1115
|
+
}, expiresAfter?: string | number | null, callback?: TokenCallback): Promise<void>;
|
|
1116
|
+
forceLogoutForUserBy(identifier: {
|
|
1117
|
+
accountId?: number;
|
|
1118
|
+
email?: string;
|
|
1119
|
+
userId?: string;
|
|
1120
|
+
}): Promise<void>;
|
|
1121
|
+
/**
|
|
1122
|
+
* Log in as another user (admin function).
|
|
1123
|
+
* Creates a new session as the target user without requiring their password.
|
|
1124
|
+
*
|
|
1125
|
+
* @param identifier - Find user by accountId, email, or userId
|
|
1126
|
+
* @throws {UserNotFoundError} No account matches the identifier
|
|
1127
|
+
*/
|
|
1128
|
+
loginAsUserBy(identifier: {
|
|
1129
|
+
accountId?: number;
|
|
1130
|
+
email?: string;
|
|
1131
|
+
userId?: string;
|
|
1132
|
+
}): Promise<void>;
|
|
971
1133
|
}
|
|
972
1134
|
|
|
973
1135
|
declare abstract class BaseOAuthProvider implements OAuthProvider {
|
|
@@ -1006,4 +1168,4 @@ declare class AzureProvider extends BaseOAuthProvider {
|
|
|
1006
1168
|
protected exchangeCodeForToken(code: string, tokenUrl: string): Promise<string>;
|
|
1007
1169
|
}
|
|
1008
1170
|
|
|
1009
|
-
export { ActivityLogger, type AuthAccount, type AuthActivity, AuthActivityAction, type AuthActivityActionType, type
|
|
1171
|
+
export { ActivityLogger, type AuthAccount, type AuthActivity, AuthActivityAction, type AuthActivityActionType, type AuthConfig, type AuthConfirmation, type AuthContext, AuthError, type AuthManager$1 as AuthManager, type AuthProvider, type AuthRemember, type AuthReset, AuthRole, type AuthSession, AuthStatus, AzureProvider, type AzureProviderConfig, BaseOAuthProvider, ConfirmationExpiredError, ConfirmationNotFoundError, EmailNotVerifiedError, EmailTakenError, GitHubProvider, type GitHubProviderConfig, GoogleProvider, type GoogleProviderConfig, InvalidBackupCodeError, InvalidEmailError, InvalidPasswordError, InvalidTokenError, InvalidTwoFactorCodeError, type OAuthProvider, type OAuthProviderConfig, type OAuthUserData, OtpProvider, ResetDisabledError, ResetExpiredError, ResetNotFoundError, SecondFactorRequiredError, type TokenCallback, TooManyResetsError, TotpProvider, TwoFactorAlreadyEnabledError, type TwoFactorChallenge, TwoFactorExpiredError, TwoFactorManager, TwoFactorMechanism, type TwoFactorMethod, TwoFactorNotSetupError, TwoFactorSetupIncompleteError, type TwoFactorSetupResult, type TwoFactorToken, type UserIdentifier, UserInactiveError, UserNotFoundError, UserNotLoggedInError, addRoleToUser, authFunctions, cleanupExpiredTokens, createAuthContext, createAuthMiddleware, createAuthTables, dropAuthTables, getAuthTableStats, getUserRoles, isValidEmail, removeRoleFromUser, setUserRoles, validateEmail };
|
package/dist/index.d.ts
CHANGED
|
@@ -263,7 +263,6 @@ declare global {
|
|
|
263
263
|
namespace Express {
|
|
264
264
|
interface Request {
|
|
265
265
|
auth: AuthManager$1;
|
|
266
|
-
authAdmin: AuthAdminManager;
|
|
267
266
|
}
|
|
268
267
|
}
|
|
269
268
|
}
|
|
@@ -290,6 +289,55 @@ interface AuthManager$1 {
|
|
|
290
289
|
verifyPassword(password: string): Promise<boolean>;
|
|
291
290
|
logoutEverywhere(): Promise<void>;
|
|
292
291
|
logoutEverywhereElse(): Promise<void>;
|
|
292
|
+
createUser(credentials: {
|
|
293
|
+
email: string;
|
|
294
|
+
password: string;
|
|
295
|
+
}, userId?: string | number, callback?: TokenCallback): Promise<AuthAccount>;
|
|
296
|
+
deleteUserBy(identifier: {
|
|
297
|
+
accountId?: number;
|
|
298
|
+
email?: string;
|
|
299
|
+
userId?: string;
|
|
300
|
+
}): Promise<void>;
|
|
301
|
+
addRoleForUserBy(identifier: {
|
|
302
|
+
accountId?: number;
|
|
303
|
+
email?: string;
|
|
304
|
+
userId?: string;
|
|
305
|
+
}, role: number): Promise<void>;
|
|
306
|
+
removeRoleForUserBy(identifier: {
|
|
307
|
+
accountId?: number;
|
|
308
|
+
email?: string;
|
|
309
|
+
userId?: string;
|
|
310
|
+
}, role: number): Promise<void>;
|
|
311
|
+
hasRoleForUserBy(identifier: {
|
|
312
|
+
accountId?: number;
|
|
313
|
+
email?: string;
|
|
314
|
+
userId?: string;
|
|
315
|
+
}, role: number): Promise<boolean>;
|
|
316
|
+
changePasswordForUserBy(identifier: {
|
|
317
|
+
accountId?: number;
|
|
318
|
+
email?: string;
|
|
319
|
+
userId?: string;
|
|
320
|
+
}, password: string): Promise<void>;
|
|
321
|
+
setStatusForUserBy(identifier: {
|
|
322
|
+
accountId?: number;
|
|
323
|
+
email?: string;
|
|
324
|
+
userId?: string;
|
|
325
|
+
}, status: number): Promise<void>;
|
|
326
|
+
initiatePasswordResetForUserBy(identifier: {
|
|
327
|
+
accountId?: number;
|
|
328
|
+
email?: string;
|
|
329
|
+
userId?: string;
|
|
330
|
+
}, expiresAfter?: string | number | null, callback?: TokenCallback): Promise<void>;
|
|
331
|
+
forceLogoutForUserBy(identifier: {
|
|
332
|
+
accountId?: number;
|
|
333
|
+
email?: string;
|
|
334
|
+
userId?: string;
|
|
335
|
+
}): Promise<void>;
|
|
336
|
+
loginAsUserBy(identifier: {
|
|
337
|
+
accountId?: number;
|
|
338
|
+
email?: string;
|
|
339
|
+
userId?: string;
|
|
340
|
+
}): Promise<void>;
|
|
293
341
|
providers: {
|
|
294
342
|
github?: OAuthProvider;
|
|
295
343
|
google?: OAuthProvider;
|
|
@@ -460,93 +508,150 @@ interface TwoFactorManager$1 {
|
|
|
460
508
|
*/
|
|
461
509
|
getContact(mechanism: TwoFactorMechanism.EMAIL | TwoFactorMechanism.SMS): Promise<string | null>;
|
|
462
510
|
}
|
|
463
|
-
|
|
464
|
-
|
|
511
|
+
|
|
512
|
+
declare function createAuthMiddleware(config: AuthConfig): (req: Request, res: Response, next: NextFunction) => Promise<void>;
|
|
513
|
+
|
|
514
|
+
declare function createAuthTables(config: AuthConfig): Promise<void>;
|
|
515
|
+
declare function dropAuthTables(config: AuthConfig): Promise<void>;
|
|
516
|
+
declare function cleanupExpiredTokens(config: AuthConfig): Promise<void>;
|
|
517
|
+
declare function getAuthTableStats(config: AuthConfig): Promise<{
|
|
518
|
+
accounts: number;
|
|
519
|
+
providers: number;
|
|
520
|
+
confirmations: number;
|
|
521
|
+
remembers: number;
|
|
522
|
+
resets: number;
|
|
523
|
+
twoFactorMethods: number;
|
|
524
|
+
twoFactorTokens: number;
|
|
525
|
+
expiredConfirmations: number;
|
|
526
|
+
expiredRemembers: number;
|
|
527
|
+
expiredResets: number;
|
|
528
|
+
expiredTwoFactorTokens: number;
|
|
529
|
+
}>;
|
|
530
|
+
|
|
531
|
+
interface AuthContext {
|
|
532
|
+
createUser: (credentials: {
|
|
465
533
|
email: string;
|
|
466
534
|
password: string;
|
|
467
|
-
}, userId?: string | number, callback?: TokenCallback)
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
email?: string;
|
|
471
|
-
userId?: string;
|
|
472
|
-
}): Promise<void>;
|
|
473
|
-
deleteUserBy(identifier: {
|
|
535
|
+
}, userId?: string | number, callback?: TokenCallback) => Promise<AuthAccount>;
|
|
536
|
+
register: (email: string, password: string, userId?: string | number, callback?: TokenCallback) => Promise<AuthAccount>;
|
|
537
|
+
deleteUserBy: (identifier: {
|
|
474
538
|
accountId?: number;
|
|
475
539
|
email?: string;
|
|
476
540
|
userId?: string;
|
|
477
|
-
})
|
|
478
|
-
addRoleForUserBy(identifier: {
|
|
541
|
+
}) => Promise<void>;
|
|
542
|
+
addRoleForUserBy: (identifier: {
|
|
479
543
|
accountId?: number;
|
|
480
544
|
email?: string;
|
|
481
545
|
userId?: string;
|
|
482
|
-
}, role: number)
|
|
483
|
-
removeRoleForUserBy(identifier: {
|
|
546
|
+
}, role: number) => Promise<void>;
|
|
547
|
+
removeRoleForUserBy: (identifier: {
|
|
484
548
|
accountId?: number;
|
|
485
549
|
email?: string;
|
|
486
550
|
userId?: string;
|
|
487
|
-
}, role: number)
|
|
488
|
-
hasRoleForUserBy(identifier: {
|
|
551
|
+
}, role: number) => Promise<void>;
|
|
552
|
+
hasRoleForUserBy: (identifier: {
|
|
489
553
|
accountId?: number;
|
|
490
554
|
email?: string;
|
|
491
555
|
userId?: string;
|
|
492
|
-
}, role: number)
|
|
493
|
-
changePasswordForUserBy(identifier: {
|
|
556
|
+
}, role: number) => Promise<boolean>;
|
|
557
|
+
changePasswordForUserBy: (identifier: {
|
|
494
558
|
accountId?: number;
|
|
495
559
|
email?: string;
|
|
496
560
|
userId?: string;
|
|
497
|
-
}, password: string)
|
|
498
|
-
setStatusForUserBy(identifier: {
|
|
561
|
+
}, password: string) => Promise<void>;
|
|
562
|
+
setStatusForUserBy: (identifier: {
|
|
499
563
|
accountId?: number;
|
|
500
564
|
email?: string;
|
|
501
565
|
userId?: string;
|
|
502
|
-
}, status: number)
|
|
503
|
-
initiatePasswordResetForUserBy(identifier: {
|
|
566
|
+
}, status: number) => Promise<void>;
|
|
567
|
+
initiatePasswordResetForUserBy: (identifier: {
|
|
504
568
|
accountId?: number;
|
|
505
569
|
email?: string;
|
|
506
570
|
userId?: string;
|
|
507
|
-
}, expiresAfter?: string | number | null, callback?: TokenCallback)
|
|
508
|
-
|
|
571
|
+
}, expiresAfter?: string | number | null, callback?: TokenCallback) => Promise<void>;
|
|
572
|
+
resetPassword: (email: string, expiresAfter?: string | number | null, maxOpenRequests?: number | null, callback?: TokenCallback) => Promise<void>;
|
|
573
|
+
confirmResetPassword: (token: string, password: string) => Promise<{
|
|
574
|
+
accountId: number;
|
|
575
|
+
email: string;
|
|
576
|
+
}>;
|
|
577
|
+
forceLogoutForUserBy: (identifier: {
|
|
509
578
|
accountId?: number;
|
|
510
579
|
email?: string;
|
|
511
580
|
userId?: string;
|
|
512
|
-
})
|
|
581
|
+
}) => Promise<{
|
|
582
|
+
accountId: number;
|
|
583
|
+
}>;
|
|
513
584
|
}
|
|
585
|
+
declare function createAuthContext(config: AuthConfig): AuthContext;
|
|
514
586
|
|
|
515
|
-
declare function createAuthMiddleware(config: AuthConfig): (req: Request, res: Response, next: NextFunction) => Promise<void>;
|
|
516
|
-
|
|
517
|
-
declare function createAuthTables(config: AuthConfig): Promise<void>;
|
|
518
|
-
declare function dropAuthTables(config: AuthConfig): Promise<void>;
|
|
519
|
-
declare function cleanupExpiredTokens(config: AuthConfig): Promise<void>;
|
|
520
|
-
declare function getAuthTableStats(config: AuthConfig): Promise<{
|
|
521
|
-
accounts: number;
|
|
522
|
-
providers: number;
|
|
523
|
-
confirmations: number;
|
|
524
|
-
remembers: number;
|
|
525
|
-
resets: number;
|
|
526
|
-
twoFactorMethods: number;
|
|
527
|
-
twoFactorTokens: number;
|
|
528
|
-
expiredConfirmations: number;
|
|
529
|
-
expiredRemembers: number;
|
|
530
|
-
expiredResets: number;
|
|
531
|
-
expiredTwoFactorTokens: number;
|
|
532
|
-
}>;
|
|
533
|
-
|
|
534
|
-
/**
|
|
535
|
-
* Create a new user account without requiring Express request/response objects.
|
|
536
|
-
* This function is suitable for use in seeders, CLI tools, and other standalone contexts.
|
|
537
|
-
*
|
|
538
|
-
* @param config - Auth configuration containing database connection and settings
|
|
539
|
-
* @param credentials - Email and password for new account
|
|
540
|
-
* @param userId - Optional user ID to link this auth account to. If not provided, a UUID will be generated automatically.
|
|
541
|
-
* @param callback - If provided, account is created unverified and callback receives confirmation token. Create a URL like /confirm/{token} and call confirmEmail() in that handler. If omitted, account is immediately verified.
|
|
542
|
-
* @returns The created account record
|
|
543
|
-
* @throws {EmailTakenError} Email is already registered
|
|
544
|
-
* @throws {InvalidPasswordError} Password doesn't meet length requirements
|
|
545
|
-
*/
|
|
546
587
|
declare function createUser(config: AuthConfig, credentials: {
|
|
547
588
|
email: string;
|
|
548
589
|
password: string;
|
|
549
590
|
}, userId?: string | number, callback?: TokenCallback): Promise<AuthAccount>;
|
|
591
|
+
declare function register(config: AuthConfig, email: string, password: string, userId?: string | number, callback?: TokenCallback): Promise<AuthAccount>;
|
|
592
|
+
declare function deleteUserBy(config: AuthConfig, identifier: {
|
|
593
|
+
accountId?: number;
|
|
594
|
+
email?: string;
|
|
595
|
+
userId?: string;
|
|
596
|
+
}): Promise<void>;
|
|
597
|
+
declare function addRoleForUserBy(config: AuthConfig, identifier: {
|
|
598
|
+
accountId?: number;
|
|
599
|
+
email?: string;
|
|
600
|
+
userId?: string;
|
|
601
|
+
}, role: number): Promise<void>;
|
|
602
|
+
declare function removeRoleForUserBy(config: AuthConfig, identifier: {
|
|
603
|
+
accountId?: number;
|
|
604
|
+
email?: string;
|
|
605
|
+
userId?: string;
|
|
606
|
+
}, role: number): Promise<void>;
|
|
607
|
+
declare function hasRoleForUserBy(config: AuthConfig, identifier: {
|
|
608
|
+
accountId?: number;
|
|
609
|
+
email?: string;
|
|
610
|
+
userId?: string;
|
|
611
|
+
}, role: number): Promise<boolean>;
|
|
612
|
+
declare function changePasswordForUserBy(config: AuthConfig, identifier: {
|
|
613
|
+
accountId?: number;
|
|
614
|
+
email?: string;
|
|
615
|
+
userId?: string;
|
|
616
|
+
}, password: string): Promise<void>;
|
|
617
|
+
declare function setStatusForUserBy(config: AuthConfig, identifier: {
|
|
618
|
+
accountId?: number;
|
|
619
|
+
email?: string;
|
|
620
|
+
userId?: string;
|
|
621
|
+
}, status: number): Promise<void>;
|
|
622
|
+
declare function initiatePasswordResetForUserBy(config: AuthConfig, identifier: {
|
|
623
|
+
accountId?: number;
|
|
624
|
+
email?: string;
|
|
625
|
+
userId?: string;
|
|
626
|
+
}, expiresAfter?: string | number | null, callback?: TokenCallback): Promise<void>;
|
|
627
|
+
declare function resetPassword(config: AuthConfig, email: string, expiresAfter?: string | number | null, maxOpenRequests?: number | null, callback?: TokenCallback): Promise<void>;
|
|
628
|
+
declare function confirmResetPassword(config: AuthConfig, token: string, password: string): Promise<{
|
|
629
|
+
accountId: number;
|
|
630
|
+
email: string;
|
|
631
|
+
}>;
|
|
632
|
+
declare function forceLogoutForUserBy(config: AuthConfig, identifier: {
|
|
633
|
+
accountId?: number;
|
|
634
|
+
email?: string;
|
|
635
|
+
userId?: string;
|
|
636
|
+
}): Promise<{
|
|
637
|
+
accountId: number;
|
|
638
|
+
}>;
|
|
639
|
+
|
|
640
|
+
declare const authFunctions_addRoleForUserBy: typeof addRoleForUserBy;
|
|
641
|
+
declare const authFunctions_changePasswordForUserBy: typeof changePasswordForUserBy;
|
|
642
|
+
declare const authFunctions_confirmResetPassword: typeof confirmResetPassword;
|
|
643
|
+
declare const authFunctions_createUser: typeof createUser;
|
|
644
|
+
declare const authFunctions_deleteUserBy: typeof deleteUserBy;
|
|
645
|
+
declare const authFunctions_forceLogoutForUserBy: typeof forceLogoutForUserBy;
|
|
646
|
+
declare const authFunctions_hasRoleForUserBy: typeof hasRoleForUserBy;
|
|
647
|
+
declare const authFunctions_initiatePasswordResetForUserBy: typeof initiatePasswordResetForUserBy;
|
|
648
|
+
declare const authFunctions_register: typeof register;
|
|
649
|
+
declare const authFunctions_removeRoleForUserBy: typeof removeRoleForUserBy;
|
|
650
|
+
declare const authFunctions_resetPassword: typeof resetPassword;
|
|
651
|
+
declare const authFunctions_setStatusForUserBy: typeof setStatusForUserBy;
|
|
652
|
+
declare namespace authFunctions {
|
|
653
|
+
export { authFunctions_addRoleForUserBy as addRoleForUserBy, authFunctions_changePasswordForUserBy as changePasswordForUserBy, authFunctions_confirmResetPassword as confirmResetPassword, authFunctions_createUser as createUser, authFunctions_deleteUserBy as deleteUserBy, authFunctions_forceLogoutForUserBy as forceLogoutForUserBy, authFunctions_hasRoleForUserBy as hasRoleForUserBy, authFunctions_initiatePasswordResetForUserBy as initiatePasswordResetForUserBy, authFunctions_register as register, authFunctions_removeRoleForUserBy as removeRoleForUserBy, authFunctions_resetPassword as resetPassword, authFunctions_setStatusForUserBy as setStatusForUserBy };
|
|
654
|
+
}
|
|
550
655
|
|
|
551
656
|
type UserIdentifier = {
|
|
552
657
|
accountId?: number;
|
|
@@ -968,6 +1073,63 @@ declare class AuthManager implements AuthManager$1 {
|
|
|
968
1073
|
* Logs out everywhere else, then logs out current session.
|
|
969
1074
|
*/
|
|
970
1075
|
logoutEverywhere(): Promise<void>;
|
|
1076
|
+
private findAccountByIdentifier;
|
|
1077
|
+
createUser(credentials: {
|
|
1078
|
+
email: string;
|
|
1079
|
+
password: string;
|
|
1080
|
+
}, userId?: string | number, callback?: TokenCallback): Promise<AuthAccount>;
|
|
1081
|
+
deleteUserBy(identifier: {
|
|
1082
|
+
accountId?: number;
|
|
1083
|
+
email?: string;
|
|
1084
|
+
userId?: string;
|
|
1085
|
+
}): Promise<void>;
|
|
1086
|
+
addRoleForUserBy(identifier: {
|
|
1087
|
+
accountId?: number;
|
|
1088
|
+
email?: string;
|
|
1089
|
+
userId?: string;
|
|
1090
|
+
}, role: number): Promise<void>;
|
|
1091
|
+
removeRoleForUserBy(identifier: {
|
|
1092
|
+
accountId?: number;
|
|
1093
|
+
email?: string;
|
|
1094
|
+
userId?: string;
|
|
1095
|
+
}, role: number): Promise<void>;
|
|
1096
|
+
hasRoleForUserBy(identifier: {
|
|
1097
|
+
accountId?: number;
|
|
1098
|
+
email?: string;
|
|
1099
|
+
userId?: string;
|
|
1100
|
+
}, role: number): Promise<boolean>;
|
|
1101
|
+
changePasswordForUserBy(identifier: {
|
|
1102
|
+
accountId?: number;
|
|
1103
|
+
email?: string;
|
|
1104
|
+
userId?: string;
|
|
1105
|
+
}, password: string): Promise<void>;
|
|
1106
|
+
setStatusForUserBy(identifier: {
|
|
1107
|
+
accountId?: number;
|
|
1108
|
+
email?: string;
|
|
1109
|
+
userId?: string;
|
|
1110
|
+
}, status: number): Promise<void>;
|
|
1111
|
+
initiatePasswordResetForUserBy(identifier: {
|
|
1112
|
+
accountId?: number;
|
|
1113
|
+
email?: string;
|
|
1114
|
+
userId?: string;
|
|
1115
|
+
}, expiresAfter?: string | number | null, callback?: TokenCallback): Promise<void>;
|
|
1116
|
+
forceLogoutForUserBy(identifier: {
|
|
1117
|
+
accountId?: number;
|
|
1118
|
+
email?: string;
|
|
1119
|
+
userId?: string;
|
|
1120
|
+
}): Promise<void>;
|
|
1121
|
+
/**
|
|
1122
|
+
* Log in as another user (admin function).
|
|
1123
|
+
* Creates a new session as the target user without requiring their password.
|
|
1124
|
+
*
|
|
1125
|
+
* @param identifier - Find user by accountId, email, or userId
|
|
1126
|
+
* @throws {UserNotFoundError} No account matches the identifier
|
|
1127
|
+
*/
|
|
1128
|
+
loginAsUserBy(identifier: {
|
|
1129
|
+
accountId?: number;
|
|
1130
|
+
email?: string;
|
|
1131
|
+
userId?: string;
|
|
1132
|
+
}): Promise<void>;
|
|
971
1133
|
}
|
|
972
1134
|
|
|
973
1135
|
declare abstract class BaseOAuthProvider implements OAuthProvider {
|
|
@@ -1006,4 +1168,4 @@ declare class AzureProvider extends BaseOAuthProvider {
|
|
|
1006
1168
|
protected exchangeCodeForToken(code: string, tokenUrl: string): Promise<string>;
|
|
1007
1169
|
}
|
|
1008
1170
|
|
|
1009
|
-
export { ActivityLogger, type AuthAccount, type AuthActivity, AuthActivityAction, type AuthActivityActionType, type
|
|
1171
|
+
export { ActivityLogger, type AuthAccount, type AuthActivity, AuthActivityAction, type AuthActivityActionType, type AuthConfig, type AuthConfirmation, type AuthContext, AuthError, type AuthManager$1 as AuthManager, type AuthProvider, type AuthRemember, type AuthReset, AuthRole, type AuthSession, AuthStatus, AzureProvider, type AzureProviderConfig, BaseOAuthProvider, ConfirmationExpiredError, ConfirmationNotFoundError, EmailNotVerifiedError, EmailTakenError, GitHubProvider, type GitHubProviderConfig, GoogleProvider, type GoogleProviderConfig, InvalidBackupCodeError, InvalidEmailError, InvalidPasswordError, InvalidTokenError, InvalidTwoFactorCodeError, type OAuthProvider, type OAuthProviderConfig, type OAuthUserData, OtpProvider, ResetDisabledError, ResetExpiredError, ResetNotFoundError, SecondFactorRequiredError, type TokenCallback, TooManyResetsError, TotpProvider, TwoFactorAlreadyEnabledError, type TwoFactorChallenge, TwoFactorExpiredError, TwoFactorManager, TwoFactorMechanism, type TwoFactorMethod, TwoFactorNotSetupError, TwoFactorSetupIncompleteError, type TwoFactorSetupResult, type TwoFactorToken, type UserIdentifier, UserInactiveError, UserNotFoundError, UserNotLoggedInError, addRoleToUser, authFunctions, cleanupExpiredTokens, createAuthContext, createAuthMiddleware, createAuthTables, dropAuthTables, getAuthTableStats, getUserRoles, isValidEmail, removeRoleFromUser, setUserRoles, validateEmail };
|