@brightchain/brightchain-api-lib 0.13.0 → 0.15.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 (267) hide show
  1. package/package.json +5 -5
  2. package/src/index.d.ts +3 -0
  3. package/src/index.d.ts.map +1 -1
  4. package/src/index.js +5 -0
  5. package/src/index.js.map +1 -1
  6. package/src/lib/application.d.ts +1 -0
  7. package/src/lib/application.d.ts.map +1 -1
  8. package/src/lib/application.js +23 -0
  9. package/src/lib/application.js.map +1 -1
  10. package/src/lib/auth/aclEnforcedAvailability.d.ts +57 -0
  11. package/src/lib/auth/aclEnforcedAvailability.d.ts.map +1 -0
  12. package/src/lib/auth/aclEnforcedAvailability.js +87 -0
  13. package/src/lib/auth/aclEnforcedAvailability.js.map +1 -0
  14. package/src/lib/auth/aclEnforcedBlockStore.d.ts +66 -0
  15. package/src/lib/auth/aclEnforcedBlockStore.d.ts.map +1 -0
  16. package/src/lib/auth/aclEnforcedBlockStore.js +83 -0
  17. package/src/lib/auth/aclEnforcedBlockStore.js.map +1 -0
  18. package/src/lib/auth/ecdsaNodeAuthenticator.d.ts +46 -0
  19. package/src/lib/auth/ecdsaNodeAuthenticator.d.ts.map +1 -0
  20. package/src/lib/auth/ecdsaNodeAuthenticator.js +110 -0
  21. package/src/lib/auth/ecdsaNodeAuthenticator.js.map +1 -0
  22. package/src/lib/auth/index.d.ts +7 -0
  23. package/src/lib/auth/index.d.ts.map +1 -0
  24. package/src/lib/auth/index.js +13 -0
  25. package/src/lib/auth/index.js.map +1 -0
  26. package/src/lib/auth/poolAclBootstrap.d.ts +36 -0
  27. package/src/lib/auth/poolAclBootstrap.d.ts.map +1 -0
  28. package/src/lib/auth/poolAclBootstrap.js +64 -0
  29. package/src/lib/auth/poolAclBootstrap.js.map +1 -0
  30. package/src/lib/auth/poolAclStore.d.ts +77 -0
  31. package/src/lib/auth/poolAclStore.d.ts.map +1 -0
  32. package/src/lib/auth/poolAclStore.js +189 -0
  33. package/src/lib/auth/poolAclStore.js.map +1 -0
  34. package/src/lib/auth/poolAclUpdater.d.ts +79 -0
  35. package/src/lib/auth/poolAclUpdater.d.ts.map +1 -0
  36. package/src/lib/auth/poolAclUpdater.js +144 -0
  37. package/src/lib/auth/poolAclUpdater.js.map +1 -0
  38. package/src/lib/availability/availabilityService.d.ts +2 -2
  39. package/src/lib/availability/availabilityService.d.ts.map +1 -1
  40. package/src/lib/availability/availabilityService.js +12 -5
  41. package/src/lib/availability/availabilityService.js.map +1 -1
  42. package/src/lib/availability/blockRegistry.d.ts +45 -3
  43. package/src/lib/availability/blockRegistry.d.ts.map +1 -1
  44. package/src/lib/availability/blockRegistry.js +123 -5
  45. package/src/lib/availability/blockRegistry.js.map +1 -1
  46. package/src/lib/availability/configValidation.d.ts.map +1 -1
  47. package/src/lib/availability/configValidation.js +20 -0
  48. package/src/lib/availability/configValidation.js.map +1 -1
  49. package/src/lib/availability/discoveryProtocol.d.ts +30 -1
  50. package/src/lib/availability/discoveryProtocol.d.ts.map +1 -1
  51. package/src/lib/availability/discoveryProtocol.js +76 -0
  52. package/src/lib/availability/discoveryProtocol.js.map +1 -1
  53. package/src/lib/availability/gossipService.d.ts +193 -11
  54. package/src/lib/availability/gossipService.d.ts.map +1 -1
  55. package/src/lib/availability/gossipService.js +473 -21
  56. package/src/lib/availability/gossipService.js.map +1 -1
  57. package/src/lib/availability/reconciliationService.d.ts +88 -1
  58. package/src/lib/availability/reconciliationService.d.ts.map +1 -1
  59. package/src/lib/availability/reconciliationService.js +246 -48
  60. package/src/lib/availability/reconciliationService.js.map +1 -1
  61. package/src/lib/blockFetch/blockFetcher.d.ts +100 -0
  62. package/src/lib/blockFetch/blockFetcher.d.ts.map +1 -0
  63. package/src/lib/blockFetch/blockFetcher.js +279 -0
  64. package/src/lib/blockFetch/blockFetcher.js.map +1 -0
  65. package/src/lib/blockFetch/fetchQueue.d.ts +88 -0
  66. package/src/lib/blockFetch/fetchQueue.d.ts.map +1 -0
  67. package/src/lib/blockFetch/fetchQueue.js +204 -0
  68. package/src/lib/blockFetch/fetchQueue.js.map +1 -0
  69. package/src/lib/blockFetch/httpBlockFetchTransport.d.ts +65 -0
  70. package/src/lib/blockFetch/httpBlockFetchTransport.d.ts.map +1 -0
  71. package/src/lib/blockFetch/httpBlockFetchTransport.js +104 -0
  72. package/src/lib/blockFetch/httpBlockFetchTransport.js.map +1 -0
  73. package/src/lib/blockFetch/index.d.ts +10 -0
  74. package/src/lib/blockFetch/index.d.ts.map +1 -0
  75. package/src/lib/blockFetch/index.js +13 -0
  76. package/src/lib/blockFetch/index.js.map +1 -0
  77. package/src/lib/controllers/api/brightpass.d.ts +72 -0
  78. package/src/lib/controllers/api/brightpass.d.ts.map +1 -0
  79. package/src/lib/controllers/api/brightpass.js +577 -0
  80. package/src/lib/controllers/api/brightpass.js.map +1 -0
  81. package/src/lib/controllers/api/channels.d.ts +122 -0
  82. package/src/lib/controllers/api/channels.d.ts.map +1 -0
  83. package/src/lib/controllers/api/channels.js +701 -0
  84. package/src/lib/controllers/api/channels.js.map +1 -0
  85. package/src/lib/controllers/api/conversations.d.ts +89 -0
  86. package/src/lib/controllers/api/conversations.d.ts.map +1 -0
  87. package/src/lib/controllers/api/conversations.js +259 -0
  88. package/src/lib/controllers/api/conversations.js.map +1 -0
  89. package/src/lib/controllers/api/emails.d.ts +122 -0
  90. package/src/lib/controllers/api/emails.d.ts.map +1 -0
  91. package/src/lib/controllers/api/emails.js +494 -0
  92. package/src/lib/controllers/api/emails.js.map +1 -0
  93. package/src/lib/controllers/api/explodingMessages.d.ts +79 -0
  94. package/src/lib/controllers/api/explodingMessages.d.ts.map +1 -0
  95. package/src/lib/controllers/api/explodingMessages.js +378 -0
  96. package/src/lib/controllers/api/explodingMessages.js.map +1 -0
  97. package/src/lib/controllers/api/groups.d.ts +94 -0
  98. package/src/lib/controllers/api/groups.d.ts.map +1 -0
  99. package/src/lib/controllers/api/groups.js +484 -0
  100. package/src/lib/controllers/api/groups.js.map +1 -0
  101. package/src/lib/controllers/api/index.d.ts +6 -0
  102. package/src/lib/controllers/api/index.d.ts.map +1 -1
  103. package/src/lib/controllers/api/index.js +6 -0
  104. package/src/lib/controllers/api/index.js.map +1 -1
  105. package/src/lib/controllers/api/messages.d.ts.map +1 -1
  106. package/src/lib/controllers/api/messages.js +2 -1
  107. package/src/lib/controllers/api/messages.js.map +1 -1
  108. package/src/lib/controllers/api/sync.d.ts +38 -2
  109. package/src/lib/controllers/api/sync.d.ts.map +1 -1
  110. package/src/lib/controllers/api/sync.js +89 -0
  111. package/src/lib/controllers/api/sync.js.map +1 -1
  112. package/src/lib/controllers/crypto/gitController.d.ts +70 -0
  113. package/src/lib/controllers/crypto/gitController.d.ts.map +1 -0
  114. package/src/lib/controllers/crypto/gitController.js +306 -0
  115. package/src/lib/controllers/crypto/gitController.js.map +1 -0
  116. package/src/lib/controllers/crypto/index.d.ts +3 -0
  117. package/src/lib/controllers/crypto/index.d.ts.map +1 -0
  118. package/src/lib/controllers/crypto/index.js +6 -0
  119. package/src/lib/controllers/crypto/index.js.map +1 -0
  120. package/src/lib/controllers/crypto/walletController.d.ts +64 -0
  121. package/src/lib/controllers/crypto/walletController.d.ts.map +1 -0
  122. package/src/lib/controllers/crypto/walletController.js +260 -0
  123. package/src/lib/controllers/crypto/walletController.js.map +1 -0
  124. package/src/lib/controllers/identity/deviceController.d.ts +96 -0
  125. package/src/lib/controllers/identity/deviceController.d.ts.map +1 -0
  126. package/src/lib/controllers/identity/deviceController.js +355 -0
  127. package/src/lib/controllers/identity/deviceController.js.map +1 -0
  128. package/src/lib/controllers/identity/directoryController.d.ts +75 -0
  129. package/src/lib/controllers/identity/directoryController.d.ts.map +1 -0
  130. package/src/lib/controllers/identity/directoryController.js +288 -0
  131. package/src/lib/controllers/identity/directoryController.js.map +1 -0
  132. package/src/lib/controllers/identity/identityProofController.d.ts +94 -0
  133. package/src/lib/controllers/identity/identityProofController.d.ts.map +1 -0
  134. package/src/lib/controllers/identity/identityProofController.js +454 -0
  135. package/src/lib/controllers/identity/identityProofController.js.map +1 -0
  136. package/src/lib/controllers/identity/index.d.ts +4 -0
  137. package/src/lib/controllers/identity/index.d.ts.map +1 -0
  138. package/src/lib/controllers/identity/index.js +7 -0
  139. package/src/lib/controllers/identity/index.js.map +1 -0
  140. package/src/lib/controllers/index.d.ts +2 -0
  141. package/src/lib/controllers/index.d.ts.map +1 -1
  142. package/src/lib/controllers/index.js +2 -0
  143. package/src/lib/controllers/index.js.map +1 -1
  144. package/src/lib/encryption/encryptedMetadataService.d.ts +87 -0
  145. package/src/lib/encryption/encryptedMetadataService.d.ts.map +1 -0
  146. package/src/lib/encryption/encryptedMetadataService.js +224 -0
  147. package/src/lib/encryption/encryptedMetadataService.js.map +1 -0
  148. package/src/lib/encryption/encryptionAwareReplication.d.ts +76 -0
  149. package/src/lib/encryption/encryptionAwareReplication.d.ts.map +1 -0
  150. package/src/lib/encryption/encryptionAwareReplication.js +116 -0
  151. package/src/lib/encryption/encryptionAwareReplication.js.map +1 -0
  152. package/src/lib/encryption/errors.d.ts +49 -0
  153. package/src/lib/encryption/errors.d.ts.map +1 -0
  154. package/src/lib/encryption/errors.js +80 -0
  155. package/src/lib/encryption/errors.js.map +1 -0
  156. package/src/lib/encryption/index.d.ts +6 -0
  157. package/src/lib/encryption/index.d.ts.map +1 -0
  158. package/src/lib/encryption/index.js +9 -0
  159. package/src/lib/encryption/index.js.map +1 -0
  160. package/src/lib/encryption/poolEncryptionService.d.ts +94 -0
  161. package/src/lib/encryption/poolEncryptionService.d.ts.map +1 -0
  162. package/src/lib/encryption/poolEncryptionService.js +252 -0
  163. package/src/lib/encryption/poolEncryptionService.js.map +1 -0
  164. package/src/lib/encryption/poolKeyManager.d.ts +82 -0
  165. package/src/lib/encryption/poolKeyManager.d.ts.map +1 -0
  166. package/src/lib/encryption/poolKeyManager.js +156 -0
  167. package/src/lib/encryption/poolKeyManager.js.map +1 -0
  168. package/src/lib/environment.d.ts +3 -0
  169. package/src/lib/environment.d.ts.map +1 -1
  170. package/src/lib/environment.js +5 -0
  171. package/src/lib/environment.js.map +1 -1
  172. package/src/lib/interfaces/environment.d.ts +7 -1
  173. package/src/lib/interfaces/environment.d.ts.map +1 -1
  174. package/src/lib/interfaces/index.d.ts +0 -1
  175. package/src/lib/interfaces/index.d.ts.map +1 -1
  176. package/src/lib/interfaces/requests/getBlockDataRequest.d.ts +12 -0
  177. package/src/lib/interfaces/requests/getBlockDataRequest.d.ts.map +1 -0
  178. package/src/lib/interfaces/{blockStore.js → requests/getBlockDataRequest.js} +1 -1
  179. package/src/lib/interfaces/requests/getBlockDataRequest.js.map +1 -0
  180. package/src/lib/interfaces/requests/index.d.ts +1 -0
  181. package/src/lib/interfaces/requests/index.d.ts.map +1 -1
  182. package/src/lib/interfaces/websocketMessages.d.ts +30 -1
  183. package/src/lib/interfaces/websocketMessages.d.ts.map +1 -1
  184. package/src/lib/routers/api.d.ts +54 -1
  185. package/src/lib/routers/api.d.ts.map +1 -1
  186. package/src/lib/routers/api.js +77 -0
  187. package/src/lib/routers/api.js.map +1 -1
  188. package/src/lib/services/blockStore.d.ts +5 -2
  189. package/src/lib/services/blockStore.d.ts.map +1 -1
  190. package/src/lib/services/blockStore.js +4 -0
  191. package/src/lib/services/blockStore.js.map +1 -1
  192. package/src/lib/services/brightpass/auditLogger.d.ts +77 -0
  193. package/src/lib/services/brightpass/auditLogger.d.ts.map +1 -0
  194. package/src/lib/services/brightpass/auditLogger.js +184 -0
  195. package/src/lib/services/brightpass/auditLogger.js.map +1 -0
  196. package/src/lib/services/brightpass/vaultEncryption.d.ts +82 -0
  197. package/src/lib/services/brightpass/vaultEncryption.d.ts.map +1 -0
  198. package/src/lib/services/brightpass/vaultEncryption.js +144 -0
  199. package/src/lib/services/brightpass/vaultEncryption.js.map +1 -0
  200. package/src/lib/services/brightpass.d.ts +294 -0
  201. package/src/lib/services/brightpass.d.ts.map +1 -0
  202. package/src/lib/services/brightpass.js +1260 -0
  203. package/src/lib/services/brightpass.js.map +1 -0
  204. package/src/lib/services/eventNotificationSystem.d.ts +69 -3
  205. package/src/lib/services/eventNotificationSystem.d.ts.map +1 -1
  206. package/src/lib/services/eventNotificationSystem.js +200 -0
  207. package/src/lib/services/eventNotificationSystem.js.map +1 -1
  208. package/src/lib/services/expirationScheduler.d.ts +90 -0
  209. package/src/lib/services/expirationScheduler.d.ts.map +1 -0
  210. package/src/lib/services/expirationScheduler.js +131 -0
  211. package/src/lib/services/expirationScheduler.js.map +1 -0
  212. package/src/lib/services/fecUsageExample.d.ts +2 -2
  213. package/src/lib/services/index.d.ts +3 -0
  214. package/src/lib/services/index.d.ts.map +1 -1
  215. package/src/lib/services/index.js +3 -0
  216. package/src/lib/services/index.js.map +1 -1
  217. package/src/lib/services/messagePassingService.d.ts +95 -5
  218. package/src/lib/services/messagePassingService.d.ts.map +1 -1
  219. package/src/lib/services/messagePassingService.js +187 -28
  220. package/src/lib/services/messagePassingService.js.map +1 -1
  221. package/src/lib/services/paginationService.d.ts +18 -0
  222. package/src/lib/services/paginationService.d.ts.map +1 -0
  223. package/src/lib/services/paginationService.js +32 -0
  224. package/src/lib/services/paginationService.js.map +1 -0
  225. package/src/lib/services/presenceService.d.ts +76 -0
  226. package/src/lib/services/presenceService.d.ts.map +1 -0
  227. package/src/lib/services/presenceService.js +143 -0
  228. package/src/lib/services/presenceService.js.map +1 -0
  229. package/src/lib/services/webSocketMessageServer.d.ts +18 -23
  230. package/src/lib/services/webSocketMessageServer.d.ts.map +1 -1
  231. package/src/lib/services/webSocketMessageServer.js +30 -46
  232. package/src/lib/services/webSocketMessageServer.js.map +1 -1
  233. package/src/lib/services/webSocketPeerProvider.d.ts +49 -0
  234. package/src/lib/services/webSocketPeerProvider.d.ts.map +1 -0
  235. package/src/lib/services/webSocketPeerProvider.js +133 -0
  236. package/src/lib/services/webSocketPeerProvider.js.map +1 -0
  237. package/src/lib/services/websocketHandler.d.ts +11 -8
  238. package/src/lib/services/websocketHandler.d.ts.map +1 -1
  239. package/src/lib/services/websocketHandler.js +33 -40
  240. package/src/lib/services/websocketHandler.js.map +1 -1
  241. package/src/lib/services/wireConversationPromotion.d.ts +23 -0
  242. package/src/lib/services/wireConversationPromotion.d.ts.map +1 -0
  243. package/src/lib/services/wireConversationPromotion.js +26 -0
  244. package/src/lib/services/wireConversationPromotion.js.map +1 -0
  245. package/src/lib/stores/availabilityAwareBlockStore.d.ts +115 -10
  246. package/src/lib/stores/availabilityAwareBlockStore.d.ts.map +1 -1
  247. package/src/lib/stores/availabilityAwareBlockStore.js +267 -23
  248. package/src/lib/stores/availabilityAwareBlockStore.js.map +1 -1
  249. package/src/lib/stores/diskBlockAsyncStore.d.ts +81 -2
  250. package/src/lib/stores/diskBlockAsyncStore.d.ts.map +1 -1
  251. package/src/lib/stores/diskBlockAsyncStore.js +297 -10
  252. package/src/lib/stores/diskBlockAsyncStore.js.map +1 -1
  253. package/src/lib/stores/diskMessageMetadataStore.d.ts +2 -2
  254. package/src/lib/stores/diskMessageMetadataStore.d.ts.map +1 -1
  255. package/src/lib/stores/diskMessageMetadataStore.js +1 -1
  256. package/src/lib/stores/diskMessageMetadataStore.js.map +1 -1
  257. package/src/lib/utils/communicationValidation.d.ts +44 -0
  258. package/src/lib/utils/communicationValidation.d.ts.map +1 -0
  259. package/src/lib/utils/communicationValidation.js +291 -0
  260. package/src/lib/utils/communicationValidation.js.map +1 -0
  261. package/src/lib/utils/emailValidation.d.ts +19 -0
  262. package/src/lib/utils/emailValidation.d.ts.map +1 -0
  263. package/src/lib/utils/emailValidation.js +232 -0
  264. package/src/lib/utils/emailValidation.js.map +1 -0
  265. package/src/lib/interfaces/blockStore.d.ts +0 -7
  266. package/src/lib/interfaces/blockStore.d.ts.map +0 -1
  267. package/src/lib/interfaces/blockStore.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"configValidation.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/configValidation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configValidation.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/configValidation.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * @see Requirements 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8
