@ethora/chat-component-rn 26.9.1 → 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 (760) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +19 -0
  3. package/lib/commonjs/assets/icons.js +2 -2
  4. package/lib/commonjs/assets/icons.js.map +1 -1
  5. package/lib/commonjs/components/Header/HeaderRoomList.js +22 -6
  6. package/lib/commonjs/components/Header/HeaderRoomList.js.map +1 -1
  7. package/lib/commonjs/components/InputComponents/Search.js +38 -1
  8. package/lib/commonjs/components/InputComponents/Search.js.map +1 -1
  9. package/lib/commonjs/components/MainComponents/ArchivedMessageCard.js +166 -0
  10. package/lib/commonjs/components/MainComponents/ArchivedMessageCard.js.map +1 -0
  11. package/lib/commonjs/components/MainComponents/ChatHeader.js +22 -5
  12. package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
  13. package/lib/commonjs/components/MainComponents/ChatRoom.js +56 -25
  14. package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
  15. package/lib/commonjs/components/MainComponents/ChatWrapper.js +31 -1
  16. package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
  17. package/lib/commonjs/components/MainComponents/MediaMessage.js +18 -3
  18. package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
  19. package/lib/commonjs/components/MainComponents/MessageList.js +739 -42
  20. package/lib/commonjs/components/MainComponents/MessageList.js.map +1 -1
  21. package/lib/commonjs/components/MainComponents/MessageSearchButton.js +58 -0
  22. package/lib/commonjs/components/MainComponents/MessageSearchButton.js.map +1 -0
  23. package/lib/commonjs/components/MainComponents/ReduxWrapper.js +15 -6
  24. package/lib/commonjs/components/MainComponents/ReduxWrapper.js.map +1 -1
  25. package/lib/commonjs/components/MainComponents/RoomList.js +110 -1
  26. package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
  27. package/lib/commonjs/components/Menu/HeaderRoomListMenu.js +14 -3
  28. package/lib/commonjs/components/Menu/HeaderRoomListMenu.js.map +1 -1
  29. package/lib/commonjs/components/MessageBubble/BubbleHighlight.js +112 -0
  30. package/lib/commonjs/components/MessageBubble/BubbleHighlight.js.map +1 -0
  31. package/lib/commonjs/components/MessageBubble/Message.js +169 -125
  32. package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
  33. package/lib/commonjs/components/MessageBubble/MessageInteractions.js +98 -78
  34. package/lib/commonjs/components/MessageBubble/MessageInteractions.js.map +1 -1
  35. package/lib/commonjs/components/MessageBubble/messageMenuLayout.js +50 -0
  36. package/lib/commonjs/components/MessageBubble/messageMenuLayout.js.map +1 -0
  37. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +73 -37
  38. package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
  39. package/lib/commonjs/components/Modals/MessageSearchModal/MessageHitResults.js +253 -0
  40. package/lib/commonjs/components/Modals/MessageSearchModal/MessageHitResults.js.map +1 -0
  41. package/lib/commonjs/components/Modals/MessageSearchModal/MessageSearchModal.js +488 -0
  42. package/lib/commonjs/components/Modals/MessageSearchModal/MessageSearchModal.js.map +1 -0
  43. package/lib/commonjs/components/Modals/MessageSearchModal/openHit.js +51 -0
  44. package/lib/commonjs/components/Modals/MessageSearchModal/openHit.js.map +1 -0
  45. package/lib/commonjs/components/Modals/MessageSearchModal/resolveSender.js +47 -0
  46. package/lib/commonjs/components/Modals/MessageSearchModal/resolveSender.js.map +1 -0
  47. package/lib/commonjs/components/Modals/MessageSearchModal/searchFilters.js +83 -0
  48. package/lib/commonjs/components/Modals/MessageSearchModal/searchFilters.js.map +1 -0
  49. package/lib/commonjs/components/Modals/MessageSearchModal/snippet.js +61 -0
  50. package/lib/commonjs/components/Modals/MessageSearchModal/snippet.js.map +1 -0
  51. package/lib/commonjs/components/Modals/MessageSearchModal/useMessageSearch.js +136 -0
  52. package/lib/commonjs/components/Modals/MessageSearchModal/useMessageSearch.js.map +1 -0
  53. package/lib/commonjs/components/Modals/PublicChatsModal/PublicChatsModal.js +306 -0
  54. package/lib/commonjs/components/Modals/PublicChatsModal/PublicChatsModal.js.map +1 -0
  55. package/lib/commonjs/components/Modals/PublicChatsModal/publicChatsLogic.js +36 -0
  56. package/lib/commonjs/components/Modals/PublicChatsModal/publicChatsLogic.js.map +1 -0
  57. package/lib/commonjs/components/Modals/SelectUsersModal/SelectUsersModal.js +8 -1
  58. package/lib/commonjs/components/Modals/SelectUsersModal/SelectUsersModal.js.map +1 -1
  59. package/lib/commonjs/components/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 +41 -77
  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 +288 -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 +31 -1
  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 +42 -78
  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 +288 -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.map +1 -1
  505. package/lib/typescript/helpers/audioWaveform.d.ts +54 -0
  506. package/lib/typescript/helpers/audioWaveform.d.ts.map +1 -0
  507. package/lib/typescript/helpers/backgroundJoinSweep.d.ts +14 -0
  508. package/lib/typescript/helpers/backgroundJoinSweep.d.ts.map +1 -0
  509. package/lib/typescript/helpers/bubbleHighlight.d.ts +17 -0
  510. package/lib/typescript/helpers/bubbleHighlight.d.ts.map +1 -0
  511. package/lib/typescript/helpers/checkUniqueUsers.d.ts +2 -2
  512. package/lib/typescript/helpers/checkUniqueUsers.d.ts.map +1 -1
  513. package/lib/typescript/helpers/constants/MODAL_COMPONENTS.d.ts.map +1 -1
  514. package/lib/typescript/helpers/constants/MODAL_TYPES.d.ts +2 -0
  515. package/lib/typescript/helpers/constants/MODAL_TYPES.d.ts.map +1 -1
  516. package/lib/typescript/helpers/createRoomFromApi.d.ts +25 -0
  517. package/lib/typescript/helpers/createRoomFromApi.d.ts.map +1 -1
  518. package/lib/typescript/helpers/dedupeMembers.d.ts +11 -0
  519. package/lib/typescript/helpers/dedupeMembers.d.ts.map +1 -0
  520. package/lib/typescript/helpers/ethoraLogger.d.ts +13 -0
  521. package/lib/typescript/helpers/ethoraLogger.d.ts.map +1 -0
  522. package/lib/typescript/helpers/getUnnamedUsers.d.ts.map +1 -1
  523. package/lib/typescript/helpers/historyPreloadConfig.d.ts +26 -0
  524. package/lib/typescript/helpers/historyPreloadConfig.d.ts.map +1 -0
  525. package/lib/typescript/helpers/historyPreloadScheduler.d.ts +8 -4
  526. package/lib/typescript/helpers/historyPreloadScheduler.d.ts.map +1 -1
  527. package/lib/typescript/helpers/initRoomsPresence.d.ts +7 -0
  528. package/lib/typescript/helpers/initRoomsPresence.d.ts.map +1 -1
  529. package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts.map +1 -1
  530. package/lib/typescript/helpers/isLikelyMucJid.d.ts +19 -0
  531. package/lib/typescript/helpers/isLikelyMucJid.d.ts.map +1 -0
  532. package/lib/typescript/helpers/isMessageSearchEnabled.d.ts +12 -0
  533. package/lib/typescript/helpers/isMessageSearchEnabled.d.ts.map +1 -0
  534. package/lib/typescript/helpers/joiningRoom.d.ts +7 -0
  535. package/lib/typescript/helpers/joiningRoom.d.ts.map +1 -0
  536. package/lib/typescript/helpers/jumpThread.d.ts +48 -0
  537. package/lib/typescript/helpers/jumpThread.d.ts.map +1 -0
  538. package/lib/typescript/helpers/jumpToMessage.d.ts +26 -0
  539. package/lib/typescript/helpers/jumpToMessage.d.ts.map +1 -0
  540. package/lib/typescript/helpers/jumpWindow.d.ts +74 -0
  541. package/lib/typescript/helpers/jumpWindow.d.ts.map +1 -0
  542. package/lib/typescript/helpers/loadRoomHistory.d.ts +34 -0
  543. package/lib/typescript/helpers/loadRoomHistory.d.ts.map +1 -0
  544. package/lib/typescript/helpers/notificationPolicy.d.ts +42 -0
  545. package/lib/typescript/helpers/notificationPolicy.d.ts.map +1 -0
  546. package/lib/typescript/helpers/openRoomAtMessage.d.ts +17 -0
  547. package/lib/typescript/helpers/openRoomAtMessage.d.ts.map +1 -0
  548. package/lib/typescript/helpers/openThreadForJump.d.ts +27 -0
  549. package/lib/typescript/helpers/openThreadForJump.d.ts.map +1 -0
  550. package/lib/typescript/helpers/parseMessageReference.d.ts +18 -5
  551. package/lib/typescript/helpers/parseMessageReference.d.ts.map +1 -1
  552. package/lib/typescript/helpers/publicChatsEntry.d.ts +11 -0
  553. package/lib/typescript/helpers/publicChatsEntry.d.ts.map +1 -0
  554. package/lib/typescript/helpers/roomActivityScore.d.ts +5 -0
  555. package/lib/typescript/helpers/roomActivityScore.d.ts.map +1 -0
  556. package/lib/typescript/helpers/roomUserCount.d.ts +20 -0
  557. package/lib/typescript/helpers/roomUserCount.d.ts.map +1 -0
  558. package/lib/typescript/helpers/runConfiguredHistoryPreload.d.ts +21 -0
  559. package/lib/typescript/helpers/runConfiguredHistoryPreload.d.ts.map +1 -0
  560. package/lib/typescript/helpers/sessionAppId.d.ts +8 -0
  561. package/lib/typescript/helpers/sessionAppId.d.ts.map +1 -0
  562. package/lib/typescript/helpers/timestamp.d.ts +3 -0
  563. package/lib/typescript/helpers/timestamp.d.ts.map +1 -0
  564. package/lib/typescript/helpers/userResolver.d.ts +58 -0
  565. package/lib/typescript/helpers/userResolver.d.ts.map +1 -0
  566. package/lib/typescript/helpers/xmppIdShape.d.ts +10 -0
  567. package/lib/typescript/helpers/xmppIdShape.d.ts.map +1 -0
  568. package/lib/typescript/hooks/useChatWrapperInit.d.ts +2 -0
  569. package/lib/typescript/hooks/useChatWrapperInit.d.ts.map +1 -1
  570. package/lib/typescript/hooks/useHeapSender.d.ts.map +1 -1
  571. package/lib/typescript/hooks/useJumpToMessage.d.ts +116 -0
  572. package/lib/typescript/hooks/useJumpToMessage.d.ts.map +1 -0
  573. package/lib/typescript/hooks/useMessageLoaderQueue.d.ts.map +1 -1
  574. package/lib/typescript/hooks/useMessageQueue.d.ts.map +1 -1
  575. package/lib/typescript/hooks/useRoomDirectory.d.ts +12 -0
  576. package/lib/typescript/hooks/useRoomDirectory.d.ts.map +1 -0
  577. package/lib/typescript/hooks/useRoomInitialization.d.ts.map +1 -1
  578. package/lib/typescript/hooks/useRoomMute.d.ts +8 -0
  579. package/lib/typescript/hooks/useRoomMute.d.ts.map +1 -0
  580. package/lib/typescript/hooks/useRoomState.d.ts +1 -0
  581. package/lib/typescript/hooks/useRoomState.d.ts.map +1 -1
  582. package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
  583. package/lib/typescript/i18n/strings.d.ts.map +1 -1
  584. package/lib/typescript/networking/api-requests/messageSearch.api.d.ts +57 -0
  585. package/lib/typescript/networking/api-requests/messageSearch.api.d.ts.map +1 -0
  586. package/lib/typescript/networking/api-requests/publicChats.api.d.ts +24 -0
  587. package/lib/typescript/networking/api-requests/publicChats.api.d.ts.map +1 -0
  588. package/lib/typescript/networking/api-requests/roomMembers.api.d.ts +19 -1
  589. package/lib/typescript/networking/api-requests/roomMembers.api.d.ts.map +1 -1
  590. package/lib/typescript/networking/api-requests/rooms.api.d.ts.map +1 -1
  591. package/lib/typescript/networking/api-requests/xmppToken.api.d.ts +2 -0
  592. package/lib/typescript/networking/api-requests/xmppToken.api.d.ts.map +1 -0
  593. package/lib/typescript/networking/ethoraEvents.d.ts +45 -0
  594. package/lib/typescript/networking/ethoraEvents.d.ts.map +1 -0
  595. package/lib/typescript/networking/stanzaHandlers.d.ts +1 -1
  596. package/lib/typescript/networking/stanzaHandlers.d.ts.map +1 -1
  597. package/lib/typescript/networking/xmpp/allRoomPresences.xmpp.d.ts +32 -1
  598. package/lib/typescript/networking/xmpp/allRoomPresences.xmpp.d.ts.map +1 -1
  599. package/lib/typescript/networking/xmpp/getHistory.xmpp.d.ts +64 -0
  600. package/lib/typescript/networking/xmpp/getHistory.xmpp.d.ts.map +1 -1
  601. package/lib/typescript/networking/xmpp/handleStanzas.xmpp.d.ts.map +1 -1
  602. package/lib/typescript/networking/xmpp/historyCursor.d.ts +35 -0
  603. package/lib/typescript/networking/xmpp/historyCursor.d.ts.map +1 -0
  604. package/lib/typescript/networking/xmpp/mamQueryIds.d.ts +10 -0
  605. package/lib/typescript/networking/xmpp/mamQueryIds.d.ts.map +1 -0
  606. package/lib/typescript/networking/xmpp/mamRouter.d.ts +7 -0
  607. package/lib/typescript/networking/xmpp/mamRouter.d.ts.map +1 -1
  608. package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts +13 -2
  609. package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts.map +1 -1
  610. package/lib/typescript/networking/xmpp/roomJoinSweep.d.ts +82 -0
  611. package/lib/typescript/networking/xmpp/roomJoinSweep.d.ts.map +1 -0
  612. package/lib/typescript/networking/xmpp/sendMediaMessage.xmpp.d.ts.map +1 -1
  613. package/lib/typescript/networking/xmpp/sendTextMessage.xmpp.d.ts.map +1 -1
  614. package/lib/typescript/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.d.ts.map +1 -1
  615. package/lib/typescript/networking/xmppClient.d.ts +90 -4
  616. package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
  617. package/lib/typescript/networking/xmppCredentials.d.ts +12 -0
  618. package/lib/typescript/networking/xmppCredentials.d.ts.map +1 -0
  619. package/lib/typescript/roomStore/Middleware/jumpThreadMiddleware.d.ts +3 -0
  620. package/lib/typescript/roomStore/Middleware/jumpThreadMiddleware.d.ts.map +1 -0
  621. package/lib/typescript/roomStore/Middleware/reactionsMiddleware.d.ts.map +1 -1
  622. package/lib/typescript/roomStore/Middleware/unreadMidlleware.d.ts.map +1 -1
  623. package/lib/typescript/roomStore/chatSettingsSlice.d.ts +8 -1
  624. package/lib/typescript/roomStore/chatSettingsSlice.d.ts.map +1 -1
  625. package/lib/typescript/roomStore/index.d.ts +2 -1
  626. package/lib/typescript/roomStore/index.d.ts.map +1 -1
  627. package/lib/typescript/roomStore/persistence.d.ts +8 -0
  628. package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
  629. package/lib/typescript/roomStore/roomsSlice.d.ts +138 -2
  630. package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
  631. package/lib/typescript/roomStore/safeKey.d.ts +13 -0
  632. package/lib/typescript/roomStore/safeKey.d.ts.map +1 -0
  633. package/lib/typescript/roomStore/usersSetCap.d.ts +16 -0
  634. package/lib/typescript/roomStore/usersSetCap.d.ts.map +1 -0
  635. package/lib/typescript/types/models/media.model.d.ts +2 -0
  636. package/lib/typescript/types/models/media.model.d.ts.map +1 -1
  637. package/lib/typescript/types/models/room.model.d.ts +18 -5
  638. package/lib/typescript/types/models/room.model.d.ts.map +1 -1
  639. package/lib/typescript/types/models/xmpp.model.d.ts +8 -1
  640. package/lib/typescript/types/models/xmpp.model.d.ts.map +1 -1
  641. package/lib/typescript/types/types.d.ts +88 -5
  642. package/lib/typescript/types/types.d.ts.map +1 -1
  643. package/lib/typescript/version.d.ts +1 -1
  644. package/lib/typescript/version.d.ts.map +1 -1
  645. package/package.json +1 -1
  646. package/src/assets/icons.tsx +13 -0
  647. package/src/components/Header/HeaderRoomList.tsx +21 -4
  648. package/src/components/InputComponents/Search.tsx +33 -0
  649. package/src/components/MainComponents/ArchivedMessageCard.tsx +139 -0
  650. package/src/components/MainComponents/ChatHeader.tsx +19 -3
  651. package/src/components/MainComponents/ChatRoom.tsx +60 -23
  652. package/src/components/MainComponents/ChatWrapper.tsx +23 -4
  653. package/src/components/MainComponents/MediaMessage.tsx +17 -0
  654. package/src/components/MainComponents/MessageList.tsx +823 -84
  655. package/src/components/MainComponents/MessageSearchButton.tsx +48 -0
  656. package/src/components/MainComponents/ReduxWrapper.tsx +16 -5
  657. package/src/components/MainComponents/RoomList.tsx +125 -0
  658. package/src/components/Menu/HeaderRoomListMenu.tsx +26 -2
  659. package/src/components/MessageBubble/BubbleHighlight.tsx +106 -0
  660. package/src/components/MessageBubble/Message.tsx +265 -177
  661. package/src/components/MessageBubble/MessageInteractions.tsx +109 -86
  662. package/src/components/MessageBubble/messageMenuLayout.ts +59 -0
  663. package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +92 -21
  664. package/src/components/Modals/MessageSearchModal/MessageHitResults.tsx +271 -0
  665. package/src/components/Modals/MessageSearchModal/MessageSearchModal.tsx +487 -0
  666. package/src/components/Modals/MessageSearchModal/openHit.ts +50 -0
  667. package/src/components/Modals/MessageSearchModal/resolveSender.ts +57 -0
  668. package/src/components/Modals/MessageSearchModal/searchFilters.ts +109 -0
  669. package/src/components/Modals/MessageSearchModal/snippet.ts +58 -0
  670. package/src/components/Modals/MessageSearchModal/useMessageSearch.ts +151 -0
  671. package/src/components/Modals/PublicChatsModal/PublicChatsModal.tsx +288 -0
  672. package/src/components/Modals/PublicChatsModal/publicChatsLogic.ts +36 -0
  673. package/src/components/Modals/SelectUsersModal/SelectUsersModal.tsx +8 -1
  674. package/src/components/RoomComponents/ChatRoomItem.tsx +16 -3
  675. package/src/components/RoomComponents/SwipeableRoomRow.tsx +39 -6
  676. package/src/components/Thread/ThreadHeader.tsx +3 -1
  677. package/src/components/Thread/ThreadWrapper.tsx +96 -10
  678. package/src/components/styled/AudioDecoderHost.tsx +351 -0
  679. package/src/components/styled/AudioMessage.tsx +482 -425
  680. package/src/components/styled/SendInput.tsx +42 -4
  681. package/src/context/MessageNotificationContext.tsx +19 -5
  682. package/src/context/xmppProvider.tsx +44 -91
  683. package/src/helpers/audioWaveform.ts +142 -0
  684. package/src/helpers/backgroundJoinSweep.ts +35 -0
  685. package/src/helpers/bubbleHighlight.ts +47 -0
  686. package/src/helpers/checkUniqueUsers.tsx +15 -17
  687. package/src/helpers/constants/MODAL_COMPONENTS.tsx +4 -0
  688. package/src/helpers/constants/MODAL_TYPES.ts +3 -0
  689. package/src/helpers/createRoomFromApi.tsx +45 -4
  690. package/src/helpers/dedupeMembers.ts +29 -0
  691. package/src/helpers/ethoraLogger.ts +50 -0
  692. package/src/helpers/getUnnamedUsers.ts +7 -4
  693. package/src/helpers/historyPreloadConfig.ts +68 -0
  694. package/src/helpers/historyPreloadScheduler.ts +437 -199
  695. package/src/helpers/initRoomsPresence.ts +20 -7
  696. package/src/helpers/insertMessageWithDelimiter.ts +3 -0
  697. package/src/helpers/isLikelyMucJid.ts +72 -0
  698. package/src/helpers/isMessageSearchEnabled.ts +18 -0
  699. package/src/helpers/joiningRoom.ts +13 -0
  700. package/src/helpers/jumpThread.ts +102 -0
  701. package/src/helpers/jumpToMessage.ts +57 -0
  702. package/src/helpers/jumpWindow.ts +212 -0
  703. package/src/helpers/loadRoomHistory.ts +83 -0
  704. package/src/helpers/notificationPolicy.ts +82 -0
  705. package/src/helpers/openRoomAtMessage.ts +38 -0
  706. package/src/helpers/openThreadForJump.ts +96 -0
  707. package/src/helpers/parseMessageReference.ts +37 -8
  708. package/src/helpers/publicChatsEntry.ts +15 -0
  709. package/src/helpers/roomActivityScore.ts +45 -0
  710. package/src/helpers/roomUserCount.ts +44 -0
  711. package/src/helpers/runConfiguredHistoryPreload.ts +76 -0
  712. package/src/helpers/sessionAppId.ts +17 -0
  713. package/src/helpers/timestamp.ts +44 -0
  714. package/src/helpers/userResolver.ts +542 -0
  715. package/src/helpers/xmppIdShape.ts +46 -0
  716. package/src/hooks/useChatWrapperInit.ts +22 -4
  717. package/src/hooks/useHeapSender.tsx +54 -3
  718. package/src/hooks/useJumpToMessage.ts +538 -0
  719. package/src/hooks/useMessageLoaderQueue.tsx +40 -4
  720. package/src/hooks/useMessageQueue.ts +9 -5
  721. package/src/hooks/useRoomDirectory.ts +39 -0
  722. package/src/hooks/useRoomInitialization.tsx +33 -7
  723. package/src/hooks/useRoomMute.ts +42 -0
  724. package/src/hooks/useRoomState.tsx +6 -0
  725. package/src/hooks/useSendMessage.tsx +14 -2
  726. package/src/i18n/strings.ts +282 -0
  727. package/src/networking/api-requests/messageSearch.api.ts +130 -0
  728. package/src/networking/api-requests/publicChats.api.ts +71 -0
  729. package/src/networking/api-requests/roomMembers.api.ts +263 -11
  730. package/src/networking/api-requests/rooms.api.ts +52 -12
  731. package/src/networking/api-requests/xmppToken.api.ts +62 -0
  732. package/src/networking/ethoraEvents.ts +262 -0
  733. package/src/networking/stanzaHandlers.ts +145 -19
  734. package/src/networking/xmpp/allRoomPresences.xmpp.ts +155 -5
  735. package/src/networking/xmpp/getHistory.xmpp.ts +433 -47
  736. package/src/networking/xmpp/handleStanzas.xmpp.ts +8 -0
  737. package/src/networking/xmpp/historyCursor.ts +124 -0
  738. package/src/networking/xmpp/mamQueryIds.ts +11 -0
  739. package/src/networking/xmpp/mamRouter.ts +24 -10
  740. package/src/networking/xmpp/presenceInRoom.xmpp.ts +91 -68
  741. package/src/networking/xmpp/roomJoinSweep.ts +412 -0
  742. package/src/networking/xmpp/sendMediaMessage.xmpp.ts +0 -1
  743. package/src/networking/xmpp/sendTextMessage.xmpp.ts +0 -1
  744. package/src/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.ts +0 -1
  745. package/src/networking/xmppClient.ts +323 -47
  746. package/src/networking/xmppCredentials.ts +87 -0
  747. package/src/roomStore/Middleware/jumpThreadMiddleware.ts +163 -0
  748. package/src/roomStore/Middleware/reactionsMiddleware.tsx +4 -0
  749. package/src/roomStore/Middleware/unreadMidlleware.tsx +59 -11
  750. package/src/roomStore/chatSettingsSlice.ts +11 -0
  751. package/src/roomStore/index.ts +10 -3
  752. package/src/roomStore/persistence.ts +54 -0
  753. package/src/roomStore/roomsSlice.ts +547 -65
  754. package/src/roomStore/safeKey.ts +49 -0
  755. package/src/roomStore/usersSetCap.ts +37 -0
  756. package/src/types/models/media.model.ts +4 -0
  757. package/src/types/models/room.model.ts +18 -5
  758. package/src/types/models/xmpp.model.ts +15 -1
  759. package/src/types/types.ts +93 -5
  760. package/src/version.ts +1 -1
