@brightchain/brightchain-api-lib 0.16.0 → 0.17.1

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 (288) hide show
  1. package/package.json +4 -4
  2. package/src/browser.d.ts +1 -1
  3. package/src/browser.d.ts.map +1 -1
  4. package/src/browser.js.map +1 -1
  5. package/src/index.d.ts +5 -1
  6. package/src/index.d.ts.map +1 -1
  7. package/src/index.js +7 -1
  8. package/src/index.js.map +1 -1
  9. package/src/lib/adapters/brightChainDbDocumentStoreAdapter.d.ts +24 -0
  10. package/src/lib/adapters/brightChainDbDocumentStoreAdapter.d.ts.map +1 -0
  11. package/src/lib/adapters/brightChainDbDocumentStoreAdapter.js +53 -0
  12. package/src/lib/adapters/brightChainDbDocumentStoreAdapter.js.map +1 -0
  13. package/src/lib/application.d.ts +20 -0
  14. package/src/lib/application.d.ts.map +1 -1
  15. package/src/lib/application.js +62 -13
  16. package/src/lib/application.js.map +1 -1
  17. package/src/lib/availability/gossipService.d.ts +20 -1
  18. package/src/lib/availability/gossipService.d.ts.map +1 -1
  19. package/src/lib/availability/gossipService.js +59 -0
  20. package/src/lib/availability/gossipService.js.map +1 -1
  21. package/src/lib/availability/index.d.ts +1 -0
  22. package/src/lib/availability/index.d.ts.map +1 -1
  23. package/src/lib/availability/index.js +1 -0
  24. package/src/lib/availability/index.js.map +1 -1
  25. package/src/lib/availability/poolDiscoveryService.d.ts +117 -0
  26. package/src/lib/availability/poolDiscoveryService.d.ts.map +1 -0
  27. package/src/lib/availability/poolDiscoveryService.js +218 -0
  28. package/src/lib/availability/poolDiscoveryService.js.map +1 -0
  29. package/src/lib/blockFetch/httpBlockFetchTransport.d.ts.map +1 -1
  30. package/src/lib/blockFetch/httpBlockFetchTransport.js.map +1 -1
  31. package/src/lib/controllers/api/blocks.d.ts.map +1 -1
  32. package/src/lib/controllers/api/blocks.js.map +1 -1
  33. package/src/lib/controllers/api/brightpass.d.ts.map +1 -1
  34. package/src/lib/controllers/api/brightpass.js +4 -8
  35. package/src/lib/controllers/api/brightpass.js.map +1 -1
  36. package/src/lib/controllers/api/energy.d.ts.map +1 -1
  37. package/src/lib/controllers/api/energy.js.map +1 -1
  38. package/src/lib/controllers/api/health.d.ts +4 -4
  39. package/src/lib/controllers/api/health.d.ts.map +1 -1
  40. package/src/lib/controllers/api/health.js.map +1 -1
  41. package/src/lib/controllers/api/i18n.d.ts.map +1 -1
  42. package/src/lib/controllers/api/i18n.js.map +1 -1
  43. package/src/lib/controllers/api/index.d.ts +1 -0
  44. package/src/lib/controllers/api/index.d.ts.map +1 -1
  45. package/src/lib/controllers/api/index.js +1 -0
  46. package/src/lib/controllers/api/index.js.map +1 -1
  47. package/src/lib/controllers/api/introspection.d.ts +60 -0
  48. package/src/lib/controllers/api/introspection.d.ts.map +1 -0
  49. package/src/lib/controllers/api/introspection.js +375 -0
  50. package/src/lib/controllers/api/introspection.js.map +1 -0
  51. package/src/lib/controllers/api/nodes.d.ts +7 -6
  52. package/src/lib/controllers/api/nodes.d.ts.map +1 -1
  53. package/src/lib/controllers/api/nodes.js.map +1 -1
  54. package/src/lib/controllers/api/quorum.d.ts.map +1 -1
  55. package/src/lib/controllers/api/quorum.js.map +1 -1
  56. package/src/lib/controllers/api/sessions.d.ts.map +1 -1
  57. package/src/lib/controllers/api/sessions.js.map +1 -1
  58. package/src/lib/controllers/api/sync.d.ts +6 -5
  59. package/src/lib/controllers/api/sync.d.ts.map +1 -1
  60. package/src/lib/controllers/api/sync.js.map +1 -1
  61. package/src/lib/controllers/api/user.d.ts.map +1 -1
  62. package/src/lib/controllers/api/user.js +130 -50
  63. package/src/lib/controllers/api/user.js.map +1 -1
  64. package/src/lib/controllers/base.d.ts +1 -2
  65. package/src/lib/controllers/base.d.ts.map +1 -1
  66. package/src/lib/controllers/base.js +0 -1
  67. package/src/lib/controllers/base.js.map +1 -1
  68. package/src/lib/databaseInit.d.ts +28 -0
  69. package/src/lib/databaseInit.d.ts.map +1 -0
  70. package/src/lib/databaseInit.js +107 -0
  71. package/src/lib/databaseInit.js.map +1 -0
  72. package/src/lib/enumerations/brightChainApiStrings.d.ts +4 -0
  73. package/src/lib/enumerations/brightChainApiStrings.d.ts.map +1 -1
  74. package/src/lib/enumerations/brightChainApiStrings.js +4 -0
  75. package/src/lib/enumerations/brightChainApiStrings.js.map +1 -1
  76. package/src/lib/enumerations/index.d.ts +1 -0
  77. package/src/lib/enumerations/index.d.ts.map +1 -1
  78. package/src/lib/enumerations/index.js +1 -0
  79. package/src/lib/enumerations/index.js.map +1 -1
  80. package/src/lib/enumerations/websocketMessageType.d.ts +5 -1
  81. package/src/lib/enumerations/websocketMessageType.d.ts.map +1 -1
  82. package/src/lib/enumerations/websocketMessageType.js +4 -0
  83. package/src/lib/enumerations/websocketMessageType.js.map +1 -1
  84. package/src/lib/environment.d.ts +10 -0
  85. package/src/lib/environment.d.ts.map +1 -1
  86. package/src/lib/environment.js +14 -0
  87. package/src/lib/environment.js.map +1 -1
  88. package/src/lib/errors/index.d.ts +1 -0
  89. package/src/lib/errors/index.d.ts.map +1 -1
  90. package/src/lib/errors/index.js +1 -0
  91. package/src/lib/errors/index.js.map +1 -1
  92. package/src/lib/errors/memberIndexSchemaValidationError.d.ts +6 -0
  93. package/src/lib/errors/memberIndexSchemaValidationError.d.ts.map +1 -0
  94. package/src/lib/errors/memberIndexSchemaValidationError.js +15 -0
  95. package/src/lib/errors/memberIndexSchemaValidationError.js.map +1 -0
  96. package/src/lib/factories/blockStoreFactory.d.ts +2 -13
  97. package/src/lib/factories/blockStoreFactory.d.ts.map +1 -1
  98. package/src/lib/factories/blockStoreFactory.js +5 -10
  99. package/src/lib/factories/blockStoreFactory.js.map +1 -1
  100. package/src/lib/interfaces/blocksHandlers.d.ts +3 -3
  101. package/src/lib/interfaces/blocksHandlers.d.ts.map +1 -1
  102. package/src/lib/interfaces/cblHandlers.d.ts +3 -2
  103. package/src/lib/interfaces/cblHandlers.d.ts.map +1 -1
  104. package/src/lib/interfaces/environment.d.ts +8 -0
  105. package/src/lib/interfaces/environment.d.ts.map +1 -1
  106. package/src/lib/interfaces/index.d.ts +5 -2
  107. package/src/lib/interfaces/index.d.ts.map +1 -1
  108. package/src/lib/interfaces/introspectionApiResponses.d.ts +66 -0
  109. package/src/lib/interfaces/introspectionApiResponses.d.ts.map +1 -0
  110. package/src/lib/interfaces/introspectionApiResponses.js +3 -0
  111. package/src/lib/interfaces/introspectionApiResponses.js.map +1 -0
  112. package/src/lib/interfaces/members-handlers.d.ts +11 -0
  113. package/src/lib/interfaces/members-handlers.d.ts.map +1 -0
  114. package/src/lib/interfaces/{environment-mongo.js → members-handlers.js} +1 -1
  115. package/src/lib/interfaces/members-handlers.js.map +1 -0
  116. package/src/lib/interfaces/responses/api-backup-codes-response.d.ts +2 -5
  117. package/src/lib/interfaces/responses/api-backup-codes-response.d.ts.map +1 -1
  118. package/src/lib/interfaces/responses/api-challenge-response.d.ts +2 -5
  119. package/src/lib/interfaces/responses/api-challenge-response.d.ts.map +1 -1
  120. package/src/lib/interfaces/responses/api-code-count-response.d.ts +2 -5
  121. package/src/lib/interfaces/responses/api-code-count-response.d.ts.map +1 -1
  122. package/src/lib/interfaces/responses/api-detailed-health-response.d.ts +5 -0
  123. package/src/lib/interfaces/responses/api-detailed-health-response.d.ts.map +1 -0
  124. package/src/lib/interfaces/responses/api-detailed-health-response.js +3 -0
  125. package/src/lib/interfaces/responses/api-detailed-health-response.js.map +1 -0
  126. package/src/lib/interfaces/responses/api-discover-block-response.d.ts +5 -0
  127. package/src/lib/interfaces/responses/api-discover-block-response.d.ts.map +1 -0
  128. package/src/lib/interfaces/responses/api-discover-block-response.js +3 -0
  129. package/src/lib/interfaces/responses/api-discover-block-response.js.map +1 -0
  130. package/src/lib/interfaces/responses/api-error.d.ts +5 -0
  131. package/src/lib/interfaces/responses/api-error.d.ts.map +1 -0
  132. package/src/lib/interfaces/responses/api-error.js +3 -0
  133. package/src/lib/interfaces/responses/api-error.js.map +1 -0
  134. package/src/lib/interfaces/responses/api-express-validation-error.d.ts +7 -0
  135. package/src/lib/interfaces/responses/api-express-validation-error.d.ts.map +1 -0
  136. package/src/lib/interfaces/responses/api-express-validation-error.js +3 -0
  137. package/src/lib/interfaces/responses/api-express-validation-error.js.map +1 -0
  138. package/src/lib/interfaces/responses/api-get-block-response.d.ts +5 -0
  139. package/src/lib/interfaces/responses/api-get-block-response.d.ts.map +1 -0
  140. package/src/lib/interfaces/responses/api-get-block-response.js +3 -0
  141. package/src/lib/interfaces/responses/api-get-block-response.js.map +1 -0
  142. package/src/lib/interfaces/responses/api-get-node-response.d.ts +5 -0
  143. package/src/lib/interfaces/responses/api-get-node-response.d.ts.map +1 -0
  144. package/src/lib/interfaces/responses/api-get-node-response.js +3 -0
  145. package/src/lib/interfaces/responses/api-get-node-response.js.map +1 -0
  146. package/src/lib/interfaces/responses/api-health-response.d.ts +5 -0
  147. package/src/lib/interfaces/responses/api-health-response.d.ts.map +1 -0
  148. package/src/lib/interfaces/responses/api-health-response.js +3 -0
  149. package/src/lib/interfaces/responses/api-health-response.js.map +1 -0
  150. package/src/lib/interfaces/responses/api-list-nodes-response.d.ts +5 -0
  151. package/src/lib/interfaces/responses/api-list-nodes-response.d.ts.map +1 -0
  152. package/src/lib/interfaces/responses/api-list-nodes-response.js +3 -0
  153. package/src/lib/interfaces/responses/api-list-nodes-response.js.map +1 -0
  154. package/src/lib/interfaces/responses/api-login-response.d.ts +2 -14
  155. package/src/lib/interfaces/responses/api-login-response.d.ts.map +1 -1
  156. package/src/lib/interfaces/responses/api-members-response.d.ts +8 -0
  157. package/src/lib/interfaces/responses/api-members-response.d.ts.map +1 -0
  158. package/src/lib/interfaces/responses/api-members-response.js +3 -0
  159. package/src/lib/interfaces/responses/api-members-response.js.map +1 -0
  160. package/src/lib/interfaces/responses/api-mnemonic-response.d.ts +2 -5
  161. package/src/lib/interfaces/responses/api-mnemonic-response.d.ts.map +1 -1
  162. package/src/lib/interfaces/responses/api-reconcile-response.d.ts +5 -0
  163. package/src/lib/interfaces/responses/api-reconcile-response.d.ts.map +1 -0
  164. package/src/lib/interfaces/responses/api-reconcile-response.js +3 -0
  165. package/src/lib/interfaces/responses/api-reconcile-response.js.map +1 -0
  166. package/src/lib/interfaces/responses/api-register-node-response.d.ts +5 -0
  167. package/src/lib/interfaces/responses/api-register-node-response.d.ts.map +1 -0
  168. package/src/lib/interfaces/responses/api-register-node-response.js +3 -0
  169. package/src/lib/interfaces/responses/api-register-node-response.js.map +1 -0
  170. package/src/lib/interfaces/responses/api-registration-response.d.ts +2 -10
  171. package/src/lib/interfaces/responses/api-registration-response.d.ts.map +1 -1
  172. package/src/lib/interfaces/responses/api-replicate-block-response.d.ts +5 -0
  173. package/src/lib/interfaces/responses/api-replicate-block-response.d.ts.map +1 -0
  174. package/src/lib/interfaces/responses/api-replicate-block-response.js +3 -0
  175. package/src/lib/interfaces/responses/api-replicate-block-response.js.map +1 -0
  176. package/src/lib/interfaces/responses/api-request-user-response.d.ts +2 -6
  177. package/src/lib/interfaces/responses/api-request-user-response.d.ts.map +1 -1
  178. package/src/lib/interfaces/responses/api-status-code-response.d.ts +7 -0
  179. package/src/lib/interfaces/responses/api-status-code-response.d.ts.map +1 -0
  180. package/src/lib/interfaces/responses/api-status-code-response.js +3 -0
  181. package/src/lib/interfaces/responses/api-status-code-response.js.map +1 -0
  182. package/src/lib/interfaces/responses/api-store-block-response.d.ts +5 -0
  183. package/src/lib/interfaces/responses/api-store-block-response.d.ts.map +1 -0
  184. package/src/lib/interfaces/responses/api-store-block-response.js +3 -0
  185. package/src/lib/interfaces/responses/api-store-block-response.js.map +1 -0
  186. package/src/lib/interfaces/responses/api-store-cbl-response.d.ts +5 -0
  187. package/src/lib/interfaces/responses/api-store-cbl-response.d.ts.map +1 -0
  188. package/src/lib/interfaces/responses/api-store-cbl-response.js +3 -0
  189. package/src/lib/interfaces/responses/api-store-cbl-response.js.map +1 -0
  190. package/src/lib/interfaces/responses/api-sync-request-response.d.ts +5 -0
  191. package/src/lib/interfaces/responses/api-sync-request-response.d.ts.map +1 -0
  192. package/src/lib/interfaces/responses/api-sync-request-response.js +3 -0
  193. package/src/lib/interfaces/responses/api-sync-request-response.js.map +1 -0
  194. package/src/lib/interfaces/responses/block-data-response.d.ts +11 -0
  195. package/src/lib/interfaces/responses/block-data-response.d.ts.map +1 -0
  196. package/src/lib/interfaces/responses/block-data-response.js +3 -0
  197. package/src/lib/interfaces/responses/block-data-response.js.map +1 -0
  198. package/src/lib/interfaces/responses/block-location-response.d.ts +11 -0
  199. package/src/lib/interfaces/responses/block-location-response.d.ts.map +1 -0
  200. package/src/lib/interfaces/responses/block-location-response.js +3 -0
  201. package/src/lib/interfaces/responses/block-location-response.js.map +1 -0
  202. package/src/lib/interfaces/responses/index.d.ts +18 -0
  203. package/src/lib/interfaces/responses/index.d.ts.map +1 -1
  204. package/src/lib/interfaces/status-code-response.d.ts +1 -6
  205. package/src/lib/interfaces/status-code-response.d.ts.map +1 -1
  206. package/src/lib/interfaces/storage/client-session.d.ts +8 -0
  207. package/src/lib/interfaces/storage/client-session.d.ts.map +1 -0
  208. package/src/lib/interfaces/storage/client-session.js +3 -0
  209. package/src/lib/interfaces/storage/client-session.js.map +1 -0
  210. package/src/lib/interfaces/storage/collection.d.ts +9 -0
  211. package/src/lib/interfaces/storage/collection.d.ts.map +1 -0
  212. package/src/lib/interfaces/storage/collection.js +3 -0
  213. package/src/lib/interfaces/storage/collection.js.map +1 -0
  214. package/src/lib/interfaces/storage/database-lifecycle-hooks.d.ts +8 -0
  215. package/src/lib/interfaces/storage/database-lifecycle-hooks.d.ts.map +1 -0
  216. package/src/lib/interfaces/storage/database-lifecycle-hooks.js +3 -0
  217. package/src/lib/interfaces/storage/database-lifecycle-hooks.js.map +1 -0
  218. package/src/lib/interfaces/storage/database.d.ts +9 -0
  219. package/src/lib/interfaces/storage/database.d.ts.map +1 -0
  220. package/src/lib/interfaces/storage/database.js +3 -0
  221. package/src/lib/interfaces/storage/database.js.map +1 -0
  222. package/src/lib/interfaces/storage/document-types.d.ts +9 -0
  223. package/src/lib/interfaces/storage/document-types.d.ts.map +1 -0
  224. package/src/lib/interfaces/storage/document-types.js +10 -0
  225. package/src/lib/interfaces/storage/document-types.js.map +1 -0
  226. package/src/lib/interfaces/storage/index.d.ts +7 -0
  227. package/src/lib/interfaces/storage/index.d.ts.map +1 -0
  228. package/src/lib/interfaces/storage/index.js +7 -0
  229. package/src/lib/interfaces/storage/index.js.map +1 -0
  230. package/src/lib/interfaces/storage/memberIndexSchema.d.ts +11 -0
  231. package/src/lib/interfaces/storage/memberIndexSchema.d.ts.map +1 -0
  232. package/src/lib/interfaces/storage/memberIndexSchema.js +26 -0
  233. package/src/lib/interfaces/storage/memberIndexSchema.js.map +1 -0
  234. package/src/lib/interfaces/userApiResponse.d.ts +17 -0
  235. package/src/lib/interfaces/userApiResponse.d.ts.map +1 -0
  236. package/src/lib/interfaces/userApiResponse.js +3 -0
  237. package/src/lib/interfaces/userApiResponse.js.map +1 -0
  238. package/src/lib/interfaces/websocketMessages.d.ts +64 -1
  239. package/src/lib/interfaces/websocketMessages.d.ts.map +1 -1
  240. package/src/lib/middleware/index.d.ts +2 -0
  241. package/src/lib/middleware/index.d.ts.map +1 -0
  242. package/src/lib/middleware/index.js +6 -0
  243. package/src/lib/middleware/index.js.map +1 -0
  244. package/src/lib/middleware/validateBody.d.ts +13 -0
  245. package/src/lib/middleware/validateBody.d.ts.map +1 -0
  246. package/src/lib/middleware/validateBody.js +35 -0
  247. package/src/lib/middleware/validateBody.js.map +1 -0
  248. package/src/lib/middlewares/authentication.d.ts +2 -0
  249. package/src/lib/middlewares/authentication.d.ts.map +1 -1
  250. package/src/lib/middlewares/authentication.js.map +1 -1
  251. package/src/lib/routers/api.d.ts +27 -0
  252. package/src/lib/routers/api.d.ts.map +1 -1
  253. package/src/lib/routers/api.js +44 -0
  254. package/src/lib/routers/api.js.map +1 -1
  255. package/src/lib/services/auth.d.ts +3 -1
  256. package/src/lib/services/auth.d.ts.map +1 -1
  257. package/src/lib/services/auth.js +51 -4
  258. package/src/lib/services/auth.js.map +1 -1
  259. package/src/lib/services/brightchain-member-init.service.d.ts +66 -0
  260. package/src/lib/services/brightchain-member-init.service.d.ts.map +1 -0
  261. package/src/lib/services/brightchain-member-init.service.js +152 -0
  262. package/src/lib/services/brightchain-member-init.service.js.map +1 -0
  263. package/src/lib/services/clientWebSocketServer.d.ts +147 -0
  264. package/src/lib/services/clientWebSocketServer.d.ts.map +1 -0
  265. package/src/lib/services/clientWebSocketServer.js +437 -0
  266. package/src/lib/services/clientWebSocketServer.js.map +1 -0
  267. package/src/lib/services/index.d.ts +2 -0
  268. package/src/lib/services/index.d.ts.map +1 -1
  269. package/src/lib/services/index.js +2 -0
  270. package/src/lib/services/index.js.map +1 -1
  271. package/src/lib/stores/diskBlockAsyncStore.d.ts +4 -4
  272. package/src/lib/stores/diskBlockAsyncStore.d.ts.map +1 -1
  273. package/src/lib/stores/diskBlockAsyncStore.js.map +1 -1
  274. package/src/lib/stores/diskBlockStore.d.ts +82 -17
  275. package/src/lib/stores/diskBlockStore.d.ts.map +1 -1
  276. package/src/lib/stores/diskBlockStore.js +787 -19
  277. package/src/lib/stores/diskBlockStore.js.map +1 -1
  278. package/src/lib/stores/diskBlockSyncStore.d.ts +24 -5
  279. package/src/lib/stores/diskBlockSyncStore.d.ts.map +1 -1
  280. package/src/lib/stores/diskBlockSyncStore.js +30 -13
  281. package/src/lib/stores/diskBlockSyncStore.js.map +1 -1
  282. package/src/lib/validation/userValidation.d.ts +27 -0
  283. package/src/lib/validation/userValidation.d.ts.map +1 -0
  284. package/src/lib/validation/userValidation.js +70 -0
  285. package/src/lib/validation/userValidation.js.map +1 -0
  286. package/src/lib/interfaces/environment-mongo.d.ts +0 -76
  287. package/src/lib/interfaces/environment-mongo.d.ts.map +0 -1
  288. package/src/lib/interfaces/environment-mongo.js.map +0 -1
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@brightchain/brightchain-api-lib",
3
- "version": "0.16.0",
3
+ "version": "0.17.1",
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.16.0",
8
+ "@brightchain/brightchain-lib": "0.17.0",
9
9
  "@digitaldefiance/branded-enum": "^0.0.7",