8
8
  */
9
- import { BloomFilter, DiscoveryConfig, DiscoveryResult, IDiscoveryProtocol, ILocationRecord, PeerQueryResult } from '@brightchain/brightchain-lib';
9
+ import { BloomFilter, CBLMetadataSearchQuery, CBLMetadataSearchResult, DiscoveryConfig, DiscoveryResult, ICBLIndexEntry, IDiscoveryProtocol, ILocationRecord, PeerQueryResult, PoolScopedBloomFilter } from '@brightchain/brightchain-lib';
10
10
  /**
11
11
  * Interface for peer network operations.
12
12
  * Abstracts network communication for discovery queries.
@@ -32,6 +32,15 @@ export interface IPeerNetworkProvider {
32
32
  * @returns Promise resolving to whether the peer has the block
33
33
  */
34
34
  queryPeerForBlock(peerId: string, blockId: string, timeoutMs: number): Promise<boolean>;
35
+ /**
36
+ * Query a peer for CBL index entries matching the given metadata criteria.
37
+ *
38
+ * @param peerId - The peer to query
39
+ * @param query - Search criteria (fileName, mimeType, tags, poolId)
40
+ * @param timeoutMs - Query timeout in milliseconds
41
+ * @returns Promise resolving to matching CBL index entries from that peer
42
+ */
43
+ queryPeerForCBLMetadata(peerId: string, query: CBLMetadataSearchQuery, timeoutMs: number): Promise<ICBLIndexEntry[]>;
35
44
  }
