@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
@@ -8,18 +8,10 @@ var _reactNative = require("react-native");
8
8
  var _roomStore = require("../roomStore");
9
9
  var _roomsSlice = require("../roomStore/roomsSlice");
10
10
  const DEFAULT_CONCURRENCY = 3;
11
- // Fetch the most recent ~20 on re-entry (mirrors web). A larger first page
12
- // also means more id-overlap with cache, so the merge in
13
- // `mergeHistoryIntoCache` rarely has to fall back to clear-and-replace.
14
- const DEFAULT_PAGE_SIZE = 20;
11
+ const DEFAULT_PAGE_SIZE = 10;
15
12
  const DEFAULT_RETRY_LIMIT = 2;
16
- // When the first page is entirely unread (every fetched message is newer
17
- // than `lastViewedTimestamp`), the true unread count could be far bigger
18
- // than `pageSize` — `useUnread()` only ever sees what's been loaded. Page
19
- // further back, up to this many extra fetches, until we either find the
20
- // boundary or give up (`unreadCapped` then stays true so callers at least
21
- // know the count is a floor, not exact). Customer-reported #34.
22
- const MAX_UNREAD_CATCHUP_PAGES = 8;
13
+ const DEFAULT_FIRST_WAVE = 30;
14
+ const BACKGROUND_BATCH_PAUSE_MS = 400;
23
15
  const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
