@ethora/chat-component-rn 26.9.1 → 26.10.1

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 (816) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +19 -0
  3. package/lib/commonjs/assets/icons.js +2 -2
  4. package/lib/commonjs/assets/icons.js.map +1 -1
  5. package/lib/commonjs/components/Header/HeaderRoomList.js +22 -6
  6. package/lib/commonjs/components/Header/HeaderRoomList.js.map +1 -1
  7. package/lib/commonjs/components/InputComponents/Search.js +38 -1
  8. package/lib/commonjs/components/InputComponents/Search.js.map +1 -1
  9. package/lib/commonjs/components/MainComponents/ArchivedMessageCard.js +166 -0
  10. package/lib/commonjs/components/MainComponents/ArchivedMessageCard.js.map +1 -0
  11. package/lib/commonjs/components/MainComponents/ChatHeader.js +22 -5
  12. package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
  13. package/lib/commonjs/components/MainComponents/ChatRoom.js +56 -25
  14. package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
  15. package/lib/commonjs/components/MainComponents/ChatWrapper.js +31 -1
  16. package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
  17. package/lib/commonjs/components/MainComponents/MediaMessage.js +18 -3
  18. package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
  19. package/lib/commonjs/components/MainComponents/MessageList.js +739 -42
  20. package/lib/commonjs/components/MainComponents/MessageList.js.map +1 -1
  21. package/lib/commonjs/components/MainComponents/MessageSearchButton.js +58 -0
  22. package/lib/commonjs/components/MainComponents/MessageSearchButton.js.map +1 -0
  23. package/lib/commonjs/components/MainComponents/ReduxWrapper.js +15 -6
  24. package/lib/commonjs/components/MainComponents/ReduxWrapper.js.map +1 -1
  25. package/lib/commonjs/components/MainComponents/RoomList.js +110 -1
  26. package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
  27. package/lib/commonjs/components/Menu/HeaderRoomListMenu.js +14 -3
  28. package/lib/commonjs/components/Menu/HeaderRoomListMenu.js.map +1 -1
  29. package/lib/commonjs/components/MessageBubble/BubbleHighlight.js +112 -0
  30. package/lib/commonjs/components/MessageBubble/BubbleHighlight.js.map +1 -0
  31. package/lib/commonjs/components/MessageBubble/Message.js +169 -125
  32. package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
  33. package/lib/commonjs/components/MessageBubble/MessageInteractions.js +98 -78
  34. package/lib/commonjs/components/MessageBubble/MessageInteractions.js.map +1 -1
  35. package/lib/commonjs/components/MessageBubble/messageMenuLayout.js +50 -0
  36. package/lib/commonjs/components/MessageBubble/messageMenuLayout.js.map +1 -0
  37. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +73 -37
  38. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  39. package/lib/commonjs/components/Modals/MessageSearchModal/MessageHitResults.js +253 -0
  40. package/lib/commonjs/components/Modals/MessageSearchModal/MessageHitResults.js.map +1 -0
  41. package/lib/commonjs/components/Modals/MessageSearchModal/MessageSearchModal.js +488 -0
  42. package/lib/commonjs/components/Modals/MessageSearchModal/MessageSearchModal.js.map +1 -0
  43. package/lib/commonjs/components/Modals/MessageSearchModal/openHit.js +51 -0
  44. package/lib/commonjs/components/Modals/MessageSearchModal/openHit.js.map +1 -0
  45. package/lib/commonjs/components/Modals/MessageSearchModal/resolveSender.js +47 -0
  46. package/lib/commonjs/components/Modals/MessageSearchModal/resolveSender.js.map +1 -0
  47. package/lib/commonjs/components/Modals/MessageSearchModal/searchFilters.js +83 -0
  48. package/lib/commonjs/components/Modals/MessageSearchModal/searchFilters.js.map +1 -0
  49. package/lib/commonjs/components/Modals/MessageSearchModal/snippet.js +61 -0
  50. package/lib/commonjs/components/Modals/MessageSearchModal/snippet.js.map +1 -0
  51. package/lib/commonjs/components/Modals/MessageSearchModal/useMessageSearch.js +136 -0
  52. package/lib/commonjs/components/Modals/MessageSearchModal/useMessageSearch.js.map +1 -0
  53. package/lib/commonjs/components/Modals/PublicChatsModal/PublicChatsModal.js +306 -0
  54. package/lib/commonjs/components/Modals/PublicChatsModal/PublicChatsModal.js.map +1 -0
  55. package/lib/commonjs/components/Modals/PublicChatsModal/publicChatsLogic.js +36 -0
  56. package/lib/commonjs/components/Modals/PublicChatsModal/publicChatsLogic.js.map +1 -0
  57. package/lib/commonjs/components/Modals/SelectUsersModal/SelectUsersModal.js +8 -1
  58. package/lib/commonjs/components/Modals/SelectUsersModal/SelectUsersModal.js.map +1 -1
  59. package/lib/commonjs/components/Modals/SettingsModals/BlockedUsers/BlockedUsersModal.js +14 -12
  60. package/lib/commonjs/components/Modals/SettingsModals/BlockedUsers/BlockedUsersModal.js.map +1 -1
  61. package/lib/commonjs/components/Modals/SettingsModals/DocumentShares/DocumentSharesModal.js +41 -39
  62. package/lib/commonjs/components/Modals/SettingsModals/DocumentShares/DocumentSharesModal.js.map +1 -1
  63. package/lib/commonjs/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js +137 -50
  64. package/lib/commonjs/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js.map +1 -1
  65. package/lib/commonjs/components/Modals/SettingsModals/ProfileShares/ProfileShares.js +15 -13
  66. package/lib/commonjs/components/Modals/SettingsModals/ProfileShares/ProfileShares.js.map +1 -1
  67. package/lib/commonjs/components/Modals/SettingsModals/Referrals/Referrals.js +57 -55
  68. package/lib/commonjs/components/Modals/SettingsModals/Referrals/Referrals.js.map +1 -1
  69. package/lib/commonjs/components/Modals/SettingsModals/SharedStyledComponents.js +15 -1
  70. package/lib/commonjs/components/Modals/SettingsModals/SharedStyledComponents.js.map +1 -1
  71. package/lib/commonjs/components/Modals/SettingsModals/Visibility/VisibilityModal.js +61 -59
  72. package/lib/commonjs/components/Modals/SettingsModals/Visibility/VisibilityModal.js.map +1 -1
  73. package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js +8 -3
  74. package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
  75. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js +13 -2
  76. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js.map +1 -1
  77. package/lib/commonjs/components/RoomComponents/SwipeableRoomRow.js +38 -6
  78. package/lib/commonjs/components/RoomComponents/SwipeableRoomRow.js.map +1 -1
  79. package/lib/commonjs/components/Thread/ThreadHeader.js +3 -1
  80. package/lib/commonjs/components/Thread/ThreadHeader.js.map +1 -1
  81. package/lib/commonjs/components/Thread/ThreadWrapper.js +90 -10
  82. package/lib/commonjs/components/Thread/ThreadWrapper.js.map +1 -1
  83. package/lib/commonjs/components/styled/AudioDecoderHost.js +338 -0
  84. package/lib/commonjs/components/styled/AudioDecoderHost.js.map +1 -0
  85. package/lib/commonjs/components/styled/AudioMessage.js +493 -420
  86. package/lib/commonjs/components/styled/AudioMessage.js.map +1 -1
  87. package/lib/commonjs/components/styled/SendInput.js +31 -5
  88. package/lib/commonjs/components/styled/SendInput.js.map +1 -1
  89. package/lib/commonjs/context/MessageNotificationContext.js +14 -4
  90. package/lib/commonjs/context/MessageNotificationContext.js.map +1 -1
  91. package/lib/commonjs/context/xmppProvider.js +41 -77
  92. package/lib/commonjs/context/xmppProvider.js.map +1 -1
  93. package/lib/commonjs/helpers/audioWaveform.js +165 -0
  94. package/lib/commonjs/helpers/audioWaveform.js.map +1 -0
  95. package/lib/commonjs/helpers/backgroundJoinSweep.js +36 -0
  96. package/lib/commonjs/helpers/backgroundJoinSweep.js.map +1 -0
  97. package/lib/commonjs/helpers/bubbleHighlight.js +44 -0
  98. package/lib/commonjs/helpers/bubbleHighlight.js.map +1 -0
  99. package/lib/commonjs/helpers/checkUniqueUsers.js +14 -12
  100. package/lib/commonjs/helpers/checkUniqueUsers.js.map +1 -1
  101. package/lib/commonjs/helpers/constants/MODAL_COMPONENTS.js +5 -1
  102. package/lib/commonjs/helpers/constants/MODAL_COMPONENTS.js.map +1 -1
  103. package/lib/commonjs/helpers/constants/MODAL_TYPES.js +3 -1
  104. package/lib/commonjs/helpers/constants/MODAL_TYPES.js.map +1 -1
  105. package/lib/commonjs/helpers/createRoomFromApi.js +40 -3
  106. package/lib/commonjs/helpers/createRoomFromApi.js.map +1 -1
  107. package/lib/commonjs/helpers/dedupeMembers.js +34 -0
  108. package/lib/commonjs/helpers/dedupeMembers.js.map +1 -0
  109. package/lib/commonjs/helpers/ethoraLogger.js +56 -0
  110. package/lib/commonjs/helpers/ethoraLogger.js.map +1 -0
  111. package/lib/commonjs/helpers/getUnnamedUsers.js +9 -4
  112. package/lib/commonjs/helpers/getUnnamedUsers.js.map +1 -1
  113. package/lib/commonjs/helpers/historyPreloadConfig.js +44 -0
  114. package/lib/commonjs/helpers/historyPreloadConfig.js.map +1 -0
  115. package/lib/commonjs/helpers/historyPreloadScheduler.js +372 -137
  116. package/lib/commonjs/helpers/historyPreloadScheduler.js.map +1 -1
  117. package/lib/commonjs/helpers/initRoomsPresence.js +17 -5
  118. package/lib/commonjs/helpers/initRoomsPresence.js.map +1 -1
  119. package/lib/commonjs/helpers/insertMessageWithDelimiter.js +5 -0
  120. package/lib/commonjs/helpers/insertMessageWithDelimiter.js.map +1 -1
  121. package/lib/commonjs/helpers/isLikelyMucJid.js +67 -0
  122. package/lib/commonjs/helpers/isLikelyMucJid.js.map +1 -0
  123. package/lib/commonjs/helpers/isMessageSearchEnabled.js +18 -0
  124. package/lib/commonjs/helpers/isMessageSearchEnabled.js.map +1 -0
  125. package/lib/commonjs/helpers/joiningRoom.js +14 -0
  126. package/lib/commonjs/helpers/joiningRoom.js.map +1 -0
  127. package/lib/commonjs/helpers/jumpThread.js +100 -0
  128. package/lib/commonjs/helpers/jumpThread.js.map +1 -0
  129. package/lib/commonjs/helpers/jumpToMessage.js +58 -0
  130. package/lib/commonjs/helpers/jumpToMessage.js.map +1 -0
  131. package/lib/commonjs/helpers/jumpWindow.js +187 -0
  132. package/lib/commonjs/helpers/jumpWindow.js.map +1 -0
  133. package/lib/commonjs/helpers/loadRoomHistory.js +75 -0
  134. package/lib/commonjs/helpers/loadRoomHistory.js.map +1 -0
  135. package/lib/commonjs/helpers/notificationPolicy.js +77 -0
  136. package/lib/commonjs/helpers/notificationPolicy.js.map +1 -0
  137. package/lib/commonjs/helpers/openRoomAtMessage.js +47 -0
  138. package/lib/commonjs/helpers/openRoomAtMessage.js.map +1 -0
  139. package/lib/commonjs/helpers/openThreadForJump.js +72 -0
  140. package/lib/commonjs/helpers/openThreadForJump.js.map +1 -0
  141. package/lib/commonjs/helpers/parseMessageReference.js +27 -8
  142. package/lib/commonjs/helpers/parseMessageReference.js.map +1 -1
  143. package/lib/commonjs/helpers/publicChatsEntry.js +17 -0
  144. package/lib/commonjs/helpers/publicChatsEntry.js.map +1 -0
  145. package/lib/commonjs/helpers/roomActivityScore.js +37 -0
  146. package/lib/commonjs/helpers/roomActivityScore.js.map +1 -0
  147. package/lib/commonjs/helpers/roomUserCount.js +36 -0
  148. package/lib/commonjs/helpers/roomUserCount.js.map +1 -0
  149. package/lib/commonjs/helpers/runConfiguredHistoryPreload.js +68 -0
  150. package/lib/commonjs/helpers/runConfiguredHistoryPreload.js.map +1 -0
  151. package/lib/commonjs/helpers/sessionAppId.js +24 -0
  152. package/lib/commonjs/helpers/sessionAppId.js.map +1 -0
  153. package/lib/commonjs/helpers/timestamp.js +43 -0
  154. package/lib/commonjs/helpers/timestamp.js.map +1 -0
  155. package/lib/commonjs/helpers/userResolver.js +517 -0
  156. package/lib/commonjs/helpers/userResolver.js.map +1 -0
  157. package/lib/commonjs/helpers/xmppIdShape.js +52 -0
  158. package/lib/commonjs/helpers/xmppIdShape.js.map +1 -0
  159. package/lib/commonjs/hooks/useChatWrapperInit.js +27 -5
  160. package/lib/commonjs/hooks/useChatWrapperInit.js.map +1 -1
  161. package/lib/commonjs/hooks/useHeapSender.js +54 -3
  162. package/lib/commonjs/hooks/useHeapSender.js.map +1 -1
  163. package/lib/commonjs/hooks/useJumpToMessage.js +411 -0
  164. package/lib/commonjs/hooks/useJumpToMessage.js.map +1 -0
  165. package/lib/commonjs/hooks/useMessageLoaderQueue.js +32 -5
  166. package/lib/commonjs/hooks/useMessageLoaderQueue.js.map +1 -1
  167. package/lib/commonjs/hooks/useMessageQueue.js +13 -5
  168. package/lib/commonjs/hooks/useMessageQueue.js.map +1 -1
  169. package/lib/commonjs/hooks/useRoomDirectory.js +29 -0
  170. package/lib/commonjs/hooks/useRoomDirectory.js.map +1 -0
  171. package/lib/commonjs/hooks/useRoomInitialization.js +27 -5
  172. package/lib/commonjs/hooks/useRoomInitialization.js.map +1 -1
  173. package/lib/commonjs/hooks/useRoomMute.js +62 -0
  174. package/lib/commonjs/hooks/useRoomMute.js.map +1 -0
  175. package/lib/commonjs/hooks/useRoomState.js +3 -1
  176. package/lib/commonjs/hooks/useRoomState.js.map +1 -1
  177. package/lib/commonjs/hooks/useSendMessage.js +13 -3
  178. package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
  179. package/lib/commonjs/i18n/strings.js +312 -6
  180. package/lib/commonjs/i18n/strings.js.map +1 -1
  181. package/lib/commonjs/networking/api-requests/messageSearch.api.js +87 -0
  182. package/lib/commonjs/networking/api-requests/messageSearch.api.js.map +1 -0
  183. package/lib/commonjs/networking/api-requests/publicChats.api.js +48 -0
  184. package/lib/commonjs/networking/api-requests/publicChats.api.js.map +1 -0
  185. package/lib/commonjs/networking/api-requests/roomMembers.api.js +253 -4
  186. package/lib/commonjs/networking/api-requests/roomMembers.api.js.map +1 -1
  187. package/lib/commonjs/networking/api-requests/rooms.api.js +48 -12
  188. package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
  189. package/lib/commonjs/networking/api-requests/user.api.js +32 -3
  190. package/lib/commonjs/networking/api-requests/user.api.js.map +1 -1
  191. package/lib/commonjs/networking/api-requests/xmppToken.api.js +71 -0
  192. package/lib/commonjs/networking/api-requests/xmppToken.api.js.map +1 -0
  193. package/lib/commonjs/networking/ethoraEvents.js +227 -0
  194. package/lib/commonjs/networking/ethoraEvents.js.map +1 -0
  195. package/lib/commonjs/networking/stanzaHandlers.js +153 -16
  196. package/lib/commonjs/networking/stanzaHandlers.js.map +1 -1
  197. package/lib/commonjs/networking/xmpp/allRoomPresences.xmpp.js +124 -3
  198. package/lib/commonjs/networking/xmpp/allRoomPresences.xmpp.js.map +1 -1
  199. package/lib/commonjs/networking/xmpp/getHistory.xmpp.js +319 -35
  200. package/lib/commonjs/networking/xmpp/getHistory.xmpp.js.map +1 -1
  201. package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js +7 -0
  202. package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
  203. package/lib/commonjs/networking/xmpp/historyCursor.js +101 -0
  204. package/lib/commonjs/networking/xmpp/historyCursor.js.map +1 -0
  205. package/lib/commonjs/networking/xmpp/mamQueryIds.js +17 -0
  206. package/lib/commonjs/networking/xmpp/mamQueryIds.js.map +1 -0
  207. package/lib/commonjs/networking/xmpp/mamRouter.js +24 -9
  208. package/lib/commonjs/networking/xmpp/mamRouter.js.map +1 -1
  209. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js +70 -65
  210. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  211. package/lib/commonjs/networking/xmpp/roomJoinSweep.js +389 -0
  212. package/lib/commonjs/networking/xmpp/roomJoinSweep.js.map +1 -0
  213. package/lib/commonjs/networking/xmpp/sendMediaMessage.xmpp.js +0 -1
  214. package/lib/commonjs/networking/xmpp/sendMediaMessage.xmpp.js.map +1 -1
  215. package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js +0 -1
  216. package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
  217. package/lib/commonjs/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js +0 -1
  218. package/lib/commonjs/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js.map +1 -1
  219. package/lib/commonjs/networking/xmppClient.js +269 -41
  220. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  221. package/lib/commonjs/networking/xmppCredentials.js +80 -0
  222. package/lib/commonjs/networking/xmppCredentials.js.map +1 -0
  223. package/lib/commonjs/roomStore/Middleware/jumpThreadMiddleware.js +158 -0
  224. package/lib/commonjs/roomStore/Middleware/jumpThreadMiddleware.js.map +1 -0
  225. package/lib/commonjs/roomStore/Middleware/reactionsMiddleware.js +6 -0
  226. package/lib/commonjs/roomStore/Middleware/reactionsMiddleware.js.map +1 -1
  227. package/lib/commonjs/roomStore/Middleware/unreadMidlleware.js +45 -7
  228. package/lib/commonjs/roomStore/Middleware/unreadMidlleware.js.map +1 -1
  229. package/lib/commonjs/roomStore/chatSettingsSlice.js +21 -1
  230. package/lib/commonjs/roomStore/chatSettingsSlice.js.map +1 -1
  231. package/lib/commonjs/roomStore/index.js +13 -3
  232. package/lib/commonjs/roomStore/index.js.map +1 -1
  233. package/lib/commonjs/roomStore/persistence.js +48 -1
  234. package/lib/commonjs/roomStore/persistence.js.map +1 -1
  235. package/lib/commonjs/roomStore/roomsSlice.js +474 -60
  236. package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
  237. package/lib/commonjs/roomStore/safeKey.js +44 -0
  238. package/lib/commonjs/roomStore/safeKey.js.map +1 -0
  239. package/lib/commonjs/roomStore/usersSetCap.js +37 -0
  240. package/lib/commonjs/roomStore/usersSetCap.js.map +1 -0
  241. package/lib/commonjs/version.js +1 -1
  242. package/lib/commonjs/version.js.map +1 -1
  243. package/lib/module/assets/icons.js +1 -1
  244. package/lib/module/assets/icons.js.map +1 -1
  245. package/lib/module/components/Header/HeaderRoomList.js +23 -7
  246. package/lib/module/components/Header/HeaderRoomList.js.map +1 -1
  247. package/lib/module/components/InputComponents/Search.js +39 -2
  248. package/lib/module/components/InputComponents/Search.js.map +1 -1
  249. package/lib/module/components/MainComponents/ArchivedMessageCard.js +161 -0
  250. package/lib/module/components/MainComponents/ArchivedMessageCard.js.map +1 -0
  251. package/lib/module/components/MainComponents/ChatHeader.js +22 -5
  252. package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
  253. package/lib/module/components/MainComponents/ChatRoom.js +57 -26
  254. package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
  255. package/lib/module/components/MainComponents/ChatWrapper.js +31 -1
  256. package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
  257. package/lib/module/components/MainComponents/MediaMessage.js +18 -3
  258. package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
  259. package/lib/module/components/MainComponents/MessageList.js +740 -42
  260. package/lib/module/components/MainComponents/MessageList.js.map +1 -1
  261. package/lib/module/components/MainComponents/MessageSearchButton.js +48 -0
  262. package/lib/module/components/MainComponents/MessageSearchButton.js.map +1 -0
  263. package/lib/module/components/MainComponents/ReduxWrapper.js +15 -7
  264. package/lib/module/components/MainComponents/ReduxWrapper.js.map +1 -1
  265. package/lib/module/components/MainComponents/RoomList.js +111 -2
  266. package/lib/module/components/MainComponents/RoomList.js.map +1 -1
  267. package/lib/module/components/Menu/HeaderRoomListMenu.js +15 -4
  268. package/lib/module/components/Menu/HeaderRoomListMenu.js.map +1 -1
  269. package/lib/module/components/MessageBubble/BubbleHighlight.js +106 -0
  270. package/lib/module/components/MessageBubble/BubbleHighlight.js.map +1 -0
  271. package/lib/module/components/MessageBubble/Message.js +172 -127
  272. package/lib/module/components/MessageBubble/Message.js.map +1 -1
  273. package/lib/module/components/MessageBubble/MessageInteractions.js +98 -78
  274. package/lib/module/components/MessageBubble/MessageInteractions.js.map +1 -1
  275. package/lib/module/components/MessageBubble/messageMenuLayout.js +45 -0
  276. package/lib/module/components/MessageBubble/messageMenuLayout.js.map +1 -0
  277. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +74 -38
  278. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  279. package/lib/module/components/Modals/MessageSearchModal/MessageHitResults.js +243 -0
  280. package/lib/module/components/Modals/MessageSearchModal/MessageHitResults.js.map +1 -0
  281. package/lib/module/components/Modals/MessageSearchModal/MessageSearchModal.js +482 -0
  282. package/lib/module/components/Modals/MessageSearchModal/MessageSearchModal.js.map +1 -0
  283. package/lib/module/components/Modals/MessageSearchModal/openHit.js +45 -0
  284. package/lib/module/components/Modals/MessageSearchModal/openHit.js.map +1 -0
  285. package/lib/module/components/Modals/MessageSearchModal/resolveSender.js +41 -0
  286. package/lib/module/components/Modals/MessageSearchModal/resolveSender.js.map +1 -0
  287. package/lib/module/components/Modals/MessageSearchModal/searchFilters.js +74 -0
  288. package/lib/module/components/Modals/MessageSearchModal/searchFilters.js.map +1 -0
  289. package/lib/module/components/Modals/MessageSearchModal/snippet.js +57 -0
  290. package/lib/module/components/Modals/MessageSearchModal/snippet.js.map +1 -0
  291. package/lib/module/components/Modals/MessageSearchModal/useMessageSearch.js +131 -0
  292. package/lib/module/components/Modals/MessageSearchModal/useMessageSearch.js.map +1 -0
  293. package/lib/module/components/Modals/PublicChatsModal/PublicChatsModal.js +300 -0
  294. package/lib/module/components/Modals/PublicChatsModal/PublicChatsModal.js.map +1 -0
  295. package/lib/module/components/Modals/PublicChatsModal/publicChatsLogic.js +30 -0
  296. package/lib/module/components/Modals/PublicChatsModal/publicChatsLogic.js.map +1 -0
  297. package/lib/module/components/Modals/SelectUsersModal/SelectUsersModal.js +8 -1
  298. package/lib/module/components/Modals/SelectUsersModal/SelectUsersModal.js.map +1 -1
  299. package/lib/module/components/Modals/SettingsModals/BlockedUsers/BlockedUsersModal.js +15 -13
  300. package/lib/module/components/Modals/SettingsModals/BlockedUsers/BlockedUsersModal.js.map +1 -1
  301. package/lib/module/components/Modals/SettingsModals/DocumentShares/DocumentSharesModal.js +42 -40
  302. package/lib/module/components/Modals/SettingsModals/DocumentShares/DocumentSharesModal.js.map +1 -1
  303. package/lib/module/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js +138 -52
  304. package/lib/module/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js.map +1 -1
  305. package/lib/module/components/Modals/SettingsModals/ProfileShares/ProfileShares.js +16 -14
  306. package/lib/module/components/Modals/SettingsModals/ProfileShares/ProfileShares.js.map +1 -1
  307. package/lib/module/components/Modals/SettingsModals/Referrals/Referrals.js +58 -56
  308. package/lib/module/components/Modals/SettingsModals/Referrals/Referrals.js.map +1 -1
  309. package/lib/module/components/Modals/SettingsModals/SharedStyledComponents.js +14 -0
  310. package/lib/module/components/Modals/SettingsModals/SharedStyledComponents.js.map +1 -1
  311. package/lib/module/components/Modals/SettingsModals/Visibility/VisibilityModal.js +62 -60
  312. package/lib/module/components/Modals/SettingsModals/Visibility/VisibilityModal.js.map +1 -1
  313. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js +9 -4
  314. package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
  315. package/lib/module/components/RoomComponents/ChatRoomItem.js +14 -3
  316. package/lib/module/components/RoomComponents/ChatRoomItem.js.map +1 -1
  317. package/lib/module/components/RoomComponents/SwipeableRoomRow.js +39 -7
  318. package/lib/module/components/RoomComponents/SwipeableRoomRow.js.map +1 -1
  319. package/lib/module/components/Thread/ThreadHeader.js +3 -1
  320. package/lib/module/components/Thread/ThreadHeader.js.map +1 -1
  321. package/lib/module/components/Thread/ThreadWrapper.js +89 -9
  322. package/lib/module/components/Thread/ThreadWrapper.js.map +1 -1
  323. package/lib/module/components/styled/AudioDecoderHost.js +332 -0
  324. package/lib/module/components/styled/AudioDecoderHost.js.map +1 -0
  325. package/lib/module/components/styled/AudioMessage.js +495 -422
  326. package/lib/module/components/styled/AudioMessage.js.map +1 -1
  327. package/lib/module/components/styled/SendInput.js +32 -6
  328. package/lib/module/components/styled/SendInput.js.map +1 -1
  329. package/lib/module/context/MessageNotificationContext.js +15 -5
  330. package/lib/module/context/MessageNotificationContext.js.map +1 -1
  331. package/lib/module/context/xmppProvider.js +42 -78
  332. package/lib/module/context/xmppProvider.js.map +1 -1
  333. package/lib/module/helpers/audioWaveform.js +153 -0
  334. package/lib/module/helpers/audioWaveform.js.map +1 -0
  335. package/lib/module/helpers/backgroundJoinSweep.js +30 -0
  336. package/lib/module/helpers/backgroundJoinSweep.js.map +1 -0
  337. package/lib/module/helpers/bubbleHighlight.js +38 -0
  338. package/lib/module/helpers/bubbleHighlight.js.map +1 -0
  339. package/lib/module/helpers/checkUniqueUsers.js +15 -13
  340. package/lib/module/helpers/checkUniqueUsers.js.map +1 -1
  341. package/lib/module/helpers/constants/MODAL_COMPONENTS.js +5 -1
  342. package/lib/module/helpers/constants/MODAL_COMPONENTS.js.map +1 -1
  343. package/lib/module/helpers/constants/MODAL_TYPES.js +3 -1
  344. package/lib/module/helpers/constants/MODAL_TYPES.js.map +1 -1
  345. package/lib/module/helpers/createRoomFromApi.js +37 -3
  346. package/lib/module/helpers/createRoomFromApi.js.map +1 -1
  347. package/lib/module/helpers/dedupeMembers.js +28 -0
  348. package/lib/module/helpers/dedupeMembers.js.map +1 -0
  349. package/lib/module/helpers/ethoraLogger.js +52 -0
  350. package/lib/module/helpers/ethoraLogger.js.map +1 -0
  351. package/lib/module/helpers/getUnnamedUsers.js +9 -4
  352. package/lib/module/helpers/getUnnamedUsers.js.map +1 -1
  353. package/lib/module/helpers/historyPreloadConfig.js +39 -0
  354. package/lib/module/helpers/historyPreloadConfig.js.map +1 -0
  355. package/lib/module/helpers/historyPreloadScheduler.js +368 -134
  356. package/lib/module/helpers/historyPreloadScheduler.js.map +1 -1
  357. package/lib/module/helpers/initRoomsPresence.js +18 -5
  358. package/lib/module/helpers/initRoomsPresence.js.map +1 -1
  359. package/lib/module/helpers/insertMessageWithDelimiter.js +5 -0
  360. package/lib/module/helpers/insertMessageWithDelimiter.js.map +1 -1
  361. package/lib/module/helpers/isLikelyMucJid.js +60 -0
  362. package/lib/module/helpers/isLikelyMucJid.js.map +1 -0
  363. package/lib/module/helpers/isMessageSearchEnabled.js +13 -0
  364. package/lib/module/helpers/isMessageSearchEnabled.js.map +1 -0
  365. package/lib/module/helpers/joiningRoom.js +9 -0
  366. package/lib/module/helpers/joiningRoom.js.map +1 -0
  367. package/lib/module/helpers/jumpThread.js +83 -0
  368. package/lib/module/helpers/jumpThread.js.map +1 -0
  369. package/lib/module/helpers/jumpToMessage.js +52 -0
  370. package/lib/module/helpers/jumpToMessage.js.map +1 -0
  371. package/lib/module/helpers/jumpWindow.js +177 -0
  372. package/lib/module/helpers/jumpWindow.js.map +1 -0
  373. package/lib/module/helpers/loadRoomHistory.js +69 -0
  374. package/lib/module/helpers/loadRoomHistory.js.map +1 -0
  375. package/lib/module/helpers/notificationPolicy.js +70 -0
  376. package/lib/module/helpers/notificationPolicy.js.map +1 -0
  377. package/lib/module/helpers/openRoomAtMessage.js +41 -0
  378. package/lib/module/helpers/openRoomAtMessage.js.map +1 -0
  379. package/lib/module/helpers/openThreadForJump.js +68 -0
  380. package/lib/module/helpers/openThreadForJump.js.map +1 -0
  381. package/lib/module/helpers/parseMessageReference.js +26 -6
  382. package/lib/module/helpers/parseMessageReference.js.map +1 -1
  383. package/lib/module/helpers/publicChatsEntry.js +12 -0
  384. package/lib/module/helpers/publicChatsEntry.js.map +1 -0
  385. package/lib/module/helpers/roomActivityScore.js +30 -0
  386. package/lib/module/helpers/roomActivityScore.js.map +1 -0
  387. package/lib/module/helpers/roomUserCount.js +29 -0
  388. package/lib/module/helpers/roomUserCount.js.map +1 -0
  389. package/lib/module/helpers/runConfiguredHistoryPreload.js +63 -0
  390. package/lib/module/helpers/runConfiguredHistoryPreload.js.map +1 -0
  391. package/lib/module/helpers/sessionAppId.js +20 -0
  392. package/lib/module/helpers/sessionAppId.js.map +1 -0
  393. package/lib/module/helpers/timestamp.js +37 -0
  394. package/lib/module/helpers/timestamp.js.map +1 -0
  395. package/lib/module/helpers/userResolver.js +503 -0
  396. package/lib/module/helpers/userResolver.js.map +1 -0
  397. package/lib/module/helpers/xmppIdShape.js +46 -0
  398. package/lib/module/helpers/xmppIdShape.js.map +1 -0
  399. package/lib/module/hooks/useChatWrapperInit.js +16 -5
  400. package/lib/module/hooks/useChatWrapperInit.js.map +1 -1
  401. package/lib/module/hooks/useHeapSender.js +54 -3
  402. package/lib/module/hooks/useHeapSender.js.map +1 -1
  403. package/lib/module/hooks/useJumpToMessage.js +389 -0
  404. package/lib/module/hooks/useJumpToMessage.js.map +1 -0
  405. package/lib/module/hooks/useMessageLoaderQueue.js +32 -5
  406. package/lib/module/hooks/useMessageLoaderQueue.js.map +1 -1
  407. package/lib/module/hooks/useMessageQueue.js +13 -5
  408. package/lib/module/hooks/useMessageQueue.js.map +1 -1
  409. package/lib/module/hooks/useRoomDirectory.js +24 -0
  410. package/lib/module/hooks/useRoomDirectory.js.map +1 -0
  411. package/lib/module/hooks/useRoomInitialization.js +29 -7
  412. package/lib/module/hooks/useRoomInitialization.js.map +1 -1
  413. package/lib/module/hooks/useRoomMute.js +58 -0
  414. package/lib/module/hooks/useRoomMute.js.map +1 -0
  415. package/lib/module/hooks/useRoomState.js +3 -1
  416. package/lib/module/hooks/useRoomState.js.map +1 -1
  417. package/lib/module/hooks/useSendMessage.js +13 -3
  418. package/lib/module/hooks/useSendMessage.js.map +1 -1
  419. package/lib/module/i18n/strings.js +312 -6
  420. package/lib/module/i18n/strings.js.map +1 -1
  421. package/lib/module/networking/api-requests/messageSearch.api.js +81 -0
  422. package/lib/module/networking/api-requests/messageSearch.api.js.map +1 -0
  423. package/lib/module/networking/api-requests/publicChats.api.js +43 -0
  424. package/lib/module/networking/api-requests/publicChats.api.js.map +1 -0
  425. package/lib/module/networking/api-requests/roomMembers.api.js +248 -4
  426. package/lib/module/networking/api-requests/roomMembers.api.js.map +1 -1
  427. package/lib/module/networking/api-requests/rooms.api.js +48 -12
  428. package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
  429. package/lib/module/networking/api-requests/user.api.js +31 -3
  430. package/lib/module/networking/api-requests/user.api.js.map +1 -1
  431. package/lib/module/networking/api-requests/xmppToken.api.js +66 -0
  432. package/lib/module/networking/api-requests/xmppToken.api.js.map +1 -0
  433. package/lib/module/networking/ethoraEvents.js +220 -0
  434. package/lib/module/networking/ethoraEvents.js.map +1 -0
  435. package/lib/module/networking/stanzaHandlers.js +155 -18
  436. package/lib/module/networking/stanzaHandlers.js.map +1 -1
  437. package/lib/module/networking/xmpp/allRoomPresences.xmpp.js +125 -3
  438. package/lib/module/networking/xmpp/allRoomPresences.xmpp.js.map +1 -1
  439. package/lib/module/networking/xmpp/getHistory.xmpp.js +318 -35
  440. package/lib/module/networking/xmpp/getHistory.xmpp.js.map +1 -1
  441. package/lib/module/networking/xmpp/handleStanzas.xmpp.js +7 -0
  442. package/lib/module/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
  443. package/lib/module/networking/xmpp/historyCursor.js +95 -0
  444. package/lib/module/networking/xmpp/historyCursor.js.map +1 -0
  445. package/lib/module/networking/xmpp/mamQueryIds.js +12 -0
  446. package/lib/module/networking/xmpp/mamQueryIds.js.map +1 -0
  447. package/lib/module/networking/xmpp/mamRouter.js +22 -8
  448. package/lib/module/networking/xmpp/mamRouter.js.map +1 -1
  449. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js +68 -62
  450. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  451. package/lib/module/networking/xmpp/roomJoinSweep.js +385 -0
  452. package/lib/module/networking/xmpp/roomJoinSweep.js.map +1 -0
  453. package/lib/module/networking/xmpp/sendMediaMessage.xmpp.js +0 -1
  454. package/lib/module/networking/xmpp/sendMediaMessage.xmpp.js.map +1 -1
  455. package/lib/module/networking/xmpp/sendTextMessage.xmpp.js +0 -1
  456. package/lib/module/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
  457. package/lib/module/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js +0 -1
  458. package/lib/module/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js.map +1 -1
  459. package/lib/module/networking/xmppClient.js +269 -41
  460. package/lib/module/networking/xmppClient.js.map +1 -1
  461. package/lib/module/networking/xmppCredentials.js +76 -0
  462. package/lib/module/networking/xmppCredentials.js.map +1 -0
  463. package/lib/module/roomStore/Middleware/jumpThreadMiddleware.js +153 -0
  464. package/lib/module/roomStore/Middleware/jumpThreadMiddleware.js.map +1 -0
  465. package/lib/module/roomStore/Middleware/reactionsMiddleware.js +6 -0
  466. package/lib/module/roomStore/Middleware/reactionsMiddleware.js.map +1 -1
  467. package/lib/module/roomStore/Middleware/unreadMidlleware.js +46 -7
  468. package/lib/module/roomStore/Middleware/unreadMidlleware.js.map +1 -1
  469. package/lib/module/roomStore/chatSettingsSlice.js +19 -0
  470. package/lib/module/roomStore/chatSettingsSlice.js.map +1 -1
  471. package/lib/module/roomStore/index.js +7 -3
  472. package/lib/module/roomStore/index.js.map +1 -1
  473. package/lib/module/roomStore/persistence.js +46 -1
  474. package/lib/module/roomStore/persistence.js.map +1 -1
  475. package/lib/module/roomStore/roomsSlice.js +459 -58
  476. package/lib/module/roomStore/roomsSlice.js.map +1 -1
  477. package/lib/module/roomStore/safeKey.js +37 -0
  478. package/lib/module/roomStore/safeKey.js.map +1 -0
  479. package/lib/module/roomStore/usersSetCap.js +32 -0
  480. package/lib/module/roomStore/usersSetCap.js.map +1 -0
  481. package/lib/module/version.js +1 -1
  482. package/lib/module/version.js.map +1 -1
  483. package/lib/typescript/assets/icons.d.ts +4 -0
  484. package/lib/typescript/assets/icons.d.ts.map +1 -1
  485. package/lib/typescript/components/Header/HeaderRoomList.d.ts.map +1 -1
  486. package/lib/typescript/components/InputComponents/Search.d.ts.map +1 -1
  487. package/lib/typescript/components/MainComponents/ArchivedMessageCard.d.ts +12 -0
  488. package/lib/typescript/components/MainComponents/ArchivedMessageCard.d.ts.map +1 -0
  489. package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
  490. package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
  491. package/lib/typescript/components/MainComponents/ChatWrapper.d.ts.map +1 -1
  492. package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
  493. package/lib/typescript/components/MainComponents/MessageList.d.ts +22 -1
  494. package/lib/typescript/components/MainComponents/MessageList.d.ts.map +1 -1
  495. package/lib/typescript/components/MainComponents/MessageSearchButton.d.ts +7 -0
  496. package/lib/typescript/components/MainComponents/MessageSearchButton.d.ts.map +1 -0
  497. package/lib/typescript/components/MainComponents/ReduxWrapper.d.ts.map +1 -1
  498. package/lib/typescript/components/MainComponents/RoomList.d.ts.map +1 -1
  499. package/lib/typescript/components/Menu/HeaderRoomListMenu.d.ts.map +1 -1
  500. package/lib/typescript/components/MessageBubble/BubbleHighlight.d.ts +12 -0
  501. package/lib/typescript/components/MessageBubble/BubbleHighlight.d.ts.map +1 -0
  502. package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
  503. package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts +5 -0
  504. package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts.map +1 -1
  505. package/lib/typescript/components/MessageBubble/messageMenuLayout.d.ts +29 -0
  506. package/lib/typescript/components/MessageBubble/messageMenuLayout.d.ts.map +1 -0
  507. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts +2 -0
  508. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
  509. package/lib/typescript/components/Modals/MessageSearchModal/MessageHitResults.d.ts +44 -0
  510. package/lib/typescript/components/Modals/MessageSearchModal/MessageHitResults.d.ts.map +1 -0
  511. package/lib/typescript/components/Modals/MessageSearchModal/MessageSearchModal.d.ts +12 -0
  512. package/lib/typescript/components/Modals/MessageSearchModal/MessageSearchModal.d.ts.map +1 -0
  513. package/lib/typescript/components/Modals/MessageSearchModal/openHit.d.ts +15 -0
  514. package/lib/typescript/components/Modals/MessageSearchModal/openHit.d.ts.map +1 -0
  515. package/lib/typescript/components/Modals/MessageSearchModal/resolveSender.d.ts +34 -0
  516. package/lib/typescript/components/Modals/MessageSearchModal/resolveSender.d.ts.map +1 -0
  517. package/lib/typescript/components/Modals/MessageSearchModal/searchFilters.d.ts +41 -0
  518. package/lib/typescript/components/Modals/MessageSearchModal/searchFilters.d.ts.map +1 -0
  519. package/lib/typescript/components/Modals/MessageSearchModal/snippet.d.ts +15 -0
  520. package/lib/typescript/components/Modals/MessageSearchModal/snippet.d.ts.map +1 -0
  521. package/lib/typescript/components/Modals/MessageSearchModal/useMessageSearch.d.ts +23 -0
  522. package/lib/typescript/components/Modals/MessageSearchModal/useMessageSearch.d.ts.map +1 -0
  523. package/lib/typescript/components/Modals/PublicChatsModal/PublicChatsModal.d.ts +16 -0
  524. package/lib/typescript/components/Modals/PublicChatsModal/PublicChatsModal.d.ts.map +1 -0
  525. package/lib/typescript/components/Modals/PublicChatsModal/publicChatsLogic.d.ts +14 -0
  526. package/lib/typescript/components/Modals/PublicChatsModal/publicChatsLogic.d.ts.map +1 -0
  527. package/lib/typescript/components/Modals/SelectUsersModal/SelectUsersModal.d.ts.map +1 -1
  528. package/lib/typescript/components/Modals/SettingsModals/BlockedUsers/BlockedUsersModal.d.ts.map +1 -1
  529. package/lib/typescript/components/Modals/SettingsModals/DocumentShares/DocumentSharesModal.d.ts.map +1 -1
  530. package/lib/typescript/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.d.ts.map +1 -1
  531. package/lib/typescript/components/Modals/SettingsModals/ProfileShares/ProfileShares.d.ts.map +1 -1
  532. package/lib/typescript/components/Modals/SettingsModals/Referrals/Referrals.d.ts.map +1 -1
  533. package/lib/typescript/components/Modals/SettingsModals/SharedStyledComponents.d.ts +1 -0
  534. package/lib/typescript/components/Modals/SettingsModals/SharedStyledComponents.d.ts.map +1 -1
  535. package/lib/typescript/components/Modals/SettingsModals/Visibility/VisibilityModal.d.ts.map +1 -1
  536. package/lib/typescript/components/Modals/UserSettingsModal/UserSettingsModal.d.ts.map +1 -1
  537. package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts.map +1 -1
  538. package/lib/typescript/components/RoomComponents/SwipeableRoomRow.d.ts +5 -1
  539. package/lib/typescript/components/RoomComponents/SwipeableRoomRow.d.ts.map +1 -1
  540. package/lib/typescript/components/Thread/ThreadHeader.d.ts.map +1 -1
  541. package/lib/typescript/components/Thread/ThreadWrapper.d.ts +1 -0
  542. package/lib/typescript/components/Thread/ThreadWrapper.d.ts.map +1 -1
  543. package/lib/typescript/components/styled/AudioDecoderHost.d.ts +39 -0
  544. package/lib/typescript/components/styled/AudioDecoderHost.d.ts.map +1 -0
  545. package/lib/typescript/components/styled/AudioMessage.d.ts +14 -1
  546. package/lib/typescript/components/styled/AudioMessage.d.ts.map +1 -1
  547. package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
  548. package/lib/typescript/context/MessageNotificationContext.d.ts.map +1 -1
  549. package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
  550. package/lib/typescript/helpers/audioWaveform.d.ts +54 -0
  551. package/lib/typescript/helpers/audioWaveform.d.ts.map +1 -0
  552. package/lib/typescript/helpers/backgroundJoinSweep.d.ts +14 -0
  553. package/lib/typescript/helpers/backgroundJoinSweep.d.ts.map +1 -0
  554. package/lib/typescript/helpers/bubbleHighlight.d.ts +17 -0
  555. package/lib/typescript/helpers/bubbleHighlight.d.ts.map +1 -0
  556. package/lib/typescript/helpers/checkUniqueUsers.d.ts +2 -2
  557. package/lib/typescript/helpers/checkUniqueUsers.d.ts.map +1 -1
  558. package/lib/typescript/helpers/constants/MODAL_COMPONENTS.d.ts.map +1 -1
  559. package/lib/typescript/helpers/constants/MODAL_TYPES.d.ts +2 -0
  560. package/lib/typescript/helpers/constants/MODAL_TYPES.d.ts.map +1 -1
  561. package/lib/typescript/helpers/createRoomFromApi.d.ts +25 -0
  562. package/lib/typescript/helpers/createRoomFromApi.d.ts.map +1 -1
  563. package/lib/typescript/helpers/dedupeMembers.d.ts +11 -0
  564. package/lib/typescript/helpers/dedupeMembers.d.ts.map +1 -0
  565. package/lib/typescript/helpers/ethoraLogger.d.ts +13 -0
  566. package/lib/typescript/helpers/ethoraLogger.d.ts.map +1 -0
  567. package/lib/typescript/helpers/getUnnamedUsers.d.ts.map +1 -1
  568. package/lib/typescript/helpers/historyPreloadConfig.d.ts +26 -0
  569. package/lib/typescript/helpers/historyPreloadConfig.d.ts.map +1 -0
  570. package/lib/typescript/helpers/historyPreloadScheduler.d.ts +8 -4
  571. package/lib/typescript/helpers/historyPreloadScheduler.d.ts.map +1 -1
  572. package/lib/typescript/helpers/initRoomsPresence.d.ts +7 -0
  573. package/lib/typescript/helpers/initRoomsPresence.d.ts.map +1 -1
  574. package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts.map +1 -1
  575. package/lib/typescript/helpers/isLikelyMucJid.d.ts +19 -0
  576. package/lib/typescript/helpers/isLikelyMucJid.d.ts.map +1 -0
  577. package/lib/typescript/helpers/isMessageSearchEnabled.d.ts +12 -0
  578. package/lib/typescript/helpers/isMessageSearchEnabled.d.ts.map +1 -0
  579. package/lib/typescript/helpers/joiningRoom.d.ts +7 -0
  580. package/lib/typescript/helpers/joiningRoom.d.ts.map +1 -0
  581. package/lib/typescript/helpers/jumpThread.d.ts +48 -0
  582. package/lib/typescript/helpers/jumpThread.d.ts.map +1 -0
  583. package/lib/typescript/helpers/jumpToMessage.d.ts +26 -0
  584. package/lib/typescript/helpers/jumpToMessage.d.ts.map +1 -0
  585. package/lib/typescript/helpers/jumpWindow.d.ts +74 -0
  586. package/lib/typescript/helpers/jumpWindow.d.ts.map +1 -0
  587. package/lib/typescript/helpers/loadRoomHistory.d.ts +34 -0
  588. package/lib/typescript/helpers/loadRoomHistory.d.ts.map +1 -0
  589. package/lib/typescript/helpers/notificationPolicy.d.ts +42 -0
  590. package/lib/typescript/helpers/notificationPolicy.d.ts.map +1 -0
  591. package/lib/typescript/helpers/openRoomAtMessage.d.ts +17 -0
  592. package/lib/typescript/helpers/openRoomAtMessage.d.ts.map +1 -0
  593. package/lib/typescript/helpers/openThreadForJump.d.ts +27 -0
  594. package/lib/typescript/helpers/openThreadForJump.d.ts.map +1 -0
  595. package/lib/typescript/helpers/parseMessageReference.d.ts +18 -5
  596. package/lib/typescript/helpers/parseMessageReference.d.ts.map +1 -1
  597. package/lib/typescript/helpers/publicChatsEntry.d.ts +11 -0
  598. package/lib/typescript/helpers/publicChatsEntry.d.ts.map +1 -0
  599. package/lib/typescript/helpers/roomActivityScore.d.ts +5 -0
  600. package/lib/typescript/helpers/roomActivityScore.d.ts.map +1 -0
  601. package/lib/typescript/helpers/roomUserCount.d.ts +20 -0
  602. package/lib/typescript/helpers/roomUserCount.d.ts.map +1 -0
  603. package/lib/typescript/helpers/runConfiguredHistoryPreload.d.ts +21 -0
  604. package/lib/typescript/helpers/runConfiguredHistoryPreload.d.ts.map +1 -0
  605. package/lib/typescript/helpers/sessionAppId.d.ts +8 -0
  606. package/lib/typescript/helpers/sessionAppId.d.ts.map +1 -0
  607. package/lib/typescript/helpers/timestamp.d.ts +3 -0
  608. package/lib/typescript/helpers/timestamp.d.ts.map +1 -0
  609. package/lib/typescript/helpers/userResolver.d.ts +58 -0
  610. package/lib/typescript/helpers/userResolver.d.ts.map +1 -0
  611. package/lib/typescript/helpers/xmppIdShape.d.ts +10 -0
  612. package/lib/typescript/helpers/xmppIdShape.d.ts.map +1 -0
  613. package/lib/typescript/hooks/useChatWrapperInit.d.ts +2 -0
  614. package/lib/typescript/hooks/useChatWrapperInit.d.ts.map +1 -1
  615. package/lib/typescript/hooks/useHeapSender.d.ts.map +1 -1
  616. package/lib/typescript/hooks/useJumpToMessage.d.ts +116 -0
  617. package/lib/typescript/hooks/useJumpToMessage.d.ts.map +1 -0
  618. package/lib/typescript/hooks/useMessageLoaderQueue.d.ts.map +1 -1
  619. package/lib/typescript/hooks/useMessageQueue.d.ts.map +1 -1
  620. package/lib/typescript/hooks/useRoomDirectory.d.ts +12 -0
  621. package/lib/typescript/hooks/useRoomDirectory.d.ts.map +1 -0
  622. package/lib/typescript/hooks/useRoomInitialization.d.ts.map +1 -1
  623. package/lib/typescript/hooks/useRoomMute.d.ts +8 -0
  624. package/lib/typescript/hooks/useRoomMute.d.ts.map +1 -0
  625. package/lib/typescript/hooks/useRoomState.d.ts +1 -0
  626. package/lib/typescript/hooks/useRoomState.d.ts.map +1 -1
  627. package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
  628. package/lib/typescript/i18n/strings.d.ts.map +1 -1
  629. package/lib/typescript/networking/api-requests/messageSearch.api.d.ts +57 -0
  630. package/lib/typescript/networking/api-requests/messageSearch.api.d.ts.map +1 -0
  631. package/lib/typescript/networking/api-requests/publicChats.api.d.ts +24 -0
  632. package/lib/typescript/networking/api-requests/publicChats.api.d.ts.map +1 -0
  633. package/lib/typescript/networking/api-requests/roomMembers.api.d.ts +19 -1
  634. package/lib/typescript/networking/api-requests/roomMembers.api.d.ts.map +1 -1
  635. package/lib/typescript/networking/api-requests/rooms.api.d.ts.map +1 -1
  636. package/lib/typescript/networking/api-requests/user.api.d.ts +8 -0
  637. package/lib/typescript/networking/api-requests/user.api.d.ts.map +1 -1
  638. package/lib/typescript/networking/api-requests/xmppToken.api.d.ts +2 -0
  639. package/lib/typescript/networking/api-requests/xmppToken.api.d.ts.map +1 -0
  640. package/lib/typescript/networking/ethoraEvents.d.ts +45 -0
  641. package/lib/typescript/networking/ethoraEvents.d.ts.map +1 -0
  642. package/lib/typescript/networking/stanzaHandlers.d.ts +1 -1
  643. package/lib/typescript/networking/stanzaHandlers.d.ts.map +1 -1
  644. package/lib/typescript/networking/xmpp/allRoomPresences.xmpp.d.ts +32 -1
  645. package/lib/typescript/networking/xmpp/allRoomPresences.xmpp.d.ts.map +1 -1
  646. package/lib/typescript/networking/xmpp/getHistory.xmpp.d.ts +64 -0
  647. package/lib/typescript/networking/xmpp/getHistory.xmpp.d.ts.map +1 -1
  648. package/lib/typescript/networking/xmpp/handleStanzas.xmpp.d.ts.map +1 -1
  649. package/lib/typescript/networking/xmpp/historyCursor.d.ts +35 -0
  650. package/lib/typescript/networking/xmpp/historyCursor.d.ts.map +1 -0
  651. package/lib/typescript/networking/xmpp/mamQueryIds.d.ts +10 -0
  652. package/lib/typescript/networking/xmpp/mamQueryIds.d.ts.map +1 -0
  653. package/lib/typescript/networking/xmpp/mamRouter.d.ts +7 -0
  654. package/lib/typescript/networking/xmpp/mamRouter.d.ts.map +1 -1
  655. package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts +13 -2
  656. package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts.map +1 -1
  657. package/lib/typescript/networking/xmpp/roomJoinSweep.d.ts +82 -0
  658. package/lib/typescript/networking/xmpp/roomJoinSweep.d.ts.map +1 -0
  659. package/lib/typescript/networking/xmpp/sendMediaMessage.xmpp.d.ts.map +1 -1
  660. package/lib/typescript/networking/xmpp/sendTextMessage.xmpp.d.ts.map +1 -1
  661. package/lib/typescript/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.d.ts.map +1 -1
  662. package/lib/typescript/networking/xmppClient.d.ts +90 -4
  663. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  664. package/lib/typescript/networking/xmppCredentials.d.ts +12 -0
  665. package/lib/typescript/networking/xmppCredentials.d.ts.map +1 -0
  666. package/lib/typescript/roomStore/Middleware/jumpThreadMiddleware.d.ts +3 -0
  667. package/lib/typescript/roomStore/Middleware/jumpThreadMiddleware.d.ts.map +1 -0
  668. package/lib/typescript/roomStore/Middleware/reactionsMiddleware.d.ts.map +1 -1
  669. package/lib/typescript/roomStore/Middleware/unreadMidlleware.d.ts.map +1 -1
  670. package/lib/typescript/roomStore/chatSettingsSlice.d.ts +8 -1
  671. package/lib/typescript/roomStore/chatSettingsSlice.d.ts.map +1 -1
  672. package/lib/typescript/roomStore/index.d.ts +2 -1
  673. package/lib/typescript/roomStore/index.d.ts.map +1 -1
  674. package/lib/typescript/roomStore/persistence.d.ts +8 -0
  675. package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
  676. package/lib/typescript/roomStore/roomsSlice.d.ts +138 -2
  677. package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
  678. package/lib/typescript/roomStore/safeKey.d.ts +13 -0
  679. package/lib/typescript/roomStore/safeKey.d.ts.map +1 -0
  680. package/lib/typescript/roomStore/usersSetCap.d.ts +16 -0
  681. package/lib/typescript/roomStore/usersSetCap.d.ts.map +1 -0
  682. package/lib/typescript/types/models/media.model.d.ts +2 -0
  683. package/lib/typescript/types/models/media.model.d.ts.map +1 -1
  684. package/lib/typescript/types/models/room.model.d.ts +18 -5
  685. package/lib/typescript/types/models/room.model.d.ts.map +1 -1
  686. package/lib/typescript/types/models/xmpp.model.d.ts +8 -1
  687. package/lib/typescript/types/models/xmpp.model.d.ts.map +1 -1
  688. package/lib/typescript/types/types.d.ts +88 -5
  689. package/lib/typescript/types/types.d.ts.map +1 -1
  690. package/lib/typescript/version.d.ts +1 -1
  691. package/lib/typescript/version.d.ts.map +1 -1
  692. package/package.json +1 -1
  693. package/src/assets/icons.tsx +13 -0
  694. package/src/components/Header/HeaderRoomList.tsx +21 -4
  695. package/src/components/InputComponents/Search.tsx +33 -0
  696. package/src/components/MainComponents/ArchivedMessageCard.tsx +139 -0
  697. package/src/components/MainComponents/ChatHeader.tsx +19 -3
  698. package/src/components/MainComponents/ChatRoom.tsx +60 -23
  699. package/src/components/MainComponents/ChatWrapper.tsx +23 -4
  700. package/src/components/MainComponents/MediaMessage.tsx +17 -0
  701. package/src/components/MainComponents/MessageList.tsx +823 -84
  702. package/src/components/MainComponents/MessageSearchButton.tsx +48 -0
  703. package/src/components/MainComponents/ReduxWrapper.tsx +16 -5
  704. package/src/components/MainComponents/RoomList.tsx +125 -0
  705. package/src/components/Menu/HeaderRoomListMenu.tsx +26 -2
  706. package/src/components/MessageBubble/BubbleHighlight.tsx +106 -0
  707. package/src/components/MessageBubble/Message.tsx +265 -177
  708. package/src/components/MessageBubble/MessageInteractions.tsx +109 -86
  709. package/src/components/MessageBubble/messageMenuLayout.ts +59 -0
  710. package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +92 -21
  711. package/src/components/Modals/MessageSearchModal/MessageHitResults.tsx +271 -0
  712. package/src/components/Modals/MessageSearchModal/MessageSearchModal.tsx +487 -0
  713. package/src/components/Modals/MessageSearchModal/openHit.ts +50 -0
  714. package/src/components/Modals/MessageSearchModal/resolveSender.ts +57 -0
  715. package/src/components/Modals/MessageSearchModal/searchFilters.ts +109 -0
  716. package/src/components/Modals/MessageSearchModal/snippet.ts +58 -0
  717. package/src/components/Modals/MessageSearchModal/useMessageSearch.ts +151 -0
  718. package/src/components/Modals/PublicChatsModal/PublicChatsModal.tsx +288 -0
  719. package/src/components/Modals/PublicChatsModal/publicChatsLogic.ts +36 -0
  720. package/src/components/Modals/SelectUsersModal/SelectUsersModal.tsx +8 -1
  721. package/src/components/Modals/SettingsModals/BlockedUsers/BlockedUsersModal.tsx +20 -17
  722. package/src/components/Modals/SettingsModals/DocumentShares/DocumentSharesModal.tsx +58 -55
  723. package/src/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.tsx +156 -62
  724. package/src/components/Modals/SettingsModals/ProfileShares/ProfileShares.tsx +22 -19
  725. package/src/components/Modals/SettingsModals/Referrals/Referrals.tsx +48 -45
  726. package/src/components/Modals/SettingsModals/SharedStyledComponents.ts +11 -0
  727. package/src/components/Modals/SettingsModals/Visibility/VisibilityModal.tsx +63 -60
  728. package/src/components/Modals/UserSettingsModal/UserSettingsModal.tsx +11 -3
  729. package/src/components/RoomComponents/ChatRoomItem.tsx +16 -3
  730. package/src/components/RoomComponents/SwipeableRoomRow.tsx +39 -6
  731. package/src/components/Thread/ThreadHeader.tsx +3 -1
  732. package/src/components/Thread/ThreadWrapper.tsx +96 -10
  733. package/src/components/styled/AudioDecoderHost.tsx +351 -0
  734. package/src/components/styled/AudioMessage.tsx +482 -425
  735. package/src/components/styled/SendInput.tsx +42 -4
  736. package/src/context/MessageNotificationContext.tsx +19 -5
  737. package/src/context/xmppProvider.tsx +44 -91
  738. package/src/helpers/audioWaveform.ts +142 -0
  739. package/src/helpers/backgroundJoinSweep.ts +35 -0
  740. package/src/helpers/bubbleHighlight.ts +47 -0
  741. package/src/helpers/checkUniqueUsers.tsx +15 -17
  742. package/src/helpers/constants/MODAL_COMPONENTS.tsx +4 -0
  743. package/src/helpers/constants/MODAL_TYPES.ts +3 -0
  744. package/src/helpers/createRoomFromApi.tsx +45 -4
  745. package/src/helpers/dedupeMembers.ts +29 -0
  746. package/src/helpers/ethoraLogger.ts +50 -0
  747. package/src/helpers/getUnnamedUsers.ts +7 -4
  748. package/src/helpers/historyPreloadConfig.ts +68 -0
  749. package/src/helpers/historyPreloadScheduler.ts +437 -199
  750. package/src/helpers/initRoomsPresence.ts +20 -7
  751. package/src/helpers/insertMessageWithDelimiter.ts +3 -0
  752. package/src/helpers/isLikelyMucJid.ts +72 -0
  753. package/src/helpers/isMessageSearchEnabled.ts +18 -0
  754. package/src/helpers/joiningRoom.ts +13 -0
  755. package/src/helpers/jumpThread.ts +102 -0
  756. package/src/helpers/jumpToMessage.ts +57 -0
  757. package/src/helpers/jumpWindow.ts +212 -0
  758. package/src/helpers/loadRoomHistory.ts +83 -0
  759. package/src/helpers/notificationPolicy.ts +82 -0
  760. package/src/helpers/openRoomAtMessage.ts +38 -0
  761. package/src/helpers/openThreadForJump.ts +96 -0
  762. package/src/helpers/parseMessageReference.ts +37 -8
  763. package/src/helpers/publicChatsEntry.ts +15 -0
  764. package/src/helpers/roomActivityScore.ts +45 -0
  765. package/src/helpers/roomUserCount.ts +44 -0
  766. package/src/helpers/runConfiguredHistoryPreload.ts +76 -0
  767. package/src/helpers/sessionAppId.ts +17 -0
  768. package/src/helpers/timestamp.ts +44 -0
  769. package/src/helpers/userResolver.ts +542 -0
  770. package/src/helpers/xmppIdShape.ts +46 -0
  771. package/src/hooks/useChatWrapperInit.ts +22 -4
  772. package/src/hooks/useHeapSender.tsx +54 -3
  773. package/src/hooks/useJumpToMessage.ts +538 -0
  774. package/src/hooks/useMessageLoaderQueue.tsx +40 -4
  775. package/src/hooks/useMessageQueue.ts +9 -5
  776. package/src/hooks/useRoomDirectory.ts +39 -0
  777. package/src/hooks/useRoomInitialization.tsx +33 -7
  778. package/src/hooks/useRoomMute.ts +42 -0
  779. package/src/hooks/useRoomState.tsx +6 -0
  780. package/src/hooks/useSendMessage.tsx +14 -2
  781. package/src/i18n/strings.ts +306 -0
  782. package/src/networking/api-requests/messageSearch.api.ts +130 -0
  783. package/src/networking/api-requests/publicChats.api.ts +71 -0
  784. package/src/networking/api-requests/roomMembers.api.ts +263 -11
  785. package/src/networking/api-requests/rooms.api.ts +52 -12
  786. package/src/networking/api-requests/user.api.ts +28 -2
  787. package/src/networking/api-requests/xmppToken.api.ts +62 -0
  788. package/src/networking/ethoraEvents.ts +262 -0
  789. package/src/networking/stanzaHandlers.ts +145 -19
  790. package/src/networking/xmpp/allRoomPresences.xmpp.ts +155 -5
  791. package/src/networking/xmpp/getHistory.xmpp.ts +433 -47
  792. package/src/networking/xmpp/handleStanzas.xmpp.ts +8 -0
  793. package/src/networking/xmpp/historyCursor.ts +124 -0
  794. package/src/networking/xmpp/mamQueryIds.ts +11 -0
  795. package/src/networking/xmpp/mamRouter.ts +24 -10
  796. package/src/networking/xmpp/presenceInRoom.xmpp.ts +91 -68
  797. package/src/networking/xmpp/roomJoinSweep.ts +412 -0
  798. package/src/networking/xmpp/sendMediaMessage.xmpp.ts +0 -1
  799. package/src/networking/xmpp/sendTextMessage.xmpp.ts +0 -1
  800. package/src/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.ts +0 -1
  801. package/src/networking/xmppClient.ts +323 -47
  802. package/src/networking/xmppCredentials.ts +87 -0
  803. package/src/roomStore/Middleware/jumpThreadMiddleware.ts +163 -0
  804. package/src/roomStore/Middleware/reactionsMiddleware.tsx +4 -0
  805. package/src/roomStore/Middleware/unreadMidlleware.tsx +59 -11
  806. package/src/roomStore/chatSettingsSlice.ts +17 -0
  807. package/src/roomStore/index.ts +10 -3
  808. package/src/roomStore/persistence.ts +54 -0
  809. package/src/roomStore/roomsSlice.ts +547 -65
  810. package/src/roomStore/safeKey.ts +49 -0
  811. package/src/roomStore/usersSetCap.ts +37 -0
  812. package/src/types/models/media.model.ts +4 -0
  813. package/src/types/models/room.model.ts +18 -5
  814. package/src/types/models/xmpp.model.ts +15 -1
  815. package/src/types/types.ts +93 -5
  816. package/src/version.ts +1 -1
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.fetchFreshXmppPassword = fetchFreshXmppPassword;
7
+ var _apiClient = _interopRequireDefault(require("../apiClient"));
8
+ var _roomStore = require("../../roomStore");
9
+ var _chatSettingsSlice = require("../../roomStore/chatSettingsSlice");
10
+ var _secureUserStorage = require("../../helpers/secureUserStorage");
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ /**
13
+ * POST /v1/users/xmpp-token: a fresh short-lived XMPP credential for the
14
+ * logged-in user. It is the same value login and `users/me` put in
15
+ * `user.xmppPassword` (the SASL password, a JWT), minted on demand, and the
16
+ * endpoint exists for exactly one caller: a client reconnecting after the
17
+ * credential it connected with has expired.
18
+ *
19
+ * Single-flight: several reconnect paths (error handler, watchdog, app
20
+ * foregrounding) can ask at once and they should share one request.
21
+ * Never throws: the caller falls back to whatever it had.
22
+ */
23
+ let inFlight = null;
24
+ function fetchFreshXmppPassword() {
25
+ if (inFlight) {
26
+ return inFlight;
27
+ }
28
+ const request = (async () => {
29
+ try {
30
+ const token = _roomStore.store.getState().chatSettingStore.user?.token || '';
31
+ if (!token) {
32
+ return null;
33
+ }
34
+ const response = await _apiClient.default.post('/v1/users/xmpp-token', {}, {
35
+ headers: {
36
+ Authorization: token
37
+ }
38
+ });
39
+ const fresh = response?.data?.xmppPassword;
40
+ if (!fresh) {
41
+ return null;
42
+ }
43
+
44
+ // Keep the store and the persisted session in step, so the next
45
+ // reader (a full reconnect, a cold start) begins from the working
46
+ // credential instead of the expired one. The reducer does not
47
+ // persist (see refreshTokens); the awaited write here does.
48
+ _roomStore.store.dispatch((0, _chatSettingsSlice.setXmppPassword)(fresh));
49
+ try {
50
+ await (0, _secureUserStorage.secureUserStorage)().set(_roomStore.store.getState().chatSettingStore.user);
51
+ } catch {
52
+ // A failed write must not discard a credential that works now.
53
+ }
54
+ return fresh;
55
+ } catch {
56
+ return null;
57
+ }
58
+ })();
59
+
60
+ // Cleared from OUTSIDE the async body: a `finally` inside it would run
61
+ // synchronously on an early return, before `inFlight` is assigned, and
62
+ // leave a settled promise cached forever.
63
+ const tracked = request.finally(() => {
64
+ if (inFlight === tracked) {
65
+ inFlight = null;
66
+ }
67
+ });
68
+ inFlight = tracked;
69
+ return tracked;
70
+ }
71
+ //# sourceMappingURL=xmppToken.api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_apiClient","_interopRequireDefault","require","_roomStore","_chatSettingsSlice","_secureUserStorage","e","__esModule","default","inFlight","fetchFreshXmppPassword","request","token","store","getState","chatSettingStore","user","response","http","post","headers","Authorization","fresh","data","xmppPassword","dispatch","setXmppPassword","secureUserStorage","set","tracked","finally"],"sourceRoot":"../../../../src","sources":["networking/api-requests/xmppToken.api.ts"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,kBAAA,GAAAF,OAAA;AACA,IAAAG,kBAAA,GAAAH,OAAA;AAAoE,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIG,QAAuC,GAAG,IAAI;AAE3C,SAASC,sBAAsBA,CAAA,EAA2B;EAC/D,IAAID,QAAQ,EAAE;IAAC,OAAOA,QAAQ;EAAC;EAE/B,MAAME,OAAO,GAAG,CAAC,YAAY;IAC3B,IAAI;MACF,MAAMC,KAAK,GAAGC,gBAAK,CAACC,QAAQ,CAAC,CAAC,CAACC,gBAAgB,CAACC,IAAI,EAAEJ,KAAK,IAAI,EAAE;MACjE,IAAI,CAACA,KAAK,EAAE;QAAC,OAAO,IAAI;MAAC;MAEzB,MAAMK,QAAQ,GAAG,MAAMC,kBAAI,CAACC,IAAI,CAG7B,sBAAsB,EAAE,CAAC,CAAC,EAAE;QAAEC,OAAO,EAAE;UAAEC,aAAa,EAAET;QAAM;MAAE,CAAC,CAAC;MAErE,MAAMU,KAAK,GAAGL,QAAQ,EAAEM,IAAI,EAAEC,YAAY;MAC1C,IAAI,CAACF,KAAK,EAAE;QAAC,OAAO,IAAI;MAAC;;MAEzB;MACA;MACA;MACA;MACAT,gBAAK,CAACY,QAAQ,CAAC,IAAAC,kCAAe,EAACJ,KAAK,CAAC,CAAC;MACtC,IAAI;QACF,MAAM,IAAAK,oCAAiB,EAAC,CAAC,CAACC,GAAG,CAC3Bf,gBAAK,CAACC,QAAQ,CAAC,CAAC,CAACC,gBAAgB,CAACC,IACpC,CAAC;MACH,CAAC,CAAC,MAAM;QACN;MAAA;MAEF,OAAOM,KAAK;IACd,CAAC,CAAC,MAAM;MACN,OAAO,IAAI;IACb;EACF,CAAC,EAAE,CAAC;;EAEJ;EACA;EACA;EACA,MAAMO,OAA+B,GAAGlB,OAAO,CAACmB,OAAO,CAAC,MAAM;IAC5D,IAAIrB,QAAQ,KAAKoB,OAAO,EAAE;MAACpB,QAAQ,GAAG,IAAI;IAAC;EAC7C,CAAC,CAAC;EACFA,QAAQ,GAAGoB,OAAO;EAClB,OAAOA,OAAO;AAChB","ignoreList":[]}
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isTrustedEventSender = exports.ETHORA_EVENT_XMLNS = exports.ETHORA_EVENT_USER_PROFILE = exports.ETHORA_EVENT_CHAT_META = void 0;
7
+ exports.onEthoraEvent = onEthoraEvent;
8
+ exports.resetEthoraEvents = resetEthoraEvents;
9
+ var _roomStore = require("../roomStore");
10
+ var _roomsSlice = require("../roomStore/roomsSlice");
11
+ var _safeKey = require("../roomStore/safeKey");
12
+ var _rooms = require("./api-requests/rooms.api");
13
+ var _createRoomFromApi = require("../helpers/createRoomFromApi");
14
+ var _roomUserCount = require("../helpers/roomUserCount");
15
+ var _userResolver = require("../helpers/userResolver");
16
+ var _ethoraLogger = require("../helpers/ethoraLogger");
17
+ var _sessionAppId = require("../helpers/sessionAppId");
18
+ /**
19
+ * Server push `<ethora-event xmlns="urn:ethora:events:1" .../>` inside a
20
+ * `type="headline"` message from the server's admin account:
21
+ *
22
+ * user-profile-updated xmppUsername="<appId>_<userId>" uuid appId
23
+ * chat-meta-updated chatName="<appId>_<roomId>" appId
24
+ *
25
+ * The payload is a pointer only. The client re-reads the user or the room
26
+ * through the normal API, so nothing in the stanza is ever shown or stored.
27
+ * Everything in the stanza is untrusted input until proven otherwise.
28
+ */
29
+ const ETHORA_EVENT_XMLNS = exports.ETHORA_EVENT_XMLNS = 'urn:ethora:events:1';
30
+ const ETHORA_EVENT_USER_PROFILE = exports.ETHORA_EVENT_USER_PROFILE = 'user-profile-updated';
31
+ const ETHORA_EVENT_CHAT_META = exports.ETHORA_EVENT_CHAT_META = 'chat-meta-updated';
32
+ const MUCSUB_EVENT_NS = 'http://jabber.org/protocol/pubsub#event';
33
+ const ROOM_DEBOUNCE_MS = 500;
34
+ const MAX_KEY_LENGTH = 128;
35
+ const KEY_SHAPE = /^[A-Za-z0-9_-]+$/;
36
+ const ROOM_BACKOFF_MS = [5_000, 30_000, 120_000];
37
+ const lower = v => String(v ?? '').trim().toLowerCase();
38
+
39
+ /** Server domain of this session: our own JID's domain, else the configured host. */
40
+ const sessionDomain = xmppWs => lower(xmppWs?.client?.jid?.getDomain?.()) || lower(xmppWs?.host);
41
+
42
+ /**
43
+ * True when a headline came from the server and not from a user or a room.
44
+ * - from must be a BARE jid (a user's c2s stanza or a MUC occupant always
45
+ * carries a resource, and the server stamps it, so it cannot be spoofed)
46
+ * - its domain must be the session's own XMPP domain (not conference.*, not
47
+ * another server)
48
+ * - when config.trustedEventSenders is set, the sender must be listed
49
+ * The server's admin local part is deployment config (XMPP_ADMIN), so it
50
+ * cannot be hard-coded here.
51
+ */
52
+ const isTrustedEventSender = (stanza, xmppWs) => {
53
+ const from = String(stanza?.attrs?.from ?? '').trim();
54
+ if (!from || from.includes('/')) return false;
55
+ const at = from.indexOf('@');
56
+ if (at <= 0 || from.indexOf('@', at + 1) !== -1) return false;
57
+ const local = lower(from.slice(0, at));
58
+ const domain = lower(from.slice(at + 1));
59
+ if (!local || !domain) return false;
60
+ const own = sessionDomain(xmppWs);
61
+ if (!own || domain !== own) return false;
62
+ const pinned = _roomStore.store.getState().chatSettingStore?.config?.trustedEventSenders;
63
+ if (Array.isArray(pinned) && pinned.length) {
64
+ return pinned.some(entry => {
65
+ const e = lower(entry);
66
+ return e === `${local}@${domain}` || e === local;
67
+ });
68
+ }
69
+ return true;
70
+ };
71
+ exports.isTrustedEventSender = isTrustedEventSender;
72
+ const sessionAppId = () => (0, _sessionAppId.getSessionAppId)();
73
+
74
+ /**
75
+ * `<appId>_<id>` shape for an attribute that is about to become a URL
76
+ * segment or a store key: charset, length cap, no unsafe key, and the
77
+ * session's appId as prefix when the session has one.
78
+ */
79
+ const isSafeEventKey = value => {
80
+ if (!(0, _safeKey.isSafeKey)(value)) return false;
81
+ if (value.length > MAX_KEY_LENGTH || !KEY_SHAPE.test(value)) return false;
82
+ if (!value.includes('_')) return false;
83
+ if (!(0, _safeKey.hasSafeIdSegments)(value)) return false;
84
+ const appId = sessionAppId();
85
+ if (appId && !value.startsWith(`${appId}_`)) return false;
86
+ return true;
87
+ };
88
+
89
+ // --- chat-meta-updated -----------------------------------------------------
90
+
91
+ const roomTimers = new Map();
92
+ const roomInflight = new Set();
93
+ const roomAgain = new Set();
94
+ const roomFailures = new Map();
95
+ const findRoomJid = chatName => {
96
+ const rooms = _roomStore.store.getState().rooms?.rooms || {};
97
+ for (const jid of Object.keys(rooms)) {
98
+ if (jid.split('@')[0] === chatName) return jid;
99
+ }
100
+ return null;
101
+ };
102
+ const runRoomRefresh = async chatName => {
103
+ if (roomInflight.has(chatName)) {
104
+ roomAgain.add(chatName);
105
+ return;
106
+ }
107
+ const failure = roomFailures.get(chatName);
108
+ if (failure && failure.until > Date.now()) return;
109
+ const jid = findRoomJid(chatName);
110
+ if (!jid || !_roomStore.store.getState().chatSettingStore?.user?.token) return;
111
+ roomInflight.add(chatName);
112
+ try {
113
+ const apiRoom = await (0, _rooms.getRoomByName)(chatName);
114
+ roomFailures.delete(chatName);
115
+ const current = (_roomStore.store.getState().rooms?.rooms || {})[jid];
116
+ if (!current || !apiRoom) return;
117
+ const service = jid.split('@')[1] || '';
118
+ // createRoomFromApi applies the title rules (private chats derive the
119
+ // peer name, sentinel titles are refused) and the usersCnt rules
120
+ const fresh = (0, _createRoomFromApi.createRoomFromApi)({
121
+ ...apiRoom,
122
+ name: chatName
123
+ }, service, (0, _roomUserCount.getRoomUserCount)(current));
124
+ if (!fresh) return;
125
+
126
+ // Metadata only. members, messages, lastMessage and the unread fields
127
+ // stay as they are: the response carries the whole member list (a big
128
+ // room is tens of KB) and the loaded one may be a different, larger set.
129
+ const updates = {
130
+ title: fresh.title,
131
+ name: fresh.name,
132
+ description: fresh.description,
133
+ icon: fresh.icon,
134
+ // the API calls the room image `picture`; RN renders it from `icon`
135
+ picture: fresh.picture,
136
+ // never lower the known total
137
+ usersCnt: Math.max(Number(fresh.usersCnt) || 0, (0, _roomUserCount.getRoomUserCount)(current))
138
+ };
139
+ if (apiRoom.type === 'public' || apiRoom.type === 'group' || apiRoom.type === 'private') {
140
+ updates.type = apiRoom.type;
141
+ }
142
+ // A missing field in the answer must not blank the one we have
143
+ Object.keys(updates).forEach(k => {
144
+ if (updates[k] === undefined) delete updates[k];
145
+ });
146
+ _roomStore.store.dispatch((0, _roomsSlice.updateRoom)({
147
+ jid,
148
+ updates
149
+ }));
150
+ } catch (error) {
151
+ const count = (roomFailures.get(chatName)?.count ?? 0) + 1;
152
+ roomFailures.set(chatName, {
153
+ count,
154
+ until: Date.now() + ROOM_BACKOFF_MS[Math.min(count - 1, ROOM_BACKOFF_MS.length - 1)]
155
+ });
156
+ _ethoraLogger.ethoraLogger.log('[EthoraEvent] room refresh failed', chatName, error);
157
+ } finally {
158
+ roomInflight.delete(chatName);
159
+ if (roomAgain.delete(chatName)) scheduleRoomRefresh(chatName);
160
+ }
161
+ };
162
+ const scheduleRoomRefresh = chatName => {
163
+ const prior = roomTimers.get(chatName);
164
+ if (prior) clearTimeout(prior);
165
+ roomTimers.set(chatName, setTimeout(() => {
166
+ roomTimers.delete(chatName);
167
+ runRoomRefresh(chatName);
168
+ }, ROOM_DEBOUNCE_MS));
169
+ };
170
+
171
+ // --- entry point ------------------------------------------------------------
172
+
173
+ const findCarrier = stanza => {
174
+ const candidates = [stanza];
175
+ const inner = stanza?.getChild?.('event', MUCSUB_EVENT_NS)?.getChild?.('items')?.getChild?.('item')?.getChild?.('message');
176
+ if (inner) candidates.push(inner);
177
+ return candidates.find(c => c?.attrs?.type === 'headline' && c.getChild?.('ethora-event', ETHORA_EVENT_XMLNS)) ?? null;
178
+ };
179
+
180
+ /**
181
+ * Handles `<ethora-event>` headlines. Returns true when the stanza carried
182
+ * one (trusted or not), so the caller can stop routing it. Unknown types,
183
+ * malformed attributes and untrusted senders are ignored silently. Never
184
+ * throws.
185
+ */
186
+ function onEthoraEvent(stanza, xmppWs) {
187
+ try {
188
+ const carrier = findCarrier(stanza);
189
+ if (!carrier) return false;
190
+ if (!isTrustedEventSender(carrier, xmppWs)) {
191
+ _ethoraLogger.ethoraLogger.log('[EthoraEvent] ignored: untrusted sender');
192
+ return true;
193
+ }
194
+ const event = carrier.getChild('ethora-event', ETHORA_EVENT_XMLNS);
195
+ const type = String(event?.attrs?.type ?? '');
196
+ const appIdAttr = event?.attrs?.appId;
197
+ const appId = sessionAppId();
198
+ if (appIdAttr !== undefined && appId && String(appIdAttr) !== appId) {
199
+ return true;
200
+ }
201
+ if (type === ETHORA_EVENT_USER_PROFILE) {
202
+ const id = event?.attrs?.xmppUsername;
203
+ if (isSafeEventKey(id)) (0, _userResolver.refreshUser)(id);
204
+ } else if (type === ETHORA_EVENT_CHAT_META) {
205
+ const chatName = event?.attrs?.chatName;
206
+ // a room we do not hold (a brand-new room we were just added to) is
207
+ // the invite/membership flow's job
208
+ if (isSafeEventKey(chatName) && findRoomJid(chatName)) {
209
+ scheduleRoomRefresh(chatName);
210
+ }
211
+ }
212
+ return true;
213
+ } catch (error) {
214
+ _ethoraLogger.ethoraLogger.log('[EthoraEvent] failed to handle event', error);
215
+ return true;
216
+ }
217
+ }
218
+
219
+ /** Drops timers and per-room state (tests, logout). */
220
+ function resetEthoraEvents() {
221
+ roomTimers.forEach(t => clearTimeout(t));
222
+ roomTimers.clear();
223
+ roomInflight.clear();
224
+ roomAgain.clear();
225
+ roomFailures.clear();
226
+ }
227
+ //# sourceMappingURL=ethoraEvents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_roomStore","require","_roomsSlice","_safeKey","_rooms","_createRoomFromApi","_roomUserCount","_userResolver","_ethoraLogger","_sessionAppId","ETHORA_EVENT_XMLNS","exports","ETHORA_EVENT_USER_PROFILE","ETHORA_EVENT_CHAT_META","MUCSUB_EVENT_NS","ROOM_DEBOUNCE_MS","MAX_KEY_LENGTH","KEY_SHAPE","ROOM_BACKOFF_MS","lower","v","String","trim","toLowerCase","sessionDomain","xmppWs","client","jid","getDomain","host","isTrustedEventSender","stanza","from","attrs","includes","at","indexOf","local","slice","domain","own","pinned","store","getState","chatSettingStore","config","trustedEventSenders","Array","isArray","length","some","entry","e","sessionAppId","getSessionAppId","isSafeEventKey","value","isSafeKey","test","hasSafeIdSegments","appId","startsWith","roomTimers","Map","roomInflight","Set","roomAgain","roomFailures","findRoomJid","chatName","rooms","Object","keys","split","runRoomRefresh","has","add","failure","get","until","Date","now","user","token","apiRoom","getRoomByName","delete","current","service","fresh","createRoomFromApi","name","getRoomUserCount","updates","title","description","icon","picture","usersCnt","Math","max","Number","type","forEach","k","undefined","dispatch","updateRoom","error","count","set","min","ethoraLogger","log","scheduleRoomRefresh","prior","clearTimeout","setTimeout","findCarrier","candidates","inner","getChild","push","find","c","onEthoraEvent","carrier","event","appIdAttr","id","xmppUsername","refreshUser","resetEthoraEvents","t","clear"],"sourceRoot":"../../../src","sources":["networking/ethoraEvents.ts"],"mappings":";;;;;;;;AACA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,kBAAA,GAAAJ,OAAA;AACA,IAAAK,cAAA,GAAAL,OAAA;AACA,IAAAM,aAAA,GAAAN,OAAA;AACA,IAAAO,aAAA,GAAAP,OAAA;AACA,IAAAQ,aAAA,GAAAR,OAAA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMS,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG,qBAAqB;AAChD,MAAME,yBAAyB,GAAAD,OAAA,CAAAC,yBAAA,GAAG,sBAAsB;AACxD,MAAMC,sBAAsB,GAAAF,OAAA,CAAAE,sBAAA,GAAG,mBAAmB;AAEzD,MAAMC,eAAe,GAAG,yCAAyC;AACjE,MAAMC,gBAAgB,GAAG,GAAG;AAC5B,MAAMC,cAAc,GAAG,GAAG;AAC1B,MAAMC,SAAS,GAAG,kBAAkB;AACpC,MAAMC,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC;AAIhD,MAAMC,KAAK,GAAIC,CAAU,IAAaC,MAAM,CAACD,CAAC,IAAI,EAAE,CAAC,CAACE,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;;AAE1E;AACA,MAAMC,aAAa,GAAIC,MAA4B,IACjDN,KAAK,CAACM,MAAM,EAAEC,MAAM,EAAEC,GAAG,EAAEC,SAAS,GAAG,CAAC,CAAC,IAAIT,KAAK,CAACM,MAAM,EAAEI,IAAI,CAAC;;AAElE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,oBAAoB,GAAGA,CAClCC,MAAe,EACfN,MAA4B,KAChB;EACZ,MAAMO,IAAI,GAAGX,MAAM,CAACU,MAAM,EAAEE,KAAK,EAAED,IAAI,IAAI,EAAE,CAAC,CAACV,IAAI,CAAC,CAAC;EACrD,IAAI,CAACU,IAAI,IAAIA,IAAI,CAACE,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK;EAC7C,MAAMC,EAAE,GAAGH,IAAI,CAACI,OAAO,CAAC,GAAG,CAAC;EAC5B,IAAID,EAAE,IAAI,CAAC,IAAIH,IAAI,CAACI,OAAO,CAAC,GAAG,EAAED,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,KAAK;EAC7D,MAAME,KAAK,GAAGlB,KAAK,CAACa,IAAI,CAACM,KAAK,CAAC,CAAC,EAAEH,EAAE,CAAC,CAAC;EACtC,MAAMI,MAAM,GAAGpB,KAAK,CAACa,IAAI,CAACM,KAAK,CAACH,EAAE,GAAG,CAAC,CAAC,CAAC;EACxC,IAAI,CAACE,KAAK,IAAI,CAACE,MAAM,EAAE,OAAO,KAAK;EACnC,MAAMC,GAAG,GAAGhB,aAAa,CAACC,MAAM,CAAC;EACjC,IAAI,CAACe,GAAG,IAAID,MAAM,KAAKC,GAAG,EAAE,OAAO,KAAK;EAExC,MAAMC,MAAM,GAAIC,gBAAK,CAACC,QAAQ,CAAC,CAAC,CAACC,gBAAgB,EAAEC,MAAM,EACrDC,mBAAmB;EACvB,IAAIC,KAAK,CAACC,OAAO,CAACP,MAAM,CAAC,IAAIA,MAAM,CAACQ,MAAM,EAAE;IAC1C,OAAOR,MAAM,CAACS,IAAI,CAAEC,KAAc,IAAK;MACrC,MAAMC,CAAC,GAAGjC,KAAK,CAACgC,KAAK,CAAC;MACtB,OAAOC,CAAC,KAAK,GAAGf,KAAK,IAAIE,MAAM,EAAE,IAAIa,CAAC,KAAKf,KAAK;IAClD,CAAC,CAAC;EACJ;EACA,OAAO,IAAI;AACb,CAAC;AAAC1B,OAAA,CAAAmB,oBAAA,GAAAA,oBAAA;AAEF,MAAMuB,YAAY,GAAGA,CAAA,KACnB,IAAAC,6BAAe,EAAC,CAAC;;AAEnB;AACA;AACA;AACA;AACA;AACA,MAAMC,cAAc,GAAIC,KAAc,IAAsB;EAC1D,IAAI,CAAC,IAAAC,kBAAS,EAACD,KAAK,CAAC,EAAE,OAAO,KAAK;EACnC,IAAIA,KAAK,CAACP,MAAM,GAAGjC,cAAc,IAAI,CAACC,SAAS,CAACyC,IAAI,CAACF,KAAK,CAAC,EAAE,OAAO,KAAK;EACzE,IAAI,CAACA,KAAK,CAACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK;EACtC,IAAI,CAAC,IAAAyB,0BAAiB,EAACH,KAAK,CAAC,EAAE,OAAO,KAAK;EAC3C,MAAMI,KAAK,GAAGP,YAAY,CAAC,CAAC;EAC5B,IAAIO,KAAK,IAAI,CAACJ,KAAK,CAACK,UAAU,CAAC,GAAGD,KAAK,GAAG,CAAC,EAAE,OAAO,KAAK;EACzD,OAAO,IAAI;AACb,CAAC;;AAED;;AAEA,MAAME,UAAU,GAAG,IAAIC,GAAG,CAAwC,CAAC;AACnE,MAAMC,YAAY,GAAG,IAAIC,GAAG,CAAS,CAAC;AACtC,MAAMC,SAAS,GAAG,IAAID,GAAG,CAAS,CAAC;AACnC,MAAME,YAAY,GAAG,IAAIJ,GAAG,CAA2C,CAAC;AAExE,MAAMK,WAAW,GAAIC,QAAgB,IAAoB;EACvD,MAAMC,KAAK,GAAI5B,gBAAK,CAACC,QAAQ,CAAC,CAAC,CAAC2B,KAAK,EAAEA,KAAK,IAAI,CAAC,CAA2B;EAC5E,KAAK,MAAM3C,GAAG,IAAI4C,MAAM,CAACC,IAAI,CAACF,KAAK,CAAC,EAAE;IACpC,IAAI3C,GAAG,CAAC8C,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAKJ,QAAQ,EAAE,OAAO1C,GAAG;EAChD;EACA,OAAO,IAAI;AACb,CAAC;AAED,MAAM+C,cAAc,GAAG,MAAOL,QAAgB,IAAoB;EAChE,IAAIL,YAAY,CAACW,GAAG,CAACN,QAAQ,CAAC,EAAE;IAC9BH,SAAS,CAACU,GAAG,CAACP,QAAQ,CAAC;IACvB;EACF;EACA,MAAMQ,OAAO,GAAGV,YAAY,CAACW,GAAG,CAACT,QAAQ,CAAC;EAC1C,IAAIQ,OAAO,IAAIA,OAAO,CAACE,KAAK,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE;EAC3C,MAAMtD,GAAG,GAAGyC,WAAW,CAACC,QAAQ,CAAC;EACjC,IAAI,CAAC1C,GAAG,IAAI,CAACe,gBAAK,CAACC,QAAQ,CAAC,CAAC,CAACC,gBAAgB,EAAEsC,IAAI,EAAEC,KAAK,EAAE;EAE7DnB,YAAY,CAACY,GAAG,CAACP,QAAQ,CAAC;EAC1B,IAAI;IACF,MAAMe,OAAO,GAAG,MAAM,IAAAC,oBAAa,EAAChB,QAAQ,CAAC;IAC7CF,YAAY,CAACmB,MAAM,CAACjB,QAAQ,CAAC;IAC7B,MAAMkB,OAAO,GAAG,CAAC7C,gBAAK,CAACC,QAAQ,CAAC,CAAC,CAAC2B,KAAK,EAAEA,KAAK,IAAI,CAAC,CAAC,EAAE3C,GAAG,CAE5C;IACb,IAAI,CAAC4D,OAAO,IAAI,CAACH,OAAO,EAAE;IAC1B,MAAMI,OAAO,GAAG7D,GAAG,CAAC8C,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;IACvC;IACA;IACA,MAAMgB,KAAK,GAAG,IAAAC,oCAAiB,EAC7B;MAAE,GAAGN,OAAO;MAAEO,IAAI,EAAEtB;IAAS,CAAC,EAC9BmB,OAAO,EACP,IAAAI,+BAAgB,EAACL,OAAO,CAC1B,CAAC;IACD,IAAI,CAACE,KAAK,EAAE;;IAEZ;IACA;IACA;IACA,MAAMI,OAA8C,GAAG;MACrDC,KAAK,EAAEL,KAAK,CAACK,KAAK;MAClBH,IAAI,EAAEF,KAAK,CAACE,IAAI;MAChBI,WAAW,EAAEN,KAAK,CAACM,WAAW;MAC9BC,IAAI,EAAEP,KAAK,CAACO,IAAI;MAChB;MACAC,OAAO,EAAGR,KAAK,CAASQ,OAAO;MAC/B;MACAC,QAAQ,EAAEC,IAAI,CAACC,GAAG,CAChBC,MAAM,CAACZ,KAAK,CAACS,QAAQ,CAAC,IAAI,CAAC,EAC3B,IAAAN,+BAAgB,EAACL,OAAO,CAC1B;IACF,CAAC;IACD,IACEH,OAAO,CAACkB,IAAI,KAAK,QAAQ,IACzBlB,OAAO,CAACkB,IAAI,KAAK,OAAO,IACxBlB,OAAO,CAACkB,IAAI,KAAK,SAAS,EAC1B;MACAT,OAAO,CAACS,IAAI,GAAGlB,OAAO,CAACkB,IAAI;IAC7B;IACA;IACC/B,MAAM,CAACC,IAAI,CAACqB,OAAO,CAAC,CAAwBU,OAAO,CAAEC,CAAC,IAAK;MAC1D,IAAKX,OAAO,CAASW,CAAC,CAAC,KAAKC,SAAS,EAAE,OAAQZ,OAAO,CAASW,CAAC,CAAC;IACnE,CAAC,CAAC;IACF9D,gBAAK,CAACgE,QAAQ,CAAC,IAAAC,sBAAU,EAAC;MAAEhF,GAAG;MAAEkE;IAAQ,CAAC,CAAC,CAAC;EAC9C,CAAC,CAAC,OAAOe,KAAK,EAAE;IACd,MAAMC,KAAK,GAAG,CAAC1C,YAAY,CAACW,GAAG,CAACT,QAAQ,CAAC,EAAEwC,KAAK,IAAI,CAAC,IAAI,CAAC;IAC1D1C,YAAY,CAAC2C,GAAG,CAACzC,QAAQ,EAAE;MACzBwC,KAAK;MACL9B,KAAK,EACHC,IAAI,CAACC,GAAG,CAAC,CAAC,GACV/D,eAAe,CAACiF,IAAI,CAACY,GAAG,CAACF,KAAK,GAAG,CAAC,EAAE3F,eAAe,CAAC+B,MAAM,GAAG,CAAC,CAAC;IACnE,CAAC,CAAC;IACF+D,0BAAY,CAACC,GAAG,CAAC,mCAAmC,EAAE5C,QAAQ,EAAEuC,KAAK,CAAC;EACxE,CAAC,SAAS;IACR5C,YAAY,CAACsB,MAAM,CAACjB,QAAQ,CAAC;IAC7B,IAAIH,SAAS,CAACoB,MAAM,CAACjB,QAAQ,CAAC,EAAE6C,mBAAmB,CAAC7C,QAAQ,CAAC;EAC/D;AACF,CAAC;AAED,MAAM6C,mBAAmB,GAAI7C,QAAgB,IAAW;EACtD,MAAM8C,KAAK,GAAGrD,UAAU,CAACgB,GAAG,CAACT,QAAQ,CAAC;EACtC,IAAI8C,KAAK,EAAEC,YAAY,CAACD,KAAK,CAAC;EAC9BrD,UAAU,CAACgD,GAAG,CACZzC,QAAQ,EACRgD,UAAU,CAAC,MAAM;IACfvD,UAAU,CAACwB,MAAM,CAACjB,QAAQ,CAAC;IAC3BK,cAAc,CAACL,QAAQ,CAAC;EAC1B,CAAC,EAAEtD,gBAAgB,CACrB,CAAC;AACH,CAAC;;AAED;;AAEA,MAAMuG,WAAW,GAAIvF,MAAe,IAAqB;EACvD,MAAMwF,UAAqB,GAAG,CAACxF,MAAM,CAAC;EACtC,MAAMyF,KAAK,GAAIzF,MAAM,EACjB0F,QAAQ,GAAG,OAAO,EAAE3G,eAAe,CAAC,EACpC2G,QAAQ,GAAG,OAAO,CAAC,EACnBA,QAAQ,GAAG,MAAM,CAAC,EAClBA,QAAQ,GAAG,SAAS,CAAC;EACzB,IAAID,KAAK,EAAED,UAAU,CAACG,IAAI,CAACF,KAAgB,CAAC;EAC5C,OACED,UAAU,CAACI,IAAI,CACZC,CAAC,IACAA,CAAC,EAAE3F,KAAK,EAAEqE,IAAI,KAAK,UAAU,IAC5BsB,CAAC,CAASH,QAAQ,GAAG,cAAc,EAAE/G,kBAAkB,CAC5D,CAAC,IAAI,IAAI;AAEb,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACO,SAASmH,aAAaA,CAC3B9F,MAAe,EACfN,MAAiB,EACR;EACT,IAAI;IACF,MAAMqG,OAAO,GAAGR,WAAW,CAACvF,MAAM,CAAC;IACnC,IAAI,CAAC+F,OAAO,EAAE,OAAO,KAAK;IAC1B,IAAI,CAAChG,oBAAoB,CAACgG,OAAO,EAAErG,MAAM,CAAC,EAAE;MAC1CuF,0BAAY,CAACC,GAAG,CAAC,yCAAyC,CAAC;MAC3D,OAAO,IAAI;IACb;IACA,MAAMc,KAAK,GAAID,OAAO,CAASL,QAAQ,CAAC,cAAc,EAAE/G,kBAAkB,CAAC;IAC3E,MAAM4F,IAAI,GAAGjF,MAAM,CAAC0G,KAAK,EAAE9F,KAAK,EAAEqE,IAAI,IAAI,EAAE,CAAC;IAC7C,MAAM0B,SAAS,GAAGD,KAAK,EAAE9F,KAAK,EAAE2B,KAAK;IACrC,MAAMA,KAAK,GAAGP,YAAY,CAAC,CAAC;IAC5B,IAAI2E,SAAS,KAAKvB,SAAS,IAAI7C,KAAK,IAAIvC,MAAM,CAAC2G,SAAS,CAAC,KAAKpE,KAAK,EAAE;MACnE,OAAO,IAAI;IACb;IAEA,IAAI0C,IAAI,KAAK1F,yBAAyB,EAAE;MACtC,MAAMqH,EAAE,GAAGF,KAAK,EAAE9F,KAAK,EAAEiG,YAAY;MACrC,IAAI3E,cAAc,CAAC0E,EAAE,CAAC,EAAE,IAAAE,yBAAW,EAACF,EAAE,CAAC;IACzC,CAAC,MAAM,IAAI3B,IAAI,KAAKzF,sBAAsB,EAAE;MAC1C,MAAMwD,QAAQ,GAAG0D,KAAK,EAAE9F,KAAK,EAAEoC,QAAQ;MACvC;MACA;MACA,IAAId,cAAc,CAACc,QAAQ,CAAC,IAAID,WAAW,CAACC,QAAQ,CAAC,EAAE;QACrD6C,mBAAmB,CAAC7C,QAAQ,CAAC;MAC/B;IACF;IACA,OAAO,IAAI;EACb,CAAC,CAAC,OAAOuC,KAAK,EAAE;IACdI,0BAAY,CAACC,GAAG,CAAC,sCAAsC,EAAEL,KAAK,CAAC;IAC/D,OAAO,IAAI;EACb;AACF;;AAEA;AACO,SAASwB,iBAAiBA,CAAA,EAAS;EACxCtE,UAAU,CAACyC,OAAO,CAAE8B,CAAC,IAAKjB,YAAY,CAACiB,CAAC,CAAC,CAAC;EAC1CvE,UAAU,CAACwE,KAAK,CAAC,CAAC;EAClBtE,YAAY,CAACsE,KAAK,CAAC,CAAC;EACpBpE,SAAS,CAACoE,KAAK,CAAC,CAAC;EACjBnE,YAAY,CAACmE,KAAK,CAAC,CAAC;AACtB","ignoreList":[]}
@@ -8,12 +8,16 @@ var _roomStore = require("../roomStore");
8
8
  var _mamRouter = require("./xmpp/mamRouter");