36
45
  /**
37
46
  * Discovery Protocol Implementation
@@ -105,6 +114,15 @@ export declare class DiscoveryProtocol implements IDiscoveryProtocol {
105
114
  * @see Requirements 4.2, 5.2
106
115
  */
107
116
  getPeerBloomFilter(peerId: string): Promise<BloomFilter>;
117
+ /**
118
+ * Get the pool-scoped Bloom filter from a peer.
119
+ * Returns per-pool Bloom filters for pool-aware discovery.
120
+ *
121
+ * @param peerId - The peer to get the pool-scoped Bloom filter from
122
+ * @returns Promise resolving to the peer's pool-scoped Bloom filter
123
+ * @see Requirements 4.2, 4.5
124
+ */
125
+ getPeerPoolScopedBloomFilter(peerId: string): Promise<PoolScopedBloomFilter>;
108
126
  /**
109
127
  * Get the current configuration.
110
128
  *
@@ -155,5 +173,16 @@ export declare class DiscoveryProtocol implements IDiscoveryProtocol {
155
173
  * @param locations - Location records to cache
156
174
  */
157
175
  private cacheResults;
176
+ /**
177
+ * Search for CBL index entries by metadata across pool peers.
178
+ *
179
+ * Queries all connected peers for CBL entries matching the given criteria.
180
+ * Results are deduplicated by magnet URL, keeping the first occurrence.
181
+ *
182
+ * @param query - Search criteria with optional fileName, mimeType, tags, poolId
183
+ * @returns Promise resolving to search results with matching entries and source nodes
184
+ * @see Requirements 8.5
185
+ */
186
+ searchCBLMetadata(query: CBLMetadataSearchQuery): Promise<CBLMetadataSearchResult>;
158
187
  }