@@ -11,19 +11,20 @@ var _reactNative = require("react-native");
11
11
  var _netinfo = _interopRequireDefault(require("@react-native-community/netinfo"));
12
12
  var _VideoCallOverlay = require("../components/VideoCalls/VideoCallOverlay");
13
13
  var _xmppClient = _interopRequireDefault(require("../networking/xmppClient"));
14
+ var _xmppCredentials = require("../networking/xmppCredentials");
14
15
  var _authRefresh = require("../networking/authRefresh");
15
16
  var _clientRegistry = require("../utils/clientRegistry");
16
17
  var _resolveInitBeforeLoadUser = require("../helpers/resolveInitBeforeLoadUser");
17
18
  var _ensureScopedChatCache = require("../helpers/ensureScopedChatCache");
18
19
  var _rooms = require("../networking/api-requests/rooms.api");
19
- var _allRoomPresences = require("../networking/xmpp/allRoomPresences.xmpp");
20
+ var _backgroundJoinSweep = require("../helpers/backgroundJoinSweep");
20
21
  var _pushSubscriptionService = require("../services/pushSubscriptionService");
21
22
  var _roomStore = require("../roomStore");
22
23
  var _chatSettingsSlice = require("../roomStore/chatSettingsSlice");
23
24
  var _useLogout = require("../hooks/useLogout");
