@brightchain/brightchain-lib 0.14.0 → 0.16.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 (580) hide show
  1. package/brightchain-lib/BROWSER_COMPAT.md +54 -0
  2. package/package.json +16 -4
  3. package/src/lib/blocks/cblBase.d.ts +16 -1
  4. package/src/lib/blocks/cblBase.d.ts.map +1 -1
  5. package/src/lib/blocks/cblBase.js +33 -4
  6. package/src/lib/blocks/cblBase.js.map +1 -1
  7. package/src/lib/blocks/extendedCbl.d.ts.map +1 -1
  8. package/src/lib/blocks/extendedCbl.js +2 -1
  9. package/src/lib/blocks/extendedCbl.js.map +1 -1
  10. package/src/lib/blocks/handle.d.ts +5 -0
  11. package/src/lib/blocks/handle.d.ts.map +1 -1
  12. package/src/lib/blocks/handle.js.map +1 -1
  13. package/src/lib/blocks/handleTuple.d.ts +9 -1
  14. package/src/lib/blocks/handleTuple.d.ts.map +1 -1
  15. package/src/lib/blocks/handleTuple.js +23 -1
  16. package/src/lib/blocks/handleTuple.js.map +1 -1
  17. package/src/lib/blocks/index.d.ts +1 -0
  18. package/src/lib/blocks/index.d.ts.map +1 -1
  19. package/src/lib/blocks/index.js +1 -0
  20. package/src/lib/blocks/index.js.map +1 -1
  21. package/src/lib/blocks/memoryTuple.d.ts +9 -2
  22. package/src/lib/blocks/memoryTuple.d.ts.map +1 -1
  23. package/src/lib/blocks/memoryTuple.js +12 -3
  24. package/src/lib/blocks/memoryTuple.js.map +1 -1
  25. package/src/lib/blocks/vcbl.d.ts +27 -0
  26. package/src/lib/blocks/vcbl.d.ts.map +1 -0
  27. package/src/lib/blocks/vcbl.js +107 -0
  28. package/src/lib/blocks/vcbl.js.map +1 -0
  29. package/src/lib/constants.d.ts +28 -1
  30. package/src/lib/constants.d.ts.map +1 -1
  31. package/src/lib/constants.js +28 -1
  32. package/src/lib/constants.js.map +1 -1
  33. package/src/lib/crypto/index.d.ts +12 -0
  34. package/src/lib/crypto/index.d.ts.map +1 -0
  35. package/src/lib/crypto/index.js +23 -0
  36. package/src/lib/crypto/index.js.map +1 -0
  37. package/src/lib/crypto/platformCrypto.d.ts +132 -0
  38. package/src/lib/crypto/platformCrypto.d.ts.map +1 -0
  39. package/src/lib/crypto/platformCrypto.js +181 -0
  40. package/src/lib/crypto/platformCrypto.js.map +1 -0
  41. package/src/lib/enumeration-translations/blockType.d.ts.map +1 -1
  42. package/src/lib/enumeration-translations/blockType.js +16 -0
  43. package/src/lib/enumeration-translations/blockType.js.map +1 -1
  44. package/src/lib/enumerations/blockType.d.ts +12 -0
  45. package/src/lib/enumerations/blockType.d.ts.map +1 -1
  46. package/src/lib/enumerations/blockType.js +14 -0
  47. package/src/lib/enumerations/blockType.js.map +1 -1
  48. package/src/lib/enumerations/brightChainStrings.d.ts +4 -0
  49. package/src/lib/enumerations/brightChainStrings.d.ts.map +1 -1
  50. package/src/lib/enumerations/brightChainStrings.js +4 -0
  51. package/src/lib/enumerations/brightChainStrings.js.map +1 -1
  52. package/src/lib/enumerations/cblErrorType.d.ts +2 -1
  53. package/src/lib/enumerations/cblErrorType.d.ts.map +1 -1
  54. package/src/lib/enumerations/cblErrorType.js +1 -0
  55. package/src/lib/enumerations/cblErrorType.js.map +1 -1
  56. package/src/lib/enumerations/communication.d.ts +57 -0
  57. package/src/lib/enumerations/communication.d.ts.map +1 -0
  58. package/src/lib/enumerations/communication.js +89 -0
  59. package/src/lib/enumerations/communication.js.map +1 -0
  60. package/src/lib/enumerations/deviceType.d.ts +15 -0
  61. package/src/lib/enumerations/deviceType.d.ts.map +1 -0
  62. package/src/lib/enumerations/deviceType.js +19 -0
  63. package/src/lib/enumerations/deviceType.js.map +1 -0
  64. package/src/lib/enumerations/handleTupleErrorType.d.ts +2 -1
  65. package/src/lib/enumerations/handleTupleErrorType.d.ts.map +1 -1
  66. package/src/lib/enumerations/handleTupleErrorType.js +1 -0
  67. package/src/lib/enumerations/handleTupleErrorType.js.map +1 -1
  68. package/src/lib/enumerations/index.d.ts +6 -0
  69. package/src/lib/enumerations/index.d.ts.map +1 -1
  70. package/src/lib/enumerations/index.js +11 -0
  71. package/src/lib/enumerations/index.js.map +1 -1
  72. package/src/lib/enumerations/paperKeyPurpose.d.ts +15 -0
  73. package/src/lib/enumerations/paperKeyPurpose.d.ts.map +1 -0
  74. package/src/lib/enumerations/paperKeyPurpose.js +19 -0
  75. package/src/lib/enumerations/paperKeyPurpose.js.map +1 -0
  76. package/src/lib/enumerations/proofPlatform.d.ts +24 -0
  77. package/src/lib/enumerations/proofPlatform.d.ts.map +1 -0
  78. package/src/lib/enumerations/proofPlatform.js +28 -0
  79. package/src/lib/enumerations/proofPlatform.js.map +1 -0
  80. package/src/lib/enumerations/readConcern.d.ts +22 -0
  81. package/src/lib/enumerations/readConcern.d.ts.map +1 -0
  82. package/src/lib/enumerations/readConcern.js +26 -0
  83. package/src/lib/enumerations/readConcern.js.map +1 -0
  84. package/src/lib/enumerations/tupleErrorType.d.ts +2 -1
  85. package/src/lib/enumerations/tupleErrorType.d.ts.map +1 -1
  86. package/src/lib/enumerations/tupleErrorType.js +1 -0
  87. package/src/lib/enumerations/tupleErrorType.js.map +1 -1
  88. package/src/lib/enumerations/verificationStatus.d.ts +17 -0
  89. package/src/lib/enumerations/verificationStatus.d.ts.map +1 -0
  90. package/src/lib/enumerations/verificationStatus.js +21 -0
  91. package/src/lib/enumerations/verificationStatus.js.map +1 -0
  92. package/src/lib/errors/blockFetchError.d.ts +51 -0
  93. package/src/lib/errors/blockFetchError.d.ts.map +1 -0
  94. package/src/lib/errors/blockFetchError.js +63 -0
  95. package/src/lib/errors/blockFetchError.js.map +1 -0
  96. package/src/lib/errors/cblError.d.ts.map +1 -1
  97. package/src/lib/errors/cblError.js +1 -0
  98. package/src/lib/errors/cblError.js.map +1 -1
  99. package/src/lib/errors/handleTupleError.d.ts +10 -1
  100. package/src/lib/errors/handleTupleError.d.ts.map +1 -1
  101. package/src/lib/errors/handleTupleError.js +10 -1
  102. package/src/lib/errors/handleTupleError.js.map +1 -1
  103. package/src/lib/errors/index.d.ts +16 -0
  104. package/src/lib/errors/index.d.ts.map +1 -1
  105. package/src/lib/errors/index.js +22 -0
  106. package/src/lib/errors/index.js.map +1 -1
  107. package/src/lib/errors/poolDeletionError.d.ts +10 -0
  108. package/src/lib/errors/poolDeletionError.d.ts.map +1 -0
  109. package/src/lib/errors/poolDeletionError.js +16 -0
  110. package/src/lib/errors/poolDeletionError.js.map +1 -0
  111. package/src/lib/errors/poolDeletionTombstoneError.d.ts +12 -0
  112. package/src/lib/errors/poolDeletionTombstoneError.d.ts.map +1 -0
  113. package/src/lib/errors/poolDeletionTombstoneError.js +18 -0
  114. package/src/lib/errors/poolDeletionTombstoneError.js.map +1 -0
  115. package/src/lib/errors/tupleError.d.ts.map +1 -1
  116. package/src/lib/errors/tupleError.js +1 -0
  117. package/src/lib/errors/tupleError.js.map +1 -1
  118. package/src/lib/i18n/i18n-setup.d.ts +22 -18
  119. package/src/lib/i18n/i18n-setup.d.ts.map +1 -1
  120. package/src/lib/i18n/i18n-setup.js +58 -138
  121. package/src/lib/i18n/i18n-setup.js.map +1 -1
  122. package/src/lib/i18n/strings/englishUs.d.ts.map +1 -1
  123. package/src/lib/i18n/strings/englishUs.js +4 -0
  124. package/src/lib/i18n/strings/englishUs.js.map +1 -1
  125. package/src/lib/i18n/strings/french.d.ts.map +1 -1
  126. package/src/lib/i18n/strings/french.js +4 -0
  127. package/src/lib/i18n/strings/french.js.map +1 -1
  128. package/src/lib/i18n/strings/german.d.ts.map +1 -1
  129. package/src/lib/i18n/strings/german.js +4 -0
  130. package/src/lib/i18n/strings/german.js.map +1 -1
  131. package/src/lib/i18n/strings/japanese.d.ts.map +1 -1
  132. package/src/lib/i18n/strings/japanese.js +4 -0
  133. package/src/lib/i18n/strings/japanese.js.map +1 -1
  134. package/src/lib/i18n/strings/mandarin.d.ts.map +1 -1
  135. package/src/lib/i18n/strings/mandarin.js +4 -0
  136. package/src/lib/i18n/strings/mandarin.js.map +1 -1
  137. package/src/lib/i18n/strings/spanish.d.ts.map +1 -1
  138. package/src/lib/i18n/strings/spanish.js +4 -0
  139. package/src/lib/i18n/strings/spanish.js.map +1 -1
  140. package/src/lib/i18n/strings/ukrainian.d.ts.map +1 -1
  141. package/src/lib/i18n/strings/ukrainian.js +4 -0
  142. package/src/lib/i18n/strings/ukrainian.js.map +1 -1
  143. package/src/lib/index.d.ts +4 -0
  144. package/src/lib/index.d.ts.map +1 -1
  145. package/src/lib/index.js +4 -0
  146. package/src/lib/index.js.map +1 -1
  147. package/src/lib/interfaces/auth/index.d.ts +4 -0
  148. package/src/lib/interfaces/auth/index.d.ts.map +1 -0
  149. package/src/lib/interfaces/auth/index.js +8 -0
  150. package/src/lib/interfaces/auth/index.js.map +1 -0
  151. package/src/lib/interfaces/auth/nodeAuthenticator.d.ts +19 -0
  152. package/src/lib/interfaces/auth/nodeAuthenticator.d.ts.map +1 -0
  153. package/src/lib/interfaces/auth/nodeAuthenticator.js +3 -0
  154. package/src/lib/interfaces/auth/nodeAuthenticator.js.map +1 -0
  155. package/src/lib/interfaces/auth/poolAcl.d.ts +65 -0
  156. package/src/lib/interfaces/auth/poolAcl.d.ts.map +1 -0
  157. package/src/lib/interfaces/auth/poolAcl.js +52 -0
  158. package/src/lib/interfaces/auth/poolAcl.js.map +1 -0
  159. package/src/lib/interfaces/availability/availabilityService.d.ts +5 -3
  160. package/src/lib/interfaces/availability/availabilityService.d.ts.map +1 -1
  161. package/src/lib/interfaces/availability/availabilityService.js.map +1 -1
  162. package/src/lib/interfaces/availability/blockRegistry.d.ts +52 -3
  163. package/src/lib/interfaces/availability/blockRegistry.d.ts.map +1 -1
  164. package/src/lib/interfaces/availability/blockRegistry.js +1 -1
  165. package/src/lib/interfaces/availability/discoveryProtocol.d.ts +81 -3
  166. package/src/lib/interfaces/availability/discoveryProtocol.d.ts.map +1 -1
  167. package/src/lib/interfaces/availability/discoveryProtocol.js.map +1 -1
  168. package/src/lib/interfaces/availability/gossipService.d.ts +110 -6
  169. package/src/lib/interfaces/availability/gossipService.d.ts.map +1 -1
  170. package/src/lib/interfaces/availability/gossipService.js +94 -1
  171. package/src/lib/interfaces/availability/gossipService.js.map +1 -1
  172. package/src/lib/interfaces/availability/index.d.ts +1 -0
  173. package/src/lib/interfaces/availability/index.d.ts.map +1 -1
  174. package/src/lib/interfaces/availability/index.js +1 -0
  175. package/src/lib/interfaces/availability/index.js.map +1 -1
  176. package/src/lib/interfaces/availability/locationRecord.d.ts +6 -0
  177. package/src/lib/interfaces/availability/locationRecord.d.ts.map +1 -1
  178. package/src/lib/interfaces/availability/locationRecord.js +12 -0
  179. package/src/lib/interfaces/availability/locationRecord.js.map +1 -1
  180. package/src/lib/interfaces/availability/poolDeletionTombstone.d.ts +40 -0
  181. package/src/lib/interfaces/availability/poolDeletionTombstone.d.ts.map +1 -0
  182. package/src/lib/interfaces/availability/poolDeletionTombstone.js +19 -0
  183. package/src/lib/interfaces/availability/poolDeletionTombstone.js.map +1 -0
  184. package/src/lib/interfaces/availability/reconciliationService.d.ts +52 -0
  185. package/src/lib/interfaces/availability/reconciliationService.d.ts.map +1 -1
  186. package/src/lib/interfaces/availability/reconciliationService.js.map +1 -1
  187. package/src/lib/interfaces/blockCapacity.d.ts +9 -0
  188. package/src/lib/interfaces/blockCapacity.d.ts.map +1 -1
  189. package/src/lib/interfaces/blockEncryption.d.ts +4 -2
  190. package/src/lib/interfaces/blockEncryption.d.ts.map +1 -1
  191. package/src/lib/interfaces/blockFetch/blockFetchTransport.d.ts +26 -0
  192. package/src/lib/interfaces/blockFetch/blockFetchTransport.d.ts.map +1 -0
  193. package/src/lib/interfaces/blockFetch/blockFetchTransport.js +12 -0
  194. package/src/lib/interfaces/blockFetch/blockFetchTransport.js.map +1 -0
  195. package/src/lib/interfaces/blockFetch/blockFetcher.d.ts +71 -0
  196. package/src/lib/interfaces/blockFetch/blockFetcher.d.ts.map +1 -0
  197. package/src/lib/interfaces/blockFetch/blockFetcher.js +22 -0
  198. package/src/lib/interfaces/blockFetch/blockFetcher.js.map +1 -0
  199. package/src/lib/interfaces/blockFetch/enrichedQueryResult.d.ts +43 -0
  200. package/src/lib/interfaces/blockFetch/enrichedQueryResult.d.ts.map +1 -0
  201. package/src/lib/interfaces/blockFetch/enrichedQueryResult.js +13 -0
  202. package/src/lib/interfaces/blockFetch/enrichedQueryResult.js.map +1 -0
  203. package/src/lib/interfaces/blockFetch/fetchQueue.d.ts +70 -0
  204. package/src/lib/interfaces/blockFetch/fetchQueue.d.ts.map +1 -0
  205. package/src/lib/interfaces/blockFetch/fetchQueue.js +18 -0
  206. package/src/lib/interfaces/blockFetch/fetchQueue.js.map +1 -0
  207. package/src/lib/interfaces/blockFetch/index.d.ts +10 -0
  208. package/src/lib/interfaces/blockFetch/index.d.ts.map +1 -0
  209. package/src/lib/interfaces/blockFetch/index.js +13 -0
  210. package/src/lib/interfaces/blockFetch/index.js.map +1 -0
  211. package/src/lib/interfaces/blocks/index.d.ts +1 -0
  212. package/src/lib/interfaces/blocks/index.d.ts.map +1 -1
  213. package/src/lib/interfaces/blocks/vcbl.d.ts +16 -0
  214. package/src/lib/interfaces/blocks/vcbl.d.ts.map +1 -0
  215. package/src/lib/interfaces/blocks/vcbl.js +3 -0
  216. package/src/lib/interfaces/blocks/vcbl.js.map +1 -0
  217. package/src/lib/interfaces/brightpass/auditLog.d.ts +25 -0
  218. package/src/lib/interfaces/brightpass/auditLog.d.ts.map +1 -0
  219. package/src/lib/interfaces/brightpass/auditLog.js +21 -0
  220. package/src/lib/interfaces/brightpass/auditLog.js.map +1 -0
  221. package/src/lib/interfaces/brightpass/emergencyAccess.d.ts +11 -0
  222. package/src/lib/interfaces/brightpass/emergencyAccess.d.ts.map +1 -0
  223. package/src/lib/interfaces/brightpass/emergencyAccess.js +3 -0
  224. package/src/lib/interfaces/brightpass/emergencyAccess.js.map +1 -0
  225. package/src/lib/interfaces/brightpass/entryPropertyRecord.d.ts +11 -0
  226. package/src/lib/interfaces/brightpass/entryPropertyRecord.d.ts.map +1 -0
  227. package/src/lib/interfaces/brightpass/entryPropertyRecord.js +3 -0
  228. package/src/lib/interfaces/brightpass/entryPropertyRecord.js.map +1 -0
  229. package/src/lib/interfaces/brightpass/importTypes.d.ts +10 -0
  230. package/src/lib/interfaces/brightpass/importTypes.d.ts.map +1 -0
  231. package/src/lib/interfaces/brightpass/importTypes.js +3 -0
  232. package/src/lib/interfaces/brightpass/importTypes.js.map +1 -0
  233. package/src/lib/interfaces/brightpass/index.d.ts +7 -0
  234. package/src/lib/interfaces/brightpass/index.d.ts.map +1 -0
  235. package/src/lib/interfaces/brightpass/index.js +10 -0
  236. package/src/lib/interfaces/brightpass/index.js.map +1 -0
  237. package/src/lib/interfaces/brightpass/vaultEntry.d.ts +48 -0
  238. package/src/lib/interfaces/brightpass/vaultEntry.d.ts.map +1 -0
  239. package/src/lib/interfaces/brightpass/vaultEntry.js +3 -0
  240. package/src/lib/interfaces/brightpass/vaultEntry.js.map +1 -0
  241. package/src/lib/interfaces/brightpass/vaultMetadata.d.ts +34 -0
  242. package/src/lib/interfaces/brightpass/vaultMetadata.d.ts.map +1 -0
  243. package/src/lib/interfaces/brightpass/vaultMetadata.js +3 -0
  244. package/src/lib/interfaces/brightpass/vaultMetadata.js.map +1 -0
  245. package/src/lib/interfaces/clusterKeys.d.ts +4 -2
  246. package/src/lib/interfaces/clusterKeys.d.ts.map +1 -1
  247. package/src/lib/interfaces/communication.d.ts +173 -0
  248. package/src/lib/interfaces/communication.d.ts.map +1 -0
  249. package/src/lib/interfaces/communication.js +17 -0
  250. package/src/lib/interfaces/communication.js.map +1 -0
  251. package/src/lib/interfaces/communicationEvents.d.ts +168 -0
  252. package/src/lib/interfaces/communicationEvents.d.ts.map +1 -0
  253. package/src/lib/interfaces/communicationEvents.js +12 -0
  254. package/src/lib/interfaces/communicationEvents.js.map +1 -0
  255. package/src/lib/interfaces/constants.d.ts +23 -0
  256. package/src/lib/interfaces/constants.d.ts.map +1 -1
  257. package/src/lib/interfaces/crypto/ethereumWallet.d.ts +72 -0
  258. package/src/lib/interfaces/crypto/ethereumWallet.d.ts.map +1 -0
  259. package/src/lib/interfaces/crypto/ethereumWallet.js +12 -0
  260. package/src/lib/interfaces/crypto/ethereumWallet.js.map +1 -0
  261. package/src/lib/interfaces/crypto/gitSignature.d.ts +95 -0
  262. package/src/lib/interfaces/crypto/gitSignature.d.ts.map +1 -0
  263. package/src/lib/interfaces/crypto/gitSignature.js +12 -0
  264. package/src/lib/interfaces/crypto/gitSignature.js.map +1 -0
  265. package/src/lib/interfaces/crypto/index.d.ts +3 -0
  266. package/src/lib/interfaces/crypto/index.d.ts.map +1 -0
  267. package/src/lib/interfaces/crypto/index.js +3 -0
  268. package/src/lib/interfaces/crypto/index.js.map +1 -0
  269. package/src/lib/interfaces/dataKeyComponents.d.ts +7 -2
  270. package/src/lib/interfaces/dataKeyComponents.d.ts.map +1 -1
  271. package/src/lib/interfaces/encryptedBlockCreator.d.ts +4 -2
  272. package/src/lib/interfaces/encryptedBlockCreator.d.ts.map +1 -1
  273. package/src/lib/interfaces/events/communicationEventEmitter.d.ts +65 -0
  274. package/src/lib/interfaces/events/communicationEventEmitter.d.ts.map +1 -0
  275. package/src/lib/interfaces/events/communicationEventEmitter.js +60 -0
  276. package/src/lib/interfaces/events/communicationEventEmitter.js.map +1 -0
  277. package/src/lib/interfaces/events/index.d.ts +2 -0
  278. package/src/lib/interfaces/events/index.d.ts.map +1 -0
  279. package/src/lib/interfaces/events/index.js +5 -0
  280. package/src/lib/interfaces/events/index.js.map +1 -0
  281. package/src/lib/interfaces/failableResult.d.ts +8 -0
  282. package/src/lib/interfaces/failableResult.d.ts.map +1 -0
  283. package/src/lib/interfaces/failableResult.js +3 -0
  284. package/src/lib/interfaces/failableResult.js.map +1 -0
  285. package/src/lib/interfaces/i18nConstants.d.ts +27 -0
  286. package/src/lib/interfaces/i18nConstants.d.ts.map +1 -0
  287. package/src/lib/interfaces/i18nConstants.js +3 -0
  288. package/src/lib/interfaces/i18nConstants.js.map +1 -0
  289. package/src/lib/interfaces/identity/device.d.ts +59 -0
  290. package/src/lib/interfaces/identity/device.d.ts.map +1 -0
  291. package/src/lib/interfaces/identity/device.js +17 -0
  292. package/src/lib/interfaces/identity/device.js.map +1 -0
  293. package/src/lib/interfaces/identity/deviceKeyStorage.d.ts +71 -0
  294. package/src/lib/interfaces/identity/deviceKeyStorage.d.ts.map +1 -0
  295. package/src/lib/interfaces/identity/deviceKeyStorage.js +16 -0
  296. package/src/lib/interfaces/identity/deviceKeyStorage.js.map +1 -0
  297. package/src/lib/interfaces/identity/identityProof.d.ts +90 -0
  298. package/src/lib/interfaces/identity/identityProof.d.ts.map +1 -0
  299. package/src/lib/interfaces/identity/identityProof.js +18 -0
  300. package/src/lib/interfaces/identity/identityProof.js.map +1 -0
  301. package/src/lib/interfaces/identity/index.d.ts +7 -0
  302. package/src/lib/interfaces/identity/index.d.ts.map +1 -0
  303. package/src/lib/interfaces/identity/index.js +3 -0
  304. package/src/lib/interfaces/identity/index.js.map +1 -0
  305. package/src/lib/interfaces/identity/paperKey.d.ts +97 -0
  306. package/src/lib/interfaces/identity/paperKey.d.ts.map +1 -0
  307. package/src/lib/interfaces/identity/paperKey.js +17 -0
  308. package/src/lib/interfaces/identity/paperKey.js.map +1 -0
  309. package/src/lib/interfaces/identity/publicProfile.d.ts +74 -0
  310. package/src/lib/interfaces/identity/publicProfile.d.ts.map +1 -0
  311. package/src/lib/interfaces/identity/publicProfile.js +18 -0
  312. package/src/lib/interfaces/identity/publicProfile.js.map +1 -0
  313. package/src/lib/interfaces/identity/splitPaperKey.d.ts +73 -0
  314. package/src/lib/interfaces/identity/splitPaperKey.d.ts.map +1 -0
  315. package/src/lib/interfaces/identity/splitPaperKey.js +20 -0
  316. package/src/lib/interfaces/identity/splitPaperKey.js.map +1 -0
  317. package/src/lib/interfaces/index.d.ts +12 -2
  318. package/src/lib/interfaces/index.d.ts.map +1 -1
  319. package/src/lib/interfaces/index.js +12 -0
  320. package/src/lib/interfaces/index.js.map +1 -1
  321. package/src/lib/interfaces/network/node.d.ts +4 -2
  322. package/src/lib/interfaces/network/node.d.ts.map +1 -1
  323. package/src/lib/interfaces/network/nodeAdvertisement.d.ts +4 -2
  324. package/src/lib/interfaces/network/nodeAdvertisement.d.ts.map +1 -1
  325. package/src/lib/interfaces/privateVotingDerivation.d.ts +7 -2
  326. package/src/lib/interfaces/privateVotingDerivation.d.ts.map +1 -1
  327. package/src/lib/interfaces/requests/communicationRequests.d.ts +154 -0
  328. package/src/lib/interfaces/requests/communicationRequests.d.ts.map +1 -0
  329. package/src/lib/interfaces/requests/communicationRequests.js +10 -0
  330. package/src/lib/interfaces/requests/communicationRequests.js.map +1 -0
  331. package/src/lib/interfaces/requests/index.d.ts +2 -0
  332. package/src/lib/interfaces/requests/index.d.ts.map +1 -0
  333. package/src/lib/interfaces/requests/index.js +3 -0
  334. package/src/lib/interfaces/requests/index.js.map +1 -0
  335. package/src/lib/interfaces/responses/blockDataResponse.d.ts +11 -0
  336. package/src/lib/interfaces/responses/blockDataResponse.d.ts.map +1 -0
  337. package/src/lib/interfaces/responses/blockDataResponse.js +3 -0
  338. package/src/lib/interfaces/responses/blockDataResponse.js.map +1 -0
  339. package/src/lib/interfaces/responses/communicationResponses.d.ts +82 -0
  340. package/src/lib/interfaces/responses/communicationResponses.d.ts.map +1 -0
  341. package/src/lib/interfaces/responses/communicationResponses.js +17 -0
  342. package/src/lib/interfaces/responses/communicationResponses.js.map +1 -0
  343. package/src/lib/interfaces/responses/cryptoResponses.d.ts +30 -0
  344. package/src/lib/interfaces/responses/cryptoResponses.d.ts.map +1 -0
  345. package/src/lib/interfaces/responses/cryptoResponses.js +12 -0
  346. package/src/lib/interfaces/responses/cryptoResponses.js.map +1 -0
  347. package/src/lib/interfaces/responses/deviceResponses.d.ts +26 -0
  348. package/src/lib/interfaces/responses/deviceResponses.d.ts.map +1 -0
  349. package/src/lib/interfaces/responses/deviceResponses.js +15 -0
  350. package/src/lib/interfaces/responses/deviceResponses.js.map +1 -0
  351. package/src/lib/interfaces/responses/directoryResponses.d.ts +26 -0
  352. package/src/lib/interfaces/responses/directoryResponses.d.ts.map +1 -0
  353. package/src/lib/interfaces/responses/directoryResponses.js +12 -0
  354. package/src/lib/interfaces/responses/directoryResponses.js.map +1 -0
  355. package/src/lib/interfaces/responses/emailResponses.d.ts +40 -0
  356. package/src/lib/interfaces/responses/emailResponses.d.ts.map +1 -0
  357. package/src/lib/interfaces/responses/emailResponses.js +18 -0
  358. package/src/lib/interfaces/responses/emailResponses.js.map +1 -0
  359. package/src/lib/interfaces/responses/explodingMessageResponses.d.ts +42 -0
  360. package/src/lib/interfaces/responses/explodingMessageResponses.d.ts.map +1 -0
  361. package/src/lib/interfaces/responses/explodingMessageResponses.js +11 -0
  362. package/src/lib/interfaces/responses/explodingMessageResponses.js.map +1 -0
  363. package/src/lib/interfaces/responses/identityProofResponses.d.ts +33 -0
  364. package/src/lib/interfaces/responses/identityProofResponses.d.ts.map +1 -0
  365. package/src/lib/interfaces/responses/identityProofResponses.js +12 -0
  366. package/src/lib/interfaces/responses/identityProofResponses.js.map +1 -0
  367. package/src/lib/interfaces/responses/index.d.ts +3 -1
  368. package/src/lib/interfaces/responses/index.d.ts.map +1 -1
  369. package/src/lib/interfaces/sealResults.d.ts +7 -2
  370. package/src/lib/interfaces/sealResults.d.ts.map +1 -1
  371. package/src/lib/interfaces/services/fecService.d.ts +7 -5
  372. package/src/lib/interfaces/services/fecService.d.ts.map +1 -1
  373. package/src/lib/interfaces/services/fecService.js +2 -0
  374. package/src/lib/interfaces/services/fecService.js.map +1 -1
  375. package/src/lib/interfaces/singleEncryptedBlockDetails.d.ts +7 -2
  376. package/src/lib/interfaces/singleEncryptedBlockDetails.d.ts.map +1 -1
  377. package/src/lib/interfaces/storage/blockMetadata.d.ts +8 -1
  378. package/src/lib/interfaces/storage/blockMetadata.d.ts.map +1 -1
  379. package/src/lib/interfaces/storage/blockMetadata.js +3 -1
  380. package/src/lib/interfaces/storage/blockMetadata.js.map +1 -1
  381. package/src/lib/interfaces/storage/cblIndex.d.ts +141 -0
  382. package/src/lib/interfaces/storage/cblIndex.d.ts.map +1 -0
  383. package/src/lib/interfaces/storage/cblIndex.js +28 -0
  384. package/src/lib/interfaces/storage/cblIndex.js.map +1 -0
  385. package/src/lib/interfaces/storage/clientSession.d.ts +8 -0
  386. package/src/lib/interfaces/storage/clientSession.d.ts.map +1 -0
  387. package/src/lib/interfaces/storage/clientSession.js +3 -0
  388. package/src/lib/interfaces/storage/clientSession.js.map +1 -0
  389. package/src/lib/interfaces/storage/collection.d.ts +9 -0
  390. package/src/lib/interfaces/storage/collection.d.ts.map +1 -0
  391. package/src/lib/interfaces/storage/collection.js +3 -0
  392. package/src/lib/interfaces/storage/collection.js.map +1 -0
  393. package/src/lib/interfaces/storage/database.d.ts +9 -0
  394. package/src/lib/interfaces/storage/database.d.ts.map +1 -0
  395. package/src/lib/interfaces/storage/database.js +3 -0
  396. package/src/lib/interfaces/storage/database.js.map +1 -0
  397. package/src/lib/interfaces/storage/databaseLifecycleHooks.d.ts +8 -0
  398. package/src/lib/interfaces/storage/databaseLifecycleHooks.d.ts.map +1 -0
  399. package/src/lib/interfaces/storage/databaseLifecycleHooks.js +3 -0
  400. package/src/lib/interfaces/storage/databaseLifecycleHooks.js.map +1 -0
  401. package/src/lib/interfaces/storage/documentTypes.d.ts +8 -0
  402. package/src/lib/interfaces/storage/documentTypes.d.ts.map +1 -0
  403. package/src/lib/interfaces/storage/documentTypes.js +3 -0
  404. package/src/lib/interfaces/storage/documentTypes.js.map +1 -0
  405. package/src/lib/interfaces/storage/encryptedPool.d.ts +64 -0
  406. package/src/lib/interfaces/storage/encryptedPool.d.ts.map +1 -0
  407. package/src/lib/interfaces/storage/encryptedPool.js +26 -0
  408. package/src/lib/interfaces/storage/encryptedPool.js.map +1 -0
  409. package/src/lib/interfaces/storage/headRegistry.d.ts +128 -0
  410. package/src/lib/interfaces/storage/headRegistry.d.ts.map +1 -0
  411. package/src/lib/interfaces/storage/headRegistry.js +3 -0
  412. package/src/lib/interfaces/storage/headRegistry.js.map +1 -0
  413. package/src/lib/interfaces/storage/index.d.ts +14 -0
  414. package/src/lib/interfaces/storage/index.d.ts.map +1 -1
  415. package/src/lib/interfaces/storage/index.js +14 -1
  416. package/src/lib/interfaces/storage/index.js.map +1 -1
  417. package/src/lib/interfaces/storage/pooledBlockStore.d.ts +163 -0
  418. package/src/lib/interfaces/storage/pooledBlockStore.d.ts.map +1 -0
  419. package/src/lib/interfaces/storage/pooledBlockStore.js +77 -0
  420. package/src/lib/interfaces/storage/pooledBlockStore.js.map +1 -0
  421. package/src/lib/interfaces/storage/readConcernBlockStore.d.ts +47 -0
  422. package/src/lib/interfaces/storage/readConcernBlockStore.d.ts.map +1 -0
  423. package/src/lib/interfaces/storage/readConcernBlockStore.js +29 -0
  424. package/src/lib/interfaces/storage/readConcernBlockStore.js.map +1 -0
  425. package/src/lib/interfaces/symmetricEncryptionResults.d.ts +7 -5
  426. package/src/lib/interfaces/symmetricEncryptionResults.d.ts.map +1 -1
  427. package/src/lib/services/blockCapacity.service.d.ts.map +1 -1
  428. package/src/lib/services/blockCapacity.service.js +15 -0
  429. package/src/lib/services/blockCapacity.service.js.map +1 -1
  430. package/src/lib/services/brightpass/auditLogger.d.ts +41 -0
  431. package/src/lib/services/brightpass/auditLogger.d.ts.map +1 -0
  432. package/src/lib/services/brightpass/auditLogger.js +47 -0
  433. package/src/lib/services/brightpass/auditLogger.js.map +1 -0
  434. package/src/lib/services/brightpass/breachDetector.d.ts +68 -0
  435. package/src/lib/services/brightpass/breachDetector.d.ts.map +1 -0
  436. package/src/lib/services/brightpass/breachDetector.js +102 -0
  437. package/src/lib/services/brightpass/breachDetector.js.map +1 -0
  438. package/src/lib/services/brightpass/importParser.d.ts +105 -0
  439. package/src/lib/services/brightpass/importParser.d.ts.map +1 -0
  440. package/src/lib/services/brightpass/importParser.js +380 -0
  441. package/src/lib/services/brightpass/importParser.js.map +1 -0
  442. package/src/lib/services/brightpass/index.d.ts +16 -0
  443. package/src/lib/services/brightpass/index.d.ts.map +1 -0
  444. package/src/lib/services/brightpass/index.js +19 -0
  445. package/src/lib/services/brightpass/index.js.map +1 -0
  446. package/src/lib/services/brightpass/passwordGenerator.d.ts +111 -0
  447. package/src/lib/services/brightpass/passwordGenerator.d.ts.map +1 -0
  448. package/src/lib/services/brightpass/passwordGenerator.js +162 -0
  449. package/src/lib/services/brightpass/passwordGenerator.js.map +1 -0
  450. package/src/lib/services/brightpass/totpEngine.d.ts +191 -0
  451. package/src/lib/services/brightpass/totpEngine.d.ts.map +1 -0
  452. package/src/lib/services/brightpass/totpEngine.js +198 -0
  453. package/src/lib/services/brightpass/totpEngine.js.map +1 -0
  454. package/src/lib/services/brightpass/vaultKeyDerivation.d.ts +26 -0
  455. package/src/lib/services/brightpass/vaultKeyDerivation.d.ts.map +1 -0
  456. package/src/lib/services/brightpass/vaultKeyDerivation.js +42 -0
  457. package/src/lib/services/brightpass/vaultKeyDerivation.js.map +1 -0
  458. package/src/lib/services/brightpass/vaultSerializer.d.ts +14 -0
  459. package/src/lib/services/brightpass/vaultSerializer.d.ts.map +1 -0
  460. package/src/lib/services/brightpass/vaultSerializer.js +77 -0
  461. package/src/lib/services/brightpass/vaultSerializer.js.map +1 -0
  462. package/src/lib/services/cblService.d.ts +4 -2
  463. package/src/lib/services/cblService.d.ts.map +1 -1
  464. package/src/lib/services/cblService.js +8 -4
  465. package/src/lib/services/cblService.js.map +1 -1
  466. package/src/lib/services/communication/channelService.d.ts +208 -0
  467. package/src/lib/services/communication/channelService.d.ts.map +1 -0
  468. package/src/lib/services/communication/channelService.js +575 -0
  469. package/src/lib/services/communication/channelService.js.map +1 -0
  470. package/src/lib/services/communication/conversationService.d.ts +130 -0
  471. package/src/lib/services/communication/conversationService.d.ts.map +1 -0
  472. package/src/lib/services/communication/conversationService.js +279 -0
  473. package/src/lib/services/communication/conversationService.js.map +1 -0
  474. package/src/lib/services/communication/explodingMessageService.d.ts +168 -0
  475. package/src/lib/services/communication/explodingMessageService.d.ts.map +1 -0
  476. package/src/lib/services/communication/explodingMessageService.js +287 -0
  477. package/src/lib/services/communication/explodingMessageService.js.map +1 -0
  478. package/src/lib/services/communication/groupService.d.ts +165 -0
  479. package/src/lib/services/communication/groupService.d.ts.map +1 -0
  480. package/src/lib/services/communication/groupService.js +437 -0
  481. package/src/lib/services/communication/groupService.js.map +1 -0
  482. package/src/lib/services/communication/index.d.ts +16 -0
  483. package/src/lib/services/communication/index.d.ts.map +1 -0
  484. package/src/lib/services/communication/index.js +63 -0
  485. package/src/lib/services/communication/index.js.map +1 -0
  486. package/src/lib/services/communication/messageOperationsService.d.ts +81 -0
  487. package/src/lib/services/communication/messageOperationsService.d.ts.map +1 -0
  488. package/src/lib/services/communication/messageOperationsService.js +162 -0
  489. package/src/lib/services/communication/messageOperationsService.js.map +1 -0
  490. package/src/lib/services/communication/permissionService.d.ts +47 -0
  491. package/src/lib/services/communication/permissionService.d.ts.map +1 -0
  492. package/src/lib/services/communication/permissionService.js +82 -0
  493. package/src/lib/services/communication/permissionService.js.map +1 -0
  494. package/src/lib/services/communication/searchService.d.ts +30 -0
  495. package/src/lib/services/communication/searchService.d.ts.map +1 -0
  496. package/src/lib/services/communication/searchService.js +83 -0
  497. package/src/lib/services/communication/searchService.js.map +1 -0
  498. package/src/lib/services/crypto/ethereumWalletService.d.ts +159 -0
  499. package/src/lib/services/crypto/ethereumWalletService.d.ts.map +1 -0
  500. package/src/lib/services/crypto/ethereumWalletService.js +345 -0
  501. package/src/lib/services/crypto/ethereumWalletService.js.map +1 -0
  502. package/src/lib/services/crypto/gitSigningService.d.ts +145 -0
  503. package/src/lib/services/crypto/gitSigningService.d.ts.map +1 -0
  504. package/src/lib/services/crypto/gitSigningService.js +291 -0
  505. package/src/lib/services/crypto/gitSigningService.js.map +1 -0
  506. package/src/lib/services/crypto/index.d.ts +3 -0
  507. package/src/lib/services/crypto/index.d.ts.map +1 -0
  508. package/src/lib/services/crypto/index.js +6 -0
  509. package/src/lib/services/crypto/index.js.map +1 -0
  510. package/src/lib/services/identity/deviceProvisioningService.d.ts +146 -0
  511. package/src/lib/services/identity/deviceProvisioningService.d.ts.map +1 -0
  512. package/src/lib/services/identity/deviceProvisioningService.js +219 -0
  513. package/src/lib/services/identity/deviceProvisioningService.js.map +1 -0
  514. package/src/lib/services/identity/identityProofService.d.ts +139 -0
  515. package/src/lib/services/identity/identityProofService.d.ts.map +1 -0
  516. package/src/lib/services/identity/identityProofService.js +245 -0
  517. package/src/lib/services/identity/identityProofService.js.map +1 -0
  518. package/src/lib/services/identity/index.d.ts +14 -0
  519. package/src/lib/services/identity/index.d.ts.map +1 -0
  520. package/src/lib/services/identity/index.js +17 -0
  521. package/src/lib/services/identity/index.js.map +1 -0
  522. package/src/lib/services/identity/memberIdentityProofService.d.ts +179 -0
  523. package/src/lib/services/identity/memberIdentityProofService.d.ts.map +1 -0
  524. package/src/lib/services/identity/memberIdentityProofService.js +232 -0
  525. package/src/lib/services/identity/memberIdentityProofService.js.map +1 -0
  526. package/src/lib/services/identity/memberPaperKeyService.d.ts +223 -0
  527. package/src/lib/services/identity/memberPaperKeyService.d.ts.map +1 -0
  528. package/src/lib/services/identity/memberPaperKeyService.js +279 -0
  529. package/src/lib/services/identity/memberPaperKeyService.js.map +1 -0
  530. package/src/lib/services/identity/paperKeyService.d.ts +106 -0
  531. package/src/lib/services/identity/paperKeyService.d.ts.map +1 -0
  532. package/src/lib/services/identity/paperKeyService.js +161 -0
  533. package/src/lib/services/identity/paperKeyService.js.map +1 -0
  534. package/src/lib/services/identity/publicKeyDirectoryService.d.ts +210 -0
  535. package/src/lib/services/identity/publicKeyDirectoryService.d.ts.map +1 -0
  536. package/src/lib/services/identity/publicKeyDirectoryService.js +328 -0
  537. package/src/lib/services/identity/publicKeyDirectoryService.js.map +1 -0
  538. package/src/lib/services/identity/splitPaperKeyService.d.ts +92 -0
  539. package/src/lib/services/identity/splitPaperKeyService.d.ts.map +1 -0
  540. package/src/lib/services/identity/splitPaperKeyService.js +305 -0
  541. package/src/lib/services/identity/splitPaperKeyService.js.map +1 -0
  542. package/src/lib/services/index.d.ts +4 -0
  543. package/src/lib/services/index.d.ts.map +1 -1
  544. package/src/lib/services/index.js +7 -0
  545. package/src/lib/services/index.js.map +1 -1
  546. package/src/lib/services/messaging/emailMessageService.d.ts.map +1 -1
  547. package/src/lib/services/messaging/emailMessageService.js +26 -9
  548. package/src/lib/services/messaging/emailMessageService.js.map +1 -1
  549. package/src/lib/services/messaging/emailParser.d.ts +18 -0
  550. package/src/lib/services/messaging/emailParser.d.ts.map +1 -1
  551. package/src/lib/services/messaging/emailParser.js +18 -0
  552. package/src/lib/services/messaging/emailParser.js.map +1 -1
  553. package/src/lib/services/tuple.service.d.ts +27 -2
  554. package/src/lib/services/tuple.service.d.ts.map +1 -1
  555. package/src/lib/services/tuple.service.js +62 -20
  556. package/src/lib/services/tuple.service.js.map +1 -1
  557. package/src/lib/services/vcblService.d.ts +36 -0
  558. package/src/lib/services/vcblService.d.ts.map +1 -0
  559. package/src/lib/services/vcblService.js +326 -0
  560. package/src/lib/services/vcblService.js.map +1 -0
  561. package/src/lib/stores/index.d.ts +1 -0
  562. package/src/lib/stores/index.d.ts.map +1 -1
  563. package/src/lib/stores/index.js +1 -0
  564. package/src/lib/stores/index.js.map +1 -1
  565. package/src/lib/stores/pooledMemoryBlockStore.d.ts +134 -0
  566. package/src/lib/stores/pooledMemoryBlockStore.d.ts.map +1 -0
  567. package/src/lib/stores/pooledMemoryBlockStore.js +583 -0
  568. package/src/lib/stores/pooledMemoryBlockStore.js.map +1 -0
  569. package/src/lib/types/checksum.d.ts +11 -0
  570. package/src/lib/types/checksum.d.ts.map +1 -1
  571. package/src/lib/types/checksum.js +11 -0
  572. package/src/lib/types/checksum.js.map +1 -1
  573. package/src/lib/utils/index.d.ts +9 -0
  574. package/src/lib/utils/index.d.ts.map +1 -1
  575. package/src/lib/utils/index.js +12 -0
  576. package/src/lib/utils/index.js.map +1 -1
  577. package/src/lib/utils/pagination.d.ts +27 -0
  578. package/src/lib/utils/pagination.d.ts.map +1 -0
  579. package/src/lib/utils/pagination.js +38 -0
  580. package/src/lib/utils/pagination.js.map +1 -0