159
188
  //# sourceMappingURL=discoveryProtocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"discoveryProtocol.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/discoveryProtocol.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,WAAW,EACX,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,eAAe,EAChB,MAAM,8BAA8B,CAAC;AAuBtC;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,mBAAmB,IAAI,MAAM,EAAE,CAAC;IAEhC;;;;;OAKG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEzD;;;;;;;OAOG;IACH,iBAAiB,CACf,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,iBAAkB,YAAW,kBAAkB;IAkBxD,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAlBzB;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsC;IAE5D;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAuC;IAExE;;;;;OAKG;gBAEgB,eAAe,EAAE,oBAAoB,EACrC,MAAM,GAAE,eAAwC;IAGnE;;;;;;OAMG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA2D9D;;;;;;;OAOG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAyB1E;;;;;;OAMG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE,GAAG,IAAI;IAgB7D;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,aAAa,IAAI,IAAI;IAIrB;;;;;;OAMG;IACG,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAgB9D;;;;OAIG;IACH,SAAS,IAAI,eAAe;IAI5B;;;;OAIG;IACH,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI3C;;OAEG;IACH,wBAAwB,IAAI,IAAI;IAIhC;;;;;;;;OAQG;YACW,2BAA2B;IAgCzC;;;;;;;OAOG;YACW,8BAA8B;IAgC5C;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAmB5B;;;;;OAKG;IACH,OAAO,CAAC,YAAY;CAMrB"}
