@digitaldefiance/node-express-suite 2.2.36 → 3.5.7

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.
Files changed (154) hide show
  1. package/README.md +32 -3
  2. package/package.json +5 -5
  3. package/src/application.d.ts +2 -2
  4. package/src/application.d.ts.map +1 -1
  5. package/src/application.js +11 -5
  6. package/src/application.js.map +1 -1
  7. package/src/backup-code.d.ts +4 -3
  8. package/src/backup-code.d.ts.map +1 -1
  9. package/src/backup-code.js.map +1 -1
  10. package/src/constants.d.ts +1 -1
  11. package/src/constants.d.ts.map +1 -1
  12. package/src/constants.js +2 -0
  13. package/src/constants.js.map +1 -1
  14. package/src/controllers/base.d.ts +1 -1
  15. package/src/controllers/base.d.ts.map +1 -1
  16. package/src/controllers/base.js +4 -3
  17. package/src/controllers/base.js.map +1 -1
  18. package/src/controllers/user.d.ts.map +1 -1
  19. package/src/controllers/user.js +11 -8
  20. package/src/controllers/user.js.map +1 -1
  21. package/src/decorators/base-controller.d.ts.map +1 -1
  22. package/src/decorators/base-controller.js +1 -1
  23. package/src/decorators/base-controller.js.map +1 -1
  24. package/src/defaults.d.ts.map +1 -1
  25. package/src/defaults.js +28 -0
  26. package/src/defaults.js.map +1 -1
  27. package/src/documents/email-token.d.ts +1 -1
  28. package/src/documents/email-token.d.ts.map +1 -1
  29. package/src/documents/mnemonic.d.ts +1 -1
  30. package/src/documents/mnemonic.d.ts.map +1 -1
  31. package/src/documents/role.d.ts +1 -1
  32. package/src/documents/role.d.ts.map +1 -1
  33. package/src/documents/used-direct-login-token.d.ts +1 -1
  34. package/src/documents/used-direct-login-token.d.ts.map +1 -1
  35. package/src/documents/user-role.d.ts +1 -1
  36. package/src/documents/user-role.d.ts.map +1 -1
  37. package/src/documents/user.d.ts +1 -1
  38. package/src/documents/user.d.ts.map +1 -1
  39. package/src/environment.d.ts +14 -12
  40. package/src/environment.d.ts.map +1 -1
  41. package/src/environment.js +24 -17
  42. package/src/environment.js.map +1 -1
  43. package/src/get-timezone.d.ts.map +1 -1
  44. package/src/get-timezone.js +2 -1
  45. package/src/get-timezone.js.map +1 -1
  46. package/src/interfaces/backend-objects/email-token.d.ts +1 -1
  47. package/src/interfaces/backend-objects/email-token.d.ts.map +1 -1
  48. package/src/interfaces/backend-objects/request-user.d.ts +1 -1
  49. package/src/interfaces/backend-objects/request-user.d.ts.map +1 -1
  50. package/src/interfaces/backend-objects/role.d.ts +1 -1
  51. package/src/interfaces/backend-objects/role.d.ts.map +1 -1
  52. package/src/interfaces/backend-objects/user.d.ts +1 -1
  53. package/src/interfaces/backend-objects/user.d.ts.map +1 -1
  54. package/src/interfaces/constants.d.ts +3 -0
  55. package/src/interfaces/constants.d.ts.map +1 -1
  56. package/src/interfaces/environment.d.ts +14 -10
  57. package/src/interfaces/environment.d.ts.map +1 -1
  58. package/src/interfaces/server-init-result.d.ts +14 -13
  59. package/src/interfaces/server-init-result.d.ts.map +1 -1
  60. package/src/middlewares/authenticate-crypto.d.ts +2 -1
  61. package/src/middlewares/authenticate-crypto.d.ts.map +1 -1
  62. package/src/middlewares/authenticate-crypto.js +1 -1
  63. package/src/middlewares/authenticate-crypto.js.map +1 -1
  64. package/src/middlewares/authenticate-token.d.ts +1 -1
  65. package/src/middlewares/authenticate-token.d.ts.map +1 -1
  66. package/src/middlewares/authenticate-token.js +10 -10
  67. package/src/middlewares/authenticate-token.js.map +1 -1
  68. package/src/middlewares/cleanup-crypto.d.ts.map +1 -1
  69. package/src/middlewares/cleanup-crypto.js +1 -1
  70. package/src/middlewares/cleanup-crypto.js.map +1 -1
  71. package/src/responses/response-builder.d.ts.map +1 -1
  72. package/src/responses/response-builder.js +2 -1
  73. package/src/responses/response-builder.js.map +1 -1
  74. package/src/schemas/email-token.d.ts +8 -5
  75. package/src/schemas/email-token.d.ts.map +1 -1
  76. package/src/schemas/email-token.js +2 -2
  77. package/src/schemas/email-token.js.map +1 -1
  78. package/src/schemas/mnemonic.d.ts +6 -5
  79. package/src/schemas/mnemonic.d.ts.map +1 -1
  80. package/src/schemas/mnemonic.js.map +1 -1
  81. package/src/schemas/role.d.ts +9 -6
  82. package/src/schemas/role.d.ts.map +1 -1
  83. package/src/schemas/role.js +4 -4
  84. package/src/schemas/role.js.map +1 -1
  85. package/src/schemas/schema.js +1 -1
  86. package/src/schemas/schema.js.map +1 -1
  87. package/src/schemas/used-direct-login-token.d.ts +8 -5
  88. package/src/schemas/used-direct-login-token.d.ts.map +1 -1
  89. package/src/schemas/used-direct-login-token.js +2 -2
  90. package/src/schemas/used-direct-login-token.js.map +1 -1
  91. package/src/schemas/user-role.d.ts +8 -5
  92. package/src/schemas/user-role.d.ts.map +1 -1
  93. package/src/schemas/user-role.js +6 -6
  94. package/src/schemas/user-role.js.map +1 -1
  95. package/src/schemas/user.d.ts +6 -5
  96. package/src/schemas/user.d.ts.map +1 -1
  97. package/src/schemas/user.js +5 -5
  98. package/src/schemas/user.js.map +1 -1
  99. package/src/services/backup-code.d.ts +9 -9
  100. package/src/services/backup-code.d.ts.map +1 -1
  101. package/src/services/backup-code.js +3 -2
  102. package/src/services/backup-code.js.map +1 -1
  103. package/src/services/checksum.d.ts +1 -1
  104. package/src/services/checksum.d.ts.map +1 -1
  105. package/src/services/database-initialization.d.ts +20 -20
  106. package/src/services/database-initialization.d.ts.map +1 -1
  107. package/src/services/database-initialization.js +100 -119
  108. package/src/services/database-initialization.js.map +1 -1
  109. package/src/services/db-init-cache.d.ts +1 -1
  110. package/src/services/db-init-cache.d.ts.map +1 -1
  111. package/src/services/direct-login-token.d.ts +1 -1
  112. package/src/services/direct-login-token.d.ts.map +1 -1
  113. package/src/services/direct-login-token.js.map +1 -1
  114. package/src/services/jwt.d.ts +2 -2
  115. package/src/services/jwt.d.ts.map +1 -1
  116. package/src/services/jwt.js.map +1 -1
  117. package/src/services/mnemonic.d.ts +7 -7
  118. package/src/services/mnemonic.d.ts.map +1 -1
  119. package/src/services/mnemonic.js.map +1 -1
  120. package/src/services/request-user.d.ts +7 -4
  121. package/src/services/request-user.d.ts.map +1 -1
  122. package/src/services/request-user.js +5 -4
  123. package/src/services/request-user.js.map +1 -1
  124. package/src/services/role.d.ts +16 -16
  125. package/src/services/role.d.ts.map +1 -1
  126. package/src/services/role.js +9 -7
  127. package/src/services/role.js.map +1 -1
  128. package/src/services/system-user.d.ts +4 -3
  129. package/src/services/system-user.d.ts.map +1 -1
  130. package/src/services/system-user.js +1 -1
  131. package/src/services/system-user.js.map +1 -1
  132. package/src/services/user.d.ts +30 -24
  133. package/src/services/user.d.ts.map +1 -1
  134. package/src/services/user.js +34 -21
  135. package/src/services/user.js.map +1 -1
  136. package/src/transactions/transaction-manager.d.ts.map +1 -1
  137. package/src/transactions/transaction-manager.js +1 -1
  138. package/src/transactions/transaction-manager.js.map +1 -1
  139. package/src/types/environment-variables.d.ts +31 -0
  140. package/src/types/environment-variables.d.ts.map +1 -0
  141. package/src/types/environment-variables.js +39 -0
  142. package/src/types/environment-variables.js.map +1 -0
  143. package/src/types/id-converters.d.ts +28 -0
  144. package/src/types/id-converters.d.ts.map +1 -0
  145. package/src/types/id-converters.js +45 -0
  146. package/src/types/id-converters.js.map +1 -0
  147. package/src/types/mongoose-helpers.d.ts +11 -0
  148. package/src/types/mongoose-helpers.d.ts.map +1 -0
  149. package/src/types/mongoose-helpers.js +6 -0
  150. package/src/types/mongoose-helpers.js.map +1 -0
  151. package/src/utils.d.ts +2 -2
  152. package/src/utils.d.ts.map +1 -1
  153. package/src/utils.js +15 -6
  154. package/src/utils.js.map +1 -1
