@ethora/chat-component-rn 26.8.5 → 26.8.7

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 (690) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +95 -0
  3. package/lib/commonjs/assets/emojiData.js +40 -0
  4. package/lib/commonjs/assets/emojiData.js.map +1 -0
  5. package/lib/commonjs/assets/icons.js +5 -3
  6. package/lib/commonjs/assets/icons.js.map +1 -1
  7. package/lib/commonjs/components/MainComponents/ChatHeader.js +35 -15
  8. package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
  9. package/lib/commonjs/components/MainComponents/ChatRoom.js +33 -24
  10. package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
  11. package/lib/commonjs/components/MainComponents/ChatWrapper.js +22 -16
  12. package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
  13. package/lib/commonjs/components/MainComponents/EncryptedSendNotice.js +47 -0
  14. package/lib/commonjs/components/MainComponents/EncryptedSendNotice.js.map +1 -0
  15. package/lib/commonjs/components/MainComponents/EncryptionCard.js +286 -0
  16. package/lib/commonjs/components/MainComponents/EncryptionCard.js.map +1 -0
  17. package/lib/commonjs/components/MainComponents/MediaMessage.js +7 -0
  18. package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
  19. package/lib/commonjs/components/MainComponents/MessageContainer.js +4 -12
  20. package/lib/commonjs/components/MainComponents/MessageContainer.js.map +1 -1
  21. package/lib/commonjs/components/MainComponents/MessageList.js +110 -35
  22. package/lib/commonjs/components/MainComponents/MessageList.js.map +1 -1
  23. package/lib/commonjs/components/MainComponents/ReduxWrapper.js +5 -0
  24. package/lib/commonjs/components/MainComponents/ReduxWrapper.js.map +1 -1
  25. package/lib/commonjs/components/MainComponents/RoomList.js +32 -29
  26. package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
  27. package/lib/commonjs/components/MainComponents/RoomStack.js +133 -65
  28. package/lib/commonjs/components/MainComponents/RoomStack.js.map +1 -1
  29. package/lib/commonjs/components/MainComponents/SealedAttachment.js +231 -0
  30. package/lib/commonjs/components/MainComponents/SealedAttachment.js.map +1 -0
  31. package/lib/commonjs/components/MainComponents/SystemMessage.js +6 -2
  32. package/lib/commonjs/components/MainComponents/SystemMessage.js.map +1 -1
  33. package/lib/commonjs/components/MessageBubble/Avatar.js +5 -1
  34. package/lib/commonjs/components/MessageBubble/Avatar.js.map +1 -1
  35. package/lib/commonjs/components/MessageBubble/BottomReplyContainer.js +18 -21
  36. package/lib/commonjs/components/MessageBubble/BottomReplyContainer.js.map +1 -1
  37. package/lib/commonjs/components/MessageBubble/EmojiPickerSheet.js +447 -0
  38. package/lib/commonjs/components/MessageBubble/EmojiPickerSheet.js.map +1 -0
  39. package/lib/commonjs/components/MessageBubble/Message.js +264 -136
  40. package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
  41. package/lib/commonjs/components/MessageBubble/MessageInteractions.js +215 -13
  42. package/lib/commonjs/components/MessageBubble/MessageInteractions.js.map +1 -1
  43. package/lib/commonjs/components/MessageBubble/MessageReaction.js +113 -94
  44. package/lib/commonjs/components/MessageBubble/MessageReaction.js.map +1 -1
  45. package/lib/commonjs/components/MessageBubble/MessageReply.js +66 -24
  46. package/lib/commonjs/components/MessageBubble/MessageReply.js.map +1 -1
  47. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +7 -4
  48. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  49. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +159 -16
  50. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  51. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js +4 -0
  52. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  53. package/lib/commonjs/components/Modals/Modal/SwipeBackLayer.js +76 -44
  54. package/lib/commonjs/components/Modals/Modal/SwipeBackLayer.js.map +1 -1
  55. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js +29 -6
  56. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  57. package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js +5 -1
  58. package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
  59. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js +37 -13
  60. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js.map +1 -1
  61. package/lib/commonjs/components/RoomComponents/LastMessageItem.js +6 -0
  62. package/lib/commonjs/components/RoomComponents/LastMessageItem.js.map +1 -1
  63. package/lib/commonjs/components/RoomComponents/styled/LastAudioMessage.js +2 -2
  64. package/lib/commonjs/components/RoomComponents/styled/LastAudioMessage.js.map +1 -1
  65. package/lib/commonjs/components/RoomComponents/styled/LastMessageEmoji.js +8 -9
  66. package/lib/commonjs/components/RoomComponents/styled/LastMessageEmoji.js.map +1 -1
  67. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js +4 -6
  68. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  69. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js +2 -2
  70. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  71. package/lib/commonjs/components/RoomComponents/styled/LastMessageSealed.js +41 -0
  72. package/lib/commonjs/components/RoomComponents/styled/LastMessageSealed.js.map +1 -0
  73. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js +2 -2
  74. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  75. package/lib/commonjs/components/Thread/ThreadWrapper.js +273 -152
  76. package/lib/commonjs/components/Thread/ThreadWrapper.js.map +1 -1
  77. package/lib/commonjs/components/UsersList/UsersList.js +2 -1
  78. package/lib/commonjs/components/UsersList/UsersList.js.map +1 -1
  79. package/lib/commonjs/components/styled/DateLabel.js +6 -3
  80. package/lib/commonjs/components/styled/DateLabel.js.map +1 -1
  81. package/lib/commonjs/components/styled/SendInput.js +4 -2
  82. package/lib/commonjs/components/styled/SendInput.js.map +1 -1
  83. package/lib/commonjs/context/MessageNotificationContext.js +188 -9
  84. package/lib/commonjs/context/MessageNotificationContext.js.map +1 -1
  85. package/lib/commonjs/context/xmppProvider.js +22 -7
  86. package/lib/commonjs/context/xmppProvider.js.map +1 -1
  87. package/lib/commonjs/e2ee/crypto.js +207 -0
  88. package/lib/commonjs/e2ee/crypto.js.map +1 -0
  89. package/lib/commonjs/e2ee/deviceStore.js +84 -0
  90. package/lib/commonjs/e2ee/deviceStore.js.map +1 -0
  91. package/lib/commonjs/e2ee/fileCipher.js +95 -0
  92. package/lib/commonjs/e2ee/fileCipher.js.map +1 -0
  93. package/lib/commonjs/e2ee/fileEnvelope.js +79 -0
  94. package/lib/commonjs/e2ee/fileEnvelope.js.map +1 -0
  95. package/lib/commonjs/e2ee/index.js +210 -0
  96. package/lib/commonjs/e2ee/index.js.map +1 -0
  97. package/lib/commonjs/e2ee/limits.js +9 -0
  98. package/lib/commonjs/e2ee/limits.js.map +1 -0
  99. package/lib/commonjs/e2ee/ns.js +8 -0
  100. package/lib/commonjs/e2ee/ns.js.map +1 -0
  101. package/lib/commonjs/e2ee/omemo.js +622 -0
  102. package/lib/commonjs/e2ee/omemo.js.map +1 -0
  103. package/lib/commonjs/e2ee/protobuf.js +149 -0
  104. package/lib/commonjs/e2ee/protobuf.js.map +1 -0
  105. package/lib/commonjs/e2ee/ratchet.js +238 -0
  106. package/lib/commonjs/e2ee/ratchet.js.map +1 -0
  107. package/lib/commonjs/e2ee/sealedBody.js +23 -0
  108. package/lib/commonjs/e2ee/sealedBody.js.map +1 -0
  109. package/lib/commonjs/e2ee/sealedFiles.js +174 -0
  110. package/lib/commonjs/e2ee/sealedFiles.js.map +1 -0
  111. package/lib/commonjs/e2ee/send.js +54 -0
  112. package/lib/commonjs/e2ee/send.js.map +1 -0
  113. package/lib/commonjs/e2ee/stanza.js +114 -0
  114. package/lib/commonjs/e2ee/stanza.js.map +1 -0
  115. package/lib/commonjs/e2ee/store.js +43 -0
  116. package/lib/commonjs/e2ee/store.js.map +1 -0
  117. package/lib/commonjs/helpers/accountName.js +23 -0
  118. package/lib/commonjs/helpers/accountName.js.map +1 -0
  119. package/lib/commonjs/helpers/createMessageFromXml.js +19 -4
  120. package/lib/commonjs/helpers/createMessageFromXml.js.map +1 -1
  121. package/lib/commonjs/helpers/createRoomFromApi.js +36 -2
  122. package/lib/commonjs/helpers/createRoomFromApi.js.map +1 -1
  123. package/lib/commonjs/helpers/createUserNameFromSetUser.js +2 -1
  124. package/lib/commonjs/helpers/createUserNameFromSetUser.js.map +1 -1
  125. package/lib/commonjs/helpers/displayName.js +16 -0
  126. package/lib/commonjs/helpers/displayName.js.map +1 -0
  127. package/lib/commonjs/helpers/emoji.js +51 -0
  128. package/lib/commonjs/helpers/emoji.js.map +1 -0
  129. package/lib/commonjs/helpers/haptics.js +29 -0
  130. package/lib/commonjs/helpers/haptics.js.map +1 -0
  131. package/lib/commonjs/helpers/historyPreloadScheduler.js +32 -66
  132. package/lib/commonjs/helpers/historyPreloadScheduler.js.map +1 -1
  133. package/lib/commonjs/helpers/insertMessageWithDelimiter.js +21 -12
  134. package/lib/commonjs/helpers/insertMessageWithDelimiter.js.map +1 -1
  135. package/lib/commonjs/helpers/mamReactions.js +57 -0
  136. package/lib/commonjs/helpers/mamReactions.js.map +1 -0
  137. package/lib/commonjs/helpers/parseMessageReference.js +42 -0
  138. package/lib/commonjs/helpers/parseMessageReference.js.map +1 -0
  139. package/lib/commonjs/helpers/persistCrypto.js +5 -0
  140. package/lib/commonjs/helpers/persistCrypto.js.map +1 -1
  141. package/lib/commonjs/helpers/reactionsConfig.js +17 -0
  142. package/lib/commonjs/helpers/reactionsConfig.js.map +1 -0
  143. package/lib/commonjs/helpers/secureKeyValue.js +20 -0
  144. package/lib/commonjs/helpers/secureKeyValue.js.map +1 -1
  145. package/lib/commonjs/helpers/updateMessagesTillLast.js +17 -2
  146. package/lib/commonjs/helpers/updateMessagesTillLast.js.map +1 -1
  147. package/lib/commonjs/helpers/videoCache.js +136 -0
  148. package/lib/commonjs/helpers/videoCache.js.map +1 -0
  149. package/lib/commonjs/hooks/useHeapSender.js +3 -1
  150. package/lib/commonjs/hooks/useHeapSender.js.map +1 -1
  151. package/lib/commonjs/hooks/useLogout.js +8 -0
  152. package/lib/commonjs/hooks/useLogout.js.map +1 -1
  153. package/lib/commonjs/hooks/useMessageHeapState.js +3 -2
  154. package/lib/commonjs/hooks/useMessageHeapState.js.map +1 -1
  155. package/lib/commonjs/hooks/useRoomInitialization.js +16 -7
  156. package/lib/commonjs/hooks/useRoomInitialization.js.map +1 -1
  157. package/lib/commonjs/hooks/useSendMessage.js +85 -15
  158. package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
  159. package/lib/commonjs/hooks/useUnreadMessagesCounter.js +1 -1
  160. package/lib/commonjs/hooks/useUnreadMessagesCounter.js.map +1 -1
  161. package/lib/commonjs/i18n/strings.js +180 -0
  162. package/lib/commonjs/i18n/strings.js.map +1 -1
  163. package/lib/commonjs/main.js +13 -0
  164. package/lib/commonjs/main.js.map +1 -1
  165. package/lib/commonjs/networking/api-requests/auth.api.js +4 -1
  166. package/lib/commonjs/networking/api-requests/auth.api.js.map +1 -1
  167. package/lib/commonjs/networking/api-requests/rooms.api.js +111 -17
  168. package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
  169. package/lib/commonjs/networking/stanzaHandlers.js +106 -50
  170. package/lib/commonjs/networking/stanzaHandlers.js.map +1 -1
  171. package/lib/commonjs/networking/xmpp/getHistory.xmpp.js +29 -74
  172. package/lib/commonjs/networking/xmpp/getHistory.xmpp.js.map +1 -1
  173. package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js +44 -0
  174. package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
  175. package/lib/commonjs/networking/xmpp/mamRouter.js +186 -0
  176. package/lib/commonjs/networking/xmpp/mamRouter.js.map +1 -0
  177. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js +41 -4
  178. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  179. package/lib/commonjs/networking/xmpp/sendMediaMessage.xmpp.js +16 -3
  180. package/lib/commonjs/networking/xmpp/sendMediaMessage.xmpp.js.map +1 -1
  181. package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js +13 -6
  182. package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
  183. package/lib/commonjs/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js +14 -6
  184. package/lib/commonjs/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js.map +1 -1
  185. package/lib/commonjs/networking/xmppClient.js +104 -23
  186. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  187. package/lib/commonjs/roomStore/Middleware/newMessageMidlleware.js +29 -34
  188. package/lib/commonjs/roomStore/Middleware/newMessageMidlleware.js.map +1 -1
  189. package/lib/commonjs/roomStore/Middleware/perfMiddleware.js +51 -0
  190. package/lib/commonjs/roomStore/Middleware/perfMiddleware.js.map +1 -0
  191. package/lib/commonjs/roomStore/Middleware/reactionsMiddleware.js +66 -43
  192. package/lib/commonjs/roomStore/Middleware/reactionsMiddleware.js.map +1 -1
  193. package/lib/commonjs/roomStore/Middleware/unreadMidlleware.js +88 -68
  194. package/lib/commonjs/roomStore/Middleware/unreadMidlleware.js.map +1 -1
  195. package/lib/commonjs/roomStore/index.js +18 -14
  196. package/lib/commonjs/roomStore/index.js.map +1 -1
  197. package/lib/commonjs/roomStore/persistBackend.js +93 -0
  198. package/lib/commonjs/roomStore/persistBackend.js.map +1 -0
  199. package/lib/commonjs/roomStore/persistence.js +253 -51
  200. package/lib/commonjs/roomStore/persistence.js.map +1 -1
  201. package/lib/commonjs/roomStore/roomsSlice.js +282 -136
  202. package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
  203. package/lib/commonjs/theme/theme.js +3 -0
  204. package/lib/commonjs/theme/theme.js.map +1 -1
  205. package/lib/commonjs/utils/devLogger.js +14 -0
  206. package/lib/commonjs/utils/devLogger.js.map +1 -1
  207. package/lib/commonjs/version.js +1 -1
  208. package/lib/module/assets/emojiData.js +36 -0
  209. package/lib/module/assets/emojiData.js.map +1 -0
  210. package/lib/module/assets/icons.js +4 -2
  211. package/lib/module/assets/icons.js.map +1 -1
  212. package/lib/module/components/MainComponents/ChatHeader.js +37 -17
  213. package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
  214. package/lib/module/components/MainComponents/ChatRoom.js +34 -25
  215. package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
  216. package/lib/module/components/MainComponents/ChatWrapper.js +23 -17
  217. package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
  218. package/lib/module/components/MainComponents/EncryptedSendNotice.js +42 -0
  219. package/lib/module/components/MainComponents/EncryptedSendNotice.js.map +1 -0
  220. package/lib/module/components/MainComponents/EncryptionCard.js +281 -0
  221. package/lib/module/components/MainComponents/EncryptionCard.js.map +1 -0
  222. package/lib/module/components/MainComponents/MediaMessage.js +7 -0
  223. package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
  224. package/lib/module/components/MainComponents/MessageContainer.js +7 -14
  225. package/lib/module/components/MainComponents/MessageContainer.js.map +1 -1
  226. package/lib/module/components/MainComponents/MessageList.js +110 -35
  227. package/lib/module/components/MainComponents/MessageList.js.map +1 -1
  228. package/lib/module/components/MainComponents/ReduxWrapper.js +5 -0
  229. package/lib/module/components/MainComponents/ReduxWrapper.js.map +1 -1
  230. package/lib/module/components/MainComponents/RoomList.js +32 -29
  231. package/lib/module/components/MainComponents/RoomList.js.map +1 -1
  232. package/lib/module/components/MainComponents/RoomStack.js +131 -63
  233. package/lib/module/components/MainComponents/RoomStack.js.map +1 -1
  234. package/lib/module/components/MainComponents/SealedAttachment.js +224 -0
  235. package/lib/module/components/MainComponents/SealedAttachment.js.map +1 -0
  236. package/lib/module/components/MainComponents/SystemMessage.js +6 -2
  237. package/lib/module/components/MainComponents/SystemMessage.js.map +1 -1
  238. package/lib/module/components/MessageBubble/Avatar.js +5 -1
  239. package/lib/module/components/MessageBubble/Avatar.js.map +1 -1
  240. package/lib/module/components/MessageBubble/BottomReplyContainer.js +19 -22
  241. package/lib/module/components/MessageBubble/BottomReplyContainer.js.map +1 -1
  242. package/lib/module/components/MessageBubble/EmojiPickerSheet.js +438 -0
  243. package/lib/module/components/MessageBubble/EmojiPickerSheet.js.map +1 -0
  244. package/lib/module/components/MessageBubble/Message.js +269 -140
  245. package/lib/module/components/MessageBubble/Message.js.map +1 -1
  246. package/lib/module/components/MessageBubble/MessageInteractions.js +217 -15
  247. package/lib/module/components/MessageBubble/MessageInteractions.js.map +1 -1
  248. package/lib/module/components/MessageBubble/MessageReaction.js +115 -94
  249. package/lib/module/components/MessageBubble/MessageReaction.js.map +1 -1
  250. package/lib/module/components/MessageBubble/MessageReply.js +65 -24
  251. package/lib/module/components/MessageBubble/MessageReply.js.map +1 -1
  252. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +7 -4
  253. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  254. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +161 -18
  255. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  256. package/lib/module/components/Modals/FilePreviewModal/PdfView.js +4 -0
  257. package/lib/module/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  258. package/lib/module/components/Modals/Modal/SwipeBackLayer.js +76 -44
  259. package/lib/module/components/Modals/Modal/SwipeBackLayer.js.map +1 -1
  260. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js +32 -8
  261. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  262. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js +4 -0
  263. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
  264. package/lib/module/components/RoomComponents/ChatRoomItem.js +37 -13
  265. package/lib/module/components/RoomComponents/ChatRoomItem.js.map +1 -1
  266. package/lib/module/components/RoomComponents/LastMessageItem.js +6 -0
  267. package/lib/module/components/RoomComponents/LastMessageItem.js.map +1 -1
  268. package/lib/module/components/RoomComponents/styled/LastAudioMessage.js +2 -2
  269. package/lib/module/components/RoomComponents/styled/LastAudioMessage.js.map +1 -1
  270. package/lib/module/components/RoomComponents/styled/LastMessageEmoji.js +8 -9
  271. package/lib/module/components/RoomComponents/styled/LastMessageEmoji.js.map +1 -1
  272. package/lib/module/components/RoomComponents/styled/LastMessageFile.js +4 -6
  273. package/lib/module/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  274. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js +2 -2
  275. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  276. package/lib/module/components/RoomComponents/styled/LastMessageSealed.js +36 -0
  277. package/lib/module/components/RoomComponents/styled/LastMessageSealed.js.map +1 -0
  278. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js +2 -2
  279. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  280. package/lib/module/components/Thread/ThreadWrapper.js +273 -153
  281. package/lib/module/components/Thread/ThreadWrapper.js.map +1 -1
  282. package/lib/module/components/UsersList/UsersList.js +2 -1
  283. package/lib/module/components/UsersList/UsersList.js.map +1 -1
  284. package/lib/module/components/styled/DateLabel.js +6 -3
  285. package/lib/module/components/styled/DateLabel.js.map +1 -1
  286. package/lib/module/components/styled/SendInput.js +4 -2
  287. package/lib/module/components/styled/SendInput.js.map +1 -1
  288. package/lib/module/context/MessageNotificationContext.js +190 -11
  289. package/lib/module/context/MessageNotificationContext.js.map +1 -1
  290. package/lib/module/context/xmppProvider.js +22 -7
  291. package/lib/module/context/xmppProvider.js.map +1 -1
  292. package/lib/module/e2ee/crypto.js +170 -0
  293. package/lib/module/e2ee/crypto.js.map +1 -0
  294. package/lib/module/e2ee/deviceStore.js +77 -0
  295. package/lib/module/e2ee/deviceStore.js.map +1 -0
  296. package/lib/module/e2ee/fileCipher.js +90 -0
  297. package/lib/module/e2ee/fileCipher.js.map +1 -0
  298. package/lib/module/e2ee/fileEnvelope.js +66 -0
  299. package/lib/module/e2ee/fileEnvelope.js.map +1 -0
  300. package/lib/module/e2ee/index.js +185 -0
  301. package/lib/module/e2ee/index.js.map +1 -0
  302. package/lib/module/e2ee/limits.js +5 -0
  303. package/lib/module/e2ee/limits.js.map +1 -0
  304. package/lib/module/e2ee/ns.js +4 -0
  305. package/lib/module/e2ee/ns.js.map +1 -0
  306. package/lib/module/e2ee/omemo.js +610 -0
  307. package/lib/module/e2ee/omemo.js.map +1 -0
  308. package/lib/module/e2ee/protobuf.js +140 -0
  309. package/lib/module/e2ee/protobuf.js.map +1 -0
  310. package/lib/module/e2ee/ratchet.js +228 -0
  311. package/lib/module/e2ee/ratchet.js.map +1 -0
  312. package/lib/module/e2ee/sealedBody.js +19 -0
  313. package/lib/module/e2ee/sealedBody.js.map +1 -0
  314. package/lib/module/e2ee/sealedFiles.js +154 -0
  315. package/lib/module/e2ee/sealedFiles.js.map +1 -0
  316. package/lib/module/e2ee/send.js +48 -0
  317. package/lib/module/e2ee/send.js.map +1 -0
  318. package/lib/module/e2ee/stanza.js +107 -0
  319. package/lib/module/e2ee/stanza.js.map +1 -0
  320. package/lib/module/e2ee/store.js +35 -0
  321. package/lib/module/e2ee/store.js.map +1 -0
  322. package/lib/module/helpers/accountName.js +18 -0
  323. package/lib/module/helpers/accountName.js.map +1 -0
  324. package/lib/module/helpers/createMessageFromXml.js +19 -4
  325. package/lib/module/helpers/createMessageFromXml.js.map +1 -1
  326. package/lib/module/helpers/createRoomFromApi.js +36 -2
  327. package/lib/module/helpers/createRoomFromApi.js.map +1 -1
  328. package/lib/module/helpers/createUserNameFromSetUser.js +3 -1
  329. package/lib/module/helpers/createUserNameFromSetUser.js.map +1 -1
  330. package/lib/module/helpers/displayName.js +11 -0
  331. package/lib/module/helpers/displayName.js.map +1 -0
  332. package/lib/module/helpers/emoji.js +44 -0
  333. package/lib/module/helpers/emoji.js.map +1 -0
  334. package/lib/module/helpers/haptics.js +24 -0
  335. package/lib/module/helpers/haptics.js.map +1 -0
  336. package/lib/module/helpers/historyPreloadScheduler.js +32 -66
  337. package/lib/module/helpers/historyPreloadScheduler.js.map +1 -1
  338. package/lib/module/helpers/insertMessageWithDelimiter.js +21 -12
  339. package/lib/module/helpers/insertMessageWithDelimiter.js.map +1 -1
  340. package/lib/module/helpers/mamReactions.js +51 -0
  341. package/lib/module/helpers/mamReactions.js.map +1 -0
  342. package/lib/module/helpers/parseMessageReference.js +37 -0
  343. package/lib/module/helpers/parseMessageReference.js.map +1 -0
  344. package/lib/module/helpers/persistCrypto.js +4 -0
  345. package/lib/module/helpers/persistCrypto.js.map +1 -1
  346. package/lib/module/helpers/reactionsConfig.js +10 -0
  347. package/lib/module/helpers/reactionsConfig.js.map +1 -0
  348. package/lib/module/helpers/secureKeyValue.js +19 -0
  349. package/lib/module/helpers/secureKeyValue.js.map +1 -1
  350. package/lib/module/helpers/updateMessagesTillLast.js +17 -2
  351. package/lib/module/helpers/updateMessagesTillLast.js.map +1 -1
  352. package/lib/module/helpers/videoCache.js +125 -0
  353. package/lib/module/helpers/videoCache.js.map +1 -0
  354. package/lib/module/hooks/useHeapSender.js +3 -1
  355. package/lib/module/hooks/useHeapSender.js.map +1 -1
  356. package/lib/module/hooks/useLogout.js +8 -0
  357. package/lib/module/hooks/useLogout.js.map +1 -1
  358. package/lib/module/hooks/useMessageHeapState.js +3 -2
  359. package/lib/module/hooks/useMessageHeapState.js.map +1 -1
  360. package/lib/module/hooks/useRoomInitialization.js +17 -8
  361. package/lib/module/hooks/useRoomInitialization.js.map +1 -1
  362. package/lib/module/hooks/useSendMessage.js +85 -15
  363. package/lib/module/hooks/useSendMessage.js.map +1 -1
  364. package/lib/module/hooks/useUnreadMessagesCounter.js +1 -1
  365. package/lib/module/hooks/useUnreadMessagesCounter.js.map +1 -1
  366. package/lib/module/i18n/strings.js +180 -0
  367. package/lib/module/i18n/strings.js.map +1 -1
  368. package/lib/module/main.js +1 -0
  369. package/lib/module/main.js.map +1 -1
  370. package/lib/module/networking/api-requests/auth.api.js +4 -1
  371. package/lib/module/networking/api-requests/auth.api.js.map +1 -1
  372. package/lib/module/networking/api-requests/rooms.api.js +109 -18
  373. package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
  374. package/lib/module/networking/stanzaHandlers.js +107 -51
  375. package/lib/module/networking/stanzaHandlers.js.map +1 -1
  376. package/lib/module/networking/xmpp/getHistory.xmpp.js +29 -74
  377. package/lib/module/networking/xmpp/getHistory.xmpp.js.map +1 -1
  378. package/lib/module/networking/xmpp/handleStanzas.xmpp.js +42 -0
  379. package/lib/module/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
  380. package/lib/module/networking/xmpp/mamRouter.js +175 -0
  381. package/lib/module/networking/xmpp/mamRouter.js.map +1 -0
  382. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js +38 -2
  383. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  384. package/lib/module/networking/xmpp/sendMediaMessage.xmpp.js +16 -3
  385. package/lib/module/networking/xmpp/sendMediaMessage.xmpp.js.map +1 -1
  386. package/lib/module/networking/xmpp/sendTextMessage.xmpp.js +13 -6
  387. package/lib/module/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
  388. package/lib/module/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js +14 -6
  389. package/lib/module/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js.map +1 -1
  390. package/lib/module/networking/xmppClient.js +105 -24
  391. package/lib/module/networking/xmppClient.js.map +1 -1
  392. package/lib/module/roomStore/Middleware/newMessageMidlleware.js +29 -34
  393. package/lib/module/roomStore/Middleware/newMessageMidlleware.js.map +1 -1
  394. package/lib/module/roomStore/Middleware/perfMiddleware.js +45 -0
  395. package/lib/module/roomStore/Middleware/perfMiddleware.js.map +1 -0
  396. package/lib/module/roomStore/Middleware/reactionsMiddleware.js +66 -43
  397. package/lib/module/roomStore/Middleware/reactionsMiddleware.js.map +1 -1
  398. package/lib/module/roomStore/Middleware/unreadMidlleware.js +89 -69
  399. package/lib/module/roomStore/Middleware/unreadMidlleware.js.map +1 -1
  400. package/lib/module/roomStore/index.js +19 -15
  401. package/lib/module/roomStore/index.js.map +1 -1
  402. package/lib/module/roomStore/persistBackend.js +86 -0
  403. package/lib/module/roomStore/persistBackend.js.map +1 -0
  404. package/lib/module/roomStore/persistence.js +253 -49
  405. package/lib/module/roomStore/persistence.js.map +1 -1
  406. package/lib/module/roomStore/roomsSlice.js +275 -134
  407. package/lib/module/roomStore/roomsSlice.js.map +1 -1
  408. package/lib/module/theme/theme.js +3 -0
  409. package/lib/module/theme/theme.js.map +1 -1
  410. package/lib/module/utils/devLogger.js +13 -0
  411. package/lib/module/utils/devLogger.js.map +1 -1
  412. package/lib/module/version.js +1 -1
  413. package/lib/typescript/assets/emojiData.d.ts +8 -0
  414. package/lib/typescript/assets/emojiData.d.ts.map +1 -0
  415. package/lib/typescript/assets/icons.d.ts +8 -0
  416. package/lib/typescript/assets/icons.d.ts.map +1 -1
  417. package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
  418. package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
  419. package/lib/typescript/components/MainComponents/ChatWrapper.d.ts.map +1 -1
  420. package/lib/typescript/components/MainComponents/EncryptedSendNotice.d.ts +4 -0
  421. package/lib/typescript/components/MainComponents/EncryptedSendNotice.d.ts.map +1 -0
  422. package/lib/typescript/components/MainComponents/EncryptionCard.d.ts +10 -0
  423. package/lib/typescript/components/MainComponents/EncryptionCard.d.ts.map +1 -0
  424. package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
  425. package/lib/typescript/components/MainComponents/MessageContainer.d.ts +2 -2
  426. package/lib/typescript/components/MainComponents/MessageContainer.d.ts.map +1 -1
  427. package/lib/typescript/components/MainComponents/MessageList.d.ts.map +1 -1
  428. package/lib/typescript/components/MainComponents/ReduxWrapper.d.ts.map +1 -1
  429. package/lib/typescript/components/MainComponents/RoomList.d.ts.map +1 -1
  430. package/lib/typescript/components/MainComponents/RoomStack.d.ts +7 -2
  431. package/lib/typescript/components/MainComponents/RoomStack.d.ts.map +1 -1
  432. package/lib/typescript/components/MainComponents/SealedAttachment.d.ts +13 -0
  433. package/lib/typescript/components/MainComponents/SealedAttachment.d.ts.map +1 -0
  434. package/lib/typescript/components/MainComponents/SystemMessage.d.ts.map +1 -1
  435. package/lib/typescript/components/MessageBubble/Avatar.d.ts +2 -0
  436. package/lib/typescript/components/MessageBubble/Avatar.d.ts.map +1 -1
  437. package/lib/typescript/components/MessageBubble/BottomReplyContainer.d.ts.map +1 -1
  438. package/lib/typescript/components/MessageBubble/EmojiPickerSheet.d.ts +11 -0
  439. package/lib/typescript/components/MessageBubble/EmojiPickerSheet.d.ts.map +1 -0
  440. package/lib/typescript/components/MessageBubble/Message.d.ts +2 -2
  441. package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
  442. package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts +2 -0
  443. package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts.map +1 -1
  444. package/lib/typescript/components/MessageBubble/MessageReaction.d.ts +1 -0
  445. package/lib/typescript/components/MessageBubble/MessageReaction.d.ts.map +1 -1
  446. package/lib/typescript/components/MessageBubble/MessageReply.d.ts +7 -7
  447. package/lib/typescript/components/MessageBubble/MessageReply.d.ts.map +1 -1
  448. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
  449. package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts.map +1 -1
  450. package/lib/typescript/components/Modals/FilePreviewModal/PdfView.d.ts.map +1 -1
  451. package/lib/typescript/components/Modals/Modal/SwipeBackLayer.d.ts +2 -1
  452. package/lib/typescript/components/Modals/Modal/SwipeBackLayer.d.ts.map +1 -1
  453. package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts.map +1 -1
  454. package/lib/typescript/components/Modals/UserSettingsModal/UserSettingsModal.d.ts.map +1 -1
  455. package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts +2 -2
  456. package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts.map +1 -1
  457. package/lib/typescript/components/RoomComponents/LastMessageItem.d.ts.map +1 -1
  458. package/lib/typescript/components/RoomComponents/styled/LastAudioMessage.d.ts.map +1 -1
  459. package/lib/typescript/components/RoomComponents/styled/LastMessageEmoji.d.ts +3 -6
  460. package/lib/typescript/components/RoomComponents/styled/LastMessageEmoji.d.ts.map +1 -1
  461. package/lib/typescript/components/RoomComponents/styled/LastMessageSealed.d.ts +7 -0
  462. package/lib/typescript/components/RoomComponents/styled/LastMessageSealed.d.ts.map +1 -0
  463. package/lib/typescript/components/Thread/ThreadWrapper.d.ts +7 -1
  464. package/lib/typescript/components/Thread/ThreadWrapper.d.ts.map +1 -1
  465. package/lib/typescript/components/UsersList/UsersList.d.ts.map +1 -1
  466. package/lib/typescript/components/styled/DateLabel.d.ts +1 -0
  467. package/lib/typescript/components/styled/DateLabel.d.ts.map +1 -1
  468. package/lib/typescript/components/styled/SendInput.d.ts +1 -0
  469. package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
  470. package/lib/typescript/context/MessageNotificationContext.d.ts.map +1 -1
  471. package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
  472. package/lib/typescript/e2ee/crypto.d.ts +28 -0
  473. package/lib/typescript/e2ee/crypto.d.ts.map +1 -0
  474. package/lib/typescript/e2ee/deviceStore.d.ts +4 -0
  475. package/lib/typescript/e2ee/deviceStore.d.ts.map +1 -0
  476. package/lib/typescript/e2ee/fileCipher.d.ts +7 -0
  477. package/lib/typescript/e2ee/fileCipher.d.ts.map +1 -0
  478. package/lib/typescript/e2ee/fileEnvelope.d.ts +27 -0
  479. package/lib/typescript/e2ee/fileEnvelope.d.ts.map +1 -0
  480. package/lib/typescript/e2ee/index.d.ts +23 -0
  481. package/lib/typescript/e2ee/index.d.ts.map +1 -0
  482. package/lib/typescript/e2ee/limits.d.ts +3 -0
  483. package/lib/typescript/e2ee/limits.d.ts.map +1 -0
  484. package/lib/typescript/e2ee/ns.d.ts +2 -0
  485. package/lib/typescript/e2ee/ns.d.ts.map +1 -0
  486. package/lib/typescript/e2ee/omemo.d.ts +64 -0
  487. package/lib/typescript/e2ee/omemo.d.ts.map +1 -0
  488. package/lib/typescript/e2ee/protobuf.d.ts +25 -0
  489. package/lib/typescript/e2ee/protobuf.d.ts.map +1 -0
  490. package/lib/typescript/e2ee/ratchet.d.ts +39 -0
  491. package/lib/typescript/e2ee/ratchet.d.ts.map +1 -0
  492. package/lib/typescript/e2ee/sealedBody.d.ts +2 -0
  493. package/lib/typescript/e2ee/sealedBody.d.ts.map +1 -0
  494. package/lib/typescript/e2ee/sealedFiles.d.ts +31 -0
  495. package/lib/typescript/e2ee/sealedFiles.d.ts.map +1 -0
  496. package/lib/typescript/e2ee/send.d.ts +6 -0
  497. package/lib/typescript/e2ee/send.d.ts.map +1 -0
  498. package/lib/typescript/e2ee/stanza.d.ts +8 -0
  499. package/lib/typescript/e2ee/stanza.d.ts.map +1 -0
  500. package/lib/typescript/e2ee/store.d.ts +16 -0
  501. package/lib/typescript/e2ee/store.d.ts.map +1 -0
  502. package/lib/typescript/helpers/accountName.d.ts +7 -0
  503. package/lib/typescript/helpers/accountName.d.ts.map +1 -0
  504. package/lib/typescript/helpers/createMessageFromXml.d.ts.map +1 -1
  505. package/lib/typescript/helpers/createRoomFromApi.d.ts.map +1 -1
  506. package/lib/typescript/helpers/createUserNameFromSetUser.d.ts.map +1 -1
  507. package/lib/typescript/helpers/displayName.d.ts +2 -0
  508. package/lib/typescript/helpers/displayName.d.ts.map +1 -0
  509. package/lib/typescript/helpers/emoji.d.ts +6 -0
  510. package/lib/typescript/helpers/emoji.d.ts.map +1 -0
  511. package/lib/typescript/helpers/haptics.d.ts +3 -0
  512. package/lib/typescript/helpers/haptics.d.ts.map +1 -0
  513. package/lib/typescript/helpers/historyPreloadScheduler.d.ts +1 -0
  514. package/lib/typescript/helpers/historyPreloadScheduler.d.ts.map +1 -1
  515. package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts.map +1 -1
  516. package/lib/typescript/helpers/mamReactions.d.ts +13 -0
  517. package/lib/typescript/helpers/mamReactions.d.ts.map +1 -0
  518. package/lib/typescript/helpers/parseMessageReference.d.ts +16 -0
  519. package/lib/typescript/helpers/parseMessageReference.d.ts.map +1 -0
  520. package/lib/typescript/helpers/persistCrypto.d.ts +1 -0
  521. package/lib/typescript/helpers/persistCrypto.d.ts.map +1 -1
  522. package/lib/typescript/helpers/reactionsConfig.d.ts +5 -0
  523. package/lib/typescript/helpers/reactionsConfig.d.ts.map +1 -0
  524. package/lib/typescript/helpers/secureKeyValue.d.ts +4 -0
  525. package/lib/typescript/helpers/secureKeyValue.d.ts.map +1 -1
  526. package/lib/typescript/helpers/updateMessagesTillLast.d.ts.map +1 -1
  527. package/lib/typescript/helpers/videoCache.d.ts +19 -0
  528. package/lib/typescript/helpers/videoCache.d.ts.map +1 -0
  529. package/lib/typescript/hooks/useHeapSender.d.ts.map +1 -1
  530. package/lib/typescript/hooks/useLogout.d.ts.map +1 -1
  531. package/lib/typescript/hooks/useMessageHeapState.d.ts.map +1 -1
  532. package/lib/typescript/hooks/useRoomInitialization.d.ts +2 -2
  533. package/lib/typescript/hooks/useRoomInitialization.d.ts.map +1 -1
  534. package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
  535. package/lib/typescript/i18n/strings.d.ts.map +1 -1
  536. package/lib/typescript/main.d.ts +2 -0
  537. package/lib/typescript/main.d.ts.map +1 -1
  538. package/lib/typescript/networking/api-requests/auth.api.d.ts +4 -1
  539. package/lib/typescript/networking/api-requests/auth.api.d.ts.map +1 -1
  540. package/lib/typescript/networking/api-requests/rooms.api.d.ts +22 -1
  541. package/lib/typescript/networking/api-requests/rooms.api.d.ts.map +1 -1
  542. package/lib/typescript/networking/stanzaHandlers.d.ts +4 -2
  543. package/lib/typescript/networking/stanzaHandlers.d.ts.map +1 -1
  544. package/lib/typescript/networking/xmpp/getHistory.xmpp.d.ts +3 -1
  545. package/lib/typescript/networking/xmpp/getHistory.xmpp.d.ts.map +1 -1
  546. package/lib/typescript/networking/xmpp/handleStanzas.xmpp.d.ts +1 -0
  547. package/lib/typescript/networking/xmpp/handleStanzas.xmpp.d.ts.map +1 -1
  548. package/lib/typescript/networking/xmpp/mamRouter.d.ts +23 -0
  549. package/lib/typescript/networking/xmpp/mamRouter.d.ts.map +1 -0
  550. package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts +1 -0
  551. package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts.map +1 -1
  552. package/lib/typescript/networking/xmpp/sendMediaMessage.xmpp.d.ts.map +1 -1
  553. package/lib/typescript/networking/xmpp/sendTextMessage.xmpp.d.ts.map +1 -1
  554. package/lib/typescript/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.d.ts.map +1 -1
  555. package/lib/typescript/networking/xmppClient.d.ts +22 -1
  556. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  557. package/lib/typescript/roomStore/Middleware/newMessageMidlleware.d.ts.map +1 -1
  558. package/lib/typescript/roomStore/Middleware/perfMiddleware.d.ts +4 -0
  559. package/lib/typescript/roomStore/Middleware/perfMiddleware.d.ts.map +1 -0
  560. package/lib/typescript/roomStore/Middleware/reactionsMiddleware.d.ts +9 -0
  561. package/lib/typescript/roomStore/Middleware/reactionsMiddleware.d.ts.map +1 -1
  562. package/lib/typescript/roomStore/Middleware/unreadMidlleware.d.ts.map +1 -1
  563. package/lib/typescript/roomStore/index.d.ts.map +1 -1
  564. package/lib/typescript/roomStore/persistBackend.d.ts +11 -0
  565. package/lib/typescript/roomStore/persistBackend.d.ts.map +1 -0
  566. package/lib/typescript/roomStore/persistence.d.ts +5 -6
  567. package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
  568. package/lib/typescript/roomStore/roomsSlice.d.ts +41 -1
  569. package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
  570. package/lib/typescript/theme/theme.d.ts +4 -1
  571. package/lib/typescript/theme/theme.d.ts.map +1 -1
  572. package/lib/typescript/types/models/message.model.d.ts +9 -0
  573. package/lib/typescript/types/models/message.model.d.ts.map +1 -1
  574. package/lib/typescript/types/models/room.model.d.ts +21 -0
  575. package/lib/typescript/types/models/room.model.d.ts.map +1 -1
  576. package/lib/typescript/types/models/xmpp.model.d.ts +6 -1
  577. package/lib/typescript/types/models/xmpp.model.d.ts.map +1 -1
  578. package/lib/typescript/types/types.d.ts +19 -3
  579. package/lib/typescript/types/types.d.ts.map +1 -1
  580. package/lib/typescript/utils/devLogger.d.ts +8 -0
  581. package/lib/typescript/utils/devLogger.d.ts.map +1 -1
  582. package/lib/typescript/version.d.ts +1 -1
  583. package/package.json +14 -1
  584. package/src/assets/emojiData.ts +2146 -0
  585. package/src/assets/icons.tsx +32 -5
  586. package/src/components/MainComponents/ChatHeader.tsx +46 -16
  587. package/src/components/MainComponents/ChatRoom.tsx +46 -30
  588. package/src/components/MainComponents/ChatWrapper.tsx +28 -10
  589. package/src/components/MainComponents/EncryptedSendNotice.tsx +35 -0
  590. package/src/components/MainComponents/EncryptionCard.tsx +287 -0
  591. package/src/components/MainComponents/MediaMessage.tsx +5 -0
  592. package/src/components/MainComponents/MessageContainer.tsx +7 -15
  593. package/src/components/MainComponents/MessageList.tsx +96 -43
  594. package/src/components/MainComponents/ReduxWrapper.tsx +5 -0
  595. package/src/components/MainComponents/RoomList.tsx +28 -29
  596. package/src/components/MainComponents/RoomStack.tsx +156 -83
  597. package/src/components/MainComponents/SealedAttachment.tsx +251 -0
  598. package/src/components/MainComponents/SystemMessage.tsx +6 -2
  599. package/src/components/MessageBubble/Avatar.tsx +7 -1
  600. package/src/components/MessageBubble/BottomReplyContainer.tsx +20 -21
  601. package/src/components/MessageBubble/EmojiPickerSheet.tsx +468 -0
  602. package/src/components/MessageBubble/Message.tsx +242 -93
  603. package/src/components/MessageBubble/MessageInteractions.tsx +215 -15
  604. package/src/components/MessageBubble/MessageReaction.tsx +120 -96
  605. package/src/components/MessageBubble/MessageReply.tsx +65 -32
  606. package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +7 -4
  607. package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +181 -35
  608. package/src/components/Modals/FilePreviewModal/PdfView.tsx +4 -0
  609. package/src/components/Modals/Modal/SwipeBackLayer.tsx +114 -63
  610. package/src/components/Modals/UserProfileModal/UserProfileModal.tsx +53 -8
  611. package/src/components/Modals/UserSettingsModal/UserSettingsModal.tsx +5 -0
  612. package/src/components/RoomComponents/ChatRoomItem.tsx +34 -15
  613. package/src/components/RoomComponents/LastMessageItem.tsx +5 -0
  614. package/src/components/RoomComponents/styled/LastAudioMessage.tsx +3 -1
  615. package/src/components/RoomComponents/styled/LastMessageEmoji.tsx +7 -8
  616. package/src/components/RoomComponents/styled/LastMessageFile.tsx +2 -2
  617. package/src/components/RoomComponents/styled/LastMessagePhoto.tsx +1 -1
  618. package/src/components/RoomComponents/styled/LastMessageSealed.tsx +31 -0
  619. package/src/components/RoomComponents/styled/LastMessageVideo.tsx +1 -1
  620. package/src/components/Thread/ThreadWrapper.tsx +287 -198
  621. package/src/components/UsersList/UsersList.tsx +2 -1
  622. package/src/components/styled/DateLabel.tsx +7 -3
  623. package/src/components/styled/SendInput.tsx +5 -2
  624. package/src/context/MessageNotificationContext.tsx +205 -7
  625. package/src/context/xmppProvider.tsx +29 -9
  626. package/src/e2ee/crypto.ts +194 -0
  627. package/src/e2ee/deviceStore.ts +80 -0
  628. package/src/e2ee/fileCipher.ts +86 -0
  629. package/src/e2ee/fileEnvelope.ts +115 -0
  630. package/src/e2ee/index.ts +192 -0
  631. package/src/e2ee/limits.ts +2 -0
  632. package/src/e2ee/ns.ts +1 -0
  633. package/src/e2ee/omemo.ts +802 -0
  634. package/src/e2ee/protobuf.ts +188 -0
  635. package/src/e2ee/ratchet.ts +271 -0
  636. package/src/e2ee/sealedBody.ts +17 -0
  637. package/src/e2ee/sealedFiles.ts +181 -0
  638. package/src/e2ee/send.ts +70 -0
  639. package/src/e2ee/stanza.ts +133 -0
  640. package/src/e2ee/store.ts +54 -0
  641. package/src/helpers/accountName.ts +15 -0
  642. package/src/helpers/createMessageFromXml.ts +31 -6
  643. package/src/helpers/createRoomFromApi.tsx +37 -1
  644. package/src/helpers/createUserNameFromSetUser.ts +2 -1
  645. package/src/helpers/displayName.ts +9 -0
  646. package/src/helpers/emoji.ts +39 -0
  647. package/src/helpers/haptics.ts +19 -0
  648. package/src/helpers/historyPreloadScheduler.ts +37 -69
  649. package/src/helpers/insertMessageWithDelimiter.ts +23 -16
  650. package/src/helpers/mamReactions.ts +59 -0
  651. package/src/helpers/parseMessageReference.ts +38 -0
  652. package/src/helpers/persistCrypto.ts +5 -0
  653. package/src/helpers/reactionsConfig.ts +13 -0
  654. package/src/helpers/secureKeyValue.ts +15 -0
  655. package/src/helpers/updateMessagesTillLast.tsx +14 -2
  656. package/src/helpers/videoCache.ts +138 -0
  657. package/src/hooks/useHeapSender.tsx +3 -2
  658. package/src/hooks/useLogout.tsx +9 -0
  659. package/src/hooks/useMessageHeapState.tsx +6 -2
  660. package/src/hooks/useRoomInitialization.tsx +32 -15
  661. package/src/hooks/useSendMessage.tsx +89 -16
  662. package/src/hooks/useUnreadMessagesCounter.ts +1 -1
  663. package/src/i18n/strings.ts +180 -0
  664. package/src/main.ts +2 -0
  665. package/src/networking/api-requests/auth.api.ts +9 -1
  666. package/src/networking/api-requests/rooms.api.ts +121 -18
  667. package/src/networking/stanzaHandlers.ts +116 -60
  668. package/src/networking/xmpp/getHistory.xmpp.ts +44 -106
  669. package/src/networking/xmpp/handleStanzas.xmpp.ts +51 -0
  670. package/src/networking/xmpp/mamRouter.ts +176 -0
  671. package/src/networking/xmpp/presenceInRoom.xmpp.ts +46 -3
  672. package/src/networking/xmpp/sendMediaMessage.xmpp.ts +19 -1
  673. package/src/networking/xmpp/sendTextMessage.xmpp.ts +17 -10
  674. package/src/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.ts +23 -10
  675. package/src/networking/xmppClient.ts +111 -20
  676. package/src/roomStore/Middleware/newMessageMidlleware.tsx +35 -38
  677. package/src/roomStore/Middleware/perfMiddleware.ts +50 -0
  678. package/src/roomStore/Middleware/reactionsMiddleware.tsx +53 -52
  679. package/src/roomStore/Middleware/unreadMidlleware.tsx +92 -80
  680. package/src/roomStore/index.ts +28 -27
  681. package/src/roomStore/persistBackend.ts +93 -0
  682. package/src/roomStore/persistence.ts +295 -73
  683. package/src/roomStore/roomsSlice.ts +304 -155
  684. package/src/theme/theme.ts +10 -1
  685. package/src/types/models/message.model.ts +9 -0
  686. package/src/types/models/room.model.ts +22 -0
  687. package/src/types/models/xmpp.model.ts +4 -2
  688. package/src/types/types.ts +19 -3
  689. package/src/utils/devLogger.ts +16 -0
  690. package/src/version.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["AppState","store","applyRoomsPreloadBatch","setUnreadSyncing","RUNTIME_MESSAGE_LIMIT","DEFAULT_CONCURRENCY","DEFAULT_PAGE_SIZE","DEFAULT_RETRY_LIMIT","MAX_UNREAD_CATCHUP_PAGES","sleep","ms","Promise","resolve","setTimeout","messageTimestamp","m","t","timestamp","Number","isFinite","id","getRoomLastActivityScore","room","messages","length","reduce","max","Math","computeUnreadCapped","pageSize","historyComplete","countable","filter","msg","pending","lastViewed","lastViewedTimestamp","oldestTs","minTs","ts","min","MAX_SAFE_INTEGER","getRoomPriority","jid","_room","selectedRoomJid","defaultRoomJids","has","shouldPauseForVisibility","currentState","runHistoryPreloadScheduler","options","client","signal","concurrency","retryLimit","roomLimit","forceReload","aborted","dispatch","state","getState","rooms","defaultSet","Set","sortedQueue","Object","entries","map","priority","activityScore","attempts","readyAt","Date","now","sort","a","b","localeCompare","queue","slice","inFlightByRoom","Map","consecutiveErrorCount","isActiveRoomGateOpen","readyItems","item","batch","preBatchPreloadStateByJid","historyPreloadState","all","queueIndex","findIndex","queued","splice","task","currentRoom","preState","get","fetchedMessages","getHistoryStanza","undefined","coalesceRoom","skipIfPreloaded","source","Error","nextRoom","combined","lastPageLen","extraPages","oldestId","idNum","older","simulatedStored","unreadCapped","retries","canRetry","jitter","floor","random","backoff","push","set","finally","delete","r"],"sourceRoot":"../../../src","sources":["helpers/historyPreloadScheduler.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["AppState","store","applyRoomsPreloadBatch","setUnreadSyncing","RUNTIME_MESSAGE_LIMIT","DEFAULT_CONCURRENCY","DEFAULT_PAGE_SIZE","DEFAULT_RETRY_LIMIT","DEFAULT_FIRST_WAVE","BACKGROUND_BATCH_PAUSE_MS","sleep","ms","Promise","resolve","setTimeout","messageTimestamp","m","t","timestamp","Number","isFinite","id","getRoomLastActivityScore","room","fromMessages","messages","length","reduce","max","Math","fromStamp","lastMessageTimestamp","fromSeed","lastMessage","computeUnreadCapped","pageSize","historyComplete","countable","filter","msg","pending","lastViewed","lastViewedTimestamp","oldestTs","minTs","ts","min","MAX_SAFE_INTEGER","getRoomPriority","jid","_room","selectedRoomJid","defaultRoomJids","has","shouldPauseForVisibility","currentState","runHistoryPreloadScheduler","options","client","signal","concurrency","retryLimit","roomLimit","firstWave","forceReload","aborted","startedAt","Date","now","firstWaveLogged","devLog","__DEV__","console","log","dispatch","state","getState","rooms","defaultSet","Set","sortedQueue","Object","entries","map","priority","activityScore","attempts","readyAt","sort","a","b","localeCompare","queue","slice","inFlightByRoom","Map","consecutiveErrorCount","started","isActiveRoomGateOpen","readyItems","item","batch","inBackgroundWave","preBatchPreloadStateByJid","historyPreloadState","all","queueIndex","findIndex","queued","splice","task","currentRoom","preState","get","fetchedMessages","getHistoryStanza","undefined","coalesceRoom","skipIfPreloaded","source","selfApplied","Error","nextRoom","combined","simulatedStored","unreadCapped","retries","canRetry","jitter","floor","random","backoff","push","set","finally","delete"],"sourceRoot":"../../../src","sources":["helpers/historyPreloadScheduler.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AAEvC,SAASC,KAAK,QAAQ,cAAc;AACpC,SACEC,sBAAsB,EACtBC,gBAAgB,EAChBC,qBAAqB,QAChB,yBAAyB;AAwBhC,MAAMC,mBAAmB,GAAG,CAAC;AAC7B,MAAMC,iBAAiB,GAAG,EAAE;AAC5B,MAAMC,mBAAmB,GAAG,CAAC;AAC7B,MAAMC,kBAAkB,GAAG,EAAE;AAC7B,MAAMC,yBAAyB,GAAG,GAAG;AAErC,MAAMC,KAAK,GAAIC,EAAU,IAAK,IAAIC,OAAO,CAAEC,OAAO,IAAKC,UAAU,CAACD,OAAO,EAAEF,EAAE,CAAC,CAAC;AAI/E,MAAMI,gBAAgB,GAAIC,CAAW,IAAa;EAChD,IAAI,CAACA,CAAC,EAAE;IAAC,OAAO,CAAC;EAAC;EAClB,MAAMC,CAAC,GAAID,CAAC,CAASE,SAAS;EAC9B,IAAIC,MAAM,CAACC,QAAQ,CAACH,CAAC,CAAC,IAAIA,CAAC,GAAG,CAAC,EAAE;IAAC,OAAOE,MAAM,CAACF,CAAC,CAAC;EAAC;EACnD,MAAMI,EAAE,GAAGF,MAAM,CAACH,CAAC,CAACK,EAAE,CAAC;EACvB,IAAIF,MAAM,CAACC,QAAQ,CAACC,EAAE,CAAC,IAAIA,EAAE,GAAG,CAAC,EAAE;IAAC,OAAOA,EAAE;EAAC;EAC9C,OAAO,CAAC;AACV,CAAC;AAED,MAAMC,wBAAwB,GAAIC,IAAW,IAAa;EACxD,MAAMC,YAAY,GAAGD,IAAI,EAAEE,QAAQ,EAAEC,MAAM,GACvCH,IAAI,CAACE,QAAQ,CAACE,MAAM,CAAC,CAACC,GAAG,EAAEZ,CAAC,KAAKa,IAAI,CAACD,GAAG,CAACA,GAAG,EAAEb,gBAAgB,CAACC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GACvE,CAAC;EACL,MAAMc,SAAS,GAAGX,MAAM,CAACI,IAAI,EAAEQ,oBAAoB,CAAC,IAAI,CAAC;EACzD,MAAMC,QAAQ,GAAGb,MAAM,CAACI,IAAI,EAAEU,WAAW,EAAEZ,EAAE,CAAC,IAAI,CAAC;EACnD,OAAOQ,IAAI,CAACD,GAAG,CAACJ,YAAY,EAAEM,SAAS,EAAEE,QAAQ,CAAC;AACpD,CAAC;AAED,MAAME,mBAAmB,GAAGA,CAC1BX,IAAW,EACXE,QAAoB,EACpBU,QAAgB,KACJ;EACZ,IAAI,CAACZ,IAAI,EAAE;IAAC,OAAO,KAAK;EAAC;EACzB,IAAI,CAACE,QAAQ,IAAIA,QAAQ,CAACC,MAAM,GAAGS,QAAQ,EAAE;IAAC,OAAO,KAAK;EAAC;EAC3D,IAAIZ,IAAI,CAACa,eAAe,KAAK,IAAI,EAAE;IAAC,OAAO,KAAK;EAAC;EAEjD,MAAMC,SAAS,GAAGZ,QAAQ,CAACa,MAAM,CAC9BC,GAAG,IAAK,CAAC,CAACA,GAAG,IAAIA,GAAG,CAAClB,EAAE,KAAK,eAAe,IAAI,CAACkB,GAAG,CAACC,OACvD,CAAC;EACD,IAAIH,SAAS,CAACX,MAAM,GAAGS,QAAQ,EAAE;IAAC,OAAO,KAAK;EAAC;EAE/C,MAAMM,UAAU,GAAGtB,MAAM,CAACI,IAAI,CAACmB,mBAAmB,CAAC,IAAI,CAAC;EACxD;EACA;EACA;EACA,IAAID,UAAU,IAAI,CAAC,EAAE;IAAC,OAAO,KAAK;EAAC;EAEnC,MAAME,QAAQ,GAAGN,SAAS,CAACV,MAAM,CAAS,CAACiB,KAAK,EAAE5B,CAAC,KAAK;IACtD,MAAM6B,EAAE,GAAG9B,gBAAgB,CAACC,CAAC,CAAC;IAC9B,IAAI,CAACG,MAAM,CAACC,QAAQ,CAACyB,EAAE,CAAC,IAAIA,EAAE,IAAI,CAAC,EAAE;MAAC,OAAOD,KAAK;IAAC;IACnD,OAAOf,IAAI,CAACiB,GAAG,CAACF,KAAK,EAAEC,EAAE,CAAC;EAC5B,CAAC,EAAE1B,MAAM,CAAC4B,gBAAgB,CAAC;EAC3B,IAAI,CAAC5B,MAAM,CAACC,QAAQ,CAACuB,QAAQ,CAAC,IAAIA,QAAQ,KAAKxB,MAAM,CAAC4B,gBAAgB,EACpE;IAAC,OAAO,KAAK;EAAC;EAChB,OAAOJ,QAAQ,GAAGF,UAAU;AAC9B,CAAC;AAED,MAAMO,eAAe,GAAGA,CACtBC,GAAW,EACXC,KAAY,EACZC,eAA8B,EAC9BC,eAA4B,KACjB;EACX,IAAID,eAAe,IAAIA,eAAe,KAAKF,GAAG,EAAE;IAAC,OAAO,CAAC;EAAC;EAC1D,IAAIG,eAAe,CAACC,GAAG,CAACJ,GAAG,CAAC,EAAE;IAAC,OAAO,CAAC;EAAC;EACxC,OAAO,CAAC;AACV,CAAC;AAED,MAAMK,wBAAwB,GAAGA,CAAA,KAAe;EAC9C,OAAOtD,QAAQ,CAACuD,YAAY,KAAK,QAAQ;AAC3C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,0BAA0B,GAAG,MACxCC,OAAuC,IACrB;EAClB,MAAM;IACJC,MAAM;IACNC,MAAM;IACNC,WAAW,GAAGvD,mBAAmB;IACjC8B,QAAQ,GAAG7B,iBAAiB;IAC5BuD,UAAU,GAAGtD,mBAAmB;IAChCuD,SAAS;IACTC,SAAS,GAAGvD,kBAAkB;IAC9B2C,eAAe,GAAG,IAAI;IACtBC,eAAe,GAAG,EAAE;IACpBY,WAAW,GAAG;EAChB,CAAC,GAAGP,OAAO;EAEX,IAAIE,MAAM,EAAEM,OAAO,EAAE;IAAC;EAAO;EAE7B,MAAMC,SAAS,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;EAC5B,IAAIC,eAAe,GAAG,KAAK;EAC3B,MAAMC,MAAM,GAAI/B,GAAW,IAAK;IAC9B,IAAI,OAAOgC,OAAO,KAAK,WAAW,IAAIA,OAAO,EAAE;MAACC,OAAO,CAACC,GAAG,CAAClC,GAAG,CAAC;IAAC;EACnE,CAAC;EAEDtC,KAAK,CAACyE,QAAQ,CAACvE,gBAAgB,CAAC,IAAI,CAAC,CAAC;EACtC,IAAI;IAEJ,MAAMwE,KAAK,GAAG1E,KAAK,CAAC2E,QAAQ,CAAC,CAAC;IAC9B,MAAMC,KAAK,GAAIF,KAAK,CAACE,KAAK,CAACA,KAAK,IAAI,CAAC,CAA2B;IAChE,MAAMC,UAAU,GAAG,IAAIC,GAAG,CAAC3B,eAAe,CAAC;IAE3C,MAAM4B,WAAwB,GAAGC,MAAM,CAACC,OAAO,CAACL,KAAK,CAAC,CACnDM,GAAG,CAAC,CAAC,CAAClC,GAAG,EAAE1B,IAAI,CAAkB,MAAM;MACtC0B,GAAG;MACHmC,QAAQ,EAAEpC,eAAe,CAACC,GAAG,EAAE1B,IAAI,EAAE4B,eAAe,EAAE2B,UAAU,CAAC;MACjEO,aAAa,EAAE/D,wBAAwB,CAACC,IAAI,CAAC;MAC7C+D,QAAQ,EAAE,CAAC;MACXC,OAAO,EAAEpB,IAAI,CAACC,GAAG,CAAC;IACpB,CAAC,CAAC,CAAC,CACFoB,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK;MACd,IAAID,CAAC,CAACL,QAAQ,KAAKM,CAAC,CAACN,QAAQ,EAAE;QAAC,OAAOK,CAAC,CAACL,QAAQ,GAAGM,CAAC,CAACN,QAAQ;MAAC;MAC/D,IAAIK,CAAC,CAACJ,aAAa,KAAKK,CAAC,CAACL,aAAa,EAAE;QACvC,OAAOK,CAAC,CAACL,aAAa,GAAGI,CAAC,CAACJ,aAAa;MAC1C;MACA,OAAOI,CAAC,CAACxC,GAAG,CAAC0C,aAAa,CAACD,CAAC,CAACzC,GAAG,CAAC;IACnC,CAAC,CAAC;IAEJ,MAAM2C,KAAkB,GACtB9B,SAAS,IAAIA,SAAS,GAAG,CAAC,GACtBkB,WAAW,CAACa,KAAK,CAAC,CAAC,EAAE/B,SAAS,CAAC,GAC/BkB,WAAW;IAEjB,MAAMc,cAAc,GAAG,IAAIC,GAAG,CAAwB,CAAC;IACvD,IAAIC,qBAAqB,GAAG,CAAC;IAC7B,IAAIC,OAAO,GAAG,CAAC;IACf3B,MAAM,CACJ,aAAasB,KAAK,CAAClE,MAAM,6BAA6BG,IAAI,CAACiB,GAAG,CAACiB,SAAS,EAAE6B,KAAK,CAAClE,MAAM,CAAC,UAAUS,QAAQ,EAC3G,CAAC;IAED,OAAOyD,KAAK,CAAClE,MAAM,GAAG,CAAC,EAAE;MACvB,IAAIiC,MAAM,EAAEM,OAAO,EAAE;QAAC;MAAO;MAE7B,IAAI,CAACP,MAAM,CAACwC,oBAAoB,CAAC,CAAC,EAAE;QAClC,MAAMxF,KAAK,CAAC,EAAE,CAAC;QACf;MACF;MACA,IAAI4C,wBAAwB,CAAC,CAAC,EAAE;QAC9B,MAAM5C,KAAK,CAAC,GAAG,CAAC;QAChB;MACF;MAEA,MAAM0D,GAAG,GAAGD,IAAI,CAACC,GAAG,CAAC,CAAC;MACtB,MAAM+B,UAAU,GAAGP,KAAK,CAACtD,MAAM,CAC5B8D,IAAI,IAAKA,IAAI,CAACb,OAAO,IAAInB,GAAG,IAAI,CAAC0B,cAAc,CAACzC,GAAG,CAAC+C,IAAI,CAACnD,GAAG,CAC/D,CAAC;MACD,IAAIkD,UAAU,CAACzE,MAAM,KAAK,CAAC,EAAE;QAC3B,MAAMhB,KAAK,CAAC,EAAE,CAAC;QACf;MACF;MAEA,MAAM2F,KAAK,GAAGF,UAAU,CAACN,KAAK,CAAC,CAAC,EAAEhE,IAAI,CAACD,GAAG,CAAC,CAAC,EAAEgC,WAAW,CAAC,CAAC;MAC3D,MAAM0C,gBAAgB,GAAGL,OAAO,IAAIlC,SAAS;MAC7C,IAAIuC,gBAAgB,IAAI,CAACjC,eAAe,EAAE;QACxCA,eAAe,GAAG,IAAI;QACtBC,MAAM,CAAC,gCAAgCH,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGF,SAAS,IAAI,CAAC;MACpE;MACA+B,OAAO,IAAII,KAAK,CAAC3E,MAAM;;MAEvB;MACA;MACA;MACA;MACA;MACA;MACA,MAAM6E,yBAAyB,GAAG,IAAIR,GAAG,CACvCM,KAAK,CAAClB,GAAG,CAAEiB,IAAI,IAAK,CAClBA,IAAI,CAACnD,GAAG,EACRhD,KAAK,CAAC2E,QAAQ,CAAC,CAAC,CAACC,KAAK,CAACA,KAAK,CAACuB,IAAI,CAACnD,GAAG,CAAC,EAAEuD,mBAAmB,CAC5D,CACH,CAAC;MAEDvG,KAAK,CAACyE,QAAQ,CACZxE,sBAAsB,CAAC;QACrB2E,KAAK,EAAEwB,KAAK,CAAClB,GAAG,CAAEiB,IAAI,KAAM;UAC1BnD,GAAG,EAAEmD,IAAI,CAACnD,GAAG;UACbuD,mBAAmB,EAAE;QACvB,CAAC,CAAC;MACJ,CAAC,CACH,CAAC;MAED,MAAM5F,OAAO,CAAC6F,GAAG,CACfJ,KAAK,CAAClB,GAAG,CAAC,MAAOiB,IAAI,IAAK;QACxB,MAAMM,UAAU,GAAGd,KAAK,CAACe,SAAS,CAAEC,MAAM,IAAKA,MAAM,CAAC3D,GAAG,KAAKmD,IAAI,CAACnD,GAAG,CAAC;QACvE,IAAIyD,UAAU,KAAK,CAAC,CAAC,EAAE;UAACd,KAAK,CAACiB,MAAM,CAACH,UAAU,EAAE,CAAC,CAAC;QAAC;QAEpD,MAAMI,IAAI,GAAG,CAAC,YAAY;UACxB,MAAMC,WAAW,GAAG9G,KAAK,CAAC2E,QAAQ,CAAC,CAAC,CAACC,KAAK,CAACA,KAAK,CAACuB,IAAI,CAACnD,GAAG,CAAC;UAC1D,MAAM+D,QAAQ,GAAGT,yBAAyB,CAACU,GAAG,CAACb,IAAI,CAACnD,GAAG,CAAC;UACxD,IACE,CAAC8D,WAAW,IACX,CAAC/C,WAAW,IAAIgD,QAAQ,KAAK,MAAO,EACrC;YACA/G,KAAK,CAACyE,QAAQ,CACZxE,sBAAsB,CAAC;cACrB2E,KAAK,EAAE,CAAC;gBAAE5B,GAAG,EAAEmD,IAAI,CAACnD,GAAG;gBAAEuD,mBAAmB,EAAE;cAAO,CAAC;YACxD,CAAC,CACH,CAAC;YACD;UACF;UAEA,IAAI;YACF,MAAMU,eAAe,GAAG,MAAMxD,MAAM,CAACyD,gBAAgB,CACnDf,IAAI,CAACnD,GAAG,EACRd,QAAQ,EACRiF,SAAS,EACTA,SAAS,EACT;cACEC,YAAY,EAAE,IAAI;cAClBC,eAAe,EAAE,CAACtD,WAAW;cAC7BuD,MAAM,EAAE,YAAY;cACpBC,WAAW,EAAE;YACf,CACF,CAAC;YACD,IAAI7D,MAAM,EAAEM,OAAO,EAAE;cAAC;YAAO;YAC7B,IAAI,OAAOiD,eAAe,KAAK,WAAW,EAAE;cAC1C,MAAM,IAAIO,KAAK,CAAC,iBAAiB,CAAC;YACpC;YAEA,MAAMC,QAAQ,GAAGzH,KAAK,CAAC2E,QAAQ,CAAC,CAAC,CAACC,KAAK,CAACA,KAAK,CAACuB,IAAI,CAACnD,GAAG,CAAC;YACvD,MAAM0E,QAAoB,GAAGT,eAAe,IAAI,EAAE;;YAElD;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA,MAAMU,eAAe,GACnBD,QAAQ,CAACjG,MAAM,GAAGtB,qBAAqB,GACnCuH,QAAQ,CAAC9B,KAAK,CAAC,CAACzF,qBAAqB,CAAC,GACtCuH,QAAQ;YACd,MAAME,YAAY,GAAG3F,mBAAmB,CACtCwF,QAAQ,EACRE,eAAe,EACfzF,QACF,CAAC;YAEDlC,KAAK,CAACyE,QAAQ,CACZxE,sBAAsB,CAAC;cACrB2E,KAAK,EAAE,CACL;gBACE5B,GAAG,EAAEmD,IAAI,CAACnD,GAAG;gBACbxB,QAAQ,EAAEkG,QAAQ;gBAClBE,YAAY;gBACZrB,mBAAmB,EAAE;cACvB,CAAC;YAEL,CAAC,CACH,CAAC;YACDR,qBAAqB,GAAG,CAAC;UAC3B,CAAC,CAAC,MAAM;YACN,MAAM8B,OAAO,GAAG1B,IAAI,CAACd,QAAQ,GAAG,CAAC;YACjC,MAAMyC,QAAQ,GAAGD,OAAO,IAAIjE,UAAU;YACtC,IAAIkE,QAAQ,EAAE;cACZ,MAAMC,MAAM,GAAGnG,IAAI,CAACoG,KAAK,CAACpG,IAAI,CAACqG,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC;cAC9C,MAAMC,OAAO,GAAGtG,IAAI,CAACiB,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,IAAIsD,IAAI,CAACd,QAAQ,CAAC,GAAG0C,MAAM;cACjEpC,KAAK,CAACwC,IAAI,CAAC;gBACT,GAAGhC,IAAI;gBACPd,QAAQ,EAAEwC,OAAO;gBACjBvC,OAAO,EAAEpB,IAAI,CAACC,GAAG,CAAC,CAAC,GAAG+D;cACxB,CAAC,CAAC;YACJ,CAAC,MAAM;cACLlI,KAAK,CAACyE,QAAQ,CACZxE,sBAAsB,CAAC;gBACrB2E,KAAK,EAAE,CAAC;kBAAE5B,GAAG,EAAEmD,IAAI,CAACnD,GAAG;kBAAEuD,mBAAmB,EAAE;gBAAQ,CAAC;cACzD,CAAC,CACH,CAAC;YACH;YACAR,qBAAqB,IAAI,CAAC;YAC1B,IAAIA,qBAAqB,IAAI,CAAC,EAAE;cAC9B,MAAMtF,KAAK,CAAC,GAAG,CAAC;cAChBsF,qBAAqB,GAAG,CAAC;YAC3B;UACF;QACF,CAAC,EAAE,CAAC;QAEJF,cAAc,CAACuC,GAAG,CAACjC,IAAI,CAACnD,GAAG,EAAE6D,IAAI,CAAC;QAClC,MAAMA,IAAI,CAACwB,OAAO,CAAC,MAAMxC,cAAc,CAACyC,MAAM,CAACnC,IAAI,CAACnD,GAAG,CAAC,CAAC;MAC3D,CAAC,CACH,CAAC;MAED,MAAMvC,KAAK,CAAC4F,gBAAgB,GAAG7F,yBAAyB,GAAG,CAAC,CAAC;IAC/D;EACA,CAAC,SAAS;IACR6D,MAAM,CAAC,yBAAyBH,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGF,SAAS,IAAI,CAAC;IAC3DjE,KAAK,CAACyE,QAAQ,CAACvE,gBAAgB,CAAC,KAAK,CAAC,CAAC;EACzC;AACF,CAAC;AAED,eAAeqD,0BAA0B","ignoreList":[]}
@@ -1,6 +1,5 @@
1
1
  "use strict";
2
2
 
3
- import { isDateAfter, isDateBefore } from './dateComparison';
4
3
  import { msgSortableMs } from './msgSortableMs';
5
4
 
6
5
  // Robustly resolve a caller-supplied read marker to epoch milliseconds.
@@ -80,16 +79,26 @@ export function insertMessageWithDelimiter(roomMessages, message, lastViewedTime
80
79
  roomMessages[existingIndex] = merged;
81
80
  return;
82
81
  }
83
- const newMessageDate = message.date;
84
82
  const lastMessage = roomMessages[roomMessages.length - 1];
85
- const firstMessage = roomMessages[0];
86
- if (isDateAfter(newMessageDate.toString(), lastMessage?.date?.toString() ?? '')) {
83
+ // Ordered by the id-encoded server timestamp (msgSortableMs), the same
84
+ // key the list and the unread logic use. The old `date` string compare
85
+ // had a hole: a message neither strictly after the last one nor
86
+ // strictly before the first (same second, or an unparseable date) fell
87
+ // through every branch and was silently DROPPED.
88
+ const newMs = msgSortableMs(message);
89
+ const lastMs = lastMessage ? msgSortableMs(lastMessage) : 0;
90
+ if (!lastMessage || !newMs || newMs >= lastMs) {
87
91
  const index = roomMessages.findIndex(msg => msg.id === message.xmppId || msg.id === message.id);
88
92
  if (index !== -1) {
93
+ // Keep an open thread open when its parent is replaced by the echo.
94
+ const keepThread = roomMessages[index]?.activeMessage;
89
95
  roomMessages[index] = {
90
96
  ...message,
91
97
  id: message.id,
92
- pending: false
98
+ pending: false,
99
+ ...(keepThread ? {
100
+ activeMessage: true
101
+ } : {})
93
102
  };
94
103
  } else {
95
104
  roomMessages.push(message);
@@ -134,14 +143,14 @@ export function insertMessageWithDelimiter(roomMessages, message, lastViewedTime
134
143
  });
135
144
  }
136
145
  }
137
- } else if (isDateBefore(newMessageDate.toString(), firstMessage?.date?.toString() ?? '')) {
138
- roomMessages.unshift(message);
139
146
  } else {
140
- for (let i = 0; i < roomMessages.length; i++) {
141
- if (isDateBefore(newMessageDate.toString(), roomMessages[i].date?.toString() ?? '')) {
142
- roomMessages.splice(i, 0, message);
143
- break;
144
- }
147
+ // Before the first message strictly newer than it; equal keys keep
148
+ // arrival order.
149
+ const at = roomMessages.findIndex(msg => msgSortableMs(msg) > newMs);
150
+ if (at === -1) {
151
+ roomMessages.push(message);
152
+ } else {
153
+ roomMessages.splice(at, 0, message);
145
154
  }
146
155
  }
147
156
  }
