@brightchain/brightchain-api-lib 0.17.2 → 0.18.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.
Files changed (164) hide show
  1. package/package.json +4 -4
  2. package/src/index.d.ts +2 -1
  3. package/src/index.d.ts.map +1 -1
  4. package/src/index.js +3 -1
  5. package/src/index.js.map +1 -1
  6. package/src/lib/application.d.ts +7 -7
  7. package/src/lib/application.d.ts.map +1 -1
  8. package/src/lib/application.js +21 -43
  9. package/src/lib/application.js.map +1 -1
  10. package/src/lib/controllers/api/channels.d.ts +1 -3
  11. package/src/lib/controllers/api/channels.d.ts.map +1 -1
  12. package/src/lib/controllers/api/channels.js +13 -13
  13. package/src/lib/controllers/api/channels.js.map +1 -1
  14. package/src/lib/controllers/api/conversations.d.ts +1 -2
  15. package/src/lib/controllers/api/conversations.d.ts.map +1 -1
  16. package/src/lib/controllers/api/conversations.js +7 -7
  17. package/src/lib/controllers/api/conversations.js.map +1 -1
  18. package/src/lib/controllers/api/emails.d.ts.map +1 -1
  19. package/src/lib/controllers/api/emails.js +12 -14
  20. package/src/lib/controllers/api/emails.js.map +1 -1
  21. package/src/lib/controllers/api/explodingMessages.d.ts +1 -2
  22. package/src/lib/controllers/api/explodingMessages.d.ts.map +1 -1
  23. package/src/lib/controllers/api/explodingMessages.js +11 -11
  24. package/src/lib/controllers/api/explodingMessages.js.map +1 -1
  25. package/src/lib/controllers/api/groups.d.ts +1 -3
  26. package/src/lib/controllers/api/groups.d.ts.map +1 -1
  27. package/src/lib/controllers/api/groups.js +9 -9
  28. package/src/lib/controllers/api/groups.js.map +1 -1
  29. package/src/lib/controllers/crypto/gitController.d.ts +1 -1
  30. package/src/lib/controllers/crypto/gitController.d.ts.map +1 -1
  31. package/src/lib/controllers/crypto/gitController.js +8 -8
  32. package/src/lib/controllers/crypto/gitController.js.map +1 -1
  33. package/src/lib/controllers/crypto/walletController.d.ts +1 -1
  34. package/src/lib/controllers/crypto/walletController.d.ts.map +1 -1
  35. package/src/lib/controllers/crypto/walletController.js +5 -5
  36. package/src/lib/controllers/crypto/walletController.js.map +1 -1
  37. package/src/lib/controllers/identity/deviceController.d.ts +1 -2
  38. package/src/lib/controllers/identity/deviceController.d.ts.map +1 -1
  39. package/src/lib/controllers/identity/deviceController.js +7 -8
  40. package/src/lib/controllers/identity/deviceController.js.map +1 -1
  41. package/src/lib/controllers/identity/directoryController.d.ts +1 -2
  42. package/src/lib/controllers/identity/directoryController.d.ts.map +1 -1
  43. package/src/lib/controllers/identity/directoryController.js +6 -7
  44. package/src/lib/controllers/identity/directoryController.js.map +1 -1
  45. package/src/lib/controllers/identity/identityProofController.d.ts +1 -1
  46. package/src/lib/controllers/identity/identityProofController.d.ts.map +1 -1
  47. package/src/lib/controllers/identity/identityProofController.js +15 -17
  48. package/src/lib/controllers/identity/identityProofController.js.map +1 -1
  49. package/src/lib/enumerations/brightChainApiStrings.d.ts +1 -1
  50. package/src/lib/enumerations/brightChainApiStrings.d.ts.map +1 -1
  51. package/src/lib/enumerations/brightChainApiStrings.js +1 -1
  52. package/src/lib/enumerations/brightChainApiStrings.js.map +1 -1
  53. package/src/lib/environment.d.ts +4 -4
  54. package/src/lib/environment.d.ts.map +1 -1
  55. package/src/lib/environment.js +5 -4
  56. package/src/lib/environment.js.map +1 -1
  57. package/src/lib/interfaces/index.d.ts +1 -0
  58. package/src/lib/interfaces/index.d.ts.map +1 -1
  59. package/src/lib/interfaces/member-init-config.d.ts +20 -0
  60. package/src/lib/interfaces/member-init-config.d.ts.map +1 -0
  61. package/src/lib/{documents/base.js → interfaces/member-init-config.js} +1 -1
  62. package/src/lib/interfaces/member-init-config.js.map +1 -0
  63. package/src/lib/interfaces/schema.d.ts +5 -3
  64. package/src/lib/interfaces/schema.d.ts.map +1 -1
  65. package/src/lib/interfaces/storage/index.d.ts +4 -0
  66. package/src/lib/interfaces/storage/index.d.ts.map +1 -1
  67. package/src/lib/interfaces/storage/index.js +14 -2
  68. package/src/lib/interfaces/storage/index.js.map +1 -1
  69. package/src/lib/interfaces/storage/mnemonicSchema.d.ts +10 -0
  70. package/src/lib/interfaces/storage/mnemonicSchema.d.ts.map +1 -0
  71. package/src/lib/interfaces/storage/mnemonicSchema.js +22 -0
  72. package/src/lib/interfaces/storage/mnemonicSchema.js.map +1 -0
  73. package/src/lib/interfaces/storage/roleSchema.d.ts +10 -0
  74. package/src/lib/interfaces/storage/roleSchema.d.ts.map +1 -0
  75. package/src/lib/interfaces/storage/roleSchema.js +45 -0
  76. package/src/lib/interfaces/storage/roleSchema.js.map +1 -0
  77. package/src/lib/interfaces/storage/userRoleSchema.d.ts +10 -0
  78. package/src/lib/interfaces/storage/userRoleSchema.d.ts.map +1 -0
  79. package/src/lib/interfaces/storage/userRoleSchema.js +35 -0
  80. package/src/lib/interfaces/storage/userRoleSchema.js.map +1 -0
  81. package/src/lib/interfaces/storage/userSchema.d.ts +12 -0
  82. package/src/lib/interfaces/storage/userSchema.d.ts.map +1 -0
  83. package/src/lib/interfaces/storage/userSchema.js +62 -0
  84. package/src/lib/interfaces/storage/userSchema.js.map +1 -0
  85. package/src/lib/plugins/brightchain-database-plugin.d.ts +150 -0
  86. package/src/lib/plugins/brightchain-database-plugin.d.ts.map +1 -0
  87. package/src/lib/plugins/brightchain-database-plugin.js +252 -0
  88. package/src/lib/plugins/brightchain-database-plugin.js.map +1 -0
  89. package/src/lib/plugins/configure-brightchain-app.d.ts +41 -0
  90. package/src/lib/plugins/configure-brightchain-app.d.ts.map +1 -0
  91. package/src/lib/plugins/configure-brightchain-app.js +70 -0
  92. package/src/lib/plugins/configure-brightchain-app.js.map +1 -0
  93. package/src/lib/routers/api.d.ts +1 -5
  94. package/src/lib/routers/api.d.ts.map +1 -1
  95. package/src/lib/services/blockStore.d.ts +1 -2
  96. package/src/lib/services/blockStore.d.ts.map +1 -1
  97. package/src/lib/services/blockStore.js +4 -6
  98. package/src/lib/services/blockStore.js.map +1 -1
  99. package/src/lib/services/brightchain-authentication-provider.d.ts +35 -0
  100. package/src/lib/services/brightchain-authentication-provider.d.ts.map +1 -0
  101. package/src/lib/services/brightchain-authentication-provider.js +196 -0
  102. package/src/lib/services/brightchain-authentication-provider.js.map +1 -0
  103. package/src/lib/services/brightchain-member-init.service.d.ts +103 -20
  104. package/src/lib/services/brightchain-member-init.service.d.ts.map +1 -1
  105. package/src/lib/services/brightchain-member-init.service.js +407 -1
  106. package/src/lib/services/brightchain-member-init.service.js.map +1 -1
  107. package/src/lib/services/expirationScheduler.d.ts +1 -2
  108. package/src/lib/services/expirationScheduler.d.ts.map +1 -1
  109. package/src/lib/services/expirationScheduler.js +3 -3
  110. package/src/lib/services/expirationScheduler.js.map +1 -1
  111. package/src/lib/services/quorum.d.ts.map +1 -1
  112. package/src/lib/services/quorum.js +2 -2
  113. package/src/lib/services/quorum.js.map +1 -1
  114. package/src/lib/services/wireConversationPromotion.d.ts +1 -2
  115. package/src/lib/services/wireConversationPromotion.d.ts.map +1 -1
  116. package/src/lib/services/wireConversationPromotion.js.map +1 -1
  117. package/src/lib/shared-types.d.ts +0 -17
  118. package/src/lib/shared-types.d.ts.map +1 -1
  119. package/src/lib/stores/diskBlockStore.d.ts.map +1 -1
  120. package/src/lib/stores/diskBlockStore.js +4 -1
  121. package/src/lib/stores/diskBlockStore.js.map +1 -1
  122. package/src/lib/utils/type-converters.d.ts +5 -8
  123. package/src/lib/utils/type-converters.d.ts.map +1 -1
  124. package/src/lib/utils/type-converters.js.map +1 -1
  125. package/src/lib/application-base.d.ts +0 -11
  126. package/src/lib/application-base.d.ts.map +0 -1
  127. package/src/lib/application-base.js +0 -12
  128. package/src/lib/application-base.js.map +0 -1
  129. package/src/lib/documents/base.d.ts +0 -6
  130. package/src/lib/documents/base.d.ts.map +0 -1
  131. package/src/lib/documents/base.js.map +0 -1
  132. package/src/lib/documents/email-token.d.ts +0 -8
  133. package/src/lib/documents/email-token.d.ts.map +0 -1
  134. package/src/lib/documents/email-token.js +0 -3
  135. package/src/lib/documents/email-token.js.map +0 -1
  136. package/src/lib/documents/index.d.ts +0 -7
  137. package/src/lib/documents/index.d.ts.map +0 -1
  138. package/src/lib/documents/index.js +0 -3
  139. package/src/lib/documents/index.js.map +0 -1
  140. package/src/lib/documents/mnemonic.d.ts +0 -8
  141. package/src/lib/documents/mnemonic.d.ts.map +0 -1
  142. package/src/lib/documents/mnemonic.js +0 -3
  143. package/src/lib/documents/mnemonic.js.map +0 -1
  144. package/src/lib/documents/role.d.ts +0 -8
  145. package/src/lib/documents/role.d.ts.map +0 -1
  146. package/src/lib/documents/role.js +0 -3
  147. package/src/lib/documents/role.js.map +0 -1
  148. package/src/lib/documents/used-direct-login-token.d.ts +0 -5
  149. package/src/lib/documents/used-direct-login-token.d.ts.map +0 -1
  150. package/src/lib/documents/used-direct-login-token.js +0 -3
  151. package/src/lib/documents/used-direct-login-token.js.map +0 -1
  152. package/src/lib/documents/user-role.d.ts +0 -8
  153. package/src/lib/documents/user-role.d.ts.map +0 -1
  154. package/src/lib/documents/user-role.js +0 -3
  155. package/src/lib/documents/user-role.js.map +0 -1
  156. package/src/lib/documents/user.d.ts +0 -13
  157. package/src/lib/documents/user.d.ts.map +0 -1
  158. package/src/lib/documents/user.js +0 -3
  159. package/src/lib/documents/user.js.map +0 -1
  160. package/src/lib/upstream-stubs.d.ts +0 -36
  161. package/src/lib/upstream-stubs.d.ts.map +0 -1
  162. package/src/lib/upstream-stubs.js +0 -43
  163. package/src/lib/upstream-stubs.js.map +0 -1
  164. /package/{README.md → brightchain-api-lib/README.md} +0 -0
