@ethora/chat-component-rn 26.9.0 → 26.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (761) hide show
  1. package/CHANGELOG.md +34 -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 +53 -4
  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/RoomComponents/ChatRoomItem.js +13 -2
  60. package/lib/commonjs/components/RoomComponents/ChatRoomItem.js.map +1 -1
  61. package/lib/commonjs/components/RoomComponents/SwipeableRoomRow.js +38 -6
  62. package/lib/commonjs/components/RoomComponents/SwipeableRoomRow.js.map +1 -1
  63. package/lib/commonjs/components/Thread/ThreadHeader.js +3 -1
  64. package/lib/commonjs/components/Thread/ThreadHeader.js.map +1 -1
  65. package/lib/commonjs/components/Thread/ThreadWrapper.js +90 -10
  66. package/lib/commonjs/components/Thread/ThreadWrapper.js.map +1 -1
  67. package/lib/commonjs/components/styled/AudioDecoderHost.js +338 -0
  68. package/lib/commonjs/components/styled/AudioDecoderHost.js.map +1 -0
  69. package/lib/commonjs/components/styled/AudioMessage.js +493 -420
  70. package/lib/commonjs/components/styled/AudioMessage.js.map +1 -1
  71. package/lib/commonjs/components/styled/SendInput.js +31 -5
  72. package/lib/commonjs/components/styled/SendInput.js.map +1 -1
  73. package/lib/commonjs/context/MessageNotificationContext.js +14 -4
  74. package/lib/commonjs/context/MessageNotificationContext.js.map +1 -1
  75. package/lib/commonjs/context/xmppProvider.js +54 -79
  76. package/lib/commonjs/context/xmppProvider.js.map +1 -1
  77. package/lib/commonjs/helpers/audioWaveform.js +165 -0
  78. package/lib/commonjs/helpers/audioWaveform.js.map +1 -0
  79. package/lib/commonjs/helpers/backgroundJoinSweep.js +36 -0
  80. package/lib/commonjs/helpers/backgroundJoinSweep.js.map +1 -0
  81. package/lib/commonjs/helpers/bubbleHighlight.js +44 -0
  82. package/lib/commonjs/helpers/bubbleHighlight.js.map +1 -0
  83. package/lib/commonjs/helpers/checkUniqueUsers.js +14 -12
  84. package/lib/commonjs/helpers/checkUniqueUsers.js.map +1 -1
  85. package/lib/commonjs/helpers/constants/MODAL_COMPONENTS.js +5 -1
  86. package/lib/commonjs/helpers/constants/MODAL_COMPONENTS.js.map +1 -1
  87. package/lib/commonjs/helpers/constants/MODAL_TYPES.js +3 -1
  88. package/lib/commonjs/helpers/constants/MODAL_TYPES.js.map +1 -1
  89. package/lib/commonjs/helpers/createRoomFromApi.js +40 -3
  90. package/lib/commonjs/helpers/createRoomFromApi.js.map +1 -1
  91. package/lib/commonjs/helpers/dedupeMembers.js +34 -0
  92. package/lib/commonjs/helpers/dedupeMembers.js.map +1 -0
  93. package/lib/commonjs/helpers/ethoraLogger.js +56 -0
  94. package/lib/commonjs/helpers/ethoraLogger.js.map +1 -0
  95. package/lib/commonjs/helpers/getUnnamedUsers.js +9 -4
  96. package/lib/commonjs/helpers/getUnnamedUsers.js.map +1 -1
  97. package/lib/commonjs/helpers/historyPreloadConfig.js +44 -0
  98. package/lib/commonjs/helpers/historyPreloadConfig.js.map +1 -0
  99. package/lib/commonjs/helpers/historyPreloadScheduler.js +372 -137
  100. package/lib/commonjs/helpers/historyPreloadScheduler.js.map +1 -1
  101. package/lib/commonjs/helpers/initRoomsPresence.js +17 -5
  102. package/lib/commonjs/helpers/initRoomsPresence.js.map +1 -1
  103. package/lib/commonjs/helpers/insertMessageWithDelimiter.js +5 -0
  104. package/lib/commonjs/helpers/insertMessageWithDelimiter.js.map +1 -1
  105. package/lib/commonjs/helpers/isLikelyMucJid.js +67 -0
  106. package/lib/commonjs/helpers/isLikelyMucJid.js.map +1 -0
  107. package/lib/commonjs/helpers/isMessageSearchEnabled.js +18 -0
  108. package/lib/commonjs/helpers/isMessageSearchEnabled.js.map +1 -0
  109. package/lib/commonjs/helpers/joiningRoom.js +14 -0
  110. package/lib/commonjs/helpers/joiningRoom.js.map +1 -0
  111. package/lib/commonjs/helpers/jumpThread.js +100 -0
  112. package/lib/commonjs/helpers/jumpThread.js.map +1 -0
  113. package/lib/commonjs/helpers/jumpToMessage.js +58 -0
  114. package/lib/commonjs/helpers/jumpToMessage.js.map +1 -0
  115. package/lib/commonjs/helpers/jumpWindow.js +187 -0
  116. package/lib/commonjs/helpers/jumpWindow.js.map +1 -0
  117. package/lib/commonjs/helpers/loadRoomHistory.js +75 -0
  118. package/lib/commonjs/helpers/loadRoomHistory.js.map +1 -0
  119. package/lib/commonjs/helpers/notificationPolicy.js +77 -0
  120. package/lib/commonjs/helpers/notificationPolicy.js.map +1 -0
  121. package/lib/commonjs/helpers/openRoomAtMessage.js +47 -0
  122. package/lib/commonjs/helpers/openRoomAtMessage.js.map +1 -0
  123. package/lib/commonjs/helpers/openThreadForJump.js +72 -0
  124. package/lib/commonjs/helpers/openThreadForJump.js.map +1 -0
  125. package/lib/commonjs/helpers/parseMessageReference.js +27 -8
  126. package/lib/commonjs/helpers/parseMessageReference.js.map +1 -1
  127. package/lib/commonjs/helpers/publicChatsEntry.js +17 -0
  128. package/lib/commonjs/helpers/publicChatsEntry.js.map +1 -0
  129. package/lib/commonjs/helpers/roomActivityScore.js +37 -0
  130. package/lib/commonjs/helpers/roomActivityScore.js.map +1 -0
  131. package/lib/commonjs/helpers/roomUserCount.js +36 -0
  132. package/lib/commonjs/helpers/roomUserCount.js.map +1 -0
  133. package/lib/commonjs/helpers/runConfiguredHistoryPreload.js +68 -0
  134. package/lib/commonjs/helpers/runConfiguredHistoryPreload.js.map +1 -0
  135. package/lib/commonjs/helpers/sessionAppId.js +24 -0
  136. package/lib/commonjs/helpers/sessionAppId.js.map +1 -0
  137. package/lib/commonjs/helpers/timestamp.js +43 -0
  138. package/lib/commonjs/helpers/timestamp.js.map +1 -0
  139. package/lib/commonjs/helpers/userResolver.js +517 -0
  140. package/lib/commonjs/helpers/userResolver.js.map +1 -0
  141. package/lib/commonjs/helpers/xmppIdShape.js +52 -0
  142. package/lib/commonjs/helpers/xmppIdShape.js.map +1 -0
  143. package/lib/commonjs/hooks/useChatWrapperInit.js +27 -5
  144. package/lib/commonjs/hooks/useChatWrapperInit.js.map +1 -1
  145. package/lib/commonjs/hooks/useHeapSender.js +54 -3
  146. package/lib/commonjs/hooks/useHeapSender.js.map +1 -1
  147. package/lib/commonjs/hooks/useJumpToMessage.js +411 -0
  148. package/lib/commonjs/hooks/useJumpToMessage.js.map +1 -0
  149. package/lib/commonjs/hooks/useMessageLoaderQueue.js +32 -5
  150. package/lib/commonjs/hooks/useMessageLoaderQueue.js.map +1 -1
  151. package/lib/commonjs/hooks/useMessageQueue.js +13 -5
  152. package/lib/commonjs/hooks/useMessageQueue.js.map +1 -1
  153. package/lib/commonjs/hooks/useRoomDirectory.js +29 -0
  154. package/lib/commonjs/hooks/useRoomDirectory.js.map +1 -0
  155. package/lib/commonjs/hooks/useRoomInitialization.js +27 -5
  156. package/lib/commonjs/hooks/useRoomInitialization.js.map +1 -1
  157. package/lib/commonjs/hooks/useRoomMute.js +62 -0
  158. package/lib/commonjs/hooks/useRoomMute.js.map +1 -0
  159. package/lib/commonjs/hooks/useRoomState.js +3 -1
  160. package/lib/commonjs/hooks/useRoomState.js.map +1 -1
  161. package/lib/commonjs/hooks/useSendMessage.js +13 -3
  162. package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
  163. package/lib/commonjs/i18n/strings.js +318 -6
  164. package/lib/commonjs/i18n/strings.js.map +1 -1
  165. package/lib/commonjs/networking/api-requests/messageSearch.api.js +87 -0
  166. package/lib/commonjs/networking/api-requests/messageSearch.api.js.map +1 -0
  167. package/lib/commonjs/networking/api-requests/publicChats.api.js +48 -0
  168. package/lib/commonjs/networking/api-requests/publicChats.api.js.map +1 -0
  169. package/lib/commonjs/networking/api-requests/roomMembers.api.js +253 -4
  170. package/lib/commonjs/networking/api-requests/roomMembers.api.js.map +1 -1
  171. package/lib/commonjs/networking/api-requests/rooms.api.js +48 -12
  172. package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
  173. package/lib/commonjs/networking/api-requests/xmppToken.api.js +71 -0
  174. package/lib/commonjs/networking/api-requests/xmppToken.api.js.map +1 -0
  175. package/lib/commonjs/networking/ethoraEvents.js +227 -0
  176. package/lib/commonjs/networking/ethoraEvents.js.map +1 -0
  177. package/lib/commonjs/networking/stanzaHandlers.js +153 -16
  178. package/lib/commonjs/networking/stanzaHandlers.js.map +1 -1
  179. package/lib/commonjs/networking/xmpp/allRoomPresences.xmpp.js +124 -3
  180. package/lib/commonjs/networking/xmpp/allRoomPresences.xmpp.js.map +1 -1
  181. package/lib/commonjs/networking/xmpp/getHistory.xmpp.js +319 -35
  182. package/lib/commonjs/networking/xmpp/getHistory.xmpp.js.map +1 -1
  183. package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js +7 -0
  184. package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
  185. package/lib/commonjs/networking/xmpp/historyCursor.js +101 -0
  186. package/lib/commonjs/networking/xmpp/historyCursor.js.map +1 -0
  187. package/lib/commonjs/networking/xmpp/mamQueryIds.js +17 -0
  188. package/lib/commonjs/networking/xmpp/mamQueryIds.js.map +1 -0
  189. package/lib/commonjs/networking/xmpp/mamRouter.js +24 -9
  190. package/lib/commonjs/networking/xmpp/mamRouter.js.map +1 -1
  191. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js +70 -65
  192. package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  193. package/lib/commonjs/networking/xmpp/roomJoinSweep.js +389 -0
  194. package/lib/commonjs/networking/xmpp/roomJoinSweep.js.map +1 -0
  195. package/lib/commonjs/networking/xmpp/sendMediaMessage.xmpp.js +0 -1
  196. package/lib/commonjs/networking/xmpp/sendMediaMessage.xmpp.js.map +1 -1
  197. package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js +0 -1
  198. package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
  199. package/lib/commonjs/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js +0 -1
  200. package/lib/commonjs/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js.map +1 -1
  201. package/lib/commonjs/networking/xmppClient.js +269 -41
  202. package/lib/commonjs/networking/xmppClient.js.map +1 -1
  203. package/lib/commonjs/networking/xmppCredentials.js +80 -0
  204. package/lib/commonjs/networking/xmppCredentials.js.map +1 -0
  205. package/lib/commonjs/roomStore/Middleware/jumpThreadMiddleware.js +158 -0
  206. package/lib/commonjs/roomStore/Middleware/jumpThreadMiddleware.js.map +1 -0
  207. package/lib/commonjs/roomStore/Middleware/reactionsMiddleware.js +6 -0
  208. package/lib/commonjs/roomStore/Middleware/reactionsMiddleware.js.map +1 -1
  209. package/lib/commonjs/roomStore/Middleware/unreadMidlleware.js +45 -7
  210. package/lib/commonjs/roomStore/Middleware/unreadMidlleware.js.map +1 -1
  211. package/lib/commonjs/roomStore/chatSettingsSlice.js +15 -1
  212. package/lib/commonjs/roomStore/chatSettingsSlice.js.map +1 -1
  213. package/lib/commonjs/roomStore/index.js +13 -3
  214. package/lib/commonjs/roomStore/index.js.map +1 -1
  215. package/lib/commonjs/roomStore/persistence.js +48 -1
  216. package/lib/commonjs/roomStore/persistence.js.map +1 -1
  217. package/lib/commonjs/roomStore/roomsSlice.js +474 -60
  218. package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
  219. package/lib/commonjs/roomStore/safeKey.js +44 -0
  220. package/lib/commonjs/roomStore/safeKey.js.map +1 -0
  221. package/lib/commonjs/roomStore/usersSetCap.js +37 -0
  222. package/lib/commonjs/roomStore/usersSetCap.js.map +1 -0
  223. package/lib/commonjs/version.js +1 -1
  224. package/lib/commonjs/version.js.map +1 -1
  225. package/lib/module/assets/icons.js +1 -1
  226. package/lib/module/assets/icons.js.map +1 -1
  227. package/lib/module/components/Header/HeaderRoomList.js +23 -7
  228. package/lib/module/components/Header/HeaderRoomList.js.map +1 -1
  229. package/lib/module/components/InputComponents/Search.js +39 -2
  230. package/lib/module/components/InputComponents/Search.js.map +1 -1
  231. package/lib/module/components/MainComponents/ArchivedMessageCard.js +161 -0
  232. package/lib/module/components/MainComponents/ArchivedMessageCard.js.map +1 -0
  233. package/lib/module/components/MainComponents/ChatHeader.js +22 -5
  234. package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
  235. package/lib/module/components/MainComponents/ChatRoom.js +57 -26
  236. package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
  237. package/lib/module/components/MainComponents/ChatWrapper.js +54 -5
  238. package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
  239. package/lib/module/components/MainComponents/MediaMessage.js +18 -3
  240. package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
  241. package/lib/module/components/MainComponents/MessageList.js +740 -42
  242. package/lib/module/components/MainComponents/MessageList.js.map +1 -1
  243. package/lib/module/components/MainComponents/MessageSearchButton.js +48 -0
  244. package/lib/module/components/MainComponents/MessageSearchButton.js.map +1 -0
  245. package/lib/module/components/MainComponents/ReduxWrapper.js +15 -7
  246. package/lib/module/components/MainComponents/ReduxWrapper.js.map +1 -1
  247. package/lib/module/components/MainComponents/RoomList.js +111 -2
  248. package/lib/module/components/MainComponents/RoomList.js.map +1 -1
  249. package/lib/module/components/Menu/HeaderRoomListMenu.js +15 -4
  250. package/lib/module/components/Menu/HeaderRoomListMenu.js.map +1 -1
  251. package/lib/module/components/MessageBubble/BubbleHighlight.js +106 -0
  252. package/lib/module/components/MessageBubble/BubbleHighlight.js.map +1 -0
  253. package/lib/module/components/MessageBubble/Message.js +172 -127
  254. package/lib/module/components/MessageBubble/Message.js.map +1 -1
  255. package/lib/module/components/MessageBubble/MessageInteractions.js +98 -78
  256. package/lib/module/components/MessageBubble/MessageInteractions.js.map +1 -1
  257. package/lib/module/components/MessageBubble/messageMenuLayout.js +45 -0
  258. package/lib/module/components/MessageBubble/messageMenuLayout.js.map +1 -0
  259. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +74 -38
  260. package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  261. package/lib/module/components/Modals/MessageSearchModal/MessageHitResults.js +243 -0
  262. package/lib/module/components/Modals/MessageSearchModal/MessageHitResults.js.map +1 -0
  263. package/lib/module/components/Modals/MessageSearchModal/MessageSearchModal.js +482 -0
  264. package/lib/module/components/Modals/MessageSearchModal/MessageSearchModal.js.map +1 -0
  265. package/lib/module/components/Modals/MessageSearchModal/openHit.js +45 -0
  266. package/lib/module/components/Modals/MessageSearchModal/openHit.js.map +1 -0
  267. package/lib/module/components/Modals/MessageSearchModal/resolveSender.js +41 -0
  268. package/lib/module/components/Modals/MessageSearchModal/resolveSender.js.map +1 -0
  269. package/lib/module/components/Modals/MessageSearchModal/searchFilters.js +74 -0
  270. package/lib/module/components/Modals/MessageSearchModal/searchFilters.js.map +1 -0
  271. package/lib/module/components/Modals/MessageSearchModal/snippet.js +57 -0
  272. package/lib/module/components/Modals/MessageSearchModal/snippet.js.map +1 -0
  273. package/lib/module/components/Modals/MessageSearchModal/useMessageSearch.js +131 -0
  274. package/lib/module/components/Modals/MessageSearchModal/useMessageSearch.js.map +1 -0
  275. package/lib/module/components/Modals/PublicChatsModal/PublicChatsModal.js +300 -0
  276. package/lib/module/components/Modals/PublicChatsModal/PublicChatsModal.js.map +1 -0
  277. package/lib/module/components/Modals/PublicChatsModal/publicChatsLogic.js +30 -0
  278. package/lib/module/components/Modals/PublicChatsModal/publicChatsLogic.js.map +1 -0
  279. package/lib/module/components/Modals/SelectUsersModal/SelectUsersModal.js +8 -1
  280. package/lib/module/components/Modals/SelectUsersModal/SelectUsersModal.js.map +1 -1
  281. package/lib/module/components/RoomComponents/ChatRoomItem.js +14 -3
  282. package/lib/module/components/RoomComponents/ChatRoomItem.js.map +1 -1
  283. package/lib/module/components/RoomComponents/SwipeableRoomRow.js +39 -7
  284. package/lib/module/components/RoomComponents/SwipeableRoomRow.js.map +1 -1
  285. package/lib/module/components/Thread/ThreadHeader.js +3 -1
  286. package/lib/module/components/Thread/ThreadHeader.js.map +1 -1
  287. package/lib/module/components/Thread/ThreadWrapper.js +89 -9
  288. package/lib/module/components/Thread/ThreadWrapper.js.map +1 -1
  289. package/lib/module/components/styled/AudioDecoderHost.js +332 -0
  290. package/lib/module/components/styled/AudioDecoderHost.js.map +1 -0
  291. package/lib/module/components/styled/AudioMessage.js +495 -422
  292. package/lib/module/components/styled/AudioMessage.js.map +1 -1
  293. package/lib/module/components/styled/SendInput.js +32 -6
  294. package/lib/module/components/styled/SendInput.js.map +1 -1
  295. package/lib/module/context/MessageNotificationContext.js +15 -5
  296. package/lib/module/context/MessageNotificationContext.js.map +1 -1
  297. package/lib/module/context/xmppProvider.js +54 -79
  298. package/lib/module/context/xmppProvider.js.map +1 -1
  299. package/lib/module/helpers/audioWaveform.js +153 -0
  300. package/lib/module/helpers/audioWaveform.js.map +1 -0
  301. package/lib/module/helpers/backgroundJoinSweep.js +30 -0
  302. package/lib/module/helpers/backgroundJoinSweep.js.map +1 -0
  303. package/lib/module/helpers/bubbleHighlight.js +38 -0
  304. package/lib/module/helpers/bubbleHighlight.js.map +1 -0
  305. package/lib/module/helpers/checkUniqueUsers.js +15 -13
  306. package/lib/module/helpers/checkUniqueUsers.js.map +1 -1
  307. package/lib/module/helpers/constants/MODAL_COMPONENTS.js +5 -1
  308. package/lib/module/helpers/constants/MODAL_COMPONENTS.js.map +1 -1
  309. package/lib/module/helpers/constants/MODAL_TYPES.js +3 -1
  310. package/lib/module/helpers/constants/MODAL_TYPES.js.map +1 -1
  311. package/lib/module/helpers/createRoomFromApi.js +37 -3
  312. package/lib/module/helpers/createRoomFromApi.js.map +1 -1
  313. package/lib/module/helpers/dedupeMembers.js +28 -0
  314. package/lib/module/helpers/dedupeMembers.js.map +1 -0
  315. package/lib/module/helpers/ethoraLogger.js +52 -0
  316. package/lib/module/helpers/ethoraLogger.js.map +1 -0
  317. package/lib/module/helpers/getUnnamedUsers.js +9 -4
  318. package/lib/module/helpers/getUnnamedUsers.js.map +1 -1
  319. package/lib/module/helpers/historyPreloadConfig.js +39 -0
  320. package/lib/module/helpers/historyPreloadConfig.js.map +1 -0
  321. package/lib/module/helpers/historyPreloadScheduler.js +368 -134
  322. package/lib/module/helpers/historyPreloadScheduler.js.map +1 -1
  323. package/lib/module/helpers/initRoomsPresence.js +18 -5
  324. package/lib/module/helpers/initRoomsPresence.js.map +1 -1
  325. package/lib/module/helpers/insertMessageWithDelimiter.js +5 -0
  326. package/lib/module/helpers/insertMessageWithDelimiter.js.map +1 -1
  327. package/lib/module/helpers/isLikelyMucJid.js +60 -0
  328. package/lib/module/helpers/isLikelyMucJid.js.map +1 -0
  329. package/lib/module/helpers/isMessageSearchEnabled.js +13 -0
  330. package/lib/module/helpers/isMessageSearchEnabled.js.map +1 -0
  331. package/lib/module/helpers/joiningRoom.js +9 -0
  332. package/lib/module/helpers/joiningRoom.js.map +1 -0
  333. package/lib/module/helpers/jumpThread.js +83 -0
  334. package/lib/module/helpers/jumpThread.js.map +1 -0
  335. package/lib/module/helpers/jumpToMessage.js +52 -0
  336. package/lib/module/helpers/jumpToMessage.js.map +1 -0
  337. package/lib/module/helpers/jumpWindow.js +177 -0
  338. package/lib/module/helpers/jumpWindow.js.map +1 -0
  339. package/lib/module/helpers/loadRoomHistory.js +69 -0
  340. package/lib/module/helpers/loadRoomHistory.js.map +1 -0
  341. package/lib/module/helpers/notificationPolicy.js +70 -0
  342. package/lib/module/helpers/notificationPolicy.js.map +1 -0
  343. package/lib/module/helpers/openRoomAtMessage.js +41 -0
  344. package/lib/module/helpers/openRoomAtMessage.js.map +1 -0
  345. package/lib/module/helpers/openThreadForJump.js +68 -0
  346. package/lib/module/helpers/openThreadForJump.js.map +1 -0
  347. package/lib/module/helpers/parseMessageReference.js +26 -6
  348. package/lib/module/helpers/parseMessageReference.js.map +1 -1
  349. package/lib/module/helpers/publicChatsEntry.js +12 -0
  350. package/lib/module/helpers/publicChatsEntry.js.map +1 -0
  351. package/lib/module/helpers/roomActivityScore.js +30 -0
  352. package/lib/module/helpers/roomActivityScore.js.map +1 -0
  353. package/lib/module/helpers/roomUserCount.js +29 -0
  354. package/lib/module/helpers/roomUserCount.js.map +1 -0
  355. package/lib/module/helpers/runConfiguredHistoryPreload.js +63 -0
  356. package/lib/module/helpers/runConfiguredHistoryPreload.js.map +1 -0
  357. package/lib/module/helpers/sessionAppId.js +20 -0
  358. package/lib/module/helpers/sessionAppId.js.map +1 -0
  359. package/lib/module/helpers/timestamp.js +37 -0
  360. package/lib/module/helpers/timestamp.js.map +1 -0
  361. package/lib/module/helpers/userResolver.js +503 -0
  362. package/lib/module/helpers/userResolver.js.map +1 -0
  363. package/lib/module/helpers/xmppIdShape.js +46 -0
  364. package/lib/module/helpers/xmppIdShape.js.map +1 -0
  365. package/lib/module/hooks/useChatWrapperInit.js +16 -5
  366. package/lib/module/hooks/useChatWrapperInit.js.map +1 -1
  367. package/lib/module/hooks/useHeapSender.js +54 -3
  368. package/lib/module/hooks/useHeapSender.js.map +1 -1
  369. package/lib/module/hooks/useJumpToMessage.js +389 -0
  370. package/lib/module/hooks/useJumpToMessage.js.map +1 -0
  371. package/lib/module/hooks/useMessageLoaderQueue.js +32 -5
  372. package/lib/module/hooks/useMessageLoaderQueue.js.map +1 -1
  373. package/lib/module/hooks/useMessageQueue.js +13 -5
  374. package/lib/module/hooks/useMessageQueue.js.map +1 -1
  375. package/lib/module/hooks/useRoomDirectory.js +24 -0
  376. package/lib/module/hooks/useRoomDirectory.js.map +1 -0
  377. package/lib/module/hooks/useRoomInitialization.js +29 -7
  378. package/lib/module/hooks/useRoomInitialization.js.map +1 -1
  379. package/lib/module/hooks/useRoomMute.js +58 -0
  380. package/lib/module/hooks/useRoomMute.js.map +1 -0
  381. package/lib/module/hooks/useRoomState.js +3 -1
  382. package/lib/module/hooks/useRoomState.js.map +1 -1
  383. package/lib/module/hooks/useSendMessage.js +13 -3
  384. package/lib/module/hooks/useSendMessage.js.map +1 -1
  385. package/lib/module/i18n/strings.js +318 -6
  386. package/lib/module/i18n/strings.js.map +1 -1
  387. package/lib/module/networking/api-requests/messageSearch.api.js +81 -0
  388. package/lib/module/networking/api-requests/messageSearch.api.js.map +1 -0
  389. package/lib/module/networking/api-requests/publicChats.api.js +43 -0
  390. package/lib/module/networking/api-requests/publicChats.api.js.map +1 -0
  391. package/lib/module/networking/api-requests/roomMembers.api.js +248 -4
  392. package/lib/module/networking/api-requests/roomMembers.api.js.map +1 -1
  393. package/lib/module/networking/api-requests/rooms.api.js +48 -12
  394. package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
  395. package/lib/module/networking/api-requests/xmppToken.api.js +66 -0
  396. package/lib/module/networking/api-requests/xmppToken.api.js.map +1 -0
  397. package/lib/module/networking/ethoraEvents.js +220 -0
  398. package/lib/module/networking/ethoraEvents.js.map +1 -0
  399. package/lib/module/networking/stanzaHandlers.js +155 -18
  400. package/lib/module/networking/stanzaHandlers.js.map +1 -1
  401. package/lib/module/networking/xmpp/allRoomPresences.xmpp.js +125 -3
  402. package/lib/module/networking/xmpp/allRoomPresences.xmpp.js.map +1 -1
  403. package/lib/module/networking/xmpp/getHistory.xmpp.js +318 -35
  404. package/lib/module/networking/xmpp/getHistory.xmpp.js.map +1 -1
  405. package/lib/module/networking/xmpp/handleStanzas.xmpp.js +7 -0
  406. package/lib/module/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
  407. package/lib/module/networking/xmpp/historyCursor.js +95 -0
  408. package/lib/module/networking/xmpp/historyCursor.js.map +1 -0
  409. package/lib/module/networking/xmpp/mamQueryIds.js +12 -0
  410. package/lib/module/networking/xmpp/mamQueryIds.js.map +1 -0
  411. package/lib/module/networking/xmpp/mamRouter.js +22 -8
  412. package/lib/module/networking/xmpp/mamRouter.js.map +1 -1
  413. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js +68 -62
  414. package/lib/module/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
  415. package/lib/module/networking/xmpp/roomJoinSweep.js +385 -0
  416. package/lib/module/networking/xmpp/roomJoinSweep.js.map +1 -0
  417. package/lib/module/networking/xmpp/sendMediaMessage.xmpp.js +0 -1
  418. package/lib/module/networking/xmpp/sendMediaMessage.xmpp.js.map +1 -1
  419. package/lib/module/networking/xmpp/sendTextMessage.xmpp.js +0 -1
  420. package/lib/module/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
  421. package/lib/module/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js +0 -1
  422. package/lib/module/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js.map +1 -1
  423. package/lib/module/networking/xmppClient.js +269 -41
  424. package/lib/module/networking/xmppClient.js.map +1 -1
  425. package/lib/module/networking/xmppCredentials.js +76 -0
  426. package/lib/module/networking/xmppCredentials.js.map +1 -0
  427. package/lib/module/roomStore/Middleware/jumpThreadMiddleware.js +153 -0
  428. package/lib/module/roomStore/Middleware/jumpThreadMiddleware.js.map +1 -0
  429. package/lib/module/roomStore/Middleware/reactionsMiddleware.js +6 -0
  430. package/lib/module/roomStore/Middleware/reactionsMiddleware.js.map +1 -1
  431. package/lib/module/roomStore/Middleware/unreadMidlleware.js +46 -7
  432. package/lib/module/roomStore/Middleware/unreadMidlleware.js.map +1 -1
  433. package/lib/module/roomStore/chatSettingsSlice.js +13 -0
  434. package/lib/module/roomStore/chatSettingsSlice.js.map +1 -1
  435. package/lib/module/roomStore/index.js +7 -3
  436. package/lib/module/roomStore/index.js.map +1 -1
  437. package/lib/module/roomStore/persistence.js +46 -1
  438. package/lib/module/roomStore/persistence.js.map +1 -1
  439. package/lib/module/roomStore/roomsSlice.js +459 -58
  440. package/lib/module/roomStore/roomsSlice.js.map +1 -1
  441. package/lib/module/roomStore/safeKey.js +37 -0
  442. package/lib/module/roomStore/safeKey.js.map +1 -0
  443. package/lib/module/roomStore/usersSetCap.js +32 -0
  444. package/lib/module/roomStore/usersSetCap.js.map +1 -0
  445. package/lib/module/version.js +1 -1
  446. package/lib/module/version.js.map +1 -1
  447. package/lib/typescript/assets/icons.d.ts +4 -0
  448. package/lib/typescript/assets/icons.d.ts.map +1 -1
  449. package/lib/typescript/components/Header/HeaderRoomList.d.ts.map +1 -1
  450. package/lib/typescript/components/InputComponents/Search.d.ts.map +1 -1
  451. package/lib/typescript/components/MainComponents/ArchivedMessageCard.d.ts +12 -0
  452. package/lib/typescript/components/MainComponents/ArchivedMessageCard.d.ts.map +1 -0
  453. package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
  454. package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
  455. package/lib/typescript/components/MainComponents/ChatWrapper.d.ts.map +1 -1
  456. package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
  457. package/lib/typescript/components/MainComponents/MessageList.d.ts +22 -1
  458. package/lib/typescript/components/MainComponents/MessageList.d.ts.map +1 -1
  459. package/lib/typescript/components/MainComponents/MessageSearchButton.d.ts +7 -0
  460. package/lib/typescript/components/MainComponents/MessageSearchButton.d.ts.map +1 -0
  461. package/lib/typescript/components/MainComponents/ReduxWrapper.d.ts.map +1 -1
  462. package/lib/typescript/components/MainComponents/RoomList.d.ts.map +1 -1
  463. package/lib/typescript/components/Menu/HeaderRoomListMenu.d.ts.map +1 -1
  464. package/lib/typescript/components/MessageBubble/BubbleHighlight.d.ts +12 -0
  465. package/lib/typescript/components/MessageBubble/BubbleHighlight.d.ts.map +1 -0
  466. package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
  467. package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts +5 -0
  468. package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts.map +1 -1
  469. package/lib/typescript/components/MessageBubble/messageMenuLayout.d.ts +29 -0
  470. package/lib/typescript/components/MessageBubble/messageMenuLayout.d.ts.map +1 -0
  471. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts +2 -0
  472. package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
  473. package/lib/typescript/components/Modals/MessageSearchModal/MessageHitResults.d.ts +44 -0
  474. package/lib/typescript/components/Modals/MessageSearchModal/MessageHitResults.d.ts.map +1 -0
  475. package/lib/typescript/components/Modals/MessageSearchModal/MessageSearchModal.d.ts +12 -0
  476. package/lib/typescript/components/Modals/MessageSearchModal/MessageSearchModal.d.ts.map +1 -0
  477. package/lib/typescript/components/Modals/MessageSearchModal/openHit.d.ts +15 -0
  478. package/lib/typescript/components/Modals/MessageSearchModal/openHit.d.ts.map +1 -0
  479. package/lib/typescript/components/Modals/MessageSearchModal/resolveSender.d.ts +34 -0
  480. package/lib/typescript/components/Modals/MessageSearchModal/resolveSender.d.ts.map +1 -0
  481. package/lib/typescript/components/Modals/MessageSearchModal/searchFilters.d.ts +41 -0
  482. package/lib/typescript/components/Modals/MessageSearchModal/searchFilters.d.ts.map +1 -0
  483. package/lib/typescript/components/Modals/MessageSearchModal/snippet.d.ts +15 -0
  484. package/lib/typescript/components/Modals/MessageSearchModal/snippet.d.ts.map +1 -0
  485. package/lib/typescript/components/Modals/MessageSearchModal/useMessageSearch.d.ts +23 -0
  486. package/lib/typescript/components/Modals/MessageSearchModal/useMessageSearch.d.ts.map +1 -0
  487. package/lib/typescript/components/Modals/PublicChatsModal/PublicChatsModal.d.ts +16 -0
  488. package/lib/typescript/components/Modals/PublicChatsModal/PublicChatsModal.d.ts.map +1 -0
  489. package/lib/typescript/components/Modals/PublicChatsModal/publicChatsLogic.d.ts +14 -0
  490. package/lib/typescript/components/Modals/PublicChatsModal/publicChatsLogic.d.ts.map +1 -0
  491. package/lib/typescript/components/Modals/SelectUsersModal/SelectUsersModal.d.ts.map +1 -1
  492. package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts.map +1 -1
  493. package/lib/typescript/components/RoomComponents/SwipeableRoomRow.d.ts +5 -1
  494. package/lib/typescript/components/RoomComponents/SwipeableRoomRow.d.ts.map +1 -1
  495. package/lib/typescript/components/Thread/ThreadHeader.d.ts.map +1 -1
  496. package/lib/typescript/components/Thread/ThreadWrapper.d.ts +1 -0
  497. package/lib/typescript/components/Thread/ThreadWrapper.d.ts.map +1 -1
  498. package/lib/typescript/components/styled/AudioDecoderHost.d.ts +39 -0
  499. package/lib/typescript/components/styled/AudioDecoderHost.d.ts.map +1 -0
  500. package/lib/typescript/components/styled/AudioMessage.d.ts +14 -1
  501. package/lib/typescript/components/styled/AudioMessage.d.ts.map +1 -1
  502. package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
  503. package/lib/typescript/context/MessageNotificationContext.d.ts.map +1 -1
  504. package/lib/typescript/context/xmppProvider.d.ts +2 -0
  505. package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
  506. package/lib/typescript/helpers/audioWaveform.d.ts +54 -0
  507. package/lib/typescript/helpers/audioWaveform.d.ts.map +1 -0
  508. package/lib/typescript/helpers/backgroundJoinSweep.d.ts +14 -0
  509. package/lib/typescript/helpers/backgroundJoinSweep.d.ts.map +1 -0
  510. package/lib/typescript/helpers/bubbleHighlight.d.ts +17 -0
  511. package/lib/typescript/helpers/bubbleHighlight.d.ts.map +1 -0
  512. package/lib/typescript/helpers/checkUniqueUsers.d.ts +2 -2
  513. package/lib/typescript/helpers/checkUniqueUsers.d.ts.map +1 -1
  514. package/lib/typescript/helpers/constants/MODAL_COMPONENTS.d.ts.map +1 -1
  515. package/lib/typescript/helpers/constants/MODAL_TYPES.d.ts +2 -0
  516. package/lib/typescript/helpers/constants/MODAL_TYPES.d.ts.map +1 -1
  517. package/lib/typescript/helpers/createRoomFromApi.d.ts +25 -0
  518. package/lib/typescript/helpers/createRoomFromApi.d.ts.map +1 -1
  519. package/lib/typescript/helpers/dedupeMembers.d.ts +11 -0
  520. package/lib/typescript/helpers/dedupeMembers.d.ts.map +1 -0
  521. package/lib/typescript/helpers/ethoraLogger.d.ts +13 -0
  522. package/lib/typescript/helpers/ethoraLogger.d.ts.map +1 -0
  523. package/lib/typescript/helpers/getUnnamedUsers.d.ts.map +1 -1
  524. package/lib/typescript/helpers/historyPreloadConfig.d.ts +26 -0
  525. package/lib/typescript/helpers/historyPreloadConfig.d.ts.map +1 -0
  526. package/lib/typescript/helpers/historyPreloadScheduler.d.ts +8 -4
  527. package/lib/typescript/helpers/historyPreloadScheduler.d.ts.map +1 -1
  528. package/lib/typescript/helpers/initRoomsPresence.d.ts +7 -0
  529. package/lib/typescript/helpers/initRoomsPresence.d.ts.map +1 -1
  530. package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts.map +1 -1
  531. package/lib/typescript/helpers/isLikelyMucJid.d.ts +19 -0
  532. package/lib/typescript/helpers/isLikelyMucJid.d.ts.map +1 -0
  533. package/lib/typescript/helpers/isMessageSearchEnabled.d.ts +12 -0
  534. package/lib/typescript/helpers/isMessageSearchEnabled.d.ts.map +1 -0
  535. package/lib/typescript/helpers/joiningRoom.d.ts +7 -0
  536. package/lib/typescript/helpers/joiningRoom.d.ts.map +1 -0
  537. package/lib/typescript/helpers/jumpThread.d.ts +48 -0
  538. package/lib/typescript/helpers/jumpThread.d.ts.map +1 -0
  539. package/lib/typescript/helpers/jumpToMessage.d.ts +26 -0
  540. package/lib/typescript/helpers/jumpToMessage.d.ts.map +1 -0
  541. package/lib/typescript/helpers/jumpWindow.d.ts +74 -0
  542. package/lib/typescript/helpers/jumpWindow.d.ts.map +1 -0
  543. package/lib/typescript/helpers/loadRoomHistory.d.ts +34 -0
  544. package/lib/typescript/helpers/loadRoomHistory.d.ts.map +1 -0
  545. package/lib/typescript/helpers/notificationPolicy.d.ts +42 -0
  546. package/lib/typescript/helpers/notificationPolicy.d.ts.map +1 -0
  547. package/lib/typescript/helpers/openRoomAtMessage.d.ts +17 -0
  548. package/lib/typescript/helpers/openRoomAtMessage.d.ts.map +1 -0
  549. package/lib/typescript/helpers/openThreadForJump.d.ts +27 -0
  550. package/lib/typescript/helpers/openThreadForJump.d.ts.map +1 -0
  551. package/lib/typescript/helpers/parseMessageReference.d.ts +18 -5
  552. package/lib/typescript/helpers/parseMessageReference.d.ts.map +1 -1
  553. package/lib/typescript/helpers/publicChatsEntry.d.ts +11 -0
  554. package/lib/typescript/helpers/publicChatsEntry.d.ts.map +1 -0
  555. package/lib/typescript/helpers/roomActivityScore.d.ts +5 -0
  556. package/lib/typescript/helpers/roomActivityScore.d.ts.map +1 -0
  557. package/lib/typescript/helpers/roomUserCount.d.ts +20 -0
  558. package/lib/typescript/helpers/roomUserCount.d.ts.map +1 -0
  559. package/lib/typescript/helpers/runConfiguredHistoryPreload.d.ts +21 -0
  560. package/lib/typescript/helpers/runConfiguredHistoryPreload.d.ts.map +1 -0
  561. package/lib/typescript/helpers/sessionAppId.d.ts +8 -0
  562. package/lib/typescript/helpers/sessionAppId.d.ts.map +1 -0
  563. package/lib/typescript/helpers/timestamp.d.ts +3 -0
  564. package/lib/typescript/helpers/timestamp.d.ts.map +1 -0
  565. package/lib/typescript/helpers/userResolver.d.ts +58 -0
  566. package/lib/typescript/helpers/userResolver.d.ts.map +1 -0
  567. package/lib/typescript/helpers/xmppIdShape.d.ts +10 -0
  568. package/lib/typescript/helpers/xmppIdShape.d.ts.map +1 -0
  569. package/lib/typescript/hooks/useChatWrapperInit.d.ts +2 -0
  570. package/lib/typescript/hooks/useChatWrapperInit.d.ts.map +1 -1
  571. package/lib/typescript/hooks/useHeapSender.d.ts.map +1 -1
  572. package/lib/typescript/hooks/useJumpToMessage.d.ts +116 -0
  573. package/lib/typescript/hooks/useJumpToMessage.d.ts.map +1 -0
  574. package/lib/typescript/hooks/useMessageLoaderQueue.d.ts.map +1 -1
  575. package/lib/typescript/hooks/useMessageQueue.d.ts.map +1 -1
  576. package/lib/typescript/hooks/useRoomDirectory.d.ts +12 -0
  577. package/lib/typescript/hooks/useRoomDirectory.d.ts.map +1 -0
  578. package/lib/typescript/hooks/useRoomInitialization.d.ts.map +1 -1
  579. package/lib/typescript/hooks/useRoomMute.d.ts +8 -0
  580. package/lib/typescript/hooks/useRoomMute.d.ts.map +1 -0
  581. package/lib/typescript/hooks/useRoomState.d.ts +1 -0
  582. package/lib/typescript/hooks/useRoomState.d.ts.map +1 -1
  583. package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
  584. package/lib/typescript/i18n/strings.d.ts.map +1 -1
  585. package/lib/typescript/networking/api-requests/messageSearch.api.d.ts +57 -0
  586. package/lib/typescript/networking/api-requests/messageSearch.api.d.ts.map +1 -0
  587. package/lib/typescript/networking/api-requests/publicChats.api.d.ts +24 -0
  588. package/lib/typescript/networking/api-requests/publicChats.api.d.ts.map +1 -0
  589. package/lib/typescript/networking/api-requests/roomMembers.api.d.ts +19 -1
  590. package/lib/typescript/networking/api-requests/roomMembers.api.d.ts.map +1 -1
  591. package/lib/typescript/networking/api-requests/rooms.api.d.ts.map +1 -1
  592. package/lib/typescript/networking/api-requests/xmppToken.api.d.ts +2 -0
  593. package/lib/typescript/networking/api-requests/xmppToken.api.d.ts.map +1 -0
  594. package/lib/typescript/networking/ethoraEvents.d.ts +45 -0
  595. package/lib/typescript/networking/ethoraEvents.d.ts.map +1 -0
  596. package/lib/typescript/networking/stanzaHandlers.d.ts +1 -1
  597. package/lib/typescript/networking/stanzaHandlers.d.ts.map +1 -1
  598. package/lib/typescript/networking/xmpp/allRoomPresences.xmpp.d.ts +32 -1
  599. package/lib/typescript/networking/xmpp/allRoomPresences.xmpp.d.ts.map +1 -1
  600. package/lib/typescript/networking/xmpp/getHistory.xmpp.d.ts +64 -0
  601. package/lib/typescript/networking/xmpp/getHistory.xmpp.d.ts.map +1 -1
  602. package/lib/typescript/networking/xmpp/handleStanzas.xmpp.d.ts.map +1 -1
  603. package/lib/typescript/networking/xmpp/historyCursor.d.ts +35 -0
  604. package/lib/typescript/networking/xmpp/historyCursor.d.ts.map +1 -0
  605. package/lib/typescript/networking/xmpp/mamQueryIds.d.ts +10 -0
  606. package/lib/typescript/networking/xmpp/mamQueryIds.d.ts.map +1 -0
  607. package/lib/typescript/networking/xmpp/mamRouter.d.ts +7 -0
  608. package/lib/typescript/networking/xmpp/mamRouter.d.ts.map +1 -1
  609. package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts +13 -2
  610. package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts.map +1 -1
  611. package/lib/typescript/networking/xmpp/roomJoinSweep.d.ts +82 -0
  612. package/lib/typescript/networking/xmpp/roomJoinSweep.d.ts.map +1 -0
  613. package/lib/typescript/networking/xmpp/sendMediaMessage.xmpp.d.ts.map +1 -1
  614. package/lib/typescript/networking/xmpp/sendTextMessage.xmpp.d.ts.map +1 -1
  615. package/lib/typescript/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.d.ts.map +1 -1
  616. package/lib/typescript/networking/xmppClient.d.ts +90 -4
  617. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  618. package/lib/typescript/networking/xmppCredentials.d.ts +12 -0
  619. package/lib/typescript/networking/xmppCredentials.d.ts.map +1 -0
  620. package/lib/typescript/roomStore/Middleware/jumpThreadMiddleware.d.ts +3 -0
  621. package/lib/typescript/roomStore/Middleware/jumpThreadMiddleware.d.ts.map +1 -0
  622. package/lib/typescript/roomStore/Middleware/reactionsMiddleware.d.ts.map +1 -1
  623. package/lib/typescript/roomStore/Middleware/unreadMidlleware.d.ts.map +1 -1
  624. package/lib/typescript/roomStore/chatSettingsSlice.d.ts +8 -1
  625. package/lib/typescript/roomStore/chatSettingsSlice.d.ts.map +1 -1
  626. package/lib/typescript/roomStore/index.d.ts +2 -1
  627. package/lib/typescript/roomStore/index.d.ts.map +1 -1
  628. package/lib/typescript/roomStore/persistence.d.ts +8 -0
  629. package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
  630. package/lib/typescript/roomStore/roomsSlice.d.ts +138 -2
  631. package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
  632. package/lib/typescript/roomStore/safeKey.d.ts +13 -0
  633. package/lib/typescript/roomStore/safeKey.d.ts.map +1 -0
  634. package/lib/typescript/roomStore/usersSetCap.d.ts +16 -0
  635. package/lib/typescript/roomStore/usersSetCap.d.ts.map +1 -0
  636. package/lib/typescript/types/models/media.model.d.ts +2 -0
  637. package/lib/typescript/types/models/media.model.d.ts.map +1 -1
  638. package/lib/typescript/types/models/room.model.d.ts +18 -5
  639. package/lib/typescript/types/models/room.model.d.ts.map +1 -1
  640. package/lib/typescript/types/models/xmpp.model.d.ts +8 -1
  641. package/lib/typescript/types/models/xmpp.model.d.ts.map +1 -1
  642. package/lib/typescript/types/types.d.ts +90 -5
  643. package/lib/typescript/types/types.d.ts.map +1 -1
  644. package/lib/typescript/version.d.ts +1 -1
  645. package/lib/typescript/version.d.ts.map +1 -1
  646. package/package.json +1 -1
  647. package/src/assets/icons.tsx +13 -0
  648. package/src/components/Header/HeaderRoomList.tsx +21 -4
  649. package/src/components/InputComponents/Search.tsx +33 -0
  650. package/src/components/MainComponents/ArchivedMessageCard.tsx +139 -0
  651. package/src/components/MainComponents/ChatHeader.tsx +19 -3
  652. package/src/components/MainComponents/ChatRoom.tsx +60 -23
  653. package/src/components/MainComponents/ChatWrapper.tsx +50 -9
  654. package/src/components/MainComponents/MediaMessage.tsx +17 -0
  655. package/src/components/MainComponents/MessageList.tsx +823 -84
  656. package/src/components/MainComponents/MessageSearchButton.tsx +48 -0
  657. package/src/components/MainComponents/ReduxWrapper.tsx +16 -5
  658. package/src/components/MainComponents/RoomList.tsx +125 -0
  659. package/src/components/Menu/HeaderRoomListMenu.tsx +26 -2
  660. package/src/components/MessageBubble/BubbleHighlight.tsx +106 -0
  661. package/src/components/MessageBubble/Message.tsx +265 -177
  662. package/src/components/MessageBubble/MessageInteractions.tsx +109 -86
  663. package/src/components/MessageBubble/messageMenuLayout.ts +59 -0
  664. package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +92 -21
  665. package/src/components/Modals/MessageSearchModal/MessageHitResults.tsx +271 -0
  666. package/src/components/Modals/MessageSearchModal/MessageSearchModal.tsx +487 -0
  667. package/src/components/Modals/MessageSearchModal/openHit.ts +50 -0
  668. package/src/components/Modals/MessageSearchModal/resolveSender.ts +57 -0
  669. package/src/components/Modals/MessageSearchModal/searchFilters.ts +109 -0
  670. package/src/components/Modals/MessageSearchModal/snippet.ts +58 -0
  671. package/src/components/Modals/MessageSearchModal/useMessageSearch.ts +151 -0
  672. package/src/components/Modals/PublicChatsModal/PublicChatsModal.tsx +288 -0
  673. package/src/components/Modals/PublicChatsModal/publicChatsLogic.ts +36 -0
  674. package/src/components/Modals/SelectUsersModal/SelectUsersModal.tsx +8 -1
  675. package/src/components/RoomComponents/ChatRoomItem.tsx +16 -3
  676. package/src/components/RoomComponents/SwipeableRoomRow.tsx +39 -6
  677. package/src/components/Thread/ThreadHeader.tsx +3 -1
  678. package/src/components/Thread/ThreadWrapper.tsx +96 -10
  679. package/src/components/styled/AudioDecoderHost.tsx +351 -0
  680. package/src/components/styled/AudioMessage.tsx +482 -425
  681. package/src/components/styled/SendInput.tsx +42 -4
  682. package/src/context/MessageNotificationContext.tsx +19 -5
  683. package/src/context/xmppProvider.tsx +56 -91
  684. package/src/helpers/audioWaveform.ts +142 -0
  685. package/src/helpers/backgroundJoinSweep.ts +35 -0
  686. package/src/helpers/bubbleHighlight.ts +47 -0
  687. package/src/helpers/checkUniqueUsers.tsx +15 -17
  688. package/src/helpers/constants/MODAL_COMPONENTS.tsx +4 -0
  689. package/src/helpers/constants/MODAL_TYPES.ts +3 -0
  690. package/src/helpers/createRoomFromApi.tsx +45 -4
  691. package/src/helpers/dedupeMembers.ts +29 -0
  692. package/src/helpers/ethoraLogger.ts +50 -0
  693. package/src/helpers/getUnnamedUsers.ts +7 -4
  694. package/src/helpers/historyPreloadConfig.ts +68 -0
  695. package/src/helpers/historyPreloadScheduler.ts +437 -199
  696. package/src/helpers/initRoomsPresence.ts +20 -7
  697. package/src/helpers/insertMessageWithDelimiter.ts +3 -0
  698. package/src/helpers/isLikelyMucJid.ts +72 -0
  699. package/src/helpers/isMessageSearchEnabled.ts +18 -0
  700. package/src/helpers/joiningRoom.ts +13 -0
  701. package/src/helpers/jumpThread.ts +102 -0
  702. package/src/helpers/jumpToMessage.ts +57 -0
  703. package/src/helpers/jumpWindow.ts +212 -0
  704. package/src/helpers/loadRoomHistory.ts +83 -0
  705. package/src/helpers/notificationPolicy.ts +82 -0
  706. package/src/helpers/openRoomAtMessage.ts +38 -0
  707. package/src/helpers/openThreadForJump.ts +96 -0
  708. package/src/helpers/parseMessageReference.ts +37 -8
  709. package/src/helpers/publicChatsEntry.ts +15 -0
  710. package/src/helpers/roomActivityScore.ts +45 -0
  711. package/src/helpers/roomUserCount.ts +44 -0
  712. package/src/helpers/runConfiguredHistoryPreload.ts +76 -0
  713. package/src/helpers/sessionAppId.ts +17 -0
  714. package/src/helpers/timestamp.ts +44 -0
  715. package/src/helpers/userResolver.ts +542 -0
  716. package/src/helpers/xmppIdShape.ts +46 -0
  717. package/src/hooks/useChatWrapperInit.ts +22 -4
  718. package/src/hooks/useHeapSender.tsx +54 -3
  719. package/src/hooks/useJumpToMessage.ts +538 -0
  720. package/src/hooks/useMessageLoaderQueue.tsx +40 -4
  721. package/src/hooks/useMessageQueue.ts +9 -5
  722. package/src/hooks/useRoomDirectory.ts +39 -0
  723. package/src/hooks/useRoomInitialization.tsx +33 -7
  724. package/src/hooks/useRoomMute.ts +42 -0
  725. package/src/hooks/useRoomState.tsx +6 -0
  726. package/src/hooks/useSendMessage.tsx +14 -2
  727. package/src/i18n/strings.ts +312 -0
  728. package/src/networking/api-requests/messageSearch.api.ts +130 -0
  729. package/src/networking/api-requests/publicChats.api.ts +71 -0
  730. package/src/networking/api-requests/roomMembers.api.ts +263 -11
  731. package/src/networking/api-requests/rooms.api.ts +52 -12
  732. package/src/networking/api-requests/xmppToken.api.ts +62 -0
  733. package/src/networking/ethoraEvents.ts +262 -0
  734. package/src/networking/stanzaHandlers.ts +145 -19
  735. package/src/networking/xmpp/allRoomPresences.xmpp.ts +155 -5
  736. package/src/networking/xmpp/getHistory.xmpp.ts +433 -47
  737. package/src/networking/xmpp/handleStanzas.xmpp.ts +8 -0
  738. package/src/networking/xmpp/historyCursor.ts +124 -0
  739. package/src/networking/xmpp/mamQueryIds.ts +11 -0
  740. package/src/networking/xmpp/mamRouter.ts +24 -10
  741. package/src/networking/xmpp/presenceInRoom.xmpp.ts +91 -68
  742. package/src/networking/xmpp/roomJoinSweep.ts +412 -0
  743. package/src/networking/xmpp/sendMediaMessage.xmpp.ts +0 -1
  744. package/src/networking/xmpp/sendTextMessage.xmpp.ts +0 -1
  745. package/src/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.ts +0 -1
  746. package/src/networking/xmppClient.ts +323 -47
  747. package/src/networking/xmppCredentials.ts +87 -0
  748. package/src/roomStore/Middleware/jumpThreadMiddleware.ts +163 -0
  749. package/src/roomStore/Middleware/reactionsMiddleware.tsx +4 -0
  750. package/src/roomStore/Middleware/unreadMidlleware.tsx +59 -11
  751. package/src/roomStore/chatSettingsSlice.ts +11 -0
  752. package/src/roomStore/index.ts +10 -3
  753. package/src/roomStore/persistence.ts +54 -0
  754. package/src/roomStore/roomsSlice.ts +547 -65
  755. package/src/roomStore/safeKey.ts +49 -0
  756. package/src/roomStore/usersSetCap.ts +37 -0
  757. package/src/types/models/media.model.ts +4 -0
  758. package/src/types/models/room.model.ts +18 -5
  759. package/src/types/models/xmpp.model.ts +15 -1
  760. package/src/types/types.ts +95 -5
  761. package/src/version.ts +1 -1