@@ -1 +1 @@
1
- {"version":3,"names":["isDateAfter","isDateBefore","msgSortableMs","resolveMarkerMs","marker","Number","isFinite","raw","toString","trim","asNumber","parsed","Date","parse","deepMerge","target","source","key","undefined","Array","isArray","insertMessageWithDelimiter","roomMessages","message","lastViewedTimestamp","existingIndex","findIndex","msg","id","xmppId","existing","preservedUserId","user","merged","pending","newMessageDate","date","lastMessage","length","firstMessage","index","push","lastViewedMs","newMessageMs","some","delimiterIndex","firstUnreadMs","anchorMs","splice","name","token","refreshToken","toISOString","body","roomJid","unshift","i"],"sourceRoot":"../../../src","sources":["helpers/insertMessageWithDelimiter.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["msgSortableMs","resolveMarkerMs","marker","Number","isFinite","raw","toString","trim","asNumber","parsed","Date","parse","deepMerge","target","source","key","undefined","Array","isArray","insertMessageWithDelimiter","roomMessages","message","lastViewedTimestamp","existingIndex","findIndex","msg","id","xmppId","existing","preservedUserId","user","merged","pending","lastMessage","length","newMs","lastMs","index","keepThread","activeMessage","push","lastViewedMs","newMessageMs","some","delimiterIndex","firstUnreadMs","anchorMs","splice","name","token","refreshToken","date","toISOString","body","roomJid","at"],"sourceRoot":"../../../src","sources":["helpers/insertMessageWithDelimiter.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ import { applyReactionToMessage, compareStanzaIds } from '../roomStore/roomsSlice';
4
+ export const extractReaction = (msg, fallbackRoomJID, archiveId) => {
5
+ const reactionsEl = msg?.getChild?.('reactions');
6
+ if (!reactionsEl) {
7
+ return null;
8
+ }
9
+ const messageId = reactionsEl.attrs?.id;
10
+ const from = String(reactionsEl.attrs?.from || '');
11
+ if (!messageId || !from.split('@')[0]) {
12
+ return null;
13
+ }
14
+ const emoji = (reactionsEl.getChildren?.('reaction') || []).map(reaction => reaction.text ? reaction.text() : '').filter(Boolean);
15
+ const data = msg.getChild?.('data')?.attrs || {};
16
+ const stanzaId = msg.getChild?.('stanza-id');
17
+ const roomJID = String(stanzaId?.attrs?.by || fallbackRoomJID || msg.attrs?.from || '').split('/')[0];
18
+ const rawTs = String(archiveId || stanzaId?.attrs?.id || '');
19
+ const ts = /^\d+$/.test(rawTs) ? rawTs : undefined;
20
+ return {
21
+ messageId,
22
+ from,
23
+ emoji,
24
+ data,
25
+ roomJID,
26
+ ...(ts ? {
27
+ ts
28
+ } : {})
29
+ };
30
+ };
31
+ export const applyMamReactions = (messages, reactions) => {
32
+ const byId = new Map();
33
+ for (const message of messages) {
34
+ if (message?.id) {
35
+ byId.set(String(message.id), message);
36
+ }
37
+ }
38
+ const deferred = [];
39
+ // Oldest first, so the newest state of each reactor wins.
40
+ const ordered = reactions.slice().sort((a, b) => a.ts && b.ts ? compareStanzaIds(a.ts, b.ts) : 0);
41
+ for (const reaction of ordered) {
42
+ const target = byId.get(String(reaction.messageId));
43
+ if (target) {
44
+ applyReactionToMessage(target, reaction.from, reaction.emoji, reaction.data, reaction.ts);
45
+ } else {
46
+ deferred.push(reaction);
47
+ }
48
+ }
49
+ return deferred;
50
+ };
51
+ //# sourceMappingURL=mamReactions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["applyReactionToMessage","compareStanzaIds","extractReaction","msg","fallbackRoomJID","archiveId","reactionsEl","getChild","messageId","attrs","id","from","String","split","emoji","getChildren","map","reaction","text","filter","Boolean","data","stanzaId","roomJID","by","rawTs","ts","test","undefined","applyMamReactions","messages","reactions","byId","Map","message","set","deferred","ordered","slice","sort","a","b","target","get","push"],"sourceRoot":"../../../src","sources":["helpers/mamReactions.ts"],"mappings":";;AACA,SAASA,sBAAsB,EAAEC,gBAAgB,QAAQ,yBAAyB;AAYlF,OAAO,MAAMC,eAAe,GAAGA,CAC7BC,GAAQ,EACRC,eAAwB,EACxBC,SAAkB,KACW;EAC7B,MAAMC,WAAW,GAAGH,GAAG,EAAEI,QAAQ,GAAG,WAAW,CAAC;EAChD,IAAI,CAACD,WAAW,EAAE;IAAC,OAAO,IAAI;EAAC;EAC/B,MAAME,SAAS,GAAGF,WAAW,CAACG,KAAK,EAAEC,EAAE;EACvC,MAAMC,IAAI,GAAGC,MAAM,CAACN,WAAW,CAACG,KAAK,EAAEE,IAAI,IAAI,EAAE,CAAC;EAClD,IAAI,CAACH,SAAS,IAAI,CAACG,IAAI,CAACE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;IAAC,OAAO,IAAI;EAAC;EACpD,MAAMC,KAAe,GAAG,CAACR,WAAW,CAACS,WAAW,GAAG,UAAU,CAAC,IAAI,EAAE,EACjEC,GAAG,CAAEC,QAAa,IAAMA,QAAQ,CAACC,IAAI,GAAGD,QAAQ,CAACC,IAAI,CAAC,CAAC,GAAG,EAAG,CAAC,CAC9DC,MAAM,CAACC,OAAO,CAAC;EAClB,MAAMC,IAAI,GAAIlB,GAAG,CAACI,QAAQ,GAAG,MAAM,CAAC,EAAEE,KAAK,IAAI,CAAC,CAA4B;EAC5E,MAAMa,QAAQ,GAAGnB,GAAG,CAACI,QAAQ,GAAG,WAAW,CAAC;EAC5C,MAAMgB,OAAO,GAAGX,MAAM,CACpBU,QAAQ,EAAEb,KAAK,EAAEe,EAAE,IAAIpB,eAAe,IAAID,GAAG,CAACM,KAAK,EAAEE,IAAI,IAAI,EAC/D,CAAC,CAACE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EACf,MAAMY,KAAK,GAAGb,MAAM,CAACP,SAAS,IAAIiB,QAAQ,EAAEb,KAAK,EAAEC,EAAE,IAAI,EAAE,CAAC;EAC5D,MAAMgB,EAAE,GAAG,OAAO,CAACC,IAAI,CAACF,KAAK,CAAC,GAAGA,KAAK,GAAGG,SAAS;EAClD,OAAO;IAAEpB,SAAS;IAAEG,IAAI;IAAEG,KAAK;IAAEO,IAAI;IAAEE,OAAO;IAAE,IAAIG,EAAE,GAAG;MAAEA;IAAG,CAAC,GAAG,CAAC,CAAC;EAAE,CAAC;AACzE,CAAC;AAED,OAAO,MAAMG,iBAAiB,GAAGA,CAC/BC,QAAoB,EACpBC,SAA8B,KACN;EACxB,MAAMC,IAAI,GAAG,IAAIC,GAAG,CAAmB,CAAC;EACxC,KAAK,MAAMC,OAAO,IAAIJ,QAAQ,EAAE;IAC9B,IAAII,OAAO,EAAExB,EAAE,EAAE;MAACsB,IAAI,CAACG,GAAG,CAACvB,MAAM,CAACsB,OAAO,CAACxB,EAAE,CAAC,EAAEwB,OAAO,CAAC;IAAC;EAC1D;EACA,MAAME,QAA6B,GAAG,EAAE;EACxC;EACA,MAAMC,OAAO,GAAGN,SAAS,CACtBO,KAAK,CAAC,CAAC,CACPC,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAMD,CAAC,CAACd,EAAE,IAAIe,CAAC,CAACf,EAAE,GAAGzB,gBAAgB,CAACuC,CAAC,CAACd,EAAE,EAAEe,CAAC,CAACf,EAAE,CAAC,GAAG,CAAE,CAAC;EACpE,KAAK,MAAMT,QAAQ,IAAIoB,OAAO,EAAE;IAC9B,MAAMK,MAAM,GAAGV,IAAI,CAACW,GAAG,CAAC/B,MAAM,CAACK,QAAQ,CAACT,SAAS,CAAC,CAAC;IACnD,IAAIkC,MAAM,EAAE;MACV1C,sBAAsB,CAAC0C,MAAM,EAAEzB,QAAQ,CAACN,IAAI,EAAEM,QAAQ,CAACH,KAAK,EAAEG,QAAQ,CAACI,IAAI,EAAEJ,QAAQ,CAACS,EAAE,CAAC;IAC3F,CAAC,MAAM;MACLU,QAAQ,CAACQ,IAAI,CAAC3B,QAAQ,CAAC;IACzB;EACF;EACA,OAAOmB,QAAQ;AACjB,CAAC","ignoreList":[]}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ /** The parent a reply points at, read from its `mainMessage` JSON. */
4
+
5
+ const cache = new WeakMap();
6
+
7
+ /**
8
+ * Safe read of `message.mainMessage` (a JSON string on the wire). Null for
9
+ * a missing or malformed value — a bad payload must not crash a bubble.
10
+ * Cached per message object.
11
+ */
12
+ export const parseMessageReference = message => {
13
+ if (!message?.mainMessage) {
14
+ return null;
15
+ }
16
+ const cached = cache.get(message);
17
+ if (cached !== undefined) {
18
+ return cached;
19
+ }
20
+ let ref = null;
21
+ try {
22
+ const parsed = JSON.parse(message.mainMessage);
23
+ if (parsed && parsed.id != null) {
24
+ ref = {
25
+ id: String(parsed.id),
26
+ text: typeof parsed.text === 'string' ? parsed.text : '',
27
+ roomJid: typeof parsed.roomJid === 'string' ? parsed.roomJid : '',
28
+ userName: typeof parsed.userName === 'string' ? parsed.userName : undefined
29
+ };
30
+ }
31
+ } catch {
32
+ ref = null;
33
+ }
34
+ cache.set(message, ref);
35
+ return ref;
36
+ };
37
+ //# sourceMappingURL=parseMessageReference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["cache","WeakMap","parseMessageReference","message","mainMessage","cached","get","undefined","ref","parsed","JSON","parse","id","String","text","roomJid","userName","set"],"sourceRoot":"../../../src","sources":["helpers/parseMessageReference.ts"],"mappings":";;AAAA;;AAQA,MAAMA,KAAK,GAAG,IAAIC,OAAO,CAAkC,CAAC;;AAE5D;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,qBAAqB,GAAIC,OAElB,IAA8B;EAChD,IAAI,CAACA,OAAO,EAAEC,WAAW,EAAE;IAAC,OAAO,IAAI;EAAC;EACxC,MAAMC,MAAM,GAAGL,KAAK,CAACM,GAAG,CAACH,OAAO,CAAC;EACjC,IAAIE,MAAM,KAAKE,SAAS,EAAE;IAAC,OAAOF,MAAM;EAAC;EACzC,IAAIG,GAA4B,GAAG,IAAI;EACvC,IAAI;IACF,MAAMC,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACR,OAAO,CAACC,WAAW,CAAC;IAC9C,IAAIK,MAAM,IAAIA,MAAM,CAACG,EAAE,IAAI,IAAI,EAAE;MAC/BJ,GAAG,GAAG;QACJI,EAAE,EAAEC,MAAM,CAACJ,MAAM,CAACG,EAAE,CAAC;QACrBE,IAAI,EAAE,OAAOL,MAAM,CAACK,IAAI,KAAK,QAAQ,GAAGL,MAAM,CAACK,IAAI,GAAG,EAAE;QACxDC,OAAO,EAAE,OAAON,MAAM,CAACM,OAAO,KAAK,QAAQ,GAAGN,MAAM,CAACM,OAAO,GAAG,EAAE;QACjEC,QAAQ,EAAE,OAAOP,MAAM,CAACO,QAAQ,KAAK,QAAQ,GAAGP,MAAM,CAACO,QAAQ,GAAGT;MACpE,CAAC;IACH;EACF,CAAC,CAAC,MAAM;IACNC,GAAG,GAAG,IAAI;EACZ;EACAR,KAAK,CAACiB,GAAG,CAACd,OAAO,EAAEK,GAAG,CAAC;EACvB,OAAOA,GAAG;AACZ,CAAC","ignoreList":[]}
@@ -60,6 +60,10 @@ const loadOrCreateKey = () => {
60
60
  })();
61
61
  return cachedKeyPromise;
62
62
  };