1
+ {"version":3,"file":"discoveryProtocol.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/discoveryProtocol.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,WAAW,EAEX,sBAAsB,EACtB,uBAAuB,EACvB,eAAe,EACf,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,qBAAqB,EACtB,MAAM,8BAA8B,CAAC;AAuBtC;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,mBAAmB,IAAI,MAAM,EAAE,CAAC;IAEhC;;;;;OAKG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAEzD;;;;;;;OAOG;IACH,iBAAiB,CACf,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB;;;;;;;OAOG;IACH,uBAAuB,CACrB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,sBAAsB,EAC7B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;CAC9B;AAED;;;;;;;;;;GAUG;AACH,qBAAa,iBAAkB,YAAW,kBAAkB;IAkBxD,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAlBzB;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsC;IAE5D;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAuC;IAExE;;;;;OAKG;gBAEgB,eAAe,EAAE,oBAAoB,EACrC,MAAM,GAAE,eAAwC;IAGnE;;;;;;OAMG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA2D9D;;;;;;;OAOG;IACG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAyB1E;;;;;;OAMG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE,GAAG,IAAI;IAgB7D;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,aAAa,IAAI,IAAI;IAIrB;;;;;;OAMG;IACG,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAgB9D;;;;;;;OAOG;IACG,4BAA4B,CAChC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,qBAAqB,CAAC;IAUjC;;;;OAIG;IACH,SAAS,IAAI,eAAe;IAI5B;;;;OAIG;IACH,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI3C;;OAEG;IACH,wBAAwB,IAAI,IAAI;IAIhC;;;;;;;;OAQG;YACW,2BAA2B;IAgCzC;;;;;;;OAOG;YACW,8BAA8B;IAgC5C;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAmB5B;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAOpB;;;;;;;;;OASG;IACG,iBAAiB,CACrB,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,uBAAuB,CAAC;CAgEpC"}
@@ -179,6 +179,23 @@ class DiscoveryProtocol {
179
179
  this.bloomFilterCache.set(peerId, filter);
180
180
  return filter;
181
181
  }
