@brightchain/brightchain-api-lib 0.23.21 → 0.24.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 (452) hide show
  1. package/package.json +5 -5
  2. package/src/lib/__tests__/fixtures/mock-backend-brightchain-member.d.ts.map +1 -1
  3. package/src/lib/__tests__/fixtures/mock-backend-brightchain-member.js +11 -0
  4. package/src/lib/__tests__/fixtures/mock-backend-brightchain-member.js.map +1 -1
  5. package/src/lib/__tests__/fixtures/mocked-model.js +63 -60
  6. package/src/lib/__tests__/fixtures/mocked-model.js.map +1 -1
  7. package/src/lib/application.d.ts +1 -1
  8. package/src/lib/application.d.ts.map +1 -1
  9. package/src/lib/application.js +113 -33
  10. package/src/lib/application.js.map +1 -1
  11. package/src/lib/auth/aclEnforcedAvailability.js +4 -0
  12. package/src/lib/auth/aclEnforcedAvailability.js.map +1 -1
  13. package/src/lib/auth/aclEnforcedBlockStore.js +7 -0
  14. package/src/lib/auth/aclEnforcedBlockStore.js.map +1 -1
  15. package/src/lib/auth/ecdsaNodeAuthenticator.js +1 -0
  16. package/src/lib/auth/ecdsaNodeAuthenticator.js.map +1 -1
  17. package/src/lib/auth/poolAclBootstrap.js +2 -0
  18. package/src/lib/auth/poolAclBootstrap.js.map +1 -1
  19. package/src/lib/auth/poolAclStore.js +2 -1
  20. package/src/lib/auth/poolAclStore.js.map +1 -1
  21. package/src/lib/auth/poolAclUpdater.js +4 -0
  22. package/src/lib/auth/poolAclUpdater.js.map +1 -1
  23. package/src/lib/availability/availabilityMetrics.js +43 -45
  24. package/src/lib/availability/availabilityMetrics.js.map +1 -1
  25. package/src/lib/availability/availabilityService.js +26 -20
  26. package/src/lib/availability/availabilityService.js.map +1 -1
  27. package/src/lib/availability/blockRegistry.js +46 -25
  28. package/src/lib/availability/blockRegistry.js.map +1 -1
  29. package/src/lib/availability/discoveryProtocol.js +10 -8
  30. package/src/lib/availability/discoveryProtocol.js.map +1 -1
  31. package/src/lib/availability/gossipService.js +56 -45
  32. package/src/lib/availability/gossipService.js.map +1 -1
  33. package/src/lib/availability/heartbeatMonitor.js +22 -20
  34. package/src/lib/availability/heartbeatMonitor.js.map +1 -1
  35. package/src/lib/availability/poolDiscoveryService.js +7 -1
  36. package/src/lib/availability/poolDiscoveryService.js.map +1 -1
  37. package/src/lib/availability/quorumGossipHandler.js +13 -6
  38. package/src/lib/availability/quorumGossipHandler.js.map +1 -1
  39. package/src/lib/availability/reconciliationService.js +18 -12
  40. package/src/lib/availability/reconciliationService.js.map +1 -1
  41. package/src/lib/blockFetch/blockFetcher.js +14 -8
  42. package/src/lib/blockFetch/blockFetcher.js.map +1 -1
  43. package/src/lib/blockFetch/fetchQueue.js +9 -7
  44. package/src/lib/blockFetch/fetchQueue.js.map +1 -1
  45. package/src/lib/blockFetch/httpBlockFetchTransport.js +2 -0
  46. package/src/lib/blockFetch/httpBlockFetchTransport.js.map +1 -1
  47. package/src/lib/browserKeyring.js +5 -2
  48. package/src/lib/browserKeyring.js.map +1 -1
  49. package/src/lib/controllers/api/blocks.d.ts.map +1 -1
  50. package/src/lib/controllers/api/blocks.js +9 -3
  51. package/src/lib/controllers/api/blocks.js.map +1 -1
  52. package/src/lib/controllers/api/brighthub/connectionController.d.ts +80 -0
  53. package/src/lib/controllers/api/brighthub/connectionController.d.ts.map +1 -0
  54. package/src/lib/controllers/api/brighthub/connectionController.js +890 -0
  55. package/src/lib/controllers/api/brighthub/connectionController.js.map +1 -0
  56. package/src/lib/controllers/api/brighthub/index.d.ts +9 -0
  57. package/src/lib/controllers/api/brighthub/index.d.ts.map +1 -0
  58. package/src/lib/controllers/api/brighthub/index.js +12 -0
  59. package/src/lib/controllers/api/brighthub/index.js.map +1 -0
  60. package/src/lib/controllers/api/brighthub/messagingController.d.ts +84 -0
  61. package/src/lib/controllers/api/brighthub/messagingController.d.ts.map +1 -0
  62. package/src/lib/controllers/api/brighthub/messagingController.js +1077 -0
  63. package/src/lib/controllers/api/brighthub/messagingController.js.map +1 -0
  64. package/src/lib/controllers/api/brighthub/notificationController.d.ts +89 -0
  65. package/src/lib/controllers/api/brighthub/notificationController.d.ts.map +1 -0
  66. package/src/lib/controllers/api/brighthub/notificationController.js +444 -0
  67. package/src/lib/controllers/api/brighthub/notificationController.js.map +1 -0
  68. package/src/lib/controllers/api/brighthub/postController.d.ts +75 -0
  69. package/src/lib/controllers/api/brighthub/postController.d.ts.map +1 -0
  70. package/src/lib/controllers/api/brighthub/postController.js +388 -0
  71. package/src/lib/controllers/api/brighthub/postController.js.map +1 -0
  72. package/src/lib/controllers/api/brighthub/timelineController.d.ts +74 -0
  73. package/src/lib/controllers/api/brighthub/timelineController.d.ts.map +1 -0
  74. package/src/lib/controllers/api/brighthub/timelineController.js +418 -0
  75. package/src/lib/controllers/api/brighthub/timelineController.js.map +1 -0
  76. package/src/lib/controllers/api/brightpass.d.ts.map +1 -1
  77. package/src/lib/controllers/api/brightpass.js +46 -4
  78. package/src/lib/controllers/api/brightpass.js.map +1 -1
  79. package/src/lib/controllers/api/cbl.js +1 -0
  80. package/src/lib/controllers/api/cbl.js.map +1 -1
  81. package/src/lib/controllers/api/channels.js +2 -2
  82. package/src/lib/controllers/api/channels.js.map +1 -1
  83. package/src/lib/controllers/api/conversations.js +1 -1
  84. package/src/lib/controllers/api/conversations.js.map +1 -1
  85. package/src/lib/controllers/api/docs.js +2 -1
  86. package/src/lib/controllers/api/docs.js.map +1 -1
  87. package/src/lib/controllers/api/emails.d.ts.map +1 -1
  88. package/src/lib/controllers/api/emails.js +16 -2
  89. package/src/lib/controllers/api/emails.js.map +1 -1
  90. package/src/lib/controllers/api/explodingMessages.js +2 -4
  91. package/src/lib/controllers/api/explodingMessages.js.map +1 -1
  92. package/src/lib/controllers/api/groups.js +2 -2
  93. package/src/lib/controllers/api/groups.js.map +1 -1
  94. package/src/lib/controllers/api/health.d.ts +9 -2
  95. package/src/lib/controllers/api/health.d.ts.map +1 -1
  96. package/src/lib/controllers/api/health.js +48 -6
  97. package/src/lib/controllers/api/health.js.map +1 -1
  98. package/src/lib/controllers/api/index.d.ts +1 -0
  99. package/src/lib/controllers/api/index.d.ts.map +1 -1
  100. package/src/lib/controllers/api/index.js +1 -0
  101. package/src/lib/controllers/api/index.js.map +1 -1
  102. package/src/lib/controllers/api/introspection.js +2 -0
  103. package/src/lib/controllers/api/introspection.js.map +1 -1
  104. package/src/lib/controllers/api/messages.js +1 -1
  105. package/src/lib/controllers/api/messages.js.map +1 -1
  106. package/src/lib/controllers/api/nodes.js +6 -6
  107. package/src/lib/controllers/api/nodes.js.map +1 -1
  108. package/src/lib/controllers/api/quorum.d.ts +1 -1
  109. package/src/lib/controllers/api/quorum.d.ts.map +1 -1
  110. package/src/lib/controllers/api/quorum.js +3 -2
  111. package/src/lib/controllers/api/quorum.js.map +1 -1
  112. package/src/lib/controllers/api/scbl.js +3 -0
  113. package/src/lib/controllers/api/scbl.js.map +1 -1
  114. package/src/lib/controllers/api/sessions.d.ts +18 -2
  115. package/src/lib/controllers/api/sessions.d.ts.map +1 -1
  116. package/src/lib/controllers/api/sessions.js +60 -3
  117. package/src/lib/controllers/api/sessions.js.map +1 -1
  118. package/src/lib/controllers/api/sync.js +4 -4
  119. package/src/lib/controllers/api/sync.js.map +1 -1
  120. package/src/lib/controllers/api/user.d.ts +2 -0
  121. package/src/lib/controllers/api/user.d.ts.map +1 -1
  122. package/src/lib/controllers/api/user.js +95 -3
  123. package/src/lib/controllers/api/user.js.map +1 -1
  124. package/src/lib/controllers/identity/deviceController.js +2 -2
  125. package/src/lib/controllers/identity/deviceController.js.map +1 -1
  126. package/src/lib/controllers/identity/directoryController.js +1 -1
  127. package/src/lib/controllers/identity/directoryController.js.map +1 -1
  128. package/src/lib/controllers/identity/identityProofController.js +4 -6
  129. package/src/lib/controllers/identity/identityProofController.js.map +1 -1
  130. package/src/lib/databaseInit.d.ts +3 -3
  131. package/src/lib/databaseInit.js +5 -5
  132. package/src/lib/databaseInit.js.map +1 -1
  133. package/src/lib/datastore/block-document-store.d.ts.map +1 -1
  134. package/src/lib/datastore/block-document-store.js +18 -6
  135. package/src/lib/datastore/block-document-store.js.map +1 -1
  136. package/src/lib/datastore/document-store.d.ts.map +1 -1
  137. package/src/lib/datastore/memory-document-store.js +5 -2
  138. package/src/lib/datastore/memory-document-store.js.map +1 -1
  139. package/src/lib/encryption/encryptedMetadataService.js +2 -0
  140. package/src/lib/encryption/encryptedMetadataService.js.map +1 -1
  141. package/src/lib/encryption/encryptionAwareReplication.js +3 -0
  142. package/src/lib/encryption/encryptionAwareReplication.js.map +1 -1
  143. package/src/lib/encryption/errors.d.ts.map +1 -1
  144. package/src/lib/encryption/errors.js +8 -0
  145. package/src/lib/encryption/errors.js.map +1 -1
  146. package/src/lib/encryption/poolKeyManager.js +2 -0
  147. package/src/lib/encryption/poolKeyManager.js.map +1 -1
  148. package/src/lib/environment.js +10 -0
  149. package/src/lib/environment.js.map +1 -1
  150. package/src/lib/errors/express-validation.js +1 -0
  151. package/src/lib/errors/express-validation.js.map +1 -1
  152. package/src/lib/errors/invalid-backup-code-version.js +1 -0
  153. package/src/lib/errors/invalid-backup-code-version.js.map +1 -1
  154. package/src/lib/errors/memberIndexSchemaValidationError.js +1 -0
  155. package/src/lib/errors/memberIndexSchemaValidationError.js.map +1 -1
  156. package/src/lib/errors/missing-validated-data.js +2 -0
  157. package/src/lib/errors/missing-validated-data.js.map +1 -1
  158. package/src/lib/errors/token-not-found.js +1 -0
  159. package/src/lib/errors/token-not-found.js.map +1 -1
  160. package/src/lib/errors/typed-error-local.js +3 -0
  161. package/src/lib/errors/typed-error-local.js.map +1 -1
  162. package/src/lib/interfaces/brightpass/index.d.ts +103 -0
  163. package/src/lib/interfaces/brightpass/index.d.ts.map +1 -0
  164. package/src/lib/interfaces/brightpass/index.js +11 -0
  165. package/src/lib/interfaces/brightpass/index.js.map +1 -0
  166. package/src/lib/interfaces/environment.d.ts +1 -1
  167. package/src/lib/interfaces/environment.d.ts.map +1 -1
  168. package/src/lib/interfaces/index.d.ts +1 -0
  169. package/src/lib/interfaces/index.d.ts.map +1 -1
  170. package/src/lib/interfaces/member/memberProfileResponse.d.ts.map +1 -1
  171. package/src/lib/interfaces/member/operational.d.ts.map +1 -1
  172. package/src/lib/interfaces/member-init-config.d.ts +1 -1
  173. package/src/lib/interfaces/member-init-config.d.ts.map +1 -1
  174. package/src/lib/interfaces/responses/api-backup-codes-response.d.ts.map +1 -1
  175. package/src/lib/interfaces/responses/api-challenge-response.d.ts.map +1 -1
  176. package/src/lib/interfaces/responses/api-code-count-response.d.ts.map +1 -1
  177. package/src/lib/interfaces/responses/api-detailed-health-response.d.ts.map +1 -1
  178. package/src/lib/interfaces/responses/api-discover-block-response.d.ts.map +1 -1
  179. package/src/lib/interfaces/responses/api-express-validation-error.d.ts.map +1 -1
  180. package/src/lib/interfaces/responses/api-get-block-response.d.ts.map +1 -1
  181. package/src/lib/interfaces/responses/api-get-node-response.d.ts.map +1 -1
  182. package/src/lib/interfaces/responses/api-health-response.d.ts.map +1 -1
  183. package/src/lib/interfaces/responses/api-list-nodes-response.d.ts.map +1 -1
  184. package/src/lib/interfaces/responses/api-login-response.d.ts.map +1 -1
  185. package/src/lib/interfaces/responses/api-members-response.d.ts.map +1 -1
  186. package/src/lib/interfaces/responses/api-mnemonic-response.d.ts.map +1 -1
  187. package/src/lib/interfaces/responses/api-reconcile-response.d.ts.map +1 -1
  188. package/src/lib/interfaces/responses/api-register-node-response.d.ts.map +1 -1
  189. package/src/lib/interfaces/responses/api-registration-response.d.ts.map +1 -1
  190. package/src/lib/interfaces/responses/api-replicate-block-response.d.ts.map +1 -1
  191. package/src/lib/interfaces/responses/api-request-user-response.d.ts.map +1 -1
  192. package/src/lib/interfaces/responses/api-store-block-response.d.ts.map +1 -1
  193. package/src/lib/interfaces/responses/api-store-cbl-response.d.ts.map +1 -1
  194. package/src/lib/interfaces/responses/api-sync-request-response.d.ts.map +1 -1
  195. package/src/lib/interfaces/responses/brighthub/api-connection-response.d.ts +21 -0
  196. package/src/lib/interfaces/responses/brighthub/api-connection-response.d.ts.map +1 -0
  197. package/src/lib/interfaces/responses/brighthub/api-connection-response.js +3 -0
  198. package/src/lib/interfaces/responses/brighthub/api-connection-response.js.map +1 -0
  199. package/src/lib/interfaces/responses/brighthub/api-messaging-response.d.ts +39 -0
  200. package/src/lib/interfaces/responses/brighthub/api-messaging-response.d.ts.map +1 -0
  201. package/src/lib/interfaces/responses/brighthub/api-messaging-response.js +3 -0
  202. package/src/lib/interfaces/responses/brighthub/api-messaging-response.js.map +1 -0
  203. package/src/lib/interfaces/responses/brighthub/api-notification-response.d.ts +30 -0
  204. package/src/lib/interfaces/responses/brighthub/api-notification-response.d.ts.map +1 -0
  205. package/src/lib/interfaces/responses/brighthub/api-notification-response.js +3 -0
  206. package/src/lib/interfaces/responses/brighthub/api-notification-response.js.map +1 -0
  207. package/src/lib/interfaces/responses/brighthub/api-post-response.d.ts +21 -0
  208. package/src/lib/interfaces/responses/brighthub/api-post-response.d.ts.map +1 -0
  209. package/src/lib/interfaces/responses/brighthub/api-post-response.js +3 -0
  210. package/src/lib/interfaces/responses/brighthub/api-post-response.js.map +1 -0
  211. package/src/lib/interfaces/responses/brighthub/api-timeline-response.d.ts +14 -0
  212. package/src/lib/interfaces/responses/brighthub/api-timeline-response.d.ts.map +1 -0
  213. package/src/lib/interfaces/responses/brighthub/api-timeline-response.js +3 -0
  214. package/src/lib/interfaces/responses/brighthub/api-timeline-response.js.map +1 -0
  215. package/src/lib/interfaces/responses/brighthub/api-user-profile-response.d.ts +10 -0
  216. package/src/lib/interfaces/responses/brighthub/api-user-profile-response.d.ts.map +1 -0
  217. package/src/lib/interfaces/responses/brighthub/api-user-profile-response.js +3 -0
  218. package/src/lib/interfaces/responses/brighthub/api-user-profile-response.js.map +1 -0
  219. package/src/lib/interfaces/responses/brighthub/index.d.ts +13 -0
  220. package/src/lib/interfaces/responses/brighthub/index.d.ts.map +1 -0
  221. package/src/lib/interfaces/responses/brighthub/index.js +9 -0
  222. package/src/lib/interfaces/responses/brighthub/index.js.map +1 -0
  223. package/src/lib/interfaces/responses/index.d.ts +1 -0
  224. package/src/lib/interfaces/responses/index.d.ts.map +1 -1
  225. package/src/lib/interfaces/storage/storedDocumentTypes.d.ts +1 -1
  226. package/src/lib/interfaces/storage/storedDocumentTypes.js +1 -1
  227. package/src/lib/interfaces/storage/userRoleSchema.d.ts.map +1 -1
  228. package/src/lib/interfaces/storage/userRoleSchema.js +1 -3
  229. package/src/lib/interfaces/storage/userRoleSchema.js.map +1 -1
  230. package/src/lib/middlewares.js +31 -31
  231. package/src/lib/middlewares.js.map +1 -1
  232. package/src/lib/nodeKeyring.js +2 -0
  233. package/src/lib/nodeKeyring.js.map +1 -1
  234. package/src/lib/plugins/brightchain-database-plugin.d.ts +14 -14
  235. package/src/lib/plugins/brightchain-database-plugin.d.ts.map +1 -1
  236. package/src/lib/plugins/brightchain-database-plugin.js +36 -34
  237. package/src/lib/plugins/brightchain-database-plugin.js.map +1 -1
  238. package/src/lib/routers/api.d.ts +63 -1
  239. package/src/lib/routers/api.d.ts.map +1 -1
  240. package/src/lib/routers/api.js +126 -2
  241. package/src/lib/routers/api.js.map +1 -1
  242. package/src/lib/routers/app.d.ts.map +1 -1
  243. package/src/lib/routers/app.js +10 -1
  244. package/src/lib/routers/app.js.map +1 -1
  245. package/src/lib/routers/base.js +2 -0
  246. package/src/lib/routers/base.js.map +1 -1
  247. package/src/lib/routers/index.d.ts +1 -0
  248. package/src/lib/routers/index.d.ts.map +1 -1
  249. package/src/lib/routers/index.js +1 -0
  250. package/src/lib/routers/index.js.map +1 -1
  251. package/src/lib/routers/testEmailRouter.d.ts +15 -0
  252. package/src/lib/routers/testEmailRouter.d.ts.map +1 -0
  253. package/src/lib/routers/testEmailRouter.js +34 -0
  254. package/src/lib/routers/testEmailRouter.js.map +1 -0
  255. package/src/lib/secureEnclaveKeyring.js +4 -2
  256. package/src/lib/secureEnclaveKeyring.js.map +1 -1
  257. package/src/lib/services/auth.d.ts.map +1 -1
  258. package/src/lib/services/auth.js +11 -2
  259. package/src/lib/services/auth.js.map +1 -1
  260. package/src/lib/services/base.js +1 -0
  261. package/src/lib/services/base.js.map +1 -1
  262. package/src/lib/services/blockServiceFactory.js +2 -0
  263. package/src/lib/services/blockServiceFactory.js.map +1 -1
  264. package/src/lib/services/blockStore.js +3 -2
  265. package/src/lib/services/blockStore.js.map +1 -1
  266. package/src/lib/services/blocks.js +1 -0
  267. package/src/lib/services/blocks.js.map +1 -1
  268. package/src/lib/services/brightChainBackupCodeService.d.ts +114 -0
  269. package/src/lib/services/brightChainBackupCodeService.d.ts.map +1 -0
  270. package/src/lib/services/brightChainBackupCodeService.js +303 -0
  271. package/src/lib/services/brightChainBackupCodeService.js.map +1 -0
  272. package/src/lib/services/brightchain-authentication-provider.d.ts.map +1 -1
  273. package/src/lib/services/brightchain-authentication-provider.js +40 -9
  274. package/src/lib/services/brightchain-authentication-provider.js.map +1 -1
  275. package/src/lib/services/brightchain-member-init.service.d.ts +17 -17
  276. package/src/lib/services/brightchain-member-init.service.d.ts.map +1 -1
  277. package/src/lib/services/brightchain-member-init.service.js +12 -9
  278. package/src/lib/services/brightchain-member-init.service.js.map +1 -1
  279. package/src/lib/services/brighthub/connectionService.d.ts +286 -0
  280. package/src/lib/services/brighthub/connectionService.d.ts.map +1 -0
  281. package/src/lib/services/brighthub/connectionService.js +1887 -0
  282. package/src/lib/services/brighthub/connectionService.js.map +1 -0
  283. package/src/lib/services/brighthub/discoveryService.d.ts +110 -0
  284. package/src/lib/services/brighthub/discoveryService.d.ts.map +1 -0
  285. package/src/lib/services/brighthub/discoveryService.js +528 -0
  286. package/src/lib/services/brighthub/discoveryService.js.map +1 -0
  287. package/src/lib/services/brighthub/feedService.d.ts +141 -0
  288. package/src/lib/services/brighthub/feedService.d.ts.map +1 -0
  289. package/src/lib/services/brighthub/feedService.js +418 -0
  290. package/src/lib/services/brighthub/feedService.js.map +1 -0
  291. package/src/lib/services/brighthub/index.d.ts +11 -0
  292. package/src/lib/services/brighthub/index.d.ts.map +1 -0
  293. package/src/lib/services/brighthub/index.js +14 -0
  294. package/src/lib/services/brighthub/index.js.map +1 -0
  295. package/src/lib/services/brighthub/messagingService.d.ts +109 -0
  296. package/src/lib/services/brighthub/messagingService.d.ts.map +1 -0
  297. package/src/lib/services/brighthub/messagingService.js +947 -0
  298. package/src/lib/services/brighthub/messagingService.js.map +1 -0
  299. package/src/lib/services/brighthub/messagingService.test-helpers.d.ts +75 -0
  300. package/src/lib/services/brighthub/messagingService.test-helpers.d.ts.map +1 -0
  301. package/src/lib/services/brighthub/messagingService.test-helpers.js +237 -0
  302. package/src/lib/services/brighthub/messagingService.test-helpers.js.map +1 -0
  303. package/src/lib/services/brighthub/notificationService.d.ts +172 -0
  304. package/src/lib/services/brighthub/notificationService.d.ts.map +1 -0
  305. package/src/lib/services/brighthub/notificationService.js +768 -0
  306. package/src/lib/services/brighthub/notificationService.js.map +1 -0
  307. package/src/lib/services/brighthub/notificationService.test-helpers.d.ts +75 -0
  308. package/src/lib/services/brighthub/notificationService.test-helpers.d.ts.map +1 -0
  309. package/src/lib/services/brighthub/notificationService.test-helpers.js +230 -0
  310. package/src/lib/services/brighthub/notificationService.test-helpers.js.map +1 -0
  311. package/src/lib/services/brighthub/postService.d.ts +129 -0
  312. package/src/lib/services/brighthub/postService.d.ts.map +1 -0
  313. package/src/lib/services/brighthub/postService.js +470 -0
  314. package/src/lib/services/brighthub/postService.js.map +1 -0
  315. package/src/lib/services/brighthub/postService.test-helpers.d.ts +40 -0
  316. package/src/lib/services/brighthub/postService.test-helpers.d.ts.map +1 -0
  317. package/src/lib/services/brighthub/postService.test-helpers.js +84 -0
  318. package/src/lib/services/brighthub/postService.test-helpers.js.map +1 -0
  319. package/src/lib/services/brighthub/textFormatter.d.ts +64 -0
  320. package/src/lib/services/brighthub/textFormatter.d.ts.map +1 -0
  321. package/src/lib/services/brighthub/textFormatter.js +256 -0
  322. package/src/lib/services/brighthub/textFormatter.js.map +1 -0
  323. package/src/lib/services/brighthub/threadService.d.ts +79 -0
  324. package/src/lib/services/brighthub/threadService.d.ts.map +1 -0
  325. package/src/lib/services/brighthub/threadService.js +246 -0
  326. package/src/lib/services/brighthub/threadService.js.map +1 -0
  327. package/src/lib/services/brighthub/userProfileService.d.ts +203 -0
  328. package/src/lib/services/brighthub/userProfileService.d.ts.map +1 -0
  329. package/src/lib/services/brighthub/userProfileService.js +868 -0
  330. package/src/lib/services/brighthub/userProfileService.js.map +1 -0
  331. package/src/lib/services/brighthub/userProfileService.test-helpers.d.ts +86 -0
  332. package/src/lib/services/brighthub/userProfileService.test-helpers.d.ts.map +1 -0
  333. package/src/lib/services/brighthub/userProfileService.test-helpers.js +169 -0
  334. package/src/lib/services/brighthub/userProfileService.test-helpers.js.map +1 -0
  335. package/src/lib/services/brighthub/webSocketServer.d.ts +68 -0
  336. package/src/lib/services/brighthub/webSocketServer.d.ts.map +1 -0
  337. package/src/lib/services/brighthub/webSocketServer.js +194 -0
  338. package/src/lib/services/brighthub/webSocketServer.js.map +1 -0
  339. package/src/lib/services/brightpass/auditLogger.js +10 -5
  340. package/src/lib/services/brightpass/auditLogger.js.map +1 -1
  341. package/src/lib/services/brightpass/vaultEncryption.js +8 -8
  342. package/src/lib/services/brightpass/vaultEncryption.js.map +1 -1
  343. package/src/lib/services/brightpass.js +16 -8
  344. package/src/lib/services/brightpass.js.map +1 -1
  345. package/src/lib/services/cliOperatorPrompt.js +5 -2
  346. package/src/lib/services/cliOperatorPrompt.js.map +1 -1
  347. package/src/lib/services/clientWebSocketServer.d.ts +69 -4
  348. package/src/lib/services/clientWebSocketServer.d.ts.map +1 -1
  349. package/src/lib/services/clientWebSocketServer.js +188 -10
  350. package/src/lib/services/clientWebSocketServer.js.map +1 -1
  351. package/src/lib/services/contentAwareBlocksService.js +2 -0
  352. package/src/lib/services/contentAwareBlocksService.js.map +1 -1
  353. package/src/lib/services/contentIngestionService.d.ts.map +1 -1
  354. package/src/lib/services/contentIngestionService.js +2 -0
  355. package/src/lib/services/contentIngestionService.js.map +1 -1
  356. package/src/lib/services/diskQuorumService.js +3 -0
  357. package/src/lib/services/diskQuorumService.js.map +1 -1
  358. package/src/lib/services/email.js +5 -0
  359. package/src/lib/services/email.js.map +1 -1
  360. package/src/lib/services/eventNotificationSystem.d.ts +51 -10
  361. package/src/lib/services/eventNotificationSystem.d.ts.map +1 -1
  362. package/src/lib/services/eventNotificationSystem.js +76 -23
  363. package/src/lib/services/eventNotificationSystem.js.map +1 -1
  364. package/src/lib/services/expirationScheduler.js +6 -3
  365. package/src/lib/services/expirationScheduler.js.map +1 -1
  366. package/src/lib/services/fakeEmailService.d.ts +68 -0
  367. package/src/lib/services/fakeEmailService.d.ts.map +1 -0
  368. package/src/lib/services/fakeEmailService.js +110 -0
  369. package/src/lib/services/fakeEmailService.js.map +1 -0
  370. package/src/lib/services/fec.js +1 -3
  371. package/src/lib/services/fec.js.map +1 -1
  372. package/src/lib/services/fecServiceFactory.js +2 -2
  373. package/src/lib/services/fecServiceFactory.js.map +1 -1
  374. package/src/lib/services/fecUsageExample.js +1 -3
  375. package/src/lib/services/fecUsageExample.js.map +1 -1
  376. package/src/lib/services/identityExpirationScheduler.d.ts.map +1 -1
  377. package/src/lib/services/identityExpirationScheduler.js +7 -2
  378. package/src/lib/services/identityExpirationScheduler.js.map +1 -1
  379. package/src/lib/services/index.d.ts +3 -1
  380. package/src/lib/services/index.d.ts.map +1 -1
  381. package/src/lib/services/index.js +3 -1
  382. package/src/lib/services/index.js.map +1 -1
  383. package/src/lib/services/messageEventsWebSocketHandler.js +1 -0
  384. package/src/lib/services/messageEventsWebSocketHandler.js.map +1 -1
  385. package/src/lib/services/messagePassingService.js +5 -0
  386. package/src/lib/services/messagePassingService.js.map +1 -1
  387. package/src/lib/services/nativeRsFecService.js +3 -5
  388. package/src/lib/services/nativeRsFecService.js.map +1 -1
  389. package/src/lib/services/presenceService.js +5 -4
  390. package/src/lib/services/presenceService.js.map +1 -1
  391. package/src/lib/services/quorum.js +3 -2
  392. package/src/lib/services/quorum.js.map +1 -1
  393. package/src/lib/services/quorumDatabaseAdapter.d.ts +5 -5
  394. package/src/lib/services/quorumDatabaseAdapter.d.ts.map +1 -1
  395. package/src/lib/services/quorumDatabaseAdapter.js +5 -3
  396. package/src/lib/services/quorumDatabaseAdapter.js.map +1 -1
  397. package/src/lib/services/rbac-input-builder.js +5 -0
  398. package/src/lib/services/rbac-input-builder.js.map +1 -1
  399. package/src/lib/services/secureKeyStorage.js +3 -0
  400. package/src/lib/services/secureKeyStorage.js.map +1 -1
  401. package/src/lib/services/sessionAdapter.d.ts +4 -4
  402. package/src/lib/services/sessionAdapter.d.ts.map +1 -1
  403. package/src/lib/services/sessionAdapter.js +3 -2
  404. package/src/lib/services/sessionAdapter.js.map +1 -1
  405. package/src/lib/services/webSocketMessageServer.js +7 -4
  406. package/src/lib/services/webSocketMessageServer.js.map +1 -1
  407. package/src/lib/services/webSocketPeerProvider.js +2 -1
  408. package/src/lib/services/webSocketPeerProvider.js.map +1 -1
  409. package/src/lib/services/websocketHandler.js +9 -1
  410. package/src/lib/services/websocketHandler.js.map +1 -1
  411. package/src/lib/shared-types.d.ts +1 -2
  412. package/src/lib/shared-types.d.ts.map +1 -1
  413. package/src/lib/stores/__tests__/helpers/mockCloudBlockStore.d.ts +63 -0
  414. package/src/lib/stores/__tests__/helpers/mockCloudBlockStore.d.ts.map +1 -0
  415. package/src/lib/stores/__tests__/helpers/mockCloudBlockStore.js +160 -0
  416. package/src/lib/stores/__tests__/helpers/mockCloudBlockStore.js.map +1 -0
  417. package/src/lib/stores/availabilityAwareBlockStore.js +34 -5
  418. package/src/lib/stores/availabilityAwareBlockStore.js.map +1 -1
  419. package/src/lib/stores/cloudBlockStoreBase.d.ts +121 -0
  420. package/src/lib/stores/cloudBlockStoreBase.d.ts.map +1 -0
  421. package/src/lib/stores/cloudBlockStoreBase.js +1165 -0
  422. package/src/lib/stores/cloudBlockStoreBase.js.map +1 -0
  423. package/src/lib/stores/diskBlockAsyncStore.js +9 -5
  424. package/src/lib/stores/diskBlockAsyncStore.js.map +1 -1
  425. package/src/lib/stores/diskBlockMetadataStore.js +2 -0
  426. package/src/lib/stores/diskBlockMetadataStore.js.map +1 -1
  427. package/src/lib/stores/diskBlockStore.js +10 -8
  428. package/src/lib/stores/diskBlockStore.js.map +1 -1
  429. package/src/lib/stores/diskCBLStore.d.ts.map +1 -1
  430. package/src/lib/stores/diskCBLStore.js +8 -0
  431. package/src/lib/stores/diskCBLStore.js.map +1 -1
  432. package/src/lib/stores/index.d.ts +1 -0
  433. package/src/lib/stores/index.d.ts.map +1 -1
  434. package/src/lib/stores/index.js +1 -0
  435. package/src/lib/stores/index.js.map +1 -1
  436. package/src/lib/systemKeyring.d.ts.map +1 -1
  437. package/src/lib/systemKeyring.js +5 -4
  438. package/src/lib/systemKeyring.js.map +1 -1
  439. package/src/lib/transforms/checksumTransform.js +1 -0
  440. package/src/lib/transforms/checksumTransform.js.map +1 -1
  441. package/src/lib/transforms/memoryWritableStream.js +1 -0
  442. package/src/lib/transforms/memoryWritableStream.js.map +1 -1
  443. package/src/lib/transforms/xorMultipleTransform.js +3 -0
  444. package/src/lib/transforms/xorMultipleTransform.js.map +1 -1
  445. package/src/lib/utils/rehydration.d.ts +1 -1
  446. package/src/lib/utils/rehydration.js +1 -1
  447. package/src/lib/utils/serialization.d.ts +1 -1
  448. package/src/lib/utils/serialization.js +1 -1
  449. package/src/lib/services/backupCodeService.d.ts +0 -35
  450. package/src/lib/services/backupCodeService.d.ts.map +0 -1
  451. package/src/lib/services/backupCodeService.js +0 -109
  452. package/src/lib/services/backupCodeService.js.map +0 -1
