@brightchain/brightchain-api-lib 0.16.0 → 0.17.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 (285) 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 +59 -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 +5 -0
  85. package/src/lib/environment.d.ts.map +1 -1
  86. package/src/lib/environment.js +7 -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 +4 -0
  105. package/src/lib/interfaces/environment.d.ts.map +1 -1
  106. package/src/lib/interfaces/index.d.ts +5 -1
  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/members-handlers.js +3 -0
  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
@@ -0,0 +1,437 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ClientWebSocketServer = void 0;
4
+ exports.shouldDeliverEvent = shouldDeliverEvent;
5
+ const tslib_1 = require("tslib");
6
+ const brightchain_lib_1 = require("@brightchain/brightchain-lib");
7
+ const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
8
+ const crypto_1 = require("crypto");
9
+ const jwt = tslib_1.__importStar(require("jsonwebtoken"));
10
+ const url_1 = require("url");
11
+ const ws_1 = require("ws");
12
+ /** Default idle timeout before sending a ping (ms). */
13
+ const DEFAULT_IDLE_TIMEOUT_MS = 30000;
14
+ /** Grace period after TokenExpiring event before closing (ms). */
15
+ const DEFAULT_TOKEN_GRACE_MS = 30000;
16
+ /** How often to check for token expiration (ms). */
17
+ const DEFAULT_TOKEN_CHECK_INTERVAL_MS = 10000;
18
+ /** How far before actual expiry to send the TokenExpiring warning (ms). */
19
+ const DEFAULT_TOKEN_WARNING_BEFORE_MS = 60000;
20
+ /**
21
+ * Determine whether a client event should be delivered to a given member.
22
+ *
23
+ * Access tier rules:
24
+ * - public: all authenticated members
25
+ * - admin: only Admin or System members
26
+ * - pool-scoped: only members subscribed AND who have pool read permission
27
+ * (pool ACL checking is the caller's responsibility; here we check MemberType
28
+ * and targetMemberId where applicable)
29
+ * - member-scoped: only the specific target member
30
+ *
31
+ * @see Requirements 9.4, 9.7
32
+ */
33
+ function shouldDeliverEvent(event, memberContext) {
34
+ switch (event.accessTier) {
35
+ case brightchain_lib_1.ClientEventAccessTier.Public:
36
+ return true;
37
+ case brightchain_lib_1.ClientEventAccessTier.Admin:
38
+ return (memberContext.type === ecies_lib_1.MemberType.Admin ||
39
+ memberContext.type === ecies_lib_1.MemberType.System);
40
+ case brightchain_lib_1.ClientEventAccessTier.MemberScoped:
41
+ return event.targetMemberId === memberContext.memberId;
42
+ case brightchain_lib_1.ClientEventAccessTier.PoolScoped:
43
+ // Pool-scoped events are delivered to Admin/System unconditionally.
44
+ // For regular users, the caller (broadcastEvent) should pre-filter
45
+ // based on pool ACL. At the WebSocket layer we allow delivery to
46
+ // Admin/System and trust that the event was already ACL-checked for
47
+ // regular users when it was emitted.
48
+ return (memberContext.type === ecies_lib_1.MemberType.Admin ||
49
+ memberContext.type === ecies_lib_1.MemberType.System);
50
+ default:
51
+ return false;
52
+ }
53
+ }
54
+ /**
55
+ * JWT-authenticated WebSocket server for Lumen client connections.
56
+ *
57
+ * Listens on `/ws/client`, separate from the ECIES-authenticated
58
+ * `/ws/node/:nodeId` path used by `WebSocketMessageServer`.
59
+ *
60
+ * Responsibilities:
61
+ * - Authenticate connections via JWT (query param `token` or first message)
62
+ * - Manage per-session event subscriptions
63
+ * - Broadcast `IClientEvent` envelopes filtered by access tier
64
+ * - Monitor token expiration and send `TokenExpiring` before closing
65
+ * - Ping/pong idle timeout
66
+ *
67
+ * @see Requirements 9.1–9.7, 11.3, 11.4
68
+ */
69
+ class ClientWebSocketServer {
70
+ constructor(server, jwtSecret, eventNotificationSystem, options) {
71
+ this.sessions = new Map();
72
+ this.pingInterval = null;
73
+ this.tokenCheckInterval = null;
74
+ this.jwtSecret = jwtSecret;
75
+ this.eventNotificationSystem = eventNotificationSystem;
76
+ this.idleTimeoutMs = options?.idleTimeoutMs ?? DEFAULT_IDLE_TIMEOUT_MS;
77
+ this.tokenGraceMs = options?.tokenGraceMs ?? DEFAULT_TOKEN_GRACE_MS;
78
+ this.tokenWarningBeforeMs =
79
+ options?.tokenWarningBeforeMs ?? DEFAULT_TOKEN_WARNING_BEFORE_MS;
80
+ this.wss = new ws_1.WebSocketServer({
81
+ server,
82
+ path: '/ws/client',
83
+ });
84
+ this.setupConnectionHandler();
85
+ this.startPingPongMonitor();
86
+ this.startTokenExpirationMonitor(options?.tokenCheckIntervalMs ?? DEFAULT_TOKEN_CHECK_INTERVAL_MS);
87
+ }
88
+ // ── Authentication ──────────────────────────────────────────────────
89
+ /**
90
+ * Attempt to authenticate an incoming WebSocket upgrade request.
91
+ * Looks for a JWT in the `token` query parameter.
92
+ *
93
+ * @returns The decoded member context, or `null` if authentication fails.
94
+ * @see Requirements 9.1, 9.2
95
+ */
96
+ authenticateConnection(req) {
97
+ try {
98
+ const token = this.extractTokenFromRequest(req);
99
+ if (!token)
100
+ return null;
101
+ const decoded = jwt.verify(token, this.jwtSecret);
102
+ return {
103
+ memberId: decoded.memberId,
104
+ username: decoded.username,
105
+ type: decoded.type,
106
+ iat: decoded.iat,
107
+ exp: decoded.exp,
108
+ };
109
+ }
110
+ catch {
111
+ return null;
112
+ }
113
+ }
114
+ /**
115
+ * Extract JWT from the `token` query parameter of the upgrade request URL.
116
+ */
117
+ extractTokenFromRequest(req) {
118
+ if (!req.url)
119
+ return null;
120
+ try {
121
+ // req.url is a relative path; construct a full URL for parsing
122
+ const url = new url_1.URL(req.url, 'http://localhost');
123
+ return url.searchParams.get('token');
124
+ }
125
+ catch {
126
+ return null;
127
+ }
128
+ }
129
+ /**
130
+ * Attempt to authenticate via the first message (for clients that cannot
131
+ * set query params). Expects `{ type: 'auth', token: '<jwt>' }`.
132
+ */
133
+ authenticateFromMessage(data) {
134
+ try {
135
+ const message = JSON.parse(typeof data === 'string' ? data : data.toString());
136
+ if (message.type !== 'auth' || typeof message.token !== 'string') {
137
+ return null;
138
+ }
139
+ const decoded = jwt.verify(message.token, this.jwtSecret);
140
+ return {
141
+ memberId: decoded.memberId,
142
+ username: decoded.username,
143
+ type: decoded.type,
144
+ iat: decoded.iat,
145
+ exp: decoded.exp,
146
+ };
147
+ }
148
+ catch {
149
+ return null;
150
+ }
151
+ }
152
+ // ── Connection handling ─────────────────────────────────────────────
153
+ /**
154
+ * Set up the WebSocket connection handler.
155
+ * Authenticates via query param on upgrade; falls back to first-message auth.
156
+ */
157
+ setupConnectionHandler() {
158
+ this.wss.on('connection', (ws, req) => {
159
+ const memberContext = this.authenticateConnection(req);
160
+ if (memberContext) {
161
+ // Authenticated via query param — register session immediately
162
+ this.registerSession(ws, memberContext);
163
+ }
164
+ else {
165
+ // Wait for the first message to carry the auth token
166
+ const authTimeout = setTimeout(() => {
167
+ // No auth message received in time
168
+ ws.close(4001, 'Authentication timeout');
169
+ }, 5000);
170
+ const onFirstMessage = (data) => {
171
+ clearTimeout(authTimeout);
172
+ ws.removeListener('message', onFirstMessage);
173
+ const buf = Array.isArray(data)
174
+ ? Buffer.concat(data)
175
+ : Buffer.from(data);
176
+ const ctx = this.authenticateFromMessage(buf);
177
+ if (ctx) {
178
+ this.registerSession(ws, ctx);
179
+ ws.send(JSON.stringify({ type: 'auth_success' }));
180
+ }
181
+ else {
182
+ ws.close(4001, 'Authentication failed');
183
+ }
184
+ };
185
+ ws.on('message', onFirstMessage);
186
+ ws.on('close', () => {
187
+ clearTimeout(authTimeout);
188
+ ws.removeListener('message', onFirstMessage);
189
+ });
190
+ }
191
+ });
192
+ }
193
+ /**
194
+ * Register an authenticated session and wire up message/close handlers.
195
+ */
196
+ registerSession(ws, memberContext) {
197
+ const session = {
198
+ ws,
199
+ memberContext,
200
+ subscribedEvents: new Set(),
201
+ lastPong: Date.now(),
202
+ };
203
+ this.sessions.set(ws, session);
204
+ ws.on('pong', () => {
205
+ session.lastPong = Date.now();
206
+ });
207
+ ws.on('message', (data) => {
208
+ const buf = Array.isArray(data)
209
+ ? Buffer.concat(data)
210
+ : Buffer.from(data);
211
+ this.handleMessage(ws, session, buf);
212
+ });
213
+ ws.on('close', () => {
214
+ this.sessions.delete(ws);
215
+ });
216
+ ws.on('error', () => {
217
+ this.sessions.delete(ws);
218
+ try {
219
+ ws.close();
220
+ }
221
+ catch {
222
+ // already closed
223
+ }
224
+ });
225
+ }
226
+ // ── Message handling ────────────────────────────────────────────────
227
+ /**
228
+ * Handle an incoming message from an authenticated session.
229
+ * Currently supports subscription management messages.
230
+ */
231
+ handleMessage(ws, session, data) {
232
+ try {
233
+ const message = JSON.parse(data.toString());
234
+ if (message.action === 'subscribe' || message.action === 'unsubscribe') {
235
+ this.handleSubscription(ws, session, message);
236
+ }
237
+ else {
238
+ ws.send(JSON.stringify({
239
+ type: 'error',
240
+ code: 'invalid_message',
241
+ message: 'Unknown message type',
242
+ }));
243
+ }
244
+ }
245
+ catch {
246
+ ws.send(JSON.stringify({
247
+ type: 'error',
248
+ code: 'invalid_message',
249
+ message: 'Invalid JSON',
250
+ }));
251
+ }
252
+ }
253
+ // ── Subscription management ─────────────────────────────────────────
254
+ /**
255
+ * Process a subscribe/unsubscribe message from a client.
256
+ *
257
+ * @see Requirements 9.3
258
+ */
259
+ handleSubscription(ws, session, message) {
260
+ if (!Array.isArray(message.eventTypes) || message.eventTypes.length === 0) {
261
+ ws.send(JSON.stringify({
262
+ type: 'error',
263
+ code: 'invalid_subscription',
264
+ message: 'eventTypes must be a non-empty array',
265
+ }));
266
+ return;
267
+ }
268
+ // Validate that all event types are known
269
+ const validTypes = new Set(Object.values(brightchain_lib_1.ClientEventType));
270
+ const invalid = message.eventTypes.filter((t) => !validTypes.has(t));
271
+ if (invalid.length > 0) {
272
+ ws.send(JSON.stringify({
273
+ type: 'error',
274
+ code: 'invalid_subscription',
275
+ message: `Unknown event types: ${invalid.join(', ')}`,
276
+ }));
277
+ return;
278
+ }
279
+ if (message.action === 'subscribe') {
280
+ for (const eventType of message.eventTypes) {
281
+ session.subscribedEvents.add(eventType);
282
+ }
283
+ }
284
+ else {
285
+ for (const eventType of message.eventTypes) {
286
+ session.subscribedEvents.delete(eventType);
287
+ }
288
+ }
289
+ ws.send(JSON.stringify({
290
+ type: 'subscription_update',
291
+ action: message.action,
292
+ eventTypes: message.eventTypes,
293
+ currentSubscriptions: Array.from(session.subscribedEvents),
294
+ }));
295
+ }
296
+ // ── Event broadcasting ──────────────────────────────────────────────
297
+ /**
298
+ * Broadcast a client event to all subscribed sessions that pass
299
+ * the access tier filter.
300
+ *
301
+ * @see Requirements 9.4, 9.7
302
+ */
303
+ broadcastEvent(event) {
304
+ const payload = JSON.stringify(event);
305
+ for (const session of this.sessions.values()) {
306
+ if (session.ws.readyState !== ws_1.WebSocket.OPEN)
307
+ continue;
308
+ if (!session.subscribedEvents.has(event.eventType))
309
+ continue;
310
+ if (!shouldDeliverEvent(event, session.memberContext))
311
+ continue;
312
+ try {
313
+ session.ws.send(payload);
314
+ }
315
+ catch {
316
+ // Send failed — connection will be cleaned up on close/error
317
+ }
318
+ }
319
+ }
320
+ // ── Token expiration monitoring ─────────────────────────────────────
321
+ /**
322
+ * Periodically check all sessions for approaching token expiration.
323
+ * Sends a `TokenExpiring` event before closing the connection.
324
+ *
325
+ * @see Requirements 11.4
326
+ */
327
+ startTokenExpirationMonitor(checkIntervalMs) {
328
+ this.tokenCheckInterval = setInterval(() => {
329
+ const now = Date.now();
330
+ for (const [ws, session] of this.sessions.entries()) {
331
+ const expiresAtMs = session.memberContext.exp * 1000;
332
+ const timeUntilExpiry = expiresAtMs - now;
333
+ if (timeUntilExpiry <= 0) {
334
+ // Token already expired — close immediately
335
+ this.sendTokenExpiringEvent(ws);
336
+ ws.close(4002, 'Token expired');
337
+ this.sessions.delete(ws);
338
+ }
339
+ else if (timeUntilExpiry <= this.tokenWarningBeforeMs) {
340
+ // Token expiring soon — send warning, then schedule close
341
+ this.sendTokenExpiringEvent(ws);
342
+ this.sessions.delete(ws);
343
+ setTimeout(() => {
344
+ if (ws.readyState === ws_1.WebSocket.OPEN) {
345
+ ws.close(4002, 'Token expired');
346
+ }
347
+ }, Math.min(timeUntilExpiry, this.tokenGraceMs));
348
+ }
349
+ }
350
+ }, checkIntervalMs);
351
+ }
352
+ /**
353
+ * Send a TokenExpiring client event to a specific WebSocket.
354
+ */
355
+ sendTokenExpiringEvent(ws) {
356
+ if (ws.readyState !== ws_1.WebSocket.OPEN)
357
+ return;
358
+ const event = {
359
+ eventType: brightchain_lib_1.ClientEventType.TokenExpiring,
360
+ accessTier: brightchain_lib_1.ClientEventAccessTier.Public,
361
+ payload: { message: 'Your authentication token is expiring soon' },
362
+ timestamp: new Date().toISOString(),
363
+ correlationId: (0, crypto_1.randomUUID)(),
364
+ };
365
+ try {
366
+ ws.send(JSON.stringify(event));
367
+ }
368
+ catch {
369
+ // Connection may already be closing
370
+ }
371
+ }
372
+ // ── Ping/pong idle timeout ──────────────────────────────────────────
373
+ /**
374
+ * Periodically ping all connected clients and close those that
375
+ * haven't responded within the idle timeout.
376
+ *
377
+ * @see Requirements 9.5
378
+ */
379
+ startPingPongMonitor() {
380
+ this.pingInterval = setInterval(() => {
381
+ const now = Date.now();
382
+ for (const [ws, session] of this.sessions.entries()) {
383
+ if (now - session.lastPong > this.idleTimeoutMs) {
384
+ // No pong received within timeout — terminate
385
+ ws.terminate();
386
+ this.sessions.delete(ws);
387
+ }
388
+ else if (ws.readyState === ws_1.WebSocket.OPEN) {
389
+ ws.ping();
390
+ }
391
+ }
392
+ }, this.idleTimeoutMs / 2);
393
+ }
394
+ // ── Public API ──────────────────────────────────────────────────────
395
+ /**
396
+ * Get the number of currently connected and authenticated client sessions.
397
+ */
398
+ getConnectedClientCount() {
399
+ return this.sessions.size;
400
+ }
401
+ /**
402
+ * Get all active sessions (for testing / introspection).
403
+ */
404
+ getSessions() {
405
+ return this.sessions;
406
+ }
407
+ /**
408
+ * Close all client connections and shut down the server.
409
+ */
410
+ close(callback) {
411
+ if (this.pingInterval) {
412
+ clearInterval(this.pingInterval);
413
+ this.pingInterval = null;
414
+ }
415
+ if (this.tokenCheckInterval) {
416
+ clearInterval(this.tokenCheckInterval);
417
+ this.tokenCheckInterval = null;
418
+ }
419
+ for (const [ws] of this.sessions) {
420
+ try {
421
+ ws.close(1001, 'Server shutting down');
422
+ }
423
+ catch {
424
+ // already closed
425
+ }
426
+ }
427
+ this.sessions.clear();
428
+ if (callback) {
429
+ this.wss.close(callback);
430
+ }
431
+ else {
432
+ this.wss.close();
433
+ }
434
+ }
435
+ }
436
+ exports.ClientWebSocketServer = ClientWebSocketServer;
437
+ //# sourceMappingURL=clientWebSocketServer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clientWebSocketServer.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/clientWebSocketServer.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,8 @@ export * from './base';
3
3
  export * from './blocks';
