@brightchain/brightchain-api-lib 0.12.0 → 0.14.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 (217) hide show
  1. package/package.json +4 -4
  2. package/src/lib/application-base.d.ts +1 -1
  3. package/src/lib/application-base.d.ts.map +1 -1
  4. package/src/lib/application.d.ts +52 -0
  5. package/src/lib/application.d.ts.map +1 -1
  6. package/src/lib/application.js +104 -0
  7. package/src/lib/application.js.map +1 -1
  8. package/src/lib/availability/configValidation.d.ts.map +1 -1
  9. package/src/lib/availability/configValidation.js +20 -0
  10. package/src/lib/availability/configValidation.js.map +1 -1
  11. package/src/lib/availability/gossipService.d.ts +150 -7
  12. package/src/lib/availability/gossipService.d.ts.map +1 -1
  13. package/src/lib/availability/gossipService.js +297 -17
  14. package/src/lib/availability/gossipService.js.map +1 -1
  15. package/src/lib/controllers/api/blocks.d.ts.map +1 -1
  16. package/src/lib/controllers/api/blocks.js +62 -0
  17. package/src/lib/controllers/api/blocks.js.map +1 -1
  18. package/src/lib/controllers/api/docs.d.ts +67 -0
  19. package/src/lib/controllers/api/docs.d.ts.map +1 -0
  20. package/src/lib/controllers/api/docs.js +86 -0
  21. package/src/lib/controllers/api/docs.js.map +1 -0
  22. package/src/lib/controllers/api/energy.d.ts.map +1 -1
  23. package/src/lib/controllers/api/energy.js +35 -7
  24. package/src/lib/controllers/api/energy.js.map +1 -1
  25. package/src/lib/controllers/api/health.d.ts +95 -0
  26. package/src/lib/controllers/api/health.d.ts.map +1 -0
  27. package/src/lib/controllers/api/health.js +319 -0
  28. package/src/lib/controllers/api/health.js.map +1 -0
  29. package/src/lib/controllers/api/index.d.ts +6 -0
  30. package/src/lib/controllers/api/index.d.ts.map +1 -1
  31. package/src/lib/controllers/api/index.js +6 -0
  32. package/src/lib/controllers/api/index.js.map +1 -1
  33. package/src/lib/controllers/api/messages.d.ts +119 -0
  34. package/src/lib/controllers/api/messages.d.ts.map +1 -0
  35. package/src/lib/controllers/api/messages.js +269 -0
  36. package/src/lib/controllers/api/messages.js.map +1 -0
  37. package/src/lib/controllers/api/nodes.d.ts +152 -0
  38. package/src/lib/controllers/api/nodes.d.ts.map +1 -0
  39. package/src/lib/controllers/api/nodes.js +378 -0
  40. package/src/lib/controllers/api/nodes.js.map +1 -0
  41. package/src/lib/controllers/api/quorum.d.ts +12 -8
  42. package/src/lib/controllers/api/quorum.d.ts.map +1 -1
  43. package/src/lib/controllers/api/quorum.js +83 -17
  44. package/src/lib/controllers/api/quorum.js.map +1 -1
  45. package/src/lib/controllers/api/scbl.d.ts +80 -0
  46. package/src/lib/controllers/api/scbl.d.ts.map +1 -0
  47. package/src/lib/controllers/api/scbl.js +325 -0
  48. package/src/lib/controllers/api/scbl.js.map +1 -0
  49. package/src/lib/controllers/api/sync.d.ts +140 -0
  50. package/src/lib/controllers/api/sync.d.ts.map +1 -0
  51. package/src/lib/controllers/api/sync.js +352 -0
  52. package/src/lib/controllers/api/sync.js.map +1 -0
  53. package/src/lib/controllers/api/user.d.ts +2 -0
  54. package/src/lib/controllers/api/user.d.ts.map +1 -1
  55. package/src/lib/controllers/api/user.js +122 -7
  56. package/src/lib/controllers/api/user.js.map +1 -1
  57. package/src/lib/enumerations/brightChainApiStrings.d.ts.map +1 -1
  58. package/src/lib/enumerations/brightChainApiStrings.js.map +1 -1
  59. package/src/lib/errors/symmetric.d.ts +2 -2
  60. package/src/lib/errors/symmetric.d.ts.map +1 -1
  61. package/src/lib/errors/symmetric.js.map +1 -1
  62. package/src/lib/errors/typed-error-local.d.ts +3 -3
  63. package/src/lib/errors/typed-error-local.d.ts.map +1 -1
  64. package/src/lib/errors/typed-error-local.js.map +1 -1
  65. package/src/lib/interfaces/application.d.ts +2 -1
  66. package/src/lib/interfaces/application.d.ts.map +1 -1
  67. package/src/lib/interfaces/backend-objects/index.d.ts +4 -4
  68. package/src/lib/interfaces/backend-objects/index.d.ts.map +1 -1
  69. package/src/lib/interfaces/backend-objects/index.js +0 -5
  70. package/src/lib/interfaces/backend-objects/index.js.map +1 -1
  71. package/src/lib/interfaces/bases/index.d.ts +4 -4
  72. package/src/lib/interfaces/bases/index.d.ts.map +1 -1
  73. package/src/lib/interfaces/bases/index.js +0 -5
  74. package/src/lib/interfaces/bases/index.js.map +1 -1
  75. package/src/lib/interfaces/index.d.ts +32 -32
  76. package/src/lib/interfaces/index.d.ts.map +1 -1
  77. package/src/lib/interfaces/index.js +0 -33
  78. package/src/lib/interfaces/index.js.map +1 -1
  79. package/src/lib/interfaces/member/index.d.ts +3 -3
  80. package/src/lib/interfaces/member/index.d.ts.map +1 -1
  81. package/src/lib/interfaces/member/index.js +0 -4
  82. package/src/lib/interfaces/member/index.js.map +1 -1
  83. package/src/lib/interfaces/requests/deleteMessagesRequest.d.ts +12 -0
  84. package/src/lib/interfaces/requests/deleteMessagesRequest.d.ts.map +1 -0
  85. package/src/lib/interfaces/requests/deleteMessagesRequest.js +3 -0
  86. package/src/lib/interfaces/requests/deleteMessagesRequest.js.map +1 -0
  87. package/src/lib/interfaces/requests/discoverBlockRequest.d.ts +10 -0
  88. package/src/lib/interfaces/requests/discoverBlockRequest.d.ts.map +1 -0
  89. package/src/lib/interfaces/requests/discoverBlockRequest.js +3 -0
  90. package/src/lib/interfaces/requests/discoverBlockRequest.js.map +1 -0
  91. package/src/lib/interfaces/requests/getBlockLocationRequest.d.ts +9 -0
  92. package/src/lib/interfaces/requests/getBlockLocationRequest.d.ts.map +1 -0
  93. package/src/lib/interfaces/requests/getBlockLocationRequest.js +3 -0
  94. package/src/lib/interfaces/requests/getBlockLocationRequest.js.map +1 -0
  95. package/src/lib/interfaces/requests/getMessageRequest.d.ts +12 -0
  96. package/src/lib/interfaces/requests/getMessageRequest.d.ts.map +1 -0
  97. package/src/lib/interfaces/requests/getMessageRequest.js +3 -0
  98. package/src/lib/interfaces/requests/getMessageRequest.js.map +1 -0
  99. package/src/lib/interfaces/requests/getNodeRequest.d.ts +9 -0
  100. package/src/lib/interfaces/requests/getNodeRequest.d.ts.map +1 -0
  101. package/src/lib/interfaces/{membersResponse.js → requests/getNodeRequest.js} +1 -1
  102. package/src/lib/interfaces/requests/getNodeRequest.js.map +1 -0
  103. package/src/lib/interfaces/requests/index.d.ts +12 -0
  104. package/src/lib/interfaces/requests/index.d.ts.map +1 -0
  105. package/src/lib/interfaces/requests/index.js +3 -0
  106. package/src/lib/interfaces/requests/index.js.map +1 -0
  107. package/src/lib/interfaces/requests/messageRequest.d.ts +10 -0
  108. package/src/lib/interfaces/requests/messageRequest.d.ts.map +1 -0
  109. package/src/lib/interfaces/requests/messageRequest.js +3 -0
  110. package/src/lib/interfaces/requests/messageRequest.js.map +1 -0
  111. package/src/lib/interfaces/requests/queryMessagesRequest.d.ts +16 -0
  112. package/src/lib/interfaces/requests/queryMessagesRequest.d.ts.map +1 -0
  113. package/src/lib/interfaces/requests/queryMessagesRequest.js +3 -0
  114. package/src/lib/interfaces/requests/queryMessagesRequest.js.map +1 -0
  115. package/src/lib/interfaces/requests/registerNodeRequest.d.ts +11 -0
  116. package/src/lib/interfaces/requests/registerNodeRequest.d.ts.map +1 -0
  117. package/src/lib/interfaces/requests/registerNodeRequest.js +3 -0
  118. package/src/lib/interfaces/requests/registerNodeRequest.js.map +1 -0
  119. package/src/lib/interfaces/requests/replicateBlockRequest.d.ts +13 -0
  120. package/src/lib/interfaces/requests/replicateBlockRequest.d.ts.map +1 -0
  121. package/src/lib/interfaces/requests/replicateBlockRequest.js +3 -0
  122. package/src/lib/interfaces/requests/replicateBlockRequest.js.map +1 -0
  123. package/src/lib/interfaces/requests/sendMessageRequest.d.ts +24 -0
  124. package/src/lib/interfaces/requests/sendMessageRequest.d.ts.map +1 -0
  125. package/src/lib/interfaces/requests/sendMessageRequest.js +3 -0
  126. package/src/lib/interfaces/requests/sendMessageRequest.js.map +1 -0
  127. package/src/lib/interfaces/requests/storeSCBLRequestBody.d.ts +9 -0
  128. package/src/lib/interfaces/requests/storeSCBLRequestBody.d.ts.map +1 -0
  129. package/src/lib/interfaces/requests/storeSCBLRequestBody.js +3 -0
  130. package/src/lib/interfaces/requests/storeSCBLRequestBody.js.map +1 -0
  131. package/src/lib/interfaces/requests/syncRequestBody.d.ts +10 -0
  132. package/src/lib/interfaces/requests/syncRequestBody.d.ts.map +1 -0
  133. package/src/lib/interfaces/requests/syncRequestBody.js +3 -0
  134. package/src/lib/interfaces/requests/syncRequestBody.js.map +1 -0
  135. package/src/lib/interfaces/responses/index.d.ts +7 -7
  136. package/src/lib/interfaces/responses/index.d.ts.map +1 -1
  137. package/src/lib/interfaces/responses/index.js +0 -8
  138. package/src/lib/interfaces/responses/index.js.map +1 -1
  139. package/src/lib/interfaces/websocketMessages.d.ts +30 -1
  140. package/src/lib/interfaces/websocketMessages.d.ts.map +1 -1
  141. package/src/lib/middlewares/authentication.d.ts +133 -0
  142. package/src/lib/middlewares/authentication.d.ts.map +1 -0
  143. package/src/lib/middlewares/authentication.js +224 -0
  144. package/src/lib/middlewares/authentication.js.map +1 -0
  145. package/src/lib/middlewares/index.d.ts +2 -0
  146. package/src/lib/middlewares/index.d.ts.map +1 -1
  147. package/src/lib/middlewares/index.js +15 -1
  148. package/src/lib/middlewares/index.js.map +1 -1
  149. package/src/lib/middlewares/request-id.d.ts +18 -0
  150. package/src/lib/middlewares/request-id.d.ts.map +1 -0
  151. package/src/lib/middlewares/request-id.js +30 -0
  152. package/src/lib/middlewares/request-id.js.map +1 -0
  153. package/src/lib/openapi/index.d.ts +8 -0
  154. package/src/lib/openapi/index.d.ts.map +1 -0
  155. package/src/lib/openapi/index.js +21 -0
  156. package/src/lib/openapi/index.js.map +1 -0
  157. package/src/lib/openapi/schemas.d.ts +15 -0
  158. package/src/lib/openapi/schemas.d.ts.map +1 -0
  159. package/src/lib/openapi/schemas.js +610 -0
  160. package/src/lib/openapi/schemas.js.map +1 -0
  161. package/src/lib/routers/api.d.ts +62 -0
  162. package/src/lib/routers/api.d.ts.map +1 -1
  163. package/src/lib/routers/api.js +85 -0
  164. package/src/lib/routers/api.js.map +1 -1
  165. package/src/lib/services/diskQuorumService.d.ts +7 -6
  166. package/src/lib/services/diskQuorumService.d.ts.map +1 -1
  167. package/src/lib/services/diskQuorumService.js.map +1 -1
  168. package/src/lib/services/email.d.ts +2 -1
  169. package/src/lib/services/email.d.ts.map +1 -1
  170. package/src/lib/services/email.js.map +1 -1
  171. package/src/lib/services/eventNotificationSystem.d.ts +88 -6
  172. package/src/lib/services/eventNotificationSystem.d.ts.map +1 -1
  173. package/src/lib/services/eventNotificationSystem.js +132 -17
  174. package/src/lib/services/eventNotificationSystem.js.map +1 -1
  175. package/src/lib/services/fec.js +1 -1
  176. package/src/lib/services/fec.js.map +1 -1
  177. package/src/lib/services/index.d.ts +1 -0
  178. package/src/lib/services/index.d.ts.map +1 -1
  179. package/src/lib/services/index.js +1 -0
  180. package/src/lib/services/index.js.map +1 -1
  181. package/src/lib/services/messagePassingService.d.ts +95 -5
  182. package/src/lib/services/messagePassingService.d.ts.map +1 -1
  183. package/src/lib/services/messagePassingService.js +187 -28
  184. package/src/lib/services/messagePassingService.js.map +1 -1
  185. package/src/lib/services/webSocketMessageServer.d.ts +18 -23
  186. package/src/lib/services/webSocketMessageServer.d.ts.map +1 -1
  187. package/src/lib/services/webSocketMessageServer.js +30 -46
  188. package/src/lib/services/webSocketMessageServer.js.map +1 -1
  189. package/src/lib/services/webSocketPeerProvider.d.ts +49 -0
  190. package/src/lib/services/webSocketPeerProvider.d.ts.map +1 -0
  191. package/src/lib/services/webSocketPeerProvider.js +133 -0
  192. package/src/lib/services/webSocketPeerProvider.js.map +1 -0
  193. package/src/lib/services/websocketHandler.d.ts +11 -8
  194. package/src/lib/services/websocketHandler.d.ts.map +1 -1
  195. package/src/lib/services/websocketHandler.js +33 -40
  196. package/src/lib/services/websocketHandler.js.map +1 -1
  197. package/src/lib/stores/diskMessageMetadataStore.d.ts +2 -2
  198. package/src/lib/stores/diskMessageMetadataStore.d.ts.map +1 -1
  199. package/src/lib/stores/diskMessageMetadataStore.js +1 -1
  200. package/src/lib/stores/diskMessageMetadataStore.js.map +1 -1
  201. package/src/lib/types/backend-id.d.ts +2 -1
  202. package/src/lib/types/backend-id.d.ts.map +1 -1
  203. package/src/lib/utils/errorResponse.d.ts +227 -2
  204. package/src/lib/utils/errorResponse.d.ts.map +1 -1
  205. package/src/lib/utils/errorResponse.js +292 -3
  206. package/src/lib/utils/errorResponse.js.map +1 -1
  207. package/src/lib/i18n/index.d.ts +0 -7
  208. package/src/lib/i18n/index.d.ts.map +0 -1
  209. package/src/lib/i18n/index.js +0 -29
  210. package/src/lib/i18n/index.js.map +0 -1
  211. package/src/lib/i18n/strings/index.d.ts +0 -6
  212. package/src/lib/i18n/strings/index.d.ts.map +0 -1
  213. package/src/lib/i18n/strings/index.js +0 -17
  214. package/src/lib/i18n/strings/index.js.map +0 -1
  215. package/src/lib/interfaces/membersResponse.d.ts +0 -12
  216. package/src/lib/interfaces/membersResponse.d.ts.map +0 -1
  217. package/src/lib/interfaces/membersResponse.js.map +0 -1
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@brightchain/brightchain-api-lib",
3
- "version": "0.12.0",
3
+ "version": "0.14.0",
4
4
  "main": "./src/index.js",
