@digitaldefiance/node-express-suite 2.2.36 → 3.5.0
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/README.md +28 -3
- package/package.json +5 -5
- package/src/application.d.ts +2 -2
- package/src/application.d.ts.map +1 -1
- package/src/application.js +11 -5
- package/src/application.js.map +1 -1
- package/src/backup-code.d.ts +4 -3
- package/src/backup-code.d.ts.map +1 -1
- package/src/backup-code.js.map +1 -1
- package/src/constants.d.ts +1 -1
- package/src/constants.d.ts.map +1 -1
- package/src/constants.js +2 -0
- package/src/constants.js.map +1 -1
- package/src/controllers/base.d.ts +1 -1
- package/src/controllers/base.d.ts.map +1 -1
- package/src/controllers/base.js +4 -3
- package/src/controllers/base.js.map +1 -1
- package/src/controllers/user.d.ts.map +1 -1
- package/src/controllers/user.js +11 -8
- package/src/controllers/user.js.map +1 -1
- package/src/decorators/base-controller.d.ts.map +1 -1
- package/src/decorators/base-controller.js +1 -1
- package/src/decorators/base-controller.js.map +1 -1
- package/src/defaults.d.ts.map +1 -1
- package/src/defaults.js +28 -0
- package/src/defaults.js.map +1 -1
- package/src/documents/email-token.d.ts +1 -1
- package/src/documents/email-token.d.ts.map +1 -1
- package/src/documents/mnemonic.d.ts +1 -1
- package/src/documents/mnemonic.d.ts.map +1 -1
- package/src/documents/role.d.ts +1 -1
- package/src/documents/role.d.ts.map +1 -1
- package/src/documents/used-direct-login-token.d.ts +1 -1
- package/src/documents/used-direct-login-token.d.ts.map +1 -1
- package/src/documents/user-role.d.ts +1 -1
- package/src/documents/user-role.d.ts.map +1 -1
- package/src/documents/user.d.ts +1 -1
- package/src/documents/user.d.ts.map +1 -1
- package/src/environment.d.ts +14 -12
- package/src/environment.d.ts.map +1 -1
- package/src/environment.js +24 -17
- package/src/environment.js.map +1 -1
- package/src/get-timezone.d.ts.map +1 -1
- package/src/get-timezone.js +2 -1
- package/src/get-timezone.js.map +1 -1
- package/src/interfaces/backend-objects/email-token.d.ts +1 -1
- package/src/interfaces/backend-objects/email-token.d.ts.map +1 -1
- package/src/interfaces/backend-objects/request-user.d.ts +1 -1
- package/src/interfaces/backend-objects/request-user.d.ts.map +1 -1
- package/src/interfaces/backend-objects/role.d.ts +1 -1
- package/src/interfaces/backend-objects/role.d.ts.map +1 -1
- package/src/interfaces/backend-objects/user.d.ts +1 -1
- package/src/interfaces/backend-objects/user.d.ts.map +1 -1
- package/src/interfaces/constants.d.ts +3 -0
- package/src/interfaces/constants.d.ts.map +1 -1
- package/src/interfaces/environment.d.ts +14 -10
- package/src/interfaces/environment.d.ts.map +1 -1
- package/src/interfaces/server-init-result.d.ts +14 -13
- package/src/interfaces/server-init-result.d.ts.map +1 -1
- package/src/middlewares/authenticate-crypto.d.ts +2 -1
- package/src/middlewares/authenticate-crypto.d.ts.map +1 -1
- package/src/middlewares/authenticate-crypto.js +1 -1
- package/src/middlewares/authenticate-crypto.js.map +1 -1
- package/src/middlewares/authenticate-token.d.ts +1 -1
- package/src/middlewares/authenticate-token.d.ts.map +1 -1
- package/src/middlewares/authenticate-token.js +10 -10
- package/src/middlewares/authenticate-token.js.map +1 -1
- package/src/middlewares/cleanup-crypto.d.ts.map +1 -1
- package/src/middlewares/cleanup-crypto.js +1 -1
- package/src/middlewares/cleanup-crypto.js.map +1 -1
- package/src/responses/response-builder.d.ts.map +1 -1
- package/src/responses/response-builder.js +2 -1
- package/src/responses/response-builder.js.map +1 -1
- package/src/schemas/email-token.d.ts +8 -5
- package/src/schemas/email-token.d.ts.map +1 -1
- package/src/schemas/email-token.js +2 -2
- package/src/schemas/email-token.js.map +1 -1
- package/src/schemas/mnemonic.d.ts +6 -5
- package/src/schemas/mnemonic.d.ts.map +1 -1
- package/src/schemas/mnemonic.js.map +1 -1
- package/src/schemas/role.d.ts +9 -6
- package/src/schemas/role.d.ts.map +1 -1
- package/src/schemas/role.js +4 -4
- package/src/schemas/role.js.map +1 -1
- package/src/schemas/schema.js +1 -1
- package/src/schemas/schema.js.map +1 -1
- package/src/schemas/used-direct-login-token.d.ts +8 -5
- package/src/schemas/used-direct-login-token.d.ts.map +1 -1
- package/src/schemas/used-direct-login-token.js +2 -2
- package/src/schemas/used-direct-login-token.js.map +1 -1
- package/src/schemas/user-role.d.ts +8 -5
- package/src/schemas/user-role.d.ts.map +1 -1
- package/src/schemas/user-role.js +6 -6
- package/src/schemas/user-role.js.map +1 -1
- package/src/schemas/user.d.ts +6 -5
- package/src/schemas/user.d.ts.map +1 -1
- package/src/schemas/user.js +5 -5
- package/src/schemas/user.js.map +1 -1
- package/src/services/backup-code.d.ts +9 -9
- package/src/services/backup-code.d.ts.map +1 -1
- package/src/services/backup-code.js +3 -2
- package/src/services/backup-code.js.map +1 -1
- package/src/services/checksum.d.ts +1 -1
- package/src/services/checksum.d.ts.map +1 -1
- package/src/services/database-initialization.d.ts +20 -20
- package/src/services/database-initialization.d.ts.map +1 -1
- package/src/services/database-initialization.js +100 -119
- package/src/services/database-initialization.js.map +1 -1
- package/src/services/db-init-cache.d.ts +1 -1
- package/src/services/db-init-cache.d.ts.map +1 -1
- package/src/services/direct-login-token.d.ts +1 -1
- package/src/services/direct-login-token.d.ts.map +1 -1
- package/src/services/direct-login-token.js.map +1 -1
- package/src/services/jwt.d.ts +2 -2
- package/src/services/jwt.d.ts.map +1 -1
- package/src/services/jwt.js.map +1 -1
- package/src/services/mnemonic.d.ts +7 -7
- package/src/services/mnemonic.d.ts.map +1 -1
- package/src/services/mnemonic.js.map +1 -1
- package/src/services/request-user.d.ts +7 -4
- package/src/services/request-user.d.ts.map +1 -1
- package/src/services/request-user.js +5 -4
- package/src/services/request-user.js.map +1 -1
- package/src/services/role.d.ts +16 -16
- package/src/services/role.d.ts.map +1 -1
- package/src/services/role.js +9 -7
- package/src/services/role.js.map +1 -1
- package/src/services/system-user.d.ts +4 -3
- package/src/services/system-user.d.ts.map +1 -1
- package/src/services/system-user.js +1 -1
- package/src/services/system-user.js.map +1 -1
- package/src/services/user.d.ts +30 -24
- package/src/services/user.d.ts.map +1 -1
- package/src/services/user.js +34 -21
- package/src/services/user.js.map +1 -1
- package/src/transactions/transaction-manager.d.ts.map +1 -1
- package/src/transactions/transaction-manager.js +1 -1
- package/src/transactions/transaction-manager.js.map +1 -1
- package/src/types/environment-variables.d.ts +31 -0
- package/src/types/environment-variables.d.ts.map +1 -0
- package/src/types/environment-variables.js +39 -0
- package/src/types/environment-variables.js.map +1 -0
- package/src/types/id-converters.d.ts +28 -0
- package/src/types/id-converters.d.ts.map +1 -0
- package/src/types/id-converters.js +45 -0
- package/src/types/id-converters.js.map +1 -0
- package/src/types/mongoose-helpers.d.ts +11 -0
- package/src/types/mongoose-helpers.d.ts.map +1 -0
- package/src/types/mongoose-helpers.js +6 -0
- package/src/types/mongoose-helpers.js.map +1 -0
- package/src/utils.d.ts +2 -2
- package/src/utils.d.ts.map +1 -1
- package/src/utils.js +15 -6
- package/src/utils.js.map +1 -1
package/src/services/role.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"role.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/role.ts"],"names":[],"mappings":";;;AAAA,0DAAwD;AACxD,wDAImC;AACnC,
|
|
1
|
+
{"version":3,"file":"role.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/role.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Member as BackendMember } from '@digitaldefiance/node-ecies-lib';
|
|
2
|
-
import {
|
|
2
|
+
import { Types } from 'mongoose';
|
|
3
3
|
import { Environment } from '../environment';
|
|
4
|
+
import { IConstants } from '../interfaces/constants';
|
|
4
5
|
/**
|
|
5
6
|
* Service to manage the system member's wallet.
|
|
6
7
|
*/
|
|
@@ -10,7 +11,7 @@ export declare class SystemUserService {
|
|
|
10
11
|
* Initializes and returns the system member's Member instance.
|
|
11
12
|
* The mnemonic should be stored securely in environment variables.
|
|
12
13
|
*/
|
|
13
|
-
static getSystemUser(environment: Environment, constants: IConstants): BackendMember
|
|
14
|
-
static setSystemUser(user: BackendMember
|
|
14
|
+
static getSystemUser(environment: Environment, constants: IConstants): BackendMember<Buffer>;
|
|
15
|
+
static setSystemUser<TID extends string | Types.ObjectId | Buffer | Uint8Array = Buffer>(user: BackendMember<TID>, constants: IConstants): void;
|
|
15
16
|
}
|
|
16
17
|
//# sourceMappingURL=system-user.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-user.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/system-user.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,MAAM,IAAI,aAAa,EAExB,MAAM,iCAAiC,CAAC;AAKzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"system-user.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/system-user.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,MAAM,IAAI,aAAa,EAExB,MAAM,iCAAiC,CAAC;AAKzC,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,UAAU,CAAsC;IAE/D;;;OAGG;WACW,aAAa,CACzB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,UAAU,GACpB,aAAa,CAAC,MAAM,CAAC;WAqCV,aAAa,CACzB,GAAG,SAAS,MAAM,GAAG,KAAK,CAAC,QAAQ,GAAG,MAAM,GAAG,UAAU,GAAG,MAAM,EAClE,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,UAAU,GAAG,IAAI;CAQzD"}
|
|
@@ -21,7 +21,7 @@ class SystemUserService {
|
|
|
21
21
|
});
|
|
22
22
|
}
|
|
23
23
|
const mnemonic = environment.systemMnemonic;
|
|
24
|
-
const eciesService = new node_ecies_lib_1.ECIESService(
|
|
24
|
+
const eciesService = new node_ecies_lib_1.ECIESService(constants.ECIES);
|
|
25
25
|
const { wallet } = eciesService.walletAndSeedFromMnemonic(mnemonic);
|
|
26
26
|
const keyPair = eciesService.walletToSimpleKeyPairBuffer(wallet);
|
|
27
27
|
SystemUserService.systemUser = new node_ecies_lib_1.Member(eciesService, ecies_lib_1.MemberType.System, constants.SystemUser, new ecies_lib_1.EmailString(constants.SystemEmail), keyPair.publicKey, new ecies_lib_1.SecureBuffer(keyPair.privateKey), wallet);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-user.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/system-user.ts"],"names":[],"mappings":";;;AAAA,0DAKoC;AACpC,oEAGyC;AACzC,oEAGyC;
|
|
1
|
+
{"version":3,"file":"system-user.js","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/system-user.ts"],"names":[],"mappings":";;;AAAA,0DAKoC;AACpC,oEAGyC;AACzC,oEAGyC;AAKzC;;GAEG;AACH,MAAa,iBAAiB;IACpB,MAAM,CAAC,UAAU,GAAiC,IAAI,CAAC;IAE/D;;;OAGG;IACI,MAAM,CAAC,aAAa,CACzB,WAAwB,EACxB,SAAqB;QAErB,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,CAAC;YAClC,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;gBAChC,MAAM,IAAI,uCAAsB,CAC9B,mCAAkB,CAAC,uBAAuB,EAC1C;oBACE,IAAI,EAAE,iBAAiB;iBACxB,CACF,CAAC;YACJ,CAAC;YACD,MAAM,QAAQ,GAAiB,WAAW,CAAC,cAAc,CAAC;YAC1D,MAAM,YAAY,GAAG,IAAI,6BAAY,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACvD,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC;YACpE,MAAM,OAAO,GAAG,YAAY,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;YAEjE,iBAAiB,CAAC,UAAU,GAAG,IAAI,uBAAa,CAC9C,YAAY,EACZ,sBAAU,CAAC,MAAM,EACjB,SAAS,CAAC,UAAU,EACpB,IAAI,uBAAW,CAAC,SAAS,CAAC,WAAW,CAAC,EACtC,OAAO,CAAC,SAAS,EACjB,IAAI,wBAAY,CAAC,OAAO,CAAC,UAAU,CAAC,EACpC,MAAM,CACP,CAAC;YACF,IACE,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACtD,WAAW,CAAC,kBAAkB,EAC9B,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,uDAAuD,EAAE;oBACpE,OAAO,EAAE,iBAAiB,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;oBAC/D,QAAQ,EAAE,WAAW,CAAC,kBAAkB;iBACzC,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,OAAO,iBAAiB,CAAC,UAAU,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,aAAa,CAEzB,IAAwB,EAAE,SAAqB;QAC/C,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAU,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,UAAU,EAAE,CAAC;YAC1E,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;QACJ,CAAC;QACD,iBAAiB,CAAC,UAAU,GAAG,IAA6B,CAAC;IAC/D,CAAC;;AAxDH,8CAyDC"}
|
package/src/services/user.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SecureBuffer, SecureString
|
|
1
|
+
import { SecureBuffer, SecureString } from '@digitaldefiance/ecies-lib';
|
|
2
2
|
import { Member as BackendMember, ECIESService } from '@digitaldefiance/node-ecies-lib';
|
|
3
3
|
import { EmailTokenType, IBackupCode, IRequestUserDTO, ITokenRole, IUserBase, IUserDTO } from '@digitaldefiance/suite-core-lib';
|
|
4
4
|
import { Wallet } from '@ethereumjs/wallet';
|
|
@@ -27,19 +27,23 @@ export declare class UserService<T, I extends Types.ObjectId | string, D extends
|
|
|
27
27
|
protected readonly backupCodeService: BackupCodeService<I, D, TTokenRole, TApplication>;
|
|
28
28
|
protected readonly serverUrl: string;
|
|
29
29
|
protected readonly disableEmailSend: boolean;
|
|
30
|
-
|
|
30
|
+
protected readonly idConverter: (id: string) => I;
|
|
31
|
+
protected readonly idGenerator: () => I;
|
|
32
|
+
constructor(application: IApplication, roleService: RoleService<I, D, TTokenRole>, emailService: IEmailService, keyWrappingService: KeyWrappingService, backupCodeService: BackupCodeService<I, D, TTokenRole, TApplication>, idConverter?: (id: string) => I, idGenerator?: () => I);
|
|
33
|
+
toId(id: string): I;
|
|
34
|
+
generateId(): I;
|
|
31
35
|
/**
|
|
32
36
|
* Given a User Document, make a User DTO
|
|
33
37
|
* @param user a User Document
|
|
34
38
|
* @returns An IUserDTO
|
|
35
39
|
*/
|
|
36
|
-
static userToUserDTO(user: IUserDocument | Record<string, unknown>): IUserDTO;
|
|
40
|
+
static userToUserDTO<S extends string, I extends string | Types.ObjectId = Types.ObjectId>(user: IUserDocument<S, I> | Record<string, unknown>): IUserDTO;
|
|
37
41
|
/**
|
|
38
42
|
* Given a User DTO, reconstitute ids and dates
|
|
39
43
|
* @param user a User DTO
|
|
40
44
|
* @returns An IUserBackendObject
|
|
41
45
|
*/
|
|
42
|
-
hydrateUserDTOToBackend(user: IUserDTO): IUserBackendObject<
|
|
46
|
+
hydrateUserDTOToBackend(user: IUserDTO): IUserBackendObject<S, I>;
|
|
43
47
|
/**
|
|
44
48
|
* Create a new email token to send to the user for email verification
|
|
45
49
|
* @param userDoc The user to create the email token for
|
|
@@ -47,7 +51,7 @@ export declare class UserService<T, I extends Types.ObjectId | string, D extends
|
|
|
47
51
|
* @param session The session to use for the query
|
|
48
52
|
* @returns The email token document
|
|
49
53
|
*/
|
|
50
|
-
createEmailToken(userDoc: IUserDocument, type: EmailTokenType, session?: ClientSession): Promise<IEmailTokenDocument>;
|
|
54
|
+
createEmailToken(userDoc: IUserDocument<S, I>, type: EmailTokenType, session?: ClientSession): Promise<IEmailTokenDocument>;
|
|
51
55
|
/**
|
|
52
56
|
* Create and send an email token to the user for email verification
|
|
53
57
|
* @param user The user to send the email token to
|
|
@@ -55,7 +59,9 @@ export declare class UserService<T, I extends Types.ObjectId | string, D extends
|
|
|
55
59
|
* @param session The session to use for the query
|
|
56
60
|
* @returns The email token document
|
|
57
61
|
*/
|
|
58
|
-
createAndSendEmailToken(user: IUserDocument,
|
|
62
|
+
createAndSendEmailToken(user: IUserDocument<S, I> | (Pick<IUserDocument<S, I>, keyof IUserDocument<S, I>> & {
|
|
63
|
+
_id: any;
|
|
64
|
+
}), type?: EmailTokenType, session?: ClientSession, debug?: boolean): Promise<IEmailTokenDocument>;
|
|
59
65
|
/**
|
|
60
66
|
* Create and send an email token directly within an existing transaction
|
|
61
67
|
* @param user The user to send the email token to
|
|
@@ -64,7 +70,7 @@ export declare class UserService<T, I extends Types.ObjectId | string, D extends
|
|
|
64
70
|
* @param debug Whether to enable debug logging
|
|
65
71
|
* @returns The email token document
|
|
66
72
|
*/
|
|
67
|
-
createAndSendEmailTokenDirect(user: IUserDocument, type: EmailTokenType | undefined, session: ClientSession, debug?: boolean): Promise<IEmailTokenDocument>;
|
|
73
|
+
createAndSendEmailTokenDirect(user: IUserDocument<S, I>, type: EmailTokenType | undefined, session: ClientSession, debug?: boolean): Promise<IEmailTokenDocument>;
|
|
68
74
|
/**
|
|
69
75
|
* Send an email token to the user for email verification
|
|
70
76
|
* @param emailToken The email token to send
|
|
@@ -81,7 +87,7 @@ export declare class UserService<T, I extends Types.ObjectId | string, D extends
|
|
|
81
87
|
* @throws InvalidCredentialsError if not found or deleted
|
|
82
88
|
* @throws AccountLockedError | PendingEmailVerificationError | AccountStatusError per status
|
|
83
89
|
*/
|
|
84
|
-
findUser(email?: string, username?: string, session?: ClientSession): Promise<IUserDocument
|
|
90
|
+
findUser(email?: string, username?: string, session?: ClientSession): Promise<IUserDocument<S, I>>;
|
|
85
91
|
/**
|
|
86
92
|
* Finds a user record by ID
|
|
87
93
|
* @param userId The user ID
|
|
@@ -89,7 +95,7 @@ export declare class UserService<T, I extends Types.ObjectId | string, D extends
|
|
|
89
95
|
* @param session The active session, if present
|
|
90
96
|
* @returns The user document
|
|
91
97
|
*/
|
|
92
|
-
findUserById(userId:
|
|
98
|
+
findUserById(userId: I, throwIfNotActive: boolean, session?: ClientSession, select?: ProjectionType<IUserDocument<S, I>>): Promise<IUserDocument<S, I>>;
|
|
93
99
|
/**
|
|
94
100
|
* Ensure required fields are present in a projection for queries that rely on them.
|
|
95
101
|
* Supports string and object-style projections. For inclusion projections, adds fields.
|
|
@@ -102,13 +108,13 @@ export declare class UserService<T, I extends Types.ObjectId | string, D extends
|
|
|
102
108
|
* @param createdBy The user ID of the user creating the new user
|
|
103
109
|
* @returns The filled in user
|
|
104
110
|
*/
|
|
105
|
-
fillUserDefaults(newUser: ICreateUserBasics, createdBy:
|
|
111
|
+
fillUserDefaults(newUser: ICreateUserBasics, createdBy: I, backupCodes: Array<IBackupCode>, encryptedMnemonic: string, userId?: I): IUserBackendObject<S, I>;
|
|
106
112
|
/**
|
|
107
113
|
* Create a new user document from an IUser and unhashed password
|
|
108
114
|
* @param newUser The user object
|
|
109
115
|
* @returns The new user document
|
|
110
116
|
*/
|
|
111
|
-
makeUserDoc(newUser: TUser): Promise<IUserDocument
|
|
117
|
+
makeUserDoc(newUser: TUser): Promise<IUserDocument<S, I>>;
|
|
112
118
|
/**
|
|
113
119
|
* Create a new user.
|
|
114
120
|
* Do not set createdBy to a new (non-existing) ObjectId unless you also set newUserId to it.
|
|
@@ -122,8 +128,8 @@ export declare class UserService<T, I extends Types.ObjectId | string, D extends
|
|
|
122
128
|
* @param password The password to use for the new user (optional, if not provided, mnemonic will be used)
|
|
123
129
|
* @returns The new user document
|
|
124
130
|
*/
|
|
125
|
-
newUser(systemUser: BackendMember, userData: ICreateUserBasics, createdBy?:
|
|
126
|
-
user: IUserDocument
|
|
131
|
+
newUser(systemUser: BackendMember, userData: ICreateUserBasics, createdBy?: I, newUserId?: I, session?: ClientSession, debug?: boolean, password?: string): Promise<{
|
|
132
|
+
user: IUserDocument<S, I>;
|
|
127
133
|
mnemonic: string;
|
|
128
134
|
backupCodes: Array<string>;
|
|
129
135
|
password?: string;
|
|
@@ -146,7 +152,7 @@ export declare class UserService<T, I extends Types.ObjectId | string, D extends
|
|
|
146
152
|
* @param encryptedMnemonic The encrypted mnemonic
|
|
147
153
|
* @returns The recovered mnemonic
|
|
148
154
|
*/
|
|
149
|
-
recoverMnemonic(user: BackendMember
|
|
155
|
+
recoverMnemonic(user: BackendMember<any>, encryptedMnemonic: string): SecureString;
|
|
150
156
|
/**
|
|
151
157
|
* Make a Member from a user document and optional private key
|
|
152
158
|
* @param userDoc The user document
|
|
@@ -155,7 +161,7 @@ export declare class UserService<T, I extends Types.ObjectId | string, D extends
|
|
|
155
161
|
* @param session The current session, if any
|
|
156
162
|
* @returns A promise containing the created Member
|
|
157
163
|
*/
|
|
158
|
-
makeUserFromUserDoc(userDoc: IUserDocument, privateKey?: SecureBuffer, publicKey?: Buffer, mnemonic?: SecureString, wallet?: Wallet, session?: ClientSession): Promise<BackendMember
|
|
164
|
+
makeUserFromUserDoc(userDoc: IUserDocument<S, I>, privateKey?: SecureBuffer, publicKey?: Buffer, mnemonic?: SecureString, wallet?: Wallet, session?: ClientSession): Promise<BackendMember<any>>;
|
|
159
165
|
/**
|
|
160
166
|
* Challenges a given userDoc with a given mnemonic, returns a system and user Member
|
|
161
167
|
* @param userDoc The userDoc in question
|
|
@@ -166,7 +172,7 @@ export declare class UserService<T, I extends Types.ObjectId | string, D extends
|
|
|
166
172
|
* @throws PendingEmailVerificationError if the email is not verified
|
|
167
173
|
* @throws AccountStatusError if the account status is invalid
|
|
168
174
|
*/
|
|
169
|
-
challengeUserWithMnemonic(userDoc: IUserDocument, mnemonic: SecureString, session?: ClientSession): Promise<{
|
|
175
|
+
challengeUserWithMnemonic(userDoc: IUserDocument<S, I>, mnemonic: SecureString, session?: ClientSession): Promise<{
|
|
170
176
|
userMember: BackendMember;
|
|
171
177
|
adminMember: BackendMember;
|
|
172
178
|
}>;
|
|
@@ -179,7 +185,7 @@ export declare class UserService<T, I extends Types.ObjectId | string, D extends
|
|
|
179
185
|
* @returns A promise that resolves to the user document, user member, and system member
|
|
180
186
|
*/
|
|
181
187
|
loginWithChallengeResponse(challengeResponse: string, email?: string, username?: string, session?: ClientSession): Promise<{
|
|
182
|
-
userDoc: IUserDocument
|
|
188
|
+
userDoc: IUserDocument<S, I>;
|
|
183
189
|
userMember: BackendMember;
|
|
184
190
|
adminMember: BackendMember;
|
|
185
191
|
}>;
|
|
@@ -188,7 +194,7 @@ export declare class UserService<T, I extends Types.ObjectId | string, D extends
|
|
|
188
194
|
* @returns The authenticated user document.
|
|
189
195
|
*/
|
|
190
196
|
loginWithClientVerifiedChallenge(usernameOrEmail: string, mnemonic: SecureString, session?: ClientSession): Promise<{
|
|
191
|
-
userDoc: IUserDocument
|
|
197
|
+
userDoc: IUserDocument<S, I>;
|
|
192
198
|
userMember: BackendMember;
|
|
193
199
|
adminMember: BackendMember;
|
|
194
200
|
}>;
|
|
@@ -197,7 +203,7 @@ export declare class UserService<T, I extends Types.ObjectId | string, D extends
|
|
|
197
203
|
* @returns The authenticated user document.
|
|
198
204
|
*/
|
|
199
205
|
loginWithMnemonic(usernameOrEmail: string, mnemonic: SecureString, session?: ClientSession): Promise<{
|
|
200
|
-
userDoc: IUserDocument
|
|
206
|
+
userDoc: IUserDocument<S, I>;
|
|
201
207
|
userMember: BackendMember;
|
|
202
208
|
adminMember: BackendMember;
|
|
203
209
|
}>;
|
|
@@ -206,7 +212,7 @@ export declare class UserService<T, I extends Types.ObjectId | string, D extends
|
|
|
206
212
|
* @returns The authenticated user document.
|
|
207
213
|
*/
|
|
208
214
|
loginWithPassword(usernameOrEmail: string, password: string, session?: ClientSession): Promise<{
|
|
209
|
-
userDoc: IUserDocument
|
|
215
|
+
userDoc: IUserDocument<S, I>;
|
|
210
216
|
userMember: BackendMember;
|
|
211
217
|
adminMember: BackendMember;
|
|
212
218
|
}>;
|
|
@@ -313,8 +319,8 @@ export declare class UserService<T, I extends Types.ObjectId | string, D extends
|
|
|
313
319
|
* @param session The mongoose session, if provided
|
|
314
320
|
* @returns A promise with the user document and user member object
|
|
315
321
|
*/
|
|
316
|
-
verifyDirectLoginChallenge(serverSignedRequest: string, signature:
|
|
317
|
-
userDoc: IUserDocument
|
|
322
|
+
verifyDirectLoginChallenge(serverSignedRequest: string, signature: string, username?: string, email?: string, session?: ClientSession): Promise<{
|
|
323
|
+
userDoc: IUserDocument<S, I>;
|
|
318
324
|
userMember: BackendMember;
|
|
319
325
|
}>;
|
|
320
326
|
/**
|
|
@@ -332,12 +338,12 @@ export declare class UserService<T, I extends Types.ObjectId | string, D extends
|
|
|
332
338
|
* @param session The session to use for the query
|
|
333
339
|
* @returns The user document if the challenge is valid
|
|
334
340
|
*/
|
|
335
|
-
validateEmailLoginTokenChallenge(token: string, signature:
|
|
341
|
+
validateEmailLoginTokenChallenge(token: string, signature: string, session?: ClientSession): Promise<IUserDocument<S, I>>;
|
|
336
342
|
/**
|
|
337
343
|
* Updates the user's last login time atomically
|
|
338
344
|
* @param userId - The ID of the user
|
|
339
345
|
* @returns void
|
|
340
346
|
*/
|
|
341
|
-
updateLastLogin(userId:
|
|
347
|
+
updateLastLogin(userId: I): Promise<void>;
|
|
342
348
|
}
|
|
343
349
|
//# sourceMappingURL=user.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/user.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/user.ts"],"names":[],"mappings":"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"}
|
package/src/services/user.js
CHANGED
|
@@ -6,7 +6,6 @@ const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
|
|
|
6
6
|
const node_ecies_lib_1 = require("@digitaldefiance/node-ecies-lib");
|
|
7
7
|
const suite_core_lib_1 = require("@digitaldefiance/suite-core-lib");
|
|
8
8
|
const crypto_1 = require("crypto");
|
|
9
|
-
const mongodb_1 = require("mongodb");
|
|
10
9
|
const mongoose_1 = require("mongoose");
|
|
11
10
|
const validator_1 = tslib_1.__importDefault(require("validator"));
|
|
12
11
|
const backup_code_1 = require("../backup-code");
|
|
@@ -14,6 +13,7 @@ const base_model_name_1 = require("../enumerations/base-model-name");
|
|
|
14
13
|
const errors_1 = require("../errors");
|
|
15
14
|
const mongoose_validation_1 = require("../errors/mongoose-validation");
|
|
16
15
|
const model_registry_1 = require("../model-registry");
|
|
16
|
+
const id_converters_1 = require("../types/id-converters");
|
|
17
17
|
const utils_1 = require("../utils");
|
|
18
18
|
const base_1 = require("./base");
|
|
19
19
|
const direct_login_token_1 = require("./direct-login-token");
|
|
@@ -29,7 +29,9 @@ class UserService extends base_1.BaseService {
|
|
|
29
29
|
backupCodeService;
|
|
30
30
|
serverUrl;
|
|
31
31
|
disableEmailSend;
|
|
32
|
-
|
|
32
|
+
idConverter;
|
|
33
|
+
idGenerator;
|
|
34
|
+
constructor(application, roleService, emailService, keyWrappingService, backupCodeService, idConverter, idGenerator) {
|
|
33
35
|
super(application);
|
|
34
36
|
this.roleService = roleService;
|
|
35
37
|
this.emailService = emailService;
|
|
@@ -37,6 +39,9 @@ class UserService extends base_1.BaseService {
|
|
|
37
39
|
this.backupCodeService = backupCodeService;
|
|
38
40
|
this.serverUrl = application.environment.serverUrl;
|
|
39
41
|
this.disableEmailSend = application.environment.disableEmailSend;
|
|
42
|
+
this.idConverter =
|
|
43
|
+
idConverter ?? ((id) => new mongoose_1.Types.ObjectId(id));
|
|
44
|
+
this.idGenerator = idGenerator ?? (() => new mongoose_1.Types.ObjectId());
|
|
40
45
|
const config = {
|
|
41
46
|
curveName: this.application.constants.ECIES.CURVE_NAME,
|
|
42
47
|
primaryKeyDerivationPath: this.application.constants.ECIES.PRIMARY_KEY_DERIVATION_PATH,
|
|
@@ -49,6 +54,12 @@ class UserService extends base_1.BaseService {
|
|
|
49
54
|
const mnemonicModel = model_registry_1.ModelRegistry.instance.getTypedModel(base_model_name_1.BaseModelName.Mnemonic);
|
|
50
55
|
this.mnemonicService = new mnemonic_1.MnemonicService(mnemonicModel, application.environment.mnemonicHmacSecret, this.application.constants);
|
|
51
56
|
}
|
|
57
|
+
toId(id) {
|
|
58
|
+
return this.idConverter(id);
|
|
59
|
+
}
|
|
60
|
+
generateId() {
|
|
61
|
+
return this.idGenerator();
|
|
62
|
+
}
|
|
52
63
|
/**
|
|
53
64
|
* Given a User Document, make a User DTO
|
|
54
65
|
* @param user a User Document
|
|
@@ -90,19 +101,21 @@ class UserService extends base_1.BaseService {
|
|
|
90
101
|
hydrateUserDTOToBackend(user) {
|
|
91
102
|
return {
|
|
92
103
|
...user,
|
|
93
|
-
_id:
|
|
104
|
+
_id: this.idConverter(user._id),
|
|
94
105
|
...(user.lastLogin ? { lastLogin: new Date(user.lastLogin) } : {}),
|
|
95
106
|
createdAt: new Date(user.createdAt),
|
|
96
|
-
createdBy:
|
|
107
|
+
createdBy: this.idConverter(user.createdBy),
|
|
97
108
|
updatedAt: new Date(user.updatedAt),
|
|
98
|
-
updatedBy:
|
|
109
|
+
updatedBy: this.idConverter(user.updatedBy),
|
|
99
110
|
...(user.deletedAt ? { deletedAt: new Date(user.deletedAt) } : {}),
|
|
100
111
|
...(user.deletedBy
|
|
101
112
|
? {
|
|
102
|
-
deletedBy:
|
|
113
|
+
deletedBy: this.idConverter(user.deletedBy),
|
|
103
114
|
}
|
|
104
115
|
: {}),
|
|
105
|
-
...(user.mnemonicId
|
|
116
|
+
...(user.mnemonicId
|
|
117
|
+
? { mnemonicId: this.idConverter(user.mnemonicId) }
|
|
118
|
+
: {}),
|
|
106
119
|
};
|
|
107
120
|
}
|
|
108
121
|
/**
|
|
@@ -274,7 +287,6 @@ class UserService extends base_1.BaseService {
|
|
|
274
287
|
case suite_core_lib_1.EmailTokenType.MnemonicRecoveryRequest:
|
|
275
288
|
case suite_core_lib_1.EmailTokenType.PrivateKeyRequest:
|
|
276
289
|
default:
|
|
277
|
-
throw new Error('Invalid email token type');
|
|
278
290
|
throw new suite_core_lib_1.TranslatableSuiteError(suite_core_lib_1.SuiteCoreStringKey.Error_InvalidEmailTokenType);
|
|
279
291
|
}
|
|
280
292
|
const emailSubject = (0, suite_core_lib_1.getSuiteCoreTranslation)(subjectString);
|
|
@@ -328,7 +340,7 @@ class UserService extends base_1.BaseService {
|
|
|
328
340
|
}
|
|
329
341
|
if (!userDoc || userDoc.deletedAt) {
|
|
330
342
|
if (email) {
|
|
331
|
-
throw new
|
|
343
|
+
throw new suite_core_lib_1.InvalidEmailError('Missing');
|
|
332
344
|
}
|
|
333
345
|
throw new suite_core_lib_1.InvalidUsernameError();
|
|
334
346
|
}
|
|
@@ -477,7 +489,7 @@ class UserService extends base_1.BaseService {
|
|
|
477
489
|
* @returns The new user document
|
|
478
490
|
*/
|
|
479
491
|
async newUser(systemUser, userData, createdBy, newUserId, session, debug = false, password) {
|
|
480
|
-
const _newUserId = newUserId ??
|
|
492
|
+
const _newUserId = newUserId ?? this.idGenerator();
|
|
481
493
|
if (!this.application.constants.UsernameRegex.test(userData.username)) {
|
|
482
494
|
throw new suite_core_lib_1.InvalidUsernameError();
|
|
483
495
|
}
|
|
@@ -502,7 +514,7 @@ class UserService extends base_1.BaseService {
|
|
|
502
514
|
let member;
|
|
503
515
|
while (!mnemonic || !member) {
|
|
504
516
|
try {
|
|
505
|
-
const { member: newMember, mnemonic: newMnemonic } = node_ecies_lib_1.Member.newMember(this.eciesService, ecies_lib_1.MemberType.User, userData.username, new ecies_lib_1.EmailString(userData.email), undefined, createdBy);
|
|
517
|
+
const { member: newMember, mnemonic: newMnemonic } = node_ecies_lib_1.Member.newMember(this.eciesService, ecies_lib_1.MemberType.User, userData.username, new ecies_lib_1.EmailString(userData.email), undefined, createdBy ? Buffer.from(String(createdBy), 'hex') : undefined);
|
|
506
518
|
// make sure the new mnemonic is not already in the database
|
|
507
519
|
const mnemonicExists = await this.mnemonicService.mnemonicExists(newMnemonic, sess);
|
|
508
520
|
if (!mnemonicExists) {
|
|
@@ -574,9 +586,7 @@ class UserService extends base_1.BaseService {
|
|
|
574
586
|
* Requires the user not be deleted or inactive
|
|
575
587
|
*/
|
|
576
588
|
async getEncryptedUserBackupCodes(userId, session) {
|
|
577
|
-
const userWithCodes = await this.findUserById(userId, true, session
|
|
578
|
-
backupCodes: 1,
|
|
579
|
-
});
|
|
589
|
+
const userWithCodes = await this.findUserById((0, id_converters_1.convertObjectIdToGenericId)(userId), true, session);
|
|
580
590
|
return userWithCodes.backupCodes;
|
|
581
591
|
}
|
|
582
592
|
/**
|
|
@@ -624,7 +634,9 @@ class UserService extends base_1.BaseService {
|
|
|
624
634
|
async makeUserFromUserDoc(userDoc, privateKey, publicKey, mnemonic, wallet, session) {
|
|
625
635
|
const memberType = await this.roleService.getMemberType(userDoc, session);
|
|
626
636
|
const user = new node_ecies_lib_1.Member(this.eciesService, memberType, userDoc.username, new ecies_lib_1.EmailString(userDoc.email), publicKey ?? Buffer.from(userDoc.publicKey, 'hex'), privateKey, wallet, userDoc._id, new Date(userDoc.createdAt), new Date(userDoc.updatedAt), userDoc.createdBy);
|
|
627
|
-
if ((privateKey?.originalLength ?? -1) > 0 &&
|
|
637
|
+
if ((privateKey?.originalLength ?? -1) > 0 &&
|
|
638
|
+
user.hasPrivateKey &&
|
|
639
|
+
!wallet) {
|
|
628
640
|
user.loadWallet(mnemonic ?? this.recoverMnemonic(user, userDoc.mnemonicRecovery));
|
|
629
641
|
}
|
|
630
642
|
return user;
|
|
@@ -727,7 +739,7 @@ class UserService extends base_1.BaseService {
|
|
|
727
739
|
}
|
|
728
740
|
const userDoc = await this.findUser(email, username, session);
|
|
729
741
|
if (!userDoc && email) {
|
|
730
|
-
throw new
|
|
742
|
+
throw new suite_core_lib_1.InvalidEmailError('Missing');
|
|
731
743
|
}
|
|
732
744
|
else if (!userDoc) {
|
|
733
745
|
throw new suite_core_lib_1.InvalidUsernameError();
|
|
@@ -1022,7 +1034,7 @@ class UserService extends base_1.BaseService {
|
|
|
1022
1034
|
async updateSiteLanguage(userId, newLanguage, session) {
|
|
1023
1035
|
return await this.withTransaction(async (sess) => {
|
|
1024
1036
|
const UserModel = model_registry_1.ModelRegistry.instance.getTypedModel(base_model_name_1.BaseModelName.User);
|
|
1025
|
-
const userDoc = await UserModel.findByIdAndUpdate(
|
|
1037
|
+
const userDoc = await UserModel.findByIdAndUpdate(this.idConverter(userId), {
|
|
1026
1038
|
siteLanguage: newLanguage,
|
|
1027
1039
|
}, { new: true }).session(sess ?? null);
|
|
1028
1040
|
if (!userDoc) {
|
|
@@ -1045,7 +1057,7 @@ class UserService extends base_1.BaseService {
|
|
|
1045
1057
|
async updateDarkMode(userId, newDarkMode, session) {
|
|
1046
1058
|
return await this.withTransaction(async (sess) => {
|
|
1047
1059
|
const UserModel = model_registry_1.ModelRegistry.instance.getTypedModel(base_model_name_1.BaseModelName.User);
|
|
1048
|
-
const userDoc = await UserModel.findByIdAndUpdate(
|
|
1060
|
+
const userDoc = await UserModel.findByIdAndUpdate(this.idConverter(userId), {
|
|
1049
1061
|
darkMode: newDarkMode,
|
|
1050
1062
|
}, { new: true }).session(sess ?? null);
|
|
1051
1063
|
if (!userDoc) {
|
|
@@ -1068,12 +1080,13 @@ class UserService extends base_1.BaseService {
|
|
|
1068
1080
|
async updateUserSettings(userId, settings, session) {
|
|
1069
1081
|
return await this.withTransaction(async (sess) => {
|
|
1070
1082
|
const UserModel = model_registry_1.ModelRegistry.instance.getTypedModel(base_model_name_1.BaseModelName.User);
|
|
1071
|
-
const userDoc = await UserModel.findById(
|
|
1083
|
+
const userDoc = await UserModel.findById(this.idConverter(userId)).session(sess ?? null);
|
|
1072
1084
|
if (!userDoc) {
|
|
1073
1085
|
throw new suite_core_lib_1.UserNotFoundError();
|
|
1074
1086
|
}
|
|
1075
1087
|
// Check if email is changing and if it's already in use
|
|
1076
|
-
if (settings.email &&
|
|
1088
|
+
if (settings.email &&
|
|
1089
|
+
settings.email.toLowerCase() !== userDoc.email.toLowerCase()) {
|
|
1077
1090
|
const existingUser = await UserModel.findOne({
|
|
1078
1091
|
email: settings.email.toLowerCase(),
|
|
1079
1092
|
_id: { $ne: userDoc._id },
|
|
@@ -1115,7 +1128,7 @@ class UserService extends base_1.BaseService {
|
|
|
1115
1128
|
async changePassword(userId, currentPassword, newPassword, session) {
|
|
1116
1129
|
return await this.withTransaction(async (sess) => {
|
|
1117
1130
|
const UserModel = model_registry_1.ModelRegistry.instance.getTypedModel(base_model_name_1.BaseModelName.User);
|
|
1118
|
-
const userDoc = await UserModel.findById(userId).session(sess ?? null);
|
|
1131
|
+
const userDoc = await UserModel.findById(this.idConverter(userId)).session(sess ?? null);
|
|
1119
1132
|
if (!userDoc || !userDoc.passwordWrappedPrivateKey) {
|
|
1120
1133
|
throw new suite_core_lib_1.UserNotFoundError();
|
|
1121
1134
|
}
|