182
+ /**
183
+ * Get the pool-scoped Bloom filter from a peer.
184
+ * Returns per-pool Bloom filters for pool-aware discovery.
185
+ *
186
+ * @param peerId - The peer to get the pool-scoped Bloom filter from
187
+ * @returns Promise resolving to the peer's pool-scoped Bloom filter
188
+ * @see Requirements 4.2, 4.5
189
+ */
190
+ async getPeerPoolScopedBloomFilter(peerId) {
191
+ // Delegate to the network provider if it supports pool-scoped filters,
192
+ // otherwise return a pool-scoped filter wrapping the global filter
193
+ const globalFilter = await this.getPeerBloomFilter(peerId);
194
+ return {
195
+ filters: new Map(),
196
+ globalFilter,
197
+ };
198
+ }
182
199
  /**
183
200
  * Get the current configuration.
184
201
  *
@@ -297,6 +314,65 @@ class DiscoveryProtocol {
297
314
  cachedAt: Date.now(),
298
315
  });
299
316
  }
317
+ /**
318
+ * Search for CBL index entries by metadata across pool peers.
319
+ *
320
+ * Queries all connected peers for CBL entries matching the given criteria.
321
+ * Results are deduplicated by magnet URL, keeping the first occurrence.
322
+ *
323
+ * @param query - Search criteria with optional fileName, mimeType, tags, poolId
324
+ * @returns Promise resolving to search results with matching entries and source nodes
325
+ * @see Requirements 8.5
326
+ */
327
+ async searchCBLMetadata(query) {
328
+ const startTime = Date.now();
329
+ const connectedPeers = this.networkProvider.getConnectedPeerIds();
330
+ if (connectedPeers.length === 0) {
331
+ return {
332
+ query,
333
+ hits: [],
334
+ queriedPeers: 0,
335
+ duration: Date.now() - startTime,
336
+ };
337
+ }
338
+ const hits = [];
339
+ const seenMagnetUrls = new Set();
340
+ let queriedPeers = 0;
341
+ // Query peers with concurrency limiting
342
+ const pending = [];
343
+ let index = 0;
344
+ const queryNext = async () => {
345
+ while (index < connectedPeers.length) {
346
+ const currentIndex = index++;
347
+ const peerId = connectedPeers[currentIndex];
348
+ try {
349
+ const entries = await this.networkProvider.queryPeerForCBLMetadata(peerId, query, this.config.queryTimeoutMs);
350
+ queriedPeers++;
351
+ for (const entry of entries) {
352
+ if (!seenMagnetUrls.has(entry.magnetUrl)) {
353
+ seenMagnetUrls.add(entry.magnetUrl);
354
+ hits.push({ entry, sourceNodeId: peerId });
355
+ }
356
+ }
357
+ }
358
+ catch {
359
+ queriedPeers++;
360
+ // Peer query failed — skip silently, same pattern as block discovery
361
+ }
362
+ }
363
+ };
364
+ const concurrency = Math.min(this.config.maxConcurrentQueries, connectedPeers.length);
365
+ for (let i = 0; i < concurrency; i++) {
366
+ pending.push(queryNext());
367
+ }
368
+ await Promise.all(pending);
369
+ return {
370
+ query,
371
+ hits,
372
+ queriedPeers,
373
+ duration: Date.now() - startTime,
374
+ };
375
+ }
300
376
  }
301
377
  exports.DiscoveryProtocol = DiscoveryProtocol;
302
378
  //# sourceMappingURL=discoveryProtocol.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"discoveryProtocol.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/discoveryProtocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discoveryProtocol.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/discoveryProtocol.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,26 @@
7
7
  *
8
8
  * @see Requirements 6.1, 6.2, 6.3, 6.4, 6.5, 6.6
9
9
  */
10
- import { AnnouncementHandler, BlockAnnouncement, GossipConfig, IGossipService } from '@brightchain/brightchain-lib';
10
+ import { AnnouncementHandler, BlockAnnouncement, DeliveryAckMetadata, GossipConfig, ICBLIndexEntry, IGossipService, MessageDeliveryMetadata, PoolId } from '@brightchain/brightchain-lib';
11
+ import { ECIESService } from '@digitaldefiance/node-ecies-lib';
12
+ /**
13
+ * Error thrown when gossip configuration is invalid.
14
+ * Non-positive fanout or TTL values will trigger this error at service initialization.
15
+ *
16
+ * @see Requirements 10.3, 10.4
17
+ */
18
+ export declare class InvalidGossipConfigError extends Error {
19
+ constructor(message: string);
20
+ }
21
+ /**
22
+ * Optional encrypted payload to send instead of plaintext announcements.
23
+ */
24
+ export interface EncryptedBatchPayload {
25
+ /** Base64-encoded ECIES ciphertext */
26
+ encryptedPayload: string;
27
+ /** Node ID of the sender that encrypted this payload */
28
+ senderNodeId: string;
29
+ }
11
30
  /**
12
31
  * Interface for peer management operations.
13
32
  * Abstracts peer selection for gossip forwarding.
@@ -26,8 +45,14 @@ export interface IPeerProvider {
26
45
  *
27
46
  * @param peerId - The peer to send to
28
47
  * @param announcements - The announcements to send
48
+ * @param encrypted - Optional encrypted payload; when present, announcements should be empty
49
+ */
50
+ sendAnnouncementBatch(peerId: string, announcements: BlockAnnouncement[], encrypted?: EncryptedBatchPayload): Promise<void>;
51
+ /**
52
+ * Get the ECIES public key for a peer node.
53
+ * Returns null if the peer has not registered a public key.
29
54
  */
30
- sendAnnouncementBatch(peerId: string, announcements: BlockAnnouncement[]): Promise<void>;
55
+ getPeerPublicKey(peerId: string): Promise<Buffer | null>;
31
56
  }
32
57
  /**
33
58
  * Gossip Service Implementation
@@ -40,14 +65,38 @@ export interface IPeerProvider {
40
65
  export declare class GossipService implements IGossipService {
41
66
  private readonly peerProvider;
42
67
  private readonly config;
68
+ private readonly eciesService?;
69
+ private readonly localPrivateKey?;
43
70
  /**
44
71
  * Pending announcements waiting to be batched and sent.
45
72
  */
46
73
  private pendingAnnouncements;
47
74
  /**
48
- * Registered announcement handlers.
75
+ * Registered announcement handlers (for non-message, non-ack announcements).
49
76
  */
50
77
  private handlers;
78
+ /**
79
+ * Registered message delivery handlers.
80
+ * Called when a BlockAnnouncement with messageDelivery metadata is received
81
+ * and recipientIds match local users.
82
+ *
83
+ * @see Requirements 3.4, 3.5
84
+ */
85
+ private messageDeliveryHandlers;
86
+ /**
87
+ * Registered delivery ack handlers.
88
+ * Called when a BlockAnnouncement of type 'ack' is received.
89
+ *
90
+ * @see Requirements 4.4
91
+ */
92
+ private deliveryAckHandlers;
93
+ /**
94
+ * Set of local user IDs on this node.
95
+ * Used to determine if a message delivery announcement targets local users.
96
+ *
97
+ * @see Requirements 3.4, 3.6
98
+ */
99
+ private readonly localUserIds;
51
100
  /**
52
101
  * Batch timer handle.
53
102
  */