5
5
  "types": "./src/index.d.ts",
6
6
  "dependencies": {
7
7
  "@aws-sdk/client-ses": "^3.859.0",
8
- "@brightchain/brightchain-lib": "0.12.0",
8
+ "@brightchain/brightchain-lib": "0.14.0",
9
9
  "@digitaldefiance/branded-enum": "^0.0.6",
10
10
  "@digitaldefiance/enclave-bridge-client": "^1.1.0",
11
- "@digitaldefiance/i18n-lib": "^4.0.5",
12
- "@digitaldefiance/node-ecies-lib": "^4.15.6",
11
+ "@digitaldefiance/i18n-lib": "^4.3.2",
12
+ "@digitaldefiance/node-ecies-lib": "^4.17.2",
13
13
  "@ethereumjs/wallet": "^10.0.0",
14
14
  "bip39": "^3.1.0",
15
15
  "buffer": "^6.0.3",
@@ -2,7 +2,7 @@ import { PlatformID } from '@digitaldefiance/node-ecies-lib';
2
2
  import { IApplication, IBaseDocument, IConstants, PluginManager, ServiceContainer } from '@digitaldefiance/node-express-suite';
3
3
  import { DocumentStore } from './datastore/document-store';
4
4
  import { Environment } from './environment';
5
- import { DefaultBackendIdType } from './shared-types';
5
+ import type { DefaultBackendIdType } from './shared-types';
6
6
  /**
7
7
  * Base Application class with core functionality
8
8
  */
@@ -1 +1 @@
1
- {"version":3,"file":"application-base.d.ts","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application-base.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EACL,YAAY,EACZ,aAAa,EACb,UAAU,EACV,aAAa,EACb,gBAAgB,EACjB,MAAM,qCAAqC,CAAC;AAI7C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEtD;;GAEG;AACH,qBAAa,eAAe,CAC1B,GAAG,SAAS,UAAU,GAAG,oBAAoB,CAC7C,YAAW,YAAY,CAAC,GAAG,CAAC;IAC5B,OAAO,CAAC,YAAY,CAAmB;IACvC,IAAW,WAAW,IAAI,WAAW,CAAC,GAAG,CAAC,CAEzC;IAED,IAAW,SAAS,IAAI,UAAU,CAEjC;IAED,IAAW,EAAE,IAAI,GAAG,CAEnB;IAED,OAAO,CAAC,SAAS,CAA+B;IAChD,IAAW,QAAQ,IAAI,gBAAgB,CAKtC;IAED,OAAO,CAAC,QAAQ,CAAiC;IACjD,IAAW,OAAO,IAAI,aAAa,CAAC,GAAG,CAAC,CAKvC;IAEM,QAAQ,CAAC,CAAC,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC;IAMjE,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,UAAO,GAAG,IAAI;IAI9D,WAAkB,OAAO,IAAI,MAAM,CAIlC;IAED;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,IAAW,KAAK,IAAI,OAAO,CAE1B;gBAEW,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,EAAE,aAAa;IAQxE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAE9C;;OAEG;IACU,KAAK,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAevD;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAGnC"}
1
+ {"version":3,"file":"application-base.d.ts","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application-base.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EACL,YAAY,EACZ,aAAa,EACb,UAAU,EACV,aAAa,EACb,gBAAgB,EACjB,MAAM,qCAAqC,CAAC;AAI7C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE3D;;GAEG;AACH,qBAAa,eAAe,CAC1B,GAAG,SAAS,UAAU,GAAG,oBAAoB,CAC7C,YAAW,YAAY,CAAC,GAAG,CAAC;IAC5B,OAAO,CAAC,YAAY,CAAmB;IACvC,IAAW,WAAW,IAAI,WAAW,CAAC,GAAG,CAAC,CAEzC;IAED,IAAW,SAAS,IAAI,UAAU,CAEjC;IAED,IAAW,EAAE,IAAI,GAAG,CAEnB;IAED,OAAO,CAAC,SAAS,CAA+B;IAChD,IAAW,QAAQ,IAAI,gBAAgB,CAKtC;IAED,OAAO,CAAC,QAAQ,CAAiC;IACjD,IAAW,OAAO,IAAI,aAAa,CAAC,GAAG,CAAC,CAKvC;IAEM,QAAQ,CAAC,CAAC,SAAS,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC;IAMjE,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,UAAO,GAAG,IAAI;IAI9D,WAAkB,OAAO,IAAI,MAAM,CAIlC;IAED;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,IAAW,KAAK,IAAI,OAAO,CAE1B;gBAEW,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,aAAa,CAAC,EAAE,aAAa;IAQxE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAE9C;;OAEG;IACU,KAAK,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAevD;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAGnC"}
@@ -1,7 +1,12 @@
1
+ import { IAvailabilityService, IDiscoveryProtocol, IReconciliationService } from '@brightchain/brightchain-lib';
1
2
  import { PlatformID } from '@digitaldefiance/node-ecies-lib';
2
3
  import { Application } from 'express';
3
4
  import { BaseApplication } from './application-base';
4
5
  import { Environment } from './environment';
6
+ import { ApiRouter } from './routers/api';
7
+ import { EventNotificationSystem } from './services/eventNotificationSystem';
8
+ import { MessagePassingService } from './services/messagePassingService';
9
+ import { WebSocketMessageServer } from './services/webSocketMessageServer';
5
10
  /**
6
11
  * Application class
7
12
  */
@@ -10,10 +15,57 @@ export declare class App<TID extends PlatformID> extends BaseApplication<TID> {
10
15
  private server;
11
16
  private controllers;
12
17
  private readonly keyStorage;
18
+ private apiRouter;
19
+ private eventSystem;
20
+ private wsServer;
21
+ private messagePassingService;
13
22
  constructor(environment: Environment<TID>);
14
23
  start(): Promise<void>;
15
24
  stop(): Promise<void>;
16
25
  getController<T = unknown>(name: string): T;
17
26
  setController(name: string, controller: unknown): void;
27
+ /**
28
+ * Get the API router instance.
29
+ * Useful for setting up services after initialization.
30
+ */
31
+ getApiRouter(): ApiRouter<TID> | null;
32
+ /**
33
+ * Get the EventNotificationSystem instance.
34
+ * Useful for subscribing to events.
35
+ */
36
+ getEventSystem(): EventNotificationSystem | null;
37
+ /**
38
+ * Get the WebSocketMessageServer instance.
39
+ * Useful for sending messages to connected nodes.
40
+ */
41
+ getWebSocketServer(): WebSocketMessageServer | null;
42
+ /**
43
+ * Set the MessagePassingService for the application.
44
+ * This should be called after the application is started and
45
+ * all required dependencies (MessageCBLService, IMessageMetadataStore) are available.
46
+ * @requirements 1.6
47
+ */
48
+ setMessagePassingService(service: MessagePassingService): void;
49
+ /**
50
+ * Set the DiscoveryProtocol for the application.
51
+ * This should be called after the application is started and
52
+ * the discovery protocol is initialized.
53
+ * @requirements 3.3
54
+ */
55
+ setDiscoveryProtocol(protocol: IDiscoveryProtocol): void;
56
+ /**
57
+ * Set the AvailabilityService for the application.
58
+ * This should be called after the application is started and
59
+ * the availability service is initialized.
60
+ * @requirements 3.1, 3.2, 4.1, 4.2, 4.3
61
+ */
62
+ setAvailabilityService(service: IAvailabilityService): void;
63
+ /**
64
+ * Set the ReconciliationService for the application.
65
+ * This should be called after the application is started and
66
+ * the reconciliation service is initialized.
67
+ * @requirements 4.4
68
+ */
69
+ setReconciliationService(service: IReconciliationService): void;
18
70
  }
19
71
  //# sourceMappingURL=application.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAW7D,OAAgB,EAAE,WAAW,EAAmC,MAAM,SAAS,CAAC;AAKhF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAO5C;;GAEG;AACH,qBAAa,GAAG,CAAC,GAAG,SAAS,UAAU,CAAE,SAAQ,eAAe,CAAC,GAAG,CAAC;IACnE,SAAgB,UAAU,EAAE,WAAW,CAAC;IACxC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;gBAElC,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC;IAcnB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAgItB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA6BpC,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;IAI3C,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI;CAG9D"}
1
+ {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EAGvB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAW7D,OAAgB,EAAE,WAAW,EAAmC,MAAM,SAAS,CAAC;AAKhF,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAE3E;;GAEG;AACH,qBAAa,GAAG,CAAC,GAAG,SAAS,UAAU,CAAE,SAAQ,eAAe,CAAC,GAAG,CAAC;IACnE,SAAgB,UAAU,EAAE,WAAW,CAAC;IACxC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,WAAW,CAAwC;IAC3D,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,qBAAqB,CAAsC;gBAEvD,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC;IAcnB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAuJtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA2CpC,aAAa,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC;IAI3C,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI;IAI7D;;;OAGG;IACI,YAAY,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI;IAI5C;;;OAGG;IACI,cAAc,IAAI,uBAAuB,GAAG,IAAI;IAIvD;;;OAGG;IACI,kBAAkB,IAAI,sBAAsB,GAAG,IAAI;IAI1D;;;;;OAKG;IACI,wBAAwB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAQrE;;;;;OAKG;IACI,oBAAoB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAO/D;;;;;OAKG;IACI,sBAAsB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI;IAQlE;;;;;OAKG;IACI,wBAAwB,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI;CAMvE"}
@@ -18,6 +18,8 @@ const middlewares_1 = require("./middlewares");
18
18
  const api_1 = require("./routers/api");
19
19
  const app_1 = require("./routers/app");
20
20
  const services_1 = require("./services");
21
+ const eventNotificationSystem_1 = require("./services/eventNotificationSystem");
22
+ const webSocketMessageServer_1 = require("./services/webSocketMessageServer");
21
23
  /**
22
24
  * Application class
23
25
  */
@@ -30,6 +32,10 @@ class App extends application_base_1.BaseApplication {
30
32
  }));