10
10
  "@digitaldefiance/enclave-bridge-client": "^1.1.0",
11
- "@digitaldefiance/i18n-lib": "^4.6.2",
12
- "@digitaldefiance/node-ecies-lib": "^4.19.3",
11
+ "@digitaldefiance/i18n-lib": "^4.6.3",
12
+ "@digitaldefiance/node-ecies-lib": "^4.19.4",
13
13
  "@ethereumjs/wallet": "^10.0.0",
14
14
  "bip39": "^3.1.0",
15
15
  "buffer": "^6.0.3",
package/src/browser.d.ts CHANGED
@@ -8,6 +8,6 @@ export * from './lib/constants';
8
8
  export * from './lib/enumerations';
9
9
  export * from './lib/errors';
10
10
  export type { IApiConstants } from './lib/interfaces/api-constants';
11
- export type { ClientSession, DefaultBackendIdType, SchemaMap } from './lib/shared-types';
11
+ export type { ClientSession, DefaultBackendIdType, SchemaMap, } from './lib/shared-types';
12
12
  export * from './lib/browserKeyring';
13
13
  //# sourceMappingURL=browser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../brightchain-api-lib/src/browser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAG7B,YAAY,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGzF,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../brightchain-api-lib/src/browser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAG7B,YAAY,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,SAAS,GACV,MAAM,oBAAoB,CAAC;AAG5B,cAAc,sBAAsB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../brightchain-api-lib/src/browser.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,8DAA8D;AAC9D,0DAAgC;AAChC,6DAAmC;AACnC,uDAA6B;AAM7B,8BAA8B;AAC9B,+DAAqC"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../../brightchain-api-lib/src/browser.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,8DAA8D;AAC9D,0DAAgC;AAChC,6DAAmC;AACnC,uDAA6B;AAU7B,8BAA8B;AAC9B,+DAAqC"}