@@ -61,28 +110,78 @@ export declare class GossipService implements IGossipService {
61
110
  *
62
111
  * @param peerProvider - Provider for peer management operations
63
112
  * @param config - Gossip configuration (uses defaults if not provided)
113
+ * @param localUserIds - Set of local user IDs on this node (defaults to empty set)
114
+ * @param eciesService - Optional ECIES service for encrypting sensitive batches
115
+ * @param localPrivateKey - Optional local node private key (Buffer) for identifying the sender
116
+ * @throws {InvalidGossipConfigError} If configuration contains non-positive fanout or TTL values
117
+ * @see Requirements 10.3, 10.4
64
118
  */
65
- constructor(peerProvider: IPeerProvider, config?: GossipConfig);
119
+ constructor(peerProvider: IPeerProvider, config?: GossipConfig, localUserIds?: Set<string>, eciesService?: ECIESService | undefined, localPrivateKey?: Buffer | undefined);
66
120
  /**
67
121
  * Announce a new block to the network.
68
122
  *
69
123
  * @param blockId - The block ID to announce
70
- * @see Requirements 6.1
124
+ * @param poolId - Optional pool the block belongs to
125
+ * @see Requirements 6.1, 1.1, 6.3
71
126
  */
72
- announceBlock(blockId: string): Promise<void>;
127
+ announceBlock(blockId: string, poolId?: PoolId): Promise<void>;
73
128
  /**
74
129
  * Announce block removal to the network.
75
130
  *
76
131
  * @param blockId - The block ID being removed
77
- * @see Requirements 6.5
132
+ * @param poolId - Optional pool the block belonged to
133
+ * @see Requirements 6.5, 1.1
134
+ */
135
+ announceRemoval(blockId: string, poolId?: PoolId): Promise<void>;
136
+ /**
137
+ * Announce that a pool has been deleted.
138
+ * Creates a pool_deleted announcement propagated as a tombstone.
139
+ *
140
+ * @param poolId - The pool that was deleted
141
+ * @see Requirements 2.2, 2.7
142
+ */
143
+ announcePoolDeletion(poolId: PoolId): Promise<void>;
144
+ /**
145
+ * Announce a new or updated CBL index entry to peers in the same pool.
146
+ * Creates a cbl_index_update announcement scoped to the entry's pool.
147
+ *
148
+ * @param entry - The CBL index entry being announced
149
+ * @see Requirements 8.1
78
150
  */
79
- announceRemoval(blockId: string): Promise<void>;
151
+ announceCBLIndexUpdate(entry: ICBLIndexEntry): Promise<void>;
152
+ /**
153
+ * Announce a soft-deleted CBL index entry to peers in the same pool.
154
+ * Creates a cbl_index_delete announcement so peers also mark the entry as deleted.
155
+ *
156
+ * @param entry - The CBL index entry that was soft-deleted (with deletedAt set)
157
+ * @see Requirements 8.6
158
+ */
159
+ announceCBLIndexDelete(entry: ICBLIndexEntry): Promise<void>;
160
+ /**
161
+ * Announce a HeadRegistry head pointer update to peer nodes.
162
+ * Creates a head_update announcement with the database name, collection name,
163
+ * and new head block ID.
164
+ *
165
+ * @param dbName - The database name containing the collection
166
+ * @param collectionName - The collection whose head pointer was updated
167
+ * @param blockId - The new head block ID
168
+ * @see Requirements 2.1
169
+ */
170
+ announceHeadUpdate(dbName: string, collectionName: string, blockId: string): Promise<void>;
171
+ announceACLUpdate(poolId: string, aclBlockId: string): Promise<void>;
80
172
  /**
81
173
  * Handle an incoming block announcement from a peer.
82
- * Notifies handlers and optionally forwards with decremented TTL.
174
+ *
175
+ * Dispatches announcements based on their type and metadata:
176
+ * - 'pool_deleted' type: dispatches to general handlers and forwards with decremented TTL (Req 2.7)
177
+ * - 'ack' type: dispatches to delivery ack handlers only (Req 4.4)
178
+ * - 'add' with messageDelivery and matching local recipients: triggers message delivery
179
+ * handlers and auto-sends ack if ackRequired (Req 3.4, 3.5)
180
+ * - 'add' with messageDelivery but no matching local recipients: forwards normally (Req 3.6)
181
+ * - Plain 'add'/'remove' without messageDelivery: notifies general handlers and forwards (backward compat)
83
182
  *
84
183
  * @param announcement - The received announcement
85
- * @see Requirements 6.2, 6.4
184
+ * @see Requirements 2.7, 3.4, 3.5, 3.6, 4.4
86
185
  */
87
186
  handleAnnouncement(announcement: BlockAnnouncement): Promise<void>;
88
187
  /**
@@ -107,8 +206,13 @@ export declare class GossipService implements IGossipService {
107
206
  getPendingAnnouncements(): BlockAnnouncement[];
108
207
  /**
109
208
  * Immediately flush all pending announcements.
209
+ * Groups announcements by their required fanout (based on message priority)
210
+ * and sends each group to the appropriate number of peers.
110
211
  *
111
- * @see Requirements 6.6
212
+ * - Announcements with messageDelivery use priority-based fanout (Req 3.1, 3.2)
213
+ * - Announcements without messageDelivery use default fanout (Req 3.3)
214
+ *
215
+ * @see Requirements 3.1, 3.2, 3.3, 6.6
112
216
  */
113
217
  flushAnnouncements(): Promise<void>;
114
218
  /**
@@ -149,9 +253,87 @@ export declare class GossipService implements IGossipService {
149
253
  * @see Requirements 6.6
150
254
  */
151
255
  private splitIntoBatches;
256
+ /**
257
+ * Check if a batch contains sensitive metadata (messageDelivery or deliveryAck).
258
+ *
259
+ * @param announcements - The announcements to check
260
+ * @returns true if any announcement has messageDelivery or deliveryAck
261
+ * @see Requirements 4.1, 4.2
262
+ */
263
+ private batchContainsSensitiveMetadata;
264
+ /**
265
+ * Encrypt a batch of announcements for a specific peer using ECIES.
266
+ * Serializes announcements to JSON, encrypts with the peer's public key,
267
+ * and returns a base64-encoded ciphertext string.
268
+ *
269
+ * @param announcements - The announcements to encrypt
270
+ * @param peerPublicKey - The peer's ECIES public key
271
+ * @returns Base64-encoded ECIES ciphertext
272
+ * @see Requirements 4.1, 4.3
273
+ */
274
+ private encryptBatchForPeer;
275
+ /**
276
+ * Send a batch to a peer, encrypting if the batch is sensitive and the peer has a public key.
277
+ *
278
+ * - Sensitive batch + peer key available → encrypt and send with encryptedPayload
279
+ * - Sensitive batch + no peer key → send plaintext, log warning (Req 6.1, 6.2)
280
+ * - Non-sensitive batch → send plaintext
281
+ *
282
+ * @param peerId - The peer to send to
283
+ * @param batch - The announcements to send
284
+ * @see Requirements 4.1, 4.2, 6.1, 6.2
285
+ */
286
+ private sendBatchToPeer;
152
287
  /**
153
288
  * Clear all pending announcements (for testing).
154
289
  */
155
290
  clearPending(): void;
291
+ /**
292
+ * Announce message blocks to the network with message delivery metadata.
293
+ * Creates a BlockAnnouncement for each blockId with priority-based TTL
294
+ * from config and queues them for batch sending.
295
+ *
296
+ * @param blockIds - The block IDs containing the message content
297
+ * @param metadata - Message delivery metadata including recipients, priority, and CBL block ID
298
+ * @see Requirements 3.1, 3.2, 3.3
299
+ */
300
+ announceMessage(blockIds: string[], metadata: MessageDeliveryMetadata): Promise<void>;
301
+ /**
302
+ * Send a delivery acknowledgment back through the gossip network.
303
+ * Stub implementation — will be fully implemented in task 4.3.
304
+ *
305
+ * @param _ack - Delivery acknowledgment metadata
306
+ * @see Requirements 4.1
307
+ */
308
+ sendDeliveryAck(ack: DeliveryAckMetadata): Promise<void>;
309
+ /**
310
+ * Register a handler for message delivery events.
311
+ * The handler is called when a BlockAnnouncement with messageDelivery
312
+ * metadata is received and recipientIds match local users.
313
+ *
314
+ * @param handler - Function to call when a message delivery announcement is received
315
+ * @see Requirements 3.4, 3.5
316
+ */
317
+ onMessageDelivery(handler: (announcement: BlockAnnouncement) => void): void;
318
+ /**
319
+ * Remove a message delivery event handler.
320
+ *
321
+ * @param handler - The handler to remove
322
+ */
323
+ offMessageDelivery(handler: (announcement: BlockAnnouncement) => void): void;
324
+ /**
325
+ * Register a handler for delivery acknowledgment events.
326
+ * The handler is called when a BlockAnnouncement of type 'ack' is received.
327
+ *
328
+ * @param handler - Function to call when a delivery ack announcement is received
329
+ * @see Requirements 4.4
330
+ */
331
+ onDeliveryAck(handler: (announcement: BlockAnnouncement) => void): void;
332
+ /**
333
+ * Remove a delivery acknowledgment event handler.
334
+ *
335
+ * @param handler - The handler to remove
336
+ */
337
+ offDeliveryAck(handler: (announcement: BlockAnnouncement) => void): void;
156
338
  }