4
4
  export * from './blockServiceFactory';
5
5
  export * from './blockStore';
6
+ export * from './brightchain-member-init.service';
7
+ export * from './clientWebSocketServer';
6
8
  export * from './diskQuorumService';
7
9
  export * from './email';
8
10
  export * from './eventNotificationSystem';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC;AACxB,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC;AAC7B,cAAc,mCAAmC,CAAC;AAClD,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,SAAS,CAAC;AACxB,cAAc,2BAA2B,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iCAAiC,CAAC;AAChD,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC"}
@@ -7,6 +7,8 @@ tslib_1.__exportStar(require("./base"), exports);
7
7
  tslib_1.__exportStar(require("./blocks"), exports);
8
8
  tslib_1.__exportStar(require("./blockServiceFactory"), exports);
9
9
  tslib_1.__exportStar(require("./blockStore"), exports);
10
+ tslib_1.__exportStar(require("./brightchain-member-init.service"), exports);
11
+ tslib_1.__exportStar(require("./clientWebSocketServer"), exports);
10
12
  tslib_1.__exportStar(require("./diskQuorumService"), exports);
11
13
  tslib_1.__exportStar(require("./email"), exports);
12
14
  tslib_1.__exportStar(require("./eventNotificationSystem"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/index.ts"],"names":[],"mappings":";;;;AAAA,iDAAuB;AACvB,iDAAuB;AACvB,mDAAyB;AACzB,gEAAsC;AACtC,uDAA6B;AAC7B,8DAAoC;AACpC,kDAAwB;AACxB,oEAA0C;AAC1C,6BAAuC;AAA9B,qGAAA,cAAc,OAAA;AACvB,8DAAoC;AACpC,4DAAkC;AAClC,0EAAgD;AAChD,kEAAwC;AACxC,+DAAqC;AACrC,4DAAkC;AAClC,mDAAyB;AACzB,wDAA8B;AAC9B,iDAAuB;AACvB,6DAAmC;AACnC,6DAAmC;AACnC,mEAAyC;AACzC,kEAAwC;AACxC,sEAA4C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/services/index.ts"],"names":[],"mappings":";;;;AAAA,iDAAuB;AACvB,iDAAuB;AACvB,mDAAyB;AACzB,gEAAsC;AACtC,uDAA6B;AAC7B,4EAAkD;AAClD,kEAAwC;AACxC,8DAAoC;AACpC,kDAAwB;AACxB,oEAA0C;AAC1C,6BAAuC;AAA9B,qGAAA,cAAc,OAAA;AACvB,8DAAoC;AACpC,4DAAkC;AAClC,0EAAgD;AAChD,kEAAwC;AACxC,+DAAqC;AACrC,4DAAkC;AAClC,mDAAyB;AACzB,wDAA8B;AAC9B,iDAAuB;AACvB,6DAAmC;AACnC,6DAAmC;AACnC,mEAAyC;AACzC,kEAAwC;AACxC,sEAA4C"}
@@ -21,7 +21,7 @@ export declare class DiskBlockAsyncStore extends DiskBlockStore implements IBloc
21
21
  * Optional FEC service for parity generation and recovery.
22
22
  * If not provided, FEC operations will return errors or no-ops.
23
23
  */
24
- private fecService;
24
+ protected fecService: IFecService | null;
25
25
  constructor(config: {
26
26
  storePath: string;
27
27
  blockSize: BlockSize;
@@ -46,13 +46,13 @@ export declare class DiskBlockAsyncStore extends DiskBlockStore implements IBloc
46
46
  * @param key - The key as Checksum or string
47
47
  * @returns The key as hex string
48
48
  */
49
- private keyToHex;
49
+ protected keyToHex(key: Checksum | string): string;
50
50
  /**
51
51
  * Convert a hex string to Checksum.
52
52
  * @param hex - The hex string
53
53
  * @returns The Checksum
54
54
  */
55
- private hexToChecksum;
55
+ protected hexToChecksum(hex: string): Checksum;
56
56
  /**
57
57
  * Find the block size for a given checksum by searching all sizes.
58
58
  * @param key - The block's checksum
@@ -324,7 +324,7 @@ export declare class DiskBlockAsyncStore extends DiskBlockStore implements IBloc
324
324
  * @param size - The required size of the randomizer block
325
325
  * @returns A Uint8Array containing the randomizer data
326
326
  */
327
- private selectOrGenerateRandomizer;
327
+ protected selectOrGenerateRandomizer(size: number): Promise<Uint8Array>;
328
328
  /**
329
329
  * Retrieve and reconstruct a CBL from its whitened components.
330
330
  *
@@ -1 +1 @@
1
- {"version":3,"file":"diskBlockAsyncStore.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/stores/diskBlockAsyncStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diskBlockAsyncStore.d.ts","sourceRoot":"","sources":["../../../../../brightchain-api-lib/src/lib/stores/diskBlockAsyncStore.ts"],"names":[],"mappings":"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"}