9
9
  var _mamReactions = require("../helpers/mamReactions");
10
10
  var _roomsSlice = require("../roomStore/roomsSlice");
11
+ var _roomUserCount = require("../helpers/roomUserCount");
12
+ var _userResolver = require("../helpers/userResolver");
11
13
  var _createMessageFromXml = require("../helpers/createMessageFromXml");
12
14
  var _getDataFromXml = require("../helpers/getDataFromXml");
13
15
  var _chatSettingsSlice = require("../roomStore/chatSettingsSlice");
14
16
  var _messageNotificationManager = require("../utils/messageNotificationManager");
17
+ var _notificationPolicy = require("../helpers/notificationPolicy");
15
18
  var _callLogMessage = require("../helpers/callLogMessage");
16
19
  var _strings = require("../i18n/strings");
20
+ var _mamQueryIds = require("./xmpp/mamQueryIds");
17
21
  var _rooms = require("./api-requests/rooms.api");
18
22
  var _pushSubscriptionService = require("../services/pushSubscriptionService");
19
23
  // TO DO: we are thinking to refactor this code in the following way:
@@ -92,15 +96,26 @@ const onRealtimeMessage = async stanza => {
92
96
  roomJID,
93
97
  message
94
98
  }));
99
+ // A sender missing from usersSet (a big room only carries 30 members)
100
+ // is resolved lazily; known and recently failed ids are dropped inside.
101
+ try {
102
+ (0, _userResolver.requestSendersOf)([message]);
103
+ } catch {
104
+ // name resolution must never break message delivery
105
+ }
95
106
 
