@brightchain/brightchain-api-lib 0.24.0 → 0.25.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/package.json +3 -3
- package/src/lib/application.d.ts.map +1 -1
- package/src/lib/application.js +33 -11
- package/src/lib/application.js.map +1 -1
- package/src/lib/auth/aclDocumentStore.d.ts +90 -0
- package/src/lib/auth/aclDocumentStore.d.ts.map +1 -0
- package/src/lib/auth/aclDocumentStore.js +155 -0
- package/src/lib/auth/aclDocumentStore.js.map +1 -0
- package/src/lib/auth/index.d.ts +4 -0
- package/src/lib/auth/index.d.ts.map +1 -1
- package/src/lib/auth/index.js +4 -0
- package/src/lib/auth/index.js.map +1 -1
- package/src/lib/auth/writeAclApiRouter.d.ts +32 -0
- package/src/lib/auth/writeAclApiRouter.d.ts.map +1 -0
- package/src/lib/auth/writeAclApiRouter.js +348 -0
- package/src/lib/auth/writeAclApiRouter.js.map +1 -0
- package/src/lib/auth/writeAclAuditLogger.d.ts +94 -0
- package/src/lib/auth/writeAclAuditLogger.d.ts.map +1 -0
- package/src/lib/auth/writeAclAuditLogger.js +143 -0
- package/src/lib/auth/writeAclAuditLogger.js.map +1 -0
- package/src/lib/auth/writeProofMiddleware.d.ts +39 -0
- package/src/lib/auth/writeProofMiddleware.d.ts.map +1 -0
- package/src/lib/auth/writeProofMiddleware.js +56 -0
- package/src/lib/auth/writeProofMiddleware.js.map +1 -0
- package/src/lib/availability/aclDocumentSyncHandler.d.ts +39 -0
- package/src/lib/availability/aclDocumentSyncHandler.d.ts.map +1 -0
- package/src/lib/availability/aclDocumentSyncHandler.js +81 -0
- package/src/lib/availability/aclDocumentSyncHandler.js.map +1 -0
- package/src/lib/availability/gossipService.d.ts +4 -1
- package/src/lib/availability/gossipService.d.ts.map +1 -1
- package/src/lib/availability/gossipService.js +15 -1
- package/src/lib/availability/gossipService.js.map +1 -1
- package/src/lib/availability/headUpdateSyncHandler.d.ts +32 -0
- package/src/lib/availability/headUpdateSyncHandler.d.ts.map +1 -0
- package/src/lib/availability/headUpdateSyncHandler.js +78 -0
- package/src/lib/availability/headUpdateSyncHandler.js.map +1 -0
- package/src/lib/availability/index.d.ts +2 -0
- package/src/lib/availability/index.d.ts.map +1 -1
- package/src/lib/availability/index.js +2 -0
- package/src/lib/availability/index.js.map +1 -1
- package/src/lib/constants.d.ts.map +1 -1
- package/src/lib/constants.js +2 -0
- package/src/lib/constants.js.map +1 -1
- package/src/lib/controllers/api/brighthub/connectionController.d.ts +6 -0
- package/src/lib/controllers/api/brighthub/connectionController.d.ts.map +1 -1
- package/src/lib/controllers/api/brighthub/connectionController.js +158 -11
- package/src/lib/controllers/api/brighthub/connectionController.js.map +1 -1
- package/src/lib/controllers/api/brighthub/messagingController.d.ts +6 -0
- package/src/lib/controllers/api/brighthub/messagingController.d.ts.map +1 -1
- package/src/lib/controllers/api/brighthub/messagingController.js +190 -58
- package/src/lib/controllers/api/brighthub/messagingController.js.map +1 -1
- package/src/lib/controllers/api/brighthub/postController.d.ts +12 -3
- package/src/lib/controllers/api/brighthub/postController.d.ts.map +1 -1
- package/src/lib/controllers/api/brighthub/postController.js +60 -0
- package/src/lib/controllers/api/brighthub/postController.js.map +1 -1
- package/src/lib/controllers/api/brighthub/timelineController.d.ts +19 -0
- package/src/lib/controllers/api/brighthub/timelineController.d.ts.map +1 -1
- package/src/lib/controllers/api/brighthub/timelineController.js +133 -0
- package/src/lib/controllers/api/brighthub/timelineController.js.map +1 -1
- package/src/lib/controllers/api/emails.d.ts +4 -1
- package/src/lib/controllers/api/emails.d.ts.map +1 -1
- package/src/lib/controllers/api/emails.js +28 -1
- package/src/lib/controllers/api/emails.js.map +1 -1
- package/src/lib/controllers/api/user.d.ts.map +1 -1
- package/src/lib/controllers/api/user.js +10 -0
- package/src/lib/controllers/api/user.js.map +1 -1
- package/src/lib/databaseInit.d.ts +1 -1
- package/src/lib/databaseInit.d.ts.map +1 -1
- package/src/lib/databaseInit.js +14 -4
- package/src/lib/databaseInit.js.map +1 -1
- package/src/lib/environment.d.ts +29 -3
- package/src/lib/environment.d.ts.map +1 -1
- package/src/lib/environment.js +97 -6
- package/src/lib/environment.js.map +1 -1
- package/src/lib/factories/blockStoreFactory.d.ts.map +1 -1
- package/src/lib/factories/blockStoreFactory.js +4 -1
- package/src/lib/factories/blockStoreFactory.js.map +1 -1
- package/src/lib/interfaces/environment.d.ts +45 -2
- package/src/lib/interfaces/environment.d.ts.map +1 -1
- package/src/lib/interfaces/responses/brighthub/api-post-response.d.ts +8 -1
- package/src/lib/interfaces/responses/brighthub/api-post-response.d.ts.map +1 -1
- package/src/lib/routers/api.d.ts +18 -1
- package/src/lib/routers/api.d.ts.map +1 -1
- package/src/lib/routers/api.js +24 -1
- package/src/lib/routers/api.js.map +1 -1
- package/src/lib/routers/app.d.ts.map +1 -1
- package/src/lib/routers/app.js +5 -2
- package/src/lib/routers/app.js.map +1 -1
- package/src/lib/services/auth.d.ts.map +1 -1
- package/src/lib/services/auth.js +37 -3
- package/src/lib/services/auth.js.map +1 -1
- package/src/lib/services/blockStore.d.ts +8 -1
- package/src/lib/services/blockStore.d.ts.map +1 -1
- package/src/lib/services/blockStore.js +19 -7
- package/src/lib/services/blockStore.js.map +1 -1
- package/src/lib/services/brightChainBackupCodeService.d.ts +42 -39
- package/src/lib/services/brightChainBackupCodeService.d.ts.map +1 -1
- package/src/lib/services/brightChainBackupCodeService.js +86 -61
- package/src/lib/services/brightChainBackupCodeService.js.map +1 -1
- package/src/lib/services/brighthub/collectionAdapter.d.ts +81 -0
- package/src/lib/services/brighthub/collectionAdapter.d.ts.map +1 -0
- package/src/lib/services/brighthub/collectionAdapter.js +127 -0
- package/src/lib/services/brighthub/collectionAdapter.js.map +1 -0
- package/src/lib/services/brighthub/connectionService.d.ts.map +1 -1
- package/src/lib/services/brighthub/connectionService.js +3 -0
- package/src/lib/services/brighthub/connectionService.js.map +1 -1
- package/src/lib/services/brighthub/messagingService.d.ts +4 -0
- package/src/lib/services/brighthub/messagingService.d.ts.map +1 -1
- package/src/lib/services/brighthub/messagingService.js +25 -4
- package/src/lib/services/brighthub/messagingService.js.map +1 -1
- package/src/lib/services/brighthub/notificationService.d.ts.map +1 -1
- package/src/lib/services/brighthub/notificationService.js +35 -20
- package/src/lib/services/brighthub/notificationService.js.map +1 -1
- package/src/lib/services/brighthub/postService.d.ts +7 -1
- package/src/lib/services/brighthub/postService.d.ts.map +1 -1
- package/src/lib/services/brighthub/postService.js +22 -1
- package/src/lib/services/brighthub/postService.js.map +1 -1
- package/src/lib/services/brighthub/userProfileService.d.ts +19 -1
- package/src/lib/services/brighthub/userProfileService.d.ts.map +1 -1
- package/src/lib/services/brighthub/userProfileService.js +74 -0
- package/src/lib/services/brighthub/userProfileService.js.map +1 -1
- package/src/lib/services/eventNotificationSystem.d.ts.map +1 -1
- package/src/lib/services/eventNotificationSystem.js.map +1 -1
- package/src/lib/services/index.d.ts +1 -1
- package/src/lib/services/index.d.ts.map +1 -1
- package/src/lib/services/index.js +1 -1
- package/src/lib/services/index.js.map +1 -1
- package/src/lib/stores/availabilityAwareBlockStore.d.ts +4 -3
- package/src/lib/stores/availabilityAwareBlockStore.d.ts.map +1 -1
- package/src/lib/stores/availabilityAwareBlockStore.js +5 -2
- package/src/lib/stores/availabilityAwareBlockStore.js.map +1 -1
- package/src/lib/stores/cloudBlockStoreBase.d.ts +2 -1
- package/src/lib/stores/cloudBlockStoreBase.d.ts.map +1 -1
- package/src/lib/stores/cloudBlockStoreBase.js +34 -13
- package/src/lib/stores/cloudBlockStoreBase.js.map +1 -1
- package/src/lib/stores/diskBlockAsyncStore.d.ts +21 -1
- package/src/lib/stores/diskBlockAsyncStore.d.ts.map +1 -1
- package/src/lib/stores/diskBlockAsyncStore.js +48 -17
- package/src/lib/stores/diskBlockAsyncStore.js.map +1 -1
- package/src/lib/stores/diskBlockStore.d.ts +10 -2
- package/src/lib/stores/diskBlockStore.d.ts.map +1 -1
- package/src/lib/stores/diskBlockStore.js +43 -19
- package/src/lib/stores/diskBlockStore.js.map +1 -1
- package/src/lib/utils/emailValidation.d.ts.map +1 -1
- package/src/lib/utils/emailValidation.js +2 -1
- package/src/lib/utils/emailValidation.js.map +1 -1
|
@@ -46,38 +46,63 @@ class BrightChainBackupCodeService {
|
|
|
46
46
|
* Generate N plaintext codes, encrypt them, persist to member profile,
|
|
47
47
|
* and return the plaintext strings.
|
|
48
48
|
*
|
|
49
|
-
* 1. Resolve system user
|
|
50
|
-
* 2.
|
|
51
|
-
* 3.
|
|
52
|
-
* 4.
|
|
53
|
-
* 5.
|
|
49
|
+
* 1. Resolve system user
|
|
50
|
+
* 2. Retrieve the member's encrypted mnemonic from their private profile
|
|
51
|
+
* 3. Decrypt the mnemonic using the system user's private key
|
|
52
|
+
* 4. Reconstruct a node-ecies-lib Member with private key from the mnemonic
|
|
53
|
+
* 5. Generate `Count` random backup codes via upstream BackupCode primitives
|
|
54
|
+
* 6. Encrypt codes (Argon2id KDF → AEAD → ECIES wrap) via upstream static method
|
|
55
|
+
* 7. Persist encrypted codes to member's private profile via MemberStore
|
|
56
|
+
* 8. Return plaintext display-formatted strings
|
|
54
57
|
*/
|
|
55
58
|
async generateCodes(memberId) {
|
|
56
59
|
const systemUser = this.getSystemUser();
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
codes.push(new node_express_suite_1.BackupCode(node_express_suite_1.BackupCode.generateBackupCode()));
|
|
63
|
-
}
|
|
64
|
-
// Encrypt codes using the upstream multi-layer scheme
|
|
65
|
-
// (HKDF-SHA256 checksum, Argon2id KDF, AEAD encryption, ECIES wrapping)
|
|
66
|
-
// MemberStore returns ecies-lib Member; BackupCode expects node-ecies-lib Member.
|
|
67
|
-
// Node_Member extends Base_Member, so instanceof narrows safely.
|
|
68
|
-
if (!(backupUser instanceof node_ecies_lib_1.Member)) {
|
|
69
|
-
throw new Error('backupUser must be a node-ecies-lib Member (Node_Member)');
|
|
60
|
+
// Retrieve the member's private profile to get the encrypted mnemonic
|
|
61
|
+
const profile = await this.memberStore.getMemberProfile(memberId);
|
|
62
|
+
if (!profile.privateProfile?.mnemonicRecovery) {
|
|
63
|
+
throw new Error('Member has no encrypted mnemonic — cannot generate backup codes. ' +
|
|
64
|
+
'This member may have been created before mnemonic recovery was implemented.');
|
|
70
65
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
66
|
+
// Decrypt the mnemonic using the system user's private key
|
|
67
|
+
const decryptedMnemonicBuf = await systemUser.decryptData(Buffer.from(profile.privateProfile.mnemonicRecovery, 'hex'));
|
|
68
|
+
const mnemonicString = decryptedMnemonicBuf.toString('utf-8');
|
|
69
|
+
// Retrieve the base member for metadata (name, email, type, id)
|
|
70
|
+
const baseMember = await this.memberStore.getMember(memberId);
|
|
71
|
+
// Reconstruct a node-ecies-lib Member with private key from the mnemonic.
|
|
72
|
+
// This produces the same keypair that was generated during registration.
|
|
73
|
+
const { member: backupUser } = node_ecies_lib_1.Member.newMember(this.eciesService, baseMember.type, baseMember.name, baseMember.email instanceof ecies_lib_1.EmailString
|
|
74
|
+
? baseMember.email
|
|
75
|
+
: new ecies_lib_1.EmailString(String(baseMember.email)), new ecies_lib_1.SecureString(mnemonicString));
|
|
76
|
+
// Patch the reconstructed member's ID to match the stored member
|
|
77
|
+
Object.defineProperty(backupUser, 'id', {
|
|
78
|
+
get: () => baseMember.id,
|
|
79
|
+
configurable: true,
|
|
78
80
|
});
|
|
79
|
-
|
|
80
|
-
|
|
81
|
+
try {
|
|
82
|
+
// Generate plaintext backup codes using upstream primitives
|
|
83
|
+
const count = this.backupCodeConstants.Count;
|
|
84
|
+
const codes = [];
|
|
85
|
+
for (let i = 0; i < count; i++) {
|
|
86
|
+
codes.push(new node_express_suite_1.BackupCode(node_express_suite_1.BackupCode.generateBackupCode()));
|
|
87
|
+
}
|
|
88
|
+
// Encrypt codes using the upstream multi-layer scheme
|
|
89
|
+
// (HKDF-SHA256 checksum, Argon2id KDF, AEAD encryption, ECIES wrapping)
|
|
90
|
+
const encryptedCodes = await node_express_suite_1.BackupCode.encryptBackupCodes(backupUser, systemUser, codes);
|
|
91
|
+
// Persist encrypted codes to member's private profile
|
|
92
|
+
await this.memberStore.updateMember(memberId, {
|
|
93
|
+
id: memberId,
|
|
94
|
+
privateChanges: {
|
|
95
|
+
backupCodes: encryptedCodes,
|
|
96
|
+
},
|
|
97
|
+
});
|
|
98
|
+
// Return plaintext display-formatted strings (e.g. xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx)
|
|
99
|
+
return codes.map((code) => code.value);
|
|
100
|
+
}
|
|
101
|
+
finally {
|
|
102
|
+
// Zero out private key material
|
|
103
|
+
backupUser.dispose();
|
|
104
|
+
decryptedMnemonicBuf.fill(0);
|
|
105
|
+
}
|
|
81
106
|
}
|
|
82
107
|
/**
|
|
83
108
|
* Return the count of stored backup codes for a member.
|
|
@@ -139,25 +164,25 @@ class BrightChainBackupCodeService {
|
|
|
139
164
|
* Recover the user's private key from a consumed backup code entry.
|
|
140
165
|
*/
|
|
141
166
|
/**
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
167
|
+
* Recover the user's private key from a consumed backup code entry.
|
|
168
|
+
*
|
|
169
|
+
* Flow (mirrors upstream BackupCodeService.recoverKeyWithBackupCodeV1):
|
|
170
|
+
* 1. Retrieve stored backup codes from the member's private profile
|
|
171
|
+
* 2. Consume the submitted code via useBackupCode() (constant-time checksum match)
|
|
172
|
+
* 3. Unwrap the ECIES layer using the system user's private key
|
|
173
|
+
* 4. Derive the Argon2id key from the plaintext code + per-code salt
|
|
174
|
+
* 5. Decrypt the AEAD blob to recover the user's private key
|
|
175
|
+
* 6. Reconstruct a Member with the recovered private key
|
|
176
|
+
* 7. Optionally re-wrap the private key with a new password
|
|
177
|
+
* 8. Persist the updated codes array (consumed code removed)
|
|
178
|
+
*
|
|
179
|
+
* @param memberId - The ID of the member whose key is being recovered
|
|
180
|
+
* @param backupCode - The plaintext backup code submitted by the user
|
|
181
|
+
* @param newPassword - Optional new password to re-wrap the recovered private key
|
|
182
|
+
* @returns The recovered BackendMember and remaining backup code count
|
|
183
|
+
* @throws {InvalidBackupCodeError} If the submitted code doesn't match any stored code
|
|
184
|
+
* @throws {Error} If the system user is not available or member is not found
|
|
185
|
+
*/
|
|
161
186
|
async recoverKeyWithBackupCode(memberId, backupCode, newPassword) {
|
|
162
187
|
const systemUser = this.getSystemUser();
|
|
163
188
|
// Retrieve the member (for public key, name, email, type, etc.)
|
|
@@ -236,21 +261,21 @@ class BrightChainBackupCodeService {
|
|
|
236
261
|
* Re-wrap all users' backup codes with a new system key (key rotation).
|
|
237
262
|
*/
|
|
238
263
|
/**
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
264
|
+
* Re-wrap all users' backup codes with a new system key (key rotation).
|
|
265
|
+
*
|
|
266
|
+
* For each member in the store:
|
|
267
|
+
* 1. Retrieve their stored backup codes from the private profile
|
|
268
|
+
* 2. For each code, unwrap the ECIES layer with the old system key
|
|
269
|
+
* 3. Re-wrap the inner AEAD blob with the new system key
|
|
270
|
+
* 4. Persist the re-wrapped codes back to the member's private profile
|
|
271
|
+
*
|
|
272
|
+
* Individual user failures are logged and skipped — processing continues
|
|
273
|
+
* for remaining users.
|
|
274
|
+
*
|
|
275
|
+
* @param oldSystem - The old system user whose private key unwraps existing ECIES layers
|
|
276
|
+
* @param newSystem - The new system user whose public key re-wraps the AEAD blobs
|
|
277
|
+
* @returns The count of users whose codes were successfully re-wrapped
|
|
278
|
+
*/
|
|
254
279
|
async rewrapAllUsersBackupCodes(oldSystem, newSystem) {
|
|
255
280
|
// Query all members from the index
|
|
256
281
|
const memberRefs = await this.memberStore.queryIndex({});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brightChainBackupCodeService.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/brightChainBackupCodeService.ts"],"names":[],"mappings":";;;AAMA,
|
|
1
|
+
{"version":3,"file":"brightChainBackupCodeService.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/brightChainBackupCodeService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adapter that wraps a BrightDb DocumentCollection / BlockCollection to match
|
|
3
|
+
* the Collection<T> interface expected by BrightHub services.
|
|
4
|
+
*
|
|
5
|
+
* The underlying collection may be either:
|
|
6
|
+
* 1. BlockCollection (from block-document-store.ts) — has create(), findOne().exec(),
|
|
7
|
+
* updateOne(filter, rawFields) returning Promise directly
|
|
8
|
+
* 2. BrightDb Collection (from brightchain-db) — has insertOne(), findOne() returning
|
|
9
|
+
* Promise directly, updateOne(filter, {$set}) returning Promise directly
|
|
10
|
+
* 3. BrightDb Model — wraps a BrightDb Collection with hydration/dehydration
|
|
11
|
+
*
|
|
12
|
+
* BrightHub services expect:
|
|
13
|
+
* - create(record) → Promise<T>
|
|
14
|
+
* - findOne(filter).exec() → Promise<T|null>
|
|
15
|
+
* - find(filter).sort().skip().limit().exec() → Promise<T[]>
|
|
16
|
+
* - updateOne(filter, rawFields).exec() → Promise<{modifiedCount}>
|
|
17
|
+
* - deleteOne(filter).exec() → Promise<{deletedCount}>
|
|
18
|
+
*
|
|
19
|
+
* This adapter bridges the gap for all underlying collection types.
|
|
20
|
+
*/
|
|
21
|
+
interface FindQuery<T> {
|
|
22
|
+
sort?(field: Record<string, 1 | -1>): FindQuery<T>;
|
|
23
|
+
skip?(count: number): FindQuery<T>;
|
|
24
|
+
limit?(count: number): FindQuery<T>;
|
|
25
|
+
exec(): Promise<T[]>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The Collection<T> interface that BrightHub services expect.
|
|
29
|
+
*/
|
|
30
|
+
export interface BrightHubCollection<T> {
|
|
31
|
+
create(record: T): Promise<T>;
|
|
32
|
+
findOne(filter: Partial<T>): {
|
|
33
|
+
exec(): Promise<T | null>;
|
|
34
|
+
};
|
|
35
|
+
find(filter: Partial<T>): FindQuery<T>;
|
|
36
|
+
updateOne(filter: Partial<T>, update: Partial<T>): {
|
|
37
|
+
exec(): Promise<{
|
|
38
|
+
modifiedCount: number;
|
|
39
|
+
}>;
|
|
40
|
+
};
|
|
41
|
+
deleteOne(filter: Partial<T>): {
|
|
42
|
+
exec(): Promise<{
|
|
43
|
+
deletedCount: number;
|
|
44
|
+
}>;
|
|
45
|
+
};
|
|
46
|
+
countDocuments?(filter: Partial<T>): {
|
|
47
|
+
exec(): Promise<number>;
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Wraps any underlying collection type to provide the BrightHubCollection<T>
|
|
52
|
+
* interface that BrightHub services expect.
|
|
53
|
+
*/
|
|
54
|
+
export declare class CollectionAdapter<T> implements BrightHubCollection<T> {
|
|
55
|
+
private readonly raw;
|
|
56
|
+
constructor(raw: any);
|
|
57
|
+
create(record: T): Promise<T>;
|
|
58
|
+
findOne(filter: Partial<T>): {
|
|
59
|
+
exec(): Promise<T | null>;
|
|
60
|
+
};
|
|
61
|
+
find(filter: Partial<T>): FindQuery<T>;
|
|
62
|
+
updateOne(filter: Partial<T>, update: Partial<T>): {
|
|
63
|
+
exec(): Promise<{
|
|
64
|
+
modifiedCount: number;
|
|
65
|
+
}>;
|
|
66
|
+
};
|
|
67
|
+
deleteOne(filter: Partial<T>): {
|
|
68
|
+
exec(): Promise<{
|
|
69
|
+
deletedCount: number;
|
|
70
|
+
}>;
|
|
71
|
+
};
|
|
72
|
+
countDocuments(filter: Partial<T>): {
|
|
73
|
+
exec(): Promise<number>;
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Wrap any underlying collection for use by BrightHub services.
|
|
78
|
+
*/
|
|
79
|
+
export declare function wrapCollection<T>(raw: any): BrightHubCollection<T>;
|
|
80
|
+
export {};
|
|
81
|
+
//# sourceMappingURL=collectionAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collectionAdapter.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/services/brighthub/collectionAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,UAAU,SAAS,CAAC,CAAC;IACnB,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACnD,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACnC,KAAK,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC;IACpC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9B,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG;QAAE,IAAI,IAAI,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;KAAE,CAAC;IAC3D,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IACvC,SAAS,CACP,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAClB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GACjB;QAAE,IAAI,IAAI,OAAO,CAAC;YAAE,aAAa,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IAClD,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG;QAAE,IAAI,IAAI,OAAO,CAAC;YAAE,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE,CAAC;IAC7E,cAAc,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG;QAAE,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC;CAClE;AAED;;;GAGG;AACH,qBAAa,iBAAiB,CAAC,CAAC,CAAE,YAAW,mBAAmB,CAAC,CAAC,CAAC;IACrD,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,EAAE,GAAG;IAE/B,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IASnC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG;QAAE,IAAI,IAAI,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;KAAE;IAU1D,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IAUtC,SAAS,CACP,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAClB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GACjB;QAAE,IAAI,IAAI,OAAO,CAAC;YAAE,aAAa,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE;IAYjD,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG;QAAE,IAAI,IAAI,OAAO,CAAC;YAAE,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE;IAS5E,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG;QAAE,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;KAAE;CAKhE;AAuCD;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAElE"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Adapter that wraps a BrightDb DocumentCollection / BlockCollection to match
|
|
4
|
+
* the Collection<T> interface expected by BrightHub services.
|
|
5
|
+
*
|
|
6
|
+
* The underlying collection may be either:
|
|
7
|
+
* 1. BlockCollection (from block-document-store.ts) — has create(), findOne().exec(),
|
|
8
|
+
* updateOne(filter, rawFields) returning Promise directly
|
|
9
|
+
* 2. BrightDb Collection (from brightchain-db) — has insertOne(), findOne() returning
|
|
10
|
+
* Promise directly, updateOne(filter, {$set}) returning Promise directly
|
|
11
|
+
* 3. BrightDb Model — wraps a BrightDb Collection with hydration/dehydration
|
|
12
|
+
*
|
|
13
|
+
* BrightHub services expect:
|
|
14
|
+
* - create(record) → Promise<T>
|
|
15
|
+
* - findOne(filter).exec() → Promise<T|null>
|
|
16
|
+
* - find(filter).sort().skip().limit().exec() → Promise<T[]>
|
|
17
|
+
* - updateOne(filter, rawFields).exec() → Promise<{modifiedCount}>
|
|
18
|
+
* - deleteOne(filter).exec() → Promise<{deletedCount}>
|
|
19
|
+
*
|
|
20
|
+
* This adapter bridges the gap for all underlying collection types.
|
|
21
|
+
*/
|
|
22
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
|
+
exports.CollectionAdapter = void 0;
|
|
24
|
+
exports.wrapCollection = wrapCollection;
|
|
25
|
+
/**
|
|
26
|
+
* Wraps any underlying collection type to provide the BrightHubCollection<T>
|
|
27
|
+
* interface that BrightHub services expect.
|
|
28
|
+
*/
|
|
29
|
+
class CollectionAdapter {
|
|
30
|
+
raw;
|
|
31
|
+
constructor(raw) {
|
|
32
|
+
this.raw = raw;
|
|
33
|
+
}
|
|
34
|
+
async create(record) {
|
|
35
|
+
// BlockCollection has create(), BrightDb Collection has insertOne()
|
|
36
|
+
if (typeof this.raw.create === 'function') {
|
|
37
|
+
return this.raw.create(record);
|
|
38
|
+
}
|
|
39
|
+
await this.raw.insertOne(record);
|
|
40
|
+
return record;
|
|
41
|
+
}
|
|
42
|
+
findOne(filter) {
|
|
43
|
+
const result = this.raw.findOne(filter);
|
|
44
|
+
// BlockCollection.findOne returns QueryBuilder with .exec()
|
|
45
|
+
if (result && typeof result.exec === 'function') {
|
|
46
|
+
return result;
|
|
47
|
+
}
|
|
48
|
+
// BrightDb Collection.findOne returns Promise<T|null> directly
|
|
49
|
+
return { exec: () => result };
|
|
50
|
+
}
|
|
51
|
+
find(filter) {
|
|
52
|
+
const cursor = this.raw.find(filter);
|
|
53
|
+
// BlockCollection.find returns QueryBuilder with .exec()
|
|
54
|
+
if (cursor && typeof cursor.exec === 'function') {
|
|
55
|
+
return cursor;
|
|
56
|
+
}
|
|
57
|
+
// BrightDb Collection.find returns Cursor with .toArray()
|
|
58
|
+
return new CursorAdapter(cursor);
|
|
59
|
+
}
|
|
60
|
+
updateOne(filter, update) {
|
|
61
|
+
return {
|
|
62
|
+
exec: async () => {
|
|
63
|
+
// BlockCollection.updateOne takes raw fields directly
|
|
64
|
+
// BrightDb Collection.updateOne takes {$set: fields}
|
|
65
|
+
// Both return Promise<{modifiedCount, ...}>
|
|
66
|
+
const result = await this.raw.updateOne(filter, update);
|
|
67
|
+
return { modifiedCount: result.modifiedCount };
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
deleteOne(filter) {
|
|
72
|
+
return {
|
|
73
|
+
exec: async () => {
|
|
74
|
+
const result = await this.raw.deleteOne(filter);
|
|
75
|
+
return { deletedCount: result.deletedCount };
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
countDocuments(filter) {
|
|
80
|
+
return {
|
|
81
|
+
exec: () => this.raw.countDocuments(filter),
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
exports.CollectionAdapter = CollectionAdapter;
|
|
86
|
+
/**
|
|
87
|
+
* Wraps a BrightDb Cursor (which has .toArray() and .sort/.skip/.limit)
|
|
88
|
+
* to provide the FindQuery<T> interface with .exec().
|
|
89
|
+
*/
|
|
90
|
+
class CursorAdapter {
|
|
91
|
+
cursor;
|
|
92
|
+
constructor(cursor) {
|
|
93
|
+
this.cursor = cursor;
|
|
94
|
+
}
|
|
95
|
+
sort(field) {
|
|
96
|
+
if (this.cursor.sort) {
|
|
97
|
+
this.cursor = this.cursor.sort(field);
|
|
98
|
+
}
|
|
99
|
+
return this;
|
|
100
|
+
}
|
|
101
|
+
skip(count) {
|
|
102
|
+
if (this.cursor.skip) {
|
|
103
|
+
this.cursor = this.cursor.skip(count);
|
|
104
|
+
}
|
|
105
|
+
return this;
|
|
106
|
+
}
|
|
107
|
+
limit(count) {
|
|
108
|
+
if (this.cursor.limit) {
|
|
109
|
+
this.cursor = this.cursor.limit(count);
|
|
110
|
+
}
|
|
111
|
+
return this;
|
|
112
|
+
}
|
|
113
|
+
async exec() {
|
|
114
|
+
if (typeof this.cursor.toArray === 'function') {
|
|
115
|
+
return this.cursor.toArray();
|
|
116
|
+
}
|
|
117
|
+
// Cursor is thenable — awaiting returns the array
|
|
118
|
+
return this.cursor;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Wrap any underlying collection for use by BrightHub services.
|
|
123
|
+
*/
|
|
124
|
+
function wrapCollection(raw) {
|
|
125
|
+
return new CollectionAdapter(raw);
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=collectionAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collectionAdapter.js","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/services/brighthub/collectionAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connectionService.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/services/brighthub/connectionService.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"connectionService.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-api-lib/src/lib/services/brighthub/connectionService.ts"],"names":[],"mappings":"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"}
|
|
@@ -831,6 +831,9 @@ class ConnectionService {
|
|
|
831
831
|
.map((c) => c.username || '')
|
|
832
832
|
.filter((u) => u.length > 0);
|
|
833
833
|
}
|
|
834
|
+
else if (parsed.usernames && Array.isArray(parsed.usernames)) {
|
|
835
|
+
usernames = parsed.usernames.filter((u) => typeof u === 'string' && u.length > 0);
|
|
836
|
+
}
|
|
834
837
|
else if (Array.isArray(parsed)) {
|
|
835
838
|
usernames = parsed
|
|
836
839
|
.map((entry) => typeof entry === 'string' ? entry : entry.username || '')
|