157
339
  //# sourceMappingURL=gossipService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gossipService.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/gossipService.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACf,MAAM,8BAA8B,CAAC;AActC;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,cAAc,IAAI,MAAM,CAAC;IAEzB;;OAEG;IACH,mBAAmB,IAAI,MAAM,EAAE,CAAC;IAEhC;;;;;OAKG;IACH,qBAAqB,CACnB,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,iBAAiB,EAAE,GACjC,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,qBAAa,aAAc,YAAW,cAAc;IA4BhD,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IA5BzB;;OAEG;IACH,OAAO,CAAC,oBAAoB,CAA2B;IAEvD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAuC;IAEvD;;OAEG;IACH,OAAO,CAAC,UAAU,CAA+C;IAEjE;;OAEG;IACH,OAAO,CAAC,OAAO,CAAS;IAExB;;;;;OAKG;gBAEgB,YAAY,EAAE,aAAa,EAC3B,MAAM,GAAE,YAAkC;IAG7D;;;;;OAKG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnD;;;;;OAKG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYrD;;;;;;OAMG;IACG,kBAAkB,CAAC,YAAY,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBxE;;;;;OAKG;IACH,cAAc,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAIlD;;;;OAIG;IACH,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAInD;;;;;OAKG;IACH,uBAAuB,IAAI,iBAAiB,EAAE;IAI9C;;;;OAIG;IACG,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IA2CzC;;OAEG;IACH,KAAK,IAAI,IAAI;IAab;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB3B;;;;OAIG;IACH,SAAS,IAAI,YAAY;IAIzB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;IAezB;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;OAEG;IACH,YAAY,IAAI,IAAI;CAGrB"}
1
+ {"version":3,"file":"gossipService.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/gossipService.ts"],"names":[],"mappings":"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"}