24
16
  const messageTimestamp = m => {
25
17
  if (!m) {
@@ -36,10 +28,10 @@ const messageTimestamp = m => {
36
28
  return 0;
37
29
  };
38
30
  const getRoomLastActivityScore = room => {
39
- if (!room?.messages?.length) {
40
- return 0;
41
- }
42
- return room.messages.reduce((max, m) => Math.max(max, messageTimestamp(m)), 0);
31
+ const fromMessages = room?.messages?.length ? room.messages.reduce((max, m) => Math.max(max, messageTimestamp(m)), 0) : 0;
32
+ const fromStamp = Number(room?.lastMessageTimestamp) || 0;
33
+ const fromSeed = Number(room?.lastMessage?.id) || 0;
34
+ return Math.max(fromMessages, fromStamp, fromSeed);
43
35
  };
44
36
  const computeUnreadCapped = (room, messages, pageSize) => {
45
37
  if (!room) {
@@ -56,8 +48,11 @@ const computeUnreadCapped = (room, messages, pageSize) => {
56
48
  return false;
57
49
  }
58
50
  const lastViewed = Number(room.lastViewedTimestamp) || 0;
51
+ // No read marker yet (the private-store markers often land after the
52
+ // first preload page): the count is unknown, not "more than a page".
53
+ // Claiming capped here showed "10+" on rooms with a single unread.
59
54
  if (lastViewed <= 0) {
60
- return true;
55
+ return false;
61
56
  }
62
57
  const oldestTs = countable.reduce((minTs, m) => {
63
58
  const ts = messageTimestamp(m);
@@ -98,6 +93,7 @@ const runHistoryPreloadScheduler = async options => {
98
93
  pageSize = DEFAULT_PAGE_SIZE,
99
94
  retryLimit = DEFAULT_RETRY_LIMIT,
100
95
  roomLimit,
96
+ firstWave = DEFAULT_FIRST_WAVE,
101
97
  selectedRoomJid = null,
102
98
  defaultRoomJids = [],
103
99
  forceReload = false
@@ -105,6 +101,13 @@ const runHistoryPreloadScheduler = async options => {
105
101
  if (signal?.aborted) {
106
102
  return;
107
103
  }
104
+ const startedAt = Date.now();
105
+ let firstWaveLogged = false;
106
+ const devLog = msg => {
107
+ if (typeof __DEV__ !== 'undefined' && __DEV__) {
108
+ console.log(msg);
109
+ }
110
+ };
108
111
  _roomStore.store.dispatch((0, _roomsSlice.setUnreadSyncing)(true));
109
112
  try {
110
113
  const state = _roomStore.store.getState();
@@ -128,6 +131,8 @@ const runHistoryPreloadScheduler = async options => {
128
131
  const queue = roomLimit && roomLimit > 0 ? sortedQueue.slice(0, roomLimit) : sortedQueue;
129
132
  const inFlightByRoom = new Map();
130
133
  let consecutiveErrorCount = 0;
134
+ let started = 0;
135
+ devLog(`[preload] ${queue.length} rooms queued, first wave ${Math.min(firstWave, queue.length)}, page ${pageSize}`);
131
136
  while (queue.length > 0) {
132
137
  if (signal?.aborted) {
133
138
  return;
@@ -147,6 +152,12 @@ const runHistoryPreloadScheduler = async options => {
147
152
  continue;
148
153
  }
149
154
  const batch = readyItems.slice(0, Math.max(1, concurrency));
155
+ const inBackgroundWave = started >= firstWave;
156
+ if (inBackgroundWave && !firstWaveLogged) {
157
+ firstWaveLogged = true;
158
+ devLog(`[preload] first wave done in ${Date.now() - startedAt}ms`);
159
+ }
160
+ started += batch.length;
150
161
 
151
162
  // Snapshot each room's historyPreloadState BEFORE marking the
152
163
  // batch as 'loading'. Without this snapshot the per-task
@@ -182,7 +193,8 @@ const runHistoryPreloadScheduler = async options => {
182
193
  const fetchedMessages = await client.getHistoryStanza(item.jid, pageSize, undefined, undefined, {
183
194
  coalesceRoom: true,
184
195
  skipIfPreloaded: !forceReload,
185
- source: 'background'
196
+ source: 'background',
197
+ selfApplied: true
186
198
  });
187
199
  if (signal?.aborted) {
188
200
  return;
@@ -191,52 +203,7 @@ const runHistoryPreloadScheduler = async options => {
191
203
  throw new Error('history_timeout');
192
204
  }
193
205
  const nextRoom = _roomStore.store.getState().rooms.rooms[item.jid];
194
- let combined = fetchedMessages || [];
195
- const lastViewed = Number(nextRoom?.lastViewedTimestamp) || 0;
196
-
197
- // The first page was entirely unread — keep paging older until
198
- // we find a message at/before `lastViewedTimestamp` (the true
199
- // boundary) or run out of catch-up budget, so the count isn't
200
- // silently truncated at `pageSize`.
201
- if (lastViewed > 0 && computeUnreadCapped(nextRoom, combined, pageSize)) {
202
- let lastPageLen = combined.length;
203
- let extraPages = 0;
204
- while (extraPages < MAX_UNREAD_CATCHUP_PAGES && lastPageLen >= pageSize && !signal?.aborted) {
205
- const oldestId = combined.reduce((min, m) => {
206
- const idNum = Number(m?.id);
207
- if (!Number.isFinite(idNum)) {
208
- return min;
209
- }
210
- return min === null || idNum < min ? idNum : min;
211
- }, null);
212
- if (oldestId === null) {
213
- break;
214
- }
215
- let older;
216
- try {
217
- older = await client.getHistoryStanza(item.jid, pageSize, oldestId, undefined, {
218
- coalesceRoom: true,
219
- skipIfPreloaded: !forceReload,
220
- source: 'background'
221
- });
222
- } catch {
223
- break;
224
- }
225
- if (!older || !older.length) {
226
- break;
227
- }
228
- combined = [...older, ...combined];
229
- lastPageLen = older.length;
230
- extraPages++;
231
- const oldestTs = combined.reduce((minTs, m) => {
232
- const ts = messageTimestamp(m);
233
- return ts > 0 ? Math.min(minTs, ts) : minTs;
234
- }, Number.MAX_SAFE_INTEGER);
235
- if (oldestTs !== Number.MAX_SAFE_INTEGER && oldestTs <= lastViewed) {
236
- break;
237
- }
238
- }
239
- }
206
+ const combined = fetchedMessages || [];
240
207
 
241
208
  // `mergeHistoryIntoCache` (roomsSlice) caps whatever we dispatch
242
209
  // here to the newest RUNTIME_MESSAGE_LIMIT messages before it
@@ -286,11 +253,10 @@ const runHistoryPreloadScheduler = async options => {
286
253
  inFlightByRoom.set(item.jid, task);
287
254
  await task.finally(() => inFlightByRoom.delete(item.jid));
288
255
  }));
289
-
290
- // Yield to JS event loop (no requestIdleCallback in RN).
291
- await new Promise(r => setTimeout(r, 0));
256
+ await sleep(inBackgroundWave ? BACKGROUND_BATCH_PAUSE_MS : 0);
292
257
  }
293
258
  } finally {
259
+ devLog(`[preload] finished in ${Date.now() - startedAt}ms`);
294
260
  _roomStore.store.dispatch((0, _roomsSlice.setUnreadSyncing)(false));
295
261
  }
296
262
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_roomStore","_roomsSlice","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","AppState","currentState","runHistoryPreloadScheduler","options","client","signal","concurrency","retryLimit","roomLimit","forceReload","aborted","store","dispatch","setUnreadSyncing","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","applyRoomsPreloadBatch","all","queueIndex","findIndex","queued","splice","task","currentRoom","preState","get","fetchedMessages","getHistoryStanza","undefined","coalesceRoom","skipIfPreloaded","source","Error","nextRoom","combined","lastPageLen","extraPages","oldestId","idNum","older","simulatedStored","RUNTIME_MESSAGE_LIMIT","unreadCapped","retries","canRetry","jitter","floor","random","backoff","push","set","finally","delete","r","exports","_default","default"],"sourceRoot":"../../../src","sources":["helpers/historyPreloadScheduler.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AA2BA,MAAMG,mBAAmB,GAAG,CAAC;AAC7B;AACA;AACA;AACA,MAAMC,iBAAiB,GAAG,EAAE;AAC5B,MAAMC,mBAAmB,GAAG,CAAC;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,wBAAwB,GAAG,CAAC;AAElC,MAAMC,KAAK,GAAIC,EAAU,IAAK,IAAIC,OAAO,CAAEC,OAAO,IAAKC,UAAU,CAACD,OAAO,EAAEF,EAAE,CAAC,CAAC;AAE/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,IAAI,CAACA,IAAI,EAAEC,QAAQ,EAAEC,MAAM,EAAE;IAAC,OAAO,CAAC;EAAC;EACvC,OAAOF,IAAI,CAACC,QAAQ,CAACE,MAAM,CAAC,CAACC,GAAG,EAAEX,CAAC,KAAKY,IAAI,CAACD,GAAG,CAACA,GAAG,EAAEZ,gBAAgB,CAACC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAChF,CAAC;AAED,MAAMa,mBAAmB,GAAGA,CAC1BN,IAAW,EACXC,QAAoB,EACpBM,QAAgB,KACJ;EACZ,IAAI,CAACP,IAAI,EAAE;IAAC,OAAO,KAAK;EAAC;EACzB,IAAI,CAACC,QAAQ,IAAIA,QAAQ,CAACC,MAAM,GAAGK,QAAQ,EAAE;IAAC,OAAO,KAAK;EAAC;EAC3D,IAAIP,IAAI,CAACQ,eAAe,KAAK,IAAI,EAAE;IAAC,OAAO,KAAK;EAAC;EAEjD,MAAMC,SAAS,GAAGR,QAAQ,CAACS,MAAM,CAC9BC,GAAG,IAAK,CAAC,CAACA,GAAG,IAAIA,GAAG,CAACb,EAAE,KAAK,eAAe,IAAI,CAACa,GAAG,CAACC,OACvD,CAAC;EACD,IAAIH,SAAS,CAACP,MAAM,GAAGK,QAAQ,EAAE;IAAC,OAAO,KAAK;EAAC;EAE/C,MAAMM,UAAU,GAAGjB,MAAM,CAACI,IAAI,CAACc,mBAAmB,CAAC,IAAI,CAAC;EACxD,IAAID,UAAU,IAAI,CAAC,EAAE;IAAC,OAAO,IAAI;EAAC;EAElC,MAAME,QAAQ,GAAGN,SAAS,CAACN,MAAM,CAAS,CAACa,KAAK,EAAEvB,CAAC,KAAK;IACtD,MAAMwB,EAAE,GAAGzB,gBAAgB,CAACC,CAAC,CAAC;IAC9B,IAAI,CAACG,MAAM,CAACC,QAAQ,CAACoB,EAAE,CAAC,IAAIA,EAAE,IAAI,CAAC,EAAE;MAAC,OAAOD,KAAK;IAAC;IACnD,OAAOX,IAAI,CAACa,GAAG,CAACF,KAAK,EAAEC,EAAE,CAAC;EAC5B,CAAC,EAAErB,MAAM,CAACuB,gBAAgB,CAAC;EAC3B,IAAI,CAACvB,MAAM,CAACC,QAAQ,CAACkB,QAAQ,CAAC,IAAIA,QAAQ,KAAKnB,MAAM,CAACuB,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,OAAOC,qBAAQ,CAACC,YAAY,KAAK,QAAQ;AAC3C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,0BAA0B,GAAG,MACxCC,OAAuC,IACrB;EAClB,MAAM;IACJC,MAAM;IACNC,MAAM;IACNC,WAAW,GAAGlD,mBAAmB;IACjCwB,QAAQ,GAAGvB,iBAAiB;IAC5BkD,UAAU,GAAGjD,mBAAmB;IAChCkD,SAAS;IACTZ,eAAe,GAAG,IAAI;IACtBC,eAAe,GAAG,EAAE;IACpBY,WAAW,GAAG;EAChB,CAAC,GAAGN,OAAO;EAEX,IAAIE,MAAM,EAAEK,OAAO,EAAE;IAAC;EAAO;EAE7BC,gBAAK,CAACC,QAAQ,CAAC,IAAAC,4BAAgB,EAAC,IAAI,CAAC,CAAC;EACtC,IAAI;IAEJ,MAAMC,KAAK,GAAGH,gBAAK,CAACI,QAAQ,CAAC,CAAC;IAC9B,MAAMC,KAAK,GAAIF,KAAK,CAACE,KAAK,CAACA,KAAK,IAAI,CAAC,CAA2B;IAChE,MAAMC,UAAU,GAAG,IAAIC,GAAG,CAACrB,eAAe,CAAC;IAE3C,MAAMsB,WAAwB,GAAGC,MAAM,CAACC,OAAO,CAACL,KAAK,CAAC,CACnDM,GAAG,CAAC,CAAC,CAAC5B,GAAG,EAAErB,IAAI,CAAkB,MAAM;MACtCqB,GAAG;MACH6B,QAAQ,EAAE9B,eAAe,CAACC,GAAG,EAAErB,IAAI,EAAEuB,eAAe,EAAEqB,UAAU,CAAC;MACjEO,aAAa,EAAEpD,wBAAwB,CAACC,IAAI,CAAC;MAC7CoD,QAAQ,EAAE,CAAC;MACXC,OAAO,EAAEC,IAAI,CAACC,GAAG,CAAC;IACpB,CAAC,CAAC,CAAC,CACFC,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAK;MACd,IAAID,CAAC,CAACP,QAAQ,KAAKQ,CAAC,CAACR,QAAQ,EAAE;QAAC,OAAOO,CAAC,CAACP,QAAQ,GAAGQ,CAAC,CAACR,QAAQ;MAAC;MAC/D,IAAIO,CAAC,CAACN,aAAa,KAAKO,CAAC,CAACP,aAAa,EAAE;QACvC,OAAOO,CAAC,CAACP,aAAa,GAAGM,CAAC,CAACN,aAAa;MAC1C;MACA,OAAOM,CAAC,CAACpC,GAAG,CAACsC,aAAa,CAACD,CAAC,CAACrC,GAAG,CAAC;IACnC,CAAC,CAAC;IAEJ,MAAMuC,KAAkB,GACtBzB,SAAS,IAAIA,SAAS,GAAG,CAAC,GACtBW,WAAW,CAACe,KAAK,CAAC,CAAC,EAAE1B,SAAS,CAAC,GAC/BW,WAAW;IAEjB,MAAMgB,cAAc,GAAG,IAAIC,GAAG,CAAwB,CAAC;IACvD,IAAIC,qBAAqB,GAAG,CAAC;IAE7B,OAAOJ,KAAK,CAAC1D,MAAM,GAAG,CAAC,EAAE;MACvB,IAAI8B,MAAM,EAAEK,OAAO,EAAE;QAAC;MAAO;MAE7B,IAAI,CAACN,MAAM,CAACkC,oBAAoB,CAAC,CAAC,EAAE;QAClC,MAAM9E,KAAK,CAAC,EAAE,CAAC;QACf;MACF;MACA,IAAIuC,wBAAwB,CAAC,CAAC,EAAE;QAC9B,MAAMvC,KAAK,CAAC,GAAG,CAAC;QAChB;MACF;MAEA,MAAMoE,GAAG,GAAGD,IAAI,CAACC,GAAG,CAAC,CAAC;MACtB,MAAMW,UAAU,GAAGN,KAAK,CAAClD,MAAM,CAC5ByD,IAAI,IAAKA,IAAI,CAACd,OAAO,IAAIE,GAAG,IAAI,CAACO,cAAc,CAACrC,GAAG,CAAC0C,IAAI,CAAC9C,GAAG,CAC/D,CAAC;MACD,IAAI6C,UAAU,CAAChE,MAAM,KAAK,CAAC,EAAE;QAC3B,MAAMf,KAAK,CAAC,EAAE,CAAC;QACf;MACF;MAEA,MAAMiF,KAAK,GAAGF,UAAU,CAACL,KAAK,CAAC,CAAC,EAAExD,IAAI,CAACD,GAAG,CAAC,CAAC,EAAE6B,WAAW,CAAC,CAAC;;MAE3D;MACA;MACA;MACA;MACA;MACA;MACA,MAAMoC,yBAAyB,GAAG,IAAIN,GAAG,CACvCK,KAAK,CAACnB,GAAG,CAAEkB,IAAI,IAAK,CAClBA,IAAI,CAAC9C,GAAG,EACRiB,gBAAK,CAACI,QAAQ,CAAC,CAAC,CAACC,KAAK,CAACA,KAAK,CAACwB,IAAI,CAAC9C,GAAG,CAAC,EAAEiD,mBAAmB,CAC5D,CACH,CAAC;MAEDhC,gBAAK,CAACC,QAAQ,CACZ,IAAAgC,kCAAsB,EAAC;QACrB5B,KAAK,EAAEyB,KAAK,CAACnB,GAAG,CAAEkB,IAAI,KAAM;UAC1B9C,GAAG,EAAE8C,IAAI,CAAC9C,GAAG;UACbiD,mBAAmB,EAAE;QACvB,CAAC,CAAC;MACJ,CAAC,CACH,CAAC;MAED,MAAMjF,OAAO,CAACmF,GAAG,CACfJ,KAAK,CAACnB,GAAG,CAAC,MAAOkB,IAAI,IAAK;QACxB,MAAMM,UAAU,GAAGb,KAAK,CAACc,SAAS,CAAEC,MAAM,IAAKA,MAAM,CAACtD,GAAG,KAAK8C,IAAI,CAAC9C,GAAG,CAAC;QACvE,IAAIoD,UAAU,KAAK,CAAC,CAAC,EAAE;UAACb,KAAK,CAACgB,MAAM,CAACH,UAAU,EAAE,CAAC,CAAC;QAAC;QAEpD,MAAMI,IAAI,GAAG,CAAC,YAAY;UACxB,MAAMC,WAAW,GAAGxC,gBAAK,CAACI,QAAQ,CAAC,CAAC,CAACC,KAAK,CAACA,KAAK,CAACwB,IAAI,CAAC9C,GAAG,CAAC;UAC1D,MAAM0D,QAAQ,GAAGV,yBAAyB,CAACW,GAAG,CAACb,IAAI,CAAC9C,GAAG,CAAC;UACxD,IACE,CAACyD,WAAW,IACX,CAAC1C,WAAW,IAAI2C,QAAQ,KAAK,MAAO,EACrC;YACAzC,gBAAK,CAACC,QAAQ,CACZ,IAAAgC,kCAAsB,EAAC;cACrB5B,KAAK,EAAE,CAAC;gBAAEtB,GAAG,EAAE8C,IAAI,CAAC9C,GAAG;gBAAEiD,mBAAmB,EAAE;cAAO,CAAC;YACxD,CAAC,CACH,CAAC;YACD;UACF;UAEA,IAAI;YACF,MAAMW,eAAe,GAAG,MAAMlD,MAAM,CAACmD,gBAAgB,CACnDf,IAAI,CAAC9C,GAAG,EACRd,QAAQ,EACR4E,SAAS,EACTA,SAAS,EACT;cACEC,YAAY,EAAE,IAAI;cAClBC,eAAe,EAAE,CAACjD,WAAW;cAC7BkD,MAAM,EAAE;YACV,CACF,CAAC;YACD,IAAItD,MAAM,EAAEK,OAAO,EAAE;cAAC;YAAO;YAC7B,IAAI,OAAO4C,eAAe,KAAK,WAAW,EAAE;cAC1C,MAAM,IAAIM,KAAK,CAAC,iBAAiB,CAAC;YACpC;YAEA,MAAMC,QAAQ,GAAGlD,gBAAK,CAACI,QAAQ,CAAC,CAAC,CAACC,KAAK,CAACA,KAAK,CAACwB,IAAI,CAAC9C,GAAG,CAAC;YACvD,IAAIoE,QAAoB,GAAGR,eAAe,IAAI,EAAE;YAChD,MAAMpE,UAAU,GAAGjB,MAAM,CAAC4F,QAAQ,EAAE1E,mBAAmB,CAAC,IAAI,CAAC;;YAE7D;YACA;YACA;YACA;YACA,IAAID,UAAU,GAAG,CAAC,IAAIP,mBAAmB,CAACkF,QAAQ,EAAEC,QAAQ,EAAElF,QAAQ,CAAC,EAAE;cACvE,IAAImF,WAAW,GAAGD,QAAQ,CAACvF,MAAM;cACjC,IAAIyF,UAAU,GAAG,CAAC;cAClB,OACEA,UAAU,GAAGzG,wBAAwB,IACrCwG,WAAW,IAAInF,QAAQ,IACvB,CAACyB,MAAM,EAAEK,OAAO,EAChB;gBACA,MAAMuD,QAAQ,GAAGH,QAAQ,CAACtF,MAAM,CAAgB,CAACe,GAAG,EAAEzB,CAAC,KAAK;kBAC1D,MAAMoG,KAAK,GAAGjG,MAAM,CAAEH,CAAC,EAAUK,EAAE,CAAC;kBACpC,IAAI,CAACF,MAAM,CAACC,QAAQ,CAACgG,KAAK,CAAC,EAAE;oBAAC,OAAO3E,GAAG;kBAAC;kBACzC,OAAOA,GAAG,KAAK,IAAI,IAAI2E,KAAK,GAAG3E,GAAG,GAAG2E,KAAK,GAAG3E,GAAG;gBAClD,CAAC,EAAE,IAAI,CAAC;gBACR,IAAI0E,QAAQ,KAAK,IAAI,EAAE;kBAAC;gBAAM;gBAE9B,IAAIE,KAA6B;gBACjC,IAAI;kBACFA,KAAK,GAAG,MAAM/D,MAAM,CAACmD,gBAAgB,CACnCf,IAAI,CAAC9C,GAAG,EACRd,QAAQ,EACRqF,QAAQ,EACRT,SAAS,EACT;oBACEC,YAAY,EAAE,IAAI;oBAClBC,eAAe,EAAE,CAACjD,WAAW;oBAC7BkD,MAAM,EAAE;kBACV,CACF,CAAC;gBACH,CAAC,CAAC,MAAM;kBACN;gBACF;gBACA,IAAI,CAACQ,KAAK,IAAI,CAACA,KAAK,CAAC5F,MAAM,EAAE;kBAAC;gBAAM;gBAEpCuF,QAAQ,GAAG,CAAC,GAAGK,KAAK,EAAE,GAAGL,QAAQ,CAAC;gBAClCC,WAAW,GAAGI,KAAK,CAAC5F,MAAM;gBAC1ByF,UAAU,EAAE;gBAEZ,MAAM5E,QAAQ,GAAG0E,QAAQ,CAACtF,MAAM,CAAS,CAACa,KAAK,EAAEvB,CAAC,KAAK;kBACrD,MAAMwB,EAAE,GAAGzB,gBAAgB,CAACC,CAAC,CAAC;kBAC9B,OAAOwB,EAAE,GAAG,CAAC,GAAGZ,IAAI,CAACa,GAAG,CAACF,KAAK,EAAEC,EAAE,CAAC,GAAGD,KAAK;gBAC7C,CAAC,EAAEpB,MAAM,CAACuB,gBAAgB,CAAC;gBAC3B,IAAIJ,QAAQ,KAAKnB,MAAM,CAACuB,gBAAgB,IAAIJ,QAAQ,IAAIF,UAAU,EAAE;kBAClE;gBACF;cACF;YACF;;YAEA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA,MAAMkF,eAAe,GACnBN,QAAQ,CAACvF,MAAM,GAAG8F,iCAAqB,GACnCP,QAAQ,CAAC5B,KAAK,CAAC,CAACmC,iCAAqB,CAAC,GACtCP,QAAQ;YACd,MAAMQ,YAAY,GAAG3F,mBAAmB,CACtCkF,QAAQ,EACRO,eAAe,EACfxF,QACF,CAAC;YAED+B,gBAAK,CAACC,QAAQ,CACZ,IAAAgC,kCAAsB,EAAC;cACrB5B,KAAK,EAAE,CACL;gBACEtB,GAAG,EAAE8C,IAAI,CAAC9C,GAAG;gBACbpB,QAAQ,EAAEwF,QAAQ;gBAClBQ,YAAY;gBACZ3B,mBAAmB,EAAE;cACvB,CAAC;YAEL,CAAC,CACH,CAAC;YACDN,qBAAqB,GAAG,CAAC;UAC3B,CAAC,CAAC,MAAM;YACN,MAAMkC,OAAO,GAAG/B,IAAI,CAACf,QAAQ,GAAG,CAAC;YACjC,MAAM+C,QAAQ,GAAGD,OAAO,IAAIhE,UAAU;YACtC,IAAIiE,QAAQ,EAAE;cACZ,MAAMC,MAAM,GAAG/F,IAAI,CAACgG,KAAK,CAAChG,IAAI,CAACiG,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC;cAC9C,MAAMC,OAAO,GAAGlG,IAAI,CAACa,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,IAAIiD,IAAI,CAACf,QAAQ,CAAC,GAAGgD,MAAM;cACjExC,KAAK,CAAC4C,IAAI,CAAC;gBACT,GAAGrC,IAAI;gBACPf,QAAQ,EAAE8C,OAAO;gBACjB7C,OAAO,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGgD;cACxB,CAAC,CAAC;YACJ,CAAC,MAAM;cACLjE,gBAAK,CAACC,QAAQ,CACZ,IAAAgC,kCAAsB,EAAC;gBACrB5B,KAAK,EAAE,CAAC;kBAAEtB,GAAG,EAAE8C,IAAI,CAAC9C,GAAG;kBAAEiD,mBAAmB,EAAE;gBAAQ,CAAC;cACzD,CAAC,CACH,CAAC;YACH;YACAN,qBAAqB,IAAI,CAAC;YAC1B,IAAIA,qBAAqB,IAAI,CAAC,EAAE;cAC9B,MAAM7E,KAAK,CAAC,GAAG,CAAC;cAChB6E,qBAAqB,GAAG,CAAC;YAC3B;UACF;QACF,CAAC,EAAE,CAAC;QAEJF,cAAc,CAAC2C,GAAG,CAACtC,IAAI,CAAC9C,GAAG,EAAEwD,IAAI,CAAC;QAClC,MAAMA,IAAI,CAAC6B,OAAO,CAAC,MAAM5C,cAAc,CAAC6C,MAAM,CAACxC,IAAI,CAAC9C,GAAG,CAAC,CAAC;MAC3D,CAAC,CACH,CAAC;;MAED;MACA,MAAM,IAAIhC,OAAO,CAAEuH,CAAC,IAAKrH,UAAU,CAACqH,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5C;EACA,CAAC,SAAS;IACRtE,gBAAK,CAACC,QAAQ,CAAC,IAAAC,4BAAgB,EAAC,KAAK,CAAC,CAAC;EACzC;AACF,CAAC;AAACqE,OAAA,CAAAhF,0BAAA,GAAAA,0BAAA;AAAA,IAAAiF,QAAA,GAAAD,OAAA,CAAAE,OAAA,GAEalF,0BAA0B","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_roomStore","_roomsSlice","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","AppState","currentState","runHistoryPreloadScheduler","options","client","signal","concurrency","retryLimit","roomLimit","firstWave","forceReload","aborted","startedAt","Date","now","firstWaveLogged","devLog","__DEV__","console","log","store","dispatch","setUnreadSyncing","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","applyRoomsPreloadBatch","all","queueIndex","findIndex","queued","splice","task","currentRoom","preState","get","fetchedMessages","getHistoryStanza","undefined","coalesceRoom","skipIfPreloaded","source","selfApplied","Error","nextRoom","combined","simulatedStored","RUNTIME_MESSAGE_LIMIT","unreadCapped","retries","canRetry","jitter","floor","random","backoff","push","set","finally","delete","exports","_default","default"],"sourceRoot":"../../../src","sources":["helpers/historyPreloadScheduler.ts"],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,6 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.insertMessageWithDelimiter = insertMessageWithDelimiter;
7
- var _dateComparison = require("./dateComparison");
8
7
  var _msgSortableMs = require("./msgSortableMs");
9
8
  // Robustly resolve a caller-supplied read marker to epoch milliseconds.
10
9
  // Callers pass a plain number (the redux read boundary, or a room's
@@ -83,16 +82,26 @@ function insertMessageWithDelimiter(roomMessages, message, lastViewedTimestamp)
83
82
  roomMessages[existingIndex] = merged;
84
83
  return;
85
84
  }
86
- const newMessageDate = message.date;
87
85
  const lastMessage = roomMessages[roomMessages.length - 1];
88
- const firstMessage = roomMessages[0];
89
- if ((0, _dateComparison.isDateAfter)(newMessageDate.toString(), lastMessage?.date?.toString() ?? '')) {
86
+ // Ordered by the id-encoded server timestamp (msgSortableMs), the same
87
+ // key the list and the unread logic use. The old `date` string compare
88
+ // had a hole: a message neither strictly after the last one nor
89
+ // strictly before the first (same second, or an unparseable date) fell
90
+ // through every branch and was silently DROPPED.
91
+ const newMs = (0, _msgSortableMs.msgSortableMs)(message);
92
+ const lastMs = lastMessage ? (0, _msgSortableMs.msgSortableMs)(lastMessage) : 0;
93
+ if (!lastMessage || !newMs || newMs >= lastMs) {
90
94
  const index = roomMessages.findIndex(msg => msg.id === message.xmppId || msg.id === message.id);
91
95
  if (index !== -1) {
96
+ // Keep an open thread open when its parent is replaced by the echo.
97
+ const keepThread = roomMessages[index]?.activeMessage;
92
98
  roomMessages[index] = {
93
99
  ...message,
94
100
  id: message.id,
95
- pending: false
101
+ pending: false,
102
+ ...(keepThread ? {
103
+ activeMessage: true
104
+ } : {})
96
105
  };
97
106
  } else {
98
107
  roomMessages.push(message);
@@ -137,14 +146,14 @@ function insertMessageWithDelimiter(roomMessages, message, lastViewedTimestamp)
137
146
  });
138
147
  }
139
148
  }
140
- } else if ((0, _dateComparison.isDateBefore)(newMessageDate.toString(), firstMessage?.date?.toString() ?? '')) {
141
- roomMessages.unshift(message);
142
149
  } else {
143
- for (let i = 0; i < roomMessages.length; i++) {
144
- if ((0, _dateComparison.isDateBefore)(newMessageDate.toString(), roomMessages[i].date?.toString() ?? '')) {
145
- roomMessages.splice(i, 0, message);
146
- break;
147
- }
150
+ // Before the first message strictly newer than it; equal keys keep
151
+ // arrival order.
152
+ const at = roomMessages.findIndex(msg => (0, _msgSortableMs.msgSortableMs)(msg) > newMs);
153
+ if (at === -1) {
154
+ roomMessages.push(message);
155
+ } else {
156
+ roomMessages.splice(at, 0, message);
148
157
  }
149
158
  }
150
159
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_dateComparison","require","_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","isDateAfter","index","push","lastViewedMs","newMessageMs","msgSortableMs","some","delimiterIndex","firstUnreadMs","anchorMs","splice","name","token","refreshToken","toISOString","body","roomJid","isDateBefore","unshift","i"],"sourceRoot":"../../../src","sources":["helpers/insertMessageWithDelimiter.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_msgSortableMs","require","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","msgSortableMs","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,57 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.extractReaction = exports.applyMamReactions = void 0;
7
+ var _roomsSlice = require("../roomStore/roomsSlice");
8
+ const extractReaction = (msg, fallbackRoomJID, archiveId) => {
9
+ const reactionsEl = msg?.getChild?.('reactions');
10
+ if (!reactionsEl) {
11
+ return null;
12
+ }
13
+ const messageId = reactionsEl.attrs?.id;
14
+ const from = String(reactionsEl.attrs?.from || '');
15
+ if (!messageId || !from.split('@')[0]) {
16
+ return null;
17
+ }
18
+ const emoji = (reactionsEl.getChildren?.('reaction') || []).map(reaction => reaction.text ? reaction.text() : '').filter(Boolean);
19
+ const data = msg.getChild?.('data')?.attrs || {};
20
+ const stanzaId = msg.getChild?.('stanza-id');
21
+ const roomJID = String(stanzaId?.attrs?.by || fallbackRoomJID || msg.attrs?.from || '').split('/')[0];
22
+ const rawTs = String(archiveId || stanzaId?.attrs?.id || '');
23
+ const ts = /^\d+$/.test(rawTs) ? rawTs : undefined;
24
+ return {
25
+ messageId,
26
+ from,
27
+ emoji,
28
+ data,
29
+ roomJID,
30
+ ...(ts ? {
31
+ ts
32
+ } : {})
33
+ };
34
+ };
35
+ exports.extractReaction = extractReaction;
36
+ const applyMamReactions = (messages, reactions) => {
37
+ const byId = new Map();
38
+ for (const message of messages) {
39
+ if (message?.id) {
40
+ byId.set(String(message.id), message);
41
+ }
42
+ }
43
+ const deferred = [];
44
+ // Oldest first, so the newest state of each reactor wins.
45
+ const ordered = reactions.slice().sort((a, b) => a.ts && b.ts ? (0, _roomsSlice.compareStanzaIds)(a.ts, b.ts) : 0);
46
+ for (const reaction of ordered) {
47
+ const target = byId.get(String(reaction.messageId));
48
+ if (target) {
49
+ (0, _roomsSlice.applyReactionToMessage)(target, reaction.from, reaction.emoji, reaction.data, reaction.ts);
50
+ } else {
51
+ deferred.push(reaction);
52
+ }
53
+ }
54
+ return deferred;
55
+ };
56
+ exports.applyMamReactions = applyMamReactions;
57
+ //# sourceMappingURL=mamReactions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_roomsSlice","require","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","exports","applyMamReactions","messages","reactions","byId","Map","message","set","deferred","ordered","slice","sort","a","b","compareStanzaIds","target","get","applyReactionToMessage","push"],"sourceRoot":"../../../src","sources":["helpers/mamReactions.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.parseMessageReference = void 0;
7
+ /** The parent a reply points at, read from its `mainMessage` JSON. */
8
+
9
+ const cache = new WeakMap();
10
+
11
+ /**
12
+ * Safe read of `message.mainMessage` (a JSON string on the wire). Null for
13
+ * a missing or malformed value — a bad payload must not crash a bubble.
14
+ * Cached per message object.
15
+ */
16
+ const parseMessageReference = message => {
17
+ if (!message?.mainMessage) {
18
+ return null;
19
+ }
20
+ const cached = cache.get(message);
21
+ if (cached !== undefined) {
22
+ return cached;
23
+ }
24
+ let ref = null;
25
+ try {
26
+ const parsed = JSON.parse(message.mainMessage);
27
+ if (parsed && parsed.id != null) {
28
+ ref = {
29
+ id: String(parsed.id),
30
+ text: typeof parsed.text === 'string' ? parsed.text : '',
31
+ roomJid: typeof parsed.roomJid === 'string' ? parsed.roomJid : '',
32
+ userName: typeof parsed.userName === 'string' ? parsed.userName : undefined
33
+ };
34
+ }
35
+ } catch {
36
+ ref = null;
37
+ }
38
+ cache.set(message, ref);
39
+ return ref;
40
+ };
41
+ exports.parseMessageReference = parseMessageReference;
42
+ //# 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","exports"],"sourceRoot":"../../../src","sources":["helpers/parseMessageReference.ts"],"mappings":";;;;;;AAAA;;AAQA,MAAMA,KAAK,GAAG,IAAIC,OAAO,CAAkC,CAAC;;AAE5D;AACA;AACA;AACA;AACA;AACO,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;AAACU,OAAA,CAAAhB,qBAAA,GAAAA,qBAAA","ignoreList":[]}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.__resetPersistCryptoKeyForTests = void 0;
7
7
  exports.decryptFromPersist = decryptFromPersist;
8
8
  exports.encryptForPersist = encryptForPersist;
9
+ exports.isPersistKeyKept = isPersistKeyKept;
9
10
  var _cryptoJs = _interopRequireDefault(require("crypto-js"));
10
11
  var _secureKeyValue = require("./secureKeyValue");
11
12
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -66,6 +67,10 @@ const loadOrCreateKey = () => {
66
67
  })();
67
68
  return cachedKeyPromise;
68
69
  };
70
+ async function isPersistKeyKept() {
71
+ const key = await loadOrCreateKey();
72
+ return (await (0, _secureKeyValue.secureGet)(CIPHER_KEY_STORE_KEY)) === _cryptoJs.default.enc.Base64.stringify(key);
73
+ }
69
74
 
70
75
  /** Encrypt a JSON-serialisable payload for storage. Returns the string to persist. */
71
76
  async function encryptForPersist(plaintext) {
@@ -1 +1 @@
1
- {"version":3,"names":["_cryptoJs","_interopRequireDefault","require","_secureKeyValue","e","__esModule","default","CIPHER_KEY_STORE_KEY","ENVELOPE_VERSION","KEY_BYTES","IV_BYTES","randomWordArray","byteLength","bytes","Uint8Array","global","crypto","getRandomValues","words","i","length","push","CryptoJS","lib","WordArray","create","cachedKeyPromise","loadOrCreateKey","existing","secureGet","enc","Base64","parse","key","secureSet","stringify","encryptForPersist","plaintext","iv","encrypted","AES","encrypt","mode","CBC","padding","pad","Pkcs7","envelope","v","ct","ciphertext","toString","JSON","decryptFromPersist","stored","decrypted","decrypt","Utf8","__resetPersistCryptoKeyForTests","exports"],"sourceRoot":"../../../src","sources":["helpers/persistCrypto.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_cryptoJs","_interopRequireDefault","require","_secureKeyValue","e","__esModule","default","CIPHER_KEY_STORE_KEY","ENVELOPE_VERSION","KEY_BYTES","IV_BYTES","randomWordArray","byteLength","bytes","Uint8Array","global","crypto","getRandomValues","words","i","length","push","CryptoJS","lib","WordArray","create","cachedKeyPromise","loadOrCreateKey","existing","secureGet","enc","Base64","parse","key","secureSet","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","exports"],"sourceRoot":"../../../src","sources":["helpers/persistCrypto.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.reactionsEnabled = exports.reactionPickerEnabled = exports.quickReactionIds = void 0;
7
+ var _emoji = require("./emoji");
8
+ const reactionsEnabled = config => !config?.disableReactions && config?.reactions?.enabled !== false;
9
+ exports.reactionsEnabled = reactionsEnabled;
10
+ const quickReactionIds = config => {
11
+ const ids = config?.reactions?.quickReactions;
12
+ return Array.isArray(ids) && ids.length ? ids.slice(0, 8) : _emoji.DEFAULT_QUICK_REACTIONS;
13
+ };
14
+ exports.quickReactionIds = quickReactionIds;
15
+ const reactionPickerEnabled = config => reactionsEnabled(config) && config?.reactions?.picker !== false;
16
+ exports.reactionPickerEnabled = reactionPickerEnabled;
17
+ //# sourceMappingURL=reactionsConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_emoji","require","reactionsEnabled","config","disableReactions","reactions","enabled","exports","quickReactionIds","ids","quickReactions","Array","isArray","length","slice","DEFAULT_QUICK_REACTIONS","reactionPickerEnabled","picker"],"sourceRoot":"../../../src","sources":["helpers/reactionsConfig.ts"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAEO,MAAMC,gBAAgB,GAAIC,MAAuB,IACtD,CAACA,MAAM,EAAEC,gBAAgB,IAAID,MAAM,EAAEE,SAAS,EAAEC,OAAO,KAAK,KAAK;AAACC,OAAA,CAAAL,gBAAA,GAAAA,gBAAA;AAE7D,MAAMM,gBAAgB,GAAIL,MAAuB,IAAe;EACrE,MAAMM,GAAG,GAAGN,MAAM,EAAEE,SAAS,EAAEK,cAAc;EAC7C,OAAOC,KAAK,CAACC,OAAO,CAACH,GAAG,CAAC,IAAIA,GAAG,CAACI,MAAM,GAAGJ,GAAG,CAACK,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAGC,8BAAuB;AACrF,CAAC;AAACR,OAAA,CAAAC,gBAAA,GAAAA,gBAAA;AAEK,MAAMQ,qBAAqB,GAAIb,MAAuB,IAC3DD,gBAAgB,CAACC,MAAM,CAAC,IAAIA,MAAM,EAAEE,SAAS,EAAEY,MAAM,KAAK,KAAK;AAACV,OAAA,CAAAS,qBAAA,GAAAA,qBAAA","ignoreList":[]}
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.__resetSecureKeyValueWarningForTests = void 0;
7
7
  exports.secureGet = secureGet;
8
+ exports.secureGetOrCreate = secureGetOrCreate;
8
9
  exports.secureRemove = secureRemove;
9
10
  exports.secureSet = secureSet;
10
11
  var _asyncStorage = _interopRequireDefault(require("@react-native-async-storage/async-storage"));
@@ -74,6 +75,25 @@ async function secureRemove(key) {
74
75
  }
75
76
  await _asyncStorage.default.removeItem(FALLBACK_PREFIX + key).catch(() => undefined);
76
77
  }
78
+ async function secureGetOrCreate(key, create) {
79
+ const existing = await secureGet(key);
80
+ if (existing) {
81
+ return {
82
+ value: existing,
83
+ created: false
84
+ };
85
+ }
86
+ const value = create();
87
+ await secureSet(key, value);
88
+ if ((await secureGet(key)) !== value) {
89
+ (0, _devLogger.pushLog)('warn', `secureStore: ${key} was not kept`);
90
+ return null;
91
+ }
92
+ return {
93
+ value,
94
+ created: true
95
+ };
96
+ }
77
97
 
78
98
  /** Test seam only. */
79
99
  const __resetSecureKeyValueWarningForTests = () => {
@@ -1 +1 @@
1
- {"version":3,"names":["_asyncStorage","_interopRequireDefault","require","_secureStoreRuntime","_devLogger","e","__esModule","default","FALLBACK_PREFIX","warnedFallback","warnFallbackOnce","pushLog","secureGet","key","store","loadSecureStore","getItemAsync","AsyncStorage","getItem","secureSet","value","setItemAsync","removeItem","catch","undefined","setItem","secureRemove","deleteItemAsync","__resetSecureKeyValueWarningForTests","exports"],"sourceRoot":"../../../src","sources":["helpers/secureKeyValue.ts"],"mappings":";;;;;;;;;AAAA,IAAAA,aAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,mBAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAA6C,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE7C;AACA;AACA;AACA;AACA,MAAMG,eAAe,GAAG,0BAA0B;AAElD,IAAIC,cAAc,GAAG,KAAK;AAC1B,MAAMC,gBAAgB,GAAGA,CAAA,KAAM;EAC7B,IAAID,cAAc,EAAE;IAAC;EAAO;EAC5BA,cAAc,GAAG,IAAI;EACrB,IAAAE,kBAAO,EACL,MAAM,EACN,6DAA6D,GAC3D,gEAAgE,GAChE,mEAAmE,GACnE,mEAAmE,GACnE,yBACJ,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAeC,SAASA,CAACC,GAAW,EAA0B;EACnE,MAAMC,KAAK,GAAG,IAAAC,mCAAe,EAAC,CAAC;EAC/B,IAAID,KAAK,EAAE;IACT,IAAI;MACF,OAAO,MAAMA,KAAK,CAACE,YAAY,CAACH,GAAG,CAAC;IACtC,CAAC,CAAC,OAAOR,CAAC,EAAE;MACV,IAAAM,kBAAO,EAAC,MAAM,EAAE,6BAA6BE,GAAG,UAAU,EAAER,CAAC,CAAC;MAC9D,OAAO,IAAI;IACb;EACF;EACAK,gBAAgB,CAAC,CAAC;EAClB,OAAOO,qBAAY,CAACC,OAAO,CAACV,eAAe,GAAGK,GAAG,CAAC;AACpD;AAEO,eAAeM,SAASA,CAACN,GAAW,EAAEO,KAAa,EAAiB;EACzE,MAAMN,KAAK,GAAG,IAAAC,mCAAe,EAAC,CAAC;EAC/B,IAAID,KAAK,EAAE;IACT,IAAI;MACF,MAAMA,KAAK,CAACO,YAAY,CAACR,GAAG,EAAEO,KAAK,CAAC;MACpC;MACA;MACAH,qBAAY,CAACK,UAAU,CAACd,eAAe,GAAGK,GAAG,CAAC,CAACU,KAAK,CAAC,MAAMC,SAAS,CAAC;MACrE;IACF,CAAC,CAAC,OAAOnB,CAAC,EAAE;MACV,IAAAM,kBAAO,EAAC,MAAM,EAAE,6BAA6BE,GAAG,UAAU,EAAER,CAAC,CAAC;MAC9D;IACF;EACF;EACAK,gBAAgB,CAAC,CAAC;EAClB,MAAMO,qBAAY,CAACQ,OAAO,CAACjB,eAAe,GAAGK,GAAG,EAAEO,KAAK,CAAC;AAC1D;AAEO,eAAeM,YAAYA,CAACb,GAAW,EAAiB;EAC7D,MAAMC,KAAK,GAAG,IAAAC,mCAAe,EAAC,CAAC;EAC/B,IAAID,KAAK,EAAE;IACT,IAAI;MACF,MAAMA,KAAK,CAACa,eAAe,CAACd,GAAG,CAAC;IAClC,CAAC,CAAC,MAAM;MACN;MACA;IAAA;EAEJ;EACA,MAAMI,qBAAY,CAACK,UAAU,CAACd,eAAe,GAAGK,GAAG,CAAC,CAACU,KAAK,CAAC,MAAMC,SAAS,CAAC;AAC7E;;AAEA;AACO,MAAMI,oCAAoC,GAAGA,CAAA,KAAY;EAC9DnB,cAAc,GAAG,KAAK;AACxB,CAAC;AAACoB,OAAA,CAAAD,oCAAA,GAAAA,oCAAA","ignoreList":[]}
1
+ {"version":3,"names":["_asyncStorage","_interopRequireDefault","require","_secureStoreRuntime","_devLogger","e","__esModule","default","FALLBACK_PREFIX","warnedFallback","warnFallbackOnce","pushLog","secureGet","key","store","loadSecureStore","getItemAsync","AsyncStorage","getItem","secureSet","value","setItemAsync","removeItem","catch","undefined","setItem","secureRemove","deleteItemAsync","secureGetOrCreate","create","existing","created","__resetSecureKeyValueWarningForTests","exports"],"sourceRoot":"../../../src","sources":["helpers/secureKeyValue.ts"],"mappings":"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","ignoreList":[]}
@@ -23,7 +23,18 @@ const updateMessagesTillLast = async (rooms, client, batchSize = 5, maxFetchAtte
23
23
  const currentBatch = roomEntries.slice(processedIndex, processedIndex + batchSize);
24
24
  const lastTimestampsByJid = currentBatch.reduce((acc, current) => {
25
25
  const room = _roomStore.store.getState().rooms?.rooms?.[current];
26
- acc[current] = Number(room?.lastMessageTimestamp ?? 0) || 0;
26
+ const cached = Array.isArray(room?.messages) ? room.messages : [];
27
+ let newest = 0;
28
+ for (const m of cached) {
29
+ if (!m || m.pending || m.id === 'delimiter-new') {
30
+ continue;
31
+ }
32
+ const id = Number(m.id);
33
+ if (Number.isFinite(id) && id > newest) {
34
+ newest = id;
35
+ }
36
+ }
37
+ acc[current] = newest;
27
38
  return acc;
28
39
  }, {});
29
40
  await Promise.all(currentBatch.map(async (jid, index) => {
@@ -40,7 +51,11 @@ const updateMessagesTillLast = async (rooms, client, batchSize = 5, maxFetchAtte
40
51
  }
41
52
  while (!isMessageFound && counter < maxFetchAttempts) {
42
53
  const lastMessageId = counter > 0 ? currentJidNewMessages[0]?.id : undefined;
43
- const fetchedMessages = await client.getHistoryStanza(jid, messagesPerFetch, Number(lastMessageId));
54
+ const fetchedMessages = await client.getHistoryStanza(jid, messagesPerFetch, Number(lastMessageId), undefined, {
55
+ coalesceRoom: true,
56
+ source: 'background',
57
+ selfApplied: true
58
+ });
44
59
  if (!fetchedMessages.length) {
45
60
  break;
46
61
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_roomStore","require","_roomsSlice","_checkUniqueUsers","updateMessagesTillLast","rooms","client","batchSize","maxFetchAttempts","messagesPerFetch","roomEntries","Object","keys","length","processedIndex","currentBatch","slice","lastTimestampsByJid","reduce","acc","current","room","store","getState","Number","lastMessageTimestamp","Promise","all","map","jid","index","res","setTimeout","counter","isMessageFound","currentJidNewMessages","lastCachedMessagesTimeStamp","lastMessageId","id","undefined","fetchedMessages","getHistoryStanza","some","message","checkUniqueUsers","dispatch","setRoomMessages","roomJID","messages","error","console","log","exports"],"sourceRoot":"../../../src","sources":["helpers/updateMessagesTillLast.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_roomStore","require","_roomsSlice","_checkUniqueUsers","updateMessagesTillLast","rooms","client","batchSize","maxFetchAttempts","messagesPerFetch","roomEntries","Object","keys","length","processedIndex","currentBatch","slice","lastTimestampsByJid","reduce","acc","current","room","store","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","checkUniqueUsers","dispatch","setRoomMessages","roomJID","error","console","log","exports"],"sourceRoot":"../../../src","sources":["helpers/updateMessagesTillLast.tsx"],"mappings":"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","ignoreList":[]}