package/src/index.d.ts CHANGED
@@ -1,22 +1,26 @@
1
1
  export * from './lib/stores';
2
2
  export * from './lib/transforms';
3
3
  export * from './lib/services';
4
+ export * from './lib/adapters/brightChainDbDocumentStoreAdapter';
5
+ export * from './lib/databaseInit';
4
6
  export * from './lib/appConstants';
5
7
  export * from './lib/application';
6
- export * from './lib/upstream-stubs';
7
8
  export * from './lib/constants';
8
9
  export * from './lib/controllers';
10
+ export * from './lib/upstream-stubs';
9
11
  export * from './lib/enumerations';
10
12
  export * from './lib/environment';
11
13
  export * from './lib/errors';
12
14
  export * from './lib/interfaces';
13
15
  export * from './lib/datastore';
16
+ export * from './lib/middleware';
14
17
  export * from './lib/middlewares';
15
18
  export * from './lib/routers';
16
19
  export * from './lib/availability';
17
20
  export * from './lib/blockFetch';
18
21
  export * from './lib/utils/errorResponse';
19
22
  export * from './lib/utils/type-converters';
23
+ export * from './lib/validation/userValidation';
20
24
  export type { ClientSession, DefaultBackendIdType, SchemaMap, } from './lib/shared-types';