@@ -0,0 +1,75 @@
1
+ import { IPostService } from '@brightchain/brighthub-lib';
2
+ import { CoreLanguageCode } from '@digitaldefiance/i18n-lib';
3
+ import { PlatformID } from '@digitaldefiance/node-ecies-lib';
4
+ import { ApiErrorResponse, ApiRequestHandler, IApiMessageResponse, TypedHandlers } from '@digitaldefiance/node-express-suite';
5
+ import { IBrightChainApplication } from '../../../interfaces/application';
6
+ import { IPostApiResponse, IPostListApiResponse } from '../../../interfaces/responses/brighthub';
7
+ import { DefaultBackendIdType } from '../../../shared-types';
8
+ import { BaseController } from '../../base';
9
+ type PostApiResponseType = IPostApiResponse | IPostListApiResponse | IApiMessageResponse | ApiErrorResponse;
10
+ interface IPostHandlers extends TypedHandlers {
11
+ createPost: ApiRequestHandler<IPostApiResponse | ApiErrorResponse>;
12
+ getPost: ApiRequestHandler<IPostApiResponse | ApiErrorResponse>;
13
+ deletePost: ApiRequestHandler<IApiMessageResponse | ApiErrorResponse>;
14
+ likePost: ApiRequestHandler<IApiMessageResponse | ApiErrorResponse>;
15
+ unlikePost: ApiRequestHandler<IApiMessageResponse | ApiErrorResponse>;
16
+ repostPost: ApiRequestHandler<IPostApiResponse | ApiErrorResponse>;
17
+ createQuotePost: ApiRequestHandler<IPostApiResponse | ApiErrorResponse>;
18
+ editPost: ApiRequestHandler<IPostApiResponse | ApiErrorResponse>;
19
+ }
20
+ /**
21
+ * Controller for BrightHub post operations.
22
+ *
23
+ * Provides REST API endpoints for creating, retrieving, editing, deleting posts,
24
+ * and managing post interactions (likes, reposts, quotes).
25
+ *
26
+ * @requirements 11.1-11.5
27
+ */
28
+ export declare class BrightHubPostController<TID extends PlatformID = DefaultBackendIdType> extends BaseController<TID, PostApiResponseType, IPostHandlers, CoreLanguageCode> {
29
+ private postService;
30
+ constructor(application: IBrightChainApplication<TID>);
31
+ setPostService(service: IPostService): void;
32
+ private getPostService;
33
+ protected initRouteDefinitions(): void;
34
+ private mapPostServiceError;
35
+ /**
36
+ * POST /api/brighthub/posts
37
+ * @requirements 11.1
38
+ */
39
+ private handleCreatePost;
40
+ /**
41
+ * GET /api/brighthub/posts/:id
42
+ * @requirements 11.2
43
+ */
44
+ private handleGetPost;
45
+ /**
46
+ * PUT /api/brighthub/posts/:id
47
+ * @requirements 11.1
48
+ */
49
+ private handleEditPost;
50
+ /**
51
+ * DELETE /api/brighthub/posts/:id
52
+ * @requirements 11.3
53
+ */
54
+ private handleDeletePost;
55
+ /**
56
+ * POST /api/brighthub/posts/:id/like
57
+ * @requirements 11.4
58
+ */
59
+ private handleLikePost;
60
+ /**
61
+ * DELETE /api/brighthub/posts/:id/like
62
+ */
63
+ private handleUnlikePost;
64
+ /**
65
+ * POST /api/brighthub/posts/:id/repost
66
+ * @requirements 11.5
67
+ */
68
+ private handleRepostPost;
69
+ /**
70
+ * POST /api/brighthub/posts/:id/quote
71
+ */
72
+ private handleCreateQuotePost;
73
+ }
74
+ export {};
75
+ //# sourceMappingURL=postController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postController.d.ts","sourceRoot":"","sources":["../../../../../../../brightchain-api-lib/src/lib/controllers/api/brighthub/postController.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EAGb,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EAEjB,mBAAmB,EACnB,aAAa,EAEd,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACrB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAO7D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,KAAK,mBAAmB,GACpB,gBAAgB,GAChB,oBAAoB,GACpB,mBAAmB,GACnB,gBAAgB,CAAC;AAErB,UAAU,aAAc,SAAQ,aAAa;IAC3C,UAAU,EAAE,iBAAiB,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,CAAC;IACnE,OAAO,EAAE,iBAAiB,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,CAAC;IAChE,UAAU,EAAE,iBAAiB,CAAC,mBAAmB,GAAG,gBAAgB,CAAC,CAAC;IACtE,QAAQ,EAAE,iBAAiB,CAAC,mBAAmB,GAAG,gBAAgB,CAAC,CAAC;IACpE,UAAU,EAAE,iBAAiB,CAAC,mBAAmB,GAAG,gBAAgB,CAAC,CAAC;IACtE,UAAU,EAAE,iBAAiB,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,CAAC;IACnE,eAAe,EAAE,iBAAiB,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,CAAC;IACxE,QAAQ,EAAE,iBAAiB,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,CAAC;CAClE;AAED;;;;;;;GAOG;AACH,qBAAa,uBAAuB,CAClC,GAAG,SAAS,UAAU,GAAG,oBAAoB,CAC7C,SAAQ,cAAc,CACtB,GAAG,EACH,mBAAmB,EACnB,aAAa,EACb,gBAAgB,CACjB;IACC,OAAO,CAAC,WAAW,CAA6B;gBAEpC,WAAW,EAAE,uBAAuB,CAAC,GAAG,CAAC;IAI9C,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAIlD,OAAO,CAAC,cAAc;IAOtB,SAAS,CAAC,oBAAoB,IAAI,IAAI;IAuItC,OAAO,CAAC,mBAAmB;IA2B3B;;;OAGG;YACW,gBAAgB;IAuC9B;;;OAGG;YACW,aAAa;IAqB3B;;;OAGG;YACW,cAAc;IA+B5B;;;OAGG;YACW,gBAAgB;IA0B9B;;;OAGG;YACW,cAAc;IA0B5B;;OAEG;YACW,gBAAgB;IA0B9B;;;OAGG;YACW,gBAAgB;IA0B9B;;OAEG;YACW,qBAAqB;CA8BpC"}
@@ -0,0 +1,388 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BrightHubPostController = void 0;
4
+ const brighthub_lib_1 = require("@brightchain/brighthub-lib");
5
+ const node_express_suite_1 = require("@digitaldefiance/node-express-suite");
6
+ const errorResponse_1 = require("../../../utils/errorResponse");
7
+ const base_1 = require("../../base");
8
+ /**
9
+ * Controller for BrightHub post operations.
10
+ *
11
+ * Provides REST API endpoints for creating, retrieving, editing, deleting posts,
12
+ * and managing post interactions (likes, reposts, quotes).
13
+ *
14
+ * @requirements 11.1-11.5
15
+ */
16
+ class BrightHubPostController extends base_1.BaseController {
17
+ postService = null;
18
+ constructor(application) {
19
+ super(application);
20
+ }
21
+ setPostService(service) {
22
+ this.postService = service;
23
+ }
24
+ getPostService() {
25
+ if (!this.postService) {
26
+ throw new Error('PostService not initialized');
27
+ }
28
+ return this.postService;
29
+ }
30
+ initRouteDefinitions() {
31
+ this.routeDefinitions = [
32
+ (0, node_express_suite_1.routeConfig)('post', '/', {
33
+ handlerKey: 'createPost',
34
+ useAuthentication: false,
35
+ useCryptoAuthentication: false,
36
+ openapi: {
37
+ summary: 'Create a new post',
38
+ description: 'Create a new post with optional media attachments and hub restrictions.',
39
+ tags: ['BrightHub Posts'],
40
+ responses: {
41
+ 201: {
42
+ schema: 'PostResponse',
43
+ description: 'Post created successfully',
44
+ },
45
+ 400: { schema: 'ErrorResponse', description: 'Validation error' },
46
+ },
47
+ },
48
+ }),
49
+ (0, node_express_suite_1.routeConfig)('get', '/:id', {
50
+ handlerKey: 'getPost',
51
+ useAuthentication: false,
52
+ useCryptoAuthentication: false,
53
+ openapi: {
54
+ summary: 'Get a single post',
55
+ description: 'Retrieve a post by its ID.',
56
+ tags: ['BrightHub Posts'],
57
+ responses: {
58
+ 200: { schema: 'PostResponse', description: 'Post retrieved' },
59
+ 404: { schema: 'ErrorResponse', description: 'Post not found' },
60
+ },
61
+ },
62
+ }),
63
+ (0, node_express_suite_1.routeConfig)('put', '/:id', {
64
+ handlerKey: 'editPost',
65
+ useAuthentication: false,
66
+ useCryptoAuthentication: false,
67
+ openapi: {
68
+ summary: 'Edit a post',
69
+ description: 'Edit a post within the 15-minute edit window.',
70
+ tags: ['BrightHub Posts'],
71
+ responses: {
72
+ 200: { schema: 'PostResponse', description: 'Post updated' },
73
+ 400: { schema: 'ErrorResponse', description: 'Validation error' },
74
+ 403: {
75
+ schema: 'ErrorResponse',
76
+ description: 'Not authorized or edit window expired',
77
+ },
78
+ },
79
+ },
80
+ }),
81
+ (0, node_express_suite_1.routeConfig)('delete', '/:id', {
82
+ handlerKey: 'deletePost',
83
+ useAuthentication: false,
84
+ useCryptoAuthentication: false,
85
+ openapi: {
86
+ summary: 'Delete a post',
87
+ description: 'Soft-delete a post and cascade to interactions.',
88
+ tags: ['BrightHub Posts'],
89
+ responses: {
90
+ 204: { schema: 'EmptyResponse', description: 'Post deleted' },
91
+ 403: { schema: 'ErrorResponse', description: 'Not authorized' },
92
+ },
93
+ },
94
+ }),
95
+ (0, node_express_suite_1.routeConfig)('post', '/:id/like', {
96
+ handlerKey: 'likePost',
97
+ useAuthentication: false,
98
+ useCryptoAuthentication: false,
99
+ openapi: {
100
+ summary: 'Like a post',
101
+ tags: ['BrightHub Posts'],
102
+ responses: {
103
+ 200: { schema: 'MessageResponse', description: 'Post liked' },
104
+ 404: { schema: 'ErrorResponse', description: 'Post not found' },
105
+ },
106
+ },
107
+ }),
108
+ (0, node_express_suite_1.routeConfig)('delete', '/:id/like', {
109
+ handlerKey: 'unlikePost',
110
+ useAuthentication: false,
111
+ useCryptoAuthentication: false,
112
+ openapi: {
113
+ summary: 'Unlike a post',
114
+ tags: ['BrightHub Posts'],
115
+ responses: {
116
+ 200: { schema: 'MessageResponse', description: 'Post unliked' },
117
+ },
118
+ },
119
+ }),
120
+ (0, node_express_suite_1.routeConfig)('post', '/:id/repost', {
121
+ handlerKey: 'repostPost',
122
+ useAuthentication: false,
123
+ useCryptoAuthentication: false,
124
+ openapi: {
125
+ summary: 'Repost a post',
126
+ tags: ['BrightHub Posts'],
127
+ responses: {
128
+ 201: { schema: 'PostResponse', description: 'Repost created' },
129
+ },
130
+ },
131
+ }),
132
+ (0, node_express_suite_1.routeConfig)('post', '/:id/quote', {
133
+ handlerKey: 'createQuotePost',
134
+ useAuthentication: false,
135
+ useCryptoAuthentication: false,
136
+ openapi: {
137
+ summary: 'Create a quote post',
138
+ tags: ['BrightHub Posts'],
139
+ responses: {
140
+ 201: { schema: 'PostResponse', description: 'Quote post created' },
141
+ },
142
+ },
143
+ }),
144
+ ];
145
+ node_express_suite_1.ControllerRegistry.register('/brighthub/posts', 'BrightHubPostController', this.routeDefinitions);
146
+ this.handlers = {
147
+ createPost: this.handleCreatePost.bind(this),
148
+ getPost: this.handleGetPost.bind(this),
149
+ editPost: this.handleEditPost.bind(this),
150
+ deletePost: this.handleDeletePost.bind(this),
151
+ likePost: this.handleLikePost.bind(this),
152
+ unlikePost: this.handleUnlikePost.bind(this),
153
+ repostPost: this.handleRepostPost.bind(this),
154
+ createQuotePost: this.handleCreateQuotePost.bind(this),
155
+ };
156
+ }
157
+ mapPostServiceError(error) {
158
+ switch (error.code) {
159
+ case brighthub_lib_1.PostErrorCode.EmptyContent:
160
+ case brighthub_lib_1.PostErrorCode.ContentTooLong:
161
+ case brighthub_lib_1.PostErrorCode.TooManyAttachments:
162
+ case brighthub_lib_1.PostErrorCode.AttachmentSizeTooLarge:
163
+ case brighthub_lib_1.PostErrorCode.InvalidMediaFormat:
164
+ return (0, errorResponse_1.validationError)(error.message);
165
+ case brighthub_lib_1.PostErrorCode.PostNotFound:
166
+ case brighthub_lib_1.PostErrorCode.QuotedPostNotFound:
167
+ case brighthub_lib_1.PostErrorCode.ParentPostNotFound:
168
+ return (0, errorResponse_1.notFoundError)('Post', 'unknown');
169
+ case brighthub_lib_1.PostErrorCode.Unauthorized:
170
+ case brighthub_lib_1.PostErrorCode.EditWindowExpired:
171
+ return (0, errorResponse_1.forbiddenError)(error.message);
172
+ case brighthub_lib_1.PostErrorCode.AlreadyLiked:
173
+ case brighthub_lib_1.PostErrorCode.NotLiked:
174
+ case brighthub_lib_1.PostErrorCode.AlreadyReposted:
175
+ case brighthub_lib_1.PostErrorCode.AlreadyDeleted:
176
+ return (0, errorResponse_1.validationError)(error.message);
177
+ default:
178
+ return (0, errorResponse_1.handleError)(error);
179
+ }
180
+ }
181
+ /**
182
+ * POST /api/brighthub/posts
183
+ * @requirements 11.1
184
+ */
185
+ async handleCreatePost(req) {
186
+ try {
187
+ const { authorId, content, parentPostId, mediaAttachments, hubIds } = req.body;
188
+ if (!authorId)
189
+ return (0, errorResponse_1.validationError)('Missing required field: authorId');
190
+ if (content === undefined || content === null)
191
+ return (0, errorResponse_1.validationError)('Missing required field: content');
192
+ const options = {};
193
+ if (parentPostId)
194
+ options.parentPostId = parentPostId;
195
+ if (mediaAttachments)
196
+ options.mediaAttachments = mediaAttachments;
197
+ if (hubIds)
198
+ options.hubIds = hubIds;
199
+ const service = this.getPostService();
200
+ const post = await service.createPost(authorId, content, options);
201
+ return {
202
+ statusCode: 201,
203
+ response: { message: 'Post created', data: post },
204
+ };
205
+ }
206
+ catch (error) {
207
+ if (error instanceof brighthub_lib_1.PostServiceError)
208
+ return this.mapPostServiceError(error);
209
+ return (0, errorResponse_1.handleError)(error);
210
+ }
211
+ }
212
+ /**
213
+ * GET /api/brighthub/posts/:id
214
+ * @requirements 11.2
215
+ */
216
+ async handleGetPost(req) {
217
+ try {
218
+ const { id } = req.params;
219
+ if (!id)
220
+ return (0, errorResponse_1.validationError)('Missing required parameter: id');
221
+ const service = this.getPostService();
222
+ const post = await service.getPost(id);
223
+ return {
224
+ statusCode: 200,
225
+ response: { message: 'OK', data: post },
226
+ };
227
+ }
228
+ catch (error) {
229
+ if (error instanceof brighthub_lib_1.PostServiceError)
230
+ return this.mapPostServiceError(error);
231
+ return (0, errorResponse_1.handleError)(error);
232
+ }
233
+ }
234
+ /**
235
+ * PUT /api/brighthub/posts/:id
236
+ * @requirements 11.1
237
+ */
238
+ async handleEditPost(req) {
239
+ try {
240
+ const { id } = req.params;
241
+ const { userId, content } = req.body;
242
+ if (!id)
243
+ return (0, errorResponse_1.validationError)('Missing required parameter: id');
244
+ if (!userId)
245
+ return (0, errorResponse_1.validationError)('Missing required field: userId');
246
+ if (content === undefined || content === null)
247
+ return (0, errorResponse_1.validationError)('Missing required field: content');
248
+ const service = this.getPostService();
249
+ const post = await service.editPost(id, userId, content);
250
+ return {
251
+ statusCode: 200,
252
+ response: { message: 'Post updated', data: post },
253
+ };
254
+ }
255
+ catch (error) {
256
+ if (error instanceof brighthub_lib_1.PostServiceError)
257
+ return this.mapPostServiceError(error);
258
+ return (0, errorResponse_1.handleError)(error);
259
+ }
260
+ }
261
+ /**
262
+ * DELETE /api/brighthub/posts/:id
263
+ * @requirements 11.3
264
+ */
265
+ async handleDeletePost(req) {
266
+ try {
267
+ const { id } = req.params;
268
+ const { userId } = req.body;
269
+ if (!id)
270
+ return (0, errorResponse_1.validationError)('Missing required parameter: id');
271
+ if (!userId)
272
+ return (0, errorResponse_1.validationError)('Missing required field: userId');
273
+ const service = this.getPostService();
274
+ await service.deletePost(id, userId);
275
+ return {
276
+ statusCode: 204,
277
+ response: { message: 'Post deleted' },
278
+ };
279
+ }
280
+ catch (error) {
281
+ if (error instanceof brighthub_lib_1.PostServiceError)
282
+ return this.mapPostServiceError(error);
283
+ return (0, errorResponse_1.handleError)(error);
284
+ }
285
+ }
286
+ /**
287
+ * POST /api/brighthub/posts/:id/like
288
+ * @requirements 11.4
289
+ */
290
+ async handleLikePost(req) {
291
+ try {
292
+ const { id } = req.params;
293
+ const { userId } = req.body;
294
+ if (!id)
295
+ return (0, errorResponse_1.validationError)('Missing required parameter: id');
296
+ if (!userId)
297
+ return (0, errorResponse_1.validationError)('Missing required field: userId');
298
+ const service = this.getPostService();
299
+ await service.likePost(id, userId);
300
+ return {
301
+ statusCode: 200,
302
+ response: { message: 'Post liked' },
303
+ };
304
+ }
305
+ catch (error) {
306
+ if (error instanceof brighthub_lib_1.PostServiceError)
307
+ return this.mapPostServiceError(error);
308
+ return (0, errorResponse_1.handleError)(error);
309
+ }
310
+ }
311
+ /**
312
+ * DELETE /api/brighthub/posts/:id/like
313
+ */
314
+ async handleUnlikePost(req) {
315
+ try {
316
+ const { id } = req.params;
317
+ const { userId } = req.body;
318
+ if (!id)
319
+ return (0, errorResponse_1.validationError)('Missing required parameter: id');
320
+ if (!userId)
321
+ return (0, errorResponse_1.validationError)('Missing required field: userId');
322
+ const service = this.getPostService();
323
+ await service.unlikePost(id, userId);
324
+ return {
325
+ statusCode: 200,
326
+ response: { message: 'Post unliked' },
327
+ };
328
+ }
329
+ catch (error) {
330
+ if (error instanceof brighthub_lib_1.PostServiceError)
331
+ return this.mapPostServiceError(error);
332
+ return (0, errorResponse_1.handleError)(error);
333
+ }
334
+ }
335
+ /**
336
+ * POST /api/brighthub/posts/:id/repost
337
+ * @requirements 11.5
338
+ */
339
+ async handleRepostPost(req) {
340
+ try {
341
+ const { id } = req.params;
342
+ const { userId } = req.body;
343
+ if (!id)
344
+ return (0, errorResponse_1.validationError)('Missing required parameter: id');
345
+ if (!userId)
346
+ return (0, errorResponse_1.validationError)('Missing required field: userId');
347
+ const service = this.getPostService();
348
+ const repost = await service.repostPost(id, userId);
349
+ return {
350
+ statusCode: 201,
351
+ response: { message: 'Repost created', data: repost },
352
+ };
353
+ }
354
+ catch (error) {
355
+ if (error instanceof brighthub_lib_1.PostServiceError)
356
+ return this.mapPostServiceError(error);
357
+ return (0, errorResponse_1.handleError)(error);
358
+ }
359
+ }
360
+ /**
361
+ * POST /api/brighthub/posts/:id/quote
362
+ */
363
+ async handleCreateQuotePost(req) {
364
+ try {
365
+ const { id } = req.params;
366
+ const { userId, commentary } = req.body;
367
+ if (!id)
368
+ return (0, errorResponse_1.validationError)('Missing required parameter: id');
369
+ if (!userId)
370
+ return (0, errorResponse_1.validationError)('Missing required field: userId');
371
+ if (!commentary)
372
+ return (0, errorResponse_1.validationError)('Missing required field: commentary');
373
+ const service = this.getPostService();
374
+ const quotePost = await service.createQuotePost(id, userId, commentary);
375
+ return {
376
+ statusCode: 201,
377
+ response: { message: 'Quote post created', data: quotePost },
378
+ };
379
+ }
380
+ catch (error) {
381
+ if (error instanceof brighthub_lib_1.PostServiceError)
382
+ return this.mapPostServiceError(error);
383
+ return (0, errorResponse_1.handleError)(error);
384
+ }
385
+ }
386
+ }
387
+ exports.BrightHubPostController = BrightHubPostController;
388
+ //# sourceMappingURL=postController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postController.js","sourceRoot":"","sources":["../../../../../../../brightchain-api-lib/src/lib/controllers/api/brighthub/postController.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ import { IFeedService, IUserProfileService } from '@brightchain/brighthub-lib';
2
+ import { CoreLanguageCode } from '@digitaldefiance/i18n-lib';
3
+ import { PlatformID } from '@digitaldefiance/node-ecies-lib';
4
+ import { ApiErrorResponse, ApiRequestHandler, IApiMessageResponse, TypedHandlers } from '@digitaldefiance/node-express-suite';
5
+ import { IBrightChainApplication } from '../../../interfaces/application';
6
+ import { IBrightHubUserProfileApiResponse, ITimelineApiResponse } from '../../../interfaces/responses/brighthub';
7
+ import { DefaultBackendIdType } from '../../../shared-types';
8
+ import { BaseController } from '../../base';
9
+ type TimelineApiResponseType = ITimelineApiResponse | IBrightHubUserProfileApiResponse | IApiMessageResponse | ApiErrorResponse;
10
+ interface ITimelineHandlers extends TypedHandlers {
11
+ getHomeTimeline: ApiRequestHandler<ITimelineApiResponse | ApiErrorResponse>;
12
+ getPublicTimeline: ApiRequestHandler<ITimelineApiResponse | ApiErrorResponse>;
13
+ getUserProfile: ApiRequestHandler<IBrightHubUserProfileApiResponse | ApiErrorResponse>;
14
+ followUser: ApiRequestHandler<IApiMessageResponse | ApiErrorResponse>;
15
+ unfollowUser: ApiRequestHandler<IApiMessageResponse | ApiErrorResponse>;
16
+ search: ApiRequestHandler<ITimelineApiResponse | ApiErrorResponse>;
17
+ getUserFeed: ApiRequestHandler<ITimelineApiResponse | ApiErrorResponse>;
18
+ getHashtagFeed: ApiRequestHandler<ITimelineApiResponse | ApiErrorResponse>;
19
+ }
20
+ /**
21
+ * Controller for BrightHub timeline, user profile, and search operations.
22
+ *
23
+ * @requirements 11.6-11.11
24
+ */
25
+ export declare class BrightHubTimelineController<TID extends PlatformID = DefaultBackendIdType> extends BaseController<TID, TimelineApiResponseType, ITimelineHandlers, CoreLanguageCode> {
26
+ private feedService;
27
+ private userProfileService;
28
+ constructor(application: IBrightChainApplication<TID>);
29
+ setFeedService(service: IFeedService): void;
30
+ setUserProfileService(service: IUserProfileService): void;
31
+ private getFeedService;
32
+ private getUserProfileService;
33
+ protected initRouteDefinitions(): void;
34
+ private parseTimelineOptions;
35
+ /**
36
+ * GET /api/brighthub/timeline/home
37
+ * @requirements 11.6
38
+ */
39
+ private handleGetHomeTimeline;
40
+ /**
41
+ * GET /api/brighthub/timeline/public
42
+ * @requirements 11.7
43
+ */
44
+ private handleGetPublicTimeline;
45
+ /**
46
+ * GET /api/brighthub/users/:id
47
+ * @requirements 11.8
48
+ */
49
+ private handleGetUserProfile;
50
+ /**
51
+ * GET /api/brighthub/users/:id/feed
52
+ */
53
+ private handleGetUserFeed;
54
+ /**
55
+ * POST /api/brighthub/users/:id/follow
56
+ * @requirements 11.9
57
+ */
58
+ private handleFollowUser;
59
+ /**
60
+ * DELETE /api/brighthub/users/:id/follow
61
+ */
62
+ private handleUnfollowUser;
63
+ /**
64
+ * GET /api/brighthub/search
65
+ * @requirements 11.11
66
+ */
67
+ private handleSearch;
68
+ /**
69
+ * GET /api/brighthub/hashtag/:tag
70
+ */
71
+ private handleGetHashtagFeed;
72
+ }
73
+ export {};
74
+ //# sourceMappingURL=timelineController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timelineController.d.ts","sourceRoot":"","sources":["../../../../../../../brightchain-api-lib/src/lib/controllers/api/brighthub/timelineController.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,YAAY,EAEZ,mBAAmB,EAGpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EAEjB,mBAAmB,EACnB,aAAa,EAEd,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,OAAO,EACL,gCAAgC,EAChC,oBAAoB,EACrB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAM7D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,KAAK,uBAAuB,GACxB,oBAAoB,GACpB,gCAAgC,GAChC,mBAAmB,GACnB,gBAAgB,CAAC;AAErB,UAAU,iBAAkB,SAAQ,aAAa;IAC/C,eAAe,EAAE,iBAAiB,CAAC,oBAAoB,GAAG,gBAAgB,CAAC,CAAC;IAC5E,iBAAiB,EAAE,iBAAiB,CAAC,oBAAoB,GAAG,gBAAgB,CAAC,CAAC;IAC9E,cAAc,EAAE,iBAAiB,CAC/B,gCAAgC,GAAG,gBAAgB,CACpD,CAAC;IACF,UAAU,EAAE,iBAAiB,CAAC,mBAAmB,GAAG,gBAAgB,CAAC,CAAC;IACtE,YAAY,EAAE,iBAAiB,CAAC,mBAAmB,GAAG,gBAAgB,CAAC,CAAC;IACxE,MAAM,EAAE,iBAAiB,CAAC,oBAAoB,GAAG,gBAAgB,CAAC,CAAC;IACnE,WAAW,EAAE,iBAAiB,CAAC,oBAAoB,GAAG,gBAAgB,CAAC,CAAC;IACxE,cAAc,EAAE,iBAAiB,CAAC,oBAAoB,GAAG,gBAAgB,CAAC,CAAC;CAC5E;AAED;;;;GAIG;AACH,qBAAa,2BAA2B,CACtC,GAAG,SAAS,UAAU,GAAG,oBAAoB,CAC7C,SAAQ,cAAc,CACtB,GAAG,EACH,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,CACjB;IACC,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,kBAAkB,CAAoC;gBAElD,WAAW,EAAE,uBAAuB,CAAC,GAAG,CAAC;IAI9C,cAAc,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAI3C,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAIhE,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,qBAAqB;IAM7B,SAAS,CAAC,oBAAoB,IAAI,IAAI;IA2ItC,OAAO,CAAC,oBAAoB;IAY5B;;;OAGG;YACW,qBAAqB;IAoCnC;;;OAGG;YACW,uBAAuB;IA6BrC;;;OAGG;YACW,oBAAoB;IAkClC;;OAEG;YACW,iBAAiB;IAyC/B;;;OAGG;YACW,gBAAgB;IAwC9B;;OAEG;YACW,kBAAkB;IA0BhC;;;OAGG;YACW,YAAY;IA0C1B;;OAEG;YACW,oBAAoB;CAqCnC"}