@@ -11,7 +11,7 @@ import { BackupCodeService } from './backup-code';
11
11
  import { MnemonicService } from './mnemonic';
12
12
  import { RoleService } from './role';
13
13
  export declare abstract class DatabaseInitializationService {
14
- protected static initializationPromises: Map<string, Promise<IFailableResult<IServerInitResult>>>;
14
+ protected static initializationPromises: Map<string, Promise<IFailableResult<IServerInitResult<Types.ObjectId>>>>;
15
15
  protected static initializationLock: Map<string, boolean>;
16
16
  protected static defaultI18nTFunc(str: string, variables?: Record<string, any>, language?: string, application?: IApplication): string;
17
17
  /**
@@ -29,7 +29,7 @@ export declare abstract class DatabaseInitializationService {
29
29
  * @param id The user ID
30
30
  * @returns The generated cache key
31
31
  */
32
- static cacheKey(username: string, email: EmailString, mnemonic: SecureString, id: Types.ObjectId): string;
32
+ static cacheKey<I extends Types.ObjectId | string = Types.ObjectId>(username: string, email: EmailString, mnemonic: SecureString, id: I, idToString?: (id: I) => string): string;
33
33
  /**
34
34
  * Get a cached BackendMember or create a new one if not cached
35
35
  * @param username The username
@@ -41,8 +41,8 @@ export declare abstract class DatabaseInitializationService {
41
41
  * @param createdBy Optional ID of the user who created this member
42
42
  * @returns The cached or newly created BackendMember and the mnemonic used
43
43
  */
44
- static cacheOrNew(username: string, email: EmailString, mnemonic: SecureString | undefined, memberType: MemberType, eciesService: ECIESService, memberId?: Types.ObjectId, createdBy?: Types.ObjectId): {
45
- member: BackendMember;
44
+ static cacheOrNew<I extends Types.ObjectId | string = Types.ObjectId>(username: string, email: EmailString, mnemonic: SecureString | undefined, memberType: MemberType, eciesService: ECIESService, memberId?: I, createdBy?: I, idGenerator?: () => I, idToString?: (id: I) => string): {
45
+ member: BackendMember<I>;
46
46
  mnemonic: SecureString;
47
47
  };
48
48
  /**
@@ -57,27 +57,27 @@ export declare abstract class DatabaseInitializationService {
57
57
  * @returns True if the database was dropped, false if not connected
58
58
  */
59
59
  static dropDatabase(connection: Connection): Promise<boolean>;
60
- static getInitOptions(application: IApplication): {
61
- adminId?: Types.ObjectId;
60
+ static getInitOptions<I extends Types.ObjectId | string = Types.ObjectId>(application: IApplication): {
61
+ adminId?: I;
62
62
  adminMnemonic?: SecureString;
63
63
  adminPassword?: SecureString;
64
- adminRoleId?: Types.ObjectId;
65
- adminUserRoleId?: Types.ObjectId;
64
+ adminRoleId?: I;
65
+ adminUserRoleId?: I;
66
66
  adminBackupCodes?: BackupCode[];
67
- memberId?: Types.ObjectId;
67
+ memberId?: I;
68
68
  memberMnemonic?: SecureString;
69
69
  memberPassword?: SecureString;
70
- memberRoleId?: Types.ObjectId;
71
- memberUserRoleId?: Types.ObjectId;
70
+ memberRoleId?: I;
71
+ memberUserRoleId?: I;
72
72
  memberBackupCodes?: BackupCode[];
73
- systemId?: Types.ObjectId;
73
+ systemId?: I;
74
74
  systemMnemonic?: SecureString;
75
75
  systemPassword?: SecureString;
76
- systemRoleId?: Types.ObjectId;
77
- systemUserRoleId?: Types.ObjectId;
76
+ systemRoleId?: I;
77
+ systemUserRoleId?: I;
78
78
  systemBackupCodes?: BackupCode[];
79
79
  };
80
- static serverInitResultHash(serverInitResult: IServerInitResult): string;
80
+ static serverInitResultHash<I extends Types.ObjectId | string = Types.ObjectId>(serverInitResult: IServerInitResult<I>, idToString?: (id: I) => string): string;
81
81
  /**
82
82
  * Initialize the user database with default users and roles (with dependency injection)
83
83
  * @param application The application
@@ -88,16 +88,16 @@ export declare abstract class DatabaseInitializationService {
88
88
  * @param backupCodeService The backup code service
89
89
  * @returns The result of the initialization
90
90
  */
91
- static initUserDbWithServices(application: IApplication, keyWrappingService: KeyWrappingService, mnemonicService: MnemonicService, eciesService: ECIESService, roleService: RoleService, backupCodeService: BackupCodeService): Promise<IDBInitResult<IServerInitResult>>;
92
- static serverInitResultsToDotEnv(result: IServerInitResult): string;
93
- static printServerInitResults(result: IServerInitResult, printDotEnv?: boolean): void;
94
- static setEnvFromInitResults(result: IServerInitResult): void;
91
+ static initUserDbWithServices<I extends Types.ObjectId | string = Types.ObjectId>(application: IApplication, keyWrappingService: KeyWrappingService, mnemonicService: MnemonicService<I>, eciesService: ECIESService, roleService: RoleService<I>, backupCodeService: BackupCodeService<I>, idGenerator?: () => I, idToString?: (id: I) => string): Promise<IDBInitResult<IServerInitResult<I>>>;
92
+ static serverInitResultsToDotEnv<I extends Types.ObjectId | string = Types.ObjectId>(serverInitResult: IServerInitResult<I>, idToString?: (id: I) => string): string;
93
+ static printServerInitResults<I extends Types.ObjectId | string = Types.ObjectId>(result: IServerInitResult<I>, printDotEnv?: boolean, idToString?: (id: I) => string): void;
94
+ static setEnvFromInitResults<I extends Types.ObjectId | string = Types.ObjectId>(result: IServerInitResult<I>, idToString?: (id: I) => string): void;
95
95
  /**
96
96
  * Initialize the user database with default users and roles (convenience method)
97
97
  * This method creates the necessary services and calls initUserDbWithServices
98
98
  * @param application The application
99
99
  * @returns The result of the initialization
100
100
  */
101
- static initUserDb(application: IApplication): Promise<IFailableResult<IServerInitResult>>;
101
+ static initUserDb<I extends Types.ObjectId | string = Types.ObjectId>(application: IApplication, idGenerator?: () => I, idToString?: (id: I) => string): Promise<IFailableResult<IServerInitResult<I>>>;
102
102
  }
103
103
  //# sourceMappingURL=database-initialization.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"database-initialization.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/database-initialization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"database-initialization.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-node-express-suite/src/services/database-initialization.ts"],"names":[],"mappings":"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"}
@@ -8,11 +8,11 @@ const suite_core_lib_1 = require("@digitaldefiance/suite-core-lib");
8
8
  const crc_1 = require("crc");
9
9
  const crypto_1 = require("crypto");
10
10
  const mongodb_1 = require("mongodb");
11
- const mongoose_1 = require("mongoose");
12
11
  const backup_code_1 = require("../backup-code");
13
12
  const base_model_name_1 = require("../enumerations/base-model-name");
14
13
  const model_registry_1 = require("../model-registry");
15
14
  const key_wrapping_1 = require("../services/key-wrapping");
15
+ const id_converters_1 = require("../types/id-converters");
16
16
  const utils_1 = require("../utils");
17
17
  const backup_code_2 = require("./backup-code");
18
18
  const mnemonic_1 = require("./mnemonic");
@@ -45,8 +45,8 @@ class DatabaseInitializationService {
45
45
  * @param id The user ID
46
46
  * @returns The generated cache key
47
47
  */
48
- static cacheKey(username, email, mnemonic, id) {
49
- const combined = `${username}|${email.email}|${mnemonic.value}|${id.toString()}`;
48
+ static cacheKey(username, email, mnemonic, id, idToString = (id) => String(id)) {
49
+ const combined = `${username}|${email.email}|${mnemonic.value}|${idToString(id)}`;
50
50
  const buffer = Buffer.from(combined, 'utf-8');
51
51
  const crcHash = (0, crc_1.crc32)(buffer);
52
52
  return crcHash.toString(16).padStart(8, '0');
@@ -62,10 +62,14 @@ class DatabaseInitializationService {
62
62
  * @param createdBy Optional ID of the user who created this member
63
63
  * @returns The cached or newly created BackendMember and the mnemonic used
64
64
  */
65
- static cacheOrNew(username, email, mnemonic, memberType, eciesService, memberId, createdBy) {
65
+ static cacheOrNew(username, email, mnemonic, memberType, eciesService, memberId, createdBy, idGenerator, idToString = (id) => String(id)) {
66
66
  const m = this.mnemonicOrNew(mnemonic, eciesService);
67
- const newId = memberId ? memberId : new mongodb_1.ObjectId();
68
- const key = DatabaseInitializationService.cacheKey(username, email, m, newId);
67
+ const newId = memberId
68
+ ? memberId
69
+ : idGenerator
70
+ ? idGenerator()
71
+ : (0, id_converters_1.convertObjectIdToGenericId)(new mongodb_1.ObjectId());
72
+ const key = DatabaseInitializationService.cacheKey(username, email, m, newId, idToString);
69
73
  if (!global.__MEMBER_CACHE__) {
70
74
  global.__MEMBER_CACHE__ = new Map();
71
75
  }
@@ -133,86 +137,63 @@ class DatabaseInitializationService {
133
137
  return connection.db.dropDatabase();
134
138
  }
135
139
  static getInitOptions(application) {
140
+ const env = application.environment;
136
141
  return {
137
- adminId: application.environment.adminId
138
- ? application.environment.adminId
142
+ adminId: env.adminId,
143
+ adminMnemonic: env.adminMnemonic?.hasValue
144
+ ? env.adminMnemonic
139
145
  : undefined,
140
- adminMnemonic: application.environment.adminMnemonic?.hasValue
141
- ? application.environment.adminMnemonic
146
+ adminPassword: env.adminPassword?.hasValue
147
+ ? env.adminPassword
142
148
  : undefined,
143
- adminPassword: application.environment.adminPassword?.hasValue
144
- ? application.environment.adminPassword
149
+ adminRoleId: env.adminRoleId,
150
+ adminUserRoleId: env.adminUserRoleId,
151
+ adminBackupCodes: env.adminBackupCodes,
152
+ memberId: env.memberId,
153
+ memberMnemonic: env.memberMnemonic?.hasValue
154
+ ? env.memberMnemonic
145
155
  : undefined,
146
- adminRoleId: application.environment.adminRoleId
147
- ? application.environment.adminRoleId
156
+ memberPassword: env.memberPassword?.hasValue
157
+ ? env.memberPassword
148
158
  : undefined,
149
- adminUserRoleId: application.environment.adminUserRoleId
150
- ? application.environment.adminUserRoleId
159
+ memberRoleId: env.memberRoleId,
160
+ memberUserRoleId: env.memberUserRoleId,
161
+ memberBackupCodes: env.memberBackupCodes,
162
+ systemId: env.systemId,
163
+ systemMnemonic: env.systemMnemonic?.hasValue
164
+ ? env.systemMnemonic
151
165
  : undefined,
152
- adminBackupCodes: application.environment.adminBackupCodes
153
- ? application.environment.adminBackupCodes
154
- : undefined,
155
- memberId: application.environment.memberId
156
- ? application.environment.memberId
157
- : undefined,
158
- memberMnemonic: application.environment.memberMnemonic?.hasValue
159
- ? application.environment.memberMnemonic
160
- : undefined,
161
- memberPassword: application.environment.memberPassword?.hasValue
162
- ? application.environment.memberPassword
163
- : undefined,
164
- memberRoleId: application.environment.memberRoleId
165
- ? application.environment.memberRoleId
166
- : undefined,
167
- memberUserRoleId: application.environment.memberUserRoleId
168
- ? application.environment.memberUserRoleId
169
- : undefined,
170
- memberBackupCodes: application.environment.memberBackupCodes
171
- ? application.environment.memberBackupCodes
172
- : undefined,
173
- systemId: application.environment.systemId
174
- ? application.environment.systemId
175
- : undefined,
176
- systemMnemonic: application.environment.systemMnemonic?.hasValue
177
- ? application.environment.systemMnemonic
178
- : undefined,
179
- systemPassword: application.environment.systemPassword?.hasValue
180
- ? application.environment.systemPassword
181
- : undefined,
182
- systemRoleId: application.environment.systemRoleId
183
- ? application.environment.systemRoleId
184
- : undefined,
185
- systemUserRoleId: application.environment.systemUserRoleId
186
- ? application.environment.systemUserRoleId
187
- : undefined,
188
- systemBackupCodes: application.environment.systemBackupCodes
189
- ? application.environment.systemBackupCodes
166
+ systemPassword: env.systemPassword?.hasValue
167
+ ? env.systemPassword
190
168
  : undefined,
169
+ systemRoleId: env.systemRoleId,
170
+ systemUserRoleId: env.systemUserRoleId,
171
+ systemBackupCodes: env.systemBackupCodes,
191
172
  };
192
173
  }
193
- static serverInitResultHash(serverInitResult) {
174
+ static serverInitResultHash(serverInitResult, idToString = (id) => String(id)) {
194
175
  const h = (0, crypto_1.createHash)('sha256');
195
- h.update(serverInitResult.adminUser._id.toHexString());
196
- h.update(serverInitResult.adminRole._id.toHexString());
197
- h.update(serverInitResult.adminUserRole._id.toHexString());
176
+ h.update(idToString(serverInitResult.adminUser._id));
177
+ h.update(idToString(serverInitResult.adminRole._id));
178
+ h.update(idToString(serverInitResult.adminUserRole._id));
198
179
  h.update(serverInitResult.adminUsername);
199
180
  h.update(serverInitResult.adminEmail);
200
181
  h.update(serverInitResult.adminMnemonic);
201
182
  h.update(serverInitResult.adminPassword);
202
183
  h.update(serverInitResult.adminUser.publicKey);
203
184
  serverInitResult.adminBackupCodes.map((bc) => h.update(bc));
204
- h.update(serverInitResult.memberUser._id.toHexString());
205
- h.update(serverInitResult.memberRole._id.toHexString());
206
- h.update(serverInitResult.memberUserRole._id.toHexString());
185
+ h.update(idToString(serverInitResult.memberUser._id));
186
+ h.update(idToString(serverInitResult.memberRole._id));
187
+ h.update(idToString(serverInitResult.memberUserRole._id));
207
188
  h.update(serverInitResult.memberUsername);
208
189
  h.update(serverInitResult.memberEmail);
209
190
  h.update(serverInitResult.memberMnemonic);
210
191
  h.update(serverInitResult.memberPassword);
211
192
  h.update(serverInitResult.memberUser.publicKey);
212
193
  serverInitResult.memberBackupCodes.map((bc) => h.update(bc));
213
- h.update(serverInitResult.systemUser._id.toHexString());
214
- h.update(serverInitResult.systemRole._id.toHexString());
215
- h.update(serverInitResult.systemUserRole._id.toHexString());
194
+ h.update(idToString(serverInitResult.systemUser._id));
195
+ h.update(idToString(serverInitResult.systemRole._id));
196
+ h.update(idToString(serverInitResult.systemUserRole._id));
216
197
  h.update(serverInitResult.systemUsername);
217
198
  h.update(serverInitResult.systemEmail);
218
199
  h.update(serverInitResult.systemMnemonic);
@@ -231,21 +212,23 @@ class DatabaseInitializationService {
231
212
  * @param backupCodeService The backup code service
232
213
  * @returns The result of the initialization
233
214
  */
234
- static async initUserDbWithServices(application, keyWrappingService, mnemonicService, eciesService, roleService, backupCodeService) {
215
+ static async initUserDbWithServices(application, keyWrappingService, mnemonicService, eciesService, roleService, backupCodeService, idGenerator, idToString = (id) => application.constants.idProvider.idToString(id)) {
235
216
  const engine = (0, suite_core_lib_1.getSuiteCoreI18nEngine)({ constants: application.constants });
236
217
  const isTestEnvironment = process.env['NODE_ENV'] === 'test';
237
218
  const options = DatabaseInitializationService.getInitOptions(application);
219
+ const effectiveIdGenerator = (idGenerator ??
220
+ (() => application.environment.idAdapter(application.constants.idProvider.generate())));
238
221
  const UserModel = model_registry_1.ModelRegistry.instance.getTypedModel(base_model_name_1.BaseModelName.User);
239
222
  const RoleModel = model_registry_1.ModelRegistry.instance.getTypedModel(base_model_name_1.BaseModelName.Role);
240
- const adminUserId = options.adminId ?? new mongoose_1.Types.ObjectId();
241
- const adminRoleId = options.adminRoleId ?? new mongoose_1.Types.ObjectId();
242
- const adminUserRoleId = options.adminUserRoleId ?? new mongoose_1.Types.ObjectId();
243
- const memberUserId = options.memberId ?? new mongoose_1.Types.ObjectId();
244
- const memberRoleId = options.memberRoleId ?? new mongoose_1.Types.ObjectId();
245
- const memberUserRoleId = options.memberUserRoleId ?? new mongoose_1.Types.ObjectId();
246
- const systemUserId = options.systemId ?? new mongoose_1.Types.ObjectId();
247
- const systemRoleId = options.systemRoleId ?? new mongoose_1.Types.ObjectId();
248
- const systemUserRoleId = options.systemUserRoleId ?? new mongoose_1.Types.ObjectId();
223
+ const adminUserId = options.adminId ?? effectiveIdGenerator();
224
+ const adminRoleId = options.adminRoleId ?? effectiveIdGenerator();
225
+ const adminUserRoleId = options.adminUserRoleId ?? effectiveIdGenerator();
226
+ const memberUserId = options.memberId ?? effectiveIdGenerator();
227
+ const memberRoleId = options.memberRoleId ?? effectiveIdGenerator();
228
+ const memberUserRoleId = options.memberUserRoleId ?? effectiveIdGenerator();
229
+ const systemUserId = options.systemId ?? effectiveIdGenerator();
230
+ const systemRoleId = options.systemRoleId ?? effectiveIdGenerator();
231
+ const systemUserRoleId = options.systemUserRoleId ?? effectiveIdGenerator();
249
232
  // Check for existing users and roles with optimized queries
250
233
  // Use lean() for better performance on read-only operations
251
234
  const [existingUsers, existingRoles] = await Promise.all([
@@ -429,7 +412,7 @@ class DatabaseInitializationService {
429
412
  }
430
413
  systemRole = systemRoleDocs[0];
431
414
  }
432
- const systemUser = DatabaseInitializationService.cacheOrNew(application.constants.SystemUser, new ecies_lib_1.EmailString(application.constants.SystemEmail), options.systemMnemonic, ecies_lib_1.MemberType.System, eciesService, options.systemId, options.systemId);
415
+ const systemUser = DatabaseInitializationService.cacheOrNew(application.constants.SystemUser, new ecies_lib_1.EmailString(application.constants.SystemEmail), options.systemMnemonic, ecies_lib_1.MemberType.System, eciesService, systemUserId, systemUserId, effectiveIdGenerator, idToString);
433
416
  backupCodeService.setSystemUser(systemUser.member);
434
417
  system_user_1.SystemUserService.setSystemUser(systemUser.member, application.constants);
435
418
  // Encrypt mnemonic for recovery
@@ -484,7 +467,7 @@ class DatabaseInitializationService {
484
467
  NAME: suite_core_lib_1.SuiteCoreStringKey.Common_System,
485
468
  }));
486
469
  }
487
- const adminUser = DatabaseInitializationService.cacheOrNew(application.constants.AdministratorUser, new ecies_lib_1.EmailString(application.constants.AdministratorEmail), options.adminMnemonic, ecies_lib_1.MemberType.User, eciesService, options.adminId, systemDoc._id);
470
+ const adminUser = DatabaseInitializationService.cacheOrNew(application.constants.AdministratorUser, new ecies_lib_1.EmailString(application.constants.AdministratorEmail), options.adminMnemonic, ecies_lib_1.MemberType.User, eciesService, adminUserId, systemDoc._id, effectiveIdGenerator, idToString);
488
471
  // Encrypt mnemonic for recovery
489
472
  const adminEncryptedMnemonic = adminUser.member
490
473
  .encryptData(Buffer.from(adminUser.mnemonic.value ?? '', 'utf-8'))
@@ -536,7 +519,7 @@ class DatabaseInitializationService {
536
519
  NAME: engine.translate(suite_core_lib_1.SuiteCoreComponentId, suite_core_lib_1.SuiteCoreStringKey.Common_Admin),
537
520
  }));
538
521
  }
539
- const memberUser = DatabaseInitializationService.cacheOrNew(application.constants.MemberUser, new ecies_lib_1.EmailString(application.constants.MemberEmail), options.memberMnemonic, ecies_lib_1.MemberType.User, eciesService, options.memberId, systemDoc._id);
522
+ const memberUser = DatabaseInitializationService.cacheOrNew(application.constants.MemberUser, new ecies_lib_1.EmailString(application.constants.MemberEmail), options.memberMnemonic, ecies_lib_1.MemberType.User, eciesService, memberUserId, systemDoc._id, effectiveIdGenerator, idToString);
540
523
  const memberPasswordSecure = options.memberPassword
541
524
  ? options.memberPassword
542
525
  : new ecies_lib_1.SecureString(this.generatePassword(16));
@@ -669,38 +652,38 @@ class DatabaseInitializationService {
669
652
  };
670
653
  }
671
654
  }
672
- static serverInitResultsToDotEnv(result) {
673
- return `ADMIN_ID="${result.adminUser._id.toHexString()}"
674
- ADMIN_MNEMONIC="${result.adminMnemonic}"
675
- ADMIN_ROLE_ID="${result.adminRole._id.toString()}"
676
- ADMIN_USER_ROLE_ID="${result.adminUserRole._id.toString()}"
677
- ADMIN_PASSWORD="${result.adminPassword}"
678
- MEMBER_ID="${result.memberUser._id.toHexString()}"
679
- MEMBER_MNEMONIC="${result.memberMnemonic}"
680
- MEMBER_ROLE_ID="${result.memberRole._id.toString()}"
681
- MEMBER_USER_ROLE_ID="${result.memberUserRole._id.toString()}"
682
- MEMBER_PASSWORD="${result.memberPassword}"
683
- SYSTEM_ID="${result.systemUser._id.toHexString()}"
684
- SYSTEM_MNEMONIC="${result.systemMnemonic}"
685
- SYSTEM_PUBLIC_KEY="${result.systemUser.publicKey}"
686
- SYSTEM_ROLE_ID="${result.systemRole._id.toString()}"
687
- SYSTEM_USER_ROLE_ID="${result.systemUserRole._id.toString()}"
688
- SYSTEM_PASSWORD="${result.systemPassword}"
655
+ static serverInitResultsToDotEnv(serverInitResult, idToString = (id) => String(id)) {
656
+ return `ADMIN_ID="${idToString(serverInitResult.adminUser._id)}"
657
+ ADMIN_MNEMONIC="${serverInitResult.adminMnemonic}"
658
+ ADMIN_ROLE_ID="${idToString(serverInitResult.adminRole._id)}"
659
+ ADMIN_USER_ROLE_ID="${idToString(serverInitResult.adminUserRole._id)}"
660
+ ADMIN_PASSWORD="${serverInitResult.adminPassword}"
661
+ MEMBER_ID="${idToString(serverInitResult.memberUser._id)}"
662
+ MEMBER_MNEMONIC="${serverInitResult.memberMnemonic}"
663
+ MEMBER_ROLE_ID="${idToString(serverInitResult.memberRole._id)}"
664
+ MEMBER_USER_ROLE_ID="${idToString(serverInitResult.memberUserRole._id)}"
665
+ MEMBER_PASSWORD="${serverInitResult.memberPassword}"
666
+ SYSTEM_ID="${idToString(serverInitResult.systemUser._id)}"
667
+ SYSTEM_MNEMONIC="${serverInitResult.systemMnemonic}"
668
+ SYSTEM_PUBLIC_KEY="${serverInitResult.systemUser.publicKey}"
669
+ SYSTEM_ROLE_ID="${idToString(serverInitResult.systemRole._id)}"
670
+ SYSTEM_USER_ROLE_ID="${idToString(serverInitResult.systemUserRole._id)}"
671
+ SYSTEM_PASSWORD="${serverInitResult.systemPassword}"
689
672
  `;
690
673
  }
691
- static printServerInitResults(result, printDotEnv = true) {
674
+ static printServerInitResults(result, printDotEnv = true, idToString = (id) => String(id)) {
692
675
  (0, utils_1.debugLog)(true, 'log', this.defaultI18nTFunc('\n=== {{SuiteCoreStringKey.Admin_AccountCredentials}} ==='));
693
676
  (0, utils_1.directLog)(true, 'log', this.defaultI18nTFunc('{{SuiteCoreStringKey.Common_System}} {{SuiteCoreStringKey.Common_ID}}: {id}', {
694
- id: result.systemUser._id.toHexString(),
677
+ id: idToString(result.systemUser._id),
695
678
  }));
696
679
  (0, utils_1.directLog)(true, 'log', this.defaultI18nTFunc('{{SuiteCoreStringKey.Common_System}} {{SuiteCoreStringKey.Common_Role}}: {roleName}', {
697
680
  roleName: result.systemRole.name,
698
681
  }));
699
682
  (0, utils_1.directLog)(true, 'log', this.defaultI18nTFunc('{{SuiteCoreStringKey.Common_System}} {{SuiteCoreStringKey.Common_Role}} {{SuiteCoreStringKey.Common_ID}}: {roleId}', {
700
- roleId: result.systemRole._id.toString(),
683
+ roleId: idToString(result.systemRole._id),
701
684
  }));
702
685
  (0, utils_1.directLog)(true, 'log', this.defaultI18nTFunc('{{SuiteCoreStringKey.Common_System}} {{SuiteCoreStringKey.Common_User}} {{SuiteCoreStringKey.Common_Role}} {{SuiteCoreStringKey.Common_ID}}: {userRoleId}', {
703
- userRoleId: result.systemUserRole._id.toString(),
686
+ userRoleId: idToString(result.systemUserRole._id),
704
687
  }));
705
688
  (0, utils_1.directLog)(true, 'log', this.defaultI18nTFunc('{{SuiteCoreStringKey.Common_System}} {{SuiteCoreStringKey.Common_Username}}: {username}', {
706
689
  username: result.systemUsername,
@@ -720,16 +703,16 @@ SYSTEM_PASSWORD="${result.systemPassword}"
720
703
  (0, utils_1.directLog)(true, 'log', `${this.defaultI18nTFunc('{{SuiteCoreStringKey.Common_System}} {{SuiteCoreStringKey.Common_BackupCodes}}')}: ${result.systemBackupCodes.join(', ')}`);
721
704
  (0, utils_1.directLog)(true, 'log', '');
722
705
  (0, utils_1.directLog)(true, 'log', this.defaultI18nTFunc('{{SuiteCoreStringKey.Common_Admin}} {{SuiteCoreStringKey.Common_ID}}: {id}', {
723
- id: result.adminUser._id.toHexString(),
706
+ id: idToString(result.adminUser._id),
724
707
  }));
725
708
  (0, utils_1.directLog)(true, 'log', this.defaultI18nTFunc('{{SuiteCoreStringKey.Common_Admin}} {{SuiteCoreStringKey.Common_Role}}: {roleName}', {
726
709
  roleName: result.adminRole.name,
727
710
  }));
728
711
  (0, utils_1.directLog)(true, 'log', this.defaultI18nTFunc('{{SuiteCoreStringKey.Common_Admin}} {{SuiteCoreStringKey.Common_Role}} {{SuiteCoreStringKey.Common_ID}}: {roleId}', {
729
- roleId: result.adminRole._id.toString(),
712
+ roleId: idToString(result.adminRole._id),
730
713
  }));
731
714
  (0, utils_1.directLog)(true, 'log', this.defaultI18nTFunc('{{SuiteCoreStringKey.Common_Admin}} {{SuiteCoreStringKey.Common_User}} {{SuiteCoreStringKey.Common_Role}} {{SuiteCoreStringKey.Common_ID}}: {userRoleId}', {
732
- userRoleId: result.adminUserRole._id.toString(),
715
+ userRoleId: idToString(result.adminUserRole._id),
733
716
  }));
734
717
  (0, utils_1.directLog)(true, 'log', this.defaultI18nTFunc('{{SuiteCoreStringKey.Common_Admin}} {{SuiteCoreStringKey.Common_Username}}: {username}', {
735
718
  username: result.adminUsername,
@@ -749,16 +732,16 @@ SYSTEM_PASSWORD="${result.systemPassword}"
749
732
  (0, utils_1.directLog)(true, 'log', `${this.defaultI18nTFunc('{{SuiteCoreStringKey.Common_Admin}} {{SuiteCoreStringKey.Common_BackupCodes}}')}: ${result.adminBackupCodes.join(', ')}`);
750
733
  (0, utils_1.directLog)(true, 'log', '');
751
734
  (0, utils_1.directLog)(true, 'log', this.defaultI18nTFunc('{{SuiteCoreStringKey.Common_Member}} {{SuiteCoreStringKey.Common_ID}}: {id}', {
752
- id: result.memberUser._id.toHexString(),
735
+ id: idToString(result.memberUser._id),
753
736
  }));
754
737
  (0, utils_1.directLog)(true, 'log', this.defaultI18nTFunc('{{SuiteCoreStringKey.Common_Member}} {{SuiteCoreStringKey.Common_Role}}: {roleName}', {
755
738
  roleName: result.memberRole.name,
756
739
  }));
757
740
  (0, utils_1.directLog)(true, 'log', this.defaultI18nTFunc('{{SuiteCoreStringKey.Common_Member}} {{SuiteCoreStringKey.Common_Role}} {{SuiteCoreStringKey.Common_ID}}: {roleId}', {
758
- roleId: result.memberRole._id.toString(),
741
+ roleId: idToString(result.memberRole._id),
759
742
  }));
760
743
  (0, utils_1.directLog)(true, 'log', this.defaultI18nTFunc('{{SuiteCoreStringKey.Common_Member}} {{SuiteCoreStringKey.Common_User}} {{SuiteCoreStringKey.Common_Role}} {{SuiteCoreStringKey.Common_ID}}: {userRoleId}', {
761
- userRoleId: result.memberUserRole._id.toString(),
744
+ userRoleId: idToString(result.memberUserRole._id),
762
745
  }));
763
746
  (0, utils_1.directLog)(true, 'log', this.defaultI18nTFunc('{{SuiteCoreStringKey.Common_Member}} {{SuiteCoreStringKey.Common_Username}}: {username}', {
764
747
  username: result.memberUsername,
@@ -780,33 +763,31 @@ SYSTEM_PASSWORD="${result.systemPassword}"
780
763
  if (printDotEnv) {
781
764
  (0, utils_1.directLog)(true, 'log', '');
782
765
  (0, utils_1.debugLog)(true, 'log', this.defaultI18nTFunc('=== {{SuiteCoreStringKey.Admin_DotEnvFormat}} ==='));
783
- (0, utils_1.directLog)(true, 'log', this.serverInitResultsToDotEnv(result));
766
+ (0, utils_1.directLog)(true, 'log', this.serverInitResultsToDotEnv(result, idToString));
784
767
  (0, utils_1.debugLog)(true, 'log', this.defaultI18nTFunc('=== {{SuiteCoreStringKey.Admin_EndDotEnvFormat}} ==='));
785
768
  }
786
769
  }
787
- static setEnvFromInitResults(result) {
788
- process.env['ADMIN_ID'] = result.adminUser._id.toHexString();
770
+ static setEnvFromInitResults(result, idToString = (id) => String(id)) {
771
+ process.env['ADMIN_ID'] = idToString(result.adminUser._id);
789
772
  process.env['ADMIN_PUBLIC_KEY'] = result.adminUser.publicKey;
790
773
  process.env['ADMIN_MNEMONIC'] = result.adminMnemonic;
791
774
  process.env['ADMIN_PASSWORD'] = result.adminPassword;
792
- process.env['ADMIN_ROLE_ID'] = result.adminRole._id.toHexString();
793
- process.env['ADMIN_USER_ROLE_ID'] = result.adminUserRole._id.toHexString();
775
+ process.env['ADMIN_ROLE_ID'] = idToString(result.adminRole._id);
776
+ process.env['ADMIN_USER_ROLE_ID'] = idToString(result.adminUserRole._id);
794
777
  //
795
- process.env['MEMBER_ID'] = result.memberUser._id.toHexString();
778
+ process.env['MEMBER_ID'] = idToString(result.memberUser._id);
796
779
  process.env['MEMBER_PUBLIC_KEY'] = result.memberUser.publicKey;
797
780
  process.env['MEMBER_MNEMONIC'] = result.memberMnemonic;
798
781
  process.env['MEMBER_PASSWORD'] = result.memberPassword;
799
- process.env['MEMBER_ROLE_ID'] = result.memberRole._id.toHexString();
800
- process.env['MEMBER_USER_ROLE_ID'] =
801
- result.memberUserRole._id.toHexString();
782
+ process.env['MEMBER_ROLE_ID'] = idToString(result.memberRole._id);
783
+ process.env['MEMBER_USER_ROLE_ID'] = idToString(result.memberUserRole._id);
802
784
  //
803
- process.env['SYSTEM_ID'] = result.systemUser._id.toHexString();
785
+ process.env['SYSTEM_ID'] = idToString(result.systemUser._id);
804
786
  process.env['SYSTEM_PUBLIC_KEY'] = result.systemUser.publicKey;
805
787
  process.env['SYSTEM_MNEMONIC'] = result.systemMnemonic;
806
788
  process.env['SYSTEM_PASSWORD'] = result.systemPassword;
807
- process.env['SYSTEM_ROLE_ID'] = result.systemRole._id.toHexString();
808
- process.env['SYSTEM_USER_ROLE_ID'] =
809
- result.systemUserRole._id.toHexString();
789
+ process.env['SYSTEM_ROLE_ID'] = idToString(result.systemRole._id);
790
+ process.env['SYSTEM_USER_ROLE_ID'] = idToString(result.systemUserRole._id);
810
791
  }
811
792
  /**
812
793
  * Initialize the user database with default users and roles (convenience method)
@@ -814,7 +795,7 @@ SYSTEM_PASSWORD="${result.systemPassword}"
814
795
  * @param application The application
815
796
  * @returns The result of the initialization
816
797
  */
817
- static async initUserDb(application) {
798
+ static async initUserDb(application, idGenerator, idToString = (id) => application.constants.idProvider.idToString(id)) {
818
799
  const mnemonicModel = model_registry_1.ModelRegistry.instance.getTypedModel(base_model_name_1.BaseModelName.Mnemonic);
819
800
  const mnemonicService = new mnemonic_1.MnemonicService(mnemonicModel, application.environment.mnemonicHmacSecret, application.constants);
820
801
  const config = {
@@ -829,7 +810,7 @@ SYSTEM_PASSWORD="${result.systemPassword}"
829
810
  const roleService = new role_1.RoleService(application);
830
811
  const keyWrappingService = new key_wrapping_1.KeyWrappingService();
831
812
  const backupCodeService = new backup_code_2.BackupCodeService(application, eciesService, keyWrappingService, roleService);
832
- return this.initUserDbWithServices(application, keyWrappingService, mnemonicService, eciesService, roleService, backupCodeService);
813
+ return this.initUserDbWithServices(application, keyWrappingService, mnemonicService, eciesService, roleService, backupCodeService, idGenerator, idToString);
833
814
  }
834
815
  }
835
816
  exports.DatabaseInitializationService = DatabaseInitializationService;