63
+ export async function isPersistKeyKept() {
64
+ const key = await loadOrCreateKey();
65
+ return (await secureGet(CIPHER_KEY_STORE_KEY)) === CryptoJS.enc.Base64.stringify(key);
66
+ }
63
67
 
64
68
  /** Encrypt a JSON-serialisable payload for storage. Returns the string to persist. */
65
69
  export async function encryptForPersist(plaintext) {
@@ -1 +1 @@
1
- {"version":3,"names":["CryptoJS","secureGet","secureSet","CIPHER_KEY_STORE_KEY","ENVELOPE_VERSION","KEY_BYTES","IV_BYTES","randomWordArray","byteLength","bytes","Uint8Array","global","crypto","getRandomValues","words","i","length","push","lib","WordArray","create","cachedKeyPromise","loadOrCreateKey","existing","enc","Base64","parse","key","stringify","encryptForPersist","plaintext","iv","encrypted","AES","encrypt","mode","CBC","padding","pad","Pkcs7","envelope","v","ct","ciphertext","toString","JSON","decryptFromPersist","stored","decrypted","decrypt","Utf8","__resetPersistCryptoKeyForTests"],"sourceRoot":"../../../src","sources":["helpers/persistCrypto.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["CryptoJS","secureGet","secureSet","CIPHER_KEY_STORE_KEY","ENVELOPE_VERSION","KEY_BYTES","IV_BYTES","randomWordArray","byteLength","bytes","Uint8Array","global","crypto","getRandomValues","words","i","length","push","lib","WordArray","create","cachedKeyPromise","loadOrCreateKey","existing","enc","Base64","parse","key","stringify","isPersistKeyKept","encryptForPersist","plaintext","iv","encrypted","AES","encrypt","mode","CBC","padding","pad","Pkcs7","envelope","v","ct","ciphertext","toString","JSON","decryptFromPersist","stored","decrypted","decrypt","Utf8","__resetPersistCryptoKeyForTests"],"sourceRoot":"../../../src","sources":["helpers/persistCrypto.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ import { DEFAULT_QUICK_REACTIONS } from './emoji';
4
+ export const reactionsEnabled = config => !config?.disableReactions && config?.reactions?.enabled !== false;
5
+ export const quickReactionIds = config => {
6
+ const ids = config?.reactions?.quickReactions;
7
+ return Array.isArray(ids) && ids.length ? ids.slice(0, 8) : DEFAULT_QUICK_REACTIONS;
8
+ };
9
+ export const reactionPickerEnabled = config => reactionsEnabled(config) && config?.reactions?.picker !== false;
10
+ //# sourceMappingURL=reactionsConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DEFAULT_QUICK_REACTIONS","reactionsEnabled","config","disableReactions","reactions","enabled","quickReactionIds","ids","quickReactions","Array","isArray","length","slice","reactionPickerEnabled","picker"],"sourceRoot":"../../../src","sources":["helpers/reactionsConfig.ts"],"mappings":";;AACA,SAASA,uBAAuB,QAAQ,SAAS;AAEjD,OAAO,MAAMC,gBAAgB,GAAIC,MAAuB,IACtD,CAACA,MAAM,EAAEC,gBAAgB,IAAID,MAAM,EAAEE,SAAS,EAAEC,OAAO,KAAK,KAAK;AAEnE,OAAO,MAAMC,gBAAgB,GAAIJ,MAAuB,IAAe;EACrE,MAAMK,GAAG,GAAGL,MAAM,EAAEE,SAAS,EAAEI,cAAc;EAC7C,OAAOC,KAAK,CAACC,OAAO,CAACH,GAAG,CAAC,IAAIA,GAAG,CAACI,MAAM,GAAGJ,GAAG,CAACK,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAGZ,uBAAuB;AACrF,CAAC;AAED,OAAO,MAAMa,qBAAqB,GAAIX,MAAuB,IAC3DD,gBAAgB,CAACC,MAAM,CAAC,IAAIA,MAAM,EAAEE,SAAS,EAAEU,MAAM,KAAK,KAAK","ignoreList":[]}
@@ -67,6 +67,25 @@ export async function secureRemove(key) {
67
67
  }
68
68
  await AsyncStorage.removeItem(FALLBACK_PREFIX + key).catch(() => undefined);
69
69
  }
70
+ export async function secureGetOrCreate(key, create) {
71
+ const existing = await secureGet(key);
72
+ if (existing) {
73
+ return {
74
+ value: existing,
75
+ created: false
76
+ };
77
+ }
78
+ const value = create();
79
+ await secureSet(key, value);
80
+ if ((await secureGet(key)) !== value) {
81
+ pushLog('warn', `secureStore: ${key} was not kept`);
82
+ return null;
83
+ }
84
+ return {
85
+ value,
86
+ created: true
87
+ };
88
+ }
70
89
 
71
90
  /** Test seam only. */
72
91
  export const __resetSecureKeyValueWarningForTests = () => {
@@ -1 +1 @@
1
- {"version":3,"names":["AsyncStorage","loadSecureStore","pushLog","FALLBACK_PREFIX","warnedFallback","warnFallbackOnce","secureGet","key","store","getItemAsync","e","getItem","secureSet","value","setItemAsync","removeItem","catch","undefined","setItem","secureRemove","deleteItemAsync","__resetSecureKeyValueWarningForTests"],"sourceRoot":"../../../src","sources":["helpers/secureKeyValue.ts"],"mappings":";;AAAA,OAAOA,YAAY,MAAM,2CAA2C;AACpE,SAASC,eAAe,QAAQ,sBAAsB;AACtD,SAASC,OAAO,QAAQ,oBAAoB;;AAE5C;AACA;AACA;AACA;AACA,MAAMC,eAAe,GAAG,0BAA0B;AAElD,IAAIC,cAAc,GAAG,KAAK;AAC1B,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;EAC7B,IAAID,cAAc,EAAE;IAAC;EAAO;EAC5BA,cAAc,GAAG,IAAI;EACrBF,OAAO,CACL,MAAM,EACN,6DAA6D,GAC3D,gEAAgE,GAChE,mEAAmE,GACnE,mEAAmE,GACnE,yBACJ,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeI,SAASA,CAACC,GAAW,EAA0B;EACnE,MAAMC,KAAK,GAAGP,eAAe,CAAC,CAAC;EAC/B,IAAIO,KAAK,EAAE;IACT,IAAI;MACF,OAAO,MAAMA,KAAK,CAACC,YAAY,CAACF,GAAG,CAAC;IACtC,CAAC,CAAC,OAAOG,CAAC,EAAE;MACVR,OAAO,CAAC,MAAM,EAAE,6BAA6BK,GAAG,UAAU,EAAEG,CAAC,CAAC;MAC9D,OAAO,IAAI;IACb;EACF;EACAL,gBAAgB,CAAC,CAAC;EAClB,OAAOL,YAAY,CAACW,OAAO,CAACR,eAAe,GAAGI,GAAG,CAAC;AACpD;AAEA,OAAO,eAAeK,SAASA,CAACL,GAAW,EAAEM,KAAa,EAAiB;EACzE,MAAML,KAAK,GAAGP,eAAe,CAAC,CAAC;EAC/B,IAAIO,KAAK,EAAE;IACT,IAAI;MACF,MAAMA,KAAK,CAACM,YAAY,CAACP,GAAG,EAAEM,KAAK,CAAC;MACpC;MACA;MACAb,YAAY,CAACe,UAAU,CAACZ,eAAe,GAAGI,GAAG,CAAC,CAACS,KAAK,CAAC,MAAMC,SAAS,CAAC;MACrE;IACF,CAAC,CAAC,OAAOP,CAAC,EAAE;MACVR,OAAO,CAAC,MAAM,EAAE,6BAA6BK,GAAG,UAAU,EAAEG,CAAC,CAAC;MAC9D;IACF;EACF;EACAL,gBAAgB,CAAC,CAAC;EAClB,MAAML,YAAY,CAACkB,OAAO,CAACf,eAAe,GAAGI,GAAG,EAAEM,KAAK,CAAC;AAC1D;AAEA,OAAO,eAAeM,YAAYA,CAACZ,GAAW,EAAiB;EAC7D,MAAMC,KAAK,GAAGP,eAAe,CAAC,CAAC;EAC/B,IAAIO,KAAK,EAAE;IACT,IAAI;MACF,MAAMA,KAAK,CAACY,eAAe,CAACb,GAAG,CAAC;IAClC,CAAC,CAAC,MAAM;MACN;MACA;IAAA;EAEJ;EACA,MAAMP,YAAY,CAACe,UAAU,CAACZ,eAAe,GAAGI,GAAG,CAAC,CAACS,KAAK,CAAC,MAAMC,SAAS,CAAC;AAC7E;;AAEA;AACA,OAAO,MAAMI,oCAAoC,GAAGA,CAAA,KAAY;EAC9DjB,cAAc,GAAG,KAAK;AACxB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["AsyncStorage","loadSecureStore","pushLog","FALLBACK_PREFIX","warnedFallback","warnFallbackOnce","secureGet","key","store","getItemAsync","e","getItem","secureSet","value","setItemAsync","removeItem","catch","undefined","setItem","secureRemove","deleteItemAsync","secureGetOrCreate","create","existing","created","__resetSecureKeyValueWarningForTests"],"sourceRoot":"../../../src","sources":["helpers/secureKeyValue.ts"],"mappings":"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","ignoreList":[]}
@@ -20,7 +20,18 @@ export const updateMessagesTillLast = async (rooms, client, batchSize = 5, maxFe
20
20
  const currentBatch = roomEntries.slice(processedIndex, processedIndex + batchSize);
21
21
  const lastTimestampsByJid = currentBatch.reduce((acc, current) => {
22
22
  const room = store.getState().rooms?.rooms?.[current];
23
- acc[current] = Number(room?.lastMessageTimestamp ?? 0) || 0;
23
+ const cached = Array.isArray(room?.messages) ? room.messages : [];
24
+ let newest = 0;
25
+ for (const m of cached) {
26
+ if (!m || m.pending || m.id === 'delimiter-new') {
27
+ continue;
28
+ }
29
+ const id = Number(m.id);
30
+ if (Number.isFinite(id) && id > newest) {
31
+ newest = id;
32
+ }
33
+ }
34
+ acc[current] = newest;
24
35
  return acc;
25
36
  }, {});
26
37
  await Promise.all(currentBatch.map(async (jid, index) => {
@@ -37,7 +48,11 @@ export const updateMessagesTillLast = async (rooms, client, batchSize = 5, maxFe
37
48
  }
38
49
  while (!isMessageFound && counter < maxFetchAttempts) {
39
50
  const lastMessageId = counter > 0 ? currentJidNewMessages[0]?.id : undefined;
40
- const fetchedMessages = await client.getHistoryStanza(jid, messagesPerFetch, Number(lastMessageId));
51
+ const fetchedMessages = await client.getHistoryStanza(jid, messagesPerFetch, Number(lastMessageId), undefined, {
52
+ coalesceRoom: true,
53
+ source: 'background',
54
+ selfApplied: true
55
+ });
41
56
  if (!fetchedMessages.length) {
42
57
  break;
43
58
  }
@@ -1 +1 @@
1
- {"version":3,"names":["store","setRoomMessages","checkUniqueUsers","updateMessagesTillLast","rooms","client","batchSize","maxFetchAttempts","messagesPerFetch","roomEntries","Object","keys","length","processedIndex","currentBatch","slice","lastTimestampsByJid","reduce","acc","current","room","getState","Number","lastMessageTimestamp","Promise","all","map","jid","index","res","setTimeout","counter","isMessageFound","currentJidNewMessages","lastCachedMessagesTimeStamp","lastMessageId","id","undefined","fetchedMessages","getHistoryStanza","some","message","dispatch","roomJID","messages","error","console","log"],"sourceRoot":"../../../src","sources":["helpers/updateMessagesTillLast.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["store","setRoomMessages","checkUniqueUsers","updateMessagesTillLast","rooms","client","batchSize","maxFetchAttempts","messagesPerFetch","roomEntries","Object","keys","length","processedIndex","currentBatch","slice","lastTimestampsByJid","reduce","acc","current","room","getState","cached","Array","isArray","messages","newest","m","pending","id","Number","isFinite","Promise","all","map","jid","index","res","setTimeout","counter","isMessageFound","currentJidNewMessages","lastCachedMessagesTimeStamp","lastMessageId","undefined","fetchedMessages","getHistoryStanza","coalesceRoom","source","selfApplied","some","message","dispatch","roomJID","error","console","log"],"sourceRoot":"../../../src","sources":["helpers/updateMessagesTillLast.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+
3
+ import * as FileSystem from 'expo-file-system/legacy';
4
+ import { filenameFromUrl, getExtensionForMime } from './mimeToExtension';
5
+
6
+ // Containers the native players open from a local file by extension.
7
+ const VIDEO_EXT_RE = /\.(mp4|mov|m4v|webm|3gp|mkv|mpeg)$/i;
8
+ const hashString = value => {
9
+ let hash = 5381;
10
+ for (let i = 0; i < value.length; i++) {
11
+ hash = hash * 33 ^ value.charCodeAt(i);
12
+ }
13
+ return (hash >>> 0).toString(36);
14
+ };
15
+ export const isRemoteUrl = url => /^https?:\/\//i.test(url || '');
16
+ const hostOf = url => (/^https?:\/\/(?:[^@/]+@)?([^:/?#]+)/i.exec(url)?.[1] || '').toLowerCase();
17
+
18
+ // The query carries the short-lived file token; the file is the same.
19
+ const withoutQuery = url => url.split('#')[0].split('?')[0];
20
+
21
+ /**
22
+ * Where a remote video is kept once downloaded. The extension matters:
23
+ * AVFoundation picks the demuxer of a local file by it.
24
+ */
25
+ export const getVideoCacheUri = (url, mimetype, cacheDirectory) => {
26
+ const fromUrl = VIDEO_EXT_RE.exec(filenameFromUrl(url))?.[0];
27
+ const fromMime = getExtensionForMime(mimetype);
28
+ const ext = (fromUrl || (VIDEO_EXT_RE.test(fromMime) ? fromMime : '.mp4')).toLowerCase();
29
+ return `${cacheDirectory}ethora-video-${hashString(withoutQuery(url))}${ext}`;
30
+ };
31
+
32
+ /**
33
+ * Hosts that answered a streaming attempt with an error. AVPlayer refuses a
34
+ * server that replies 200 to a byte-range request ("server is not correctly
35
+ * configured"), so for those the next video skips the doomed stream and
36
+ * downloads straight away.
37
+ */
38
+ const hostsWithoutStreaming = new Set();
39
+ export const markStreamingUnsupported = url => {
40
+ const host = hostOf(url);
41
+ if (host) {
42
+ hostsWithoutStreaming.add(host);
43
+ }
44
+ };
45
+ export const isStreamingUnsupported = url => hostsWithoutStreaming.has(hostOf(url));
46
+ export const findCachedVideo = async (url, mimetype) => {
47
+ const cacheDirectory = FileSystem.cacheDirectory;
48
+ if (!cacheDirectory || !isRemoteUrl(url)) {
49
+ return null;
50
+ }
51
+ try {
52
+ const uri = getVideoCacheUri(url, mimetype, cacheDirectory);
53
+ const info = await FileSystem.getInfoAsync(uri);
54
+ return info.exists ? uri : null;
55
+ } catch {
56
+ return null;
57
+ }
58
+ };
59
+ const inFlight = new Map();
60
+
61
+ /**
62
+ * Downloads the video next to the app's other caches and resolves with the
63
+ * local uri. One download per file however many callers ask; `onProgress`
64
+ * gets 0..1 when the server reports a length.
65
+ */
66
+ export const downloadVideoToCache = (url, mimetype, onProgress) => {
67
+ const cacheDirectory = FileSystem.cacheDirectory;
68
+ if (!cacheDirectory) {
69
+ return Promise.reject(new Error('video_cache_unavailable'));
70
+ }
71
+ const finalUri = getVideoCacheUri(url, mimetype, cacheDirectory);
72
+ const running = inFlight.get(finalUri);
73
+ if (running) {
74
+ if (onProgress) {
75
+ running.listeners.add(onProgress);
76
+ }
77
+ return running.promise;
78
+ }
79
+ const listeners = new Set();
80
+ if (onProgress) {
81
+ listeners.add(onProgress);
82
+ }
83
+ const run = async () => {
84
+ // Download under another name: an interrupted download must not be
85
+ // mistaken for the cached file next time.
86
+ const part = `${finalUri}.part`;
87
+ await FileSystem.deleteAsync(part, {
88
+ idempotent: true
89
+ }).catch(() => {});
90
+ const task = FileSystem.createDownloadResumable(url, part, {}, p => {
91
+ if (p.totalBytesExpectedToWrite > 0) {
92
+ const fraction = Math.min(1, p.totalBytesWritten / p.totalBytesExpectedToWrite);
93
+ listeners.forEach(listener => listener(fraction));
94
+ }
95
+ });
96
+ const result = await task.downloadAsync();
97
+ if (!result || result.status < 200 || result.status >= 300) {
98
+ await FileSystem.deleteAsync(part, {
99
+ idempotent: true
100
+ }).catch(() => {});
101
+ throw new Error(`video_download_status_${result?.status ?? 'cancelled'}`);
102
+ }
103
+ await FileSystem.deleteAsync(finalUri, {
104
+ idempotent: true
105
+ }).catch(() => {});
106
+ await FileSystem.moveAsync({
107
+ from: part,
108
+ to: finalUri
109
+ });
110
+ return finalUri;
111
+ };
112
+ const promise = run().finally(() => {
113
+ inFlight.delete(finalUri);
114
+ });
115
+ inFlight.set(finalUri, {
116
+ promise,
117
+ listeners
118
+ });
119
+ return promise;
120
+ };
121
+ export const __resetVideoCacheForTests = () => {
122
+ hostsWithoutStreaming.clear();
123
+ inFlight.clear();
124
+ };
125
+ //# sourceMappingURL=videoCache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FileSystem","filenameFromUrl","getExtensionForMime","VIDEO_EXT_RE","hashString","value","hash","i","length","charCodeAt","toString","isRemoteUrl","url","test","hostOf","exec","toLowerCase","withoutQuery","split","getVideoCacheUri","mimetype","cacheDirectory","fromUrl","fromMime","ext","hostsWithoutStreaming","Set","markStreamingUnsupported","host","add","isStreamingUnsupported","has","findCachedVideo","uri","info","getInfoAsync","exists","inFlight","Map","downloadVideoToCache","onProgress","Promise","reject","Error","finalUri","running","get","listeners","promise","run","part","deleteAsync","idempotent","catch","task","createDownloadResumable","p","totalBytesExpectedToWrite","fraction","Math","min","totalBytesWritten","forEach","listener","result","downloadAsync","status","moveAsync","from","to","finally","delete","set","__resetVideoCacheForTests","clear"],"sourceRoot":"../../../src","sources":["helpers/videoCache.ts"],"mappings":"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","ignoreList":[]}
@@ -33,7 +33,9 @@ export const useHeapSender = client => {
33
33
  if (msg.langSource) {
34
34
  await client.sendTextMessageWithTranslateTagStanza(msg.roomJid, msg.user.firstName || msg.user.name?.split(' ')[0] || '', msg.user.lastName || msg.user.name?.split(' ')[1] || '', '', msg.user.walletAddress || '', msg.body, '', !!msg.isReply, msg.showInChannel === 'true', msg.mainMessage || '', msg.langSource, msg.id);
35
35
  } else {
36
- await client.sendMessage(msg.roomJid, msg.user.firstName || msg.user.name?.split(' ')[0] || '', msg.user.lastName || msg.user.name?.split(' ')[1] || '', '', msg.user.walletAddress || '', msg.body, '', !!msg.isReply, !!msg.showInChannel, msg.mainMessage, msg.id);
36
+ await client.sendMessage(msg.roomJid, msg.user.firstName || msg.user.name?.split(' ')[0] || '', msg.user.lastName || msg.user.name?.split(' ')[1] || '', '', msg.user.walletAddress || '', msg.body, '',
37
+ // Wire values are strings: '"false"' is truthy.
38
+ String(msg.isReply) === 'true', String(msg.showInChannel) === 'true', msg.mainMessage, msg.id);
37
39
  }
38
40
  } catch (err) {
39
41
  console.warn('Failed to send heap message', msg, err);
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useRef","useDispatch","useMessageHeapState","useHeapSender","client","dispatch","queue","sendingRef","inFlightRef","Map","sendHeapMessages","length","presencesReady","console","warn","current","msg","lastAttempt","get","id","Date","now","set","langSource","sendTextMessageWithTranslateTagStanza","roomJid","user","firstName","name","split","lastName","walletAddress","body","isReply","showInChannel","mainMessage","sendMessage","err","delete","prevReadyRef","nowReady","wasReady","currentIds","Set","map","m","Array","from","keys","has"],"sourceRoot":"../../../src","sources":["hooks/useHeapSender.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useRef","useDispatch","useMessageHeapState","useHeapSender","client","dispatch","queue","sendingRef","inFlightRef","Map","sendHeapMessages","length","presencesReady","console","warn","current","msg","lastAttempt","get","id","Date","now","set","langSource","sendTextMessageWithTranslateTagStanza","roomJid","user","firstName","name","split","lastName","walletAddress","body","isReply","showInChannel","mainMessage","sendMessage","String","err","delete","prevReadyRef","nowReady","wasReady","currentIds","Set","map","m","Array","from","keys","has"],"sourceRoot":"../../../src","sources":["hooks/useHeapSender.tsx"],"mappings":"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","ignoreList":[]}
@@ -14,6 +14,7 @@ import { clearRoomsRestCache } from '../networking/api-requests/rooms.api';
14
14
  import { clearPersistedState } from '../roomStore/persistence';
15
15
  import { secureUserStorage } from '../helpers/secureUserStorage';
16
16
  import { getFlushBoundaryTs } from '../helpers/getServerReadTimestamp';
17
+ import { stopOmemo } from '../e2ee';
17
18
 
18
19
  // AsyncStorage keys the library writes but that aren't cleared by any
19
20
  // slice reducer. Listed here so a single logout call wipes the full
@@ -99,6 +100,13 @@ const logoutService = {
99
100
  } catch (e) {
100
101
  console.warn('logoutService: push reset failed', e);
101
102
  }
103
+ stopOmemo();
104
+ try {
105
+ const {
106
+ clearOpenedFiles
107
+ } = require('../e2ee/sealedFiles');
108
+ clearOpenedFiles();
109
+ } catch {}
102
110
 
103
111
  // 3. REST: nuke the in-memory `/chats/my` cache so the next login
104
112
  // doesn't read user A's rooms while user B is bootstrapping.