24
25
  var _roomsSlice = require("../roomStore/roomsSlice");
25
26
  var _getServerReadTimestamp = require("../helpers/getServerReadTimestamp");
26
- var _historyPreloadScheduler = require("../helpers/historyPreloadScheduler");
27
+ var _runConfiguredHistoryPreload = require("../helpers/runConfiguredHistoryPreload");
27
28
  var _updateMessagesTillLast = require("../helpers/updateMessagesTillLast");
28
29
  var _secureUserStorage = require("../helpers/secureUserStorage");
29
30
  var _persistence = require("../roomStore/persistence");
@@ -72,55 +73,7 @@ const XmppProvider = ({
72
73
  // Returns last-known cached creds if nothing usable is available so
73
74
  // the XmppClient at least doesn't crash on `undefined.password`.
74
75
  const credentialsProvider = (0, _react.useMemo)(() => {
75
- return async () => {
76
- // 1. Make sure the REST tokens are fresh before re-minting XMPP
77
- // creds. This used to call `config.refreshTokens.refreshFunction`
78
- // directly and then fall into step 2, which refreshes again —
79
- // two rotations back to back, which the new backend scheme
80
- // reads as a race at best and token reuse at worst. One call to
81
- // the shared rotation point covers both the consumer-supplied
82
- // function and the built-in endpoint.
83
- if (config?.refreshTokens?.enabled) {
84
- const rotated = await (0, _authRefresh.refreshAuthTokensQuietly)({
85
- force: true
86
- });
87
- if (rotated?.xmppPassword) {
88
- const rotatedUser = _roomStore.store.getState().chatSettingStore.user;
89
- return {
90
- username: rotatedUser?.xmppUsername || rotatedUser?.defaultWallet?.walletAddress || '',
91
- password: rotated.xmppPassword
92
- };
93
- }
94
- }
95
-
96
- // 2. Re-mint XMPP creds via the right priority chain for the
97
- // current auth mode. This call ALWAYS hydrates (unlike
98
- // `resolveInitBeforeLoadUser` which short-circuits when a
99
- // cached user already has xmppCredentials).
100
- const fresh = await (0, _resolveInitBeforeLoadUser.refreshUserCredentialsForXmpp)(config).catch(err => {
101
- (0, _devLogger.pushLog)('warn', 'XMPP creds refresh: full chain failed', err);
102
- return null;
103
- });
104
- if (fresh) {
105
- (0, _resolveInitBeforeLoadUser.applyResolvedUserToStore)(fresh);
106
- return {
107
- username: fresh.xmppUsername || fresh.defaultWallet?.walletAddress || '',
108
- password: fresh.xmppPassword || ''
109
- };
110
- }
111
-
112
- // 3. Last-resort: return the cached creds so reconnect() can
113
- // still attempt a connection. If the original failure was
114
- // a stale JWT this will fail again and the user has to
115
- // re-mount the chat — but at least we don't break the
116
- // transient-network-blip case where the cached creds are
117
- // still valid.
118
- const u = _roomStore.store.getState().chatSettingStore.user;
119
- return {
120
- username: u?.xmppUsername || u?.defaultWallet?.walletAddress || '',
121
- password: u?.xmppPassword || ''
122
- };
123
- };
76
+ return () => (0, _xmppCredentials.recoverXmppCredentials)(config);
124
77
  }, [config?.jwtLogin?.enabled, config?.jwtLogin?.token, config?.refreshTokens?.enabled, config?.userLogin?.enabled, config?.customLogin?.enabled, config?.initBeforeLoadAuth?.myEndpoint]);
125
78
  const initializeClient = (0, _react.useCallback)(async (username, password, xmppSettings) => {
126
79
  const settings = xmppSettings || config?.xmppSettings;
@@ -195,21 +148,28 @@ const XmppProvider = ({
195
148
 
196
149
  // Re-join MUC rooms on every 'online'. After a reconnect the new
197
150
  // XMPP stream isn't a member of any room, so a sent message gets a
198
- // local double-tick but never reaches the room (bug #21). Re-sending
199
- // presence on reconnect fixes delivery. On the very first connect
200
- // the room list isn't loaded yet so this joins nothing — the
201
- // bootstrap's own allRoomPresences handles that pass.
151
+ // local double-tick but never reaches the room (bug #21). The join is
152
+ // a background sweep (open room first, then recent activity, a few at
153
+ // a time) shared with the client's own online handler, so it neither
154
+ // blocks anything nor doubles up. A send / history fetch / room open
155
+ // also joins its own room on demand. On the very first connect the
156
+ // room list isn't loaded yet so this joins little - the bootstrap
157
+ // starts its own sweep once /chats/my has landed.
202
158
  created.setOnOnline(() => {
203
159
  const underlying = created.client;
204
160
  if (!underlying) {
205
161
  return;
206
162
  }
207
- // The headers say "Updating…" until the rooms are joined again and
163
+ // The headers say "Updating..." until the rooms are joined again and
208
164
  // the archive caught up - a stream that is up is not yet a chat
209
165
  // that is. Same tick as the client's own 'online', so the title
210
166
  // never shows the plain state in between.
211
167
  _roomStore.store.dispatch((0, _chatSettingsSlice.setConnectionState)('syncing'));
212
- const rejoin = (0, _allRoomPresences.allRoomPresences)(underlying).catch(e => (0, _devLogger.pushLog)('warn', 'reconnect: allRoomPresences re-join failed', e)).finally(() => subscribeAllRoomsForPush(underlying, 'reconnect'));
168
+ // The join sweep is shared with the client's own online handler
169
+ // (it dedupes); here it is only awaited so the state can settle.
170
+ const rejoin = Promise.resolve().then(() => created.sendAllPresencesAndMarkReady?.()).catch(e => (0, _devLogger.pushLog)('warn', 'reconnect: background join sweep failed', e));
171
+ // Push (mucsub) does not depend on the join: subscribe right away.
172
+ subscribeAllRoomsForPush(underlying, 'reconnect');
213
173
  // Also refresh the private store so unread / lastViewed markers
214
174
  // are accurate after a long reconnect — the MUC re-join above only
215
175
  // restores delivery, not unread state. Idempotent on first connect.
@@ -366,7 +326,7 @@ const XmppProvider = ({
366
326
  }
367
327
  }
368
328
 
369
- // Kick off REST /chats/my; allRoomPresences below needs the
329
+ // Kick off REST /chats/my; the background join sweep below needs the
370
330
  // room list to be in redux, otherwise it joins 0 MUCs and the
371
331
  // user receives zero realtime messages until they manually tap
372
332
  // into each room. Track the promise so we can await it before
@@ -400,14 +360,15 @@ const XmppProvider = ({
400
360
  try {
401
361
  await restRoomsPromise;
402
362
  } catch {}
403
- try {
404
- const roomCount = Object.keys(_roomStore.store.getState().rooms.rooms || {}).length;
405
- (0, _devLogger.pushLog)('xmpp', `initBeforeLoad: joining ${roomCount} rooms via presence…`);
406
- await (0, _allRoomPresences.allRoomPresences)(c.client);
407
- (0, _devLogger.pushLog)('xmpp', 'initBeforeLoad: allRoomPresences ok');
408
- } catch (e) {
409
- (0, _devLogger.pushLog)('warn', 'initBeforeLoad: allRoomPresences failed', e);
410
- }
363
+ // The room list is complete (REST /chats/my seeded it): join the
364
+ // rooms in the BACKGROUND. READY below does not wait for it: a
365
+ // sweep over hundreds of rooms would otherwise hold the whole room
366
+ // list behind it. Open room first, then recent activity; sends,
367
+ // history fetches and opening a room join their own room on demand.
368
+ const roomCount = Object.keys(_roomStore.store.getState().rooms.rooms || {}).length;
369
+ (0, _devLogger.pushLog)('xmpp', `initBeforeLoad: joining ${roomCount} rooms in the background`);
370
+ (0, _backgroundJoinSweep.startBackgroundJoinSweep)(c);
371
+ // Push (mucsub) needs the room list, not the joins.
411
372
  subscribeAllRoomsForPush(c.client, 'initBeforeLoad');
412
373
  _roomStore.store.dispatch((0, _chatSettingsSlice.setStoreClient)(c));
413
374
  completedBootstrapKeyRef.current = key;
@@ -417,18 +378,14 @@ const XmppProvider = ({
417
378
  setProviderBootstrapStatus('ready');
418
379
  (0, _devLogger.pushLog)('rn', 'initBeforeLoad: READY');
419
380
 
420
- // Background-prefetch history for every room (fire-and-forget).
421
- const qos = config?.historyQoS;
422
- const activeRoomJID = _roomStore.store.getState().rooms.activeRoomJID || null;
423
- const defaultRoomJids = config?.defaultRooms?.map(r => typeof r === 'string' ? r : r?.jid).filter(Boolean) || [];
424
- (0, _historyPreloadScheduler.runHistoryPreloadScheduler)({
381
+ // Background history preload (fire-and-forget; does not wait for
382
+ // the join sweep: MAM needs no join, and each fetch joins its own
383
+ // room best-effort). Staged by default: the top rooms by activity
384
+ // first, everything else loads when opened. See `historyPreload`.
385
+ (0, _runConfiguredHistoryPreload.runConfiguredHistoryPreload)({
425
386
  client: c,
426
387
  signal: abortController.signal,
427
- selectedRoomJid: activeRoomJID,
428
- defaultRoomJids,
429
- concurrency: qos?.stagedPreloadConcurrency,
430
- pageSize: qos?.stagedPreloadFirstPassSize,
431
- roomLimit: qos?.preloadTopKRooms
388
+ config
432
389
  }).catch(err => console.warn('History preload scheduler failed', err));
433
390
  } catch (error) {
434
391
  if (cancelled || abortController.signal.aborted) {
@@ -608,7 +565,14 @@ const XmppProvider = ({
608
565
  // only USED here for the one-shot stamp+flush, matching customer
609
566
  // #42: leaving (or backgrounding) a room while scrolled up must not
610
567
  // mark messages the user never reached as read.
611
- visibleBeforeBackground = visibleRoomJID;
568
+ // iOS leaves in two steps, 'inactive' then 'background', and the
569
+ // first one already cleared visibility below. Overwriting here on the
570
+ // second would forget the open chat, so it was never re-marked
571
+ // visible on return: the chat on screen then counted unread and
572
+ // raised in-app toasts for its own messages. Remember, never forget.
573
+ if (visibleRoomJID) {
574
+ visibleBeforeBackground = visibleRoomJID;
575
+ }
612
576
  let boundaryTs = null;
613
577
  if (visibleRoomJID) {
614
578
  boundaryTs = state.rooms?.readBoundaries?.[visibleRoomJID] ?? null;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_netinfo","_interopRequireDefault","_VideoCallOverlay","_xmppClient","_authRefresh","_clientRegistry","_resolveInitBeforeLoadUser","_ensureScopedChatCache","_rooms","_allRoomPresences","_pushSubscriptionService","_roomStore","_chatSettingsSlice","_useLogout","_roomsSlice","_getServerReadTimestamp","_historyPreloadScheduler","_updateMessagesTillLast","_secureUserStorage","_persistence","_devLogger","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","XmppContext","createContext","LOGOUT_EVENT","subscribeAllRoomsForPush","client","reason","rooms","keys","store","getState","length","nick","jid","getLocal","pushSubscriptionService","subscribeToRooms","then","devPushLog","catch","SESSION_LOST_EVENT","exports","XmppProvider","children","config","isVisible","setClient","useState","providerBootstrapStatus","setProviderBootstrapStatus","bootstrapNonce","setBootstrapNonce","initMode","initBeforeLoad","lastCredsRef","useRef","completedBootstrapKeyRef","inflightBootstrapKeyRef","credentialsProvider","useMemo","refreshTokens","enabled","rotated","refreshAuthTokensQuietly","force","xmppPassword","rotatedUser","chatSettingStore","user","username","xmppUsername","defaultWallet","walletAddress","password","fresh","refreshUserCredentialsForXmpp","err","applyResolvedUserToStore","u","jwtLogin","token","userLogin","customLogin","initBeforeLoadAuth","myEndpoint","initializeClient","useCallback","xmppSettings","settings","key","buildXmppClientKey","reusable","getReusableXmppClientByKey","current","isXmppClientReusable","created","withXmppClientInitLock","prevGlobal","getGlobalXmppClient","close","newClient","XmppClient","setCredentialsProvider","setGlobalXmppClient","waitForOnline","console","error","setAuthLostHandler","logoutService","performLogout","finally","DeviceEventEmitter","emit","Promise","resolve","logout","onAfterLogout","setOnOnline","underlying","dispatch","setConnectionState","rejoin","allRoomPresences","markers","getChatsPrivateStoreRequestStanza","catchUp","updateMessagesTillLast","allSettled","status","useEffect","abortController","AbortController","cancelled","MAX_BOOTSTRAP_ATTEMPTS","bootstrapAttempt","BOOTSTRAP_BUDGET_MS","reachedReady","budgetTimer","setTimeout","abort","setUnreadSyncing","clearBudget","clearTimeout","run","explicitUser","appId","baseUrl","devServer","join","mode","clearStoreBeforeInit","setLogoutState","secureUserStorage","remove","undefined","ensureScopedChatCache","resolved","resolveInitBeforeLoadUser","signal","hasResolved","xmppPasswordPresent","setConfig","connectPassword","restRoomsPromise","prefetchRoomsViaRest","c","getRoomsStanza","roomCount","setStoreClient","qos","historyQoS","activeRoomJID","defaultRoomJids","defaultRooms","map","filter","Boolean","runHistoryPreloadScheduler","selectedRoomJid","concurrency","stagedPreloadConcurrency","pageSize","stagedPreloadFirstPassSize","roomLimit","preloadTopKRooms","warn","aborted","backoff","Math","min","message","response","data","id","setInterval","AppState","currentState","suppressReconnect","forceReconnect","ensureStreamAlive","clearInterval","visibleBeforeBackground","suspendInBackground","keepAliveInBackground","sub","addEventListener","next","isSuspended","resume","setVisibleRoom","roomJID","suspend","state","visibleRoomJID","boundaryTs","readBoundaries","readTs","getReadMarkerTimestamp","roomHeapSlice","setLastViewedTimestamp","chatJID","timestamp","deleteRoomMessage","messageId","clearVisibleRoom","flushLastViewedToPrivateStoreStanza","visibleRoomTs","getFlushBoundaryTs","chatWasVisibleRef","wasVisible","lastMessagesRef","lastStampedMs","flushTimer","advance","s","room","messages","newest","freshState","freshBoundaryTs","unsub","subscribe","NetInfo","reachable","isConnected","isInternetReachable","addListener","disconnect","clearPersistedState","contextValue","jsxs","Provider","value","jsx","VideoCallOverlay","useXmppClient","context","useContext","Error","candidates","live","find","emitXmppLogout"],"sourceRoot":"../../../src","sources":["context/xmppProvider.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_netinfo","_interopRequireDefault","_VideoCallOverlay","_xmppClient","_xmppCredentials","_authRefresh","_clientRegistry","_resolveInitBeforeLoadUser","_ensureScopedChatCache","_rooms","_backgroundJoinSweep","_pushSubscriptionService","_roomStore","_chatSettingsSlice","_useLogout","_roomsSlice","_getServerReadTimestamp","_runConfiguredHistoryPreload","_updateMessagesTillLast","_secureUserStorage","_persistence","_devLogger","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","XmppContext","createContext","LOGOUT_EVENT","subscribeAllRoomsForPush","client","reason","rooms","keys","store","getState","length","nick","jid","getLocal","pushSubscriptionService","subscribeToRooms","then","devPushLog","catch","SESSION_LOST_EVENT","exports","XmppProvider","children","config","isVisible","setClient","useState","providerBootstrapStatus","setProviderBootstrapStatus","bootstrapNonce","setBootstrapNonce","initMode","initBeforeLoad","lastCredsRef","useRef","completedBootstrapKeyRef","inflightBootstrapKeyRef","credentialsProvider","useMemo","recoverXmppCredentials","jwtLogin","enabled","token","refreshTokens","userLogin","customLogin","initBeforeLoadAuth","myEndpoint","initializeClient","useCallback","username","password","xmppSettings","settings","key","buildXmppClientKey","reusable","getReusableXmppClientByKey","current","isXmppClientReusable","created","withXmppClientInitLock","prevGlobal","getGlobalXmppClient","close","newClient","XmppClient","setCredentialsProvider","setGlobalXmppClient","waitForOnline","err","console","error","setAuthLostHandler","logoutService","performLogout","finally","DeviceEventEmitter","emit","Promise","resolve","logout","onAfterLogout","setOnOnline","underlying","dispatch","setConnectionState","rejoin","sendAllPresencesAndMarkReady","markers","getChatsPrivateStoreRequestStanza","catchUp","updateMessagesTillLast","allSettled","status","useEffect","abortController","AbortController","cancelled","MAX_BOOTSTRAP_ATTEMPTS","bootstrapAttempt","BOOTSTRAP_BUDGET_MS","reachedReady","budgetTimer","setTimeout","abort","setUnreadSyncing","clearBudget","clearTimeout","run","explicitUser","user","appId","baseUrl","defaultWallet","walletAddress","xmppUsername","devServer","join","mode","clearStoreBeforeInit","setLogoutState","secureUserStorage","remove","undefined","ensureScopedChatCache","resolved","resolveInitBeforeLoadUser","signal","xmppPassword","hasResolved","xmppPasswordPresent","applyResolvedUserToStore","setConfig","connectPassword","rotated","refreshAuthTokensQuietly","force","restRoomsPromise","prefetchRoomsViaRest","c","getRoomsStanza","roomCount","startBackgroundJoinSweep","setStoreClient","runConfiguredHistoryPreload","warn","aborted","backoff","Math","min","message","response","data","id","setInterval","AppState","currentState","suppressReconnect","forceReconnect","ensureStreamAlive","clearInterval","visibleBeforeBackground","suspendInBackground","keepAliveInBackground","sub","addEventListener","next","isSuspended","resume","setVisibleRoom","roomJID","suspend","state","visibleRoomJID","boundaryTs","readBoundaries","readTs","getReadMarkerTimestamp","roomHeapSlice","setLastViewedTimestamp","chatJID","timestamp","deleteRoomMessage","messageId","clearVisibleRoom","flushLastViewedToPrivateStoreStanza","visibleRoomTs","getFlushBoundaryTs","chatWasVisibleRef","activeRoomJID","wasVisible","lastMessagesRef","lastStampedMs","flushTimer","advance","s","room","messages","newest","freshState","freshBoundaryTs","unsub","subscribe","NetInfo","reachable","isConnected","isInternetReachable","addListener","disconnect","clearPersistedState","contextValue","jsxs","Provider","value","jsx","VideoCallOverlay","useXmppClient","context","useContext","Error","candidates","chatSettingStore","live","find","emitXmppLogout"],"sourceRoot":"../../../src","sources":["context/xmppProvider.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.scaleLevels = exports.resamplePeaks = exports.parseWaveForm = exports.parseDurationSeconds = exports.meteringToLevel = exports.formatClipTime = exports.encodeWaveForm = exports.buildWaveformPeaks = exports.WAVEFORM_RESOLUTION = exports.MIN_BAR = void 0;
7
+ /**
8
+ * Waveform helpers for voice messages: the bars a bubble draws, the
9
+ * `waveForm` string a sender attaches to the message, and the recorder's
10
+ * metering turned into the same bars.
11
+ */
12
+
13
+ /** Floor for a bar, as a fraction of the box: silence is still a dot. */
14
+ const MIN_BAR = exports.MIN_BAR = 0.08;
15
+
16
+ /** Resolution a waveform is computed and sent at; bubbles resample it. */
17
+ const WAVEFORM_RESOLUTION = exports.WAVEFORM_RESOLUTION = 64;
18
+
19
+ /**
20
+ * Bars for one clip, from its PCM samples — the same curve as the web
21
+ * client's `buildWaveformPeaks`, so a voice note looks the same on both.
22
+ *
23
+ * RMS per bucket (what the ear hears, not the worst sample), scaled against
24
+ * the 95th percentile so a single click cannot set the scale, then a
25
+ * square-root curve because loudness is perceived that way, and a floor so
26
+ * a quiet passage still reads as a bar rather than as nothing.
27
+ *
28
+ * The decoder WebView carries a copy of this in plain JS (it cannot import
29
+ * modules); keep the two in step.
30
+ */
31
+ const buildWaveformPeaks = (samples, barCount) => {
32
+ const bars = Math.max(1, Math.floor(barCount));
33
+ const bucket = Math.floor(samples.length / bars);
34
+ if (bucket < 1) {
35
+ return new Array(bars).fill(MIN_BAR);
36
+ }
37
+ const rms = [];
38
+ for (let i = 0; i < bars; i += 1) {
39
+ let sum = 0;
40
+ for (let j = i * bucket; j < (i + 1) * bucket; j += 1) {
41
+ sum += samples[j] * samples[j];
42
+ }
43
+ rms.push(Math.sqrt(sum / bucket));
44
+ }
45
+ return scaleLevels(rms);
46
+ };
47
+
48
+ /**
49
+ * Raw per-bar levels (RMS, or linear amplitude from the recorder) → 0..1
50
+ * bars, against the 95th percentile with the square-root curve and floor.
51
+ */
52
+ exports.buildWaveformPeaks = buildWaveformPeaks;
53
+ const scaleLevels = levels => {
54
+ if (!levels.length) {
55
+ return [];
56
+ }
57
+ const sorted = [...levels].sort((a, b) => a - b);
58
+ const reference = sorted[Math.floor(sorted.length * 0.95)] || sorted[sorted.length - 1] || 0;
59
+ if (reference <= 0) {
60
+ return levels.map(() => MIN_BAR);
61
+ }
62
+ return levels.map(value => {
63
+ const scaled = Math.sqrt(Math.min(value / reference, 1));
64
+ return Math.min(1, MIN_BAR + scaled * (1 - MIN_BAR));
65
+ });
66
+ };
67
+
68
+ /**
69
+ * Stretch or squeeze bars to `count`, taking the loudest bar in each slot
70
+ * when squeezing so a short loud word is not averaged away.
71
+ */
72
+ exports.scaleLevels = scaleLevels;
73
+ const resamplePeaks = (peaks, count) => {
74
+ const target = Math.max(1, Math.floor(count));
75
+ if (!peaks.length) {
76
+ return new Array(target).fill(MIN_BAR);
77
+ }
78
+ if (peaks.length === target) {
79
+ return peaks;
80
+ }
81
+ const out = [];
82
+ for (let i = 0; i < target; i += 1) {
83
+ const from = Math.floor(i * peaks.length / target);
84
+ const to = Math.max(from + 1, Math.floor((i + 1) * peaks.length / target));
85
+ let max = 0;
86
+ for (let j = from; j < to && j < peaks.length; j += 1) {
87
+ max = Math.max(max, peaks[j]);
88
+ }
89
+ out.push(max);
90
+ }
91
+ return out;
92
+ };
93
+
94
+ /**
95
+ * Recorder metering (dBFS, about -160..0) → linear amplitude 0..1, which
96
+ * `scaleLevels` then treats like an RMS. Anything at or below -60 dB is
97
+ * room noise and counts as silence.
98
+ */
99
+ exports.resamplePeaks = resamplePeaks;
100
+ const meteringToLevel = db => {
101
+ if (typeof db !== 'number' || !Number.isFinite(db) || db <= -60) {
102
+ return 0;
103
+ }
104
+ return Math.pow(10, Math.min(db, 0) / 20);
105
+ };
106
+
107
+ /**
108
+ * The `waveForm` attribute a voice message carries: comma-separated bar
109
+ * heights, 0..100. Short enough for a stanza attribute, plain enough for
110
+ * any client to read.
111
+ */
112
+ exports.meteringToLevel = meteringToLevel;
113
+ const encodeWaveForm = peaks => peaks.map(p => Math.round(Math.max(0, Math.min(1, p)) * 100)).join(',');
114
+
115
+ /**
116
+ * Bars from a message's `waveForm`, or null when it has none / nothing
117
+ * usable. Accepts the comma list above and a JSON array, in 0..1 or 0..100.
118
+ */
119
+ exports.encodeWaveForm = encodeWaveForm;
120
+ const parseWaveForm = value => {
121
+ if (typeof value !== 'string' || !value.trim()) {
122
+ return null;
123
+ }
124
+ let raw;
125
+ const text = value.trim();
126
+ if (text.startsWith('[')) {
127
+ try {
128
+ const parsed = JSON.parse(text);
129
+ if (!Array.isArray(parsed)) {
130
+ return null;
131
+ }
132
+ raw = parsed;
133
+ } catch {
134
+ return null;
135
+ }
136
+ } else {
137
+ raw = text.split(',');
138
+ }
139
+ const numbers = raw.map(n => Number(n));
140
+ if (numbers.length < 2 || numbers.some(n => !Number.isFinite(n) || n < 0)) {
141
+ return null;
142
+ }
143
+ const max = Math.max(...numbers);
144
+ const scale = max > 1 ? 100 : 1;
145
+ return numbers.map(n => Math.max(MIN_BAR, Math.min(1, n / scale)));
146
+ };
147
+
148
+ /** Seconds from a message's `duration` attribute, or 0 when absent. */
149
+ exports.parseWaveForm = parseWaveForm;
150
+ const parseDurationSeconds = value => {
151
+ const n = Number(value);
152
+ return Number.isFinite(n) && n > 0 ? n : 0;
153
+ };
154
+
155
+ /** `0:07`, `1:23`, `12:05`. */
156
+ exports.parseDurationSeconds = parseDurationSeconds;
157
+ const formatClipTime = millis => {
158
+ const safe = Number.isFinite(millis) && millis > 0 ? millis : 0;
159
+ const totalSec = Math.floor(safe / 1000);
160
+ const min = Math.floor(totalSec / 60);
161
+ const sec = totalSec % 60;
162
+ return `${min}:${sec.toString().padStart(2, '0')}`;
163
+ };
164
+ exports.formatClipTime = formatClipTime;
165
+ //# sourceMappingURL=audioWaveform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["MIN_BAR","exports","WAVEFORM_RESOLUTION","buildWaveformPeaks","samples","barCount","bars","Math","max","floor","bucket","length","Array","fill","rms","i","sum","j","push","sqrt","scaleLevels","levels","sorted","sort","a","b","reference","map","value","scaled","min","resamplePeaks","peaks","count","target","out","from","to","meteringToLevel","db","Number","isFinite","pow","encodeWaveForm","p","round","join","parseWaveForm","trim","raw","text","startsWith","parsed","JSON","parse","isArray","split","numbers","n","some","scale","parseDurationSeconds","formatClipTime","millis","safe","totalSec","sec","toString","padStart"],"sourceRoot":"../../../src","sources":["helpers/audioWaveform.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.startBackgroundJoinSweep = exports.loadRoomsThenJoinInBackground = void 0;
7
+ /**
8
+ * Starting the MUC join sweep without ever waiting for it.
9
+ *
10
+ * The room list is usable as soon as /chats/my has returned (rooms are
11
+ * seeded with lastMessage / unread / usersCnt), so joining every room is a
12
+ * background job: open room first, then recent activity, a few at a time.
13
+ */
14
+
15
+ // Fire-and-forget: never awaited by the room list, never throws.
16
+ const startBackgroundJoinSweep = client => {
17
+ if (!client || typeof client.sendAllPresencesAndMarkReady !== 'function') {
18
+ return;
19
+ }
20
+ Promise.resolve().then(() => client.sendAllPresencesAndMarkReady?.()).catch(error => {
21
+ console.warn('[loadRooms] background join sweep failed', error);
22
+ });
23
+ };
24
+
25
+ // Ends the loading state right after the rooms fetch and joins in the
26
+ // background. Resolves without waiting for any join; a failing fetch starts
27
+ // no sweep and never calls `onListReady`.
28
+ exports.startBackgroundJoinSweep = startBackgroundJoinSweep;
29
+ const loadRoomsThenJoinInBackground = async (client, fetchRooms, onListReady) => {
30
+ const rooms = await fetchRooms();
31
+ startBackgroundJoinSweep(client);
32
+ onListReady();
33
+ return rooms;
34
+ };
35
+ exports.loadRoomsThenJoinInBackground = loadRoomsThenJoinInBackground;
36
+ //# sourceMappingURL=backgroundJoinSweep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["startBackgroundJoinSweep","client","sendAllPresencesAndMarkReady","Promise","resolve","then","catch","error","console","warn","exports","loadRoomsThenJoinInBackground","fetchRooms","onListReady","rooms"],"sourceRoot":"../../../src","sources":["helpers/backgroundJoinSweep.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACO,MAAMA,wBAAwB,GAAIC,MAAsC,IAAK;EAClF,IAAI,CAACA,MAAM,IAAI,OAAOA,MAAM,CAACC,4BAA4B,KAAK,UAAU,EAAE;IACxE;EACF;EACAC,OAAO,CAACC,OAAO,CAAC,CAAC,CACdC,IAAI,CAAC,MAAMJ,MAAM,CAACC,4BAA4B,GAAG,CAAC,CAAC,CACnDI,KAAK,CAAEC,KAAK,IAAK;IAChBC,OAAO,CAACC,IAAI,CAAC,0CAA0C,EAAEF,KAAK,CAAC;EACjE,CAAC,CAAC;AACN,CAAC;;AAED;AACA;AACA;AAAAG,OAAA,CAAAV,wBAAA,GAAAA,wBAAA;AACO,MAAMW,6BAA6B,GAAG,MAAAA,CAC3CV,MAAmB,EACnBW,UAA4B,EAC5BC,WAAuB,KACR;EACf,MAAMC,KAAK,GAAG,MAAMF,UAAU,CAAC,CAAC;EAChCZ,wBAAwB,CAACC,MAAM,CAAC;EAChCY,WAAW,CAAC,CAAC;EACb,OAAOC,KAAK;AACd,CAAC;AAACJ,OAAA,CAAAC,6BAAA,GAAAA,6BAAA","ignoreList":[]}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useBubbleHighlightUntil = exports.setBubbleHighlight = exports.getBubbleHighlightUntil = exports.HIGHLIGHT_MS = void 0;
7
+ var _react = require("react");
8
+ /** How long the jump highlight stays on a bubble. */
9
+ const HIGHLIGHT_MS = exports.HIGHLIGHT_MS = 1000;
10
+ let current = null;
11
+ const listeners = new Set();
12
+ const emit = () => listeners.forEach(listener => listener());
13
+
14
+ /**
15
+ * Highlight the bubble of one message for HIGHLIGHT_MS (a jump just landed on
16
+ * it), or clear the highlight with null. Kept outside the list on purpose: a
17
+ * row that is unmounted and mounted again while the highlight is running (the
18
+ * list recycles rows as the scroll settles) reads the same state, so the
19
+ * highlight follows the message instead of being lost with the row.
20
+ */
21
+ const setBubbleHighlight = (id, now = Date.now()) => {
22
+ current = id === null ? null : {
23
+ id,
24
+ until: now + HIGHLIGHT_MS
25
+ };
26
+ emit();
27
+ };
28
+ exports.setBubbleHighlight = setBubbleHighlight;
29
+ const getBubbleHighlightUntil = id => current && current.id === id ? current.until : 0;
30
+ exports.getBubbleHighlightUntil = getBubbleHighlightUntil;
31
+ const subscribe = listener => {
32
+ listeners.add(listener);
33
+ return () => {
34
+ listeners.delete(listener);
35
+ };
36
+ };
37
+
38
+ /**
39
+ * End time (epoch ms) of the highlight of this message, 0 when it has none.
40
+ * The snapshot is a number, so only the highlighted row re-renders.
41
+ */
42
+ const useBubbleHighlightUntil = id => (0, _react.useSyncExternalStore)(subscribe, () => getBubbleHighlightUntil(id), () => 0);
43
+ exports.useBubbleHighlightUntil = useBubbleHighlightUntil;
44
+ //# sourceMappingURL=bubbleHighlight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","HIGHLIGHT_MS","exports","current","listeners","Set","emit","forEach","listener","setBubbleHighlight","id","now","Date","until","getBubbleHighlightUntil","subscribe","add","delete","useBubbleHighlightUntil","useSyncExternalStore"],"sourceRoot":"../../../src","sources":["helpers/bubbleHighlight.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA;AACO,MAAMC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,IAAI;AAQhC,IAAIE,OAAyB,GAAG,IAAI;AACpC,MAAMC,SAAS,GAAG,IAAIC,GAAG,CAAa,CAAC;AACvC,MAAMC,IAAI,GAAGA,CAAA,KAAMF,SAAS,CAACG,OAAO,CAAEC,QAAQ,IAAKA,QAAQ,CAAC,CAAC,CAAC;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,kBAAkB,GAAGA,CAACC,EAAiB,EAAEC,GAAG,GAAGC,IAAI,CAACD,GAAG,CAAC,CAAC,KAAW;EAC/ER,OAAO,GAAGO,EAAE,KAAK,IAAI,GAAG,IAAI,GAAG;IAAEA,EAAE;IAAEG,KAAK,EAAEF,GAAG,GAAGV;EAAa,CAAC;EAChEK,IAAI,CAAC,CAAC;AACR,CAAC;AAACJ,OAAA,CAAAO,kBAAA,GAAAA,kBAAA;AAEK,MAAMK,uBAAuB,GAAIJ,EAAU,IAChDP,OAAO,IAAIA,OAAO,CAACO,EAAE,KAAKA,EAAE,GAAGP,OAAO,CAACU,KAAK,GAAG,CAAC;AAACX,OAAA,CAAAY,uBAAA,GAAAA,uBAAA;AAEnD,MAAMC,SAAS,GAAIP,QAAoB,IAAK;EAC1CJ,SAAS,CAACY,GAAG,CAACR,QAAQ,CAAC;EACvB,OAAO,MAAM;IACXJ,SAAS,CAACa,MAAM,CAACT,QAAQ,CAAC;EAC5B,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACO,MAAMU,uBAAuB,GAAIR,EAAU,IAChD,IAAAS,2BAAoB,EAClBJ,SAAS,EACT,MAAMD,uBAAuB,CAACJ,EAAE,CAAC,EACjC,MAAM,CACR,CAAC;AAACR,OAAA,CAAAgB,uBAAA,GAAAA,uBAAA","ignoreList":[]}