@@ -13,9 +13,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.BrightChainMemberInitService = void 0;
14
14
  const brightchain_lib_1 = require("@brightchain/brightchain-lib");
15
15
  const db_1 = require("@brightchain/db");
16
+ const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
17
+ const i18n_lib_1 = require("@digitaldefiance/i18n-lib");
18
+ const suite_core_lib_1 = require("@digitaldefiance/suite-core-lib");
16
19
  const brightChainApiStrings_1 = require("../enumerations/brightChainApiStrings");
17
20
  const memberIndexSchemaValidationError_1 = require("../errors/memberIndexSchemaValidationError");
18
21
  const memberIndexSchema_1 = require("../interfaces/storage/memberIndexSchema");
22
+ const mnemonicSchema_1 = require("../interfaces/storage/mnemonicSchema");
23
+ const roleSchema_1 = require("../interfaces/storage/roleSchema");
24
+ const userRoleSchema_1 = require("../interfaces/storage/userRoleSchema");
25
+ const userSchema_1 = require("../interfaces/storage/userSchema");
19
26
  const diskBlockStore_1 = require("../stores/diskBlockStore");
20
27
  /** Well-known collection name for the member index. */
21
28
  const MEMBER_INDEX_COLLECTION = 'member_index';
@@ -43,7 +50,7 @@ function validateDocumentSafe(doc) {
43
50
  function buildCandidateEntries(input, poolId) {
44
51
  const now = new Date().toISOString();
45
52
  return [input.systemUser, input.adminUser, input.memberUser].map((user) => ({
46
- id: user.id,
53
+ id: user.id.toString('hex'),
47
54
  // Zero-filled sentinel — replaced when the member's actual CBL blocks are written
48
55
  publicCBL: '0'.repeat(64),
49
56
  privateCBL: '0'.repeat(64),
@@ -147,6 +154,405 @@ class BrightChainMemberInitService {
147
154
  db,
148
155
  };
149
156
  }
157
+ // ── RBAC initialization ─────────────────────────────────────────────────
158
+ /**
159
+ * Build a role document for insertion into the roles collection.
160
+ * Returns a plain data object satisfying IRoleBase — no Document wrapper needed.
161
+ */
162
+ static buildRoleDocument(user, systemUserId, now) {
163
+ return {
164
+ _id: user.roleId,
165
+ name: user.roleName,
166
+ admin: user.roleAdmin,
167
+ member: user.roleMember,
168
+ child: false,
169
+ system: user.roleSystem,
170
+ createdBy: systemUserId,
171
+ updatedBy: systemUserId,
172
+ createdAt: now,
173
+ updatedAt: now,
174
+ };
175
+ }
176
+ /**
177
+ * Build a user document for insertion into the users collection.
178
+ * Returns a plain data object satisfying IUserBase — no Document wrapper needed.
179
+ */
180
+ static buildUserDocument(user, systemUserId, now) {
181
+ return {
182
+ _id: user.fullId,
183
+ username: user.username,
184
+ email: user.email,
185
+ publicKey: user.publicKeyHex,
186
+ passwordWrappedPrivateKey: user.passwordWrappedPrivateKey,
187
+ mnemonicRecovery: user.mnemonicRecovery,
188
+ mnemonicId: user.mnemonicDocId,
189
+ backupCodes: user.backupCodes,
190
+ accountStatus: suite_core_lib_1.AccountStatus.Active,
191
+ emailVerified: true,
192
+ directChallenge: true,
193
+ timezone: 'UTC',
194
+ siteLanguage: i18n_lib_1.LanguageCodes.EN_US,
195
+ currency: 'USD',
196
+ darkMode: false,
197
+ createdBy: systemUserId,
198
+ updatedBy: systemUserId,
199
+ createdAt: now,
200
+ updatedAt: now,
201
+ };
202
+ }
203
+ /**
204
+ * Build a user-role junction document for insertion into the user-roles collection.
205
+ * Returns a plain data object satisfying IUserRoleBase — no Document wrapper needed.
206
+ */
207
+ static buildUserRoleDocument(user, systemUserId, now) {
208
+ return {
209
+ _id: user.userRoleId,
210
+ userId: user.fullId,
211
+ roleId: user.roleId,
212
+ createdBy: systemUserId,
213
+ updatedBy: systemUserId,
214
+ createdAt: now,
215
+ updatedAt: now,
216
+ };
217
+ }
218
+ /**
219
+ * Build a mnemonic document for insertion into the mnemonics collection.
220
+ * Returns a plain data object satisfying IMnemonicBase — no Document wrapper needed.
221
+ */
222
+ static buildMnemonicDocument(user) {
223
+ return {
224
+ _id: user.mnemonicDocId,
225
+ hmac: user.mnemonicHmac,
226
+ };
227
+ }
228
+ /**
229
+ * Serialize a typed RBAC document for storage/validation.
230
+ * Converts GuidV4Buffer values to their canonical string form and
231
+ * Date values to ISO strings so the document satisfies the all-string
232
+ * collection schemas.
233
+ */
234
+ static serializeForStorage(doc) {
235
+ const result = {};
236
+ for (const [key, value] of Object.entries(doc)) {
237
+ if (value instanceof Date) {
238
+ result[key] = value.toISOString();
239
+ }
240
+ else if (Buffer.isBuffer(value) && 'asFullHexGuid' in value) {
241
+ result[key] = value.asFullHexGuid;
242
+ }
243
+ else if (Buffer.isBuffer(value)) {
244
+ result[key] = value.toString('hex');
245
+ }
246
+ else {
247
+ result[key] = value;
248
+ }
249
+ }
250
+ return result;
251
+ }
252
+ /**
253
+ * Validate a document against a schema, returning field errors (if any).
254
+ *
255
+ * Uses a generic parameter so callers can pass any typed RBAC document
256
+ * (IRoleBase, IUserBase, etc.) without needing an index signature.
257
+ * Serializes the document before validation so GuidV4Buffer and Date
258
+ * values are converted to the string types the schemas expect.
259
+ */
260
+ static validateRbacDocument(doc, schema, collectionName) {
261
+ try {
262
+ (0, db_1.validateDocument)(BrightChainMemberInitService.serializeForStorage(doc), schema, collectionName);
263
+ return [];
264
+ }
265
+ catch (err) {
266
+ if (err instanceof db_1.ValidationError) {
267
+ return err.validationErrors;
268
+ }
269
+ throw err;
270
+ }
271
+ }
272
+ /**
273
+ * Initialise the block store and BrightChainDb, then persist member index
274
+ * entries AND full RBAC documents (roles, users, user-roles, mnemonics).
275
+ *
276
+ * This is the full-featured init that mirrors the Mongoose
277
+ * DatabaseInitializationService.initUserDbWithServices() flow.
278
+ *
279
+ * Steps:
280
+ * 1-3. Same as initialize() — build store, create DB, create CBLIndex
281
+ * 4. Build candidate member index entries
282
+ * 5. Validate member index candidates
283
+ * 6. Idempotency check for member index
284
+ * 7. Insert missing member index entries
285
+ * 8. Build and validate RBAC documents (roles, users, user-roles, mnemonics)
286
+ * 9. Idempotency check for RBAC collections
287
+ * 10. Insert missing RBAC documents in a single transaction
288
+ */
289
+ async initializeWithRbac(config, input) {
290
+ // Steps 1-7: delegate to the base initialize() for member_index entries
291
+ const memberInitInput = {
292
+ systemUser: { id: input.systemUser.id, type: input.systemUser.type },
293
+ adminUser: { id: input.adminUser.id, type: input.adminUser.type },
294
+ memberUser: { id: input.memberUser.id, type: input.memberUser.type },
295
+ };
296
+ const baseResult = await this.initialize(config, memberInitInput);
297
+ const db = this.db;
298
+ const now = new Date();
299
+ const systemUserId = input.systemUser.fullId;
300
+ const users = [input.systemUser, input.adminUser, input.memberUser];
301
+ // Step 8: Build RBAC documents
302
+ const roleDocuments = users.map((u) => BrightChainMemberInitService.buildRoleDocument(u, systemUserId, now));
303
+ const userDocuments = users.map((u) => BrightChainMemberInitService.buildUserDocument(u, systemUserId, now));
304
+ const userRoleDocuments = users.map((u) => BrightChainMemberInitService.buildUserRoleDocument(u, systemUserId, now));
305
+ const mnemonicDocuments = users.map((u) => BrightChainMemberInitService.buildMnemonicDocument(u));
306
+ // Validate all RBAC documents before touching the DB
307
+ for (const doc of roleDocuments) {
308
+ const errors = BrightChainMemberInitService.validateRbacDocument(doc, roleSchema_1.ROLE_SCHEMA, roleSchema_1.ROLES_COLLECTION);
309
+ if (errors.length > 0) {
310
+ throw new memberIndexSchemaValidationError_1.MemberIndexSchemaValidationError(errors);
311
+ }
312
+ }
313
+ for (const doc of userDocuments) {
314
+ const errors = BrightChainMemberInitService.validateRbacDocument(doc, userSchema_1.USER_SCHEMA, userSchema_1.USERS_COLLECTION);
315
+ if (errors.length > 0) {
316
+ throw new memberIndexSchemaValidationError_1.MemberIndexSchemaValidationError(errors);
317
+ }
318
+ }
319
+ for (const doc of userRoleDocuments) {
320
+ const errors = BrightChainMemberInitService.validateRbacDocument(doc, userRoleSchema_1.USER_ROLE_SCHEMA, userRoleSchema_1.USER_ROLES_COLLECTION);
321
+ if (errors.length > 0) {
322
+ throw new memberIndexSchemaValidationError_1.MemberIndexSchemaValidationError(errors);
323
+ }
324
+ }
325
+ for (const doc of mnemonicDocuments) {
326
+ const errors = BrightChainMemberInitService.validateRbacDocument(doc, mnemonicSchema_1.MNEMONIC_SCHEMA, mnemonicSchema_1.MNEMONICS_COLLECTION);
327
+ if (errors.length > 0) {
328
+ throw new memberIndexSchemaValidationError_1.MemberIndexSchemaValidationError(errors);
329
+ }
330
+ }
331
+ // Step 9: Idempotency check for each RBAC collection
332
+ const rolesCollection = db.collection(roleSchema_1.ROLES_COLLECTION);
333
+ const usersCollection = db.collection(userSchema_1.USERS_COLLECTION);
334
+ const userRolesCollection = db.collection(userRoleSchema_1.USER_ROLES_COLLECTION);
335
+ const mnemonicsCollection = db.collection(mnemonicSchema_1.MNEMONICS_COLLECTION);
336
+ const existingRoles = await rolesCollection.find({}).toArray();
337
+ const existingUsers = await usersCollection.find({}).toArray();
338
+ const existingUserRoles = await userRolesCollection.find({}).toArray();
339
+ const existingMnemonics = await mnemonicsCollection.find({}).toArray();
340
+ const existingRoleIds = new Set(existingRoles.map((r) => String(r['_id'])));
341
+ const existingUserIds = new Set(existingUsers.map((u) => String(u['_id'])));
342
+ const existingUserRoleIds = new Set(existingUserRoles.map((ur) => String(ur['_id'])));
343
+ const existingMnemonicIds = new Set(existingMnemonics.map((m) => String(m['_id'])));
344
+ const rolesToInsert = roleDocuments.filter((d) => !existingRoleIds.has(d._id.asFullHexGuid));
345
+ const usersToInsert = userDocuments.filter((d) => !existingUserIds.has(d._id.asFullHexGuid));
346
+ const userRolesToInsert = userRoleDocuments.filter((d) => !existingUserRoleIds.has(d._id.asFullHexGuid));
347
+ const mnemonicsToInsert = mnemonicDocuments.filter((d) => !existingMnemonicIds.has(d._id.asFullHexGuid));
348
+ const totalToInsert = rolesToInsert.length +
349
+ usersToInsert.length +
350
+ userRolesToInsert.length +
351
+ mnemonicsToInsert.length;
352
+ // Step 10: Insert missing RBAC documents in a single transaction
353
+ if (totalToInsert > 0) {
354
+ await db.withTransaction(async (session) => {
355
+ for (const doc of rolesToInsert) {
356
+ await rolesCollection.insertOne(BrightChainMemberInitService.serializeForStorage(doc), { session });
357
+ }
358
+ for (const doc of mnemonicsToInsert) {
359
+ await mnemonicsCollection.insertOne(BrightChainMemberInitService.serializeForStorage(doc), { session });
360
+ }
361
+ for (const doc of usersToInsert) {
362
+ await usersCollection.insertOne(BrightChainMemberInitService.serializeForStorage(doc), { session });
363
+ }
364
+ for (const doc of userRolesToInsert) {
365
+ await userRolesCollection.insertOne(BrightChainMemberInitService.serializeForStorage(doc), { session });
366
+ }
367
+ });
368
+ }
369
+ return {
370
+ alreadyInitialized: baseResult.alreadyInitialized && totalToInsert === 0,
371
+ insertedCount: baseResult.insertedCount + totalToInsert,
372
+ skippedCount: baseResult.skippedCount,
373
+ db,
374
+ // System user flat fields
375
+ systemRole: roleDocuments[0],
376
+ systemUser: userDocuments[0],
377
+ systemUserRole: userRoleDocuments[0],
378
+ systemUsername: input.systemUser.username,
379
+ systemEmail: input.systemUser.email,
380
+ systemMnemonic: input.systemUser.plaintextMnemonic ?? '',
381
+ systemPassword: input.systemUser.plaintextPassword ?? '',
382
+ systemBackupCodes: input.systemUser.plaintextBackupCodes ?? [],
383
+ systemMember: {}, // placeholder — caller creates Member
384
+ // Admin user flat fields
385
+ adminRole: roleDocuments[1],
386
+ adminUser: userDocuments[1],
387
+ adminUserRole: userRoleDocuments[1],
388
+ adminUsername: input.adminUser.username,
389
+ adminEmail: input.adminUser.email,
390
+ adminMnemonic: input.adminUser.plaintextMnemonic ?? '',
391
+ adminPassword: input.adminUser.plaintextPassword ?? '',
392
+ adminBackupCodes: input.adminUser.plaintextBackupCodes ?? [],
393
+ adminMember: {}, // placeholder
394
+ // Member user flat fields
395
+ memberRole: roleDocuments[2],
396
+ memberUser: userDocuments[2],
397
+ memberUserRole: userRoleDocuments[2],
398
+ memberUsername: input.memberUser.username,
399
+ memberEmail: input.memberUser.email,
400
+ memberMnemonic: input.memberUser.plaintextMnemonic ?? '',
401
+ memberPassword: input.memberUser.plaintextPassword ?? '',
402
+ memberBackupCodes: input.memberUser.plaintextBackupCodes ?? [],
403
+ memberMember: {}, // placeholder
404
+ };
405
+ }
406
+ // ── Credential helpers ────────────────────────────────────────────────
407
+ /**
408
+ * Map an IBrightChainUserInitEntry to an IBrightChainUserCredentials bundle.
409
+ * Plaintext fields default to empty string / empty array when absent.
410
+ */
411
+ static buildUserCredentials(entry) {
412
+ return {
413
+ id: entry.id,
414
+ fullId: entry.fullId,
415
+ type: entry.type,
416
+ username: entry.username,
417
+ email: entry.email,
418
+ mnemonic: entry.plaintextMnemonic ?? '',
419
+ password: entry.plaintextPassword ?? '',
420
+ backupCodes: entry.plaintextBackupCodes ?? [],
421
+ publicKeyHex: entry.publicKeyHex,
422
+ roleId: entry.roleId,
423
+ userRoleId: entry.userRoleId,
424
+ };
425
+ }
426
+ // ── Credential printing ─────────────────────────────────────────────────
427
+ /**
428
+ * Helper to resolve a display label for a MemberType.
429
+ */
430
+ static memberTypeLabel(type) {
431
+ switch (type) {
432
+ case ecies_lib_1.MemberType.System:
433
+ return 'System';
434
+ case ecies_lib_1.MemberType.User:
435
+ return 'User';
436
+ default:
437
+ return 'Unknown';
438
+ }
439
+ }
440
+ /**
441
+ * Print a single user's credentials block.
442
+ */
443
+ static printUserCredentials(label, creds) {
444
+ const log = (msg) => console.log(msg);
445
+ log(` ${label} ID: ${creds.id}`);
446
+ log(` ${label} Full ID: ${creds.fullId}`);
447
+ log(` ${label} Type: ${this.memberTypeLabel(creds.type)}`);
448
+ log(` ${label} Username: ${creds.username}`);
449
+ log(` ${label} Email: ${creds.email}`);
450
+ log(` ${label} Password: ${creds.password}`);
451
+ log(` ${label} Mnemonic: ${creds.mnemonic}`);
452
+ if (creds.publicKeyHex) {
453
+ log(` ${label} Public Key: ${creds.publicKeyHex}`);
454
+ }
455
+ if (creds.roleId) {
456
+ log(` ${label} Role ID: ${creds.roleId}`);
457
+ }
458
+ if (creds.userRoleId) {
459
+ log(` ${label} User Role ID: ${creds.userRoleId}`);
460
+ }
461
+ log(` ${label} Backup Codes: ${creds.backupCodes.join(', ')}`);
462
+ log('');
463
+ }
464
+ /**
465
+ * Print a formatted summary of the BrightChain server init results,
466
+ * including full credentials for each user.
467
+ */
468
+ static printServerInitResults(result, config) {
469
+ const log = (msg) => console.log(msg);
470
+ log('');
471
+ log('=== BrightChain Account Credentials ===');
472
+ log('');
473
+ log(` Pool: ${config.memberPoolName}`);
474
+ log(` Block Store: ${config.blockStorePath ?? 'in-memory (ephemeral)'}`);
475
+ log(` Already Init: ${result.alreadyInitialized}`);
476
+ log(` Inserted: ${result.insertedCount}`);
477
+ log(` Skipped: ${result.skippedCount}`);
478
+ log('');
479
+ this.printUserCredentials('System', result.system);
480
+ this.printUserCredentials('Admin', result.admin);
481
+ this.printUserCredentials('Member', result.member);
482
+ log('=== End BrightChain Account Credentials ===');
483
+ log('');
484
+ }
485
+ /**
486
+ * Print a formatted summary of the BrightChain member init results.
487
+ * Kept for backward compatibility — delegates to printServerInitResults
488
+ * when a full result is available, otherwise prints minimal info.
489
+ */
490
+ static printInitResults(input, result, config) {
491
+ const log = (msg) => console.log(msg);
492
+ log('');
493
+ log('=== BrightChain Member Initialization Results ===');
494
+ log('');
495
+ log(` Pool: ${config.memberPoolName}`);
496
+ log(` Block Store: ${config.blockStorePath ?? 'in-memory (ephemeral)'}`);
497
+ log(` Already Init: ${result.alreadyInitialized}`);
498
+ log(` Inserted: ${result.insertedCount}`);
499
+ log(` Skipped: ${result.skippedCount}`);
500
+ log('');
501
+ const entries = [
502
+ { label: 'System', entry: input.systemUser },
503
+ { label: 'Admin', entry: input.adminUser },
504
+ { label: 'Member', entry: input.memberUser },
505
+ ];
506
+ for (const { label, entry } of entries) {
507
+ log(` ${label} ID: ${entry.id}`);
508
+ log(` ${label} Type: ${this.memberTypeLabel(entry.type)}`);
509
+ log('');
510
+ }
511
+ log('=== End BrightChain Member Initialization ===');
512
+ log('');
513
+ }
514
+ /**
515
+ * Combine a basic init result with user credentials to produce the full
516
+ * IBrightChainServerInitResult. This keeps the initialize() method lean
517
+ * while allowing callers to enrich the result with environment credentials.
518
+ */
519
+ static buildServerInitResult(baseResult, credentials) {
520
+ return {
521
+ ...baseResult,
522
+ system: credentials.system,
523
+ admin: credentials.admin,
524
+ member: credentials.member,
525
+ };
526
+ }
527
+ /**
528
+ * Format the full server init result as .env variable lines.
529
+ * Outputs all credential fields matching the .env.example layout.
530
+ */
531
+ static formatDotEnv(credentials) {
532
+ const { admin, member, system } = credentials;
533
+ const lines = [
534
+ `ADMIN_ID="${admin.fullId}"`,
535
+ `ADMIN_MNEMONIC="${admin.mnemonic}"`,
536
+ `ADMIN_ROLE_ID="${admin.roleId ?? ''}"`,
537
+ `ADMIN_USER_ROLE_ID="${admin.userRoleId ?? ''}"`,
538
+ `ADMIN_PASSWORD="${admin.password}"`,
539
+ '',
540
+ `MEMBER_ID="${member.fullId}"`,
541
+ `MEMBER_MNEMONIC="${member.mnemonic}"`,
542
+ `MEMBER_ROLE_ID="${member.roleId ?? ''}"`,
543
+ `MEMBER_PASSWORD="${member.password}"`,
544
+ `MEMBER_USER_ROLE_ID="${member.userRoleId ?? ''}"`,
545
+ '',
546
+ '# System credentials used to sign system messages',
547
+ `SYSTEM_ID="${system.fullId}"`,
548
+ `SYSTEM_MNEMONIC="${system.mnemonic}"`,
549
+ `SYSTEM_PUBLIC_KEY="${system.publicKeyHex ?? ''}"`,
550
+ `SYSTEM_ROLE_ID="${system.roleId ?? ''}"`,
551
+ `SYSTEM_PASSWORD="${system.password}"`,
552
+ `SYSTEM_USER_ROLE_ID="${system.userRoleId ?? ''}"`,
553
+ ];
554
+ return lines.join('\n');
555
+ }
150
556
  }
151
557
  exports.BrightChainMemberInitService = BrightChainMemberInitService;
152
558
  //# sourceMappingURL=brightchain-member-init.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"brightchain-member-init.service.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/brightchain-member-init.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brightchain-member-init.service.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/brightchain-member-init.service.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,7 @@
9
9
  *
10
10
  * Requirements: 8.4, 8.6, 8.9
11
11
  */
12
- import { ICommunicationMessage } from '@brightchain/brightchain-lib/lib/interfaces/communication';
13
- import { IExplodingMessageEvent } from '@brightchain/brightchain-lib/lib/services/communication/explodingMessageService';
12
+ import { ICommunicationMessage, IExplodingMessageEvent } from '@brightchain/brightchain-lib';
14
13
  import { EventEmitter } from 'events';
15
14
  /**
16
15
  * Function that returns all messages that may have expiration settings.
@@ -1 +1 @@
1
- {"version":3,"file":"expirationScheduler.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/expirationScheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,2DAA2D,CAAC;AAClG,OAAO,EAEL,sBAAsB,EACvB,MAAM,iFAAiF,CAAC;AACzF,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,MAC1B,qBAAqB,EAAE,GACvB,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAID,oBAAY,wBAAwB;IAClC,0DAA0D;IAC1D,gBAAgB,+BAA+B;IAE/C,wDAAwD;IACxD,aAAa,4BAA4B;IAEzC,qDAAqD;IACrD,KAAK,oBAAoB;IAEzB,wCAAwC;IACxC,OAAO,sBAAsB;IAE7B,uCAAuC;IACvC,OAAO,sBAAsB;CAC9B;AAID;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,mBAAoB,SAAQ,YAAY;IACnD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAU;IACtC,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,OAAO,CAAS;gBAGtB,eAAe,EAAE,eAAe,EAChC,MAAM,GAAE,0BAA+B;IAQzC;;;;OAIG;IACH,KAAK,IAAI,IAAI;IAab;;OAEG;IACH,IAAI,IAAI,IAAI;IASZ;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;;;;OAKG;IACG,IAAI,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC;CAkChD"}
1
+ {"version":3,"file":"expirationScheduler.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/expirationScheduler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAEL,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAItC;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,MAC1B,qBAAqB,EAAE,GACvB,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,2EAA2E;IAC3E,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAID,oBAAY,wBAAwB;IAClC,0DAA0D;IAC1D,gBAAgB,+BAA+B;IAE/C,wDAAwD;IACxD,aAAa,4BAA4B;IAEzC,qDAAqD;IACrD,KAAK,oBAAoB;IAEzB,wCAAwC;IACxC,OAAO,sBAAsB;IAE7B,uCAAuC;IACvC,OAAO,sBAAsB;CAC9B;AAID;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,mBAAoB,SAAQ,YAAY;IACnD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAU;IACtC,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,OAAO,CAAS;gBAGtB,eAAe,EAAE,eAAe,EAChC,MAAM,GAAE,0BAA+B;IAQzC;;;;OAIG;IACH,KAAK,IAAI,IAAI;IAab;;OAEG;IACH,IAAI,IAAI,IAAI;IASZ;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;;;;OAKG;IACG,IAAI,IAAI,OAAO,CAAC,sBAAsB,EAAE,CAAC;CAkChD"}
@@ -12,7 +12,7 @@
12
12
  */
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
14
  exports.ExpirationScheduler = exports.ExpirationSchedulerEvent = void 0;
15
- const explodingMessageService_1 = require("@brightchain/brightchain-lib/lib/services/communication/explodingMessageService");
15
+ const brightchain_lib_1 = require("@brightchain/brightchain-lib");
16
16
  const events_1 = require("events");
17
17
  // ─── Events ─────────────────────────────────────────────────────────────────
18
18
  var ExpirationSchedulerEvent;
@@ -99,7 +99,7 @@ class ExpirationScheduler extends events_1.EventEmitter {
99
99
  async tick() {
100
100
  try {
101
101
  const messages = await this.messageProvider();
102
- const { expired, events } = explodingMessageService_1.ExplodingMessageService.deleteExpired(messages);
102
+ const { expired, events } = brightchain_lib_1.ExplodingMessageService.deleteExpired(messages);
103
103
  if (expired.length === 0) {
104
104
  return [];
105
105
  }
@@ -108,7 +108,7 @@ class ExpirationScheduler extends events_1.EventEmitter {
108
108
  if (this.autoExplode) {
109
109
  for (const message of expired) {
110
110
  if (!message.exploded) {
111
- const event = explodingMessageService_1.ExplodingMessageService.explode(message);
111
+ const event = brightchain_lib_1.ExplodingMessageService.explode(message);
112
112
  explodedEvents.push(event);
113
113
  this.emit(ExpirationSchedulerEvent.MESSAGE_EXPLODED, event);
114
114
  }
@@ -1 +1 @@
1
- {"version":3,"file":"expirationScheduler.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/expirationScheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expirationScheduler.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/expirationScheduler.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"quorum.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/quorum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD;;;;;;;;;GASG;AACH,qBAAa,oBAAoB,CAC/B,GAAG,SAAS,UAAU,GAAG,oBAAoB,CAC7C,SAAQ,WAAW,CAAC,GAAG,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,iBAAiB,CAA8B;gBAE3C,WAAW,EAAE,uBAAuB,CAAC,GAAG,CAAC;IAmBrD;;;;OAIG;YACW,oBAAoB;IAgClC;;;;OAIG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxC;;;OAGG;IACH,UAAU,IAAI,iBAAiB;IAI/B;;OAEG;IACH,aAAa,IAAI,WAAW,GAAG,IAAI;CAGpC"}
1
+ {"version":3,"file":"quorum.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/quorum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD;;;;;;;;;GASG;AACH,qBAAa,oBAAoB,CAC/B,GAAG,SAAS,UAAU,GAAG,oBAAoB,CAC7C,SAAQ,WAAW,CAAC,GAAG,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,iBAAiB,CAA8B;gBAE3C,WAAW,EAAE,uBAAuB,CAAC,GAAG,CAAC;IAmBrD;;;;OAIG;YACW,oBAAoB;IAgClC;;;;OAIG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAIxC;;;OAGG;IACH,UAAU,IAAI,iBAAiB;IAI/B;;OAEG;IACH,aAAa,IAAI,WAAW,GAAG,IAAI;CAGpC"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.QuorumServiceWrapper = void 0;
4
- const blockSize_1 = require("@brightchain/brightchain-lib/lib/enumerations/blockSize");
4
+ const brightchain_lib_1 = require("@brightchain/brightchain-lib");
5
5
  const base_1 = require("./base");
6
6
  const diskQuorumService_1 = require("./diskQuorumService");
7
7
  const fecServiceFactory_1 = require("./fecServiceFactory");
@@ -24,7 +24,7 @@ class QuorumServiceWrapper extends base_1.BaseService {
24
24
  const storePath = this.application.environment.blockStorePath ?? 'tmp/blockstore';
25
25
  const blockSize = (this.application.environment.blockStoreBlockSize
26
26
  ? this.application.environment.blockStoreBlockSize
27
- : blockSize_1.BlockSize.Medium);
27
+ : brightchain_lib_1.BlockSize.Medium);
28
28
  // Initialize the DiskQuorumService with storage path and block size
29
29
  this.quorumService = new diskQuorumService_1.DiskQuorumService(storePath, blockSize);
30
30
  // Start FEC service initialization in the background
@@ -1 +1 @@
1
- {"version":3,"file":"quorum.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/quorum.ts"],"names":[],"mappings":";;;AACA,uFAAoF;AAIpF,iCAAqC;AACrC,2DAAwD;AACxD,2DAAwD;AAExD;;;;;;;;;GASG;AACH,MAAa,oBAEX,SAAQ,kBAAgB;IAKxB,YAAY,WAAyC;QACnD,KAAK,CAAC,WAAW,CAAC,CAAC;QAJb,0BAAqB,GAAG,KAAK,CAAC;QAC9B,sBAAiB,GAAyB,IAAI,CAAC;QAKrD,8CAA8C;QAC9C,MAAM,SAAS,GACb,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,cAAc,IAAI,gBAAgB,CAAC;QAClE,MAAM,SAAS,GAAG,CAChB,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,mBAAmB;YAC9C,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,mBAAmB;YAClD,CAAC,CAAC,qBAAS,CAAC,MAAM,CACR,CAAC;QAEf,oEAAoE;QACpE,IAAI,CAAC,aAAa,GAAG,IAAI,qCAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAEjE,qDAAqD;QACrD,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,oBAAoB;QAChC,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAChC,CAAC;QAED,IAAI,CAAC,iBAAiB,GAAG,CAAC,KAAK,IAAI,EAAE;YACnC,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,qCAAiB,CAAC,gBAAgB,EAAE,CAAC;gBAC9D,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;gBAC7C,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;gBAClC,OAAO,CAAC,GAAG,CACT,6DAA6D,CAC9D,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,uDAAuD;gBACvD,OAAO,CAAC,IAAI,CACV,mDAAmD,EACnD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;gBACF,OAAO,CAAC,IAAI,CACV,+EAA+E,CAChF,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,iBAAiB;QACrB,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC,aAAa,EAAE,CAAC;IAC5D,CAAC;CACF;AAtFD,oDAsFC"}
1
+ {"version":3,"file":"quorum.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/quorum.ts"],"names":[],"mappings":";;;AAAA,kEAAsE;AAItE,iCAAqC;AACrC,2DAAwD;AACxD,2DAAwD;AAExD;;;;;;;;;GASG;AACH,MAAa,oBAEX,SAAQ,kBAAgB;IAKxB,YAAY,WAAyC;QACnD,KAAK,CAAC,WAAW,CAAC,CAAC;QAJb,0BAAqB,GAAG,KAAK,CAAC;QAC9B,sBAAiB,GAAyB,IAAI,CAAC;QAKrD,8CAA8C;QAC9C,MAAM,SAAS,GACb,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,cAAc,IAAI,gBAAgB,CAAC;QAClE,MAAM,SAAS,GAAG,CAChB,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,mBAAmB;YAC9C,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,mBAAmB;YAClD,CAAC,CAAC,2BAAS,CAAC,MAAM,CACR,CAAC;QAEf,oEAAoE;QACpE,IAAI,CAAC,aAAa,GAAG,IAAI,qCAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAEjE,qDAAqD;QACrD,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,oBAAoB;QAChC,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAChC,CAAC;QAED,IAAI,CAAC,iBAAiB,GAAG,CAAC,KAAK,IAAI,EAAE;YACnC,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,qCAAiB,CAAC,gBAAgB,EAAE,CAAC;gBAC9D,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;gBAC7C,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;gBAClC,OAAO,CAAC,GAAG,CACT,6DAA6D,CAC9D,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,uDAAuD;gBACvD,OAAO,CAAC,IAAI,CACV,mDAAmD,EACnD,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CACvD,CAAC;gBACF,OAAO,CAAC,IAAI,CACV,+EAA+E,CAChF,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,iBAAiB;QACrB,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC,aAAa,EAAE,CAAC;IAC5D,CAAC;CACF;AAtFD,oDAsFC"}
@@ -7,8 +7,7 @@
7
7
  *
8
8
  * Requirements: 2.1, 2.2, 2.3
9
9
  */
10
- import { ConversationService } from '@brightchain/brightchain-lib/lib/services/communication/conversationService';
11
- import { GroupService } from '@brightchain/brightchain-lib/lib/services/communication/groupService';
10
+ import { ConversationService, GroupService } from '@brightchain/brightchain-lib';
12
11
  /**
13
12
  * Connects the ConversationService's group promotion handler to the
14
13
  * GroupService's createGroupFromConversation method.
@@ -1 +1 @@
1
- {"version":3,"file":"wireConversationPromotion.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/wireConversationPromotion.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,6EAA6E,CAAC;AAClH,OAAO,EAAE,YAAY,EAAE,MAAM,sEAAsE,CAAC;AAEpG;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,mBAAmB,EAAE,mBAAmB,EACxC,YAAY,EAAE,YAAY,GACzB,IAAI,CAiBN"}
1
+ {"version":3,"file":"wireConversationPromotion.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/wireConversationPromotion.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,mBAAmB,EACnB,YAAY,EACb,MAAM,8BAA8B,CAAC;AAEtC;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,mBAAmB,EAAE,mBAAmB,EACxC,YAAY,EAAE,YAAY,GACzB,IAAI,CAiBN"}
@@ -1 +1 @@
1
- {"version":3,"file":"wireConversationPromotion.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/wireConversationPromotion.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAeH,8DAoBC;AA9BD;;;;;;;;;GASG;AACH,SAAgB,yBAAyB,CACvC,mBAAwC,EACxC,YAA0B;IAE1B,mBAAmB,CAAC,wBAAwB,CAC1C,CACE,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,EAAE,CACF,YAAY,CAAC,2BAA2B,CACtC,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,QAAQ,EACR,WAAW,CACZ,CACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"wireConversationPromotion.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/wireConversationPromotion.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;AAiBH,8DAoBC;AA9BD;;;;;;;;;GASG;AACH,SAAgB,yBAAyB,CACvC,mBAAwC,EACxC,YAA0B;IAE1B,mBAAmB,CAAC,wBAAwB,CAC1C,CACE,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,EAAE,CACF,YAAY,CAAC,2BAA2B,CACtC,cAAc,EACd,oBAAoB,EACpB,YAAY,EACZ,QAAQ,EACR,WAAW,CACZ,CACJ,CAAC;AACJ,CAAC"}
@@ -1,9 +1,3 @@
1
- import type { IEmailTokenDocument } from './documents/email-token';
2
- import type { IMnemonicDocument } from './documents/mnemonic';
3
- import type { IRoleDocument } from './documents/role';
4
- import { IUsedDirectLoginTokenDocument } from './documents/used-direct-login-token';
5
- import type { IUserDocument } from './documents/user';
6
- import type { IUserRoleDocument } from './documents/user-role';
7
1
  import { ModelName } from './enumerations/model-name';
8
2
  import { SchemaCollection } from './enumerations/schema-collection';
9
3
  export type { SignatureBuffer } from '@digitaldefiance/node-ecies-lib';
@@ -39,17 +33,6 @@ export interface IBlockStorageSchemaEntry<T> {
39
33
  modelName: ModelName;
40
34
  schema: IBlockStorageSchema<T>;
41
35
  }
42
- /**
43
- * Schema map interface
44
- */
45
- export type ModelDocMap = {
46
- EmailToken: IEmailTokenDocument;
47
- Mnemonic: IMnemonicDocument;
48
- Role: IRoleDocument;
49
- UsedDirectLoginToken: IUsedDirectLoginTokenDocument;
50
- User: IUserDocument;
51
- UserRole: IUserRoleDocument;
52
- };
53
36
  /**
54
37
  * Schema map type for validation schemas
55
38
  */
@@ -1 +1 @@
1
- {"version":3,"file":"shared-types.d.ts","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/shared-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAGpE,YAAY,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,YAAY,EAAE,YAAY,EAAE,MAAM,yDAAyD,CAAC;AAI5F,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC;AAKhC,OAAO,KAAK,EAAE,oBAAoB,IAAI,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACxF,MAAM,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACpC,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;QAC3C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC,CAAC,CAAC;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB,CAAC,CAAC;IACzC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,UAAU,EAAE,mBAAmB,CAAC;IAChC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,IAAI,EAAE,aAAa,CAAC;IACpB,oBAAoB,EAAE,6BAA6B,CAAC;IACpD,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,iBAAiB,CAAC;CAC7B,CAAC;AAEF;;GAEG;AAEH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"shared-types.d.ts","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/shared-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAGpE,YAAY,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACvE,YAAY,EAAE,YAAY,EAAE,MAAM,yDAAyD,CAAC;AAI5F,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC;AAKhC,OAAO,KAAK,EAAE,oBAAoB,IAAI,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACxF,MAAM,MAAM,oBAAoB,GAAG,qBAAqB,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACpC,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;QAC3C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC,CAAC,CAAC;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB,CAAC,CAAC;IACzC,UAAU,EAAE,gBAAgB,CAAC;IAC7B,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;CAChC;AAED;;GAEG;AAEH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC"}