96
- // Trigger in-app notification (manager dedupes + drops own messages
97
- // for empty bodies). Self-messages are filtered by sender check.
107
+ // Trigger in-app notification (the manager dedupes and drops empty
108
+ // bodies; the provider drops the open chat, muted chats and a
109
+ // backgrounded app). The reader's own messages never toast.
98
110
  try {
99
111
  const state = _roomStore.store.getState();
100
- const currentUserWallet = (state.chatSettingStore.user?.walletAddress || '').toLowerCase();
101
- const senderJIDLower = String(senderJID || '').toLowerCase();
102
- if (currentUserWallet && senderJIDLower.includes(currentUserWallet)) {
103
- return message; // own message, skip toast
112
+ if ((0, _notificationPolicy.isOwnIncomingMessage)({
113
+ message,
114
+ stanzaFrom: stanza.attrs.from,
115
+ senderJID,
116
+ user: state.chatSettingStore.user
117
+ })) {
118
+ return message;
104
119
  }
105
120
  const room = state.rooms.rooms[roomJID];
106
121
  const roomName = room?.title || room?.name || '';
@@ -154,21 +169,16 @@ const onEditMessage = async stanza => {
154
169
  }
155
170
  };
156
171
  exports.onEditMessage = onEditMessage;
157
- const isMamResult = stanza => !!stanza?.is?.('message') && stanza.children?.[0]?.attrs?.xmlns === 'urn:xmpp:mam:2';
172
+ const isMamResult = stanza => !!stanza?.is?.('message') && stanza.getChild?.('result')?.attrs?.xmlns === 'urn:xmpp:mam:2';
158
173
  const parseMamResult = async stanza => {
159
174
  {
160
175
  const forwardedMsg = stanza.getChild('result')?.getChild('forwarded')?.getChild('message');
161
176
  if (forwardedMsg?.getChild?.('reactions')) {
162
177
  const reaction = (0, _mamReactions.extractReaction)(forwardedMsg, stanza.attrs?.from, stanza.getChild('result')?.attrs?.id);
163
178
  if (reaction && !(0, _mamRouter.collectMamReaction)(stanza, reaction)) {
164
- _roomStore.store.dispatch((0, _roomsSlice.setReactions)({
165
- roomJID: reaction.roomJID,
166
- messageId: reaction.messageId,
167
- from: reaction.from,
168
- reactions: reaction.emoji,
169
- data: reaction.data,
170
- latestReactionTimestamp: reaction.ts
171
- }));
179
+ // No page is waiting for it: replay it by hand. Flagged fromHistory
180
+ // so the room preview is not turned into an emoji.
181
+ (0, _mamRouter.replayArchivedReaction)(reaction);
172
182
  }
173
183
  return undefined;
174
184
  }
@@ -259,6 +269,12 @@ const onMessageHistory = async stanza => {
259
269
  if (!isMamResult(stanza)) {
260
270
  return;
261
271
  }
272
+ // A windowed query (a jump target's neighbourhood, a time lookup) belongs
273
+ // to the caller that asked: its rows are collected and returned there and
274
+ // must never be claimed by the router or merged into the live list.
275
+ if ((0, _mamQueryIds.isWindowQueryId)(stanza.getChild('result')?.attrs?.queryid)) {
276
+ return;
277
+ }
262
278
  const claimed = (0, _mamRouter.claimMamResult)(stanza);
263
279
  let message;
264
280
  try {
@@ -309,8 +325,77 @@ const handleComposing = async (stanza, currentUser) => {
309
325
  }
310
326
  }
311
327
  };
328
+
329
+ // Server-driven membership change: when someone is added to or removed from
330
+ // a MUC the room broadcasts <message><x xmlns="muc#user"><item jid=...
331
+ // affiliation="member|none|outcast"/></x></message> to the occupants. It is
332
+ // the ONLY thing that counts as a join or leave: usersCnt is adjusted by
333
+ // +1/-1 from its CURRENT value, because a big room carries a truncated
334
+ // members[] (the real total is usersCnt) and recomputing from its length
335
+ // would collapse the count to the page size.
312
336
  exports.handleComposing = handleComposing;
337
+ const MUC_USER_NS = 'http://jabber.org/protocol/muc#user';
338
+ const onRoomMembershipChange = stanza => {
339
+ if (typeof stanza?.is !== 'function' || !stanza.is('message')) {
340
+ return;
341
+ }
342
+ const roomJid = String(stanza.attrs?.from || '').split('/')[0];
343
+ const room = roomJid ? _roomStore.store.getState().rooms.rooms[roomJid] : undefined;
344
+ if (!room) {
345
+ return;
346
+ }
347
+ const x = (stanza.getChildren?.('x') || []).find(e => e?.attrs?.xmlns === MUC_USER_NS);
348
+ if (!x || x.getChild('invite')) {
349
+ return;
350
+ }
351
+ const item = x.getChild('item');
352
+ const memberJid = String(item?.attrs?.jid || '');
353
+ if (!memberJid) {
354
+ return;
355
+ }
356
+ const xmppUsername = memberJid.split('@')[0];
357
+ const affiliation = String(item?.attrs?.affiliation || '');
358
+ const leaving = affiliation === 'none' || affiliation === 'outcast';
359
+ const members = Array.isArray(room.members) ? room.members : [];
360
+ const idx = members.findIndex(m => m.xmppUsername === xmppUsername);
361
+ let next;
362
+ if (leaving) {
363
+ if (idx < 0) {
364
+ // The leaver may exist only in the directory of a truncated room.
365
+ if (!(0, _roomUserCount.isRoomMembersTruncated)(room)) {
366
+ return;
367
+ }
368
+ _roomStore.store.dispatch((0, _roomsSlice.updateRoom)({
369
+ jid: roomJid,
370
+ updates: {
371
+ usersCnt: (0, _roomUserCount.adjustUsersCnt)(room, -1, members.length)
372
+ }
373
+ }));
374
+ return;
375
+ }
376
+ next = members.filter((_, i) => i !== idx);
377
+ } else {
378
+ if (idx >= 0) {
379
+ return;
380
+ }
381
+ next = [...members, {
382
+ _id: '',
383
+ firstName: '',
384
+ lastName: '',
385
+ xmppUsername,
386
+ jid: memberJid
387
+ }];
388
+ }
389
+ _roomStore.store.dispatch((0, _roomsSlice.updateRoom)({
390
+ jid: roomJid,
391
+ updates: {
392
+ members: next,
393
+ usersCnt: (0, _roomUserCount.adjustUsersCnt)(room, leaving ? -1 : 1, next.length)
394
+ }
395
+ }));
396
+ };
313
397
  const onPresenceInRoom = stanza => {
398
+ onRoomMembershipChange(stanza);
314
399
  if (typeof stanza.attrs.id === 'string' && stanza.attrs.id.startsWith('presenceInRoom') && !stanza.getChild('error')) {
315
400
  const roomJID = stanza.attrs.from.split('/')[0];
316
401
  const role = stanza?.children[1]?.children[0]?.attrs.role;
@@ -464,7 +549,59 @@ const onReactionMessage = stanza => {
464
549
  // Archived reactions are handled by parseMamResult + the MAM router.
465
550
  exports.onReactionMessage = onReactionMessage;
466
551
  const onReactionHistory = _stanza => {};
552
+ // Presence that removes a member: unavailable + affiliation none/outcast.
553
+ // A presence is never a join (an unlisted occupant of a truncated big room
554
+ // is indistinguishable from a new member), so it only ever adjusts -1; the
555
+ // affiliation message (onRoomMembershipChange) is what counts joins.
467
556
  exports.onReactionHistory = onReactionHistory;
468
- const onRoomKicked = _stanza => {};
557
+ const onRoomKicked = stanza => {
558
+ try {
559
+ if (stanza?.attrs?.type !== 'unavailable') {
560
+ return;
561
+ }
562
+ const from = String(stanza.attrs?.from || '');
563
+ const slash = from.indexOf('/');
564
+ const roomJID = slash >= 0 ? from.slice(0, slash) : from;
565
+ const nickname = slash >= 0 ? from.slice(slash + 1) : '';
566
+ const state = _roomStore.store.getState();
567
+ const room = roomJID ? state.rooms.rooms[roomJID] : undefined;
568
+ if (!room || !nickname) {
569
+ return;
570
+ }
571
+ if (nickname === (state.chatSettingStore.user?.xmppUsername || '')) {
572
+ return;
573
+ }
574
+ const x = (stanza.getChildren?.('x') || []).find(e => e?.attrs?.xmlns === MUC_USER_NS);
575
+ const item = x?.getChild?.('item');
576
+ const affiliation = String(item?.attrs?.affiliation || '');
577
+ if (!item || affiliation !== 'none' && affiliation !== 'outcast') {
578
+ return;
579
+ }
580
+ const members = Array.isArray(room.members) ? room.members : [];
581
+ const idx = members.findIndex(m => m.xmppUsername === nickname);
582
+ if (idx < 0) {
583
+ if (!(0, _roomUserCount.isRoomMembersTruncated)(room)) {
584
+ return;
585
+ }
586
+ _roomStore.store.dispatch((0, _roomsSlice.updateRoom)({
587
+ jid: roomJID,
588
+ updates: {
589
+ usersCnt: (0, _roomUserCount.adjustUsersCnt)(room, -1, members.length)
590
+ }
591
+ }));
592
+ return;
593
+ }
594
+ const next = members.filter((_, i) => i !== idx);
595
+ _roomStore.store.dispatch((0, _roomsSlice.updateRoom)({
596
+ jid: roomJID,
597
+ updates: {
598
+ members: next,
599
+ usersCnt: (0, _roomUserCount.adjustUsersCnt)(room, -1, next.length)
600
+ }
601
+ }));
602
+ } catch (error) {
603
+ console.warn('onRoomKicked failed', error);
604
+ }
605
+ };
469
606
  exports.onRoomKicked = onRoomKicked;
470
607
  //# sourceMappingURL=stanzaHandlers.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_roomStore","require","_mamRouter","_mamReactions","_roomsSlice","_createMessageFromXml","_getDataFromXml","_chatSettingsSlice","_messageNotificationManager","_callLogMessage","_strings","_rooms","_pushSubscriptionService","onRealtimeMessage","stanza","getChild","is","attrs","id","body","archived","data","deleted","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","uiLocale","config","i18n","langSource","overrides","strings","senderName","senderFirstName","senderLastName","filter","Boolean","join","trim","translateKey","messageNotificationManager","showNotification","err","console","warn","exports","onDeleteMessage","stanzaId","deleteRoomMessage","by","messageId","setDeleteModal","isDeleteModal","onEditMessage","replace","editRoomMessage","text","isMamResult","children","xmlns","parseMamResult","forwardedMsg","reaction","extractReaction","collectMamReaction","setReactions","reactions","emoji","latestReactionTimestamp","ts","undefined","delay","forwardedMessage","innerFrom","mergedAttrs","xmppId","positionalMessage","parsedFull","catch","translations","onMessageHistory","claimed","claimMamResult","collectMamMessage","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","known","fresh","jids","result","jid","usersCnt","Number","users_cnt","messages","isLoading","roomBg","room_background","icon","room_thumbnail","unreadMessages","lastViewedTimestamp","length","addRooms","activeRoomJID","loadRoomMembers","force","subscribeRoomForPush","e","onMessageError","_stanza","onReactionMessage","onReactionHistory","onRoomKicked"],"sourceRoot":"../../../src","sources":["networking/stanzaHandlers.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_roomStore","require","_mamRouter","_mamReactions","_roomsSlice","_roomUserCount","_userResolver","_createMessageFromXml","_getDataFromXml","_chatSettingsSlice","_messageNotificationManager","_notificationPolicy","_callLogMessage","_strings","_mamQueryIds","_rooms","_pushSubscriptionService","onRealtimeMessage","stanza","getChild","is","attrs","id","body","archived","data","deleted","senderJID","from","parsed","getDataFromXml","pData","pId","pBody","pRest","mergedData","rawMessage","createMessageFromXml","isDeleted","message","transformCallLogMessage","store","getState","chatSettingStore","user","xmppUsername","roomJID","split","dispatch","addRoomMessage","requestSendersOf","state","isOwnIncomingMessage","stanzaFrom","room","rooms","roomName","title","name","locale","uiLocale","config","i18n","langSource","overrides","strings","senderName","senderFirstName","senderLastName","filter","Boolean","join","trim","translateKey","messageNotificationManager","showNotification","err","console","warn","exports","onDeleteMessage","stanzaId","deleteRoomMessage","by","messageId","setDeleteModal","isDeleteModal","onEditMessage","includes","replace","editRoomMessage","text","isMamResult","xmlns","parseMamResult","forwardedMsg","reaction","extractReaction","collectMamReaction","replayArchivedReaction","undefined","delay","forwardedMessage","innerFrom","mergedAttrs","xmppId","positionalMessage","parsedFull","catch","translations","onMessageHistory","isWindowQueryId","queryid","claimed","claimMamResult","collectMamMessage","handleComposing","currentUser","composingUser","norm","s","toLowerCase","senderLocal","selfUser","selfXmppUsername","selfWallet","walletAddress","isSelf","chatJID","composingList","push","fullName","pop","setComposing","composing","MUC_USER_NS","onRoomMembershipChange","roomJid","String","x","getChildren","find","e","item","memberJid","jid","affiliation","leaving","members","Array","isArray","idx","findIndex","m","next","isRoomMembersTruncated","updateRoom","updates","usersCnt","adjustUsersCnt","length","_","i","_id","firstName","lastName","onPresenceInRoom","startsWith","role","children","setRoomRole","onChatInvite","client","type","chatId","xEls","el","child","chat","presenceInRoomStanza","getRoomsStanza","onGetMembers","onGetRoomInfo","onGetLastMessageArchive","_xmpp","onNewRoomCreated","xmpp","setCurrentRoom","onGetChatRooms","known","fresh","jids","result","Number","users_cnt","messages","isLoading","roomBg","room_background","icon","room_thumbnail","unreadMessages","lastViewedTimestamp","addRooms","activeRoomJID","loadRoomMembers","force","subscribeRoomForPush","onMessageError","_stanza","onReactionMessage","setReactions","latestReactionTimestamp","ts","reactions","emoji","onReactionHistory","onRoomKicked","slash","indexOf","slice","nickname","error"],"sourceRoot":"../../../src","sources":["networking/stanzaHandlers.ts"],"mappings":"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","ignoreList":[]}