21
25
  export * from './lib/auth';
22
26
  export * from './lib/encryption';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../brightchain-api-lib/src/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAElC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AAKjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAG9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAE5C,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,SAAS,GACV,MAAM,oBAAoB,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../brightchain-api-lib/src/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,gBAAgB,CAAC;AAG/B,cAAc,kDAAkD,CAAC;AACjE,cAAc,oBAAoB,CAAC;AAGnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AAErC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AAKjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAG9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAG5C,cAAc,iCAAiC,CAAC;AAEhD,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,SAAS,GACV,MAAM,oBAAoB,CAAC;AAG5B,cAAc,YAAY,CAAC;AAG3B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC"}
package/src/index.js CHANGED
@@ -6,12 +6,15 @@ tslib_1.__exportStar(require("./lib/stores"), exports);
6
6
  tslib_1.__exportStar(require("./lib/transforms"), exports);
7
7
  // Export Node.js specific services
8
8
  tslib_1.__exportStar(require("./lib/services"), exports);
9
+ // Database initialization
10
+ tslib_1.__exportStar(require("./lib/adapters/brightChainDbDocumentStoreAdapter"), exports);
11
+ tslib_1.__exportStar(require("./lib/databaseInit"), exports);
9
12
  // API lib exports
10
13
  tslib_1.__exportStar(require("./lib/appConstants"), exports);
11
14
  tslib_1.__exportStar(require("./lib/application"), exports);
12
- tslib_1.__exportStar(require("./lib/upstream-stubs"), exports);
13
15
  tslib_1.__exportStar(require("./lib/constants"), exports);
14
16
  tslib_1.__exportStar(require("./lib/controllers"), exports);
