@ethora/chat-component-rn 26.8.1 → 26.8.3

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 (927) hide show
  1. package/CHANGELOG.md +110 -0
  2. package/README.md +70 -11
  3. package/lib/commonjs/assets/EmptyChatIllustration.js +7 -6
  4. package/lib/commonjs/assets/EmptyChatIllustration.js.map +1 -1
  5. package/lib/commonjs/assets/icons.js +7 -2
  6. package/lib/commonjs/assets/icons.js.map +1 -1
  7. package/lib/commonjs/components/AuthForms/Login.js +27 -12
  8. package/lib/commonjs/components/AuthForms/Login.js.map +1 -1
  9. package/lib/commonjs/components/ContextMenu/ContextMenuComponents.js +12 -4
  10. package/lib/commonjs/components/ContextMenu/ContextMenuComponents.js.map +1 -1
  11. package/lib/commonjs/components/DropdownMenu/DropdownMenu.js +16 -9
  12. package/lib/commonjs/components/DropdownMenu/DropdownMenu.js.map +1 -1
  13. package/lib/commonjs/components/ExampleComponents/CustomMessage.js +25 -7
  14. package/lib/commonjs/components/ExampleComponents/CustomMessage.js.map +1 -1
  15. package/lib/commonjs/components/ExampleComponents/CustomTypingIndicatorExamples.js +18 -6
  16. package/lib/commonjs/components/ExampleComponents/CustomTypingIndicatorExamples.js.map +1 -1
  17. package/lib/commonjs/components/Header/HeaderRoomList.js +34 -10
  18. package/lib/commonjs/components/Header/HeaderRoomList.js.map +1 -1
  19. package/lib/commonjs/components/InputComponents/Search.js +13 -4
  20. package/lib/commonjs/components/InputComponents/Search.js.map +1 -1
  21. package/lib/commonjs/components/MainComponents/ChatHeader.js +18 -6
  22. package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
  23. package/lib/commonjs/components/MainComponents/ChatRoom.js +154 -15
  24. package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
  25. package/lib/commonjs/components/MainComponents/ChatWrapper.js +42 -19
  26. package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
  27. package/lib/commonjs/components/MainComponents/LanguageSelectorModal.js +37 -10
  28. package/lib/commonjs/components/MainComponents/LanguageSelectorModal.js.map +1 -1
  29. package/lib/commonjs/components/MainComponents/LoginWrapper.js +2 -1
  30. package/lib/commonjs/components/MainComponents/LoginWrapper.js.map +1 -1
  31. package/lib/commonjs/components/MainComponents/MediaMessage.js +72 -28
  32. package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
  33. package/lib/commonjs/components/MainComponents/MessageContainer.js +5 -1
  34. package/lib/commonjs/components/MainComponents/MessageContainer.js.map +1 -1
  35. package/lib/commonjs/components/MainComponents/MessageList.js +22 -8
  36. package/lib/commonjs/components/MainComponents/MessageList.js.map +1 -1
  37. package/lib/commonjs/components/MainComponents/ProfileImagePlaceholder.js +14 -13
  38. package/lib/commonjs/components/MainComponents/ProfileImagePlaceholder.js.map +1 -1
  39. package/lib/commonjs/components/MainComponents/RNStyled.js +12 -4
  40. package/lib/commonjs/components/MainComponents/RNStyled.js.map +1 -1
  41. package/lib/commonjs/components/MainComponents/ReduxWrapper.js +25 -8
  42. package/lib/commonjs/components/MainComponents/ReduxWrapper.js.map +1 -1
  43. package/lib/commonjs/components/MainComponents/RoomList.js +214 -38
  44. package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
  45. package/lib/commonjs/components/MainComponents/Select.js +29 -8
  46. package/lib/commonjs/components/MainComponents/Select.js.map +1 -1
  47. package/lib/commonjs/components/Menu/HeaderRoomListMenu.js +329 -99
  48. package/lib/commonjs/components/Menu/HeaderRoomListMenu.js.map +1 -1
  49. package/lib/commonjs/components/MessageBubble/BottomReplyContainer.js +24 -8
  50. package/lib/commonjs/components/MessageBubble/BottomReplyContainer.js.map +1 -1
  51. package/lib/commonjs/components/MessageBubble/Message.js +46 -24
  52. package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
  53. package/lib/commonjs/components/MessageBubble/MessageInteractions.js +15 -4
  54. package/lib/commonjs/components/MessageBubble/MessageInteractions.js.map +1 -1
  55. package/lib/commonjs/components/MessageBubble/MessageReaction.js +10 -5
  56. package/lib/commonjs/components/MessageBubble/MessageReaction.js.map +1 -1
  57. package/lib/commonjs/components/Modals/AddMembersModal/AddMembersModal.js +1 -5
  58. package/lib/commonjs/components/Modals/AddMembersModal/AddMembersModal.js.map +1 -1
  59. package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js +345 -118
  60. package/lib/commonjs/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
  61. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +599 -203
  62. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  63. package/lib/commonjs/components/Modals/ChatProfileModal/DeleteChatModal.js +5 -7
  64. package/lib/commonjs/components/Modals/ChatProfileModal/DeleteChatModal.js.map +1 -1
  65. package/lib/commonjs/components/Modals/ChatProfileModal/ReportChatModal.js +230 -0
  66. package/lib/commonjs/components/Modals/ChatProfileModal/ReportChatModal.js.map +1 -0
  67. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +89 -36
  68. package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  69. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js +2 -1
  70. package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  71. package/lib/commonjs/components/Modals/Modal/Modal.js +8 -0
  72. package/lib/commonjs/components/Modals/Modal/Modal.js.map +1 -1
  73. package/lib/commonjs/components/Modals/ModalHeaderComponent.js +8 -2
  74. package/lib/commonjs/components/Modals/ModalHeaderComponent.js.map +1 -1
  75. package/lib/commonjs/components/Modals/ModalWrapper/ModalWrapper.js +8 -8
  76. package/lib/commonjs/components/Modals/ModalWrapper/ModalWrapper.js.map +1 -1
  77. package/lib/commonjs/components/Modals/NewChatModal/ModalContent.js +3 -6
  78. package/lib/commonjs/components/Modals/NewChatModal/ModalContent.js.map +1 -1
  79. package/lib/commonjs/components/Modals/NewChatModal/NewChatModal.js +205 -106
  80. package/lib/commonjs/components/Modals/NewChatModal/NewChatModal.js.map +1 -1
  81. package/lib/commonjs/components/Modals/NewChatModal/UpdNewChatModal.js +8 -0
  82. package/lib/commonjs/components/Modals/NewChatModal/UpdNewChatModal.js.map +1 -1
  83. package/lib/commonjs/components/Modals/ProfileHeader/ProfileHeader.js +563 -0
  84. package/lib/commonjs/components/Modals/ProfileHeader/ProfileHeader.js.map +1 -0
  85. package/lib/commonjs/components/Modals/ProfileHeader/ProfileMenu.js +215 -0
  86. package/lib/commonjs/components/Modals/ProfileHeader/ProfileMenu.js.map +1 -0
  87. package/lib/commonjs/components/Modals/SelectUsersModal/SelectUsersModal.js +7 -9
  88. package/lib/commonjs/components/Modals/SelectUsersModal/SelectUsersModal.js.map +1 -1
  89. package/lib/commonjs/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js +8 -6
  90. package/lib/commonjs/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js.map +1 -1
  91. package/lib/commonjs/components/Modals/SettingsModals/Referrals/Referrals.js +7 -2
  92. package/lib/commonjs/components/Modals/SettingsModals/Referrals/Referrals.js.map +1 -1
  93. package/lib/commonjs/components/Modals/SettingsModals/SharedStyledComponents.js +7 -3
  94. package/lib/commonjs/components/Modals/SettingsModals/SharedStyledComponents.js.map +1 -1
  95. package/lib/commonjs/components/Modals/SettingsModals/Visibility/RadioInput.js +10 -6
  96. package/lib/commonjs/components/Modals/SettingsModals/Visibility/RadioInput.js.map +1 -1
  97. package/lib/commonjs/components/Modals/SettingsModals/Visibility/VisibilityModal.js +7 -6
  98. package/lib/commonjs/components/Modals/SettingsModals/Visibility/VisibilityModal.js.map +1 -1
  99. package/lib/commonjs/components/Modals/UserProfileModal/EditUserModal.js +10 -22
  100. package/lib/commonjs/components/Modals/UserProfileModal/EditUserModal.js.map +1 -1
  101. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js +510 -244
  102. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  103. package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js +77 -46
  104. package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
  105. package/lib/commonjs/components/Modals/styledModalComponents.js +68 -17
  106. package/lib/commonjs/components/Modals/styledModalComponents.js.map +1 -1
  107. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js +30 -10
  108. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js.map +1 -1
  109. package/lib/commonjs/components/RoomComponents/styled/LastAudioMessage.js +6 -2
  110. package/lib/commonjs/components/RoomComponents/styled/LastAudioMessage.js.map +1 -1
  111. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js +22 -3
  112. package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  113. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js +17 -3
  114. package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  115. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js +17 -3
  116. package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  117. package/lib/commonjs/components/RoomComponents/styled/StyledRoomComponents.js +6 -0
  118. package/lib/commonjs/components/RoomComponents/styled/StyledRoomComponents.js.map +1 -1
  119. package/lib/commonjs/components/Thread/ThreadWrapper.js +9 -2
  120. package/lib/commonjs/components/Thread/ThreadWrapper.js.map +1 -1
  121. package/lib/commonjs/components/Toast/Toast.js +3 -1
  122. package/lib/commonjs/components/Toast/Toast.js.map +1 -1
  123. package/lib/commonjs/components/VideoCalls/VideoCallSession.js +6 -3
  124. package/lib/commonjs/components/VideoCalls/VideoCallSession.js.map +1 -1
  125. package/lib/commonjs/components/styled/AudioMessage.js +18 -12
  126. package/lib/commonjs/components/styled/AudioMessage.js.map +1 -1
  127. package/lib/commonjs/components/styled/Button.js +18 -9
  128. package/lib/commonjs/components/styled/Button.js.map +1 -1
  129. package/lib/commonjs/components/styled/DateLabel.js +8 -5
  130. package/lib/commonjs/components/styled/DateLabel.js.map +1 -1
  131. package/lib/commonjs/components/styled/MediaModal.js +27 -21
  132. package/lib/commonjs/components/styled/MediaModal.js.map +1 -1
  133. package/lib/commonjs/components/styled/MessageImage.js +37 -9
  134. package/lib/commonjs/components/styled/MessageImage.js.map +1 -1
  135. package/lib/commonjs/components/styled/RoomListComponents/index.js +60 -38
  136. package/lib/commonjs/components/styled/RoomListComponents/index.js.map +1 -1
  137. package/lib/commonjs/components/styled/SendInput.js +93 -19
  138. package/lib/commonjs/components/styled/SendInput.js.map +1 -1
  139. package/lib/commonjs/components/styled/StyledComponents.js +75 -25
  140. package/lib/commonjs/components/styled/StyledComponents.js.map +1 -1
  141. package/lib/commonjs/components/styled/StyledInput.js +32 -18
  142. package/lib/commonjs/components/styled/StyledInput.js.map +1 -1
  143. package/lib/commonjs/components/styled/StyledInputComponents/CustomTypingIndicator.js +13 -8
  144. package/lib/commonjs/components/styled/StyledInputComponents/CustomTypingIndicator.js.map +1 -1
  145. package/lib/commonjs/components/styled/StyledInputComponents/MediaComponents.js +20 -9
  146. package/lib/commonjs/components/styled/StyledInputComponents/MediaComponents.js.map +1 -1
  147. package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js +50 -22
  148. package/lib/commonjs/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
  149. package/lib/commonjs/components/styled/TreadLabel.js +6 -3
  150. package/lib/commonjs/components/styled/TreadLabel.js.map +1 -1
  151. package/lib/commonjs/components/styled/UnsupportedType.js +14 -4
  152. package/lib/commonjs/components/styled/UnsupportedType.js.map +1 -1
  153. package/lib/commonjs/components/styled/VideoMessage.js +119 -61
  154. package/lib/commonjs/components/styled/VideoMessage.js.map +1 -1
  155. package/lib/commonjs/context/MessageNotificationContext.js +14 -3
  156. package/lib/commonjs/context/MessageNotificationContext.js.map +1 -1
  157. package/lib/commonjs/context/xmppProvider.js +184 -59
  158. package/lib/commonjs/context/xmppProvider.js.map +1 -1
  159. package/lib/commonjs/helpers/createMessageFromXml.js +19 -1
  160. package/lib/commonjs/helpers/createMessageFromXml.js.map +1 -1
  161. package/lib/commonjs/helpers/ensureScopedChatCache.js +2 -2
  162. package/lib/commonjs/helpers/ensureScopedChatCache.js.map +1 -1
  163. package/lib/commonjs/helpers/getChatBackground.js +26 -0
  164. package/lib/commonjs/helpers/getChatBackground.js.map +1 -0
  165. package/lib/commonjs/helpers/getDateLabelColor.js +3 -1
  166. package/lib/commonjs/helpers/getDateLabelColor.js.map +1 -1
  167. package/lib/commonjs/helpers/getDisplayFileName.js +79 -0
  168. package/lib/commonjs/helpers/getDisplayFileName.js.map +1 -0
  169. package/lib/commonjs/helpers/getIconColor.js +4 -1
  170. package/lib/commonjs/helpers/getIconColor.js.map +1 -1
  171. package/lib/commonjs/helpers/getSenderNameColor.js +3 -1
  172. package/lib/commonjs/helpers/getSenderNameColor.js.map +1 -1
  173. package/lib/commonjs/helpers/getServerReadTimestamp.js +188 -0
  174. package/lib/commonjs/helpers/getServerReadTimestamp.js.map +1 -0
  175. package/lib/commonjs/helpers/historyPreloadScheduler.js +65 -2
  176. package/lib/commonjs/helpers/historyPreloadScheduler.js.map +1 -1
  177. package/lib/commonjs/helpers/initXmppRooms.js +14 -8
  178. package/lib/commonjs/helpers/initXmppRooms.js.map +1 -1
  179. package/lib/commonjs/helpers/insertMessageWithDelimiter.js +51 -9
  180. package/lib/commonjs/helpers/insertMessageWithDelimiter.js.map +1 -1
  181. package/lib/commonjs/helpers/isOwnMessage.js +75 -0
  182. package/lib/commonjs/helpers/isOwnMessage.js.map +1 -0
  183. package/lib/commonjs/helpers/keyboardLayout.js +12 -2
  184. package/lib/commonjs/helpers/keyboardLayout.js.map +1 -1
  185. package/lib/commonjs/helpers/markdownParser.js +27 -5
  186. package/lib/commonjs/helpers/markdownParser.js.map +1 -1
  187. package/lib/commonjs/helpers/mediaLibraryRuntime.js +31 -0
  188. package/lib/commonjs/helpers/mediaLibraryRuntime.js.map +1 -0
  189. package/lib/commonjs/helpers/mimeToExtension.js +6 -14
  190. package/lib/commonjs/helpers/mimeToExtension.js.map +1 -1
  191. package/lib/commonjs/helpers/msgSortableMs.js +37 -0
  192. package/lib/commonjs/helpers/msgSortableMs.js.map +1 -0
  193. package/lib/commonjs/helpers/parseMessageBody.js +82 -24
  194. package/lib/commonjs/helpers/parseMessageBody.js.map +1 -1
  195. package/lib/commonjs/helpers/persistCrypto.js +122 -0
  196. package/lib/commonjs/helpers/persistCrypto.js.map +1 -0
  197. package/lib/commonjs/helpers/pickImageAsset.js +68 -0
  198. package/lib/commonjs/helpers/pickImageAsset.js.map +1 -0
  199. package/lib/commonjs/helpers/pushPayload.js +71 -0
  200. package/lib/commonjs/helpers/pushPayload.js.map +1 -0
  201. package/lib/commonjs/helpers/resolveInitBeforeLoadUser.js +130 -17
  202. package/lib/commonjs/helpers/resolveInitBeforeLoadUser.js.map +1 -1
  203. package/lib/commonjs/helpers/secureFileUrl.js +101 -0
  204. package/lib/commonjs/helpers/secureFileUrl.js.map +1 -0
  205. package/lib/commonjs/helpers/secureKeyValue.js +83 -0
  206. package/lib/commonjs/helpers/secureKeyValue.js.map +1 -0
  207. package/lib/commonjs/helpers/secureStoreRuntime.js +59 -0
  208. package/lib/commonjs/helpers/secureStoreRuntime.js.map +1 -0
  209. package/lib/commonjs/helpers/secureUserStorage.js +75 -0
  210. package/lib/commonjs/helpers/secureUserStorage.js.map +1 -0
  211. package/lib/commonjs/helpers/shallowEqual.js +36 -0
  212. package/lib/commonjs/helpers/shallowEqual.js.map +1 -0
  213. package/lib/commonjs/helpers/sheetGestures.js +32 -0
  214. package/lib/commonjs/helpers/sheetGestures.js.map +1 -0
  215. package/lib/commonjs/hooks/useChatRoomFocus.js +45 -12
  216. package/lib/commonjs/hooks/useChatRoomFocus.js.map +1 -1
  217. package/lib/commonjs/hooks/useChatWrapperInit.js +30 -10
  218. package/lib/commonjs/hooks/useChatWrapperInit.js.map +1 -1
  219. package/lib/commonjs/hooks/useComposing.js +27 -0
  220. package/lib/commonjs/hooks/useComposing.js.map +1 -1
  221. package/lib/commonjs/hooks/useCustomTypingIndicator.js +7 -3
  222. package/lib/commonjs/hooks/useCustomTypingIndicator.js.map +1 -1
  223. package/lib/commonjs/hooks/useFileToken.js +10 -0
  224. package/lib/commonjs/hooks/useFileToken.js.map +1 -0
  225. package/lib/commonjs/hooks/useLogout.js +33 -10
  226. package/lib/commonjs/hooks/useLogout.js.map +1 -1
  227. package/lib/commonjs/hooks/usePendingNotification.js +8 -11
  228. package/lib/commonjs/hooks/usePendingNotification.js.map +1 -1
  229. package/lib/commonjs/hooks/useSendMessage.js +50 -14
  230. package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
  231. package/lib/commonjs/hooks/useTheme.js +35 -0
  232. package/lib/commonjs/hooks/useTheme.js.map +1 -0
  233. package/lib/commonjs/hooks/useUnreadMessagesCounter.js +6 -1
  234. package/lib/commonjs/hooks/useUnreadMessagesCounter.js.map +1 -1
  235. package/lib/commonjs/i18n/strings.js +163 -37
  236. package/lib/commonjs/i18n/strings.js.map +1 -1
  237. package/lib/commonjs/main.js +119 -0
  238. package/lib/commonjs/main.js.map +1 -1
  239. package/lib/commonjs/networking/api-requests/auth.api.js +134 -60
  240. package/lib/commonjs/networking/api-requests/auth.api.js.map +1 -1
  241. package/lib/commonjs/networking/api-requests/push.api.js +130 -45
  242. package/lib/commonjs/networking/api-requests/push.api.js.map +1 -1
  243. package/lib/commonjs/networking/api-requests/roomMembers.api.js +1 -1
  244. package/lib/commonjs/networking/api-requests/roomMembers.api.js.map +1 -1
  245. package/lib/commonjs/networking/api-requests/rooms.api.js +22 -9
  246. package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
  247. package/lib/commonjs/networking/api-requests/user.api.js +68 -9
  248. package/lib/commonjs/networking/api-requests/user.api.js.map +1 -1
  249. package/lib/commonjs/networking/apiClient.js +62 -112
  250. package/lib/commonjs/networking/apiClient.js.map +1 -1
  251. package/lib/commonjs/networking/authRefresh.js +332 -0
  252. package/lib/commonjs/networking/authRefresh.js.map +1 -0
  253. package/lib/commonjs/networking/stanzaHandlers.js +41 -28
  254. package/lib/commonjs/networking/stanzaHandlers.js.map +1 -1
  255. package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js +46 -8
  256. package/lib/commonjs/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
  257. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js +8 -1
  258. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  259. package/lib/commonjs/networking/xmpp/subscribeToRoomMessages.xmpp.js +5 -1
  260. package/lib/commonjs/networking/xmpp/subscribeToRoomMessages.xmpp.js.map +1 -1
  261. package/lib/commonjs/networking/xmppClient.js +124 -8
  262. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  263. package/lib/commonjs/roomStore/chatSettingsSlice.js +26 -7
  264. package/lib/commonjs/roomStore/chatSettingsSlice.js.map +1 -1
  265. package/lib/commonjs/roomStore/index.js +35 -2
  266. package/lib/commonjs/roomStore/index.js.map +1 -1
  267. package/lib/commonjs/roomStore/persistence.js +226 -23
  268. package/lib/commonjs/roomStore/persistence.js.map +1 -1
  269. package/lib/commonjs/roomStore/roomsSlice.js +151 -38
  270. package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
  271. package/lib/commonjs/services/pushRegistration.js +250 -0
  272. package/lib/commonjs/services/pushRegistration.js.map +1 -0
  273. package/lib/commonjs/services/pushSubscriptionService.js +15 -37
  274. package/lib/commonjs/services/pushSubscriptionService.js.map +1 -1
  275. package/lib/commonjs/theme/index.js +38 -0
  276. package/lib/commonjs/theme/index.js.map +1 -0
  277. package/lib/commonjs/theme/styled.d.js +4 -0
  278. package/lib/commonjs/theme/styled.d.js.map +1 -0
  279. package/lib/commonjs/theme/theme.js +137 -0
  280. package/lib/commonjs/theme/theme.js.map +1 -0
  281. package/lib/commonjs/version.js +1 -1
  282. package/lib/module/assets/EmptyChatIllustration.js +7 -6
  283. package/lib/module/assets/EmptyChatIllustration.js.map +1 -1
  284. package/lib/module/assets/icons.js +6 -1
  285. package/lib/module/assets/icons.js.map +1 -1
  286. package/lib/module/components/AuthForms/Login.js +27 -12
  287. package/lib/module/components/AuthForms/Login.js.map +1 -1
  288. package/lib/module/components/ContextMenu/ContextMenuComponents.js +12 -4
  289. package/lib/module/components/ContextMenu/ContextMenuComponents.js.map +1 -1
  290. package/lib/module/components/DropdownMenu/DropdownMenu.js +16 -9
  291. package/lib/module/components/DropdownMenu/DropdownMenu.js.map +1 -1
  292. package/lib/module/components/ExampleComponents/CustomMessage.js +25 -7
  293. package/lib/module/components/ExampleComponents/CustomMessage.js.map +1 -1
  294. package/lib/module/components/ExampleComponents/CustomTypingIndicatorExamples.js +18 -6
  295. package/lib/module/components/ExampleComponents/CustomTypingIndicatorExamples.js.map +1 -1
  296. package/lib/module/components/Header/HeaderRoomList.js +34 -10
  297. package/lib/module/components/Header/HeaderRoomList.js.map +1 -1
  298. package/lib/module/components/InputComponents/Search.js +13 -4
  299. package/lib/module/components/InputComponents/Search.js.map +1 -1
  300. package/lib/module/components/MainComponents/ChatHeader.js +18 -6
  301. package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
  302. package/lib/module/components/MainComponents/ChatRoom.js +156 -17
  303. package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
  304. package/lib/module/components/MainComponents/ChatWrapper.js +43 -20
  305. package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
  306. package/lib/module/components/MainComponents/LanguageSelectorModal.js +37 -10
  307. package/lib/module/components/MainComponents/LanguageSelectorModal.js.map +1 -1
  308. package/lib/module/components/MainComponents/LoginWrapper.js +2 -1
  309. package/lib/module/components/MainComponents/LoginWrapper.js.map +1 -1
  310. package/lib/module/components/MainComponents/MediaMessage.js +72 -29
  311. package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
  312. package/lib/module/components/MainComponents/MessageContainer.js +5 -1
  313. package/lib/module/components/MainComponents/MessageContainer.js.map +1 -1
  314. package/lib/module/components/MainComponents/MessageList.js +22 -8
  315. package/lib/module/components/MainComponents/MessageList.js.map +1 -1
  316. package/lib/module/components/MainComponents/ProfileImagePlaceholder.js +14 -13
  317. package/lib/module/components/MainComponents/ProfileImagePlaceholder.js.map +1 -1
  318. package/lib/module/components/MainComponents/RNStyled.js +12 -4
  319. package/lib/module/components/MainComponents/RNStyled.js.map +1 -1
  320. package/lib/module/components/MainComponents/ReduxWrapper.js +25 -8
  321. package/lib/module/components/MainComponents/ReduxWrapper.js.map +1 -1
  322. package/lib/module/components/MainComponents/RoomList.js +213 -38
  323. package/lib/module/components/MainComponents/RoomList.js.map +1 -1
  324. package/lib/module/components/MainComponents/Select.js +29 -8
  325. package/lib/module/components/MainComponents/Select.js.map +1 -1
  326. package/lib/module/components/Menu/HeaderRoomListMenu.js +331 -102
  327. package/lib/module/components/Menu/HeaderRoomListMenu.js.map +1 -1
  328. package/lib/module/components/MessageBubble/BottomReplyContainer.js +24 -8
  329. package/lib/module/components/MessageBubble/BottomReplyContainer.js.map +1 -1
  330. package/lib/module/components/MessageBubble/Message.js +47 -25
  331. package/lib/module/components/MessageBubble/Message.js.map +1 -1
  332. package/lib/module/components/MessageBubble/MessageInteractions.js +15 -4
  333. package/lib/module/components/MessageBubble/MessageInteractions.js.map +1 -1
  334. package/lib/module/components/MessageBubble/MessageReaction.js +10 -5
  335. package/lib/module/components/MessageBubble/MessageReaction.js.map +1 -1
  336. package/lib/module/components/Modals/AddMembersModal/AddMembersModal.js +2 -6
  337. package/lib/module/components/Modals/AddMembersModal/AddMembersModal.js.map +1 -1
  338. package/lib/module/components/Modals/AttachSheet/AttachSheet.js +336 -121
  339. package/lib/module/components/Modals/AttachSheet/AttachSheet.js.map +1 -1
  340. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +603 -208
  341. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  342. package/lib/module/components/Modals/ChatProfileModal/DeleteChatModal.js +6 -8
  343. package/lib/module/components/Modals/ChatProfileModal/DeleteChatModal.js.map +1 -1
  344. package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js +225 -0
  345. package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js.map +1 -0
  346. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +90 -37
  347. package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
  348. package/lib/module/components/Modals/FilePreviewModal/PdfView.js +2 -1
  349. package/lib/module/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
  350. package/lib/module/components/Modals/Modal/Modal.js +9 -1
  351. package/lib/module/components/Modals/Modal/Modal.js.map +1 -1
  352. package/lib/module/components/Modals/ModalHeaderComponent.js +8 -2
  353. package/lib/module/components/Modals/ModalHeaderComponent.js.map +1 -1
  354. package/lib/module/components/Modals/ModalWrapper/ModalWrapper.js +10 -10
  355. package/lib/module/components/Modals/ModalWrapper/ModalWrapper.js.map +1 -1
  356. package/lib/module/components/Modals/NewChatModal/ModalContent.js +4 -7
  357. package/lib/module/components/Modals/NewChatModal/ModalContent.js.map +1 -1
  358. package/lib/module/components/Modals/NewChatModal/NewChatModal.js +208 -108
  359. package/lib/module/components/Modals/NewChatModal/NewChatModal.js.map +1 -1
  360. package/lib/module/components/Modals/NewChatModal/UpdNewChatModal.js +8 -0
  361. package/lib/module/components/Modals/NewChatModal/UpdNewChatModal.js.map +1 -1
  362. package/lib/module/components/Modals/ProfileHeader/ProfileHeader.js +555 -0
  363. package/lib/module/components/Modals/ProfileHeader/ProfileHeader.js.map +1 -0
  364. package/lib/module/components/Modals/ProfileHeader/ProfileMenu.js +210 -0
  365. package/lib/module/components/Modals/ProfileHeader/ProfileMenu.js.map +1 -0
  366. package/lib/module/components/Modals/SelectUsersModal/SelectUsersModal.js +8 -10
  367. package/lib/module/components/Modals/SelectUsersModal/SelectUsersModal.js.map +1 -1
  368. package/lib/module/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js +8 -6
  369. package/lib/module/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js.map +1 -1
  370. package/lib/module/components/Modals/SettingsModals/Referrals/Referrals.js +7 -2
  371. package/lib/module/components/Modals/SettingsModals/Referrals/Referrals.js.map +1 -1
  372. package/lib/module/components/Modals/SettingsModals/SharedStyledComponents.js +7 -3
  373. package/lib/module/components/Modals/SettingsModals/SharedStyledComponents.js.map +1 -1
  374. package/lib/module/components/Modals/SettingsModals/Visibility/RadioInput.js +10 -6
  375. package/lib/module/components/Modals/SettingsModals/Visibility/RadioInput.js.map +1 -1
  376. package/lib/module/components/Modals/SettingsModals/Visibility/VisibilityModal.js +7 -6
  377. package/lib/module/components/Modals/SettingsModals/Visibility/VisibilityModal.js.map +1 -1
  378. package/lib/module/components/Modals/UserProfileModal/EditUserModal.js +11 -24
  379. package/lib/module/components/Modals/UserProfileModal/EditUserModal.js.map +1 -1
  380. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js +512 -248
  381. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  382. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js +79 -48
  383. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
  384. package/lib/module/components/Modals/styledModalComponents.js +67 -16
  385. package/lib/module/components/Modals/styledModalComponents.js.map +1 -1
  386. package/lib/module/components/RoomComponents/ChatRoomItem.js +30 -10
  387. package/lib/module/components/RoomComponents/ChatRoomItem.js.map +1 -1
  388. package/lib/module/components/RoomComponents/styled/LastAudioMessage.js +6 -2
  389. package/lib/module/components/RoomComponents/styled/LastAudioMessage.js.map +1 -1
  390. package/lib/module/components/RoomComponents/styled/LastMessageFile.js +22 -3
  391. package/lib/module/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
  392. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js +17 -3
  393. package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
  394. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js +17 -3
  395. package/lib/module/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
  396. package/lib/module/components/RoomComponents/styled/StyledRoomComponents.js +6 -0
  397. package/lib/module/components/RoomComponents/styled/StyledRoomComponents.js.map +1 -1
  398. package/lib/module/components/Thread/ThreadWrapper.js +9 -2
  399. package/lib/module/components/Thread/ThreadWrapper.js.map +1 -1
  400. package/lib/module/components/Toast/Toast.js +3 -1
  401. package/lib/module/components/Toast/Toast.js.map +1 -1
  402. package/lib/module/components/VideoCalls/VideoCallSession.js +6 -3
  403. package/lib/module/components/VideoCalls/VideoCallSession.js.map +1 -1
  404. package/lib/module/components/styled/AudioMessage.js +18 -12
  405. package/lib/module/components/styled/AudioMessage.js.map +1 -1
  406. package/lib/module/components/styled/Button.js +17 -9
  407. package/lib/module/components/styled/Button.js.map +1 -1
  408. package/lib/module/components/styled/DateLabel.js +8 -5
  409. package/lib/module/components/styled/DateLabel.js.map +1 -1
  410. package/lib/module/components/styled/MediaModal.js +29 -23
  411. package/lib/module/components/styled/MediaModal.js.map +1 -1
  412. package/lib/module/components/styled/MessageImage.js +37 -9
  413. package/lib/module/components/styled/MessageImage.js.map +1 -1
  414. package/lib/module/components/styled/RoomListComponents/index.js +62 -39
  415. package/lib/module/components/styled/RoomListComponents/index.js.map +1 -1
  416. package/lib/module/components/styled/SendInput.js +94 -20
  417. package/lib/module/components/styled/SendInput.js.map +1 -1
  418. package/lib/module/components/styled/StyledComponents.js +75 -25
  419. package/lib/module/components/styled/StyledComponents.js.map +1 -1
  420. package/lib/module/components/styled/StyledInput.js +32 -18
  421. package/lib/module/components/styled/StyledInput.js.map +1 -1
  422. package/lib/module/components/styled/StyledInputComponents/CustomTypingIndicator.js +13 -8
  423. package/lib/module/components/styled/StyledInputComponents/CustomTypingIndicator.js.map +1 -1
  424. package/lib/module/components/styled/StyledInputComponents/MediaComponents.js +20 -9
  425. package/lib/module/components/styled/StyledInputComponents/MediaComponents.js.map +1 -1
  426. package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js +50 -22
  427. package/lib/module/components/styled/StyledInputComponents/StyledInputComponents.js.map +1 -1
  428. package/lib/module/components/styled/TreadLabel.js +6 -3
  429. package/lib/module/components/styled/TreadLabel.js.map +1 -1
  430. package/lib/module/components/styled/UnsupportedType.js +14 -4
  431. package/lib/module/components/styled/UnsupportedType.js.map +1 -1
  432. package/lib/module/components/styled/VideoMessage.js +120 -62
  433. package/lib/module/components/styled/VideoMessage.js.map +1 -1
  434. package/lib/module/context/MessageNotificationContext.js +14 -3
  435. package/lib/module/context/MessageNotificationContext.js.map +1 -1
  436. package/lib/module/context/xmppProvider.js +184 -60
  437. package/lib/module/context/xmppProvider.js.map +1 -1
  438. package/lib/module/helpers/createMessageFromXml.js +19 -1
  439. package/lib/module/helpers/createMessageFromXml.js.map +1 -1
  440. package/lib/module/helpers/ensureScopedChatCache.js +2 -2
  441. package/lib/module/helpers/ensureScopedChatCache.js.map +1 -1
  442. package/lib/module/helpers/getChatBackground.js +22 -0
  443. package/lib/module/helpers/getChatBackground.js.map +1 -0
  444. package/lib/module/helpers/getDateLabelColor.js +4 -1
  445. package/lib/module/helpers/getDateLabelColor.js.map +1 -1
  446. package/lib/module/helpers/getDisplayFileName.js +73 -0
  447. package/lib/module/helpers/getDisplayFileName.js.map +1 -0
  448. package/lib/module/helpers/getIconColor.js +5 -1
  449. package/lib/module/helpers/getIconColor.js.map +1 -1
  450. package/lib/module/helpers/getSenderNameColor.js +4 -1
  451. package/lib/module/helpers/getSenderNameColor.js.map +1 -1
  452. package/lib/module/helpers/getServerReadTimestamp.js +181 -0
  453. package/lib/module/helpers/getServerReadTimestamp.js.map +1 -0
  454. package/lib/module/helpers/historyPreloadScheduler.js +66 -3
  455. package/lib/module/helpers/historyPreloadScheduler.js.map +1 -1
  456. package/lib/module/helpers/initXmppRooms.js +14 -8
  457. package/lib/module/helpers/initXmppRooms.js.map +1 -1
  458. package/lib/module/helpers/insertMessageWithDelimiter.js +52 -9
  459. package/lib/module/helpers/insertMessageWithDelimiter.js.map +1 -1
  460. package/lib/module/helpers/isOwnMessage.js +70 -0
  461. package/lib/module/helpers/isOwnMessage.js.map +1 -0
  462. package/lib/module/helpers/keyboardLayout.js +12 -2
  463. package/lib/module/helpers/keyboardLayout.js.map +1 -1
  464. package/lib/module/helpers/markdownParser.js +27 -5
  465. package/lib/module/helpers/markdownParser.js.map +1 -1
  466. package/lib/module/helpers/mediaLibraryRuntime.js +25 -0
  467. package/lib/module/helpers/mediaLibraryRuntime.js.map +1 -0
  468. package/lib/module/helpers/mimeToExtension.js +6 -13
  469. package/lib/module/helpers/mimeToExtension.js.map +1 -1
  470. package/lib/module/helpers/msgSortableMs.js +32 -0
  471. package/lib/module/helpers/msgSortableMs.js.map +1 -0
  472. package/lib/module/helpers/parseMessageBody.js +82 -24
  473. package/lib/module/helpers/parseMessageBody.js.map +1 -1
  474. package/lib/module/helpers/persistCrypto.js +115 -0
  475. package/lib/module/helpers/persistCrypto.js.map +1 -0
  476. package/lib/module/helpers/pickImageAsset.js +63 -0
  477. package/lib/module/helpers/pickImageAsset.js.map +1 -0
  478. package/lib/module/helpers/pushPayload.js +63 -0
  479. package/lib/module/helpers/pushPayload.js.map +1 -0
  480. package/lib/module/helpers/resolveInitBeforeLoadUser.js +130 -16
  481. package/lib/module/helpers/resolveInitBeforeLoadUser.js.map +1 -1
  482. package/lib/module/helpers/secureFileUrl.js +91 -0
  483. package/lib/module/helpers/secureFileUrl.js.map +1 -0
  484. package/lib/module/helpers/secureKeyValue.js +75 -0
  485. package/lib/module/helpers/secureKeyValue.js.map +1 -0
  486. package/lib/module/helpers/secureStoreRuntime.js +52 -0
  487. package/lib/module/helpers/secureStoreRuntime.js.map +1 -0
  488. package/lib/module/helpers/secureUserStorage.js +72 -0
  489. package/lib/module/helpers/secureUserStorage.js.map +1 -0
  490. package/lib/module/helpers/shallowEqual.js +31 -0
  491. package/lib/module/helpers/shallowEqual.js.map +1 -0
  492. package/lib/module/helpers/sheetGestures.js +26 -0
  493. package/lib/module/helpers/sheetGestures.js.map +1 -0
  494. package/lib/module/hooks/useChatRoomFocus.js +46 -13
  495. package/lib/module/hooks/useChatRoomFocus.js.map +1 -1
  496. package/lib/module/hooks/useChatWrapperInit.js +30 -10
  497. package/lib/module/hooks/useChatWrapperInit.js.map +1 -1
  498. package/lib/module/hooks/useComposing.js +28 -1
  499. package/lib/module/hooks/useComposing.js.map +1 -1
  500. package/lib/module/hooks/useCustomTypingIndicator.js +8 -3
  501. package/lib/module/hooks/useCustomTypingIndicator.js.map +1 -1
  502. package/lib/module/hooks/useFileToken.js +5 -0
  503. package/lib/module/hooks/useFileToken.js.map +1 -0
  504. package/lib/module/hooks/useLogout.js +33 -10
  505. package/lib/module/hooks/useLogout.js.map +1 -1
  506. package/lib/module/hooks/usePendingNotification.js +8 -11
  507. package/lib/module/hooks/usePendingNotification.js.map +1 -1
  508. package/lib/module/hooks/useSendMessage.js +52 -16
  509. package/lib/module/hooks/useSendMessage.js.map +1 -1
  510. package/lib/module/hooks/useTheme.js +30 -0
  511. package/lib/module/hooks/useTheme.js.map +1 -0
  512. package/lib/module/hooks/useUnreadMessagesCounter.js +6 -1
  513. package/lib/module/hooks/useUnreadMessagesCounter.js.map +1 -1
  514. package/lib/module/i18n/strings.js +163 -37
  515. package/lib/module/i18n/strings.js.map +1 -1
  516. package/lib/module/main.js +17 -2
  517. package/lib/module/main.js.map +1 -1
  518. package/lib/module/networking/api-requests/auth.api.js +131 -59
  519. package/lib/module/networking/api-requests/auth.api.js.map +1 -1
  520. package/lib/module/networking/api-requests/push.api.js +119 -45
  521. package/lib/module/networking/api-requests/push.api.js.map +1 -1
  522. package/lib/module/networking/api-requests/roomMembers.api.js +1 -1
  523. package/lib/module/networking/api-requests/roomMembers.api.js.map +1 -1
  524. package/lib/module/networking/api-requests/rooms.api.js +21 -9
  525. package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
  526. package/lib/module/networking/api-requests/user.api.js +64 -7
  527. package/lib/module/networking/api-requests/user.api.js.map +1 -1
  528. package/lib/module/networking/apiClient.js +61 -113
  529. package/lib/module/networking/apiClient.js.map +1 -1
  530. package/lib/module/networking/authRefresh.js +321 -0
  531. package/lib/module/networking/authRefresh.js.map +1 -0
  532. package/lib/module/networking/stanzaHandlers.js +41 -28
  533. package/lib/module/networking/stanzaHandlers.js.map +1 -1
  534. package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js +46 -8
  535. package/lib/module/networking/xmpp/flushLastViewedToPrivateStore.js.map +1 -1
  536. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js +8 -1
  537. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  538. package/lib/module/networking/xmpp/subscribeToRoomMessages.xmpp.js +5 -1
  539. package/lib/module/networking/xmpp/subscribeToRoomMessages.xmpp.js.map +1 -1
  540. package/lib/module/networking/xmppClient.js +124 -8
  541. package/lib/module/networking/xmppClient.js.map +1 -1
  542. package/lib/module/roomStore/chatSettingsSlice.js +26 -7
  543. package/lib/module/roomStore/chatSettingsSlice.js.map +1 -1
  544. package/lib/module/roomStore/index.js +37 -4
  545. package/lib/module/roomStore/index.js.map +1 -1
  546. package/lib/module/roomStore/persistence.js +223 -22
  547. package/lib/module/roomStore/persistence.js.map +1 -1
  548. package/lib/module/roomStore/roomsSlice.js +139 -34
  549. package/lib/module/roomStore/roomsSlice.js.map +1 -1
  550. package/lib/module/services/pushRegistration.js +239 -0
  551. package/lib/module/services/pushRegistration.js.map +1 -0
  552. package/lib/module/services/pushSubscriptionService.js +15 -37
  553. package/lib/module/services/pushSubscriptionService.js.map +1 -1
  554. package/lib/module/theme/index.js +7 -0
  555. package/lib/module/theme/index.js.map +1 -0
  556. package/lib/module/theme/styled.d.js +6 -0
  557. package/lib/module/theme/styled.d.js.map +1 -0
  558. package/lib/module/theme/theme.js +131 -0
  559. package/lib/module/theme/theme.js.map +1 -0
  560. package/lib/module/version.js +1 -1
  561. package/lib/typescript/assets/EmptyChatIllustration.d.ts +1 -0
  562. package/lib/typescript/assets/EmptyChatIllustration.d.ts.map +1 -1
  563. package/lib/typescript/assets/icons.d.ts +24 -0
  564. package/lib/typescript/assets/icons.d.ts.map +1 -1
  565. package/lib/typescript/components/AuthForms/Login.d.ts.map +1 -1
  566. package/lib/typescript/components/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  567. package/lib/typescript/components/ExampleComponents/CustomMessage.d.ts.map +1 -1
  568. package/lib/typescript/components/Header/HeaderRoomList.d.ts.map +1 -1
  569. package/lib/typescript/components/InputComponents/Search.d.ts.map +1 -1
  570. package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
  571. package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
  572. package/lib/typescript/components/MainComponents/ChatWrapper.d.ts.map +1 -1
  573. package/lib/typescript/components/MainComponents/LanguageSelectorModal.d.ts.map +1 -1
  574. package/lib/typescript/components/MainComponents/LoginWrapper.d.ts.map +1 -1
  575. package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
  576. package/lib/typescript/components/MainComponents/MessageContainer.d.ts.map +1 -1
  577. package/lib/typescript/components/MainComponents/MessageList.d.ts +10 -1
  578. package/lib/typescript/components/MainComponents/MessageList.d.ts.map +1 -1
  579. package/lib/typescript/components/MainComponents/ProfileImagePlaceholder.d.ts.map +1 -1
  580. package/lib/typescript/components/MainComponents/ReduxWrapper.d.ts.map +1 -1
  581. package/lib/typescript/components/MainComponents/RoomList.d.ts +7 -0
  582. package/lib/typescript/components/MainComponents/RoomList.d.ts.map +1 -1
  583. package/lib/typescript/components/MainComponents/Select.d.ts.map +1 -1
  584. package/lib/typescript/components/Menu/HeaderRoomListMenu.d.ts +3 -0
  585. package/lib/typescript/components/Menu/HeaderRoomListMenu.d.ts.map +1 -1
  586. package/lib/typescript/components/MessageBubble/BottomReplyContainer.d.ts.map +1 -1
  587. package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
  588. package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts.map +1 -1
  589. package/lib/typescript/components/MessageBubble/MessageReaction.d.ts.map +1 -1
  590. package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts +9 -0
  591. package/lib/typescript/components/Modals/AttachSheet/AttachSheet.d.ts.map +1 -1
  592. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts +10 -0
  593. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
  594. package/lib/typescript/components/Modals/ChatProfileModal/DeleteChatModal.d.ts.map +1 -1
  595. package/lib/typescript/components/Modals/ChatProfileModal/ReportChatModal.d.ts +9 -0
  596. package/lib/typescript/components/Modals/ChatProfileModal/ReportChatModal.d.ts.map +1 -0
  597. package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts.map +1 -1
  598. package/lib/typescript/components/Modals/FilePreviewModal/PdfView.d.ts.map +1 -1
  599. package/lib/typescript/components/Modals/Modal/Modal.d.ts.map +1 -1
  600. package/lib/typescript/components/Modals/ModalHeaderComponent.d.ts.map +1 -1
  601. package/lib/typescript/components/Modals/ModalWrapper/ModalWrapper.d.ts.map +1 -1
  602. package/lib/typescript/components/Modals/NewChatModal/ModalContent.d.ts +4 -2
  603. package/lib/typescript/components/Modals/NewChatModal/ModalContent.d.ts.map +1 -1
  604. package/lib/typescript/components/Modals/NewChatModal/NewChatModal.d.ts +1 -1
  605. package/lib/typescript/components/Modals/NewChatModal/NewChatModal.d.ts.map +1 -1
  606. package/lib/typescript/components/Modals/NewChatModal/UpdNewChatModal.d.ts.map +1 -1
  607. package/lib/typescript/components/Modals/ProfileHeader/ProfileHeader.d.ts +75 -0
  608. package/lib/typescript/components/Modals/ProfileHeader/ProfileHeader.d.ts.map +1 -0
  609. package/lib/typescript/components/Modals/ProfileHeader/ProfileMenu.d.ts +25 -0
  610. package/lib/typescript/components/Modals/ProfileHeader/ProfileMenu.d.ts.map +1 -0
  611. package/lib/typescript/components/Modals/SelectUsersModal/SelectUsersModal.d.ts +6 -1
  612. package/lib/typescript/components/Modals/SelectUsersModal/SelectUsersModal.d.ts.map +1 -1
  613. package/lib/typescript/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.d.ts.map +1 -1
  614. package/lib/typescript/components/Modals/SettingsModals/Referrals/Referrals.d.ts.map +1 -1
  615. package/lib/typescript/components/Modals/SettingsModals/SharedStyledComponents.d.ts +2 -2
  616. package/lib/typescript/components/Modals/SettingsModals/SharedStyledComponents.d.ts.map +1 -1
  617. package/lib/typescript/components/Modals/SettingsModals/Visibility/RadioInput.d.ts.map +1 -1
  618. package/lib/typescript/components/Modals/SettingsModals/Visibility/VisibilityModal.d.ts.map +1 -1
  619. package/lib/typescript/components/Modals/UserProfileModal/EditUserModal.d.ts.map +1 -1
  620. package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts +16 -0
  621. package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts.map +1 -1
  622. package/lib/typescript/components/Modals/UserSettingsModal/UserSettingsModal.d.ts +1 -0
  623. package/lib/typescript/components/Modals/UserSettingsModal/UserSettingsModal.d.ts.map +1 -1
  624. package/lib/typescript/components/Modals/styledModalComponents.d.ts +2 -0
  625. package/lib/typescript/components/Modals/styledModalComponents.d.ts.map +1 -1
  626. package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts.map +1 -1
  627. package/lib/typescript/components/RoomComponents/styled/LastAudioMessage.d.ts.map +1 -1
  628. package/lib/typescript/components/RoomComponents/styled/LastMessageFile.d.ts +1 -1
  629. package/lib/typescript/components/RoomComponents/styled/LastMessageFile.d.ts.map +1 -1
  630. package/lib/typescript/components/RoomComponents/styled/LastMessagePhoto.d.ts +1 -1
  631. package/lib/typescript/components/RoomComponents/styled/LastMessagePhoto.d.ts.map +1 -1
  632. package/lib/typescript/components/RoomComponents/styled/LastMessageVideo.d.ts +1 -1
  633. package/lib/typescript/components/RoomComponents/styled/LastMessageVideo.d.ts.map +1 -1
  634. package/lib/typescript/components/RoomComponents/styled/StyledRoomComponents.d.ts.map +1 -1
  635. package/lib/typescript/components/Thread/ThreadWrapper.d.ts.map +1 -1
  636. package/lib/typescript/components/VideoCalls/VideoCallSession.d.ts.map +1 -1
  637. package/lib/typescript/components/styled/AudioMessage.d.ts.map +1 -1
  638. package/lib/typescript/components/styled/Button.d.ts.map +1 -1
  639. package/lib/typescript/components/styled/DateLabel.d.ts.map +1 -1
  640. package/lib/typescript/components/styled/MediaModal.d.ts +2 -2
  641. package/lib/typescript/components/styled/MediaModal.d.ts.map +1 -1
  642. package/lib/typescript/components/styled/MessageImage.d.ts +14 -0
  643. package/lib/typescript/components/styled/MessageImage.d.ts.map +1 -1
  644. package/lib/typescript/components/styled/RoomListComponents/index.d.ts.map +1 -1
  645. package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
  646. package/lib/typescript/components/styled/StyledComponents.d.ts.map +1 -1
  647. package/lib/typescript/components/styled/StyledInput.d.ts.map +1 -1
  648. package/lib/typescript/components/styled/StyledInputComponents/MediaComponents.d.ts.map +1 -1
  649. package/lib/typescript/components/styled/StyledInputComponents/StyledInputComponents.d.ts.map +1 -1
  650. package/lib/typescript/components/styled/TreadLabel.d.ts.map +1 -1
  651. package/lib/typescript/components/styled/UnsupportedType.d.ts.map +1 -1
  652. package/lib/typescript/components/styled/VideoMessage.d.ts +8 -0
  653. package/lib/typescript/components/styled/VideoMessage.d.ts.map +1 -1
  654. package/lib/typescript/context/MessageNotificationContext.d.ts.map +1 -1
  655. package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
  656. package/lib/typescript/helpers/createMessageFromXml.d.ts.map +1 -1
  657. package/lib/typescript/helpers/getAvatarColor.d.ts +1 -1
  658. package/lib/typescript/helpers/getChatBackground.d.ts +15 -0
  659. package/lib/typescript/helpers/getChatBackground.d.ts.map +1 -0
  660. package/lib/typescript/helpers/getDateLabelColor.d.ts +3 -7
  661. package/lib/typescript/helpers/getDateLabelColor.d.ts.map +1 -1
  662. package/lib/typescript/helpers/getDisplayFileName.d.ts +49 -0
  663. package/lib/typescript/helpers/getDisplayFileName.d.ts.map +1 -0
  664. package/lib/typescript/helpers/getIconColor.d.ts +4 -7
  665. package/lib/typescript/helpers/getIconColor.d.ts.map +1 -1
  666. package/lib/typescript/helpers/getSenderNameColor.d.ts +3 -7
  667. package/lib/typescript/helpers/getSenderNameColor.d.ts.map +1 -1
  668. package/lib/typescript/helpers/getServerReadTimestamp.d.ts +108 -0
  669. package/lib/typescript/helpers/getServerReadTimestamp.d.ts.map +1 -0
  670. package/lib/typescript/helpers/historyPreloadScheduler.d.ts.map +1 -1
  671. package/lib/typescript/helpers/initXmppRooms.d.ts.map +1 -1
  672. package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts +1 -1
  673. package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts.map +1 -1
  674. package/lib/typescript/helpers/isOwnMessage.d.ts +36 -0
  675. package/lib/typescript/helpers/isOwnMessage.d.ts.map +1 -0
  676. package/lib/typescript/helpers/keyboardLayout.d.ts +5 -1
  677. package/lib/typescript/helpers/keyboardLayout.d.ts.map +1 -1
  678. package/lib/typescript/helpers/markdownParser.d.ts +8 -1
  679. package/lib/typescript/helpers/markdownParser.d.ts.map +1 -1
  680. package/lib/typescript/helpers/mediaLibraryRuntime.d.ts +3 -0
  681. package/lib/typescript/helpers/mediaLibraryRuntime.d.ts.map +1 -0
  682. package/lib/typescript/helpers/mimeToExtension.d.ts +0 -15
  683. package/lib/typescript/helpers/mimeToExtension.d.ts.map +1 -1
  684. package/lib/typescript/helpers/msgSortableMs.d.ts +2 -0
  685. package/lib/typescript/helpers/msgSortableMs.d.ts.map +1 -0
  686. package/lib/typescript/helpers/parseMessageBody.d.ts +8 -1
  687. package/lib/typescript/helpers/parseMessageBody.d.ts.map +1 -1
  688. package/lib/typescript/helpers/persistCrypto.d.ts +13 -0
  689. package/lib/typescript/helpers/persistCrypto.d.ts.map +1 -0
  690. package/lib/typescript/helpers/pickImageAsset.d.ts +27 -0
  691. package/lib/typescript/helpers/pickImageAsset.d.ts.map +1 -0
  692. package/lib/typescript/helpers/pushPayload.d.ts +7 -0
  693. package/lib/typescript/helpers/pushPayload.d.ts.map +1 -0
  694. package/lib/typescript/helpers/resolveInitBeforeLoadUser.d.ts.map +1 -1
  695. package/lib/typescript/helpers/secureFileUrl.d.ts +7 -0
  696. package/lib/typescript/helpers/secureFileUrl.d.ts.map +1 -0
  697. package/lib/typescript/helpers/secureKeyValue.d.ts +13 -0
  698. package/lib/typescript/helpers/secureKeyValue.d.ts.map +1 -0
  699. package/lib/typescript/helpers/secureStoreRuntime.d.ts +29 -0
  700. package/lib/typescript/helpers/secureStoreRuntime.d.ts.map +1 -0
  701. package/lib/typescript/helpers/secureUserStorage.d.ts +23 -0
  702. package/lib/typescript/helpers/secureUserStorage.d.ts.map +1 -0
  703. package/lib/typescript/helpers/shallowEqual.d.ts +11 -0
  704. package/lib/typescript/helpers/shallowEqual.d.ts.map +1 -0
  705. package/lib/typescript/helpers/sheetGestures.d.ts +20 -0
  706. package/lib/typescript/helpers/sheetGestures.d.ts.map +1 -0
  707. package/lib/typescript/hooks/useChatRoomFocus.d.ts +4 -1
  708. package/lib/typescript/hooks/useChatRoomFocus.d.ts.map +1 -1
  709. package/lib/typescript/hooks/useChatWrapperInit.d.ts.map +1 -1
  710. package/lib/typescript/hooks/useComposing.d.ts.map +1 -1
  711. package/lib/typescript/hooks/useCustomTypingIndicator.d.ts +2 -0
  712. package/lib/typescript/hooks/useCustomTypingIndicator.d.ts.map +1 -1
  713. package/lib/typescript/hooks/useFileToken.d.ts +2 -0
  714. package/lib/typescript/hooks/useFileToken.d.ts.map +1 -0
  715. package/lib/typescript/hooks/useLogout.d.ts.map +1 -1
  716. package/lib/typescript/hooks/usePendingNotification.d.ts.map +1 -1
  717. package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
  718. package/lib/typescript/hooks/useTheme.d.ts +16 -0
  719. package/lib/typescript/hooks/useTheme.d.ts.map +1 -0
  720. package/lib/typescript/hooks/useUnreadMessagesCounter.d.ts +1 -0
  721. package/lib/typescript/hooks/useUnreadMessagesCounter.d.ts.map +1 -1
  722. package/lib/typescript/i18n/strings.d.ts.map +1 -1
  723. package/lib/typescript/main.d.ts +16 -2
  724. package/lib/typescript/main.d.ts.map +1 -1
  725. package/lib/typescript/networking/api-requests/auth.api.d.ts +3 -1
  726. package/lib/typescript/networking/api-requests/auth.api.d.ts.map +1 -1
  727. package/lib/typescript/networking/api-requests/push.api.d.ts +46 -3
  728. package/lib/typescript/networking/api-requests/push.api.d.ts.map +1 -1
  729. package/lib/typescript/networking/api-requests/rooms.api.d.ts +1 -0
  730. package/lib/typescript/networking/api-requests/rooms.api.d.ts.map +1 -1
  731. package/lib/typescript/networking/api-requests/user.api.d.ts +27 -0
  732. package/lib/typescript/networking/api-requests/user.api.d.ts.map +1 -1
  733. package/lib/typescript/networking/apiClient.d.ts +12 -6
  734. package/lib/typescript/networking/apiClient.d.ts.map +1 -1
  735. package/lib/typescript/networking/authRefresh.d.ts +95 -0
  736. package/lib/typescript/networking/authRefresh.d.ts.map +1 -0
  737. package/lib/typescript/networking/stanzaHandlers.d.ts.map +1 -1
  738. package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts +10 -2
  739. package/lib/typescript/networking/xmpp/flushLastViewedToPrivateStore.d.ts.map +1 -1
  740. package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts.map +1 -1
  741. package/lib/typescript/networking/xmpp/subscribeToRoomMessages.xmpp.d.ts.map +1 -1
  742. package/lib/typescript/networking/xmppClient.d.ts +14 -0
  743. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  744. package/lib/typescript/roomStore/chatSettingsSlice.d.ts +16 -0
  745. package/lib/typescript/roomStore/chatSettingsSlice.d.ts.map +1 -1
  746. package/lib/typescript/roomStore/index.d.ts.map +1 -1
  747. package/lib/typescript/roomStore/persistence.d.ts +18 -1
  748. package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
  749. package/lib/typescript/roomStore/roomsSlice.d.ts +43 -3
  750. package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
  751. package/lib/typescript/services/pushRegistration.d.ts +21 -0
  752. package/lib/typescript/services/pushRegistration.d.ts.map +1 -0
  753. package/lib/typescript/services/pushSubscriptionService.d.ts +1 -5
  754. package/lib/typescript/services/pushSubscriptionService.d.ts.map +1 -1
  755. package/lib/typescript/theme/index.d.ts +5 -0
  756. package/lib/typescript/theme/index.d.ts.map +1 -0
  757. package/lib/typescript/theme/theme.d.ts +113 -0
  758. package/lib/typescript/theme/theme.d.ts.map +1 -0
  759. package/lib/typescript/types/models/room.model.d.ts +1 -0
  760. package/lib/typescript/types/models/room.model.d.ts.map +1 -1
  761. package/lib/typescript/types/types.d.ts +70 -5
  762. package/lib/typescript/types/types.d.ts.map +1 -1
  763. package/lib/typescript/version.d.ts +1 -1
  764. package/package.json +41 -28
  765. package/src/assets/EmptyChatIllustration.tsx +7 -5
  766. package/src/assets/icons.tsx +72 -9
  767. package/src/components/AuthForms/Login.tsx +14 -12
  768. package/src/components/ContextMenu/ContextMenuComponents.tsx +4 -4
  769. package/src/components/DropdownMenu/DropdownMenu.tsx +14 -6
  770. package/src/components/ExampleComponents/CustomMessage.tsx +9 -8
  771. package/src/components/ExampleComponents/CustomTypingIndicatorExamples.tsx +6 -6
  772. package/src/components/Header/HeaderRoomList.tsx +35 -8
  773. package/src/components/InputComponents/Search.tsx +7 -4
  774. package/src/components/MainComponents/ChatHeader.tsx +18 -6
  775. package/src/components/MainComponents/ChatRoom.tsx +164 -15
  776. package/src/components/MainComponents/ChatWrapper.tsx +44 -26
  777. package/src/components/MainComponents/LanguageSelectorModal.tsx +33 -7
  778. package/src/components/MainComponents/LoginWrapper.tsx +1 -0
  779. package/src/components/MainComponents/MediaMessage.tsx +63 -26
  780. package/src/components/MainComponents/MessageContainer.tsx +5 -1
  781. package/src/components/MainComponents/MessageList.tsx +36 -7
  782. package/src/components/MainComponents/ProfileImagePlaceholder.tsx +21 -14
  783. package/src/components/MainComponents/RNStyled.tsx +4 -4
  784. package/src/components/MainComponents/ReduxWrapper.tsx +23 -7
  785. package/src/components/MainComponents/RoomList.tsx +243 -40
  786. package/src/components/MainComponents/Select.tsx +13 -8
  787. package/src/components/Menu/HeaderRoomListMenu.tsx +347 -77
  788. package/src/components/MessageBubble/BottomReplyContainer.tsx +16 -11
  789. package/src/components/MessageBubble/Message.tsx +48 -25
  790. package/src/components/MessageBubble/MessageInteractions.tsx +17 -4
  791. package/src/components/MessageBubble/MessageReaction.tsx +9 -4
  792. package/src/components/Modals/AddMembersModal/AddMembersModal.tsx +2 -2
  793. package/src/components/Modals/AttachSheet/AttachSheet.tsx +376 -106
  794. package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +639 -283
  795. package/src/components/Modals/ChatProfileModal/DeleteChatModal.tsx +6 -4
  796. package/src/components/Modals/ChatProfileModal/ReportChatModal.tsx +248 -0
  797. package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +93 -47
  798. package/src/components/Modals/FilePreviewModal/PdfView.tsx +2 -1
  799. package/src/components/Modals/Modal/Modal.tsx +7 -0
  800. package/src/components/Modals/ModalHeaderComponent.tsx +9 -2
  801. package/src/components/Modals/ModalWrapper/ModalWrapper.tsx +14 -6
  802. package/src/components/Modals/NewChatModal/ModalContent.tsx +8 -5
  803. package/src/components/Modals/NewChatModal/NewChatModal.tsx +223 -119
  804. package/src/components/Modals/NewChatModal/UpdNewChatModal.tsx +12 -1
  805. package/src/components/Modals/ProfileHeader/ProfileHeader.tsx +624 -0
  806. package/src/components/Modals/ProfileHeader/ProfileMenu.tsx +224 -0
  807. package/src/components/Modals/SelectUsersModal/SelectUsersModal.tsx +16 -7
  808. package/src/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.tsx +8 -6
  809. package/src/components/Modals/SettingsModals/Referrals/Referrals.tsx +5 -3
  810. package/src/components/Modals/SettingsModals/SharedStyledComponents.ts +4 -4
  811. package/src/components/Modals/SettingsModals/Visibility/RadioInput.tsx +9 -5
  812. package/src/components/Modals/SettingsModals/Visibility/VisibilityModal.tsx +7 -7
  813. package/src/components/Modals/UserProfileModal/EditUserModal.tsx +12 -26
  814. package/src/components/Modals/UserProfileModal/UserProfileModal.tsx +621 -307
  815. package/src/components/Modals/UserSettingsModal/UserSettingsModal.tsx +84 -58
  816. package/src/components/Modals/styledModalComponents.tsx +31 -16
  817. package/src/components/RoomComponents/ChatRoomItem.tsx +30 -6
  818. package/src/components/RoomComponents/styled/LastAudioMessage.tsx +4 -2
  819. package/src/components/RoomComponents/styled/LastMessageFile.tsx +28 -4
  820. package/src/components/RoomComponents/styled/LastMessagePhoto.tsx +18 -3
  821. package/src/components/RoomComponents/styled/LastMessageVideo.tsx +18 -3
  822. package/src/components/RoomComponents/styled/StyledRoomComponents.ts +2 -0
  823. package/src/components/Thread/ThreadWrapper.tsx +6 -5
  824. package/src/components/Toast/Toast.tsx +1 -1
  825. package/src/components/VideoCalls/VideoCallSession.tsx +8 -3
  826. package/src/components/styled/AudioMessage.tsx +14 -10
  827. package/src/components/styled/Button.tsx +15 -8
  828. package/src/components/styled/DateLabel.tsx +7 -3
  829. package/src/components/styled/MediaModal.tsx +30 -25
  830. package/src/components/styled/MessageImage.tsx +53 -7
  831. package/src/components/styled/RoomListComponents/index.tsx +60 -35
  832. package/src/components/styled/SendInput.tsx +106 -20
  833. package/src/components/styled/StyledComponents.ts +38 -25
  834. package/src/components/styled/StyledInput.tsx +35 -21
  835. package/src/components/styled/StyledInputComponents/CustomTypingIndicator.tsx +8 -8
  836. package/src/components/styled/StyledInputComponents/MediaComponents.tsx +20 -7
  837. package/src/components/styled/StyledInputComponents/StyledInputComponents.tsx +26 -23
  838. package/src/components/styled/TreadLabel.tsx +9 -3
  839. package/src/components/styled/UnsupportedType.tsx +14 -4
  840. package/src/components/styled/VideoMessage.tsx +131 -54
  841. package/src/context/MessageNotificationContext.tsx +18 -4
  842. package/src/context/xmppProvider.tsx +216 -57
  843. package/src/helpers/createMessageFromXml.ts +20 -1
  844. package/src/helpers/ensureScopedChatCache.ts +2 -2
  845. package/src/helpers/getChatBackground.ts +20 -0
  846. package/src/helpers/getDateLabelColor.ts +5 -3
  847. package/src/helpers/getDisplayFileName.ts +87 -0
  848. package/src/helpers/getIconColor.ts +6 -3
  849. package/src/helpers/getSenderNameColor.ts +5 -3
  850. package/src/helpers/getServerReadTimestamp.ts +197 -0
  851. package/src/helpers/historyPreloadScheduler.ts +80 -3
  852. package/src/helpers/initXmppRooms.tsx +14 -10
  853. package/src/helpers/insertMessageWithDelimiter.ts +55 -19
  854. package/src/helpers/isOwnMessage.ts +90 -0
  855. package/src/helpers/keyboardLayout.ts +23 -2
  856. package/src/helpers/markdownParser.tsx +29 -5
  857. package/src/helpers/mediaLibraryRuntime.ts +25 -0
  858. package/src/helpers/mimeToExtension.ts +6 -22
  859. package/src/helpers/msgSortableMs.ts +25 -0
  860. package/src/helpers/parseMessageBody.tsx +79 -26
  861. package/src/helpers/persistCrypto.ts +127 -0
  862. package/src/helpers/pickImageAsset.ts +68 -0
  863. package/src/helpers/pushPayload.ts +62 -0
  864. package/src/helpers/resolveInitBeforeLoadUser.ts +125 -18
  865. package/src/helpers/secureFileUrl.ts +103 -0
  866. package/src/helpers/secureKeyValue.ts +80 -0
  867. package/src/helpers/secureStoreRuntime.ts +62 -0
  868. package/src/helpers/secureUserStorage.ts +80 -0
  869. package/src/helpers/shallowEqual.ts +33 -0
  870. package/src/helpers/sheetGestures.ts +25 -0
  871. package/src/hooks/useChatRoomFocus.ts +49 -9
  872. package/src/hooks/useChatWrapperInit.ts +30 -10
  873. package/src/hooks/useComposing.tsx +37 -1
  874. package/src/hooks/useCustomTypingIndicator.tsx +7 -3
  875. package/src/hooks/useFileToken.ts +7 -0
  876. package/src/hooks/useLogout.tsx +39 -12
  877. package/src/hooks/usePendingNotification.ts +5 -11
  878. package/src/hooks/useSendMessage.tsx +60 -15
  879. package/src/hooks/useTheme.ts +41 -0
  880. package/src/hooks/useUnreadMessagesCounter.ts +11 -0
  881. package/src/i18n/strings.ts +163 -37
  882. package/src/main.ts +57 -2
  883. package/src/networking/api-requests/auth.api.ts +156 -48
  884. package/src/networking/api-requests/push.api.ts +185 -62
  885. package/src/networking/api-requests/roomMembers.api.ts +1 -1
  886. package/src/networking/api-requests/rooms.api.ts +18 -9
  887. package/src/networking/api-requests/user.api.ts +79 -7
  888. package/src/networking/apiClient.ts +68 -123
  889. package/src/networking/authRefresh.ts +451 -0
  890. package/src/networking/stanzaHandlers.ts +44 -28
  891. package/src/networking/xmpp/flushLastViewedToPrivateStore.ts +71 -10
  892. package/src/networking/xmpp/presenceInRoom.xmpp.ts +6 -1
  893. package/src/networking/xmpp/subscribeToRoomMessages.xmpp.ts +12 -1
  894. package/src/networking/xmppClient.ts +141 -9
  895. package/src/roomStore/chatSettingsSlice.ts +34 -10
  896. package/src/roomStore/index.ts +40 -4
  897. package/src/roomStore/persistence.ts +234 -24
  898. package/src/roomStore/roomsSlice.ts +161 -29
  899. package/src/services/pushRegistration.ts +356 -0
  900. package/src/services/pushSubscriptionService.ts +18 -47
  901. package/src/theme/index.ts +10 -0
  902. package/src/theme/styled.d.ts +9 -0
  903. package/src/theme/theme.ts +243 -0
  904. package/src/types/models/room.model.ts +1 -0
  905. package/src/types/types.ts +96 -5
  906. package/src/version.ts +1 -1
  907. package/lib/commonjs/context/PushNotificationProvider.js +0 -79
  908. package/lib/commonjs/context/PushNotificationProvider.js.map +0 -1
  909. package/lib/commonjs/hooks/usePushNotifications.js +0 -110
  910. package/lib/commonjs/hooks/usePushNotifications.js.map +0 -1
  911. package/lib/commonjs/services/pushNotifications.js +0 -143
  912. package/lib/commonjs/services/pushNotifications.js.map +0 -1
  913. package/lib/module/context/PushNotificationProvider.js +0 -79
  914. package/lib/module/context/PushNotificationProvider.js.map +0 -1
  915. package/lib/module/hooks/usePushNotifications.js +0 -106
  916. package/lib/module/hooks/usePushNotifications.js.map +0 -1
  917. package/lib/module/services/pushNotifications.js +0 -130
  918. package/lib/module/services/pushNotifications.js.map +0 -1
  919. package/lib/typescript/context/PushNotificationProvider.d.ts +0 -2
  920. package/lib/typescript/context/PushNotificationProvider.d.ts.map +0 -1
  921. package/lib/typescript/hooks/usePushNotifications.d.ts +0 -5
  922. package/lib/typescript/hooks/usePushNotifications.d.ts.map +0 -1
  923. package/lib/typescript/services/pushNotifications.d.ts +0 -10
  924. package/lib/typescript/services/pushNotifications.d.ts.map +0 -1
  925. package/src/context/PushNotificationProvider.tsx +0 -78
  926. package/src/hooks/usePushNotifications.ts +0 -131
  927. package/src/services/pushNotifications.ts +0 -170