@@ -1,5 +1,69 @@
1
1
  import { Client } from '@xmpp/client';
2
2
  import { IMessage } from '../../types/types';
3
+ /** Where a page is read from. Nothing set means the latest page. */
4
+ export interface HistoryPageCursor {
5
+ /** Page ending just before this archive id (exclusive). */
6
+ before?: number;
7
+ /** Page starting just after this archive id (exclusive). */
8
+ after?: number;
9
+ /**
10
+ * MAM time filter (ISO strings). With one and no before/after cursor the
11
+ * server answers with the FIRST page of the filtered range, oldest first,
12
+ * which is how a row with no archive id is located by its time.
13
+ */
14
+ start?: string;
15
+ end?: string;
16
+ }
17
+ /** One archive page together with what the server's `<fin>` said about it. */
18
+ export interface HistoryPage {
19
+ ok: boolean;
20
+ /** Oldest first, reactions merged on, reaction stanzas themselves left out. */
21
+ messages: IMessage[];
22
+ /** `<fin complete>`: nothing further in the direction that was paged. */
23
+ complete: boolean;
24
+ /** RSM `<first>`: archive id of the first row of the page, null when unknown. */
25
+ first: number | null;
26
+ /** RSM `<last>`: archive id of the last row of the page, null when unknown. */
27
+ last: number | null;
28
+ /** RSM `<count>`: size of the whole (filtered) archive when the server says. */
29
+ count: number | null;
30
+ /** Result stanzas the page carried, receipts and reactions included. */
31
+ received: number;
32
+ /** `<fin>` was present in the answer. */
33
+ finSeen: boolean;
34
+ /** Full room JID the query was addressed to. */
35
+ roomJid: string;
36
+ }
37
+ export interface HistoryPageOptions extends HistoryPageCursor {
38
+ /** Query id; a default unique one is made when absent. */
39
+ id?: string;
40
+ /**
41
+ * Isolated query: tagged so the global handlers skip its results, never
42
+ * touches the room's cursor. Implied by after/start/end.
43
+ */
44
+ window?: boolean;
45
+ timeoutMs?: number;
46
+ /**
47
+ * The caller merges the returned page into the store itself (the preload
48
+ * scheduler and the catch-up pass do): the MAM router then does not apply
49
+ * it. Only meaningful for a live (non-window) page.
50
+ */
51
+ selfApplied?: boolean;
52
+ }
53
+ /**
54
+ * One MAM page, read and parsed, with the RSM bounds of the answer. Always
55
+ * settles: a timeout or an iq error gives `ok: false` and no messages. It
56
+ * stores nothing (reactions aside); the callers decide what a page means.
57
+ */
58
+ export declare const fetchHistoryPage: (client: Client, chatJID: string, max: number, options?: HistoryPageOptions) => Promise<HistoryPage>;
59
+ /**
60
+ * One page of the room's live history: like fetchHistoryPage, and when the
61
+ * page feeds the live list (the latest page, or the one before a cursor) the
62
+ * room's paging cursor follows the server's `<fin>`. A page read by `after`,
63
+ * a time filter or flagged `window` is an isolated query and writes nothing
64
+ * (its rows are read by its own listener, never routed into the live list).
65
+ */
66
+ export declare const getHistoryPage: (client: Client, chatJID: string, max: number, options?: HistoryPageOptions) => Promise<HistoryPage>;
3
67
  export declare const getHistory: (client: Client, chatJID: string, max: number, before?: number, otherId?: string, options?: {
4
68
  selfApplied?: boolean;
5
69
  }) => Promise<IMessage[] | undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"getHistory.xmpp.d.ts","sourceRoot":"","sources":["../../../../src/networking/xmpp/getHistory.xmpp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAO,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAO7C,eAAO,MAAM,UAAU,GACrB,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,KAAK,MAAM,EACX,SAAS,MAAM,EACf,UAAU,MAAM,EAChB,UAAU;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,KAClC,OAAO,CAAC,QAAQ,EAAE,GAAG,SAAS,CAkEhC,CAAC"}