17
+ tslib_1.__exportStar(require("./lib/upstream-stubs"), exports);
15
18
  // Note: UserController is exported from controllers/api, not controllers/user (which is the legacy location)
16
19
  tslib_1.__exportStar(require("./lib/enumerations"), exports);
17
20
  tslib_1.__exportStar(require("./lib/environment"), exports);
@@ -21,6 +24,7 @@ tslib_1.__exportStar(require("./lib/interfaces"), exports);
21
24
  // Duplicate with brightchain-lib: export * from './lib/interfaces/token-user';
22
25
  // Duplicate with brightchain-lib: export * from './lib/interfaces/wallet-seed';
23
26
  tslib_1.__exportStar(require("./lib/datastore"), exports);
27
+ tslib_1.__exportStar(require("./lib/middleware"), exports);
24
28
  tslib_1.__exportStar(require("./lib/middlewares"), exports);
25
29
  tslib_1.__exportStar(require("./lib/routers"), exports);
26
30
  // Note: FEC types (ParityData, FecRecoveryResult, IFecService) are re-exported from brightchain-lib
@@ -29,6 +33,8 @@ tslib_1.__exportStar(require("./lib/availability"), exports);
29
33
  tslib_1.__exportStar(require("./lib/blockFetch"), exports);
30
34
  tslib_1.__exportStar(require("./lib/utils/errorResponse"), exports);
31
35
  tslib_1.__exportStar(require("./lib/utils/type-converters"), exports);
36
+ // Validation utilities
37
+ tslib_1.__exportStar(require("./lib/validation/userValidation"), exports);
32
38
  // Auth exports
33
39
  tslib_1.__exportStar(require("./lib/auth"), exports);
34
40
  // Encryption exports
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../brightchain-api-lib/src/index.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AACrC,uDAA6B;AAC7B,2DAAiC;AAEjC,mCAAmC;AACnC,yDAA+B;AAE/B,kBAAkB;AAClB,6DAAmC;AACnC,4DAAkC;AAClC,+DAAqC;AACrC,0DAAgC;AAChC,4DAAkC;AAClC,6GAA6G;AAC7G,6DAAmC;AACnC,4DAAkC;AAClC,uDAA6B;AAC7B,2DAAiC;AACjC,iGAAiG;AACjG,+EAA+E;AAC/E,gFAAgF;AAEhF,0DAAgC;AAChC,4DAAkC;AAClC,wDAA8B;AAC9B,oGAAoG;AACpG,kFAAkF;AAClF,6DAAmC;AACnC,2DAAiC;AACjC,oEAA0C;AAC1C,sEAA4C;AAQ5C,eAAe;AACf,qDAA2B;AAE3B,qBAAqB;AACrB,2DAAiC;AAEjC,kBAAkB;AAClB,+DAAqC;AACrC,4DAAkC;AAClC,qEAA2C;AAC3C,8DAAoC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../brightchain-api-lib/src/index.ts"],"names":[],"mappings":";;;AAAA,qCAAqC;AACrC,uDAA6B;AAC7B,2DAAiC;AAEjC,mCAAmC;AACnC,yDAA+B;AAE/B,0BAA0B;AAC1B,2FAAiE;AACjE,6DAAmC;AAEnC,kBAAkB;AAClB,6DAAmC;AACnC,4DAAkC;AAClC,0DAAgC;AAChC,4DAAkC;AAClC,+DAAqC;AACrC,6GAA6G;AAC7G,6DAAmC;AACnC,4DAAkC;AAClC,uDAA6B;AAC7B,2DAAiC;AACjC,iGAAiG;AACjG,+EAA+E;AAC/E,gFAAgF;AAEhF,0DAAgC;AAChC,2DAAiC;AACjC,4DAAkC;AAClC,wDAA8B;AAC9B,oGAAoG;AACpG,kFAAkF;AAClF,6DAAmC;AACnC,2DAAiC;AACjC,oEAA0C;AAC1C,sEAA4C;AAE5C,uBAAuB;AACvB,0EAAgD;AAQhD,eAAe;AACf,qDAA2B;AAE3B,qBAAqB;AACrB,2DAAiC;AAEjC,kBAAkB;AAClB,+DAAqC;AACrC,4DAAkC;AAClC,qEAA2C;AAC3C,8DAAoC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @fileoverview Adapter that wraps BrightChainDb as an IDocumentStore.
3
+ *
4
+ * BrightChainDb's Collection.find() returns a Cursor synchronously, while
5
+ * IDocumentStore expects find() to return Promise<IDocumentCursor<T>>.
6
+ * This thin adapter bridges the structural mismatch so that
7
+ * EnergyAccountStore (in brightchain-lib) can use BrightChainDb for
8
+ * persistence without depending on brightchain-db directly.
9
+ *
10
+ * @module adapters/brightChainDbDocumentStoreAdapter
11
+ */
12
+ import type { IDocumentCollection, IDocumentStore } from '@brightchain/brightchain-lib';
13
+ import type { BrightChainDb } from '@brightchain/db';
14
+ /**
15
+ * Wraps a BrightChainDb instance to satisfy the IDocumentStore interface.
16
+ */
17
+ export declare class BrightChainDbDocumentStoreAdapter implements IDocumentStore {
18
+ private readonly db;
19
+ constructor(db: BrightChainDb);
20
+ collection<T>(name: string): IDocumentCollection<T>;
21
+ connect(uri?: string): Promise<void>;
22
+ isConnected(): boolean;
23
+ }
24
+ //# sourceMappingURL=brightChainDbDocumentStoreAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brightChainDbDocumentStoreAdapter.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/adapters/brightChainDbDocumentStoreAdapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,mBAAmB,EAEnB,cAAc,EACf,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,iBAAiB,CAAC;AAEnE;;GAEG;AACH,qBAAa,iCAAkC,YAAW,cAAc;IAC1D,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,aAAa;IAE9C,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC;IAgC7C,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1C,WAAW,IAAI,OAAO;CAGvB"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Adapter that wraps BrightChainDb as an IDocumentStore.
4
+ *
5
+ * BrightChainDb's Collection.find() returns a Cursor synchronously, while
6
+ * IDocumentStore expects find() to return Promise<IDocumentCursor<T>>.
7
+ * This thin adapter bridges the structural mismatch so that
8
+ * EnergyAccountStore (in brightchain-lib) can use BrightChainDb for
9
+ * persistence without depending on brightchain-db directly.
10
+ *
11
+ * @module adapters/brightChainDbDocumentStoreAdapter
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.BrightChainDbDocumentStoreAdapter = void 0;
15
+ /**
16
+ * Wraps a BrightChainDb instance to satisfy the IDocumentStore interface.
17
+ */
18
+ class BrightChainDbDocumentStoreAdapter {
19
+ constructor(db) {
20
+ this.db = db;
21
+ }
22
+ collection(name) {
23
+ const coll = this.db.collection(name);
24
+ return {
25
+ async find(filter) {
26
+ // Collection.find() returns a Cursor synchronously; wrap it
27
+ // as a Promise<IDocumentCursor<T>> by resolving immediately.
28
+ const cursor = coll.find(filter);
29
+ return {
30
+ async toArray() {
31
+ const docs = await cursor.toArray();
32
+ return docs;
33
+ },
34
+ };
35
+ },
36
+ async replaceOne(filter, doc, options) {
37
+ await coll.replaceOne(filter, doc, options);
38
+ },
39
+ async deleteOne(filter) {
40
+ const result = await coll.deleteOne(filter);
41
+ return result.deletedCount > 0;
42
+ },
43
+ };
44
+ }
45
+ async connect(uri) {
46
+ await this.db.connect(uri);
47
+ }
48
+ isConnected() {
49
+ return this.db.isConnected();
50
+ }
51
+ }
52
+ exports.BrightChainDbDocumentStoreAdapter = BrightChainDbDocumentStoreAdapter;
53
+ //# sourceMappingURL=brightChainDbDocumentStoreAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brightChainDbDocumentStoreAdapter.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/adapters/brightChainDbDocumentStoreAdapter.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AASH;;GAEG;AACH,MAAa,iCAAiC;IAC5C,YAA6B,EAAiB;QAAjB,OAAE,GAAF,EAAE,CAAe;IAAG,CAAC;IAElD,UAAU,CAAI,IAAY;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAe,IAAI,CAAC,CAAC;QACpD,OAAO;YACL,KAAK,CAAC,IAAI,CAAC,MAAkB;gBAC3B,4DAA4D;gBAC5D,6DAA6D;gBAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAA+B,CAAC,CAAC;gBAC1D,OAAO;oBACL,KAAK,CAAC,OAAO;wBACX,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;wBACpC,OAAO,IAAW,CAAC;oBACrB,CAAC;iBACF,CAAC;YACJ,CAAC;YACD,KAAK,CAAC,UAAU,CACd,MAAkB,EAClB,GAAM,EACN,OAA8B;gBAE9B,MAAM,IAAI,CAAC,UAAU,CACnB,MAA+B,EAC/B,GAAmB,EACnB,OAAO,CACR,CAAC;YACJ,CAAC;YACD,KAAK,CAAC,SAAS,CAAC,MAAkB;gBAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAA+B,CAAC,CAAC;gBACrE,OAAO,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC;YACjC,CAAC;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAY;QACxB,MAAM,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;IAC/B,CAAC;CACF;AA1CD,8EA0CC"}
@@ -1,11 +1,14 @@
1
1
  import { IAvailabilityService, IDiscoveryProtocol, IReconciliationService } from '@brightchain/brightchain-lib';