31
33
  this.server = null;
32
34
  this.controllers = new Map();
35
+ this.apiRouter = null;
36
+ this.eventSystem = null;
37
+ this.wsServer = null;
38
+ this.messagePassingService = null;
33
39
  this.expressApp = (0, express_1.default)();
34
40
  this.server = null;
35
41
  this.keyStorage = services_1.SecureKeyStorage.getInstance();
@@ -57,9 +63,17 @@ class App extends application_base_1.BaseApplication {
57
63
  this.services.register('energyLedger', () => energyLedger);
58
64
  this.services.register('emailService', () => emailService);
59
65
  this.services.register('auth', () => authService);
66
+ // Initialize EventNotificationSystem for WebSocket events
67
+ // @requirements 5.1, 5.2, 5.4
68
+ this.eventSystem = new eventNotificationSystem_1.EventNotificationSystem();
69
+ this.services.register('eventSystem', () => this.eventSystem);
60
70
  middlewares_1.Middlewares.init(this.expressApp);
61
71
  const apiRouter = new api_1.ApiRouter(this);
72
+ this.apiRouter = apiRouter;
62
73
  const appRouter = new app_1.AppRouter(apiRouter);
74
+ // Wire EventNotificationSystem to SyncController for replication events
75
+ // @requirements 4.5
76
+ apiRouter.setSyncEventSystem(this.eventSystem);
63
77
  appRouter.init(this.expressApp);
64
78
  this.expressApp.use((err, req, res, next) => {
65
79
  const handleableError = err instanceof i18n_lib_1.HandleableError
@@ -72,6 +86,13 @@ class App extends application_base_1.BaseApplication {
72
86
  serversReady.push(new Promise((resolve) => {
73
87
  this.server = this.expressApp.listen(this.environment.port, this.environment.host, () => {
74
88
  (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', `[ ready ] http://${this.environment.host}:${this.environment.port}`);
89
+ // Initialize WebSocket server after HTTP server is ready
90
+ // @requirements 5.1
91
+ if (this.server) {
92
+ this.wsServer = new webSocketMessageServer_1.WebSocketMessageServer(this.server, false);
93
+ this.services.register('wsServer', () => this.wsServer);
94
+ (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ ready ] WebSocket server initialized');
95
+ }
75
96
  resolve();
76
97
  });
77
98
  }));
@@ -106,6 +127,14 @@ class App extends application_base_1.BaseApplication {
106
127
  }
107
128
  }
108
129
  async stop() {
130
+ // Close WebSocket server first
131
+ if (this.wsServer) {
132
+ (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ stopping ] WebSocket server');
133
+ await new Promise((resolve) => {
134
+ this.wsServer.close(() => resolve());
135
+ });
136
+ this.wsServer = null;
137
+ }
109
138
  if (this.server) {
110
139
  (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ stopping ] Application server');
111
140
  await new Promise((resolve, reject) => {
@@ -121,6 +150,10 @@ class App extends application_base_1.BaseApplication {
121
150
  });
122
151
  this.server = null;
123
152
  }
153
+ // Clean up other services
154
+ this.eventSystem = null;
155
+ this.messagePassingService = null;
156
+ this.apiRouter = null;
124
157
  await super.stop();
125
158
  this._ready = false;
126
159
  (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ stopped ] Application server and database connections');
@@ -131,6 +164,77 @@ class App extends application_base_1.BaseApplication {
131
164
  setController(name, controller) {
132
165
  this.controllers.set(name, controller);
133
166
  }
167
+ /**
168
+ * Get the API router instance.
169
+ * Useful for setting up services after initialization.
170
+ */
171
+ getApiRouter() {
172
+ return this.apiRouter;
173
+ }
174
+ /**
175
+ * Get the EventNotificationSystem instance.
176
+ * Useful for subscribing to events.
177
+ */
178
+ getEventSystem() {
179
+ return this.eventSystem;
180
+ }
181
+ /**
182
+ * Get the WebSocketMessageServer instance.
183
+ * Useful for sending messages to connected nodes.
184
+ */
185
+ getWebSocketServer() {
186
+ return this.wsServer;
187
+ }
188
+ /**
189
+ * Set the MessagePassingService for the application.
190
+ * This should be called after the application is started and
191
+ * all required dependencies (MessageCBLService, IMessageMetadataStore) are available.
192
+ * @requirements 1.6
193
+ */
194
+ setMessagePassingService(service) {
195
+ this.messagePassingService = service;
196
+ this.services.register('messagePassingService', () => service);
197
+ if (this.apiRouter) {
198
+ this.apiRouter.setMessagePassingService(service);
199
+ }
200
+ }
201
+ /**
202
+ * Set the DiscoveryProtocol for the application.
203
+ * This should be called after the application is started and
204
+ * the discovery protocol is initialized.
205
+ * @requirements 3.3
206
+ */
207
+ setDiscoveryProtocol(protocol) {
208
+ this.services.register('discoveryProtocol', () => protocol);
209
+ if (this.apiRouter) {
210
+ this.apiRouter.setDiscoveryProtocol(protocol);
211
+ }
212
+ }
213
+ /**
214
+ * Set the AvailabilityService for the application.
215
+ * This should be called after the application is started and
216
+ * the availability service is initialized.
217
+ * @requirements 3.1, 3.2, 4.1, 4.2, 4.3
218
+ */
219
+ setAvailabilityService(service) {
220
+ this.services.register('availabilityService', () => service);
221
+ if (this.apiRouter) {
222
+ this.apiRouter.setAvailabilityService(service);
223
+ this.apiRouter.setSyncAvailabilityService(service);
224
+ }
225
+ }
226
+ /**
227
+ * Set the ReconciliationService for the application.
228
+ * This should be called after the application is started and
229
+ * the reconciliation service is initialized.
230
+ * @requirements 4.4
231
+ */
232
+ setReconciliationService(service) {
233
+ this.services.register('reconciliationService', () => service);
234
+ if (this.apiRouter) {
235
+ this.apiRouter.setReconciliationService(service);
236
+ }
237
+ }
134
238
  }
135
239
  exports.App = App;
136
240
  //# sourceMappingURL=application.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"application.js","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"application.js","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application.ts"],"names":[],"mappings":";;;;AAAA,kEAUsC;AACtC,wDAA4D;AAE5D,4EAI6C;AAC7C,oEAGyC;AACzC,uDAAuD;AACvD,8DAAgF;AAChF,2BAAkC;AAElC,iCAAqC;AACrC,+BAA+B;AAC/B,yDAAqD;AACrD,2FAAoF;AAEpF,qEAAkE;AAClE,+CAA4C;AAC5C,uCAA0C;AAC1C,uCAA0C;AAC1C,yCAAyE;AACzE,gFAA6E;AAE7E,8EAA2E;AAE3E;;GAEG;AACH,MAAa,GAA4B,SAAQ,kCAAoB;IAUnE,YAAY,WAA6B;QACvC,KAAK,CACH,WAAW,EACX,IAAA,uDAAwB,EAAC;YACvB,SAAS,EAAE,WAAW,CAAC,cAAc;YACrC,SAAS,EAAE,WAAW,CAAC,mBAAmB;YAC1C,SAAS,EAAE,WAAW,CAAC,sBAAsB;SAC9C,CAAC,CACH,CAAC;QAhBI,WAAM,GAAkB,IAAI,CAAC;QAC7B,gBAAW,GAAyB,IAAI,GAAG,EAAE,CAAC;QAE9C,cAAS,GAA0B,IAAI,CAAC;QACxC,gBAAW,GAAmC,IAAI,CAAC;QACnD,aAAQ,GAAkC,IAAI,CAAC;QAC/C,0BAAqB,GAAiC,IAAI,CAAC;QAWjE,IAAI,CAAC,UAAU,GAAG,IAAA,iBAAO,GAAE,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,UAAU,GAAG,2BAAgB,CAAC,WAAW,EAAE,CAAC;IACnD,CAAC;IAEe,KAAK,CAAC,KAAK;QACzB,MAAM,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,OAAO,CAAC,KAAK,CACX,kCAAkC,EAClC,gCAAgC,CACjC,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,MAAM,IAAI,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC;YAElD,sBAAsB;YACtB,MAAM,UAAU,GAAG,qCAAiB,CAAC,iBAAiB,CAAC;gBACrD,SAAS,EAAE,2BAAS,CAAC,KAAK;aAC3B,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,IAAI,6BAAW,CAAC,UAAU,CAAC,CAAC;YAChD,MAAM,WAAW,GAAG,IAAI,oCAAkB,EAAE,CAAC;YAC7C,MAAM,YAAY,GAAG,IAAI,8BAAY,EAAE,CAAC;YACxC,MAAM,YAAY,GAAG,IAAI,uBAAY,CAAM,IAAI,CAAC,CAAC;YACjD,MAAM,WAAW,GAAG,IAAI,sBAAW,CACjC,IAAI,EACJ,WAAW,EACX,WAAW,EACX,YAAY,EACZ,IAAI,CAAC,WAAW,CAAC,SAAS,CAC3B,CAAC;YAEF,oBAAoB;YACpB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC;YACzD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC;YACzD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC;YAC3D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC;YAC3D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC;YAElD,0DAA0D;YAC1D,8BAA8B;YAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,iDAAuB,EAAE,CAAC;YACjD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAE9D,yBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAClC,MAAM,SAAS,GAAG,IAAI,eAAS,CAAM,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,MAAM,SAAS,GAAG,IAAI,eAAS,CAAM,SAAS,CAAC,CAAC;YAEhD,wEAAwE;YACxE,oBAAoB;YACpB,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAE/C,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CACjB,CACE,GAA4B,EAC5B,GAAY,EACZ,GAAa,EACb,IAAkB,EAClB,EAAE;gBACF,MAAM,eAAe,GACnB,GAAG,YAAY,0BAAe;oBAC5B,CAAC,CAAC,GAAG;oBACL,CAAC,CAAC,IAAI,0BAAe,CACjB,IAAI,KAAK,CACP,GAAG,CAAC,OAAO;wBACT,IAAA,2BAAS,EAAC,oCAAkB,CAAC,sBAAsB,CAAC,CACvD,EACD,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;gBACR,IAAA,gCAAW,EACT,eAAe,EACf,GAAU,EACV,2CAAsB,EACtB,IAAI,CACL,CAAC;YACJ,CAAC,CACF,CAAC;YAEF,MAAM,YAAY,GAAoB,EAAE,CAAC;YACzC,YAAY,CAAC,IAAI,CACf,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAClC,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,IAAI,CAAC,WAAW,CAAC,IAAI,EACrB,GAAG,EAAE;oBACH,IAAA,6BAAQ,EACN,IAAI,CAAC,WAAW,CAAC,KAAK,EACtB,KAAK,EACL,oBAAoB,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CACrE,CAAC;oBAEF,yDAAyD;oBACzD,oBAAoB;oBACpB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;wBAChB,IAAI,CAAC,QAAQ,GAAG,IAAI,+CAAsB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;wBAC/D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;wBACxD,IAAA,6BAAQ,EACN,IAAI,CAAC,WAAW,CAAC,KAAK,EACtB,KAAK,EACL,wCAAwC,CACzC,CAAC;oBACJ,CAAC;oBAED,OAAO,EAAE,CAAC;gBACZ,CAAC,CACF,CAAC;YACJ,CAAC,CAAC,CACH,CAAC;YAEF,IAAI,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;gBACtC,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,IAAA,cAAO,EAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,GAAG,MAAM,CAAC,CAAC;oBACrE,MAAM,OAAO,GAAG,IAAA,cAAO,EACrB,IAAI,CAAC,WAAW,CAAC,gBAAgB,GAAG,UAAU,CAC/C,CAAC;oBACF,MAAM,OAAO,GAAG;wBACd,GAAG,EAAE,IAAA,iBAAY,EAAC,OAAO,CAAC;wBAC1B,IAAI,EAAE,IAAA,iBAAY,EAAC,QAAQ,CAAC;qBAC7B,CAAC;oBAEF,YAAY,CAAC,IAAI,CACf,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;wBAC5B,IAAA,oBAAY,EAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAC3C,IAAI,CAAC,WAAW,CAAC,YAAY,EAC7B,GAAG,EAAE;4BACH,OAAO,CAAC,GAAG,CACT,KAAK,IAAA,wCAAuB,EAC1B,mCAAkB,CAAC,YAAY,CAChC,cAAc,IAAI,CAAC,WAAW,CAAC,IAAI,IAClC,IAAI,CAAC,WAAW,CAAC,YACnB,EAAE,CACH,CAAC;4BACF,OAAO,EAAE,CAAC;wBACZ,CAAC,CACF,CAAC;oBACJ,CAAC,CAAC,CACH,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;YAED,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAChC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC;YACvD,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,MAAM,EAAE,CAAC;gBACvC,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAEe,KAAK,CAAC,IAAI;QACxB,+BAA+B;QAC/B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAA,6BAAQ,EAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,+BAA+B,CAAC,CAAC;YACzE,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAClC,IAAI,CAAC,QAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAA,6BAAQ,EACN,IAAI,CAAC,WAAW,CAAC,KAAK,EACtB,KAAK,EACL,iCAAiC,CAClC,CAAC;YACF,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC1C,IAAI,CAAC,MAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC;gBACrC,IAAI,CAAC,MAAO,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBACzB,IAAI,GAAG,EAAE,CAAC;wBACR,MAAM,CAAC,GAAG,CAAC,CAAC;oBACd,CAAC;yBAAM,CAAC;wBACN,OAAO,EAAE,CAAC;oBACZ,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;QAED,0BAA0B;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAA,6BAAQ,EACN,IAAI,CAAC,WAAW,CAAC,KAAK,EACtB,KAAK,EACL,yDAAyD,CAC1D,CAAC;IACJ,CAAC;IAEM,aAAa,CAAc,IAAY;QAC5C,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAM,CAAC;IACzC,CAAC;IAEM,aAAa,CAAC,IAAY,EAAE,UAAmB;QACpD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACzC,CAAC;IAED;;;OAGG;IACI,YAAY;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;OAGG;IACI,cAAc;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACI,kBAAkB;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACI,wBAAwB,CAAC,OAA8B;QAC5D,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC;QACrC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACI,oBAAoB,CAAC,QAA4B;QACtD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC5D,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACI,sBAAsB,CAAC,OAA6B;QACzD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;QAC7D,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;YAC/C,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACI,wBAAwB,CAAC,OAA+B;QAC7D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;CACF;AA/SD,kBA+SC"}
@@ -1 +1 @@
1
- {"version":3,"file":"configValidation.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/configValidation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAIL,eAAe,EACf,YAAY,EACZ,eAAe,EAChB,MAAM,8BAA8B,CAAC;AAEtC;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAC/B,IAAI,CAuFN;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAyDxE;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAC/B,IAAI,CAwDN;AAED;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,GACpC,eAAe,CAMjB;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM,GACjC,YAAY,CAMd;AAED;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,GACpC,eAAe,CAQjB"}
1
+ {"version":3,"file":"configValidation.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/configValidation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAIL,eAAe,EACf,YAAY,EACZ,eAAe,EAChB,MAAM,8BAA8B,CAAC;AAEtC;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAC/B,IAAI,CAuFN;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CA0FxE;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAC/B,IAAI,CAwDN;AAED;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,GACpC,eAAe,CAMjB;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM,GACjC,YAAY,CAMd;AAED;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,GACpC,eAAe,CAQjB"}
@@ -155,6 +155,26 @@ function validateGossipConfig(config) {
155
155
  throw new ConfigValidationError('maxBatchSize must not exceed 10000');
156
156
  }
157
157
  }
158
+ // Validate messagePriority (Req 10.3, 10.4)
159
+ if (config.messagePriority !== undefined) {
160
+ const { normal, high } = config.messagePriority;
161
+ // Validate normal priority fanout
162
+ if (!Number.isInteger(normal.fanout) || normal.fanout < 1) {
163
+ throw new ConfigValidationError('messagePriority.normal.fanout must be a positive integer');
164
+ }
165
+ // Validate normal priority TTL
166
+ if (!Number.isInteger(normal.ttl) || normal.ttl < 1) {
167
+ throw new ConfigValidationError('messagePriority.normal.ttl must be a positive integer');
168
+ }
169
+ // Validate high priority fanout
170
+ if (!Number.isInteger(high.fanout) || high.fanout < 1) {
171
+ throw new ConfigValidationError('messagePriority.high.fanout must be a positive integer');
172
+ }
173
+ // Validate high priority TTL
174
+ if (!Number.isInteger(high.ttl) || high.ttl < 1) {
175
+ throw new ConfigValidationError('messagePriority.high.ttl must be a positive integer');
176
+ }
177
+ }
158
178
  }
159
179
  /**
160
180
  * Validate HeartbeatConfig.
@@ -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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"}
@@ -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, IGossipService, MessageDeliveryMetadata } 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
29
49
  */
30
- sendAnnouncementBatch(peerId: string, announcements: BlockAnnouncement[]): Promise<void>;
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.
54
+ */
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,8 +110,13 @@ 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
  *
@@ -79,10 +133,16 @@ export declare class GossipService implements IGossipService {
79
133
  announceRemoval(blockId: string): Promise<void>;
80
134
  /**
81
135
  * Handle an incoming block announcement from a peer.
82
- * Notifies handlers and optionally forwards with decremented TTL.
136
+ *
137
+ * Dispatches announcements based on their type and metadata:
138
+ * - 'ack' type: dispatches to delivery ack handlers only (Req 4.4)
139
+ * - 'add' with messageDelivery and matching local recipients: triggers message delivery
140
+ * handlers and auto-sends ack if ackRequired (Req 3.4, 3.5)
141
+ * - 'add' with messageDelivery but no matching local recipients: forwards normally (Req 3.6)
142
+ * - Plain 'add'/'remove' without messageDelivery: notifies general handlers and forwards (backward compat)
83
143
  *
84
144
  * @param announcement - The received announcement
85
- * @see Requirements 6.2, 6.4
145
+ * @see Requirements 3.4, 3.5, 3.6, 4.4
86
146
  */
87
147
  handleAnnouncement(announcement: BlockAnnouncement): Promise<void>;
88
148
  /**
@@ -107,8 +167,13 @@ export declare class GossipService implements IGossipService {
107
167
  getPendingAnnouncements(): BlockAnnouncement[];
108
168
  /**
109
169
  * Immediately flush all pending announcements.
170
+ * Groups announcements by their required fanout (based on message priority)
171
+ * and sends each group to the appropriate number of peers.
110
172
  *
111
- * @see Requirements 6.6
173
+ * - Announcements with messageDelivery use priority-based fanout (Req 3.1, 3.2)
174
+ * - Announcements without messageDelivery use default fanout (Req 3.3)
175
+ *
176
+ * @see Requirements 3.1, 3.2, 3.3, 6.6
112
177
  */
113
178
  flushAnnouncements(): Promise<void>;
114
179
  /**
@@ -149,9 +214,87 @@ export declare class GossipService implements IGossipService {
149
214
  * @see Requirements 6.6
150
215
  */
151
216
  private splitIntoBatches;
217
+ /**
218
+ * Check if a batch contains sensitive metadata (messageDelivery or deliveryAck).
219
+ *
220
+ * @param announcements - The announcements to check
221
+ * @returns true if any announcement has messageDelivery or deliveryAck
222
+ * @see Requirements 4.1, 4.2
223
+ */
224
+ private batchContainsSensitiveMetadata;
225
+ /**
226
+ * Encrypt a batch of announcements for a specific peer using ECIES.
227
+ * Serializes announcements to JSON, encrypts with the peer's public key,
228
+ * and returns a base64-encoded ciphertext string.
229
+ *
230
+ * @param announcements - The announcements to encrypt
231
+ * @param peerPublicKey - The peer's ECIES public key
232
+ * @returns Base64-encoded ECIES ciphertext
233
+ * @see Requirements 4.1, 4.3
234
+ */
235
+ private encryptBatchForPeer;
236
+ /**
237
+ * Send a batch to a peer, encrypting if the batch is sensitive and the peer has a public key.
238
+ *
239
+ * - Sensitive batch + peer key available → encrypt and send with encryptedPayload
240
+ * - Sensitive batch + no peer key → send plaintext, log warning (Req 6.1, 6.2)
241
+ * - Non-sensitive batch → send plaintext
242
+ *
243
+ * @param peerId - The peer to send to
244
+ * @param batch - The announcements to send
245
+ * @see Requirements 4.1, 4.2, 6.1, 6.2
246
+ */
247
+ private sendBatchToPeer;
152
248
  /**
153
249
  * Clear all pending announcements (for testing).
154
250
  */
155
251
  clearPending(): void;
252
+ /**
253
+ * Announce message blocks to the network with message delivery metadata.
254
+ * Creates a BlockAnnouncement for each blockId with priority-based TTL
255
+ * from config and queues them for batch sending.
256
+ *
257
+ * @param blockIds - The block IDs containing the message content
258
+ * @param metadata - Message delivery metadata including recipients, priority, and CBL block ID
259
+ * @see Requirements 3.1, 3.2, 3.3
260
+ */
261
+ announceMessage(blockIds: string[], metadata: MessageDeliveryMetadata): Promise<void>;
262
+ /**
263
+ * Send a delivery acknowledgment back through the gossip network.
264
+ * Stub implementation — will be fully implemented in task 4.3.
265
+ *
266
+ * @param _ack - Delivery acknowledgment metadata
267
+ * @see Requirements 4.1
268
+ */
269
+ sendDeliveryAck(ack: DeliveryAckMetadata): Promise<void>;
270
+ /**
271
+ * Register a handler for message delivery events.
272
+ * The handler is called when a BlockAnnouncement with messageDelivery
273
+ * metadata is received and recipientIds match local users.
274
+ *
275
+ * @param handler - Function to call when a message delivery announcement is received
276
+ * @see Requirements 3.4, 3.5
277
+ */
278
+ onMessageDelivery(handler: (announcement: BlockAnnouncement) => void): void;
279
+ /**
280
+ * Remove a message delivery event handler.
281
+ *
282
+ * @param handler - The handler to remove
283
+ */
284
+ offMessageDelivery(handler: (announcement: BlockAnnouncement) => void): void;
285
+ /**
286
+ * Register a handler for delivery acknowledgment events.
287
+ * The handler is called when a BlockAnnouncement of type 'ack' is received.
288
+ *
289
+ * @param handler - Function to call when a delivery ack announcement is received
290
+ * @see Requirements 4.4
291
+ */
292
+ onDeliveryAck(handler: (announcement: BlockAnnouncement) => void): void;
293
+ /**
294
+ * Remove a delivery acknowledgment event handler.
295
+ *
296
+ * @param handler - The handler to remove
297
+ */
298
+ offDeliveryAck(handler: (announcement: BlockAnnouncement) => void): void;
156
299
  }
157
300
  //# 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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"}