1
+ {"version":3,"file":"getHistory.xmpp.d.ts","sourceRoot":"","sources":["../../../../src/networking/xmpp/getHistory.xmpp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAO,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAmB7C,oEAAoE;AACpE,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,8EAA8E;AAC9E,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,+EAA+E;IAC/E,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,yEAAyE;IACzE,QAAQ,EAAE,OAAO,CAAC;IAClB,iFAAiF;IACjF,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,+EAA+E;IAC/E,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,gFAAgF;IAChF,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAC;IACjB,yCAAyC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,0DAA0D;IAC1D,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAyJD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,KAAK,MAAM,EACX,UAAS,kBAAuB,KAC/B,OAAO,CAAC,WAAW,CAoGrB,CAAC;AAoFF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GACzB,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,KAAK,MAAM,EACX,UAAS,kBAAuB,KAC/B,OAAO,CAAC,WAAW,CAoBrB,CAAC;AAEF,eAAO,MAAM,UAAU,GACrB,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,KAAK,MAAM,EACX,SAAS,MAAM,EACf,UAAU,MAAM,EAChB,UAAU;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,KAClC,OAAO,CAAC,QAAQ,EAAE,GAAG,SAAS,CAQhC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"handleStanzas.xmpp.d.ts","sourceRoot":"","sources":["../../../../src/networking/xmpp/handleStanzas.xmpp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAoB9B,OAAO,UAAU,MAAM,eAAe,CAAC;AAwCvC,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,QA6B/D;AAED,eAAO,MAAM,0BAA0B,QAAO,IAG7C,CAAC"}
1
+ {"version":3,"file":"handleStanzas.xmpp.d.ts","sourceRoot":"","sources":["../../../../src/networking/xmpp/handleStanzas.xmpp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAoB9B,OAAO,UAAU,MAAM,eAAe,CAAC;AAyCvC,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,QA6B/D;AAED,eAAO,MAAM,0BAA0B,QAAO,IAG7C,CAAC"}
@@ -0,0 +1,35 @@
1
+ export declare const isArchiveCursor: (value: unknown) => value is number;
2
+ /** What the room held when a page was requested (a page answers later, and the live handler fills the room meanwhile). */
3
+ export interface RoomHistorySnapshot {
4
+ hadMessages: boolean;
5
+ /** Newest archive id among the real cached messages, 0 when none. */
6
+ newestId: number;
7
+ }
8
+ export declare const snapshotRoomHistory: (roomJid: string) => RoomHistorySnapshot;
9
+ export interface HistoryPageFin {
10
+ roomJid: string;
11
+ /** The `<fin>` element was present in the answer. */
12
+ finSeen: boolean;
13
+ complete: boolean;
14
+ first: number | null;
15
+ last: number | null;
16
+ /** Result stanzas the page carried (receipts and reactions included). */
17
+ received: number;
18
+ }
19
+ /**
20
+ * Write the SERVER's paging cursor after a page that feeds the live list:
21
+ * room.messageStats.firstMessageTimestamp is the oldest archive id of the
22
+ * contiguous history (`<fin><set><first>`), room.historyComplete is the fin's
23
+ * `complete` flag. Windowed queries never come here.
24
+ *
25
+ * - an older page (before set) moves the cursor back, never forward;
26
+ * - a LATEST page must not raise an older cursor when the room already had
27
+ * messages (a late answer would send the loader back to a page it holds);
28
+ * - a full latest page that starts after everything cached leaves a hole, so
29
+ * the cursor restarts at the page's oldest id and the room is not complete.
30
+ */
31
+ export declare const applyHistoryPageCursor: (page: HistoryPageFin, request: {
32
+ before?: number;
33
+ max: number;
34
+ }, snapshot: RoomHistorySnapshot) => void;
35
+ //# sourceMappingURL=historyCursor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"historyCursor.d.ts","sourceRoot":"","sources":["../../../../src/networking/xmpp/historyCursor.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,eAAe,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MACqB,CAAC;AAEhF,0HAA0H;AAC1H,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,OAAO,CAAC;IACrB,qEAAqE;IACrE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,KAAG,mBAarD,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,yEAAyE;IACzE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,sBAAsB,GACjC,MAAM,cAAc,EACpB,SAAS;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EACzC,UAAU,mBAAmB,KAC5B,IAgEF,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * MAM query ids. A windowed query (a page around a jump target, a time
3
+ * lookup) is answered through the same wire as the live history, and the
4
+ * global stanza handlers see every `<result>` of it. They tell the two apart
5
+ * by the query id: anything tagged with this prefix belongs to the caller that
6
+ * asked and must never reach the live message list.
7
+ */
8
+ export declare const WINDOW_QUERY_PREFIX = "window:";
9
+ export declare const isWindowQueryId: (queryId: unknown) => boolean;
10
+ //# sourceMappingURL=mamQueryIds.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mamQueryIds.d.ts","sourceRoot":"","sources":["../../../../src/networking/xmpp/mamQueryIds.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAE7C,eAAO,MAAM,eAAe,GAAI,SAAS,OAAO,KAAG,OACqB,CAAC"}
@@ -1,5 +1,12 @@
1
1
  import { IMessage } from '../../types/types';
2
2
  import { type ExtractedReaction } from '../../helpers/mamReactions';
3
+ /**
4
+ * Replay an archived reaction into the store. Flagged `fromHistory` so
5
+ * reactionsMiddleware leaves the room preview alone: a replay must not turn
6
+ * the last real message into an emoji. (setReactions has no prepare(), so
7
+ * the flag is added by hand.)
8
+ */
9
+ export declare const replayArchivedReaction: (reaction: ExtractedReaction, fallbackRoomJID?: string) => void;
3
10
  export declare const beginMamQuery: (queryId: string, roomJID: string, apply?: boolean) => Promise<IMessage[]>;
4
11
  /**
5
12
  * Give up waiting (timeout). Whatever arrived is still applied — a late
@@ -1 +1 @@
1
- {"version":3,"file":"mamRouter.d.ts","sourceRoot":"","sources":["../../../../src/networking/xmpp/mamRouter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAqB,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAsDvF,eAAO,MAAM,aAAa,GACxB,SAAS,MAAM,EACf,SAAS,MAAM,EACf,eAAY,KACX,OAAO,CAAC,QAAQ,EAAE,CAYjB,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,KAAG,QAAQ,EAOxD,CAAC;AAwCF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,GAAG,KAAG,OAK5C,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,GAAG,EACX,UAAU,iBAAiB,KAC1B,OAKF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,GAAG,EACX,SAAS,QAAQ,GAAG,SAAS,KAC5B,OAOF,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,UAAU,GAAI,QAAQ,GAAG,KAAG,OASxC,CAAC;AAEF,iBAAiB;AACjB,eAAO,MAAM,gBAAgB,YAAwB,CAAC"}
1
+ {"version":3,"file":"mamRouter.d.ts","sourceRoot":"","sources":["../../../../src/networking/xmpp/mamRouter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAqB,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAavF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GACjC,UAAU,iBAAiB,EAC3B,wBAAoB,SAarB,CAAC;AAkCF,eAAO,MAAM,aAAa,GACxB,SAAS,MAAM,EACf,SAAS,MAAM,EACf,eAAY,KACX,OAAO,CAAC,QAAQ,EAAE,CAYjB,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,SAAS,MAAM,KAAG,QAAQ,EAOxD,CAAC;AAwCF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,GAAG,KAAG,OAK5C,CAAC;AAEF,kEAAkE;AAClE,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,GAAG,EACX,UAAU,iBAAiB,KAC1B,OAKF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,GAAG,EACX,SAAS,QAAQ,GAAG,SAAS,KAC5B,OAOF,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,UAAU,GAAI,QAAQ,GAAG,KAAG,OASxC,CAAC;AAEF,iBAAiB;AACjB,eAAO,MAAM,gBAAgB,YAAwB,CAAC"}
@@ -1,5 +1,16 @@
1
1
  import { Client } from '@xmpp/client';
2
2
  import { Element } from '@xmpp/xml';
3
- export declare const __forgetJoinedRooms: (client: Client) => void | undefined;
4
- export declare const presenceInRoom: (client: Client, roomJID: string, delay?: number) => Promise<Element>;
3
+ /**
4
+ * Sends the MUC join presence for `roomJID` and resolves with the room's
5
+ * answer. Rejects with `presence_error:<code>:<jid>` on an error presence,
6
+ * `presence_timeout:<jid>` when nothing answers within `timeoutMs`, and
7
+ * `presence_send_failed:<jid>:...` when the stanza could not be written.
8
+ *
9
+ * `delay` is an optional extra wait after the answer. It used to be a fixed
10
+ * 2 s: the join answer arrives BEFORE the server's replay of the room history
11
+ * (default up to 20 stanzas), and callers waited for that replay to settle.
12
+ * The join now asks for `historyStanzas` (default 0) so nothing is replayed
13
+ * (history comes from MAM), and the default settle delay is 0.
14
+ */
15
+ export declare const presenceInRoom: (client: Client, roomJID: string, delay?: number, timeoutMs?: number, historyStanzas?: number) => Promise<Element>;
5
16
  //# sourceMappingURL=presenceInRoom.xmpp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"presenceInRoom.xmpp.d.ts","sourceRoot":"","sources":["../../../../src/networking/xmpp/presenceInRoom.xmpp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAO,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,eAAO,MAAM,mBAAmB,GAAI,QAAQ,MAAM,qBACb,CAAC;AAEtC,eAAO,MAAM,cAAc,GACzB,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,cAAS,KACR,OAAO,CAAC,OAAO,CAWjB,CAAC"}
1
+ {"version":3,"file":"presenceInRoom.xmpp.d.ts","sourceRoot":"","sources":["../../../../src/networking/xmpp/presenceInRoom.xmpp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAO,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiBpC;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc,GACzB,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,cAAS,EACT,kBAAgB,EAMhB,uBAAkB,KACjB,OAAO,CAAC,OAAO,CA0GjB,CAAC"}
@@ -0,0 +1,82 @@
1
+ import type { Client } from '@xmpp/client';
2
+ import { AllRoomPresenceSummary } from './allRoomPresences.xmpp';
3
+ import type { HistoryQoSConfig } from '../../types/types';
4
+ /**
5
+ * The slice of XmppClient the join manager needs. Keeping it an interface
6
+ * keeps this file free of an import cycle with xmppClient.ts.
7
+ */
8
+ export interface RoomJoinHost {
9
+ /** The underlying @xmpp/client (changes on every reconnect). */
10
+ getClient: () => Client | undefined;
11
+ /** Bumped on every disconnect / reconnect / close. */
12
+ getConnectionEpoch: () => number;
13
+ /** True while the stream is online (join then needs no wait). */
14
+ isOnline?: () => boolean;
15
+ /** Resolves when the stream is online, rejects on timeout. */
16
+ waitForOnline: (timeoutMs?: number) => Promise<void>;
17
+ /** MUC conference domain of this server (custom domains allowed). */
18
+ getConference?: () => string;
19
+ getHistoryQoS: () => HistoryQoSConfig | undefined;
20
+ }
21
+ export interface EnsureRoomPresenceOptions {
22
+ /** Extra wait after the room answered. Default 0. */
23
+ settleDelay?: number;
24
+ /** How long this caller waits for the join. Default 2000. */
25
+ timeoutMs?: number;
26
+ /** false: fire the join and return true at once. Default true. */
27
+ waitForJoin?: boolean;
28
+ source?: 'active_room' | 'send' | 'background' | 'other';
29
+ }
30
+ export declare const SWEEP_RETRY_DELAYS_MS: number[];
31
+ /**
32
+ * Per-connection MUC join state and the background join sweep.
33
+ *
34
+ * Why it exists: the RN client used to join every room with a Promise.all
35
+ * and only then call the session ready, so the room list waited for the
36
+ * slowest of N joins and a join in flight when the socket dropped could
37
+ * poison the next connection. Here joins go through one dedup layer
38
+ * (ensureRoomPresence), the sweep is a bounded pool that runs in the
39
+ * background (active room first, then by recent activity), and every join
40
+ * remembers the connection epoch it started on: when the socket was
41
+ * replaced meanwhile its outcome is discarded (no joined mark, no backoff).
42
+ *
43
+ * `presencesReady` means the whole sweep finished, `priorityPresencesReady`
44
+ * that its first wave (active room + one pool width) settled.
45
+ */
46
+ export declare class RoomJoinManager {
47
+ private readonly host;
48
+ presencesReady: boolean;
49
+ priorityPresencesReady: boolean;
50
+ joinedRooms: Set<string>;
51
+ roomPresenceInFlight: Map<string, Promise<boolean>>;
52
+ roomPresenceBlockedUntil: Map<string, number>;
53
+ sweepRetryTimer: ReturnType<typeof setTimeout> | null;
54
+ private sweepRetryRunning;
55
+ private sendAllPresencesInFlight;
56
+ constructor(host: RoomJoinHost);
57
+ private qos;
58
+ get joinConcurrency(): number;
59
+ get joinHistoryStanzas(): number;
60
+ private get failureBackoffMs();
61
+ private get epoch();
62
+ private isValidRoomJid;
63
+ private isJoinableJid;
64
+ /** Called on every disconnect / reconnect / close: nothing carries over. */
65
+ reset(): void;
66
+ isJoined(roomJid: string): boolean;
67
+ ensureRoomPresence: (roomJID: string, options?: EnsureRoomPresenceOptions) => Promise<boolean>;
68
+ /**
69
+ * Start the background join sweep. Every caller shares one in-flight
70
+ * sweep; a finished sweep is only repeated when rooms appeared since.
71
+ * Never throws.
72
+ */
73
+ sendAllPresencesAndMarkReady(): Promise<void>;
74
+ private hasUnjoinedRooms;
75
+ private runAllPresencesSweep;
76
+ private clearSweepRetry;
77
+ private nextSweepRetryAt;
78
+ private scheduleSweepRetry;
79
+ private runSweepRetry;
80
+ allRoomPresencesStanza(epoch?: number): Promise<AllRoomPresenceSummary>;
81
+ }
82
+ //# sourceMappingURL=roomJoinSweep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roomJoinSweep.d.ts","sourceRoot":"","sources":["../../../../src/networking/xmpp/roomJoinSweep.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAG3C,OAAO,EAEL,sBAAsB,EACvB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,gEAAgE;IAChE,SAAS,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IACpC,sDAAsD;IACtD,kBAAkB,EAAE,MAAM,MAAM,CAAC;IACjC,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,OAAO,CAAC;IACzB,8DAA8D;IAC9D,aAAa,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,qEAAqE;IACrE,aAAa,CAAC,EAAE,MAAM,MAAM,CAAC;IAC7B,aAAa,EAAE,MAAM,gBAAgB,GAAG,SAAS,CAAC;CACnD;AAED,MAAM,WAAW,yBAAyB;IACxC,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,aAAa,GAAG,MAAM,GAAG,YAAY,GAAG,OAAO,CAAC;CAC1D;AAGD,eAAO,MAAM,qBAAqB,UAAsB,CAAC;AAgBzD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,eAAe;IAUd,OAAO,CAAC,QAAQ,CAAC,IAAI;IATjC,cAAc,UAAS;IACvB,sBAAsB,UAAS;IAC/B,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAa;IACrC,oBAAoB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAa;IAChE,wBAAwB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAa;IAC1D,eAAe,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,IAAI,CAAQ;IAC7D,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,wBAAwB,CAA8B;gBAEjC,IAAI,EAAE,YAAY;IAG/C,OAAO,CAAC,GAAG;IAYX,IAAI,eAAe,IAAI,MAAM,CAK5B;IAED,IAAI,kBAAkB,IAAI,MAAM,CAE/B;IAED,OAAO,KAAK,gBAAgB,GAK3B;IAED,OAAO,KAAK,KAAK,GAEhB;IAID,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,aAAa;IAOrB,4EAA4E;IAC5E,KAAK;IAUL,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAKlC,kBAAkB,GAChB,SAAS,MAAM,EACf,UAAU,yBAAyB,KAClC,OAAO,CAAC,OAAO,CAAC,CAkGjB;IAGF;;;;OAIG;IACG,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC;IAanD,OAAO,CAAC,gBAAgB;YAWV,oBAAoB;IA6BlC,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,kBAAkB;YAaZ,aAAa;IAwBrB,sBAAsB,CAC1B,KAAK,GAAE,MAAmB,GACzB,OAAO,CAAC,sBAAsB,CAAC;CA+BnC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sendMediaMessage.xmpp.d.ts","sourceRoot":"","sources":["../../../../src/networking/xmpp/sendMediaMessage.xmpp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAO,MAAM,cAAc,CAAC;AAsB3C,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,GAAG,EACT,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,UAqFnB"}
1
+ {"version":3,"file":"sendMediaMessage.xmpp.d.ts","sourceRoot":"","sources":["../../../../src/networking/xmpp/sendMediaMessage.xmpp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAO,MAAM,cAAc,CAAC;AAsB3C,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,GAAG,EACT,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,UAoFnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"sendTextMessage.xmpp.d.ts","sourceRoot":"","sources":["../../../../src/networking/xmpp/sendTextMessage.xmpp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAO,MAAM,cAAc,CAAC;AAM3C;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,GAAI,WAAW,MAAM,GAAG,SAAS,EAAE,QAAQ,MAAM,KAAG,MAW9E,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,WAAW,MAAM,EACjB,UAAU,MAAM,EAChB,OAAO,MAAM,EACb,eAAe,MAAM,EACrB,aAAa,MAAM,EACnB,oBAAoB,MAAM,EAC1B,UAAU,OAAO,EACjB,gBAAgB,OAAO,EACvB,cAAc,MAAM,EACpB,YAAY,MAAM,EAClB,WAAW,MAAM,SAiElB,CAAC"}
1
+ {"version":3,"file":"sendTextMessage.xmpp.d.ts","sourceRoot":"","sources":["../../../../src/networking/xmpp/sendTextMessage.xmpp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAO,MAAM,cAAc,CAAC;AAM3C;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,GAAI,WAAW,MAAM,GAAG,SAAS,EAAE,QAAQ,MAAM,KAAG,MAW9E,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,QAAQ,MAAM,EACd,SAAS,MAAM,EACf,WAAW,MAAM,EACjB,UAAU,MAAM,EAChB,OAAO,MAAM,EACb,eAAe,MAAM,EACrB,aAAa,MAAM,EACnB,oBAAoB,MAAM,EAC1B,UAAU,OAAO,EACjB,gBAAgB,OAAO,EACvB,cAAc,MAAM,EACpB,YAAY,MAAM,EAClB,WAAW,MAAM,SAgElB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sendTextMessageWithTranslateTag.xmpp.d.ts","sourceRoot":"","sources":["../../../../src/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAO,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIlD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,+BAA+B,GAC1C,QAAQ,MAAM,EACd,eAAe;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,EACD,QAAQ,aAAa,EACrB,WAAW,MAAM,KAChB,OAuDF,CAAC"}
1
+ {"version":3,"file":"sendTextMessageWithTranslateTag.xmpp.d.ts","sourceRoot":"","sources":["../../../../src/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAO,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAIlD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,+BAA+B,GAC1C,QAAQ,MAAM,EACd,eAAe;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,EACD,QAAQ,aAAa,EACrB,WAAW,MAAM,KAChB,OAsDF,CAAC"}
@@ -1,5 +1,7 @@
1
1
  import { Client } from '@xmpp/client';
2
- import { xmppSettingsInterface } from '../types/types';
2
+ import { IMessage, xmppSettingsInterface } from '../types/types';
3
+ import { HistoryPage, HistoryPageCursor } from './xmpp/getHistory.xmpp';
4
+ import { RoomJoinManager } from './xmpp/roomJoinSweep';
3
5
  type HistorySource = 'active' | 'send_ack' | 'background' | 'default';
4
6
  interface HistoryOptions {
5
7
  coalesceRoom?: boolean;
@@ -10,6 +12,26 @@ interface HistoryOptions {
10
12
  * router then does not apply it. Default: applied by the router. */
11
13
  selfApplied?: boolean;
12
14
  }
15
+ /**
16
+ * A history request that has neither answered nor failed by now is dropped
17
+ * (its slot and in-flight key freed) and asked once more. Longer than the
18
+ * request's own 10 s read timeout, so it only trips on a task stuck behind a
19
+ * gate or on a read that never returns.
20
+ */
21
+ export declare const HISTORY_WATCHDOG_MS = 15000;
22
+ /** What the server's <fin> said about one windowed MAM page. */
23
+ export interface HistoryWindowFin {
24
+ complete: boolean;
25
+ first: number | null;
26
+ last: number | null;
27
+ }
28
+ /** One page of a windowed history query, returned instead of stored. */
29
+ export interface HistoryWindowPage extends HistoryWindowFin {
30
+ ok: boolean;
31
+ /** Ascending by time (oldest first), whichever direction was paged. */
32
+ messages: IMessage[];
33
+ }
34
+ export type { HistoryPage, HistoryPageCursor };
13
35
  export type XmppCredentialsProvider = () => Promise<{
14
36
  username: string;
15
37
  password: string;
@@ -52,7 +74,23 @@ export declare class XmppClient {
52
74
  private credentialsProvider;
53
75
  private credentialsRefreshInFlight;
54
76
  private onOnlineCallback;
55
- presencesReady: boolean;
77
+ /**
78
+ * Bumped on every disconnect, reconnect and close. Anything that started
79
+ * on an older connection (a room join, a join sweep) compares against it
80
+ * and drops its result instead of writing into the new connection's state.
81
+ */
82
+ connectionEpoch: number;
83
+ readonly joins: RoomJoinManager;
84
+ /** True once the whole background join sweep finished. */
85
+ get presencesReady(): boolean;
86
+ set presencesReady(value: boolean);
87
+ /**
88
+ * True once the first wave of the sweep (open room + one pool width of the
89
+ * most recently active rooms) settled. Consumers that only need "joining
90
+ * works" (the offline send drain) gate on this, not on the whole sweep.
91
+ */
92
+ get priorityPresencesReady(): boolean;
93
+ set priorityPresencesReady(value: boolean);
56
94
  disableLastRead: boolean;
57
95
  private activeRoomJID;
58
96
  private activeRoomBoostUntil;
@@ -105,6 +143,16 @@ export declare class XmppClient {
105
143
  * lanes land later.
106
144
  */
107
145
  prioritizeRoomPresence(roomJID: string): Promise<boolean>;
146
+ /** Join `roomJID` unless this connection already did (deduped). */
147
+ ensureRoomPresence(roomJID: string, options?: Parameters<RoomJoinManager['ensureRoomPresence']>[1]): Promise<boolean>;
148
+ /**
149
+ * Start (or share) the background join sweep: the open room first, then by
150
+ * recent activity, a few at a time. Resolves when the sweep ends; callers
151
+ * that must not wait simply do not await it. Never rejects.
152
+ */
153
+ sendAllPresencesAndMarkReady(): Promise<void>;
154
+ /** Called on every disconnect / reconnect / close. */
155
+ private bumpConnectionEpoch;
108
156
  /**
109
157
  * Queued history fetch. Coalesces by room: if the same room already has
110
158
  * a higher-priority request in flight, return that promise. Honors
@@ -117,7 +165,9 @@ export declare class XmppClient {
117
165
  id?: string;
118
166
  source?: HistorySource;
119
167
  selfApplied?: boolean;
120
- }): Promise<any>;
168
+ }, reissued?: boolean): Promise<any>;
169
+ private releaseMamEntry;
170
+ private runHistoryTask;
121
171
  private sourceRank;
122
172
  initializeClient(): void;
123
173
  private onDisconnect?;
@@ -166,8 +216,37 @@ export declare class XmppClient {
166
216
  createRoomStanza(title: string, description: string, to?: string): Promise<string>;
167
217
  inviteRoomRequestStanza(to: string, roomJid: string): Promise<void>;
168
218
  leaveTheRoomStanza: (roomJID: string) => void;
169
- presenceInRoomStanza: (roomJID: string) => void;
219
+ /**
220
+ * Join a room (deduped: a room this connection already joined resolves at
221
+ * once without a second presence). Resolves true when joined, false when
222
+ * the join failed or is backing off; never rejects.
223
+ */
224
+ presenceInRoomStanza: (roomJID: string) => Promise<boolean>;
170
225
  getHistoryStanza: (chatJID: string, max: number, before?: number, id?: string, options?: HistoryOptions) => Promise<any>;
226
+ /**
227
+ * One archive page together with the server's RSM answer
228
+ * (`<fin complete><set><first/><last/><count/>`). A latest page or one read
229
+ * `before` a cursor feeds the live list (the stanza handler merges the rows)
230
+ * and moves the room's paging cursor, room.messageStats.firstMessageTimestamp,
231
+ * and room.historyComplete. A page read by `after` or a time filter is an
232
+ * isolated query (see getHistoryWindow). Always settles, never throws.
233
+ */
234
+ getHistoryPage: (chatJID: string, max: number, cursor?: HistoryPageCursor) => Promise<HistoryPage>;
235
+ /**
236
+ * One page of archive for a window around a message, RETURNED rather than
237
+ * stored: its query is tagged so the stanza handlers skip its rows, nothing
238
+ * is merged into the room, and messageStats / historyComplete are left
239
+ * alone. Pass `before` for the page ending just before that archive id,
240
+ * `after` for the page starting just after it (both exclusive; microsecond
241
+ * MAM ids), or `start` / `end` (ISO) for the first page of a time range.
242
+ * Messages come back oldest first, reactions merged.
243
+ */
244
+ getHistoryWindow: (chatJID: string, max: number, cursor: {
245
+ before?: number;
246
+ after?: number;
247
+ start?: string;
248
+ end?: string;
249
+ }) => Promise<HistoryWindowPage>;
171
250
  getLastMessageArchiveStanza(roomJID: string): void;
172
251
  setRoomImageStanza: (roomJid: string, roomThumbnail: string, type: string, roomBackground?: string) => void;
173
252
  getRoomInfoStanza: (roomJID: string) => void;
@@ -181,6 +260,13 @@ export declare class XmppClient {
181
260
  private isStreamReady;
182
261
  /** Replay buffered sends against this (now-online) client, in order. */
183
262
  flushPendingSends(): void;
263
+ /**
264
+ * A send joins its own room first (deduped, fire-and-forget): the join
265
+ * sweep no longer sends every room's presence up front, so a send to a room
266
+ * the sweep has not reached yet would otherwise hit a room we are not in.
267
+ * Presence and message go out synchronously on the same stream, join first.
268
+ */
269
+ private joinForSend;
184
270
  sendMessage: (roomJID: string, firstName: string, lastName: string, photo: string, walletAddress: string, userMessage: string, notDisplayedValue?: string, isReply?: boolean, showInChannel?: boolean, mainMessage?: string, customId?: string) => boolean;
185
271
  deleteMessageStanza(room: string, msgId: string): void;
186
272
  editMessageStanza(room: string, msgId: string, text: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"xmppClient.d.ts","sourceRoot":"","sources":["../../../src/networking/xmppClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"xmppClient.d.ts","sourceRoot":"","sources":["../../../src/networking/xmppClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { IConfig } from '../types/types';
2
+ /**
3
+ * Credentials the XMPP client reconnects with after a SASL
4
+ * `not-authorized`. Order: session rotation (when enabled), the dedicated
5
+ * xmpp-token endpoint, the full re-mint chain, then the stored value.
6
+ * Never throws.
7
+ */
8
+ export declare function recoverXmppCredentials(config?: IConfig): Promise<{
9
+ username: string;
10
+ password: string;
11
+ }>;
12
+ //# sourceMappingURL=xmppCredentials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xmppCredentials.d.ts","sourceRoot":"","sources":["../../../src/networking/xmppCredentials.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAoEjD"}
@@ -0,0 +1,3 @@
1
+ import { Middleware } from '@reduxjs/toolkit';
2
+ export declare const jumpThreadMiddleware: Middleware;
3
+ //# sourceMappingURL=jumpThreadMiddleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jumpThreadMiddleware.d.ts","sourceRoot":"","sources":["../../../../src/roomStore/Middleware/jumpThreadMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAyC9C,eAAO,MAAM,oBAAoB,EAAE,UAyHhC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"reactionsMiddleware.d.ts","sourceRoot":"","sources":["../../../../src/roomStore/Middleware/reactionsMiddleware.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAI9C;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,EAAE,UAgE/B,CAAC"}
1
+ {"version":3,"file":"reactionsMiddleware.d.ts","sourceRoot":"","sources":["../../../../src/roomStore/Middleware/reactionsMiddleware.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAI9C;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,EAAE,UAoE/B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"unreadMidlleware.d.ts","sourceRoot":"","sources":["../../../../src/roomStore/Middleware/unreadMidlleware.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAsH9C,eAAO,MAAM,gBAAgB,EAAE,UA0F5B,CAAC"}
1
+ {"version":3,"file":"unreadMidlleware.d.ts","sourceRoot":"","sources":["../../../../src/roomStore/Middleware/unreadMidlleware.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AA0H9C,eAAO,MAAM,gBAAgB,EAAE,UAsI5B,CAAC"}
@@ -76,6 +76,13 @@ declare const reducers: {
76
76
  xmppPassword?: string;
77
77
  fileToken?: string;
78
78
  }>) => void;
79
+ /**
80
+ * Just the XMPP credential, for POST /v1/users/xmpp-token. refreshTokens
81
+ * above needs a whole token pair, and minting only an XMPP password must
82
+ * not touch the REST session. Like refreshTokens, persistence belongs to
83
+ * the caller, which can await it.
84
+ */
85
+ setXmppPassword: (state: WritableDraft<ChatState>, action: PayloadAction<string>) => void;
79
86
  logout: (state: WritableDraft<ChatState>) => void;
80
87
  setLangSource: (state: WritableDraft<ChatState>, action: PayloadAction<Iso639_1Codes | undefined>) => void;
81
88
  setTranslateMode: (state: WritableDraft<ChatState>, action: PayloadAction<TranslateMode | undefined>) => void;
@@ -88,7 +95,7 @@ export declare const setUser: import("@reduxjs/toolkit").ActionCreatorWithPayloa
88
95
  refreshToken: string;
89
96
  xmppPassword?: string;
90
97
  fileToken?: string;
91
- }, "chat/refreshTokens">, logout: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"chat/logout">, setActiveModal: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<string | undefined, "chat/setActiveModal">, setDeleteModal: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<DeleteModal | undefined, "chat/setDeleteModal">, setSelectedUser: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<IUser | undefined, "chat/setSelectedUser">, updateUser: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
98
+ }, "chat/refreshTokens">, setXmppPassword: import("@reduxjs/toolkit").ActionCreatorWithPayload<string, "chat/setXmppPassword">, logout: import("@reduxjs/toolkit").ActionCreatorWithoutPayload<"chat/logout">, setActiveModal: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<string | undefined, "chat/setActiveModal">, setDeleteModal: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<DeleteModal | undefined, "chat/setDeleteModal">, setSelectedUser: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<IUser | undefined, "chat/setSelectedUser">, updateUser: import("@reduxjs/toolkit").ActionCreatorWithPayload<{
92
99
  updates: Partial<User>;
93
100
  }, "chat/updateUser">, setActiveFile: import("@reduxjs/toolkit").ActionCreatorWithPayload<ModalFile, "chat/setActiveFile">, setStoreClient: import("@reduxjs/toolkit").ActionCreatorWithPayload<any, "chat/setStoreClient">, setLangSource: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<Iso639_1Codes | undefined, "chat/setLangSource">, setTranslateMode: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<TranslateMode | undefined, "chat/setTranslateMode">, setThemePreference: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<ThemePreference | undefined, "chat/setThemePreference">, setPushEnabled: import("@reduxjs/toolkit").ActionCreatorWithPayload<boolean, "chat/setPushEnabled">, setUiLocale: import("@reduxjs/toolkit").ActionCreatorWithOptionalPayload<string | undefined, "chat/setUiLocale">, setConnectionState: import("@reduxjs/toolkit").ActionCreatorWithPayload<ConnectionState, "chat/setConnectionState">;
94
101
  declare const _default: import("redux").Reducer<ChatState>;
@@ -1 +1 @@
1
- {"version":3,"file":"chatSettingsSlice.d.ts","sourceRoot":"","sources":["../../../src/roomStore/chatSettingsSlice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chatSettingsSlice.d.ts","sourceRoot":"","sources":["../../../src/roomStore/chatSettingsSlice.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  import { IRoom } from '../types/types';
2
+ import { resetSessionRoomState } from './persistence';
3
+ export { resetSessionRoomState };
2
4
  declare const rootReducer: import("redux").Reducer<{
3
5
  chatSettingStore: import("./chatSettingsSlice").ChatState;
4
6
  rooms: import("./roomsSlice").RoomMessagesState;
@@ -27,5 +29,4 @@ export declare const store: import("@reduxjs/toolkit").EnhancedStore<{
27
29
  export type AppDispatch = typeof store.dispatch;
28
30
  export declare const getActiveRoom: (state: RootState) => IRoom | null;
29
31
  export declare const persistorReady: Promise<void>;
30
- export {};
31
32
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/roomStore/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAYvC,QAAA,MAAM,WAAW;;;;;;;;;;GAQf,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAiCvD,eAAO,MAAM,KAAK;;;;;;;;;;;;oCAEgC,CAAC;AAEnD,MAAM,MAAM,WAAW,GAAG,OAAO,KAAK,CAAC,QAAQ,CAAC;AAEhD,eAAO,MAAM,aAAa,GAAI,OAAO,SAAS,KAAG,KAAK,GAAG,IAKxD,CAAC;AAIF,eAAO,MAAM,cAAc,eA8CpB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/roomStore/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAOvC,OAAO,EAIL,qBAAqB,EACtB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAEjC,QAAA,MAAM,WAAW;;;;;;;;;;GAQf,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAkCvD,eAAO,MAAM,KAAK;;;;;;;;;;;;oCAEgC,CAAC;AAEnD,MAAM,MAAM,WAAW,GAAG,OAAO,KAAK,CAAC,QAAQ,CAAC;AAEhD,eAAO,MAAM,aAAa,GAAI,OAAO,SAAS,KAAG,KAAK,GAAG,IAKxD,CAAC;AAIF,eAAO,MAAM,cAAc,eAgDpB,CAAC"}
@@ -12,6 +12,14 @@ interface PersistedRoomsState {
12
12
  interface PersistedHeapState {
13
13
  failedMessages: Record<string, FailedMessagePayload>;
14
14
  }
15
+ /**
16
+ * Rehydrate step: a persisted room must be refetched once per session, so
17
+ * a stale 'done' / 'loading' / 'error' preload state is demoted to
18
+ * 'partial' (the room has cached messages, a page that does not overlap the
19
+ * cache replaces it instead of leaving a hole) or 'idle'. The API unread
20
+ * snapshot is dropped: the next /chats/my response re-seeds it.
21
+ */
22
+ export declare const resetSessionRoomState: (roomsMap: Record<string, IRoom>) => Record<string, IRoom>;
15
23
  export declare function reconstructFailedMessagePayload(message: IMessage, roomJID: string): FailedMessagePayload | null;
16
24
  /**
17
25
  * Scan every persisted room for messages still `pending: true` that
@@ -1 +1 @@
1
- {"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../src/roomStore/persistence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAuC5D,eAAO,MAAM,aAAa,MAAM,CAAC;AAMjC,eAAO,MAAM,6BAA6B,MAAM,CAAC;AAEjD,UAAU,kBAAkB;IAC1B,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,UAAU,mBAAmB;IAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CAE9B;AAED,UAAU,kBAAkB;IAC1B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;CAKtD;AA2QD,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,MAAM,GACd,oBAAoB,GAAG,IAAI,CAkC7B;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,IAAI,GAAG,SAAS,EAC/C,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAAG,IAAI,GAAG,SAAS,GACrE,oBAAoB,EAAE,CAaxB;AAuJD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,UAuCnC,CAAC;AAwDF,wBAAsB,kBAAkB,IAAI,OAAO,CAAC;IAClD,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAChC,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAClC,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACjC,CAAC,CA0BD;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAgBzD;AAED,eAAO,MAAM,YAAY;;;;;;CAMxB,CAAC;AACF,eAAO,MAAM,gBAAgB,QAhqBP,MAAM,WAgqBW,CAAC"}
1
+ {"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../src/roomStore/persistence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAuC5D,eAAO,MAAM,aAAa,MAAM,CAAC;AAMjC,eAAO,MAAM,6BAA6B,MAAM,CAAC;AAEjD,UAAU,kBAAkB;IAC1B,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,UAAU,mBAAmB;IAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CAE9B;AAED,UAAU,kBAAkB;IAC1B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;CAKtD;AAyJD;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,GAChC,UAAU,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,KAC9B,MAAM,CAAC,MAAM,EAAE,KAAK,CAgBpB,CAAC;AAgIJ,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,MAAM,GACd,oBAAoB,GAAG,IAAI,CAkC7B;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,IAAI,GAAG,SAAS,EAC/C,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,GAAG,IAAI,GAAG,SAAS,GACrE,oBAAoB,EAAE,CAaxB;AAsKD;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,UAuCnC,CAAC;AAwDF,wBAAsB,kBAAkB,IAAI,OAAO,CAAC;IAClD,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAChC,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAClC,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACjC,CAAC,CA0BD;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAgBzD;AAED,eAAO,MAAM,YAAY;;;;;;CAMxB,CAAC;AACF,eAAO,MAAM,gBAAgB,QAttBP,MAAM,WAstBW,CAAC"}