2
2
  import { PlatformID } from '@digitaldefiance/node-ecies-lib';
3
3
  import { IConstants, Application as UpstreamApplication } from '@digitaldefiance/node-express-suite';
4
+ import { GossipService } from './availability/gossipService';
5
+ import { PoolDiscoveryService } from './availability/poolDiscoveryService';
4
6
  import { DocumentCollection, DocumentRecord, DocumentStore } from './datastore/document-store';
5
7
  import { Environment } from './environment';
6
8
  import { IBrightChainInitResult } from './interfaces/brightchain-init-result';
7
9
  import { ApiRouter } from './routers/api';
8
10
  import { AppRouter } from './routers/app';
11
+ import { ClientWebSocketServer } from './services/clientWebSocketServer';
9
12
  import { EventNotificationSystem } from './services/eventNotificationSystem';
10
13
  import { MessagePassingService } from './services/messagePassingService';
11
14
  import { WebSocketMessageServer } from './services/webSocketMessageServer';
@@ -29,6 +32,7 @@ export declare class App<TID extends PlatformID> extends UpstreamApplication<IBr
29
32
  private apiRouter;
30
33
  private eventSystem;
31
34
  private wsServer;
35
+ private clientWsServer;
32
36
  private messagePassingService;
33
37
  private upnpManager;
34
38
  /**
@@ -69,6 +73,12 @@ export declare class App<TID extends PlatformID> extends UpstreamApplication<IBr
69
73
  * Useful for sending messages to connected nodes.
70
74
  */
71
75
  getWebSocketServer(): WebSocketMessageServer | null;
76
+ /**
77
+ * Get the ClientWebSocketServer instance.
78
+ * Used for Lumen client protocol connections.
79
+ * @see Requirements 9.6, 11.3
80
+ */
81
+ getClientWebSocketServer(): ClientWebSocketServer | null;
72
82
  /**
73
83
  * Set the MessagePassingService for the application.
74
84
  * This should be called after the application is started and
@@ -97,5 +107,15 @@ export declare class App<TID extends PlatformID> extends UpstreamApplication<IBr
97
107
  * @requirements 4.4
98
108
  */
99
109
  setReconciliationService(service: IReconciliationService): void;
110
+ /**
111
+ * Set the PoolDiscoveryService and wire gossip handlers.
112
+ * Registers the service, connects GossipService pool announcement/removal
113
+ * handlers, and passes the service to the IntrospectionController via ApiRouter.
114
+ *
115
+ * @param poolDiscoveryService - The pool discovery service instance
116
+ * @param gossipService - The gossip service to wire pool announcement handlers to
117
+ * @see Requirements 7.1, 8.3
118
+ */
119
+ setPoolDiscoveryService(poolDiscoveryService: PoolDiscoveryService, gossipService: GossipService): void;
100
120
  }
101
121
  //# 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":"AAAA,OAAO,EAIL,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EAEvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EAGL,UAAU,EAEV,WAAW,IAAI,mBAAmB,EACnC,MAAM,qCAAqC,CAAC;AAI7C,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,aAAa,EACd,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAE9E,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAO3E;;;;;;;;;;;;GAYG;AACH,qBAAa,GAAG,CAAC,GAAG,SAAS,UAAU,CAAE,SAAQ,mBAAmB,CAClE,sBAAsB,CAAC,GAAG,CAAC,EAC3B,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EACrB,GAAG,EACH,WAAW,CAAC,GAAG,CAAC,EAChB,UAAU,EACV,SAAS,CAAC,GAAG,CAAC,CACf;IACC,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAgB;IAC1D,OAAO,CAAC,SAAS,CAA+B;IAChD,OAAO,CAAC,WAAW,CAAwC;IAC3D,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,qBAAqB,CAAsC;IACnE,OAAO,CAAC,WAAW,CAA4B;IAE/C;;;;OAIG;IACH,OAAO,CAAC,WAAW,CAAuB;gBAE9B,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC;IA2BzC;;;;OAIG;IAEH,IAAoB,EAAE,IAAI,aAAa,CAEtC;IAED;;;;OAIG;IAEa,QAAQ,CAAC,CAAC,SAAS,cAAc,EAC/C,SAAS,EAAE,MAAM,GAChB,kBAAkB,CAAC,CAAC,CAAC;IAIF,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8FvC,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;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"}