@@ -0,0 +1,437 @@
1
+ "use strict";
2
+ /**
3
+ * GroupService — manages group lifecycle, key management, and messaging.
4
+ *
5
+ * Maintains in-memory stores for groups and messages, with symmetric key
6
+ * generation per group and ECIES-style per-member key encryption.
7
+ * Supports member management with key rotation on departure,
8
+ * message edit/delete/pin/reaction operations.
9
+ *
10
+ * Requirements: 10.2
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.GroupService = exports.MemberAlreadyInGroupError = exports.ReactionNotFoundError = exports.NotMessageAuthorError = exports.MemberMutedError = exports.GroupPermissionError = exports.GroupMessageNotFoundError = exports.NotGroupMemberError = exports.GroupNotFoundError = void 0;
14
+ exports.extractKeyFromDefault = extractKeyFromDefault;
15
+ const uuid_1 = require("uuid");
16
+ const platformCrypto_1 = require("../../crypto/platformCrypto");
17
+ const communication_1 = require("../../enumerations/communication");
18
+ const events_1 = require("../../interfaces/events");
19
+ const pagination_1 = require("../../utils/pagination");
20
+ const messageOperationsService_1 = require("./messageOperationsService");
21
+ // ─── Error classes ──────────────────────────────────────────────────────────
22
+ class GroupNotFoundError extends Error {
23
+ constructor(groupId) {
24
+ super(`Group ${groupId} not found`);
25
+ this.name = 'GroupNotFoundError';
26
+ }
27
+ }
28
+ exports.GroupNotFoundError = GroupNotFoundError;
29
+ class NotGroupMemberError extends Error {
30
+ constructor() {
31
+ super('You are not a member of this group');
32
+ this.name = 'NotGroupMemberError';
33
+ }
34
+ }
35
+ exports.NotGroupMemberError = NotGroupMemberError;
36
+ class GroupMessageNotFoundError extends Error {
37
+ constructor(messageId) {
38
+ super(`Message ${messageId} not found`);
39
+ this.name = 'GroupMessageNotFoundError';
40
+ }
41
+ }
42
+ exports.GroupMessageNotFoundError = GroupMessageNotFoundError;
43
+ class GroupPermissionError extends Error {
44
+ constructor(permission) {
45
+ super(`Missing permission: ${permission}`);
46
+ this.name = 'GroupPermissionError';
47
+ this.missingPermission = permission;
48
+ }
49
+ }
50
+ exports.GroupPermissionError = GroupPermissionError;
51
+ class MemberMutedError extends Error {
52
+ constructor() {
53
+ super('You are muted in this group');
54
+ this.name = 'MemberMutedError';
55
+ }
56
+ }
57
+ exports.MemberMutedError = MemberMutedError;
58
+ class NotMessageAuthorError extends Error {
59
+ constructor() {
60
+ super('You can only edit messages you authored');
61
+ this.name = 'NotMessageAuthorError';
62
+ }
63
+ }
64
+ exports.NotMessageAuthorError = NotMessageAuthorError;
65
+ class ReactionNotFoundError extends Error {
66
+ constructor(reactionId) {
67
+ super(`Reaction ${reactionId} not found`);
68
+ this.name = 'ReactionNotFoundError';
69
+ }
70
+ }
71
+ exports.ReactionNotFoundError = ReactionNotFoundError;
72
+ class MemberAlreadyInGroupError extends Error {
73
+ constructor(memberId) {
74
+ super(`Member ${memberId} is already in this group`);
75
+ this.name = 'MemberAlreadyInGroupError';
76
+ }
77
+ }
78
+ exports.MemberAlreadyInGroupError = MemberAlreadyInGroupError;
79
+ /**
80
+ * Default key encryption: base64-encodes the key prefixed with memberId.
81
+ * This is a placeholder; real implementations use ECIES.
82
+ */
83
+ function defaultKeyEncryption(memberId, symmetricKey) {
84
+ // Convert Uint8Array to base64 (browser-compatible)
85
+ const binary = Array.from(symmetricKey)
86
+ .map((b) => String.fromCharCode(b))
87
+ .join('');
88
+ const base64 = btoa(binary);
89
+ return `enc:${memberId}:${base64}`;
90
+ }
91
+ /**
92
+ * Extract the symmetric key from a default-encrypted key string.
93
+ * Only works with the default placeholder encryption.
94
+ */
95
+ function extractKeyFromDefault(encrypted) {
96
+ const parts = encrypted.split(':');
97
+ const base64 = parts[2];
98
+ const binary = atob(base64);
99
+ const bytes = new Uint8Array(binary.length);
100
+ for (let i = 0; i < binary.length; i++) {
101
+ bytes[i] = binary.charCodeAt(i);
102
+ }
103
+ return bytes;
104
+ }
105
+ class GroupService {
106
+ constructor(permissionService, encryptKey = defaultKeyEncryption, messageOps, eventEmitter, randomBytesProvider) {
107
+ /** groupId → IGroup */
108
+ this.groups = new Map();
109
+ /** groupId → messages (ordered by createdAt ascending) */
110
+ this.messages = new Map();
111
+ /** groupId → raw symmetric key (Uint8Array) */
112
+ this.symmetricKeys = new Map();
113
+ this.permissionService = permissionService;
114
+ this.encryptKey = encryptKey;
115
+ this.messageOps =
116
+ messageOps ?? new messageOperationsService_1.MessageOperationsService(permissionService);
117
+ this.eventEmitter = eventEmitter ?? new events_1.NullEventEmitter();
118
+ this.randomBytesProvider = randomBytesProvider ?? platformCrypto_1.getRandomBytes;
119
+ }
120
+ // ─── Helpers ────────────────────────────────────────────────────────────
121
+ assertGroupExists(groupId) {
122
+ const group = this.groups.get(groupId);
123
+ if (!group)
124
+ throw new GroupNotFoundError(groupId);
125
+ return group;
126
+ }
127
+ assertIsMember(group, memberId) {
128
+ const member = group.members.find((m) => m.memberId === memberId);
129
+ if (!member)
130
+ throw new NotGroupMemberError();
131
+ return member;
132
+ }
133
+ assertPermission(memberId, groupId, permission) {
134
+ if (!this.permissionService.hasPermission(memberId, groupId, permission)) {
135
+ throw new GroupPermissionError(permission);
136
+ }
137
+ }
138
+ assertNotMuted(memberId, groupId) {
139
+ if (this.permissionService.isMuted(memberId, groupId)) {
140
+ throw new MemberMutedError();
141
+ }
142
+ }
143
+ generateSymmetricKey() {
144
+ return this.randomBytesProvider(32); // AES-256
145
+ }
146
+ encryptKeyForMembers(memberIds, symmetricKey) {
147
+ const encrypted = new Map();
148
+ for (const id of memberIds) {
149
+ encrypted.set(id, this.encryptKey(id, symmetricKey));
150
+ }
151
+ return encrypted;
152
+ }
153
+ /**
154
+ * Rotate the group's symmetric key and re-encrypt for remaining members.
155
+ * Requirement 10.2: key rotation on member departure.
156
+ */
157
+ rotateKey(group) {
158
+ const newKey = this.generateSymmetricKey();
159
+ this.symmetricKeys.set(group.id, newKey);
160
+ group.encryptedSharedKey = this.encryptKeyForMembers(group.members.map((m) => m.memberId), newKey);
161
+ }
162
+ // ─── Group lifecycle ──────────────────────────────────────────────────
163
+ /**
164
+ * Create a new group with the given members.
165
+ * Generates a shared symmetric key and encrypts it for each member.
166
+ * The creator is assigned the OWNER role; others get MEMBER.
167
+ *
168
+ * Requirement 10.2: group creation with symmetric key management.
169
+ */
170
+ async createGroup(name, creatorId, memberIds) {
171
+ const now = new Date();
172
+ const allMemberIds = [
173
+ creatorId,
174
+ ...memberIds.filter((id) => id !== creatorId),
175
+ ];
176
+ const symmetricKey = this.generateSymmetricKey();
177
+ const groupId = (0, uuid_1.v4)();
178
+ const members = allMemberIds.map((id) => ({
179
+ memberId: id,
180
+ role: id === creatorId ? communication_1.DefaultRole.OWNER : communication_1.DefaultRole.MEMBER,
181
+ joinedAt: now,
182
+ }));
183
+ const encryptedSharedKey = this.encryptKeyForMembers(allMemberIds, symmetricKey);
184
+ const group = {
185
+ id: groupId,
186
+ name,
187
+ creatorId,
188
+ members,
189
+ encryptedSharedKey,
190
+ createdAt: now,
191
+ lastMessageAt: now,
192
+ pinnedMessageIds: [],
193
+ };
194
+ this.groups.set(groupId, group);
195
+ this.messages.set(groupId, []);
196
+ this.symmetricKeys.set(groupId, symmetricKey);
197
+ // Register roles in PermissionService
198
+ for (const member of members) {
199
+ this.permissionService.assignRole(member.memberId, groupId, member.role);
200
+ }
201
+ // Emit group created event
202
+ this.eventEmitter.emitGroupCreated(groupId, groupId, creatorId, allMemberIds);
203
+ return group;
204
+ }
205
+ /**
206
+ * Create a group from a promoted conversation, preserving message history.
207
+ * Used by ConversationService.promoteToGroup.
208
+ */
209
+ async createGroupFromConversation(conversationId, existingParticipants, newMemberIds, existingMessages, requesterId) {
210
+ const allMemberIds = [
211
+ ...existingParticipants,
212
+ ...newMemberIds.filter((id) => !existingParticipants.includes(id)),
213
+ ];
214
+ const group = await this.createGroup(`Group from conversation`, requesterId, allMemberIds.filter((id) => id !== requesterId));
215
+ group.promotedFromConversation = conversationId;
216
+ // Migrate existing messages into the group
217
+ const groupMessages = this.messages.get(group.id);
218
+ for (const msg of existingMessages) {
219
+ const migratedMsg = {
220
+ ...msg,
221
+ contextType: 'group',
222
+ contextId: group.id,
223
+ };
224
+ groupMessages.push(migratedMsg);
225
+ }
226
+ return group;
227
+ }
228
+ /**
229
+ * Get group metadata.
230
+ */
231
+ async getGroup(groupId, requesterId) {
232
+ const group = this.assertGroupExists(groupId);
233
+ this.assertIsMember(group, requesterId);
234
+ return group;
235
+ }
236
+ // ─── Messaging ────────────────────────────────────────────────────────
237
+ /**
238
+ * Send a message to a group.
239
+ * Requirement 10.2: group messaging with permission and mute checks.
240
+ */
241
+ async sendMessage(groupId, senderId, content) {
242
+ const group = this.assertGroupExists(groupId);
243
+ this.assertIsMember(group, senderId);
244
+ this.assertPermission(senderId, groupId, communication_1.Permission.SEND_MESSAGES);
245
+ this.assertNotMuted(senderId, groupId);
246
+ const now = new Date();
247
+ const message = {
248
+ id: (0, uuid_1.v4)(),
249
+ contextType: 'group',
250
+ contextId: groupId,
251
+ senderId,
252
+ encryptedContent: content,
253
+ createdAt: now,
254
+ editHistory: [],
255
+ deleted: false,
256
+ pinned: false,
257
+ reactions: [],
258
+ };
259
+ this.messages.get(groupId).push(message);
260
+ group.lastMessageAt = now;
261
+ // Emit message sent event
262
+ this.eventEmitter.emitMessageSent('group', groupId, message.id, senderId);
263
+ return message;
264
+ }
265
+ /**
266
+ * Get messages in a group with cursor-based pagination.
267
+ */
268
+ async getMessages(groupId, memberId, cursor, limit = 50) {
269
+ const group = this.assertGroupExists(groupId);
270
+ this.assertIsMember(group, memberId);
271
+ const msgs = this.messages.get(groupId) ?? [];
272
+ return (0, pagination_1.paginateItems)(msgs, cursor, limit);
273
+ }
274
+ // ─── Member management ────────────────────────────────────────────────
275
+ /**
276
+ * Add members to a group. Re-encrypts the shared key for new members.
277
+ * Requirement 10.2: membership management.
278
+ */
279
+ async addMembers(groupId, requesterId, memberIds) {
280
+ const group = this.assertGroupExists(groupId);
281
+ this.assertIsMember(group, requesterId);
282
+ this.assertPermission(requesterId, groupId, communication_1.Permission.MANAGE_MEMBERS);
283
+ const now = new Date();
284
+ const currentKey = this.symmetricKeys.get(groupId);
285
+ for (const memberId of memberIds) {
286
+ if (group.members.some((m) => m.memberId === memberId)) {
287
+ throw new MemberAlreadyInGroupError(memberId);
288
+ }
289
+ group.members.push({
290
+ memberId,
291
+ role: communication_1.DefaultRole.MEMBER,
292
+ joinedAt: now,
293
+ });
294
+ // Encrypt existing key for new member
295
+ group.encryptedSharedKey.set(memberId, this.encryptKey(memberId, currentKey));
296
+ this.permissionService.assignRole(memberId, groupId, communication_1.DefaultRole.MEMBER);
297
+ // Emit member joined event
298
+ this.eventEmitter.emitMemberJoined('group', groupId, memberId);
299
+ }
300
+ }
301
+ /**
302
+ * Remove a member from a group. Rotates the shared key.
303
+ * Requirement 10.2: key rotation on member removal.
304
+ */
305
+ async removeMember(groupId, requesterId, targetId) {
306
+ const group = this.assertGroupExists(groupId);
307
+ this.assertIsMember(group, requesterId);
308
+ this.assertIsMember(group, targetId);
309
+ this.assertPermission(requesterId, groupId, communication_1.Permission.MANAGE_MEMBERS);
310
+ group.members = group.members.filter((m) => m.memberId !== targetId);
311
+ group.encryptedSharedKey.delete(targetId);
312
+ // Rotate key for remaining members
313
+ this.rotateKey(group);
314
+ // Emit member kicked event
315
+ this.eventEmitter.emitMemberKicked('group', groupId, targetId, requesterId);
316
+ }
317
+ /**
318
+ * Leave a group voluntarily. Rotates the shared key.
319
+ * Requirement 10.2: key rotation on member departure.
320
+ */
321
+ async leaveGroup(groupId, memberId) {
322
+ const group = this.assertGroupExists(groupId);
323
+ this.assertIsMember(group, memberId);
324
+ group.members = group.members.filter((m) => m.memberId !== memberId);
325
+ group.encryptedSharedKey.delete(memberId);
326
+ // Rotate key for remaining members
327
+ if (group.members.length > 0) {
328
+ this.rotateKey(group);
329
+ }
330
+ // Emit member left event
331
+ this.eventEmitter.emitMemberLeft('group', groupId, memberId);
332
+ }
333
+ // ─── Message operations ───────────────────────────────────────────────
334
+ /**
335
+ * Edit a message authored by the requesting member.
336
+ * Delegates to MessageOperationsService.
337
+ */
338
+ async editMessage(groupId, messageId, memberId, newContent) {
339
+ const group = this.assertGroupExists(groupId);
340
+ this.assertIsMember(group, memberId);
341
+ const msgs = this.messages.get(groupId) ?? [];
342
+ const edited = this.messageOps.editMessage(msgs, messageId, memberId, newContent, (id) => new GroupMessageNotFoundError(id), () => new NotMessageAuthorError());
343
+ // Emit message edited event
344
+ this.eventEmitter.emitMessageEdited('group', groupId, messageId, memberId);
345
+ return edited;
346
+ }
347
+ /**
348
+ * Delete a message. Authors can delete their own; moderators/admins can delete any.
349
+ * Delegates to MessageOperationsService.
350
+ */
351
+ async deleteMessage(groupId, messageId, memberId) {
352
+ const group = this.assertGroupExists(groupId);
353
+ this.assertIsMember(group, memberId);
354
+ const msgs = this.messages.get(groupId) ?? [];
355
+ this.messageOps.deleteMessage(msgs, groupId, messageId, memberId, (id) => new GroupMessageNotFoundError(id), (p) => new GroupPermissionError(p));
356
+ // Emit message deleted event
357
+ this.eventEmitter.emitMessageDeleted('group', groupId, messageId, memberId);
358
+ }
359
+ /**
360
+ * Pin a message in a group.
361
+ * Delegates to MessageOperationsService.
362
+ */
363
+ async pinMessage(groupId, messageId, memberId) {
364
+ const group = this.assertGroupExists(groupId);
365
+ this.assertIsMember(group, memberId);
366
+ const msgs = this.messages.get(groupId) ?? [];
367
+ this.messageOps.pinMessage(msgs, groupId, messageId, memberId, group, (id) => new GroupMessageNotFoundError(id), (p) => new GroupPermissionError(p));
368
+ // Emit message pinned event
369
+ this.eventEmitter.emitMessagePinEvent(communication_1.CommunicationEventType.MESSAGE_PINNED, 'group', groupId, messageId, memberId);
370
+ }
371
+ /**
372
+ * Unpin a message in a group.
373
+ * Delegates to MessageOperationsService.
374
+ */
375
+ async unpinMessage(groupId, messageId, memberId) {
376
+ const group = this.assertGroupExists(groupId);
377
+ this.assertIsMember(group, memberId);
378
+ const msgs = this.messages.get(groupId) ?? [];
379
+ this.messageOps.unpinMessage(msgs, groupId, messageId, memberId, group, (id) => new GroupMessageNotFoundError(id), (p) => new GroupPermissionError(p));
380
+ // Emit message unpinned event
381
+ this.eventEmitter.emitMessagePinEvent(communication_1.CommunicationEventType.MESSAGE_UNPINNED, 'group', groupId, messageId, memberId);
382
+ }
383
+ /**
384
+ * Add a reaction to a message.
385
+ * Delegates to MessageOperationsService.
386
+ */
387
+ async addReaction(groupId, messageId, memberId, emoji) {
388
+ const group = this.assertGroupExists(groupId);
389
+ this.assertIsMember(group, memberId);
390
+ const msgs = this.messages.get(groupId) ?? [];
391
+ const reactionId = this.messageOps.addReaction(msgs, messageId, memberId, emoji, (id) => new GroupMessageNotFoundError(id));
392
+ // Emit reaction added event
393
+ this.eventEmitter.emitReactionEvent(communication_1.CommunicationEventType.REACTION_ADDED, 'group', groupId, messageId, memberId, emoji, reactionId);
394
+ return reactionId;
395
+ }
396
+ /**
397
+ * Remove a reaction from a message.
398
+ * Delegates to MessageOperationsService.
399
+ */
400
+ async removeReaction(groupId, messageId, memberId, reactionId) {
401
+ const group = this.assertGroupExists(groupId);
402
+ this.assertIsMember(group, memberId);
403
+ const msgs = this.messages.get(groupId) ?? [];
404
+ this.messageOps.removeReaction(msgs, messageId, reactionId, (id) => new GroupMessageNotFoundError(id), (id) => new ReactionNotFoundError(id));
405
+ // Emit reaction removed event
406
+ this.eventEmitter.emitReactionEvent(communication_1.CommunicationEventType.REACTION_REMOVED, 'group', groupId, messageId, memberId, '', // emoji not needed for removal
407
+ reactionId);
408
+ }
409
+ // ─── Accessors (for testing / internal use) ───────────────────────────
410
+ /**
411
+ * Get a group by ID without membership check. Returns undefined if not found.
412
+ */
413
+ getGroupById(groupId) {
414
+ return this.groups.get(groupId);
415
+ }
416
+ /**
417
+ * Get the raw symmetric key for a group (testing only).
418
+ */
419
+ getSymmetricKey(groupId) {
420
+ return this.symmetricKeys.get(groupId);
421
+ }
422
+ /**
423
+ * Get all messages for a group without pagination (testing/internal).
424
+ */
425
+ getAllMessages(groupId) {
426
+ return this.messages.get(groupId) ?? [];
427
+ }
428
+ /**
429
+ * Return all groups the given member belongs to (no pagination).
430
+ * Used by SearchService for cross-context keyword search.
431
+ */
432
+ listGroupsForMember(memberId) {
433
+ return Array.from(this.groups.values()).filter((g) => g.members.some((m) => m.memberId === memberId));
434
+ }
435
+ }
436
+ exports.GroupService = GroupService;
437
+ //# sourceMappingURL=groupService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groupService.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/services/communication/groupService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Communication Services - Communication service logic for browser and Node.js
3
+ *
4
+ * This module exports all communication services that have been migrated from
5
+ * brightchain-api-lib to enable browser-based communication clients.
6
+ *
7
+ * @module communication
8
+ */
9
+ export * from './permissionService';
10
+ export { MessageAuthorError, MessageOperationsService, MessageNotFoundError as MessageOpsNotFoundError, MessagePermissionError, MessageReactionNotFoundError, type IPinnableContext, } from './messageOperationsService';
11
+ export { MessageNotFoundError as ConversationMessageNotFoundError, ConversationNotFoundError, NotMessageAuthorError as ConversationNotMessageAuthorError, ConversationService, GroupPromotionNotConfiguredError, NotParticipantError, RecipientNotReachableError, type GroupPromotionHandler, type MemberReachabilityCheck, } from './conversationService';
12
+ export { GroupMessageNotFoundError, GroupNotFoundError, NotMessageAuthorError as GroupNotMessageAuthorError, GroupPermissionError, GroupService, MemberAlreadyInGroupError, MemberMutedError, NotGroupMemberError, ReactionNotFoundError, extractKeyFromDefault, type KeyEncryptionHandler, } from './groupService';
13
+ export { ChannelJoinDeniedError, ChannelMemberMutedError, ChannelMessageNotFoundError, ChannelNameConflictError, ChannelNotFoundError, NotMessageAuthorError as ChannelNotMessageAuthorError, ChannelPermissionError, ChannelReactionNotFoundError, ChannelService, InviteTokenExpiredError, InviteTokenNotFoundError, MemberAlreadyInChannelError, NotChannelMemberError, extractChannelKeyFromDefault, type ChannelKeyEncryptionHandler, } from './channelService';
14
+ export * from './searchService';
15
+ export * from './explodingMessageService';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/services/communication/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,cAAc,qBAAqB,CAAC;AAGpC,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,oBAAoB,IAAI,uBAAuB,EAC/C,sBAAsB,EACtB,4BAA4B,EAC5B,KAAK,gBAAgB,GACtB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,oBAAoB,IAAI,gCAAgC,EACxD,yBAAyB,EACzB,qBAAqB,IAAI,iCAAiC,EAC1D,mBAAmB,EACnB,gCAAgC,EAChC,mBAAmB,EACnB,0BAA0B,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,GAC7B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,yBAAyB,EACzB,kBAAkB,EAClB,qBAAqB,IAAI,0BAA0B,EACnD,oBAAoB,EACpB,YAAY,EACZ,yBAAyB,EACzB,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,KAAK,oBAAoB,GAC1B,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,IAAI,4BAA4B,EACrD,sBAAsB,EACtB,4BAA4B,EAC5B,cAAc,EACd,uBAAuB,EACvB,wBAAwB,EACxB,2BAA2B,EAC3B,qBAAqB,EACrB,4BAA4B,EAC5B,KAAK,2BAA2B,GACjC,MAAM,kBAAkB,CAAC;AAG1B,cAAc,iBAAiB,CAAC;AAGhC,cAAc,2BAA2B,CAAC"}
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ /**
3
+ * Communication Services - Communication service logic for browser and Node.js
4
+ *
5
+ * This module exports all communication services that have been migrated from
6
+ * brightchain-api-lib to enable browser-based communication clients.
7
+ *
8
+ * @module communication
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.extractChannelKeyFromDefault = exports.NotChannelMemberError = exports.MemberAlreadyInChannelError = exports.InviteTokenNotFoundError = exports.InviteTokenExpiredError = exports.ChannelService = exports.ChannelReactionNotFoundError = exports.ChannelPermissionError = exports.ChannelNotMessageAuthorError = exports.ChannelNotFoundError = exports.ChannelNameConflictError = exports.ChannelMessageNotFoundError = exports.ChannelMemberMutedError = exports.ChannelJoinDeniedError = exports.extractKeyFromDefault = exports.ReactionNotFoundError = exports.NotGroupMemberError = exports.MemberMutedError = exports.MemberAlreadyInGroupError = exports.GroupService = exports.GroupPermissionError = exports.GroupNotMessageAuthorError = exports.GroupNotFoundError = exports.GroupMessageNotFoundError = exports.RecipientNotReachableError = exports.NotParticipantError = exports.GroupPromotionNotConfiguredError = exports.ConversationService = exports.ConversationNotMessageAuthorError = exports.ConversationNotFoundError = exports.ConversationMessageNotFoundError = exports.MessageReactionNotFoundError = exports.MessagePermissionError = exports.MessageOpsNotFoundError = exports.MessageOperationsService = exports.MessageAuthorError = void 0;
12
+ const tslib_1 = require("tslib");
13
+ // ── permissionService (no conflicts) ────────────────────────────────────────
14
+ tslib_1.__exportStar(require("./permissionService"), exports);
15
+ // ── messageOperationsService (has MessageNotFoundError — conflicts with conversationService) ─
16
+ var messageOperationsService_1 = require("./messageOperationsService");
17
+ Object.defineProperty(exports, "MessageAuthorError", { enumerable: true, get: function () { return messageOperationsService_1.MessageAuthorError; } });
18
+ Object.defineProperty(exports, "MessageOperationsService", { enumerable: true, get: function () { return messageOperationsService_1.MessageOperationsService; } });
19
+ Object.defineProperty(exports, "MessageOpsNotFoundError", { enumerable: true, get: function () { return messageOperationsService_1.MessageNotFoundError; } });
20
+ Object.defineProperty(exports, "MessagePermissionError", { enumerable: true, get: function () { return messageOperationsService_1.MessagePermissionError; } });
21
+ Object.defineProperty(exports, "MessageReactionNotFoundError", { enumerable: true, get: function () { return messageOperationsService_1.MessageReactionNotFoundError; } });
22
+ // ── conversationService (has MessageNotFoundError, NotMessageAuthorError — conflicts) ────────
23
+ var conversationService_1 = require("./conversationService");
24
+ Object.defineProperty(exports, "ConversationMessageNotFoundError", { enumerable: true, get: function () { return conversationService_1.MessageNotFoundError; } });
25
+ Object.defineProperty(exports, "ConversationNotFoundError", { enumerable: true, get: function () { return conversationService_1.ConversationNotFoundError; } });
26
+ Object.defineProperty(exports, "ConversationNotMessageAuthorError", { enumerable: true, get: function () { return conversationService_1.NotMessageAuthorError; } });
27
+ Object.defineProperty(exports, "ConversationService", { enumerable: true, get: function () { return conversationService_1.ConversationService; } });
28
+ Object.defineProperty(exports, "GroupPromotionNotConfiguredError", { enumerable: true, get: function () { return conversationService_1.GroupPromotionNotConfiguredError; } });
29
+ Object.defineProperty(exports, "NotParticipantError", { enumerable: true, get: function () { return conversationService_1.NotParticipantError; } });
30
+ Object.defineProperty(exports, "RecipientNotReachableError", { enumerable: true, get: function () { return conversationService_1.RecipientNotReachableError; } });
31
+ // ── groupService (has NotMessageAuthorError — conflicts) ────────────────────
32
+ var groupService_1 = require("./groupService");
33
+ Object.defineProperty(exports, "GroupMessageNotFoundError", { enumerable: true, get: function () { return groupService_1.GroupMessageNotFoundError; } });
34
+ Object.defineProperty(exports, "GroupNotFoundError", { enumerable: true, get: function () { return groupService_1.GroupNotFoundError; } });
35
+ Object.defineProperty(exports, "GroupNotMessageAuthorError", { enumerable: true, get: function () { return groupService_1.NotMessageAuthorError; } });
36
+ Object.defineProperty(exports, "GroupPermissionError", { enumerable: true, get: function () { return groupService_1.GroupPermissionError; } });
37
+ Object.defineProperty(exports, "GroupService", { enumerable: true, get: function () { return groupService_1.GroupService; } });
38
+ Object.defineProperty(exports, "MemberAlreadyInGroupError", { enumerable: true, get: function () { return groupService_1.MemberAlreadyInGroupError; } });
39
+ Object.defineProperty(exports, "MemberMutedError", { enumerable: true, get: function () { return groupService_1.MemberMutedError; } });
40
+ Object.defineProperty(exports, "NotGroupMemberError", { enumerable: true, get: function () { return groupService_1.NotGroupMemberError; } });
41
+ Object.defineProperty(exports, "ReactionNotFoundError", { enumerable: true, get: function () { return groupService_1.ReactionNotFoundError; } });
42
+ Object.defineProperty(exports, "extractKeyFromDefault", { enumerable: true, get: function () { return groupService_1.extractKeyFromDefault; } });
43
+ // ── channelService (has NotMessageAuthorError — conflicts) ──────────────────
44
+ var channelService_1 = require("./channelService");
45
+ Object.defineProperty(exports, "ChannelJoinDeniedError", { enumerable: true, get: function () { return channelService_1.ChannelJoinDeniedError; } });
46
+ Object.defineProperty(exports, "ChannelMemberMutedError", { enumerable: true, get: function () { return channelService_1.ChannelMemberMutedError; } });
47
+ Object.defineProperty(exports, "ChannelMessageNotFoundError", { enumerable: true, get: function () { return channelService_1.ChannelMessageNotFoundError; } });
48
+ Object.defineProperty(exports, "ChannelNameConflictError", { enumerable: true, get: function () { return channelService_1.ChannelNameConflictError; } });
49
+ Object.defineProperty(exports, "ChannelNotFoundError", { enumerable: true, get: function () { return channelService_1.ChannelNotFoundError; } });
50
+ Object.defineProperty(exports, "ChannelNotMessageAuthorError", { enumerable: true, get: function () { return channelService_1.NotMessageAuthorError; } });
51
+ Object.defineProperty(exports, "ChannelPermissionError", { enumerable: true, get: function () { return channelService_1.ChannelPermissionError; } });
52
+ Object.defineProperty(exports, "ChannelReactionNotFoundError", { enumerable: true, get: function () { return channelService_1.ChannelReactionNotFoundError; } });
53
+ Object.defineProperty(exports, "ChannelService", { enumerable: true, get: function () { return channelService_1.ChannelService; } });
54
+ Object.defineProperty(exports, "InviteTokenExpiredError", { enumerable: true, get: function () { return channelService_1.InviteTokenExpiredError; } });
55
+ Object.defineProperty(exports, "InviteTokenNotFoundError", { enumerable: true, get: function () { return channelService_1.InviteTokenNotFoundError; } });
56
+ Object.defineProperty(exports, "MemberAlreadyInChannelError", { enumerable: true, get: function () { return channelService_1.MemberAlreadyInChannelError; } });
57
+ Object.defineProperty(exports, "NotChannelMemberError", { enumerable: true, get: function () { return channelService_1.NotChannelMemberError; } });
58
+ Object.defineProperty(exports, "extractChannelKeyFromDefault", { enumerable: true, get: function () { return channelService_1.extractChannelKeyFromDefault; } });
59
+ // ── searchService (no conflicts) ────────────────────────────────────────────
60
+ tslib_1.__exportStar(require("./searchService"), exports);
61
+ // ── explodingMessageService (no conflicts) ──────────────────────────────────
62
+ tslib_1.__exportStar(require("./explodingMessageService"), exports);
63
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/services/communication/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;AAEH,+EAA+E;AAC/E,8DAAoC;AAEpC,gGAAgG;AAChG,uEAOoC;AANlC,8HAAA,kBAAkB,OAAA;AAClB,oIAAA,wBAAwB,OAAA;AACxB,mIAAA,oBAAoB,OAA2B;AAC/C,kIAAA,sBAAsB,OAAA;AACtB,wIAAA,4BAA4B,OAAA;AAI9B,gGAAgG;AAChG,6DAU+B;AAT7B,uIAAA,oBAAoB,OAAoC;AACxD,gIAAA,yBAAyB,OAAA;AACzB,wIAAA,qBAAqB,OAAqC;AAC1D,0HAAA,mBAAmB,OAAA;AACnB,uIAAA,gCAAgC,OAAA;AAChC,0HAAA,mBAAmB,OAAA;AACnB,iIAAA,0BAA0B,OAAA;AAK5B,+EAA+E;AAC/E,+CAYwB;AAXtB,yHAAA,yBAAyB,OAAA;AACzB,kHAAA,kBAAkB,OAAA;AAClB,0HAAA,qBAAqB,OAA8B;AACnD,oHAAA,oBAAoB,OAAA;AACpB,4GAAA,YAAY,OAAA;AACZ,yHAAA,yBAAyB,OAAA;AACzB,gHAAA,gBAAgB,OAAA;AAChB,mHAAA,mBAAmB,OAAA;AACnB,qHAAA,qBAAqB,OAAA;AACrB,qHAAA,qBAAqB,OAAA;AAIvB,+EAA+E;AAC/E,mDAgB0B;AAfxB,wHAAA,sBAAsB,OAAA;AACtB,yHAAA,uBAAuB,OAAA;AACvB,6HAAA,2BAA2B,OAAA;AAC3B,0HAAA,wBAAwB,OAAA;AACxB,sHAAA,oBAAoB,OAAA;AACpB,8HAAA,qBAAqB,OAAgC;AACrD,wHAAA,sBAAsB,OAAA;AACtB,8HAAA,4BAA4B,OAAA;AAC5B,gHAAA,cAAc,OAAA;AACd,yHAAA,uBAAuB,OAAA;AACvB,0HAAA,wBAAwB,OAAA;AACxB,6HAAA,2BAA2B,OAAA;AAC3B,uHAAA,qBAAqB,OAAA;AACrB,8HAAA,4BAA4B,OAAA;AAI9B,+EAA+E;AAC/E,0DAAgC;AAEhC,+EAA+E;AAC/E,oEAA0C"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * MessageOperationsService — shared message operation logic for Groups and Channels.
3
+ *
4
+ * Encapsulates edit, delete, pin/unpin, and reaction operations with
5
+ * permission checks. Both GroupService and ChannelService delegate to
6
+ * this service to avoid duplicating message operation logic.
7
+ *
8
+ * Requirements: 9.1, 9.2, 9.3, 9.4, 9.6
9
+ */
10
+ import { Permission } from '../../enumerations/communication';
11
+ import { ICommunicationMessage } from '../../interfaces/communication';
12
+ import { PermissionService } from './permissionService';
13
+ export declare class MessageNotFoundError extends Error {
14
+ constructor(messageId: string);
15
+ }
16
+ export declare class MessageAuthorError extends Error {
17
+ constructor();
18
+ }
19
+ export declare class MessagePermissionError extends Error {
20
+ readonly missingPermission: Permission;
21
+ constructor(permission: Permission);
22
+ }
23
+ export declare class MessageReactionNotFoundError extends Error {
24
+ constructor(reactionId: string);
25
+ }
26
+ /**
27
+ * Context that holds a pinnedMessageIds list (both IGroup and IChannel).
28
+ */
29
+ export interface IPinnableContext {
30
+ pinnedMessageIds: string[];
31
+ }
32
+ /**
33
+ * Shared message operations for edit, delete, pin, and reaction logic.
34
+ * Callers are responsible for membership/existence checks on the context
35
+ * (group or channel) before invoking these methods.
36
+ */
37
+ export declare class MessageOperationsService {
38
+ private readonly permissionService;
39
+ constructor(permissionService: PermissionService);
40
+ /**
41
+ * Edit a message authored by the requesting member.
42
+ * Preserves previous content in editHistory.
43
+ *
44
+ * Requirement 9.1: update content, preserve edit history, set editedAt.
45
+ */
46
+ editMessage(messages: ICommunicationMessage[], messageId: string, memberId: string, newContent: string, messageNotFoundFactory: (id: string) => Error, authorErrorFactory: () => Error): ICommunicationMessage;
47
+ /**
48
+ * Delete a message. Authors can delete their own; moderators/admins
49
+ * need DELETE_ANY_MESSAGE permission.
50
+ *
51
+ * Requirements 9.2, 9.3: mark as deleted, set deletedBy.
52
+ */
53
+ deleteMessage(messages: ICommunicationMessage[], contextId: string, messageId: string, memberId: string, messageNotFoundFactory: (id: string) => Error, permissionErrorFactory: (p: Permission) => Error): void;
54
+ /**
55
+ * Pin a message. Requires PIN_MESSAGES permission.
56
+ * Adds the message ID to the context's pinnedMessageIds list.
57
+ *
58
+ * Requirement 9.3: add to pinned messages list.
59
+ */
60
+ pinMessage(messages: ICommunicationMessage[], contextId: string, messageId: string, memberId: string, context: IPinnableContext, messageNotFoundFactory: (id: string) => Error, permissionErrorFactory: (p: Permission) => Error): void;
61
+ /**
62
+ * Unpin a message. Requires PIN_MESSAGES permission.
63
+ * Removes the message ID from the context's pinnedMessageIds list.
64
+ *
65
+ * Requirement 9.3: remove from pinned messages list.
66
+ */
67
+ unpinMessage(messages: ICommunicationMessage[], contextId: string, messageId: string, memberId: string, context: IPinnableContext, messageNotFoundFactory: (id: string) => Error, permissionErrorFactory: (p: Permission) => Error): void;
68
+ /**
69
+ * Add a reaction to a message.
70
+ *
71
+ * Requirement 9.4: add reaction with emoji and member tracking.
72
+ */
73
+ addReaction(messages: ICommunicationMessage[], messageId: string, memberId: string, emoji: string, messageNotFoundFactory: (id: string) => Error): string;
74
+ /**
75
+ * Remove a reaction from a message.
76
+ *
77
+ * Requirement 9.4: remove reaction from message.
78
+ */
79
+ removeReaction(messages: ICommunicationMessage[], messageId: string, reactionId: string, messageNotFoundFactory: (id: string) => Error, reactionNotFoundFactory: (id: string) => Error): void;
80
+ }
81
+ //# sourceMappingURL=messageOperationsService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageOperationsService.d.ts","sourceRoot":"","sources":["../../../../../../brightchain-lib/src/lib/services/communication/messageOperationsService.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAIxD,qBAAa,oBAAqB,SAAQ,KAAK;gBACjC,SAAS,EAAE,MAAM;CAI9B;AAED,qBAAa,kBAAmB,SAAQ,KAAK;;CAK5C;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,SAAgB,iBAAiB,EAAE,UAAU,CAAC;gBAClC,UAAU,EAAE,UAAU;CAKnC;AAED,qBAAa,4BAA6B,SAAQ,KAAK;gBACzC,UAAU,EAAE,MAAM;CAI/B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;;;GAIG;AACH,qBAAa,wBAAwB;IACvB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAAjB,iBAAiB,EAAE,iBAAiB;IAEjE;;;;;OAKG;IACH,WAAW,CACT,QAAQ,EAAE,qBAAqB,EAAE,EACjC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,sBAAsB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,KAAK,EAC7C,kBAAkB,EAAE,MAAM,KAAK,GAC9B,qBAAqB;IAmBxB;;;;;OAKG;IACH,aAAa,CACX,QAAQ,EAAE,qBAAqB,EAAE,EACjC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,sBAAsB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,KAAK,EAC7C,sBAAsB,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,KAAK,GAC/C,IAAI;IAqBP;;;;;OAKG;IACH,UAAU,CACR,QAAQ,EAAE,qBAAqB,EAAE,EACjC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,gBAAgB,EACzB,sBAAsB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,KAAK,EAC7C,sBAAsB,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,KAAK,GAC/C,IAAI;IAoBP;;;;;OAKG;IACH,YAAY,CACV,QAAQ,EAAE,qBAAqB,EAAE,EACjC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,gBAAgB,EACzB,sBAAsB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,KAAK,EAC7C,sBAAsB,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,KAAK,GAC/C,IAAI;IAoBP;;;;OAIG;IACH,WAAW,CACT,QAAQ,EAAE,qBAAqB,EAAE,EACjC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,sBAAsB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,KAAK,GAC5C,MAAM;IAeT;;;;OAIG;IACH,cAAc,CACZ,QAAQ,EAAE,qBAAqB,EAAE,EACjC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,sBAAsB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,KAAK,EAC7C,uBAAuB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,KAAK,GAC7C,IAAI;CAWR"}