@@ -183,7 +183,8 @@ const onMessageHistory = async stanza => {
183
183
  // what senderJID would have held — fall back to it. createMessageFromXml
184
184
  // already derives a display name from the jid when senderFirstName/
185
185
  // senderLastName are absent.
186
- const innerFrom = stanza.getChild('result')?.getChild('forwarded')?.getChild('message')?.attrs?.from || stanza.attrs.from;
186
+ const forwardedMessage = stanza.getChild('result')?.getChild('forwarded')?.getChild('message');
187
+ const innerFrom = forwardedMessage?.attrs?.from || stanza.attrs.from;
187
188
  const senderJID = data?.attrs?.senderJID || innerFrom;
188
189
  if (!data?.attrs || !senderJID) {
189
190
  // console.log(
@@ -192,35 +193,47 @@ const onMessageHistory = async stanza => {
192
193
  // );
193
194
  return;
194
195
  }
195
- // Parse the FULL stanza the same way the realtime path does (and the
196
- // web SDK's history path does): the positional call used here before
197
- // read only <data> attrs + <body>, so the <translations> payload and
198
- // the <translate source> tag never made it onto archived messages.
199
- // Since every transcript is MAM-backfilled on room open, that alone
200
- // made translation look completely dead — the translations existed on
201
- // the wire and were dropped at this exact parse. getDataFromXml also
202
- // supplies xmppId (dedupe against the optimistic copy) and the
203
- // resource||senderJID-localpart sender id.
204
- const parsed = await (0, _getDataFromXml.getDataFromXml)(stanza);
205
- const {
206
- data: pData,
207
- id: pId,
208
- body: pBody,
209
- ...pRest
210
- } = parsed ?? {};
211
- const mergedData = {
212
- ...(pData || data.attrs)
196
+ const mergedAttrs = {
197
+ ...data.attrs
213
198
  };
214
- if (!mergedData.senderJID) {
215
- mergedData.senderJID = senderJID;
199
+ if (!mergedAttrs.senderJID) {
200
+ mergedAttrs.senderJID = senderJID;
216
201
  }
217
- const rawMessage = await (0, _createMessageFromXml.createMessageFromXml)({
218
- data: mergedData,
219
- id: pId || id,
220
- body: pBody ?? (typeof body === 'string' ? body : body?.getText?.() || ''),
221
- ...pRest,
222
- isDeleted: !!deleted || !!pRest?.deleted
223
- });
202
+ // The forwarded <message>'s own stanza id is our original send id
203
+ // (what `xmppId` holds on the live/wrapped paths) - capture it so
204
+ // this MAM-replayed message dedupes against its live echo /
205
+ // optimistic pending bubble the same way, instead of never carrying
206
+ // an xmppId at all.
207
+ if (forwardedMessage?.attrs?.id) {
208
+ mergedAttrs.xmppId = forwardedMessage.attrs.id;
209
+ }
210
+ const positionalMessage = await (0, _createMessageFromXml.createMessageFromXml)(mergedAttrs, body, id,
211
+ // Bug #41: pass the resource-bearing occupant `from`
212
+ // (room@conference/sender-id) here, not the outer envelope's
213
+ // `stanza.attrs.from` (which has no resource for a MAM result).
214
+ // createMessageFromXml derives `user.id` from this field's
215
+ // resource - the same authoritative source getDataFromXml uses
216
+ // for live messages - so catch-up rows resolve the correct
217
+ // sender from the very first render instead of needing a later
218
+ // correction once the "official" history fetch lands.
219
+ innerFrom, !!deleted);
220
+
221
+ // Translations ride on the archived stanza too (<translations> +
222
+ // <translate source>), but the positional parse above only reads
223
+ // <data> attrs + <body>, so every MAM-backfilled message lost them -
224
+ // translation looked dead on every room open. Parse the full stanza
225
+ // the way the realtime path does and carry ONLY those two fields over,
226
+ // so sender/xmppId resolution above (bug #41) stays exactly as is.
227
+ const parsedFull = await (0, _getDataFromXml.getDataFromXml)(stanza).catch(() => undefined);
228
+ const rawMessage = {
229
+ ...positionalMessage,
230
+ ...(parsedFull?.translations ? {
231
+ translations: parsedFull.translations
232
+ } : {}),
233
+ ...(parsedFull?.langSource ? {
234
+ langSource: parsedFull.langSource
235
+ } : {})
236
+ };
224
237
 
225
238
  // Same call-log transform as the realtime path, applied to archived
226
239
  // history so calls received while offline still render as log entries.
@@ -1 +1 @@
1
- {"version":3,"names":["_roomStore","require","_roomsSlice","_createMessageFromXml","_getDataFromXml","_chatSettingsSlice","_messageNotificationManager","_callLogMessage","_strings","onRealtimeMessage","stanza","getChild","is","attrs","id","body","archived","data","deleted","console","log","toString","senderJID","from","parsed","getDataFromXml","pData","pId","pBody","pRest","mergedData","rawMessage","createMessageFromXml","isDeleted","message","transformCallLogMessage","store","getState","chatSettingStore","user","xmppUsername","roomJID","split","dispatch","addRoomMessage","state","currentUserWallet","walletAddress","toLowerCase","senderJIDLower","String","includes","room","rooms","roomName","title","name","locale","config","i18n","langSource","overrides","strings","senderName","senderFirstName","senderLastName","filter","Boolean","join","trim","translateKey","messageNotificationManager","showNotification","err","warn","exports","onDeleteMessage","stanzaId","deleteRoomMessage","by","messageId","setDeleteModal","isDeleteModal","onEditMessage","replace","editRoomMessage","text","onMessageHistory","children","xmlns","delay","innerFrom","getText","handleComposing","currentUser","composingUser","norm","s","senderLocal","selfUser","selfXmppUsername","selfWallet","isSelf","chatJID","composingList","push","fullName","pop","setComposing","composing","onPresenceInRoom","startsWith","role","setRoomRole","onChatInvite","client","type","chatId","xEls","getChildren","el","child","chat","presenceInRoomStanza","getRoomsStanza","onGetMembers","onGetRoomInfo","onGetLastMessageArchive","_xmpp","onNewRoomCreated","xmpp","setCurrentRoom","onGetChatRooms","Array","isArray","forEach","result","currentChatRooms","isRoomAlreadyAdded","Object","values","some","element","jid","roomData","usersCnt","Number","users_cnt","messages","isLoading","roomBg","room_background","icon","room_thumbnail","unreadMessages","lastViewedTimestamp","addRoom","activeRoomJID","error","e","onMessageError","_stanza","onReactionMessage","onReactionHistory","onRoomKicked"],"sourceRoot":"../../../src","sources":["networking/stanzaHandlers.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_roomStore","require","_roomsSlice","_createMessageFromXml","_getDataFromXml","_chatSettingsSlice","_messageNotificationManager","_callLogMessage","_strings","onRealtimeMessage","stanza","getChild","is","attrs","id","body","archived","data","deleted","console","log","toString","senderJID","from","parsed","getDataFromXml","pData","pId","pBody","pRest","mergedData","rawMessage","createMessageFromXml","isDeleted","message","transformCallLogMessage","store","getState","chatSettingStore","user","xmppUsername","roomJID","split","dispatch","addRoomMessage","state","currentUserWallet","walletAddress","toLowerCase","senderJIDLower","String","includes","room","rooms","roomName","title","name","locale","config","i18n","langSource","overrides","strings","senderName","senderFirstName","senderLastName","filter","Boolean","join","trim","translateKey","messageNotificationManager","showNotification","err","warn","exports","onDeleteMessage","stanzaId","deleteRoomMessage","by","messageId","setDeleteModal","isDeleteModal","onEditMessage","replace","editRoomMessage","text","onMessageHistory","children","xmlns","delay","forwardedMessage","innerFrom","mergedAttrs","xmppId","positionalMessage","parsedFull","catch","undefined","translations","handleComposing","currentUser","composingUser","norm","s","senderLocal","selfUser","selfXmppUsername","selfWallet","isSelf","chatJID","composingList","push","fullName","pop","setComposing","composing","onPresenceInRoom","startsWith","role","setRoomRole","onChatInvite","client","type","chatId","xEls","getChildren","el","child","chat","presenceInRoomStanza","getRoomsStanza","onGetMembers","onGetRoomInfo","onGetLastMessageArchive","_xmpp","onNewRoomCreated","xmpp","setCurrentRoom","onGetChatRooms","Array","isArray","forEach","result","currentChatRooms","isRoomAlreadyAdded","Object","values","some","element","jid","roomData","usersCnt","Number","users_cnt","messages","isLoading","roomBg","room_background","icon","room_thumbnail","unreadMessages","lastViewedTimestamp","addRoom","activeRoomJID","error","e","onMessageError","_stanza","onReactionMessage","onReactionHistory","onRoomKicked"],"sourceRoot":"../../../src","sources":["networking/stanzaHandlers.ts"],"mappings":";;;;;;AACA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAUA,IAAAE,qBAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,kBAAA,GAAAJ,OAAA;AACA,IAAAK,2BAAA,GAAAL,OAAA;AACA,IAAAM,eAAA,GAAAN,OAAA;AACA,IAAAO,QAAA,GAAAP,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAMQ,iBAAiB,GAAG,MAAOC,MAAe,IAAK;EACnD,IACE,CAACA,MAAM,EAAEC,QAAQ,CAAC,QAAQ,CAAC,IAC3B,CAACD,MAAM,CAACC,QAAQ,CAAC,WAAW,CAAC,IAC7B,CAACD,MAAM,CAACC,QAAQ,CAAC,QAAQ,CAAC,IAC1B,CAACD,MAAM,CAACC,QAAQ,CAAC,SAAS,CAAC,IAC3B,CAACD,MAAM,CAACE,EAAE,CAAC,IAAI,CAAC,IAChBF,MAAM,CAACG,KAAK,CAACC,EAAE,KAAK,qBAAqB,EACzC;IACA,MAAMC,IAAI,GAAGL,MAAM,EAAEC,QAAQ,CAAC,MAAM,CAAC;IACrC,MAAMK,QAAQ,GAAGN,MAAM,EAAEC,QAAQ,CAAC,UAAU,CAAC;IAC7C,MAAMM,IAAI,GAAGP,MAAM,EAAEC,QAAQ,CAAC,MAAM,CAAC;IACrC,MAAMG,EAAE,GAAGE,QAAQ,EAAEH,KAAK,CAACC,EAAE;IAE7B,MAAMI,OAAO,GAAGR,MAAM,CACnBC,QAAQ,CAAC,QAAQ,CAAC,EACjBA,QAAQ,CAAC,WAAW,CAAC,EACrBA,QAAQ,CAAC,SAAS,CAAC,EACnBA,QAAQ,CAAC,SAAS,CAAC;IAEvB,IAAI,CAACM,IAAI,EAAE;MACTE,OAAO,CAACC,GAAG,CAACV,MAAM,CAACW,QAAQ,CAAC,CAAC,CAAC;MAC9BF,OAAO,CAACC,GAAG,CAAC,6CAA6C,CAAC;MAC1D;IACF;;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAME,SAAS,GAAGL,IAAI,CAACJ,KAAK,CAACS,SAAS,IAAIZ,MAAM,CAACG,KAAK,CAACU,IAAI;IAC3D,IAAI,CAACD,SAAS,EAAE;MACdH,OAAO,CAACC,GAAG,CAACV,MAAM,CAACW,QAAQ,CAAC,CAAC,CAAC;MAC9BF,OAAO,CAACC,GAAG,CAAC,kDAAkD,CAAC;MAC/D;IACF;;IAEA;IACA;IACA;IACA;IACA,MAAMI,MAAM,GAAG,MAAM,IAAAC,8BAAc,EAACf,MAAM,CAAC;IAC3C,MAAM;MAAEO,IAAI,EAAES,KAAK;MAAEZ,EAAE,EAAEa,GAAG;MAAEZ,IAAI,EAAEa,KAAK;MAAE,GAAGC;IAAM,CAAC,GACnDL,MAAM,IAAK,CAAC,CAAyC;IACvD,MAAMM,UAAmC,GAAG;MAAE,IAAIJ,KAAK,IAAIT,IAAI,CAACJ,KAAK;IAAE,CAAC;IACxE,IAAI,CAACiB,UAAU,CAACR,SAAS,EAAE;MAACQ,UAAU,CAACR,SAAS,GAAGA,SAAS;IAAC;IAC7D;IACA;IACA;IACA,MAAMS,UAAU,GAAG,MAAM,IAAAC,0CAAoB,EAAC;MAC5Cf,IAAI,EAAEa,UAAU;MAChBhB,EAAE,EAAEa,GAAG,IAAIb,EAAE;MACbC,IAAI,EAAEa,KAAK,IAAI,EAAE;MACjB,GAAGC,KAAK;MACRI,SAAS,EAAE,CAAC,CAACf,OAAO,IAAI,CAAC,CAACW,KAAK,EAAEX;IACnC,CAA+C,CAAC;;IAEhD;IACA;IACA;IACA;IACA;IACA,MAAMgB,OAAO,GAAG,IAAAC,uCAAuB,EACrCJ,UAAU,EACVK,gBAAK,CAACC,QAAQ,CAAC,CAAC,CAACC,gBAAgB,CAACC,IAAI,EAAEC,YAAY,IAAI,EAC1D,CAAC;IAED,MAAMC,OAAO,GAAG/B,MAAM,CAACG,KAAK,CAACU,IAAI,CAACmB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/CN,gBAAK,CAACO,QAAQ,CACZ,IAAAC,0BAAc,EAAC;MACbH,OAAO;MACPP;IACF,CAAC,CACH,CAAC;;IAED;IACA;IACA,IAAI;MACF,MAAMW,KAAK,GAAGT,gBAAK,CAACC,QAAQ,CAAC,CAAC;MAC9B,MAAMS,iBAAiB,GAAG,CAACD,KAAK,CAACP,gBAAgB,CAACC,IAAI,EAAEQ,aAAa,IAAI,EAAE,EAAEC,WAAW,CAAC,CAAC;MAC1F,MAAMC,cAAc,GAAGC,MAAM,CAAC5B,SAAS,IAAI,EAAE,CAAC,CAAC0B,WAAW,CAAC,CAAC;MAC5D,IAAIF,iBAAiB,IAAIG,cAAc,CAACE,QAAQ,CAACL,iBAAiB,CAAC,EAAE;QACnE,OAAOZ,OAAO,CAAC,CAAC;MAClB;MACA,MAAMkB,IAAI,GAAGP,KAAK,CAACQ,KAAK,CAACA,KAAK,CAACZ,OAAO,CAAC;MACvC,MAAMa,QAAQ,GAAGF,IAAI,EAAEG,KAAK,IAAIH,IAAI,EAAEI,IAAI,IAAI,EAAE;MAChD;MACA;MACA;MACA;MACA;MACA;MACA;MACA,MAAMC,MAAM,GACVZ,KAAK,CAACP,gBAAgB,CAACoB,MAAM,EAAEC,IAAI,EAAEF,MAAM,IAC3CZ,KAAK,CAACP,gBAAgB,CAACsB,UAAU;MACnC,MAAMC,SAAS,GAAGhB,KAAK,CAACP,gBAAgB,CAACoB,MAAM,EAAEC,IAAI,EAAEG,OAAO;MAC9D,MAAMC,UAAU,GAAG,CACjB9C,IAAI,CAACJ,KAAK,CAACmD,eAAe,EAC1B/C,IAAI,CAACJ,KAAK,CAACoD,cAAc,CAC1B,CACEC,MAAM,CAACC,OAAO,CAAC,CACfC,IAAI,CAAC,GAAG,CAAC,CACTC,IAAI,CAAC,CAAC,IAAI,IAAAC,qBAAY,EAAC,6BAA6B,EAAEb,MAAM,EAAEI,SAAS,CAAC;MAC3EU,sDAA0B,CAACC,gBAAgB,CACzCtC,OAAO,EACPoB,QAAQ,EACRS,UAAU,EACVtB,OACF,CAAC;IACH,CAAC,CAAC,OAAOgC,GAAG,EAAE;MACZtD,OAAO,CAACuD,IAAI,CAAC,8BAA8B,EAAED,GAAG,CAAC;IACnD;IACA,OAAOvC,OAAO;EAChB;AACF,CAAC;AAACyC,OAAA,CAAAlE,iBAAA,GAAAA,iBAAA;AAEF,MAAMmE,eAAe,GAAG,MAAOlE,MAAe,IAAK;EACjD,IAAIA,MAAM,CAACG,KAAK,CAACC,EAAE,KAAK,qBAAqB,EAAE;IAC7C,MAAMI,OAAO,GAAGR,MAAM,CAACC,QAAQ,CAAC,QAAQ,CAAC;IACzC,MAAMkE,QAAQ,GAAGnE,MAAM,CAACC,QAAQ,CAAC,WAAW,CAAC;IAE7C,IAAI,CAACO,OAAO,EAAE;MACZ;IACF;IAEAkB,gBAAK,CAACO,QAAQ,CACZ,IAAAmC,6BAAiB,EAAC;MAChBrC,OAAO,EAAEoC,QAAQ,EAAEhE,KAAK,CAACkE,EAAE;MAC3BC,SAAS,EAAE9D,OAAO,CAACL,KAAK,CAACC;IAC3B,CAAC,CACH,CAAC;IACDsB,gBAAK,CAACO,QAAQ,CAAC,IAAAsC,iCAAc,EAAC;MAAEC,aAAa,EAAE;IAAM,CAAC,CAAC,CAAC;EAC1D;AACF,CAAC;AAACP,OAAA,CAAAC,eAAA,GAAAA,eAAA;AAEF,MAAMO,aAAa,GAAG,MAAOzE,MAAe,IAAK;EAC/C,IAAIA,MAAM,EAAEG,KAAK,EAAEC,EAAE,EAAEqC,QAAQ,CAAC,cAAc,CAAC,EAAE;IAC/C,MAAM0B,QAAQ,GAAGnE,MAAM,CAACC,QAAQ,CAAC,WAAW,CAAC;IAC7C,MAAMyE,OAAO,GAAG1E,MAAM,CAACC,QAAQ,CAAC,SAAS,CAAC;IAE1C,IAAI,CAACkE,QAAQ,IAAI,CAACO,OAAO,EAAE;MACzB;IACF;IAEAhD,gBAAK,CAACO,QAAQ,CACZ,IAAA0C,2BAAe,EAAC;MACd5C,OAAO,EAAEoC,QAAQ,EAAEhE,KAAK,CAACkE,EAAE;MAC3BC,SAAS,EAAEI,OAAO,EAAEvE,KAAK,CAACC,EAAE;MAC5BwE,IAAI,EAAEF,OAAO,EAAEvE,KAAK,CAACyE;IACvB,CAAC,CACH,CAAC;EACH;AACF,CAAC;AAACX,OAAA,CAAAQ,aAAA,GAAAA,aAAA;AAEF,MAAMI,gBAAgB,GAAG,MAAO7E,MAAW,IAAK;EAC9C,IACEA,MAAM,CAACE,EAAE,CAAC,SAAS,CAAC,IACpBF,MAAM,CAAC8E,QAAQ,CAAC,CAAC,CAAC,CAAC3E,KAAK,CAAC4E,KAAK,KAAK,gBAAgB,EACnD;IACA;IACA,MAAM1E,IAAI,GAAGL,MAAM,CAChBC,QAAQ,CAAC,QAAQ,CAAC,EACjBA,QAAQ,CAAC,WAAW,CAAC,EACrBA,QAAQ,CAAC,SAAS,CAAC,EACnBA,QAAQ,CAAC,MAAM,CAAC;IACpB,MAAMM,IAAI,GAAGP,MAAM,CAChBC,QAAQ,CAAC,QAAQ,CAAC,EACjBA,QAAQ,CAAC,WAAW,CAAC,EACrBA,QAAQ,CAAC,SAAS,CAAC,EACnBA,QAAQ,CAAC,MAAM,CAAC;IACpB,MAAMO,OAAO,GAAGR,MAAM,CACnBC,QAAQ,CAAC,QAAQ,CAAC,EACjBA,QAAQ,CAAC,WAAW,CAAC,EACrBA,QAAQ,CAAC,SAAS,CAAC,EACnBA,QAAQ,CAAC,SAAS,CAAC;IAEvB,MAAM+E,KAAK,GAAGhF,MAAM,CACjBC,QAAQ,CAAC,QAAQ,CAAC,EACjBA,QAAQ,CAAC,WAAW,CAAC,EACrBA,QAAQ,CAAC,OAAO,CAAC;IACrB,MAAMG,EAAE,GAAGJ,MAAM,CAACC,QAAQ,CAAC,QAAQ,CAAC,EAAEE,KAAK,CAACC,EAAE;IAC9C,IAAI,CAAC4E,KAAK,EAAE;MACV,IAAIhF,MAAM,CAACC,QAAQ,CAAC,SAAS,CAAC,EAAE;QAC9BQ,OAAO,CAACC,GAAG,CAAC,UAAU,CAAC;QACvB;MACF;MACA,IAAI,CAACH,IAAI,IAAI,CAACF,IAAI,IAAI,CAACD,EAAE,EAAE;QACzBK,OAAO,CAACC,GAAG,CAAC,+CAA+C,CAAC;QAC5D;MACF;IACF;IACA;;IAEA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA,MAAMuE,gBAAgB,GAAGjF,MAAM,CAC5BC,QAAQ,CAAC,QAAQ,CAAC,EACjBA,QAAQ,CAAC,WAAW,CAAC,EACrBA,QAAQ,CAAC,SAAS,CAAC;IACvB,MAAMiF,SAAS,GAAGD,gBAAgB,EAAE9E,KAAK,EAAEU,IAAI,IAAIb,MAAM,CAACG,KAAK,CAACU,IAAI;IACpE,MAAMD,SAAS,GAAGL,IAAI,EAAEJ,KAAK,EAAES,SAAS,IAAIsE,SAAS;IACrD,IAAI,CAAC3E,IAAI,EAAEJ,KAAK,IAAI,CAACS,SAAS,EAAE;MAC9B;MACA;MACA;MACA;MACA;IACF;IACA,MAAMuE,WAAW,GAAG;MAAE,GAAG5E,IAAI,CAACJ;IAAM,CAAC;IACrC,IAAI,CAACgF,WAAW,CAACvE,SAAS,EAAE;MAACuE,WAAW,CAACvE,SAAS,GAAGA,SAAS;IAAC;IAC/D;IACA;IACA;IACA;IACA;IACA,IAAIqE,gBAAgB,EAAE9E,KAAK,EAAEC,EAAE,EAAE;MAAC+E,WAAW,CAACC,MAAM,GAAGH,gBAAgB,CAAC9E,KAAK,CAACC,EAAE;IAAC;IACjF,MAAMiF,iBAAiB,GAAG,MAAM,IAAA/D,0CAAoB,EAClD6D,WAAW,EACX9E,IAAI,EACJD,EAAE;IACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA8E,SAAS,EACT,CAAC,CAAC1E,OACJ,CAAC;;IAED;IACA;IACA;IACA;IACA;IACA;IACA,MAAM8E,UAAU,GAAG,MAAM,IAAAvE,8BAAc,EAACf,MAAM,CAAC,CAACuF,KAAK,CAAC,MAAMC,SAAS,CAAC;IACtE,MAAMnE,UAAU,GAAG;MACjB,GAAGgE,iBAAiB;MACpB,IAAIC,UAAU,EAAEG,YAAY,GACxB;QAAEA,YAAY,EAAEH,UAAU,CAACG;MAAa,CAAC,GACzC,CAAC,CAAC,CAAC;MACP,IAAIH,UAAU,EAAEpC,UAAU,GAAG;QAAEA,UAAU,EAAEoC,UAAU,CAACpC;MAAW,CAAC,GAAG,CAAC,CAAC;IACzE,CAAC;;IAED;IACA;IACA,MAAM1B,OAAO,GAAG,IAAAC,uCAAuB,EACrCJ,UAAU,EACVK,gBAAK,CAACC,QAAQ,CAAC,CAAC,CAACC,gBAAgB,CAACC,IAAI,EAAEC,YAAY,IAAI,EAC1D,CAAC;IACDJ,gBAAK,CAACO,QAAQ,CACZ,IAAAC,0BAAc,EAAC;MACbH,OAAO,EAAE/B,MAAM,CAACG,KAAK,CAACU,IAAI;MAC1BW;IACF,CAAC,CACH,CAAC;EACH;AACF,CAAC;AAACyC,OAAA,CAAAY,gBAAA,GAAAA,gBAAA;AAEF,MAAMa,eAAe,GAAG,MAAAA,CAAO1F,MAAe,EAAE2F,WAAmB,KAAK;EACtE,IAAI3F,MAAM,CAACC,QAAQ,CAAC,QAAQ,CAAC,IAAID,MAAM,CAACC,QAAQ,CAAC,WAAW,CAAC,EAAE;IAC7D,MAAM2F,aAAa,GAAG5F,MAAM,CAACG,KAAK,EAAEU,IAAI,EAAEmB,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;;IAEzD;IACA;IACA;IACA;IACA;IACA,MAAM6D,IAAI,GAAIC,CAAU,IACtB,CAACA,CAAC,IAAI,EAAE,EAAExD,WAAW,CAAC,CAAC,CAACoC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;;IAE3C;IACA;IACA;IACA,MAAM9D,SAAS,GAAGZ,MAAM,CAACC,QAAQ,CAAC,MAAM,CAAC,EAAEE,KAAK,EAAES,SAAS,IAAI,EAAE;IACjE,MAAMmF,WAAW,GAAGnF,SAAS,CAACoB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;IACjD,MAAMG,KAAK,GAAGT,gBAAK,CAACC,QAAQ,CAAC,CAAC;IAC9B,MAAMqE,QAAQ,GAAG7D,KAAK,CAACP,gBAAgB,EAAEC,IAAI;IAC7C,MAAMoE,gBAAgB,GAAGD,QAAQ,EAAElE,YAAY,IAAI,EAAE;IACrD,MAAMoE,UAAU,GAAGF,QAAQ,EAAE3D,aAAa,IAAI,EAAE;IAChD,MAAM8D,MAAM,GACTP,aAAa,IAAIC,IAAI,CAACF,WAAW,CAAC,KAAKE,IAAI,CAACD,aAAa,CAAC,IAC1DG,WAAW,IAAIF,IAAI,CAACE,WAAW,CAAC,KAAKF,IAAI,CAACI,gBAAgB,CAAE,IAC5DF,WAAW,IAAIF,IAAI,CAACE,WAAW,CAAC,CAACtD,QAAQ,CAACoD,IAAI,CAACK,UAAU,CAAC,CAAE;IAE/D,IAAIN,aAAa,IAAI,CAACO,MAAM,EAAE;MAC5B,MAAMC,OAAO,GAAGpG,MAAM,CAACG,KAAK,EAAEU,IAAI,CAACmB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;MAEhD,IAAIqE,aAAuB,GAAG,EAAE;MAEhCrG,MAAM,EAAEC,QAAQ,CAAC,WAAW,CAAC,GACzBoG,aAAa,CAACC,IAAI,CAChBtG,MAAM,CAACC,QAAQ,CAAC,MAAM,CAAC,EAAEE,KAAK,EAAEoG,QAAQ,EAAEvE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,MAC/D,CAAC,GACDqE,aAAa,CAACG,GAAG,CAAC,CAAC;MAEvB9E,gBAAK,CAACO,QAAQ,CACZ,IAAAwE,wBAAY,EAAC;QACXL,OAAO,EAAEA,OAAO;QAChBM,SAAS,EAAE,CAAC,CAAC1G,MAAM,EAAEC,QAAQ,CAAC,WAAW,CAAC;QAC1CoG;MACF,CAAC,CACH,CAAC;IACH;EACF;AACF,CAAC;AAACpC,OAAA,CAAAyB,eAAA,GAAAA,eAAA;AAEF,MAAMiB,gBAAgB,GAAI3G,MAAqB,IAAK;EAClD,IACE,OAAOA,MAAM,CAACG,KAAK,CAACC,EAAE,KAAK,QAAQ,IACnCJ,MAAM,CAACG,KAAK,CAACC,EAAE,CAACwG,UAAU,CAAC,gBAAgB,CAAC,IAC5C,CAAC5G,MAAM,CAACC,QAAQ,CAAC,OAAO,CAAC,EACzB;IACA,MAAM8B,OAAe,GAAG/B,MAAM,CAACG,KAAK,CAACU,IAAI,CAACmB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACvD,MAAM6E,IAAY,GAAG7G,MAAM,EAAE8E,QAAQ,CAAC,CAAC,CAAC,EAAEA,QAAQ,CAAC,CAAC,CAAC,EAAE3E,KAAK,CAAC0G,IAAI;IACjEnF,gBAAK,CAACO,QAAQ,CAAC,IAAA6E,uBAAW,EAAC;MAAEV,OAAO,EAAErE,OAAO;MAAE8E,IAAI,EAAEA;IAAK,CAAC,CAAC,CAAC;EAC/D;AACF,CAAC;AAAC5C,OAAA,CAAA0C,gBAAA,GAAAA,gBAAA;AAEF,MAAMI,YAAY,GAAG,MAAAA,CAAO/G,MAAe,EAAEgH,MAAW,KAAK;EAC3D,IAAIhH,MAAM,CAACE,EAAE,CAAC,SAAS,CAAC,IAAIF,MAAM,CAACG,KAAK,CAAC8G,IAAI,KAAK,WAAW,EAAE;IAC7D;IACA,MAAMC,MAAM,GAAGlH,MAAM,CAACG,KAAK,CAACU,IAAI;IAChC,MAAMsG,IAAI,GAAGnH,MAAM,CAACoH,WAAW,CAAC,GAAG,CAAC;IAEpC,KAAK,MAAMC,EAAE,IAAIF,IAAI,EAAE;MACrB,MAAMG,KAAK,GAAGD,EAAE,CAACpH,QAAQ,CAAC,QAAQ,CAAC;MAEnC,IAAIqH,KAAK,EAAE;QACT,MAAMC,IAAI,GAAG7F,gBAAK,CAACC,QAAQ,CAAC,CAAC,CAACgB,KAAK,CAACA,KAAK,CAACuE,MAAM,CAAC;QACjD,IAAIK,IAAI,EAAE;UACR;QACF;QAEA,MAAMP,MAAM,CAACQ,oBAAoB,CAACN,MAAM,CAAC;QACzC,MAAMF,MAAM,CAACS,cAAc,CAAC,CAAC;MAC/B;IACF;EACF;AACF,CAAC;AAACxD,OAAA,CAAA8C,YAAA,GAAAA,YAAA;AAEF,MAAMW,YAAY,GAAI1H,MAAe,IAAK;EACxC,IAAIwC,MAAM,CAACxC,MAAM,CAACG,KAAK,EAAEC,EAAE,IAAI,EAAE,CAAC,KAAK,gBAAgB,EAAE;IAAC;EAAO;EACjE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACF,CAAC;AAAC6D,OAAA,CAAAyD,YAAA,GAAAA,YAAA;AAEF,MAAMC,aAAa,GAAI3H,MAAe,IAAK;EACzC,IAAIA,MAAM,CAACG,KAAK,CAACC,EAAE,KAAK,UAAU,IAAI,CAACJ,MAAM,CAACC,QAAQ,CAAC,OAAO,CAAC,EAAE,CACjE;AACF,CAAC;AAACgE,OAAA,CAAA0D,aAAA,GAAAA,aAAA;AAEF,MAAMC,uBAAuB,GAAGA,CAAC5H,MAAe,EAAE6H,KAAU,KAAK;EAC/D,IAAI7H,MAAM,CAACG,KAAK,CAACC,EAAE,KAAK,gBAAgB,EAAE,CAC1C;AACF,CAAC;AAAC6D,OAAA,CAAA2D,uBAAA,GAAAA,uBAAA;AAEF,MAAME,gBAAgB,GAAGA,CAAC9H,MAAe,EAAE+H,IAAS,KAAK;EACvDrG,gBAAK,CAACO,QAAQ,CAAC,IAAA+F,0BAAc,EAAC;IAAEjG,OAAO,EAAE/B,MAAM,CAACG,KAAK,CAACU;EAAK,CAAC,CAAC,CAAC;EAC9DkH,IAAI,CAACN,cAAc,CAAC,CAAC;AACvB,CAAC;AAACxD,OAAA,CAAA6D,gBAAA,GAAAA,gBAAA;AAEF,MAAMG,cAAc,GAAGA,CAACjI,MAAe,EAAE+H,IAAS,KAAK;EACrD,IACE/H,MAAM,CAACG,KAAK,CAACC,EAAE,KAAK,cAAc,IAClC8H,KAAK,CAACC,OAAO,CAACnI,MAAM,CAACC,QAAQ,CAAC,OAAO,CAAC,EAAE6E,QAAQ,CAAC,EACjD;IACA,MAAMA,QAAQ,GAAG9E,MAAM,CAACC,QAAQ,CAAC,OAAO,CAAC,EAAE6E,QAAQ,IAAI,EAAE;IACzDA,QAAQ,CAACsD,OAAO,CAAC,MAAOC,MAAW,IAAK;MACtC,MAAMC,gBAAgB,GAAG5G,gBAAK,CAACC,QAAQ,CAAC,CAAC,CAACgB,KAAK,CAACA,KAAK;MAErD,MAAM4F,kBAAkB,GAAGC,MAAM,CAACC,MAAM,CAACH,gBAAgB,CAAC,CAACI,IAAI,CAC5DC,OAAO,IAAKA,OAAO,CAACC,GAAG,KAAKP,MAAM,EAAElI,KAAK,EAAEyI,GAC9C,CAAC;MAED,MAAMA,GAAG,GAAGP,MAAM,EAAElI,KAAK,EAAEyI,GAAG;MAE9B,IAAI,CAACL,kBAAkB,EAAE;QACvB,IAAI;UACF,MAAMM,QAAe,GAAG;YACtBD,GAAG,EAAEA,GAAG,IAAI,EAAE;YACd9F,IAAI,EAAEuF,MAAM,EAAElI,KAAK,EAAE2C,IAAI,IAAI,EAAE;YAC/B1C,EAAE,EAAE,EAAE;YACNyC,KAAK,EAAEwF,MAAM,EAAElI,KAAK,EAAE2C,IAAI,IAAI,EAAE;YAChCgG,QAAQ,EAAEC,MAAM,CAACV,MAAM,EAAElI,KAAK,EAAE6I,SAAS,IAAI,CAAC,CAAC;YAC/CC,QAAQ,EAAE,EAAE;YACZC,SAAS,EAAE,KAAK;YAChBC,MAAM,EACJd,MAAM,EAAElI,KAAK,EAAEiJ,eAAe,KAAK,MAAM,GACrCf,MAAM,EAAElI,KAAK,EAAEiJ,eAAe,GAC9B,IAAI;YACVC,IAAI,EACFhB,MAAM,EAAElI,KAAK,EAAEmJ,cAAc,KAAK,MAAM,GACpCjB,MAAM,EAAElI,KAAK,EAAEmJ,cAAc,GAC7B,IAAI;YACVC,cAAc,EAAE,CAAC;YACjBC,mBAAmB,EAAE;UACvB,CAAC;UAED9H,gBAAK,CAACO,QAAQ,CAAC,IAAAwH,mBAAO,EAAC;YAAEZ,QAAQ,EAAE;cAAE,GAAGA;YAAS;UAAE,CAAC,CAAC,CAAC;UAEtD,IAAI,CAACnH,gBAAK,CAACC,QAAQ,CAAC,CAAC,CAACgB,KAAK,CAAC+G,aAAa,EAAE;YACzChI,gBAAK,CAACO,QAAQ,CAAC,IAAA+F,0BAAc,EAAC;cAAEjG,OAAO,EAAE8G,QAAQ,CAACD;YAAI,CAAC,CAAC,CAAC;UAC3D;QACF,CAAC,CAAC,OAAOe,KAAK,EAAE,CAAC;MACnB;MAEA,IAAIf,GAAG,EAAE;QACP,IAAI;UACFb,IAAI,CAACP,oBAAoB,CAACoB,GAAG,CAAC;QAChC,CAAC,CAAC,OAAOgB,CAAC,EAAE;UACVnJ,OAAO,CAACuD,IAAI,CAAC,6BAA6B,EAAE4E,GAAG,EAAEgB,CAAC,CAAC;QACrD;MACF;IACF,CAAC,CAAC;EACJ;AACF,CAAC;;AAED;AACA;AACA;AAAA3F,OAAA,CAAAgE,cAAA,GAAAA,cAAA;AACA,MAAM4B,cAAc,GAAGA,CAACC,OAAgB,EAAEjC,KAAW,KAAK,CAAC,CAAC;AAAC5D,OAAA,CAAA4F,cAAA,GAAAA,cAAA;AAC7D,MAAME,iBAAiB,GAAID,OAAgB,IAAK,CAAC,CAAC;AAAC7F,OAAA,CAAA8F,iBAAA,GAAAA,iBAAA;AACnD,MAAMC,iBAAiB,GAAIF,OAAgB,IAAK,CAAC,CAAC;AAAC7F,OAAA,CAAA+F,iBAAA,GAAAA,iBAAA;AACnD,MAAMC,YAAY,GAAIH,OAAgB,IAAK,CAAC,CAAC;AAAC7F,OAAA,CAAAgG,YAAA,GAAAA,YAAA","ignoreList":[]}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.flushLastViewedToPrivateStore = flushLastViewedToPrivateStore;
7
7
  var _getChatsPrivateStoreRequest = require("./getChatsPrivateStoreRequest.xmpp");
8
8
  var _setChatsPrivateStoreRequest = require("./setChatsPrivateStoreRequest.xmpp");
9
+ var _getServerReadTimestamp = require("../../helpers/getServerReadTimestamp");
9
10
  /**
10
11
  * Merge in-memory lastViewedTimestamp values into the server-side
11
12
  * private store. Reads current state, overlays per-room updates, writes
@@ -13,8 +14,11 @@ var _setChatsPrivateStoreRequest = require("./setChatsPrivateStoreRequest.xmpp")
13
14
  * each other's entries.
14
15
  *
15
16
  * Called on: tab change away from chat, AppState background/inactive,
16
- * and (with onlyIfNoUnread=true) logout. ChatRoom's own unmount path
17
- * still uses actionSetTimestampToPrivateStore for the single-room case.
17
+ * and (with onlyIfNoUnread=true) logout. ChatRoom's own unmount path also
18
+ * goes through this (via flushLastViewedToPrivateStoreStanza) for the
19
+ * single-room case - actionSetTimestampToPrivateStore is a separate,
20
+ * unconditional low-level write primitive kept for direct/external use
21
+ * and is not part of this merge path.
18
22
  */
19
23
  async function flushLastViewedToPrivateStore(client, rooms, opts = {}) {
20
24
  if (!client?.client) {
@@ -22,7 +26,9 @@ async function flushLastViewedToPrivateStore(client, rooms, opts = {}) {
22
26
  }
23
27
  const {
24
28
  visibleRoomJID,
25
- onlyIfNoUnread
29
+ visibleRoomTs,
30
+ onlyIfNoUnread,
31
+ heapState
26
32
  } = opts;
27
33
  const roomList = Object.values(rooms || {});
28
34
  if (roomList.length === 0) {
@@ -37,7 +43,6 @@ async function flushLastViewedToPrivateStore(client, rooms, opts = {}) {
37
43
  if (!storeObj || typeof storeObj !== 'object') {
38
44
  storeObj = {};
39
45
  }
40
- const nowMs = Date.now();
41
46
  let dirty = false;
42
47
  for (const room of roomList) {
43
48
  if (!room?.jid) {
@@ -46,14 +51,30 @@ async function flushLastViewedToPrivateStore(client, rooms, opts = {}) {
46
51
  const isVisible = !!visibleRoomJID && room.jid === visibleRoomJID;
47
52
  const hasUnread = Number(room.unreadMessages || 0) > 0;
48
53
 
49
- // For the visible room, persist "now" — read state is driven by
50
- // room visibility, not by a sentinel timestamp.
54
+ // Newest message this room actually has server-side proof of. Used
55
+ // both as the "read up to now" fallback for the visible room and as
56
+ // the yardstick for detecting a corrupt (future) stored marker below
57
+ // - never as a substitute for the device clock (bug #38: a device
58
+ // with a fast clock previously stamped Date.now() here, and once
59
+ // that future value reached the server the forward-only check a few
60
+ // lines down rejected every later correct write, forever).
61
+ const newestAckedMs = (0, _getServerReadTimestamp.getServerReadTimestamp)(room, heapState);
62
+
63
+ // For the visible room, persist "read up to the newest message we
64
+ // know the server has" - read state is driven by room visibility,
65
+ // not by a sentinel timestamp. The exception is an explicit
66
+ // `visibleRoomTs`: the caller knows the user only read up to a
67
+ // certain point (left the room while scrolled up), so stamping
68
+ // "everything" here would mark genuinely-unread messages as read.
51
69
  let ts;
52
70
  if (isVisible) {
53
- ts = nowMs;
71
+ ts = typeof visibleRoomTs === 'number' && visibleRoomTs > 0 ? visibleRoomTs : newestAckedMs || undefined;
54
72
  } else if (room.lastViewedTimestamp && room.lastViewedTimestamp > 0) {
55
73
  ts = room.lastViewedTimestamp;
56
74
  }
75
+
76
+ // Nothing to anchor a write to (no boundary, no existing marker, no
77
+ // known messages yet) - skip rather than write a device-clock guess.
57
78
  if (!ts) {
58
79
  continue;
59
80
  }
@@ -62,7 +83,24 @@ async function flushLastViewedToPrivateStore(client, rooms, opts = {}) {
62
83
  }
63
84
  const prev = storeObj[room.jid];
64
85
  const prevNum = prev != null ? Number(prev) : 0;
65
- if (Number.isFinite(prevNum) && prevNum >= ts) {
86
+ // A currently-stored value that sits well past the newest message we
87
+ // know this room has is not "fresher" - it's a leftover future
88
+ // marker (bug #38). Forward-only logic normally protects a fresher
89
+ // read from being clobbered by a stale fetch, but applied to a
90
+ // corrupt future value it does the opposite: it permanently blocks
91
+ // the correct (smaller) value from ever landing. Detect that case
92
+ // and waive the forward-only check for it specifically; sane values
93
+ // keep the normal forward-only protection.
94
+ //
95
+ // "Well past the newest message we know about" is deliberately NOT
96
+ // sufficient on its own - see isCorruptFutureReadMarker. THIS device's
97
+ // copy of the room can simply be stale (history not synced yet this
98
+ // session), in which case a legitimate marker written by another
99
+ // device that HAS seen newer messages looks exactly like a corrupt
100
+ // one, and "healing" it here would push the server marker BACKWARDS
101
+ // and resurrect already-read messages on every device.
102
+ const prevLooksCorrupt = (0, _getServerReadTimestamp.isCorruptFutureReadMarker)(prevNum, newestAckedMs);
103
+ if (!prevLooksCorrupt && Number.isFinite(prevNum) && prevNum >= ts) {
66
104
  continue;
67
105
  }
68
106
  storeObj[room.jid] = String(ts);
@@ -1 +1 @@
1
- {"version":3,"names":["_getChatsPrivateStoreRequest","require","_setChatsPrivateStoreRequest","flushLastViewedToPrivateStore","client","rooms","opts","visibleRoomJID","onlyIfNoUnread","roomList","Object","values","length","storeObj","getChatsPrivateStoreRequest","nowMs","Date","now","dirty","room","jid","isVisible","hasUnread","Number","unreadMessages","ts","lastViewedTimestamp","prev","prevNum","isFinite","String","setChatsPrivateStoreRequest","JSON","stringify"],"sourceRoot":"../../../../src","sources":["networking/xmpp/flushLastViewedToPrivateStore.ts"],"mappings":";;;;;;AAAA,IAAAA,4BAAA,GAAAC,OAAA;AACA,IAAAC,4BAAA,GAAAD,OAAA;AAmBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAeE,6BAA6BA,CACjDC,MAAW,EACXC,KAAkD,EAClDC,IAAe,GAAG,CAAC,CAAC,EACF;EAClB,IAAI,CAACF,MAAM,EAAEA,MAAM,EAAE;IAAC,OAAO,KAAK;EAAC;EACnC,MAAM;IAAEG,cAAc;IAAEC;EAAe,CAAC,GAAGF,IAAI;EAC/C,MAAMG,QAAQ,GAAGC,MAAM,CAACC,MAAM,CAACN,KAAK,IAAI,CAAC,CAAC,CAAC;EAC3C,IAAII,QAAQ,CAACG,MAAM,KAAK,CAAC,EAAE;IAAC,OAAO,KAAK;EAAC;EAEzC,IAAIC,QAAa,GAAG,IAAI;EACxB,IAAI;IACFA,QAAQ,GAAG,MAAM,IAAAC,wDAA2B,EAACV,MAAM,CAACA,MAAM,CAAC;EAC7D,CAAC,CAAC,MAAM;IACNS,QAAQ,GAAG,IAAI;EACjB;EACA,IAAI,CAACA,QAAQ,IAAI,OAAOA,QAAQ,KAAK,QAAQ,EAAE;IAACA,QAAQ,GAAG,CAAC,CAAC;EAAC;EAE9D,MAAME,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC;EACxB,IAAIC,KAAK,GAAG,KAAK;EAEjB,KAAK,MAAMC,IAAI,IAAIV,QAAQ,EAAE;IAC3B,IAAI,CAACU,IAAI,EAAEC,GAAG,EAAE;MAAC;IAAS;IAC1B,MAAMC,SAAS,GAAG,CAAC,CAACd,cAAc,IAAIY,IAAI,CAACC,GAAG,KAAKb,cAAc;IACjE,MAAMe,SAAS,GAAGC,MAAM,CAACJ,IAAI,CAACK,cAAc,IAAI,CAAC,CAAC,GAAG,CAAC;;IAEtD;IACA;IACA,IAAIC,EAAsB;IAC1B,IAAIJ,SAAS,EAAE;MACbI,EAAE,GAAGV,KAAK;IACZ,CAAC,MAAM,IAAII,IAAI,CAACO,mBAAmB,IAAIP,IAAI,CAACO,mBAAmB,GAAG,CAAC,EAAE;MACnED,EAAE,GAAGN,IAAI,CAACO,mBAAmB;IAC/B;IAEA,IAAI,CAACD,EAAE,EAAE;MAAC;IAAS;IACnB,IAAIjB,cAAc,IAAIc,SAAS,IAAI,CAACD,SAAS,EAAE;MAAC;IAAS;IAEzD,MAAMM,IAAI,GAAGd,QAAQ,CAACM,IAAI,CAACC,GAAG,CAAC;IAC/B,MAAMQ,OAAO,GAAGD,IAAI,IAAI,IAAI,GAAGJ,MAAM,CAACI,IAAI,CAAC,GAAG,CAAC;IAC/C,IAAIJ,MAAM,CAACM,QAAQ,CAACD,OAAO,CAAC,IAAIA,OAAO,IAAIH,EAAE,EAAE;MAAC;IAAS;IACzDZ,QAAQ,CAACM,IAAI,CAACC,GAAG,CAAC,GAAGU,MAAM,CAACL,EAAE,CAAC;IAC/BP,KAAK,GAAG,IAAI;EACd;EAEA,IAAI,CAACA,KAAK,EAAE;IAAC,OAAO,KAAK;EAAC;EAE1B,IAAI;IACF,MAAM,IAAAa,wDAA2B,EAAC3B,MAAM,CAACA,MAAM,EAAE4B,IAAI,CAACC,SAAS,CAACpB,QAAQ,CAAC,CAAC;IAC1E,OAAO,IAAI;EACb,CAAC,CAAC,MAAM;IACN,OAAO,KAAK;EACd;AACF","ignoreList":[]}
1
+ {"version":3,"names":["_getChatsPrivateStoreRequest","require","_setChatsPrivateStoreRequest","_getServerReadTimestamp","flushLastViewedToPrivateStore","client","rooms","opts","visibleRoomJID","visibleRoomTs","onlyIfNoUnread","heapState","roomList","Object","values","length","storeObj","getChatsPrivateStoreRequest","dirty","room","jid","isVisible","hasUnread","Number","unreadMessages","newestAckedMs","getServerReadTimestamp","ts","undefined","lastViewedTimestamp","prev","prevNum","prevLooksCorrupt","isCorruptFutureReadMarker","isFinite","String","setChatsPrivateStoreRequest","JSON","stringify"],"sourceRoot":"../../../../src","sources":["networking/xmpp/flushLastViewedToPrivateStore.ts"],"mappings":"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","ignoreList":[]}
@@ -59,7 +59,14 @@ const presenceInRoom = async (client, roomJID, delay = 2000) => {
59
59
  try {
60
60
  await (0, _createTimeoutPromise.createTimeoutPromise)(2000, unsubscribe);
61
61
  } catch (err) {
62
- reject(err);
62
+ // The room's reply schedules resolve() `delay` ms later (2000 by
63
+ // default) — the same length as this timeout, so the timeout used
64
+ // to win the race and reject a join that had actually succeeded
65
+ // (allRoomPresences "failed" with undefined on every bootstrap).
66
+ // Only a join that never got an answer is a failure.
67
+ if (!settled) {
68
+ reject(err);
69
+ }
63
70
  }
64
71
  })();
65
72
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_client","require","_createTimeoutPromise","presenceIdCounter","nextPresenceId","Date","now","toString","presenceInRoom","client","roomJID","delay","stanzaHandler","unsubscribe","off","stanzaId","Promise","resolve","reject","settled","finish","cb","value","setTimeout","stanza","is","attrs","id","from","startsWith","on","presence","xml","jid","to","getLocal","xmlns","send","err","createTimeoutPromise","exports"],"sourceRoot":"../../../../src","sources":["networking/xmpp/presenceInRoom.xmpp.ts"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,qBAAA,GAAAD,OAAA;AAGA,IAAIE,iBAAiB,GAAG,CAAC;AACzB,MAAMC,cAAc,GAAGA,CAAA,KACrB,kBAAkBC,IAAI,CAACC,GAAG,CAAC,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAEJ,iBAAiB,EAAEI,QAAQ,CAAC,EAAE,CAAC,EAAE;AAE5E,MAAMC,cAAc,GAAG,MAAAA,CAC5BC,MAAc,EACdC,OAAe,EACfC,KAAK,GAAG,IAAI,KACS;EACrB,IAAIC,aAAwC;EAC5C,MAAMC,WAAW,GAAGA,CAAA,KAAMJ,MAAM,CAACK,GAAG,CAAC,QAAQ,EAAEF,aAAa,CAAC;EAC7D,MAAMG,QAAQ,GAAGX,cAAc,CAAC,CAAC;;EAEjC;EACA;EACA;EACA;EACA;EACA,OAAO,IAAIY,OAAO,CAAU,CAACC,OAAO,EAAEC,MAAM,KAAK;IAC/C,IAAIC,OAAO,GAAG,KAAK;IAEnB,MAAMC,MAAM,GAAGA,CAACC,EAAyB,EAAEC,KAAW,KAAK;MACzD,IAAIH,OAAO,EAAE;QAAC;MAAO;MACrBA,OAAO,GAAG,IAAI;MAEdI,UAAU,CAAC,MAAM;QACfV,WAAW,CAAC,CAAC;QACbQ,EAAE,CAACC,KAAK,CAAC;MACX,CAAC,EAAEX,KAAK,CAAC;IACX,CAAC;IAEDC,aAAa,GAAIY,MAAM,IAAK;MAC1B,IACEA,MAAM,CAACC,EAAE,CAAC,UAAU,CAAC,IACrBD,MAAM,CAACE,KAAK,CAACC,EAAE,KAAKZ,QAAQ,IAC5BS,MAAM,CAACE,KAAK,CAACE,IAAI,EAAEC,UAAU,CAACnB,OAAO,CAAC,EACtC;QACAU,MAAM,CAACH,OAAO,EAAEO,MAAM,CAAC;MACzB;IACF,CAAC;IAEDf,MAAM,CAACqB,EAAE,CAAC,QAAQ,EAAElB,aAAa,CAAC;IAElC,MAAMmB,QAAQ,GAAG,IAAAC,WAAG,EAClB,UAAU,EACV;MACEJ,IAAI,EAAEnB,MAAM,CAACwB,GAAG,EAAE1B,QAAQ,CAAC,CAAC;MAC5B2B,EAAE,EAAE,GAAGxB,OAAO,IAAID,MAAM,CAACwB,GAAG,EAAEE,QAAQ,CAAC,CAAC,EAAE;MAC1CR,EAAE,EAAEZ;IACN,CAAC,EACD,IAAAiB,WAAG,EAAC,GAAG,EAAE;MAAEI,KAAK,EAAE;IAAiC,CAAC,CACtD,CAAC;;IAED;IACA;IACA;IACA;IACA,CAAC,YAAY;MACX,IAAI;QACF,MAAM3B,MAAM,CAAC4B,IAAI,CAACN,QAAQ,CAAC;MAC7B,CAAC,CAAC,OAAOO,GAAG,EAAE;QACZzB,WAAW,CAAC,CAAC;QACbK,MAAM,CAACoB,GAAG,CAAC;QACX;MACF;MACA,IAAI;QACF,MAAM,IAAAC,0CAAoB,EAAC,IAAI,EAAE1B,WAAW,CAAC;MAC/C,CAAC,CAAC,OAAOyB,GAAG,EAAE;QACZpB,MAAM,CAACoB,GAAG,CAAC;MACb;IACF,CAAC,EAAE,CAAC;EACN,CAAC,CAAC;AACJ,CAAC;AAACE,OAAA,CAAAhC,cAAA,GAAAA,cAAA","ignoreList":[]}
1
+ {"version":3,"names":["_client","require","_createTimeoutPromise","presenceIdCounter","nextPresenceId","Date","now","toString","presenceInRoom","client","roomJID","delay","stanzaHandler","unsubscribe","off","stanzaId","Promise","resolve","reject","settled","finish","cb","value","setTimeout","stanza","is","attrs","id","from","startsWith","on","presence","xml","jid","to","getLocal","xmlns","send","err","createTimeoutPromise","exports"],"sourceRoot":"../../../../src","sources":["networking/xmpp/presenceInRoom.xmpp.ts"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,qBAAA,GAAAD,OAAA;AAGA,IAAIE,iBAAiB,GAAG,CAAC;AACzB,MAAMC,cAAc,GAAGA,CAAA,KACrB,kBAAkBC,IAAI,CAACC,GAAG,CAAC,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAEJ,iBAAiB,EAAEI,QAAQ,CAAC,EAAE,CAAC,EAAE;AAE5E,MAAMC,cAAc,GAAG,MAAAA,CAC5BC,MAAc,EACdC,OAAe,EACfC,KAAK,GAAG,IAAI,KACS;EACrB,IAAIC,aAAwC;EAC5C,MAAMC,WAAW,GAAGA,CAAA,KAAMJ,MAAM,CAACK,GAAG,CAAC,QAAQ,EAAEF,aAAa,CAAC;EAC7D,MAAMG,QAAQ,GAAGX,cAAc,CAAC,CAAC;;EAEjC;EACA;EACA;EACA;EACA;EACA,OAAO,IAAIY,OAAO,CAAU,CAACC,OAAO,EAAEC,MAAM,KAAK;IAC/C,IAAIC,OAAO,GAAG,KAAK;IAEnB,MAAMC,MAAM,GAAGA,CAACC,EAAyB,EAAEC,KAAW,KAAK;MACzD,IAAIH,OAAO,EAAE;QAAC;MAAO;MACrBA,OAAO,GAAG,IAAI;MAEdI,UAAU,CAAC,MAAM;QACfV,WAAW,CAAC,CAAC;QACbQ,EAAE,CAACC,KAAK,CAAC;MACX,CAAC,EAAEX,KAAK,CAAC;IACX,CAAC;IAEDC,aAAa,GAAIY,MAAM,IAAK;MAC1B,IACEA,MAAM,CAACC,EAAE,CAAC,UAAU,CAAC,IACrBD,MAAM,CAACE,KAAK,CAACC,EAAE,KAAKZ,QAAQ,IAC5BS,MAAM,CAACE,KAAK,CAACE,IAAI,EAAEC,UAAU,CAACnB,OAAO,CAAC,EACtC;QACAU,MAAM,CAACH,OAAO,EAAEO,MAAM,CAAC;MACzB;IACF,CAAC;IAEDf,MAAM,CAACqB,EAAE,CAAC,QAAQ,EAAElB,aAAa,CAAC;IAElC,MAAMmB,QAAQ,GAAG,IAAAC,WAAG,EAClB,UAAU,EACV;MACEJ,IAAI,EAAEnB,MAAM,CAACwB,GAAG,EAAE1B,QAAQ,CAAC,CAAC;MAC5B2B,EAAE,EAAE,GAAGxB,OAAO,IAAID,MAAM,CAACwB,GAAG,EAAEE,QAAQ,CAAC,CAAC,EAAE;MAC1CR,EAAE,EAAEZ;IACN,CAAC,EACD,IAAAiB,WAAG,EAAC,GAAG,EAAE;MAAEI,KAAK,EAAE;IAAiC,CAAC,CACtD,CAAC;;IAED;IACA;IACA;IACA;IACA,CAAC,YAAY;MACX,IAAI;QACF,MAAM3B,MAAM,CAAC4B,IAAI,CAACN,QAAQ,CAAC;MAC7B,CAAC,CAAC,OAAOO,GAAG,EAAE;QACZzB,WAAW,CAAC,CAAC;QACbK,MAAM,CAACoB,GAAG,CAAC;QACX;MACF;MACA,IAAI;QACF,MAAM,IAAAC,0CAAoB,EAAC,IAAI,EAAE1B,WAAW,CAAC;MAC/C,CAAC,CAAC,OAAOyB,GAAG,EAAE;QACZ;QACA;QACA;QACA;QACA;QACA,IAAI,CAACnB,OAAO,EAAE;UAACD,MAAM,CAACoB,GAAG,CAAC;QAAC;MAC7B;IACF,CAAC,EAAE,CAAC;EACN,CAAC,CAAC;AACJ,CAAC;AAACE,OAAA,CAAAhC,cAAA,GAAAA,cAAA","ignoreList":[]}
@@ -6,8 +6,9 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.subscribeToRoomMessages = subscribeToRoomMessages;
7
7
  var _client = require("@xmpp/client");
8
8
  var _createTimeoutPromise = require("./createTimeoutPromise.xmpp");
9
+ let subscribeIdCounter = 0;
9
10
  async function subscribeToRoomMessages(client, roomJID, userNick) {
10
- const id = `newSubscription:${Date.now().toString()}`;
11
+ const id = `newSubscription:${Date.now().toString(36)}-${(++subscribeIdCounter).toString(36)}`;
11
12
  let stanzaHandler;
12
13
  const unsubscribe = () => {
13
14
  if (stanzaHandler) {
@@ -31,6 +32,9 @@ async function subscribeToRoomMessages(client, roomJID, userNick) {
31
32
  if (stanza.attrs.type === 'result') {
32
33
  finish(resolve, true);
33
34
  } else if (stanza.attrs.type === 'error') {
35
+ const errorEl = typeof stanza.getChild === 'function' ? stanza.getChild('error') : null;
36
+ const condition = errorEl?.children?.find(c => c?.name && c.name !== 'text');
37
+ console.warn('[PushService] MucSub subscribe error for', roomJID, condition?.name ?? 'unknown');
34
38
  finish(resolve, false);
35
39
  }
36
40
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_client","require","_createTimeoutPromise","subscribeToRoomMessages","client","roomJID","userNick","id","Date","now","toString","stanzaHandler","unsubscribe","off","Promise","resolve","reject","settled","finish","cb","value","setTimeout","stanza","is","attrs","type","on","nick","jid","getLocal","subscribeStanza","xml","to","xmlns","node","send","error","console","createTimeoutPromise","catch"],"sourceRoot":"../../../../src","sources":["networking/xmpp/subscribeToRoomMessages.xmpp.ts"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,qBAAA,GAAAD,OAAA;AAEO,eAAeE,uBAAuBA,CAC3CC,MAAc,EACdC,OAAe,EACfC,QAAiB,EACC;EAClB,MAAMC,EAAE,GAAG,mBAAmBC,IAAI,CAACC,GAAG,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE;EACrD,IAAIC,aAAwC;EAE5C,MAAMC,WAAW,GAAGA,CAAA,KAAM;IACxB,IAAID,aAAa,EAAE;MACjBP,MAAM,CAACS,GAAG,CAAC,QAAQ,EAAEF,aAAa,CAAC;IACrC;EACF,CAAC;EAED,OAAO,IAAIG,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAK;IACtC,IAAIC,OAAO,GAAG,KAAK;IAEnB,MAAMC,MAAM,GAAGA,CAACC,EAAyB,EAAEC,KAAW,KAAK;MACzD,IAAIH,OAAO,EAAE;QAAC;MAAO;MACrBA,OAAO,GAAG,IAAI;MACdI,UAAU,CAAC,MAAM;QACfT,WAAW,CAAC,CAAC;QACbO,EAAE,CAACC,KAAK,CAAC;MACX,CAAC,EAAE,GAAG,CAAC;IACT,CAAC;IAEDT,aAAa,GAAIW,MAAe,IAAK;MACnC,IAAIA,MAAM,CAACC,EAAE,CAAC,IAAI,CAAC,IAAID,MAAM,CAACE,KAAK,CAACjB,EAAE,KAAKA,EAAE,EAAE;QAC7C,IAAIe,MAAM,CAACE,KAAK,CAACC,IAAI,KAAK,QAAQ,EAAE;UAClCP,MAAM,CAACH,OAAO,EAAE,IAAI,CAAC;QACvB,CAAC,MAAM,IAAIO,MAAM,CAACE,KAAK,CAACC,IAAI,KAAK,OAAO,EAAE;UACxCP,MAAM,CAACH,OAAO,EAAE,KAAK,CAAC;QACxB;MACF;IACF,CAAC;IAEDX,MAAM,CAACsB,EAAE,CAAC,QAAQ,EAAEf,aAAa,CAAC;IAElC,MAAMgB,IAAI,GAAGrB,QAAQ,IAAIF,MAAM,CAACwB,GAAG,EAAEC,QAAQ,CAAC,CAAC,IAAI,EAAE;IAErD,MAAMC,eAAe,GAAG,IAAAC,WAAG,EACzB,IAAI,EACJ;MACEC,EAAE,EAAE3B,OAAO;MACXoB,IAAI,EAAE,KAAK;MACXlB,EAAE,EAAEA;IACN,CAAC,EACD,IAAAwB,WAAG,EACD,WAAW,EACX;MAAEE,KAAK,EAAE,mBAAmB;MAAEN,IAAI,EAAEA;IAAK,CAAC,EAC1C,IAAAI,WAAG,EAAC,OAAO,EAAE;MAAEG,IAAI,EAAE;IAAiC,CAAC,CACzD,CACF,CAAC;IAED,IAAI;MACF9B,MAAM,CAAC+B,IAAI,CAACL,eAAe,CAAC;IAC9B,CAAC,CAAC,OAAOM,KAAK,EAAE;MACdxB,WAAW,CAAC,CAAC;MACbyB,OAAO,CAACD,KAAK,CAAC,iCAAiC,EAAEA,KAAK,CAAC;MACvDpB,MAAM,CAACoB,KAAK,CAAC;MACb;IACF;IAEA,IAAAE,0CAAoB,EAAC,IAAI,EAAE1B,WAAW,CAAC,CAAC2B,KAAK,CAAC,MAAM;MAClD,IAAI,CAACtB,OAAO,EAAE;QACZC,MAAM,CAACF,MAAM,EAAE,KAAK,CAAC;MACvB;IACF,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["_client","require","_createTimeoutPromise","subscribeIdCounter","subscribeToRoomMessages","client","roomJID","userNick","id","Date","now","toString","stanzaHandler","unsubscribe","off","Promise","resolve","reject","settled","finish","cb","value","setTimeout","stanza","is","attrs","type","errorEl","getChild","condition","children","find","c","name","console","warn","on","nick","jid","getLocal","subscribeStanza","xml","to","xmlns","node","send","error","createTimeoutPromise","catch"],"sourceRoot":"../../../../src","sources":["networking/xmpp/subscribeToRoomMessages.xmpp.ts"],"mappings":"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","ignoreList":[]}
@@ -32,6 +32,7 @@ var _normalizeRoomJid = require("../helpers/normalizeRoomJid");
32
32
  var _roomStore = require("../roomStore");
33
33
  var _roomsSlice = require("../roomStore/roomsSlice");
34
34
  var _outboundQueue = require("./outboundQueue");
35
+ var _getServerReadTimestamp = require("../helpers/getServerReadTimestamp");
35
36
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
36
37
  // Canonical production XMPP WSS endpoint (standard wss/443, no port suffix).
37
38
  const DEFAULT_DEV_SERVER = 'xmpp.chat.ethora.com';
@@ -78,6 +79,12 @@ function isNotAuthorizedError(err) {
78
79
  const message = (err?.message || err?.text || '').toString();
79
80
  return /not-authorized|SASLError/i.test(message);
80
81
  }
82
+ /**
83
+ * Floor between two credential rotations driven by reconnects. Well under
84
+ * the XMPP password's one-hour life, but high enough that a link flapping
85
+ * every few seconds rotates once, not thirty times.
86
+ */
87
+ const CREDENTIALS_REFRESH_MIN_INTERVAL_MS = 60_000;
81
88
  class XmppClient {
82
89
  host = '';
83
90
  service = '';
@@ -111,6 +118,12 @@ class XmppClient {
111
118
  // derived XMPP password after idle). Triggers the credentialsProvider
112
119
  // refresh path in reconnect().
113
120
  lastAuthError = null;
121
+ /**
122
+ * When the credentials currently held were last (re)minted. Drives the
123
+ * throttle in `reconnect()` so a flapping connection can't rotate the
124
+ * session once per flap.
125
+ */
126
+ credentialsRefreshedAt = 0;
114
127
  credentialsProvider = null;
115
128
  credentialsRefreshInFlight = null;
116
129
  // Fired by the provider on every 'online' so it can re-join MUC rooms
@@ -303,6 +316,7 @@ class XmppClient {
303
316
  }
304
317
  }
305
318
  initializeClient() {
319
+ this.clientAlreadyStopped = false;
306
320
  try {
307
321
  const devServer = this.devServer || DEFAULT_DEV_SERVER;
308
322
  const url = `wss://${devServer}/ws`;
@@ -658,14 +672,29 @@ class XmppClient {
658
672
  this.reconnecting = true;
659
673
  console.log('Attempting to reconnect xmpp client...');
660
674
  try {
661
- // If the last failure was a SASL `not-authorized` (typically a stale
662
- // JWT-derived XMPP password after idle), try to fetch fresh creds
663
- // before retrying. Without this, reconnect retries with the same
664
- // stale password forever and the user has to kill the app.
665
- if (this.lastAuthError === 'not-authorized' && this.credentialsProvider) {
675
+ // Re-mint credentials BEFORE reconnecting.
676
+ //
677
+ // This deliberately no longer waits for a SASL `not-authorized`.
678
+ // The XMPP password expires after an hour, and an expiry does NOT
679
+ // drop an established connection — authentication happens once, at
680
+ // bind. So by the time anything disconnects us (a network blip, a
681
+ // sleeping device, a server restart) the password we still hold may
682
+ // well be dead, and we have no way to know. Reconnecting with it
683
+ // burns a guaranteed-failed bind plus a backoff delay before the
684
+ // old `lastAuthError` path could even start recovering.
685
+ //
686
+ // Throttled, because reconnects are not rare: a flapping link would
687
+ // otherwise rotate the whole session (access + refresh + file token
688
+ // + XMPP password) once per flap. A SASL failure bypasses the
689
+ // throttle — there the credentials are known bad.
690
+ const authFailed = this.lastAuthError === 'not-authorized';
691
+ const staleCreds = Date.now() - this.credentialsRefreshedAt >= CREDENTIALS_REFRESH_MIN_INTERVAL_MS;
692
+ if (this.credentialsProvider && (authFailed || staleCreds)) {
666
693
  try {
667
694
  await this.refreshCredentialsOnce();
668
695
  } catch (err) {
696
+ // Offline is the common case here — reconnect with what we
697
+ // have and let the next attempt try again.
669
698
  console.warn('XMPP credential refresh failed; reconnecting with cached creds', err);
670
699
  }
671
700
  }
@@ -676,7 +705,10 @@ class XmppClient {
676
705
  // `this.client` still points at the old client — i.e. before
677
706
  // initializeClient() reassigns it.
678
707
  const old = this.client;
679
- if (old) {
708
+ if (old && this.clientAlreadyStopped) {
709
+ this.detachEventListeners();
710
+ this.clientAlreadyStopped = false;
711
+ } else if (old) {
680
712
  this.detachEventListeners();
681
713
  // NEVER await a bare stop(): on a half-dead socket (the exact case
682
714
  // we're reconnecting for) @xmpp/client's stop() can hang forever
@@ -691,6 +723,9 @@ class XmppClient {
691
723
  await withTimeout(old.stop(), STOP_TIMEOUT_MS);
692
724
  }
693
725
  this.initializeClient();
726
+ if (this.suspendedForBackground) {
727
+ await this.stopClientQuietly();
728
+ }
694
729
  } finally {
695
730
  this.reconnecting = false;
696
731
  }
@@ -722,6 +757,7 @@ class XmppClient {
722
757
  // creds really are stale we simply get not-authorized again and
723
758
  // retry, which is the confirmed-good 26.5.7 behaviour.
724
759
  this.updateCredentials(fresh.username, fresh.password);
760
+ this.credentialsRefreshedAt = Date.now();
725
761
  this.lastAuthError = null;
726
762
  }
727
763
  } finally {
@@ -730,6 +766,53 @@ class XmppClient {
730
766
  })();
731
767
  return this.credentialsRefreshInFlight;
732
768
  }
769
+ suspendedForBackground = false;
770
+ clientAlreadyStopped = false;
771
+ async stopClientQuietly() {
772
+ const c = this.client;
773
+ if (c) {
774
+ const sock = c.socket;
775
+ if (sock && typeof sock.end === 'function') {
776
+ try {
777
+ sock.end();
778
+ } catch {}
779
+ try {
780
+ if (c.status !== 'offline') c._status?.('offline');
781
+ } catch {}
782
+ } else {
783
+ await withTimeout(Promise.resolve(c.stop()).catch(() => undefined), STOP_TIMEOUT_MS);
784
+ }
785
+ this.clientAlreadyStopped = true;
786
+ }
787
+ this.status = 'offline';
788
+ this.presencesReady = false;
789
+ }
790
+ async suspend() {
791
+ if (this.suspendedForBackground) {
792
+ return;
793
+ }
794
+ this.suspendedForBackground = true;
795
+ this.suppressReconnect = true;
796
+ if (this.reconnectTimer) {
797
+ clearTimeout(this.reconnectTimer);
798
+ this.reconnectTimer = null;
799
+ }
800
+ await this.stopClientQuietly();
801
+ console.log('XMPP suspended (background).');
802
+ }
803
+
804
+ /** Back in the foreground: allow reconnects again and reconnect at once. */
805
+ resume() {
806
+ if (!this.suspendedForBackground) {
807
+ return;
808
+ }
809
+ this.suspendedForBackground = false;
810
+ this.suppressReconnect = false;
811
+ this.forceReconnect();
812
+ }
813
+ get isSuspended() {
814
+ return this.suspendedForBackground;
815
+ }
733
816
  async disconnect(options) {
734
817
  if (options?.suppressReconnect) {
735
818
  this.suppressReconnect = true;
@@ -866,9 +949,35 @@ class XmppClient {
866
949
  // `getChatsPrivateStoreRequest` directly and intentionally skip this.
867
950
  if (markers && typeof markers === 'object') {
868
951
  const normalized = {};
952
+ const roomsState = _roomStore.store.getState().rooms?.rooms || {};
953
+ const heapState = _roomStore.store.getState().roomHeapSlice;
869
954
  for (const jid of Object.keys(markers)) {
870
955
  const n = Number(markers[jid]);
871
- if (jid && Number.isFinite(n) && n > 0) {
956
+ if (!jid || !Number.isFinite(n) || n <= 0) {
957
+ continue;
958
+ }
959
+ // Defensive clamp (bug #38): a marker written while some
960
+ // device's clock was ahead can land in the future relative to
961
+ // the newest message the server actually has for this room.
962
+ // The redux merge (applyPrivateStoreMarkers) and the
963
+ // server-side merge (flushLastViewedToPrivateStore) both treat
964
+ // "newer" as "better", so an uncorrected future value would
965
+ // block every later correct write forever - useUnread() would
966
+ // report 0 for that room on every cold start. When we already
967
+ // know this room's messages locally, clamp an implausible
968
+ // marker down to the newest one we actually have instead of
969
+ // trusting the server value verbatim.
970
+ //
971
+ // "Implausible" needs BOTH "past the newest message we know
972
+ // about" AND "past real time" (isCorruptFutureReadMarker):
973
+ // this device's cache for a room is routinely stale, and
974
+ // clamping on staleness alone would drag a perfectly good
975
+ // marker written by another device backwards.
976
+ const room = roomsState[jid];
977
+ const newestKnownMs = room ? (0, _getServerReadTimestamp.getServerReadTimestamp)(room, heapState) : 0;
978
+ if ((0, _getServerReadTimestamp.isCorruptFutureReadMarker)(n, newestKnownMs)) {
979
+ normalized[jid] = newestKnownMs;
980
+ } else {
872
981
  normalized[jid] = n;
873
982
  }
874
983
  }
@@ -899,7 +1008,14 @@ class XmppClient {
899
1008
  return false;
900
1009
  }
901
1010
  try {
902
- return await (0, _flushLastViewedToPrivateStore.flushLastViewedToPrivateStore)(this, rooms, opts);
1011
+ // Auto-inject the pending/failed-send heap so every caller gets
1012
+ // getServerReadTimestamp's exclusion of optimistic messages for
1013
+ // free, without needing to reach into the redux store themselves.
1014
+ const heapState = _roomStore.store.getState().roomHeapSlice;
1015
+ return await (0, _flushLastViewedToPrivateStore.flushLastViewedToPrivateStore)(this, rooms, {
1016
+ ...opts,
1017
+ heapState
1018
+ });
903
1019
  } catch {
904
1020
  return false;
905
1021
  }