1
+ {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../../../brightchain-api-lib/src/lib/application.ts"],"names":[],"mappings":"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"}
@@ -2,14 +2,16 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.App = void 0;
4
4
  const brightchain_lib_1 = require("@brightchain/brightchain-lib");
5
+ const node_ecies_lib_1 = require("@digitaldefiance/node-ecies-lib");
5
6
  const node_express_suite_1 = require("@digitaldefiance/node-express-suite");
6
7
  const appConstants_1 = require("./appConstants");
8
+ const databaseInit_1 = require("./databaseInit");
7
9
  const block_document_store_factory_1 = require("./datastore/block-document-store-factory");
8
- const blockStoreFactory_1 = require("./factories/blockStoreFactory");
9
10
  const middlewares_1 = require("./middlewares");
10
11
  const api_1 = require("./routers/api");
11
12
  const app_1 = require("./routers/app");
12
13
  const services_1 = require("./services");
14
+ const clientWebSocketServer_1 = require("./services/clientWebSocketServer");
13
15
  const eventNotificationSystem_1 = require("./services/eventNotificationSystem");
14
16
  const webSocketMessageServer_1 = require("./services/webSocketMessageServer");
15
17
  const upstream_stubs_1 = require("./upstream-stubs");
@@ -28,9 +30,9 @@ const upstream_stubs_1 = require("./upstream-stubs");
28
30
  */
29
31
  class App extends node_express_suite_1.Application {
30
32
  constructor(environment) {
33
+ appConstants_1.AppConstants.idProvider = new node_ecies_lib_1.GuidV4Provider();
31
34
  super(environment,
32
35
  // apiRouterFactory — creates BrightChain's ApiRouter
33
- // @ts-expect-error — App overrides db/getModel with DocumentStore types; runtime-compatible
34
36
  (app) => new api_1.ApiRouter(app),
35
37
  // schemaMapFactory — no-op, returns empty object (no mongoose models)
36
38
  upstream_stubs_1.noOpSchemaMapFactory,
@@ -50,6 +52,7 @@ class App extends node_express_suite_1.Application {
50
52
  this.apiRouter = null;
51
53
  this.eventSystem = null;
52
54
  this.wsServer = null;
55
+ this.clientWsServer = null;
53
56
  this.messagePassingService = null;
54
57
  this.upnpManager = null;
55
58
  /**
@@ -58,6 +61,7 @@ class App extends node_express_suite_1.Application {
58
61
  * so we intercept expressApp.listen() to capture it here.
59
62
  */
60
63
  this._httpServer = null;
64
+ (0, node_ecies_lib_1.registerNodeRuntimeConfiguration)('guid-config', appConstants_1.AppConstants);
61
65
  this.keyStorage = services_1.SecureKeyStorage.getInstance();
62
66
  this._brightchainDocumentStore = (0, block_document_store_factory_1.createBlockDocumentStore)({
63
67
  useMemory: true,
@@ -99,19 +103,18 @@ class App extends node_express_suite_1.Application {
99
103
  this.expressApp.listen = originalListen;
100
104
  // ── BrightChain-specific initialization ──────────────────────────
101
105
  await this.keyStorage.initializeFromEnvironment();
102
- // Initialize core services
103
- const blockStore = blockStoreFactory_1.BlockStoreFactory.createMemoryStore({
104
- blockSize: brightchain_lib_1.BlockSize.Small,
105
- });
106
- const memberStore = new brightchain_lib_1.MemberStore(blockStore);
107
- const energyStore = new brightchain_lib_1.EnergyAccountStore();
106
+ // Initialize persistent (or ephemeral) database stack
107
+ const initResult = await (0, databaseInit_1.brightchainDatabaseInit)(this.environment);
108
+ if (!initResult.success || !initResult.backend) {
109
+ throw new Error(`BrightChain database initialization failed: ${initResult.error ?? 'unknown error'}`);
110
+ }
111
+ const { blockStore, db, memberStore, energyStore } = initResult.backend;
108
112
  const energyLedger = new brightchain_lib_1.EnergyLedger();
109
- // @ts-expect-error — App overrides db/getModel with DocumentStore types; runtime-compatible
110
113
  const emailService = new services_1.EmailService(this);
111
- const authService = new services_1.AuthService(
112
- // @ts-expect-error App overrides db/getModel with DocumentStore types; runtime-compatible
113
- this, memberStore, energyStore, emailService, this.environment.jwtSecret);
114
- // Register services in the upstream ServiceContainer
114
+ const authService = new services_1.AuthService(this, memberStore, energyStore, emailService, this.environment.jwtSecret);
115
+ // Register services from init result and additional services
116
+ this.services.register('blockStore', () => blockStore);
117
+ this.services.register('db', () => db);
115
118
  this.services.register('memberStore', () => memberStore);
116
119
  this.services.register('energyStore', () => energyStore);
117
120
  this.services.register('energyLedger', () => energyLedger);
@@ -125,6 +128,11 @@ class App extends node_express_suite_1.Application {
125
128
  this.wsServer = new webSocketMessageServer_1.WebSocketMessageServer(this._httpServer, false);
126
129
  this.services.register('wsServer', () => this.wsServer);
127
130
  (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ ready ] WebSocket server initialized');
131
+ // Client-facing WebSocket server for Lumen protocol
132
+ // @see Requirements 9.6, 11.3
133
+ this.clientWsServer = new clientWebSocketServer_1.ClientWebSocketServer(this._httpServer, this.environment.jwtSecret, this.eventSystem);
134
+ this.services.register('clientWsServer', () => this.clientWsServer);
135
+ (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ ready ] Client WebSocket server initialized');
128
136
  }
129
137
  // Wire EventNotificationSystem to SyncController via the apiRouter
130
138
  if (this.apiRouter) {
@@ -162,6 +170,14 @@ class App extends node_express_suite_1.Application {
162
170
  });
163
171
  this.wsServer = null;
164
172
  }
173
+ // Close client WebSocket server
174
+ if (this.clientWsServer) {
175
+ (0, node_express_suite_1.debugLog)(this.environment.debug, 'log', '[ stopping ] Client WebSocket server');
176
+ await new Promise((resolve) => {
177
+ this.clientWsServer.close(() => resolve());
178
+ });
179
+ this.clientWsServer = null;
180
+ }
165
181
  // Clean up BrightChain services
166
182
  this.eventSystem = null;
167
183
  this.messagePassingService = null;
@@ -197,6 +213,14 @@ class App extends node_express_suite_1.Application {
197
213
  getWebSocketServer() {
198
214
  return this.wsServer;
199
215
  }
216
+ /**
217
+ * Get the ClientWebSocketServer instance.
218
+ * Used for Lumen client protocol connections.
219
+ * @see Requirements 9.6, 11.3
220
+ */
221
+ getClientWebSocketServer() {
222
+ return this.clientWsServer;
223
+ }
200
224
  /**
201
225
  * Set the MessagePassingService for the application.
202
226
  * This should be called after the application is started and
@@ -247,6 +271,31 @@ class App extends node_express_suite_1.Application {
247
271
  this.apiRouter.setReconciliationService(service);
248
272
  }
249
273
  }
274
+ /**
275
+ * Set the PoolDiscoveryService and wire gossip handlers.
276
+ * Registers the service, connects GossipService pool announcement/removal
277
+ * handlers, and passes the service to the IntrospectionController via ApiRouter.
278
+ *
279
+ * @param poolDiscoveryService - The pool discovery service instance
280
+ * @param gossipService - The gossip service to wire pool announcement handlers to
281
+ * @see Requirements 7.1, 8.3
282
+ */
283
+ setPoolDiscoveryService(poolDiscoveryService, gossipService) {
284
+ this.services.register('poolDiscoveryService', () => poolDiscoveryService);
285
+ // Wire gossip pool announcement/removal handlers
286
+ gossipService.onAnnouncement((announcement) => {
287
+ if (announcement.type === 'pool_announce') {
288
+ poolDiscoveryService.handlePoolAnnouncement(announcement);
289
+ }
290
+ else if (announcement.type === 'pool_remove' && announcement.poolId) {
291
+ poolDiscoveryService.handlePoolRemoval(announcement.poolId, announcement.nodeId);
292
+ }
293
+ });
294
+ // Pass to IntrospectionController via ApiRouter
295
+ if (this.apiRouter) {
296
+ this.apiRouter.setIntrospectionPoolDiscoveryService(poolDiscoveryService);
297
+ }
298
+ }
250
299
  }
251
300
  exports.App = App;
252
301
  //# 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":"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"}
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * @see Requirements 6.1, 6.2, 6.3, 6.4, 6.5, 6.6
9
9
  */
10
- import { AnnouncementHandler, BlockAnnouncement, DeliveryAckMetadata, GossipConfig, ICBLIndexEntry, IGossipService, MessageDeliveryMetadata, PoolId } from '@brightchain/brightchain-lib';
10
+ import { AnnouncementHandler, BlockAnnouncement, DeliveryAckMetadata, GossipConfig, ICBLIndexEntry, IGossipService, MessageDeliveryMetadata, PoolAnnouncementMetadata, PoolId } from '@brightchain/brightchain-lib';
11
11
  import { ECIESService } from '@digitaldefiance/node-ecies-lib';
12
12
  /**
13
13
  * Error thrown when gossip configuration is invalid.
@@ -141,6 +141,25 @@ export declare class GossipService implements IGossipService {
141
141
  * @see Requirements 2.2, 2.7
142
142
  */
143
143
  announcePoolDeletion(poolId: PoolId): Promise<void>;
144
+ /**
145
+ * Announce a new or updated pool to the network.
146
+ * Creates a pool_announce announcement with pool metadata for discovery.
147
+ * When the pool has encryption enabled, the caller should provide
148
+ * pre-encrypted metadata via the encryptedMetadata field.
149
+ *
150
+ * @param poolId - The pool being announced
151
+ * @param metadata - Pool announcement metadata (blockCount, totalSize, encrypted, encryptedMetadata)
152
+ * @see Requirements 8.1, 8.2
153
+ */
154
+ announcePool(poolId: PoolId, metadata: PoolAnnouncementMetadata): Promise<void>;
155
+ /**
156
+ * Announce that a pool has been removed from this node.
157
+ * Creates a pool_remove announcement propagated to peers for discovery cache updates.
158
+ *
159
+ * @param poolId - The pool being removed
160
+ * @see Requirements 8.4
161
+ */
162
+ announcePoolRemoval(poolId: PoolId): Promise<void>;
144
163
  /**
145
164
  * Announce a new or updated CBL index entry to peers in the same pool.
146
165
  * Creates a cbl_index_update announcement scoped to the entry's pool.
@@ -1 +1 @@
1
- {"version":3,"file":"gossipService.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/gossipService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gossipService.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/availability/gossipService.ts"],"names":[],"mappings":"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"}
@@ -153,6 +153,46 @@ class GossipService {
153
153
  };
154
154
  this.queueAnnouncement(announcement);
155
155
  }
156
+ /**
157
+ * Announce a new or updated pool to the network.
158
+ * Creates a pool_announce announcement with pool metadata for discovery.
159
+ * When the pool has encryption enabled, the caller should provide
160
+ * pre-encrypted metadata via the encryptedMetadata field.
161
+ *
162
+ * @param poolId - The pool being announced
163
+ * @param metadata - Pool announcement metadata (blockCount, totalSize, encrypted, encryptedMetadata)
164
+ * @see Requirements 8.1, 8.2
165
+ */
166
+ async announcePool(poolId, metadata) {
167
+ const announcement = {
168
+ type: 'pool_announce',
169
+ blockId: '',
170
+ poolId,
171
+ nodeId: this.peerProvider.getLocalNodeId(),
172
+ timestamp: new Date(),
173
+ ttl: this.config.defaultTtl,
174
+ poolAnnouncement: metadata,
175
+ };
176
+ this.queueAnnouncement(announcement);
177
+ }
178
+ /**
179
+ * Announce that a pool has been removed from this node.
180
+ * Creates a pool_remove announcement propagated to peers for discovery cache updates.
181
+ *
182
+ * @param poolId - The pool being removed
183
+ * @see Requirements 8.4
184
+ */
185
+ async announcePoolRemoval(poolId) {
186
+ const announcement = {
187
+ type: 'pool_remove',
188
+ blockId: '',
189
+ poolId,
190
+ nodeId: this.peerProvider.getLocalNodeId(),
191
+ timestamp: new Date(),
192
+ ttl: this.config.defaultTtl,
193
+ };
194
+ this.queueAnnouncement(announcement);
195
+ }
156
196
  /**
157
197
  * Announce a new or updated CBL index entry to peers in the same pool.
158
198
  * Creates a cbl_index_update announcement scoped to the entry's pool.
@@ -260,6 +300,25 @@ class GossipService {
260
300
  }
261
301
  return;
262
302
  }
303
+ // Case 0a: Pool announce/remove announcements — dispatch to handlers and forward (Req 8.1, 8.3, 8.4)
304
+ if (announcement.type === 'pool_announce' ||
305
+ announcement.type === 'pool_remove') {
306
+ if (!announcement.poolId)
307
+ return; // Invalid without poolId, ignore
308
+ for (const handler of this.handlers) {
309
+ try {
310
+ handler(announcement);
311
+ }
312
+ catch {
313
+ // Ignore handler errors to prevent one handler from affecting others
314
+ }
315
+ }
316
+ // Forward with decremented TTL
317
+ if (announcement.ttl > 0) {
318
+ this.queueAnnouncement({ ...announcement, ttl: announcement.ttl - 1 });
319
+ }
320
+ return;
321
+ }
263
322
  // Case 0b: CBL index announcements — dispatch to handlers and forward (Req 8.1, 8.6)
264
323
  if (announcement.type === 'cbl_index_update' ||
265
324
  announcement.type === 'cbl_index_delete') {