@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.
- package/CHANGELOG.md +34 -0
- package/README.md +19 -0
- package/lib/commonjs/assets/icons.js +2 -2
- package/lib/commonjs/assets/icons.js.map +1 -1
- package/lib/commonjs/components/Header/HeaderRoomList.js +22 -6
- package/lib/commonjs/components/Header/HeaderRoomList.js.map +1 -1
- package/lib/commonjs/components/InputComponents/Search.js +38 -1
- package/lib/commonjs/components/InputComponents/Search.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ArchivedMessageCard.js +166 -0
- package/lib/commonjs/components/MainComponents/ArchivedMessageCard.js.map +1 -0
- package/lib/commonjs/components/MainComponents/ChatHeader.js +22 -5
- package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatRoom.js +56 -25
- package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatWrapper.js +53 -4
- package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
- package/lib/commonjs/components/MainComponents/MediaMessage.js +18 -3
- package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
- package/lib/commonjs/components/MainComponents/MessageList.js +739 -42
- package/lib/commonjs/components/MainComponents/MessageList.js.map +1 -1
- package/lib/commonjs/components/MainComponents/MessageSearchButton.js +58 -0
- package/lib/commonjs/components/MainComponents/MessageSearchButton.js.map +1 -0
- package/lib/commonjs/components/MainComponents/ReduxWrapper.js +15 -6
- package/lib/commonjs/components/MainComponents/ReduxWrapper.js.map +1 -1
- package/lib/commonjs/components/MainComponents/RoomList.js +110 -1
- package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
- package/lib/commonjs/components/Menu/HeaderRoomListMenu.js +14 -3
- package/lib/commonjs/components/Menu/HeaderRoomListMenu.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/BubbleHighlight.js +112 -0
- package/lib/commonjs/components/MessageBubble/BubbleHighlight.js.map +1 -0
- package/lib/commonjs/components/MessageBubble/Message.js +169 -125
- package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/MessageInteractions.js +98 -78
- package/lib/commonjs/components/MessageBubble/MessageInteractions.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/messageMenuLayout.js +50 -0
- package/lib/commonjs/components/MessageBubble/messageMenuLayout.js.map +1 -0
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +73 -37
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
- package/lib/commonjs/components/Modals/MessageSearchModal/MessageHitResults.js +253 -0
- package/lib/commonjs/components/Modals/MessageSearchModal/MessageHitResults.js.map +1 -0
- package/lib/commonjs/components/Modals/MessageSearchModal/MessageSearchModal.js +488 -0
- package/lib/commonjs/components/Modals/MessageSearchModal/MessageSearchModal.js.map +1 -0
- package/lib/commonjs/components/Modals/MessageSearchModal/openHit.js +51 -0
- package/lib/commonjs/components/Modals/MessageSearchModal/openHit.js.map +1 -0
- package/lib/commonjs/components/Modals/MessageSearchModal/resolveSender.js +47 -0
- package/lib/commonjs/components/Modals/MessageSearchModal/resolveSender.js.map +1 -0
- package/lib/commonjs/components/Modals/MessageSearchModal/searchFilters.js +83 -0
- package/lib/commonjs/components/Modals/MessageSearchModal/searchFilters.js.map +1 -0
- package/lib/commonjs/components/Modals/MessageSearchModal/snippet.js +61 -0
- package/lib/commonjs/components/Modals/MessageSearchModal/snippet.js.map +1 -0
- package/lib/commonjs/components/Modals/MessageSearchModal/useMessageSearch.js +136 -0
- package/lib/commonjs/components/Modals/MessageSearchModal/useMessageSearch.js.map +1 -0
- package/lib/commonjs/components/Modals/PublicChatsModal/PublicChatsModal.js +306 -0
- package/lib/commonjs/components/Modals/PublicChatsModal/PublicChatsModal.js.map +1 -0
- package/lib/commonjs/components/Modals/PublicChatsModal/publicChatsLogic.js +36 -0
- package/lib/commonjs/components/Modals/PublicChatsModal/publicChatsLogic.js.map +1 -0
- package/lib/commonjs/components/Modals/SelectUsersModal/SelectUsersModal.js +8 -1
- package/lib/commonjs/components/Modals/SelectUsersModal/SelectUsersModal.js.map +1 -1
- package/lib/commonjs/components/RoomComponents/ChatRoomItem.js +13 -2
- package/lib/commonjs/components/RoomComponents/ChatRoomItem.js.map +1 -1
- package/lib/commonjs/components/RoomComponents/SwipeableRoomRow.js +38 -6
- package/lib/commonjs/components/RoomComponents/SwipeableRoomRow.js.map +1 -1
- package/lib/commonjs/components/Thread/ThreadHeader.js +3 -1
- package/lib/commonjs/components/Thread/ThreadHeader.js.map +1 -1
- package/lib/commonjs/components/Thread/ThreadWrapper.js +90 -10
- package/lib/commonjs/components/Thread/ThreadWrapper.js.map +1 -1
- package/lib/commonjs/components/styled/AudioDecoderHost.js +338 -0
- package/lib/commonjs/components/styled/AudioDecoderHost.js.map +1 -0
- package/lib/commonjs/components/styled/AudioMessage.js +493 -420
- package/lib/commonjs/components/styled/AudioMessage.js.map +1 -1
- package/lib/commonjs/components/styled/SendInput.js +31 -5
- package/lib/commonjs/components/styled/SendInput.js.map +1 -1
- package/lib/commonjs/context/MessageNotificationContext.js +14 -4
- package/lib/commonjs/context/MessageNotificationContext.js.map +1 -1
- package/lib/commonjs/context/xmppProvider.js +54 -79
- package/lib/commonjs/context/xmppProvider.js.map +1 -1
- package/lib/commonjs/helpers/audioWaveform.js +165 -0
- package/lib/commonjs/helpers/audioWaveform.js.map +1 -0
- package/lib/commonjs/helpers/backgroundJoinSweep.js +36 -0
- package/lib/commonjs/helpers/backgroundJoinSweep.js.map +1 -0
- package/lib/commonjs/helpers/bubbleHighlight.js +44 -0
- package/lib/commonjs/helpers/bubbleHighlight.js.map +1 -0
- package/lib/commonjs/helpers/checkUniqueUsers.js +14 -12
- package/lib/commonjs/helpers/checkUniqueUsers.js.map +1 -1
- package/lib/commonjs/helpers/constants/MODAL_COMPONENTS.js +5 -1
- package/lib/commonjs/helpers/constants/MODAL_COMPONENTS.js.map +1 -1
- package/lib/commonjs/helpers/constants/MODAL_TYPES.js +3 -1
- package/lib/commonjs/helpers/constants/MODAL_TYPES.js.map +1 -1
- package/lib/commonjs/helpers/createRoomFromApi.js +40 -3
- package/lib/commonjs/helpers/createRoomFromApi.js.map +1 -1
- package/lib/commonjs/helpers/dedupeMembers.js +34 -0
- package/lib/commonjs/helpers/dedupeMembers.js.map +1 -0
- package/lib/commonjs/helpers/ethoraLogger.js +56 -0
- package/lib/commonjs/helpers/ethoraLogger.js.map +1 -0
- package/lib/commonjs/helpers/getUnnamedUsers.js +9 -4
- package/lib/commonjs/helpers/getUnnamedUsers.js.map +1 -1
- package/lib/commonjs/helpers/historyPreloadConfig.js +44 -0
- package/lib/commonjs/helpers/historyPreloadConfig.js.map +1 -0
- package/lib/commonjs/helpers/historyPreloadScheduler.js +372 -137
- package/lib/commonjs/helpers/historyPreloadScheduler.js.map +1 -1
- package/lib/commonjs/helpers/initRoomsPresence.js +17 -5
- package/lib/commonjs/helpers/initRoomsPresence.js.map +1 -1
- package/lib/commonjs/helpers/insertMessageWithDelimiter.js +5 -0
- package/lib/commonjs/helpers/insertMessageWithDelimiter.js.map +1 -1
- package/lib/commonjs/helpers/isLikelyMucJid.js +67 -0
- package/lib/commonjs/helpers/isLikelyMucJid.js.map +1 -0
- package/lib/commonjs/helpers/isMessageSearchEnabled.js +18 -0
- package/lib/commonjs/helpers/isMessageSearchEnabled.js.map +1 -0
- package/lib/commonjs/helpers/joiningRoom.js +14 -0
- package/lib/commonjs/helpers/joiningRoom.js.map +1 -0
- package/lib/commonjs/helpers/jumpThread.js +100 -0
- package/lib/commonjs/helpers/jumpThread.js.map +1 -0
- package/lib/commonjs/helpers/jumpToMessage.js +58 -0
- package/lib/commonjs/helpers/jumpToMessage.js.map +1 -0
- package/lib/commonjs/helpers/jumpWindow.js +187 -0
- package/lib/commonjs/helpers/jumpWindow.js.map +1 -0
- package/lib/commonjs/helpers/loadRoomHistory.js +75 -0
- package/lib/commonjs/helpers/loadRoomHistory.js.map +1 -0
- package/lib/commonjs/helpers/notificationPolicy.js +77 -0
- package/lib/commonjs/helpers/notificationPolicy.js.map +1 -0
- package/lib/commonjs/helpers/openRoomAtMessage.js +47 -0
- package/lib/commonjs/helpers/openRoomAtMessage.js.map +1 -0
- package/lib/commonjs/helpers/openThreadForJump.js +72 -0
- package/lib/commonjs/helpers/openThreadForJump.js.map +1 -0
- package/lib/commonjs/helpers/parseMessageReference.js +27 -8
- package/lib/commonjs/helpers/parseMessageReference.js.map +1 -1
- package/lib/commonjs/helpers/publicChatsEntry.js +17 -0
- package/lib/commonjs/helpers/publicChatsEntry.js.map +1 -0
- package/lib/commonjs/helpers/roomActivityScore.js +37 -0
- package/lib/commonjs/helpers/roomActivityScore.js.map +1 -0
- package/lib/commonjs/helpers/roomUserCount.js +36 -0
- package/lib/commonjs/helpers/roomUserCount.js.map +1 -0
- package/lib/commonjs/helpers/runConfiguredHistoryPreload.js +68 -0
- package/lib/commonjs/helpers/runConfiguredHistoryPreload.js.map +1 -0
- package/lib/commonjs/helpers/sessionAppId.js +24 -0
- package/lib/commonjs/helpers/sessionAppId.js.map +1 -0
- package/lib/commonjs/helpers/timestamp.js +43 -0
- package/lib/commonjs/helpers/timestamp.js.map +1 -0
- package/lib/commonjs/helpers/userResolver.js +517 -0
- package/lib/commonjs/helpers/userResolver.js.map +1 -0
- package/lib/commonjs/helpers/xmppIdShape.js +52 -0
- package/lib/commonjs/helpers/xmppIdShape.js.map +1 -0
- package/lib/commonjs/hooks/useChatWrapperInit.js +27 -5
- package/lib/commonjs/hooks/useChatWrapperInit.js.map +1 -1
- package/lib/commonjs/hooks/useHeapSender.js +54 -3
- package/lib/commonjs/hooks/useHeapSender.js.map +1 -1
- package/lib/commonjs/hooks/useJumpToMessage.js +411 -0
- package/lib/commonjs/hooks/useJumpToMessage.js.map +1 -0
- package/lib/commonjs/hooks/useMessageLoaderQueue.js +32 -5
- package/lib/commonjs/hooks/useMessageLoaderQueue.js.map +1 -1
- package/lib/commonjs/hooks/useMessageQueue.js +13 -5
- package/lib/commonjs/hooks/useMessageQueue.js.map +1 -1
- package/lib/commonjs/hooks/useRoomDirectory.js +29 -0
- package/lib/commonjs/hooks/useRoomDirectory.js.map +1 -0
- package/lib/commonjs/hooks/useRoomInitialization.js +27 -5
- package/lib/commonjs/hooks/useRoomInitialization.js.map +1 -1
- package/lib/commonjs/hooks/useRoomMute.js +62 -0
- package/lib/commonjs/hooks/useRoomMute.js.map +1 -0
- package/lib/commonjs/hooks/useRoomState.js +3 -1
- package/lib/commonjs/hooks/useRoomState.js.map +1 -1
- package/lib/commonjs/hooks/useSendMessage.js +13 -3
- package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
- package/lib/commonjs/i18n/strings.js +318 -6
- package/lib/commonjs/i18n/strings.js.map +1 -1
- package/lib/commonjs/networking/api-requests/messageSearch.api.js +87 -0
- package/lib/commonjs/networking/api-requests/messageSearch.api.js.map +1 -0
- package/lib/commonjs/networking/api-requests/publicChats.api.js +48 -0
- package/lib/commonjs/networking/api-requests/publicChats.api.js.map +1 -0
- package/lib/commonjs/networking/api-requests/roomMembers.api.js +253 -4
- package/lib/commonjs/networking/api-requests/roomMembers.api.js.map +1 -1
- package/lib/commonjs/networking/api-requests/rooms.api.js +48 -12
- package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
- package/lib/commonjs/networking/api-requests/xmppToken.api.js +71 -0
- package/lib/commonjs/networking/api-requests/xmppToken.api.js.map +1 -0
- package/lib/commonjs/networking/ethoraEvents.js +227 -0
- package/lib/commonjs/networking/ethoraEvents.js.map +1 -0
- package/lib/commonjs/networking/stanzaHandlers.js +153 -16
- package/lib/commonjs/networking/stanzaHandlers.js.map +1 -1
- package/lib/commonjs/networking/xmpp/allRoomPresences.xmpp.js +124 -3
- package/lib/commonjs/networking/xmpp/allRoomPresences.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmpp/getHistory.xmpp.js +319 -35
- package/lib/commonjs/networking/xmpp/getHistory.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js +7 -0
- package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmpp/historyCursor.js +101 -0
- package/lib/commonjs/networking/xmpp/historyCursor.js.map +1 -0
- package/lib/commonjs/networking/xmpp/mamQueryIds.js +17 -0
- package/lib/commonjs/networking/xmpp/mamQueryIds.js.map +1 -0
- package/lib/commonjs/networking/xmpp/mamRouter.js +24 -9
- package/lib/commonjs/networking/xmpp/mamRouter.js.map +1 -1
- package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js +70 -65
- package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmpp/roomJoinSweep.js +389 -0
- package/lib/commonjs/networking/xmpp/roomJoinSweep.js.map +1 -0
- package/lib/commonjs/networking/xmpp/sendMediaMessage.xmpp.js +0 -1
- package/lib/commonjs/networking/xmpp/sendMediaMessage.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js +0 -1
- package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js +0 -1
- package/lib/commonjs/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmppClient.js +269 -41
- package/lib/commonjs/networking/xmppClient.js.map +1 -1
- package/lib/commonjs/networking/xmppCredentials.js +80 -0
- package/lib/commonjs/networking/xmppCredentials.js.map +1 -0
- package/lib/commonjs/roomStore/Middleware/jumpThreadMiddleware.js +158 -0
- package/lib/commonjs/roomStore/Middleware/jumpThreadMiddleware.js.map +1 -0
- package/lib/commonjs/roomStore/Middleware/reactionsMiddleware.js +6 -0
- package/lib/commonjs/roomStore/Middleware/reactionsMiddleware.js.map +1 -1
- package/lib/commonjs/roomStore/Middleware/unreadMidlleware.js +45 -7
- package/lib/commonjs/roomStore/Middleware/unreadMidlleware.js.map +1 -1
- package/lib/commonjs/roomStore/chatSettingsSlice.js +15 -1
- package/lib/commonjs/roomStore/chatSettingsSlice.js.map +1 -1
- package/lib/commonjs/roomStore/index.js +13 -3
- package/lib/commonjs/roomStore/index.js.map +1 -1
- package/lib/commonjs/roomStore/persistence.js +48 -1
- package/lib/commonjs/roomStore/persistence.js.map +1 -1
- package/lib/commonjs/roomStore/roomsSlice.js +474 -60
- package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
- package/lib/commonjs/roomStore/safeKey.js +44 -0
- package/lib/commonjs/roomStore/safeKey.js.map +1 -0
- package/lib/commonjs/roomStore/usersSetCap.js +37 -0
- package/lib/commonjs/roomStore/usersSetCap.js.map +1 -0
- package/lib/commonjs/version.js +1 -1
- package/lib/commonjs/version.js.map +1 -1
- package/lib/module/assets/icons.js +1 -1
- package/lib/module/assets/icons.js.map +1 -1
- package/lib/module/components/Header/HeaderRoomList.js +23 -7
- package/lib/module/components/Header/HeaderRoomList.js.map +1 -1
- package/lib/module/components/InputComponents/Search.js +39 -2
- package/lib/module/components/InputComponents/Search.js.map +1 -1
- package/lib/module/components/MainComponents/ArchivedMessageCard.js +161 -0
- package/lib/module/components/MainComponents/ArchivedMessageCard.js.map +1 -0
- package/lib/module/components/MainComponents/ChatHeader.js +22 -5
- package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/module/components/MainComponents/ChatRoom.js +57 -26
- package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
- package/lib/module/components/MainComponents/ChatWrapper.js +54 -5
- package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
- package/lib/module/components/MainComponents/MediaMessage.js +18 -3
- package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
- package/lib/module/components/MainComponents/MessageList.js +740 -42
- package/lib/module/components/MainComponents/MessageList.js.map +1 -1
- package/lib/module/components/MainComponents/MessageSearchButton.js +48 -0
- package/lib/module/components/MainComponents/MessageSearchButton.js.map +1 -0
- package/lib/module/components/MainComponents/ReduxWrapper.js +15 -7
- package/lib/module/components/MainComponents/ReduxWrapper.js.map +1 -1
- package/lib/module/components/MainComponents/RoomList.js +111 -2
- package/lib/module/components/MainComponents/RoomList.js.map +1 -1
- package/lib/module/components/Menu/HeaderRoomListMenu.js +15 -4
- package/lib/module/components/Menu/HeaderRoomListMenu.js.map +1 -1
- package/lib/module/components/MessageBubble/BubbleHighlight.js +106 -0
- package/lib/module/components/MessageBubble/BubbleHighlight.js.map +1 -0
- package/lib/module/components/MessageBubble/Message.js +172 -127
- package/lib/module/components/MessageBubble/Message.js.map +1 -1
- package/lib/module/components/MessageBubble/MessageInteractions.js +98 -78
- package/lib/module/components/MessageBubble/MessageInteractions.js.map +1 -1
- package/lib/module/components/MessageBubble/messageMenuLayout.js +45 -0
- package/lib/module/components/MessageBubble/messageMenuLayout.js.map +1 -0
- package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +74 -38
- package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
- package/lib/module/components/Modals/MessageSearchModal/MessageHitResults.js +243 -0
- package/lib/module/components/Modals/MessageSearchModal/MessageHitResults.js.map +1 -0
- package/lib/module/components/Modals/MessageSearchModal/MessageSearchModal.js +482 -0
- package/lib/module/components/Modals/MessageSearchModal/MessageSearchModal.js.map +1 -0
- package/lib/module/components/Modals/MessageSearchModal/openHit.js +45 -0
- package/lib/module/components/Modals/MessageSearchModal/openHit.js.map +1 -0
- package/lib/module/components/Modals/MessageSearchModal/resolveSender.js +41 -0
- package/lib/module/components/Modals/MessageSearchModal/resolveSender.js.map +1 -0
- package/lib/module/components/Modals/MessageSearchModal/searchFilters.js +74 -0
- package/lib/module/components/Modals/MessageSearchModal/searchFilters.js.map +1 -0
- package/lib/module/components/Modals/MessageSearchModal/snippet.js +57 -0
- package/lib/module/components/Modals/MessageSearchModal/snippet.js.map +1 -0
- package/lib/module/components/Modals/MessageSearchModal/useMessageSearch.js +131 -0
- package/lib/module/components/Modals/MessageSearchModal/useMessageSearch.js.map +1 -0
- package/lib/module/components/Modals/PublicChatsModal/PublicChatsModal.js +300 -0
- package/lib/module/components/Modals/PublicChatsModal/PublicChatsModal.js.map +1 -0
- package/lib/module/components/Modals/PublicChatsModal/publicChatsLogic.js +30 -0
- package/lib/module/components/Modals/PublicChatsModal/publicChatsLogic.js.map +1 -0
- package/lib/module/components/Modals/SelectUsersModal/SelectUsersModal.js +8 -1
- package/lib/module/components/Modals/SelectUsersModal/SelectUsersModal.js.map +1 -1
- package/lib/module/components/RoomComponents/ChatRoomItem.js +14 -3
- package/lib/module/components/RoomComponents/ChatRoomItem.js.map +1 -1
- package/lib/module/components/RoomComponents/SwipeableRoomRow.js +39 -7
- package/lib/module/components/RoomComponents/SwipeableRoomRow.js.map +1 -1
- package/lib/module/components/Thread/ThreadHeader.js +3 -1
- package/lib/module/components/Thread/ThreadHeader.js.map +1 -1
- package/lib/module/components/Thread/ThreadWrapper.js +89 -9
- package/lib/module/components/Thread/ThreadWrapper.js.map +1 -1
- package/lib/module/components/styled/AudioDecoderHost.js +332 -0
- package/lib/module/components/styled/AudioDecoderHost.js.map +1 -0
- package/lib/module/components/styled/AudioMessage.js +495 -422
- package/lib/module/components/styled/AudioMessage.js.map +1 -1
- package/lib/module/components/styled/SendInput.js +32 -6
- package/lib/module/components/styled/SendInput.js.map +1 -1
- package/lib/module/context/MessageNotificationContext.js +15 -5
- package/lib/module/context/MessageNotificationContext.js.map +1 -1
- package/lib/module/context/xmppProvider.js +54 -79
- package/lib/module/context/xmppProvider.js.map +1 -1
- package/lib/module/helpers/audioWaveform.js +153 -0
- package/lib/module/helpers/audioWaveform.js.map +1 -0
- package/lib/module/helpers/backgroundJoinSweep.js +30 -0
- package/lib/module/helpers/backgroundJoinSweep.js.map +1 -0
- package/lib/module/helpers/bubbleHighlight.js +38 -0
- package/lib/module/helpers/bubbleHighlight.js.map +1 -0
- package/lib/module/helpers/checkUniqueUsers.js +15 -13
- package/lib/module/helpers/checkUniqueUsers.js.map +1 -1
- package/lib/module/helpers/constants/MODAL_COMPONENTS.js +5 -1
- package/lib/module/helpers/constants/MODAL_COMPONENTS.js.map +1 -1
- package/lib/module/helpers/constants/MODAL_TYPES.js +3 -1
- package/lib/module/helpers/constants/MODAL_TYPES.js.map +1 -1
- package/lib/module/helpers/createRoomFromApi.js +37 -3
- package/lib/module/helpers/createRoomFromApi.js.map +1 -1
- package/lib/module/helpers/dedupeMembers.js +28 -0
- package/lib/module/helpers/dedupeMembers.js.map +1 -0
- package/lib/module/helpers/ethoraLogger.js +52 -0
- package/lib/module/helpers/ethoraLogger.js.map +1 -0
- package/lib/module/helpers/getUnnamedUsers.js +9 -4
- package/lib/module/helpers/getUnnamedUsers.js.map +1 -1
- package/lib/module/helpers/historyPreloadConfig.js +39 -0
- package/lib/module/helpers/historyPreloadConfig.js.map +1 -0
- package/lib/module/helpers/historyPreloadScheduler.js +368 -134
- package/lib/module/helpers/historyPreloadScheduler.js.map +1 -1
- package/lib/module/helpers/initRoomsPresence.js +18 -5
- package/lib/module/helpers/initRoomsPresence.js.map +1 -1
- package/lib/module/helpers/insertMessageWithDelimiter.js +5 -0
- package/lib/module/helpers/insertMessageWithDelimiter.js.map +1 -1
- package/lib/module/helpers/isLikelyMucJid.js +60 -0
- package/lib/module/helpers/isLikelyMucJid.js.map +1 -0
- package/lib/module/helpers/isMessageSearchEnabled.js +13 -0
- package/lib/module/helpers/isMessageSearchEnabled.js.map +1 -0
- package/lib/module/helpers/joiningRoom.js +9 -0
- package/lib/module/helpers/joiningRoom.js.map +1 -0
- package/lib/module/helpers/jumpThread.js +83 -0
- package/lib/module/helpers/jumpThread.js.map +1 -0
- package/lib/module/helpers/jumpToMessage.js +52 -0
- package/lib/module/helpers/jumpToMessage.js.map +1 -0
- package/lib/module/helpers/jumpWindow.js +177 -0
- package/lib/module/helpers/jumpWindow.js.map +1 -0
- package/lib/module/helpers/loadRoomHistory.js +69 -0
- package/lib/module/helpers/loadRoomHistory.js.map +1 -0
- package/lib/module/helpers/notificationPolicy.js +70 -0
- package/lib/module/helpers/notificationPolicy.js.map +1 -0
- package/lib/module/helpers/openRoomAtMessage.js +41 -0
- package/lib/module/helpers/openRoomAtMessage.js.map +1 -0
- package/lib/module/helpers/openThreadForJump.js +68 -0
- package/lib/module/helpers/openThreadForJump.js.map +1 -0
- package/lib/module/helpers/parseMessageReference.js +26 -6
- package/lib/module/helpers/parseMessageReference.js.map +1 -1
- package/lib/module/helpers/publicChatsEntry.js +12 -0
- package/lib/module/helpers/publicChatsEntry.js.map +1 -0
- package/lib/module/helpers/roomActivityScore.js +30 -0
- package/lib/module/helpers/roomActivityScore.js.map +1 -0
- package/lib/module/helpers/roomUserCount.js +29 -0
- package/lib/module/helpers/roomUserCount.js.map +1 -0
- package/lib/module/helpers/runConfiguredHistoryPreload.js +63 -0
- package/lib/module/helpers/runConfiguredHistoryPreload.js.map +1 -0
- package/lib/module/helpers/sessionAppId.js +20 -0
- package/lib/module/helpers/sessionAppId.js.map +1 -0
- package/lib/module/helpers/timestamp.js +37 -0
- package/lib/module/helpers/timestamp.js.map +1 -0
- package/lib/module/helpers/userResolver.js +503 -0
- package/lib/module/helpers/userResolver.js.map +1 -0
- package/lib/module/helpers/xmppIdShape.js +46 -0
- package/lib/module/helpers/xmppIdShape.js.map +1 -0
- package/lib/module/hooks/useChatWrapperInit.js +16 -5
- package/lib/module/hooks/useChatWrapperInit.js.map +1 -1
- package/lib/module/hooks/useHeapSender.js +54 -3
- package/lib/module/hooks/useHeapSender.js.map +1 -1
- package/lib/module/hooks/useJumpToMessage.js +389 -0
- package/lib/module/hooks/useJumpToMessage.js.map +1 -0
- package/lib/module/hooks/useMessageLoaderQueue.js +32 -5
- package/lib/module/hooks/useMessageLoaderQueue.js.map +1 -1
- package/lib/module/hooks/useMessageQueue.js +13 -5
- package/lib/module/hooks/useMessageQueue.js.map +1 -1
- package/lib/module/hooks/useRoomDirectory.js +24 -0
- package/lib/module/hooks/useRoomDirectory.js.map +1 -0
- package/lib/module/hooks/useRoomInitialization.js +29 -7
- package/lib/module/hooks/useRoomInitialization.js.map +1 -1
- package/lib/module/hooks/useRoomMute.js +58 -0
- package/lib/module/hooks/useRoomMute.js.map +1 -0
- package/lib/module/hooks/useRoomState.js +3 -1
- package/lib/module/hooks/useRoomState.js.map +1 -1
- package/lib/module/hooks/useSendMessage.js +13 -3
- package/lib/module/hooks/useSendMessage.js.map +1 -1
- package/lib/module/i18n/strings.js +318 -6
- package/lib/module/i18n/strings.js.map +1 -1
- package/lib/module/networking/api-requests/messageSearch.api.js +81 -0
- package/lib/module/networking/api-requests/messageSearch.api.js.map +1 -0
- package/lib/module/networking/api-requests/publicChats.api.js +43 -0
- package/lib/module/networking/api-requests/publicChats.api.js.map +1 -0
- package/lib/module/networking/api-requests/roomMembers.api.js +248 -4
- package/lib/module/networking/api-requests/roomMembers.api.js.map +1 -1
- package/lib/module/networking/api-requests/rooms.api.js +48 -12
- package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
- package/lib/module/networking/api-requests/xmppToken.api.js +66 -0
- package/lib/module/networking/api-requests/xmppToken.api.js.map +1 -0
- package/lib/module/networking/ethoraEvents.js +220 -0
- package/lib/module/networking/ethoraEvents.js.map +1 -0
- package/lib/module/networking/stanzaHandlers.js +155 -18
- package/lib/module/networking/stanzaHandlers.js.map +1 -1
- package/lib/module/networking/xmpp/allRoomPresences.xmpp.js +125 -3
- package/lib/module/networking/xmpp/allRoomPresences.xmpp.js.map +1 -1
- package/lib/module/networking/xmpp/getHistory.xmpp.js +318 -35
- package/lib/module/networking/xmpp/getHistory.xmpp.js.map +1 -1
- package/lib/module/networking/xmpp/handleStanzas.xmpp.js +7 -0
- package/lib/module/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
- package/lib/module/networking/xmpp/historyCursor.js +95 -0
- package/lib/module/networking/xmpp/historyCursor.js.map +1 -0
- package/lib/module/networking/xmpp/mamQueryIds.js +12 -0
- package/lib/module/networking/xmpp/mamQueryIds.js.map +1 -0
- package/lib/module/networking/xmpp/mamRouter.js +22 -8
- package/lib/module/networking/xmpp/mamRouter.js.map +1 -1
- package/lib/module/networking/xmpp/presenceInRoom.xmpp.js +68 -62
- package/lib/module/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
- package/lib/module/networking/xmpp/roomJoinSweep.js +385 -0
- package/lib/module/networking/xmpp/roomJoinSweep.js.map +1 -0
- package/lib/module/networking/xmpp/sendMediaMessage.xmpp.js +0 -1
- package/lib/module/networking/xmpp/sendMediaMessage.xmpp.js.map +1 -1
- package/lib/module/networking/xmpp/sendTextMessage.xmpp.js +0 -1
- package/lib/module/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
- package/lib/module/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js +0 -1
- package/lib/module/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js.map +1 -1
- package/lib/module/networking/xmppClient.js +269 -41
- package/lib/module/networking/xmppClient.js.map +1 -1
- package/lib/module/networking/xmppCredentials.js +76 -0
- package/lib/module/networking/xmppCredentials.js.map +1 -0
- package/lib/module/roomStore/Middleware/jumpThreadMiddleware.js +153 -0
- package/lib/module/roomStore/Middleware/jumpThreadMiddleware.js.map +1 -0
- package/lib/module/roomStore/Middleware/reactionsMiddleware.js +6 -0
- package/lib/module/roomStore/Middleware/reactionsMiddleware.js.map +1 -1
- package/lib/module/roomStore/Middleware/unreadMidlleware.js +46 -7
- package/lib/module/roomStore/Middleware/unreadMidlleware.js.map +1 -1
- package/lib/module/roomStore/chatSettingsSlice.js +13 -0
- package/lib/module/roomStore/chatSettingsSlice.js.map +1 -1
- package/lib/module/roomStore/index.js +7 -3
- package/lib/module/roomStore/index.js.map +1 -1
- package/lib/module/roomStore/persistence.js +46 -1
- package/lib/module/roomStore/persistence.js.map +1 -1
- package/lib/module/roomStore/roomsSlice.js +459 -58
- package/lib/module/roomStore/roomsSlice.js.map +1 -1
- package/lib/module/roomStore/safeKey.js +37 -0
- package/lib/module/roomStore/safeKey.js.map +1 -0
- package/lib/module/roomStore/usersSetCap.js +32 -0
- package/lib/module/roomStore/usersSetCap.js.map +1 -0
- package/lib/module/version.js +1 -1
- package/lib/module/version.js.map +1 -1
- package/lib/typescript/assets/icons.d.ts +4 -0
- package/lib/typescript/assets/icons.d.ts.map +1 -1
- package/lib/typescript/components/Header/HeaderRoomList.d.ts.map +1 -1
- package/lib/typescript/components/InputComponents/Search.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ArchivedMessageCard.d.ts +12 -0
- package/lib/typescript/components/MainComponents/ArchivedMessageCard.d.ts.map +1 -0
- package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ChatRoom.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ChatWrapper.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/MessageList.d.ts +22 -1
- package/lib/typescript/components/MainComponents/MessageList.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/MessageSearchButton.d.ts +7 -0
- package/lib/typescript/components/MainComponents/MessageSearchButton.d.ts.map +1 -0
- package/lib/typescript/components/MainComponents/ReduxWrapper.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/RoomList.d.ts.map +1 -1
- package/lib/typescript/components/Menu/HeaderRoomListMenu.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/BubbleHighlight.d.ts +12 -0
- package/lib/typescript/components/MessageBubble/BubbleHighlight.d.ts.map +1 -0
- package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts +5 -0
- package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/messageMenuLayout.d.ts +29 -0
- package/lib/typescript/components/MessageBubble/messageMenuLayout.d.ts.map +1 -0
- package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts +2 -0
- package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/MessageSearchModal/MessageHitResults.d.ts +44 -0
- package/lib/typescript/components/Modals/MessageSearchModal/MessageHitResults.d.ts.map +1 -0
- package/lib/typescript/components/Modals/MessageSearchModal/MessageSearchModal.d.ts +12 -0
- package/lib/typescript/components/Modals/MessageSearchModal/MessageSearchModal.d.ts.map +1 -0
- package/lib/typescript/components/Modals/MessageSearchModal/openHit.d.ts +15 -0
- package/lib/typescript/components/Modals/MessageSearchModal/openHit.d.ts.map +1 -0
- package/lib/typescript/components/Modals/MessageSearchModal/resolveSender.d.ts +34 -0
- package/lib/typescript/components/Modals/MessageSearchModal/resolveSender.d.ts.map +1 -0
- package/lib/typescript/components/Modals/MessageSearchModal/searchFilters.d.ts +41 -0
- package/lib/typescript/components/Modals/MessageSearchModal/searchFilters.d.ts.map +1 -0
- package/lib/typescript/components/Modals/MessageSearchModal/snippet.d.ts +15 -0
- package/lib/typescript/components/Modals/MessageSearchModal/snippet.d.ts.map +1 -0
- package/lib/typescript/components/Modals/MessageSearchModal/useMessageSearch.d.ts +23 -0
- package/lib/typescript/components/Modals/MessageSearchModal/useMessageSearch.d.ts.map +1 -0
- package/lib/typescript/components/Modals/PublicChatsModal/PublicChatsModal.d.ts +16 -0
- package/lib/typescript/components/Modals/PublicChatsModal/PublicChatsModal.d.ts.map +1 -0
- package/lib/typescript/components/Modals/PublicChatsModal/publicChatsLogic.d.ts +14 -0
- package/lib/typescript/components/Modals/PublicChatsModal/publicChatsLogic.d.ts.map +1 -0
- package/lib/typescript/components/Modals/SelectUsersModal/SelectUsersModal.d.ts.map +1 -1
- package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts.map +1 -1
- package/lib/typescript/components/RoomComponents/SwipeableRoomRow.d.ts +5 -1
- package/lib/typescript/components/RoomComponents/SwipeableRoomRow.d.ts.map +1 -1
- package/lib/typescript/components/Thread/ThreadHeader.d.ts.map +1 -1
- package/lib/typescript/components/Thread/ThreadWrapper.d.ts +1 -0
- package/lib/typescript/components/Thread/ThreadWrapper.d.ts.map +1 -1
- package/lib/typescript/components/styled/AudioDecoderHost.d.ts +39 -0
- package/lib/typescript/components/styled/AudioDecoderHost.d.ts.map +1 -0
- package/lib/typescript/components/styled/AudioMessage.d.ts +14 -1
- package/lib/typescript/components/styled/AudioMessage.d.ts.map +1 -1
- package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
- package/lib/typescript/context/MessageNotificationContext.d.ts.map +1 -1
- package/lib/typescript/context/xmppProvider.d.ts +2 -0
- package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
- package/lib/typescript/helpers/audioWaveform.d.ts +54 -0
- package/lib/typescript/helpers/audioWaveform.d.ts.map +1 -0
- package/lib/typescript/helpers/backgroundJoinSweep.d.ts +14 -0
- package/lib/typescript/helpers/backgroundJoinSweep.d.ts.map +1 -0
- package/lib/typescript/helpers/bubbleHighlight.d.ts +17 -0
- package/lib/typescript/helpers/bubbleHighlight.d.ts.map +1 -0
- package/lib/typescript/helpers/checkUniqueUsers.d.ts +2 -2
- package/lib/typescript/helpers/checkUniqueUsers.d.ts.map +1 -1
- package/lib/typescript/helpers/constants/MODAL_COMPONENTS.d.ts.map +1 -1
- package/lib/typescript/helpers/constants/MODAL_TYPES.d.ts +2 -0
- package/lib/typescript/helpers/constants/MODAL_TYPES.d.ts.map +1 -1
- package/lib/typescript/helpers/createRoomFromApi.d.ts +25 -0
- package/lib/typescript/helpers/createRoomFromApi.d.ts.map +1 -1
- package/lib/typescript/helpers/dedupeMembers.d.ts +11 -0
- package/lib/typescript/helpers/dedupeMembers.d.ts.map +1 -0
- package/lib/typescript/helpers/ethoraLogger.d.ts +13 -0
- package/lib/typescript/helpers/ethoraLogger.d.ts.map +1 -0
- package/lib/typescript/helpers/getUnnamedUsers.d.ts.map +1 -1
- package/lib/typescript/helpers/historyPreloadConfig.d.ts +26 -0
- package/lib/typescript/helpers/historyPreloadConfig.d.ts.map +1 -0
- package/lib/typescript/helpers/historyPreloadScheduler.d.ts +8 -4
- package/lib/typescript/helpers/historyPreloadScheduler.d.ts.map +1 -1
- package/lib/typescript/helpers/initRoomsPresence.d.ts +7 -0
- package/lib/typescript/helpers/initRoomsPresence.d.ts.map +1 -1
- package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts.map +1 -1
- package/lib/typescript/helpers/isLikelyMucJid.d.ts +19 -0
- package/lib/typescript/helpers/isLikelyMucJid.d.ts.map +1 -0
- package/lib/typescript/helpers/isMessageSearchEnabled.d.ts +12 -0
- package/lib/typescript/helpers/isMessageSearchEnabled.d.ts.map +1 -0
- package/lib/typescript/helpers/joiningRoom.d.ts +7 -0
- package/lib/typescript/helpers/joiningRoom.d.ts.map +1 -0
- package/lib/typescript/helpers/jumpThread.d.ts +48 -0
- package/lib/typescript/helpers/jumpThread.d.ts.map +1 -0
- package/lib/typescript/helpers/jumpToMessage.d.ts +26 -0
- package/lib/typescript/helpers/jumpToMessage.d.ts.map +1 -0
- package/lib/typescript/helpers/jumpWindow.d.ts +74 -0
- package/lib/typescript/helpers/jumpWindow.d.ts.map +1 -0
- package/lib/typescript/helpers/loadRoomHistory.d.ts +34 -0
- package/lib/typescript/helpers/loadRoomHistory.d.ts.map +1 -0
- package/lib/typescript/helpers/notificationPolicy.d.ts +42 -0
- package/lib/typescript/helpers/notificationPolicy.d.ts.map +1 -0
- package/lib/typescript/helpers/openRoomAtMessage.d.ts +17 -0
- package/lib/typescript/helpers/openRoomAtMessage.d.ts.map +1 -0
- package/lib/typescript/helpers/openThreadForJump.d.ts +27 -0
- package/lib/typescript/helpers/openThreadForJump.d.ts.map +1 -0
- package/lib/typescript/helpers/parseMessageReference.d.ts +18 -5
- package/lib/typescript/helpers/parseMessageReference.d.ts.map +1 -1
- package/lib/typescript/helpers/publicChatsEntry.d.ts +11 -0
- package/lib/typescript/helpers/publicChatsEntry.d.ts.map +1 -0
- package/lib/typescript/helpers/roomActivityScore.d.ts +5 -0
- package/lib/typescript/helpers/roomActivityScore.d.ts.map +1 -0
- package/lib/typescript/helpers/roomUserCount.d.ts +20 -0
- package/lib/typescript/helpers/roomUserCount.d.ts.map +1 -0
- package/lib/typescript/helpers/runConfiguredHistoryPreload.d.ts +21 -0
- package/lib/typescript/helpers/runConfiguredHistoryPreload.d.ts.map +1 -0
- package/lib/typescript/helpers/sessionAppId.d.ts +8 -0
- package/lib/typescript/helpers/sessionAppId.d.ts.map +1 -0
- package/lib/typescript/helpers/timestamp.d.ts +3 -0
- package/lib/typescript/helpers/timestamp.d.ts.map +1 -0
- package/lib/typescript/helpers/userResolver.d.ts +58 -0
- package/lib/typescript/helpers/userResolver.d.ts.map +1 -0
- package/lib/typescript/helpers/xmppIdShape.d.ts +10 -0
- package/lib/typescript/helpers/xmppIdShape.d.ts.map +1 -0
- package/lib/typescript/hooks/useChatWrapperInit.d.ts +2 -0
- package/lib/typescript/hooks/useChatWrapperInit.d.ts.map +1 -1
- package/lib/typescript/hooks/useHeapSender.d.ts.map +1 -1
- package/lib/typescript/hooks/useJumpToMessage.d.ts +116 -0
- package/lib/typescript/hooks/useJumpToMessage.d.ts.map +1 -0
- package/lib/typescript/hooks/useMessageLoaderQueue.d.ts.map +1 -1
- package/lib/typescript/hooks/useMessageQueue.d.ts.map +1 -1
- package/lib/typescript/hooks/useRoomDirectory.d.ts +12 -0
- package/lib/typescript/hooks/useRoomDirectory.d.ts.map +1 -0
- package/lib/typescript/hooks/useRoomInitialization.d.ts.map +1 -1
- package/lib/typescript/hooks/useRoomMute.d.ts +8 -0
- package/lib/typescript/hooks/useRoomMute.d.ts.map +1 -0
- package/lib/typescript/hooks/useRoomState.d.ts +1 -0
- package/lib/typescript/hooks/useRoomState.d.ts.map +1 -1
- package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
- package/lib/typescript/i18n/strings.d.ts.map +1 -1
- package/lib/typescript/networking/api-requests/messageSearch.api.d.ts +57 -0
- package/lib/typescript/networking/api-requests/messageSearch.api.d.ts.map +1 -0
- package/lib/typescript/networking/api-requests/publicChats.api.d.ts +24 -0
- package/lib/typescript/networking/api-requests/publicChats.api.d.ts.map +1 -0
- package/lib/typescript/networking/api-requests/roomMembers.api.d.ts +19 -1
- package/lib/typescript/networking/api-requests/roomMembers.api.d.ts.map +1 -1
- package/lib/typescript/networking/api-requests/rooms.api.d.ts.map +1 -1
- package/lib/typescript/networking/api-requests/xmppToken.api.d.ts +2 -0
- package/lib/typescript/networking/api-requests/xmppToken.api.d.ts.map +1 -0
- package/lib/typescript/networking/ethoraEvents.d.ts +45 -0
- package/lib/typescript/networking/ethoraEvents.d.ts.map +1 -0
- package/lib/typescript/networking/stanzaHandlers.d.ts +1 -1
- package/lib/typescript/networking/stanzaHandlers.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/allRoomPresences.xmpp.d.ts +32 -1
- package/lib/typescript/networking/xmpp/allRoomPresences.xmpp.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/getHistory.xmpp.d.ts +64 -0
- package/lib/typescript/networking/xmpp/getHistory.xmpp.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/handleStanzas.xmpp.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/historyCursor.d.ts +35 -0
- package/lib/typescript/networking/xmpp/historyCursor.d.ts.map +1 -0
- package/lib/typescript/networking/xmpp/mamQueryIds.d.ts +10 -0
- package/lib/typescript/networking/xmpp/mamQueryIds.d.ts.map +1 -0
- package/lib/typescript/networking/xmpp/mamRouter.d.ts +7 -0
- package/lib/typescript/networking/xmpp/mamRouter.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts +13 -2
- package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/roomJoinSweep.d.ts +82 -0
- package/lib/typescript/networking/xmpp/roomJoinSweep.d.ts.map +1 -0
- package/lib/typescript/networking/xmpp/sendMediaMessage.xmpp.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/sendTextMessage.xmpp.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.d.ts.map +1 -1
- package/lib/typescript/networking/xmppClient.d.ts +90 -4
- package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
- package/lib/typescript/networking/xmppCredentials.d.ts +12 -0
- package/lib/typescript/networking/xmppCredentials.d.ts.map +1 -0
- package/lib/typescript/roomStore/Middleware/jumpThreadMiddleware.d.ts +3 -0
- package/lib/typescript/roomStore/Middleware/jumpThreadMiddleware.d.ts.map +1 -0
- package/lib/typescript/roomStore/Middleware/reactionsMiddleware.d.ts.map +1 -1
- package/lib/typescript/roomStore/Middleware/unreadMidlleware.d.ts.map +1 -1
- package/lib/typescript/roomStore/chatSettingsSlice.d.ts +8 -1
- package/lib/typescript/roomStore/chatSettingsSlice.d.ts.map +1 -1
- package/lib/typescript/roomStore/index.d.ts +2 -1
- package/lib/typescript/roomStore/index.d.ts.map +1 -1
- package/lib/typescript/roomStore/persistence.d.ts +8 -0
- package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
- package/lib/typescript/roomStore/roomsSlice.d.ts +138 -2
- package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
- package/lib/typescript/roomStore/safeKey.d.ts +13 -0
- package/lib/typescript/roomStore/safeKey.d.ts.map +1 -0
- package/lib/typescript/roomStore/usersSetCap.d.ts +16 -0
- package/lib/typescript/roomStore/usersSetCap.d.ts.map +1 -0
- package/lib/typescript/types/models/media.model.d.ts +2 -0
- package/lib/typescript/types/models/media.model.d.ts.map +1 -1
- package/lib/typescript/types/models/room.model.d.ts +18 -5
- package/lib/typescript/types/models/room.model.d.ts.map +1 -1
- package/lib/typescript/types/models/xmpp.model.d.ts +8 -1
- package/lib/typescript/types/models/xmpp.model.d.ts.map +1 -1
- package/lib/typescript/types/types.d.ts +90 -5
- package/lib/typescript/types/types.d.ts.map +1 -1
- package/lib/typescript/version.d.ts +1 -1
- package/lib/typescript/version.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/assets/icons.tsx +13 -0
- package/src/components/Header/HeaderRoomList.tsx +21 -4
- package/src/components/InputComponents/Search.tsx +33 -0
- package/src/components/MainComponents/ArchivedMessageCard.tsx +139 -0
- package/src/components/MainComponents/ChatHeader.tsx +19 -3
- package/src/components/MainComponents/ChatRoom.tsx +60 -23
- package/src/components/MainComponents/ChatWrapper.tsx +50 -9
- package/src/components/MainComponents/MediaMessage.tsx +17 -0
- package/src/components/MainComponents/MessageList.tsx +823 -84
- package/src/components/MainComponents/MessageSearchButton.tsx +48 -0
- package/src/components/MainComponents/ReduxWrapper.tsx +16 -5
- package/src/components/MainComponents/RoomList.tsx +125 -0
- package/src/components/Menu/HeaderRoomListMenu.tsx +26 -2
- package/src/components/MessageBubble/BubbleHighlight.tsx +106 -0
- package/src/components/MessageBubble/Message.tsx +265 -177
- package/src/components/MessageBubble/MessageInteractions.tsx +109 -86
- package/src/components/MessageBubble/messageMenuLayout.ts +59 -0
- package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +92 -21
- package/src/components/Modals/MessageSearchModal/MessageHitResults.tsx +271 -0
- package/src/components/Modals/MessageSearchModal/MessageSearchModal.tsx +487 -0
- package/src/components/Modals/MessageSearchModal/openHit.ts +50 -0
- package/src/components/Modals/MessageSearchModal/resolveSender.ts +57 -0
- package/src/components/Modals/MessageSearchModal/searchFilters.ts +109 -0
- package/src/components/Modals/MessageSearchModal/snippet.ts +58 -0
- package/src/components/Modals/MessageSearchModal/useMessageSearch.ts +151 -0
- package/src/components/Modals/PublicChatsModal/PublicChatsModal.tsx +288 -0
- package/src/components/Modals/PublicChatsModal/publicChatsLogic.ts +36 -0
- package/src/components/Modals/SelectUsersModal/SelectUsersModal.tsx +8 -1
- package/src/components/RoomComponents/ChatRoomItem.tsx +16 -3
- package/src/components/RoomComponents/SwipeableRoomRow.tsx +39 -6
- package/src/components/Thread/ThreadHeader.tsx +3 -1
- package/src/components/Thread/ThreadWrapper.tsx +96 -10
- package/src/components/styled/AudioDecoderHost.tsx +351 -0
- package/src/components/styled/AudioMessage.tsx +482 -425
- package/src/components/styled/SendInput.tsx +42 -4
- package/src/context/MessageNotificationContext.tsx +19 -5
- package/src/context/xmppProvider.tsx +56 -91
- package/src/helpers/audioWaveform.ts +142 -0
- package/src/helpers/backgroundJoinSweep.ts +35 -0
- package/src/helpers/bubbleHighlight.ts +47 -0
- package/src/helpers/checkUniqueUsers.tsx +15 -17
- package/src/helpers/constants/MODAL_COMPONENTS.tsx +4 -0
- package/src/helpers/constants/MODAL_TYPES.ts +3 -0
- package/src/helpers/createRoomFromApi.tsx +45 -4
- package/src/helpers/dedupeMembers.ts +29 -0
- package/src/helpers/ethoraLogger.ts +50 -0
- package/src/helpers/getUnnamedUsers.ts +7 -4
- package/src/helpers/historyPreloadConfig.ts +68 -0
- package/src/helpers/historyPreloadScheduler.ts +437 -199
- package/src/helpers/initRoomsPresence.ts +20 -7
- package/src/helpers/insertMessageWithDelimiter.ts +3 -0
- package/src/helpers/isLikelyMucJid.ts +72 -0
- package/src/helpers/isMessageSearchEnabled.ts +18 -0
- package/src/helpers/joiningRoom.ts +13 -0
- package/src/helpers/jumpThread.ts +102 -0
- package/src/helpers/jumpToMessage.ts +57 -0
- package/src/helpers/jumpWindow.ts +212 -0
- package/src/helpers/loadRoomHistory.ts +83 -0
- package/src/helpers/notificationPolicy.ts +82 -0
- package/src/helpers/openRoomAtMessage.ts +38 -0
- package/src/helpers/openThreadForJump.ts +96 -0
- package/src/helpers/parseMessageReference.ts +37 -8
- package/src/helpers/publicChatsEntry.ts +15 -0
- package/src/helpers/roomActivityScore.ts +45 -0
- package/src/helpers/roomUserCount.ts +44 -0
- package/src/helpers/runConfiguredHistoryPreload.ts +76 -0
- package/src/helpers/sessionAppId.ts +17 -0
- package/src/helpers/timestamp.ts +44 -0
- package/src/helpers/userResolver.ts +542 -0
- package/src/helpers/xmppIdShape.ts +46 -0
- package/src/hooks/useChatWrapperInit.ts +22 -4
- package/src/hooks/useHeapSender.tsx +54 -3
- package/src/hooks/useJumpToMessage.ts +538 -0
- package/src/hooks/useMessageLoaderQueue.tsx +40 -4
- package/src/hooks/useMessageQueue.ts +9 -5
- package/src/hooks/useRoomDirectory.ts +39 -0
- package/src/hooks/useRoomInitialization.tsx +33 -7
- package/src/hooks/useRoomMute.ts +42 -0
- package/src/hooks/useRoomState.tsx +6 -0
- package/src/hooks/useSendMessage.tsx +14 -2
- package/src/i18n/strings.ts +312 -0
- package/src/networking/api-requests/messageSearch.api.ts +130 -0
- package/src/networking/api-requests/publicChats.api.ts +71 -0
- package/src/networking/api-requests/roomMembers.api.ts +263 -11
- package/src/networking/api-requests/rooms.api.ts +52 -12
- package/src/networking/api-requests/xmppToken.api.ts +62 -0
- package/src/networking/ethoraEvents.ts +262 -0
- package/src/networking/stanzaHandlers.ts +145 -19
- package/src/networking/xmpp/allRoomPresences.xmpp.ts +155 -5
- package/src/networking/xmpp/getHistory.xmpp.ts +433 -47
- package/src/networking/xmpp/handleStanzas.xmpp.ts +8 -0
- package/src/networking/xmpp/historyCursor.ts +124 -0
- package/src/networking/xmpp/mamQueryIds.ts +11 -0
- package/src/networking/xmpp/mamRouter.ts +24 -10
- package/src/networking/xmpp/presenceInRoom.xmpp.ts +91 -68
- package/src/networking/xmpp/roomJoinSweep.ts +412 -0
- package/src/networking/xmpp/sendMediaMessage.xmpp.ts +0 -1
- package/src/networking/xmpp/sendTextMessage.xmpp.ts +0 -1
- package/src/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.ts +0 -1
- package/src/networking/xmppClient.ts +323 -47
- package/src/networking/xmppCredentials.ts +87 -0
- package/src/roomStore/Middleware/jumpThreadMiddleware.ts +163 -0
- package/src/roomStore/Middleware/reactionsMiddleware.tsx +4 -0
- package/src/roomStore/Middleware/unreadMidlleware.tsx +59 -11
- package/src/roomStore/chatSettingsSlice.ts +11 -0
- package/src/roomStore/index.ts +10 -3
- package/src/roomStore/persistence.ts +54 -0
- package/src/roomStore/roomsSlice.ts +547 -65
- package/src/roomStore/safeKey.ts +49 -0
- package/src/roomStore/usersSetCap.ts +37 -0
- package/src/types/models/media.model.ts +4 -0
- package/src/types/models/room.model.ts +18 -5
- package/src/types/models/xmpp.model.ts +15 -1
- package/src/types/types.ts +95 -5
- package/src/version.ts +1 -1
|
@@ -37,7 +37,6 @@ export function sendMediaMessage(client, roomJID, data, customId, devServer) {
|
|
|
37
37
|
senderFirstName: data.firstName,
|
|
38
38
|
senderLastName: data.lastName,
|
|
39
39
|
senderWalletAddress: data.walletAddress,
|
|
40
|
-
isSystemMessage: false,
|
|
41
40
|
tokenAmount: '0',
|
|
42
41
|
receiverMessageId: '0',
|
|
43
42
|
mucname: data.chatName,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["xml","sendSealedMedia","shouldEncrypt","_sendMediaSeq","toServiceXmlns","devServer","client","clientService","options","service","test","ds","trim","includes","replace","sendMediaMessage","roomJID","data","customId","id","Date","now","dataToSend","xmlns","senderJID","jid","toString","senderFirstName","firstName","senderLastName","lastName","senderWalletAddress","walletAddress","
|
|
1
|
+
{"version":3,"names":["xml","sendSealedMedia","shouldEncrypt","_sendMediaSeq","toServiceXmlns","devServer","client","clientService","options","service","test","ds","trim","includes","replace","sendMediaMessage","roomJID","data","customId","id","Date","now","dataToSend","xmlns","senderJID","jid","toString","senderFirstName","firstName","senderLastName","lastName","senderWalletAddress","walletAddress","tokenAmount","receiverMessageId","mucname","chatName","photoURL","userAvatar","isMediafile","createdAt","expiresAt","fileName","isVisible","location","locationPreview","mimetype","originalName","ownerKey","size","duration","updatedAt","userId","waveForm","attachmentId","isReply","showInChannel","mainMessage","roomJid","push","keys","e2eeKeys","length","clientEncrypted","hints","JSON","stringify","v","message","type","from","to","sendResult","send","then","console","log","catch","err","error"],"sourceRoot":"../../../../src","sources":["networking/xmpp/sendMediaMessage.xmpp.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -52,7 +52,6 @@ export const sendTextMessage = (client, roomJID, firstName, lastName, photo, wal
|
|
|
52
52
|
senderJID: client.jid?.toString(),
|
|
53
53
|
senderWalletAddress: walletAddress,
|
|
54
54
|
roomJid: roomJID,
|
|
55
|
-
isSystemMessage: false,
|
|
56
55
|
tokenAmount: 0,
|
|
57
56
|
quickReplies: '',
|
|
58
57
|
notDisplayedValue: '',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["xml","sendEncrypted","shouldEncrypt","_sendTextSeq","toServiceXmlns","devServer","client","clientService","options","service","test","ds","trim","includes","replace","sendTextMessage","roomJID","firstName","lastName","photo","walletAddress","userMessage","notDisplayedValue","isReply","showInChannel","mainMessage","customId","id","Date","now","dataXmlns","data","xmlns","senderFirstName","senderLastName","fullName","photoURL","senderJID","jid","toString","senderWalletAddress","roomJid","
|
|
1
|
+
{"version":3,"names":["xml","sendEncrypted","shouldEncrypt","_sendTextSeq","toServiceXmlns","devServer","client","clientService","options","service","test","ds","trim","includes","replace","sendTextMessage","roomJID","firstName","lastName","photo","walletAddress","userMessage","notDisplayedValue","isReply","showInChannel","mainMessage","customId","id","Date","now","dataXmlns","data","xmlns","senderFirstName","senderLastName","fullName","photoURL","senderJID","jid","toString","senderWalletAddress","roomJid","tokenAmount","quickReplies","push","body","message","to","type","sendResult","send","then","console","log","catch","err","error","name","stack"],"sourceRoot":"../../../../src","sources":["networking/xmpp/sendTextMessage.xmpp.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -32,7 +32,6 @@ export const sendTextMessageWithTranslateTag = (client, stanzaMessage, source, c
|
|
|
32
32
|
senderJID: client.jid?.toString(),
|
|
33
33
|
senderWalletAddress: stanzaMessage.walletAddress,
|
|
34
34
|
roomJid: stanzaMessage.roomJID,
|
|
35
|
-
isSystemMessage: false,
|
|
36
35
|
tokenAmount: 0,
|
|
37
36
|
quickReplies: '',
|
|
38
37
|
notDisplayedValue: '',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["xml","toServiceXmlns","sendEncrypted","shouldEncrypt","sendTextMessageWithTranslateTag","client","stanzaMessage","source","customId","id","Date","now","dataXmlns","devServer","data","xmlns","senderFirstName","firstName","senderLastName","lastName","fullName","photoURL","photo","senderJID","jid","toString","senderWalletAddress","walletAddress","roomJid","roomJID","
|
|
1
|
+
{"version":3,"names":["xml","toServiceXmlns","sendEncrypted","shouldEncrypt","sendTextMessageWithTranslateTag","client","stanzaMessage","source","customId","id","Date","now","dataXmlns","devServer","data","xmlns","senderFirstName","firstName","senderLastName","lastName","fullName","photoURL","photo","senderJID","jid","toString","senderWalletAddress","walletAddress","roomJid","roomJID","tokenAmount","quickReplies","notDisplayedValue","showInChannel","isReply","mainMessage","push","body","userMessage","envelope","to","type","message","send","error","console"],"sourceRoot":"../../../../src","sources":["networking/xmpp/sendTextMessageWithTranslateTag.xmpp.ts"],"mappings":";;AAAA,SAAiBA,GAAG,QAAQ,cAAc;AAE1C,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,aAAa,EAAEC,aAAa,QAAQ,iBAAiB;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,+BAA+B,GAAGA,CAC7CC,MAAc,EACdC,aAYC,EACDC,MAAqB,EACrBC,QAAiB,KACL;EACZ,MAAMC,EAAE,GAAGD,QAAQ,IAAI,qBAAqBE,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE;EAExD,IAAI;IACF,MAAMC,SAAS,GAAGX,cAAc,CAACK,aAAa,CAACO,SAAS,EAAER,MAAM,CAAC;IACjE,MAAMS,IAAI,GAAGd,GAAG,CAAC,MAAM,EAAE;MACrBe,KAAK,EAAEH,SAAS;MAChBI,eAAe,EAAEV,aAAa,CAACW,SAAS;MACxCC,cAAc,EAAEZ,aAAa,CAACa,QAAQ;MACtCC,QAAQ,EAAE,GAAGd,aAAa,CAACW,SAAS,IAAIX,aAAa,CAACa,QAAQ,EAAE;MAChEE,QAAQ,EAAEf,aAAa,CAACgB,KAAK;MAC7BC,SAAS,EAAElB,MAAM,CAACmB,GAAG,EAAEC,QAAQ,CAAC,CAAC;MACjCC,mBAAmB,EAAEpB,aAAa,CAACqB,aAAa;MAChDC,OAAO,EAAEtB,aAAa,CAACuB,OAAO;MAC9BC,WAAW,EAAE,CAAC;MACdC,YAAY,EAAE,EAAE;MAChBC,iBAAiB,EAAE,EAAE;MACrBC,aAAa,EAAE3B,aAAa,CAAC2B,aAAa,IAAI,KAAK;MACnDC,OAAO,EAAE5B,aAAa,CAAC4B,OAAO,IAAI,KAAK;MACvCC,WAAW,EAAE7B,aAAa,CAAC6B,WAAW,IAAI,EAAE;MAC5CC,IAAI,EAAE;IACR,CAAC,CAAC;IACJ,MAAMC,IAAI,GAAGrC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAAEM,aAAa,CAACgC,WAAW,CAAC;IACvD,MAAMC,QAAQ,GAAG;MAAEC,EAAE,EAAElC,aAAa,CAACuB,OAAO;MAAEY,IAAI,EAAE,WAAW;MAAEhC;IAAG,CAAC;IAErE,IAAIN,aAAa,CAACG,aAAa,CAACuB,OAAO,CAAC,EAAE;MACxC3B,aAAa,CACXG,MAAM,EACNC,aAAa,CAACuB,OAAO,EACrBpB,EAAE,EACFK,IAAI,EACJuB,IAAI,EACJrC,GAAG,CAAC,SAAS,EAAEuC,QAAQ,EAAEzB,IAAI,EAAEuB,IAAI,CACrC,CAAC;MACD,OAAO,IAAI;IACb;IAEA,MAAMK,OAAO,GAAG1C,GAAG,CACjB,SAAS,EACTuC,QAAQ,EACRzB,IAAI,EACJuB,IAAI;IACJ;IACA;IACA;IACArC,GAAG,CAAC,WAAW,EAAE;MAAEO;IAAO,CAAC,CAC7B,CAAC;IAEDF,MAAM,CAACsC,IAAI,CAACD,OAAO,CAAC;IACpB,OAAO,IAAI;EACb,CAAC,CAAC,OAAOE,KAAK,EAAE;IACdC,OAAO,CAACD,KAAK,CAAC,0CAA0C,EAAEA,KAAK,CAAC;IAChE,OAAO,KAAK;EACd;AACF,CAAC","ignoreList":[]}
|
|
@@ -8,12 +8,12 @@ import { actionSetTimestampToPrivateStore } from './xmpp/actionSetTimestampToPri
|
|
|
8
8
|
import { flushLastViewedToPrivateStore } from './xmpp/flushLastViewedToPrivateStore';
|
|
9
9
|
import { sendTypingRequest } from './xmpp/sendTypingRequest.xmpp';
|
|
10
10
|
import { sendPing } from './xmpp/sendPing.xmpp';
|
|
11
|
-
import { getHistory } from './xmpp/getHistory.xmpp';
|
|
11
|
+
import { fetchHistoryPage, getHistory, getHistoryPage } from './xmpp/getHistory.xmpp';
|
|
12
12
|
import { sendTextMessage } from './xmpp/sendTextMessage.xmpp';
|
|
13
13
|
import { sendMessageReaction } from './xmpp/sendMessageReaction.xmpp';
|
|
14
14
|
import { sendTextMessageWithTranslateTag } from './xmpp/sendTextMessageWithTranslateTag.xmpp';
|
|
15
15
|
import { deleteMessage } from './xmpp/deleteMessage.xmpp';
|
|
16
|
-
import {
|
|
16
|
+
import { RoomJoinManager } from './xmpp/roomJoinSweep';
|
|
17
17
|
import { getLastMessage } from './xmpp/getLastMessageArchive.xmpp';
|
|
18
18
|
import { createRoom } from './xmpp/createRoom.xmpp';
|
|
19
19
|
import { setRoomImage } from './xmpp/setRoomImage.xmpp';
|
|
@@ -82,6 +82,18 @@ function isNotAuthorizedError(err) {
|
|
|
82
82
|
const message = (err?.message || err?.text || '').toString();
|
|
83
83
|
return /not-authorized|SASLError/i.test(message);
|
|
84
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* A history request that has neither answered nor failed by now is dropped
|
|
87
|
+
* (its slot and in-flight key freed) and asked once more. Longer than the
|
|
88
|
+
* request's own 10 s read timeout, so it only trips on a task stuck behind a
|
|
89
|
+
* gate or on a read that never returns.
|
|
90
|
+
*/
|
|
91
|
+
export const HISTORY_WATCHDOG_MS = 15_000;
|
|
92
|
+
|
|
93
|
+
/** What the server's <fin> said about one windowed MAM page. */
|
|
94
|
+
|
|
95
|
+
/** One page of a windowed history query, returned instead of stored. */
|
|
96
|
+
|
|
85
97
|
/**
|
|
86
98
|
* Floor between two credential rotations driven by reconnects. Well under
|
|
87
99
|
* the XMPP password's one-hour life, but high enough that a link flapping
|
|
@@ -161,7 +173,39 @@ export class XmppClient {
|
|
|
161
173
|
onOnlineCallback = null;
|
|
162
174
|
|
|
163
175
|
// ---- QoS state (mirrors web XmppClient) ----------------------------
|
|
164
|
-
|
|
176
|
+
/**
|
|
177
|
+
* Bumped on every disconnect, reconnect and close. Anything that started
|
|
178
|
+
* on an older connection (a room join, a join sweep) compares against it
|
|
179
|
+
* and drops its result instead of writing into the new connection's state.
|
|
180
|
+
*/
|
|
181
|
+
connectionEpoch = 0;
|
|
182
|
+
// Per-connection MUC join state + the background join sweep.
|
|
183
|
+
joins = new RoomJoinManager({
|
|
184
|
+
getClient: () => this.client,
|
|
185
|
+
getConnectionEpoch: () => this.connectionEpoch,
|
|
186
|
+
isOnline: () => this.status === 'online',
|
|
187
|
+
waitForOnline: timeoutMs => this.waitForOnline(timeoutMs),
|
|
188
|
+
getConference: () => this.conference,
|
|
189
|
+
getHistoryQoS: () => this.xmppSettings?.historyQoS
|
|
190
|
+
});
|
|
191
|
+
/** True once the whole background join sweep finished. */
|
|
192
|
+
get presencesReady() {
|
|
193
|
+
return this.joins.presencesReady;
|
|
194
|
+
}
|
|
195
|
+
set presencesReady(value) {
|
|
196
|
+
this.joins.presencesReady = value;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* True once the first wave of the sweep (open room + one pool width of the
|
|
200
|
+
* most recently active rooms) settled. Consumers that only need "joining
|
|
201
|
+
* works" (the offline send drain) gate on this, not on the whole sweep.
|
|
202
|
+
*/
|
|
203
|
+
get priorityPresencesReady() {
|
|
204
|
+
return this.joins.priorityPresencesReady;
|
|
205
|
+
}
|
|
206
|
+
set priorityPresencesReady(value) {
|
|
207
|
+
this.joins.priorityPresencesReady = value;
|
|
208
|
+
}
|
|
165
209
|
disableLastRead = false;
|
|
166
210
|
activeRoomJID = null;
|
|
167
211
|
activeRoomBoostUntil = 0;
|
|
@@ -305,67 +349,150 @@ export class XmppClient {
|
|
|
305
349
|
*/
|
|
306
350
|
async prioritizeRoomPresence(roomJID) {
|
|
307
351
|
try {
|
|
308
|
-
this.
|
|
309
|
-
|
|
352
|
+
return await this.joins.ensureRoomPresence(normalizeRoomJid(roomJID, this.conference), {
|
|
353
|
+
timeoutMs: 900,
|
|
354
|
+
waitForJoin: false,
|
|
355
|
+
source: 'active_room'
|
|
356
|
+
});
|
|
310
357
|
} catch {
|
|
311
358
|
return false;
|
|
312
359
|
}
|
|
313
360
|
}
|
|
314
361
|
|
|
362
|
+
/** Join `roomJID` unless this connection already did (deduped). */
|
|
363
|
+
ensureRoomPresence(roomJID, options) {
|
|
364
|
+
return this.joins.ensureRoomPresence(normalizeRoomJid(roomJID, this.conference), options);
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
/**
|
|
368
|
+
* Start (or share) the background join sweep: the open room first, then by
|
|
369
|
+
* recent activity, a few at a time. Resolves when the sweep ends; callers
|
|
370
|
+
* that must not wait simply do not await it. Never rejects.
|
|
371
|
+
*/
|
|
372
|
+
sendAllPresencesAndMarkReady() {
|
|
373
|
+
return this.joins.sendAllPresencesAndMarkReady();
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
/** Called on every disconnect / reconnect / close. */
|
|
377
|
+
bumpConnectionEpoch() {
|
|
378
|
+
this.connectionEpoch += 1;
|
|
379
|
+
this.joins.reset();
|
|
380
|
+
}
|
|
381
|
+
|
|
315
382
|
/**
|
|
316
383
|
* Queued history fetch. Coalesces by room: if the same room already has
|
|
317
384
|
* a higher-priority request in flight, return that promise. Honors
|
|
318
385
|
* `skipIfPreloaded` by checking redux state (lazy import to avoid cycle).
|
|
319
386
|
*/
|
|
320
|
-
async enqueueHistoryTask(params
|
|
387
|
+
async enqueueHistoryTask(params,
|
|
388
|
+
// Internal: this call is the single re-issue after a watchdog abort.
|
|
389
|
+
reissued = false) {
|
|
321
390
|
const {
|
|
322
391
|
chatJID,
|
|
323
392
|
max,
|
|
324
393
|
before,
|
|
325
|
-
|
|
326
|
-
source = 'default',
|
|
327
|
-
selfApplied
|
|
394
|
+
source = 'default'
|
|
328
395
|
} = params;
|
|
329
396
|
|
|
330
|
-
// Coalesce
|
|
331
|
-
// unless the new request is higher priority.
|
|
397
|
+
// Coalesce: if a fetch for the same room AND the same page is in flight,
|
|
398
|
+
// reuse it unless the new request is higher priority. A request for a
|
|
399
|
+
// different page (the latest one in flight, an older one asked) is not
|
|
400
|
+
// the same answer and runs by itself.
|
|
332
401
|
const existing = this.mamInFlightByRoom.get(chatJID);
|
|
333
|
-
|
|
402
|
+
// A one-message teaser page (a staged preview pass) must not stand in for
|
|
403
|
+
// the full page an opened room asks for.
|
|
404
|
+
const existingIsTeaser = !!existing && existing.max < Math.min(max, 5) && (source === 'active' || source === 'send_ack');
|
|
405
|
+
if (existing && !existingIsTeaser && existing.before === before && this.sourceRank(existing.source) <= this.sourceRank(source)) {
|
|
334
406
|
return existing.promise;
|
|
335
407
|
}
|
|
336
408
|
|
|
409
|
+
// The promise every waiter holds settles no later than the watchdog: a
|
|
410
|
+
// task stuck behind the gate, or a read that never returns, is dropped
|
|
411
|
+
// (slot and key freed) and, for a request somebody is waiting on, asked
|
|
412
|
+
// once more.
|
|
413
|
+
const ctl = {
|
|
414
|
+
aborted: false
|
|
415
|
+
};
|
|
416
|
+
const guarded = new Promise(resolve => {
|
|
417
|
+
let done = false;
|
|
418
|
+
const timer = setTimeout(() => {
|
|
419
|
+
if (done) {
|
|
420
|
+
return;
|
|
421
|
+
}
|
|
422
|
+
done = true;
|
|
423
|
+
ctl.aborted = true;
|
|
424
|
+
this.releaseMamEntry(chatJID, ctl);
|
|
425
|
+
console.warn(`[XMPP] history_request_watchdog room=${chatJID} before=${String(before || '')}`);
|
|
426
|
+
resolve(!reissued && source !== 'background' ? this.enqueueHistoryTask(params, true).catch(() => undefined) : undefined);
|
|
427
|
+
}, HISTORY_WATCHDOG_MS);
|
|
428
|
+
this.runHistoryTask(params, ctl).then(messages => {
|
|
429
|
+
if (done) {
|
|
430
|
+
return;
|
|
431
|
+
}
|
|
432
|
+
done = true;
|
|
433
|
+
clearTimeout(timer);
|
|
434
|
+
resolve(messages);
|
|
435
|
+
}, () => {
|
|
436
|
+
if (done) {
|
|
437
|
+
return;
|
|
438
|
+
}
|
|
439
|
+
done = true;
|
|
440
|
+
clearTimeout(timer);
|
|
441
|
+
resolve(undefined);
|
|
442
|
+
});
|
|
443
|
+
});
|
|
444
|
+
ctl.self = guarded;
|
|
445
|
+
if (ctl.entry) {
|
|
446
|
+
ctl.entry.promise = guarded;
|
|
447
|
+
}
|
|
448
|
+
return guarded;
|
|
449
|
+
}
|
|
450
|
+
releaseMamEntry(chatJID, ctl) {
|
|
451
|
+
const cur = this.mamInFlightByRoom.get(chatJID);
|
|
452
|
+
if (cur && cur === ctl.entry) {
|
|
453
|
+
this.mamInFlightByRoom.delete(chatJID);
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
async runHistoryTask(params, ctl) {
|
|
457
|
+
const {
|
|
458
|
+
chatJID,
|
|
459
|
+
max,
|
|
460
|
+
before,
|
|
461
|
+
id,
|
|
462
|
+
source = 'default',
|
|
463
|
+
selfApplied
|
|
464
|
+
} = params;
|
|
465
|
+
|
|
337
466
|
// Wait for the gate (in-flight cap + soft-pause). For active-room
|
|
338
467
|
// requests we still proceed past the cap when the boost is fresh.
|
|
339
|
-
while (this.mamInFlightByRoom.size >= this.maxInFlightHistory && !(this.alwaysPrioritizeActiveRoom && this.activeRoomJID === chatJID)) {
|
|
468
|
+
while (!ctl.aborted && this.mamInFlightByRoom.size >= this.maxInFlightHistory && !(this.alwaysPrioritizeActiveRoom && this.activeRoomJID === chatJID)) {
|
|
340
469
|
await new Promise(r => setTimeout(r, 80));
|
|
341
470
|
}
|
|
342
|
-
if (Date.now() < this.softPauseUntil && source === 'background') {
|
|
471
|
+
if (!ctl.aborted && Date.now() < this.softPauseUntil && source === 'background') {
|
|
343
472
|
const wait = this.softPauseUntil - Date.now();
|
|
344
473
|
await new Promise(r => setTimeout(r, wait));
|
|
345
474
|
}
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
handle.p = (async () => {
|
|
352
|
-
try {
|
|
353
|
-
return await getHistory(this.client, chatJID, max, before, id, {
|
|
354
|
-
selfApplied
|
|
355
|
-
});
|
|
356
|
-
} finally {
|
|
357
|
-
const cur = this.mamInFlightByRoom.get(chatJID);
|
|
358
|
-
if (cur && cur.promise === handle.p) {
|
|
359
|
-
this.mamInFlightByRoom.delete(chatJID);
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
})();
|
|
363
|
-
this.mamInFlightByRoom.set(chatJID, {
|
|
364
|
-
promise: handle.p,
|
|
475
|
+
if (ctl.aborted) {
|
|
476
|
+
return undefined;
|
|
477
|
+
}
|
|
478
|
+
const entry = {
|
|
479
|
+
promise: ctl.self,
|
|
365
480
|
source,
|
|
481
|
+
before,
|
|
482
|
+
max,
|
|
366
483
|
startedAt: Date.now()
|
|
367
|
-
}
|
|
368
|
-
|
|
484
|
+
};
|
|
485
|
+
ctl.entry = entry;
|
|
486
|
+
this.mamInFlightByRoom.set(chatJID, entry);
|
|
487
|
+
try {
|
|
488
|
+
return await getHistory(this.client, chatJID, max, before, id, {
|
|
489
|
+
selfApplied
|
|
490
|
+
});
|
|
491
|
+
} finally {
|
|
492
|
+
// Released exactly once, and only if still ours (a newer request may
|
|
493
|
+
// have replaced the entry after a watchdog abort).
|
|
494
|
+
this.releaseMamEntry(chatJID, ctl);
|
|
495
|
+
}
|
|
369
496
|
}
|
|
370
497
|
sourceRank(s) {
|
|
371
498
|
switch (s) {
|
|
@@ -496,6 +623,9 @@ export class XmppClient {
|
|
|
496
623
|
this.onDisconnect = () => {
|
|
497
624
|
console.log('XMPP disconnected.');
|
|
498
625
|
this.status = 'offline';
|
|
626
|
+
// The stream is gone: joins, the sweep and its retries belong to the
|
|
627
|
+
// old connection and must not leak into the next one.
|
|
628
|
+
this.bumpConnectionEpoch();
|
|
499
629
|
try {
|
|
500
630
|
// lazy-require to avoid pulling devLogger into prod bundles
|
|
501
631
|
// that don't reference it; tree-shaken via dead-code elim.
|
|
@@ -516,10 +646,14 @@ export class XmppClient {
|
|
|
516
646
|
this.onOnline = () => {
|
|
517
647
|
console.log('XMPP online.', new Date());
|
|
518
648
|
this.status = 'online';
|
|
649
|
+
// Not ready until the join sweep ran (presencesReady = whole sweep
|
|
650
|
+
// done, priorityPresencesReady = its first wave). The sweep runs in
|
|
651
|
+
// the background: nothing waits for it. The provider / chat wrapper
|
|
652
|
+
// start one as well once the room list is loaded; they share this one.
|
|
519
653
|
this.authRecoveryFailures = 0;
|
|
520
654
|
this.authRejectionsSinceOnline = 0;
|
|
521
|
-
this.presencesReady = true;
|
|
522
655
|
this.reconnectAttempts = 0;
|
|
656
|
+
this.sendAllPresencesAndMarkReady();
|
|
523
657
|
try {
|
|
524
658
|
devPushLog('xmpp', 'online', this.username);
|
|
525
659
|
} catch {}
|
|
@@ -814,6 +948,8 @@ export class XmppClient {
|
|
|
814
948
|
// already detached above, so a late-settling stop() is harmless.
|
|
815
949
|
await withTimeout(old.stop(), STOP_TIMEOUT_MS);
|
|
816
950
|
}
|
|
951
|
+
// A new underlying client: nothing joined on the old one carries over.
|
|
952
|
+
this.bumpConnectionEpoch();
|
|
817
953
|
this.initializeClient();
|
|
818
954
|
if (this.suspendedForBackground) {
|
|
819
955
|
await this.stopClientQuietly();
|
|
@@ -877,7 +1013,7 @@ export class XmppClient {
|
|
|
877
1013
|
this.clientAlreadyStopped = true;
|
|
878
1014
|
}
|
|
879
1015
|
this.status = 'offline';
|
|
880
|
-
this.
|
|
1016
|
+
this.bumpConnectionEpoch();
|
|
881
1017
|
}
|
|
882
1018
|
async suspend() {
|
|
883
1019
|
if (this.suspendedForBackground) {
|
|
@@ -933,7 +1069,7 @@ export class XmppClient {
|
|
|
933
1069
|
console.log('XMPP client connection closed.');
|
|
934
1070
|
}
|
|
935
1071
|
this.status = 'offline';
|
|
936
|
-
this.
|
|
1072
|
+
this.bumpConnectionEpoch();
|
|
937
1073
|
// Permanent teardown (logout / unmount) — drop buffered sends so they
|
|
938
1074
|
// don't replay into the next session. Reconnect uses old.stop(), NOT
|
|
939
1075
|
// close(), so the queue still survives a transient drop+reconnect.
|
|
@@ -964,9 +1100,16 @@ export class XmppClient {
|
|
|
964
1100
|
leaveTheRoomStanza = roomJID => {
|
|
965
1101
|
leaveTheRoom(normalizeRoomJid(roomJID, this.conference), this.client);
|
|
966
1102
|
};
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
1103
|
+
|
|
1104
|
+
/**
|
|
1105
|
+
* Join a room (deduped: a room this connection already joined resolves at
|
|
1106
|
+
* once without a second presence). Resolves true when joined, false when
|
|
1107
|
+
* the join failed or is backing off; never rejects.
|
|
1108
|
+
*/
|
|
1109
|
+
presenceInRoomStanza = roomJID => this.ensureRoomPresence(roomJID, {
|
|
1110
|
+
timeoutMs: 2000,
|
|
1111
|
+
source: 'other'
|
|
1112
|
+
});
|
|
970
1113
|
getHistoryStanza = async (chatJID, max, before, id, options) => {
|
|
971
1114
|
if (options?.coalesceRoom) {
|
|
972
1115
|
return this.enqueueHistoryTask({
|
|
@@ -982,6 +1125,72 @@ export class XmppClient {
|
|
|
982
1125
|
selfApplied: options?.selfApplied
|
|
983
1126
|
});
|
|
984
1127
|
};
|
|
1128
|
+
|
|
1129
|
+
/**
|
|
1130
|
+
* One archive page together with the server's RSM answer
|
|
1131
|
+
* (`<fin complete><set><first/><last/><count/>`). A latest page or one read
|
|
1132
|
+
* `before` a cursor feeds the live list (the stanza handler merges the rows)
|
|
1133
|
+
* and moves the room's paging cursor, room.messageStats.firstMessageTimestamp,
|
|
1134
|
+
* and room.historyComplete. A page read by `after` or a time filter is an
|
|
1135
|
+
* isolated query (see getHistoryWindow). Always settles, never throws.
|
|
1136
|
+
*/
|
|
1137
|
+
getHistoryPage = async (chatJID, max, cursor = {}) => {
|
|
1138
|
+
try {
|
|
1139
|
+
return await getHistoryPage(this.client, chatJID, max, cursor);
|
|
1140
|
+
} catch {
|
|
1141
|
+
return {
|
|
1142
|
+
ok: false,
|
|
1143
|
+
messages: [],
|
|
1144
|
+
complete: false,
|
|
1145
|
+
first: null,
|
|
1146
|
+
last: null,
|
|
1147
|
+
count: null,
|
|
1148
|
+
received: 0,
|
|
1149
|
+
finSeen: false,
|
|
1150
|
+
roomJid: ''
|
|
1151
|
+
};
|
|
1152
|
+
}
|
|
1153
|
+
};
|
|
1154
|
+
|
|
1155
|
+
/**
|
|
1156
|
+
* One page of archive for a window around a message, RETURNED rather than
|
|
1157
|
+
* stored: its query is tagged so the stanza handlers skip its rows, nothing
|
|
1158
|
+
* is merged into the room, and messageStats / historyComplete are left
|
|
1159
|
+
* alone. Pass `before` for the page ending just before that archive id,
|
|
1160
|
+
* `after` for the page starting just after it (both exclusive; microsecond
|
|
1161
|
+
* MAM ids), or `start` / `end` (ISO) for the first page of a time range.
|
|
1162
|
+
* Messages come back oldest first, reactions merged.
|
|
1163
|
+
*/
|
|
1164
|
+
getHistoryWindow = async (chatJID, max, cursor) => {
|
|
1165
|
+
const failed = {
|
|
1166
|
+
ok: false,
|
|
1167
|
+
messages: [],
|
|
1168
|
+
complete: false,
|
|
1169
|
+
first: null,
|
|
1170
|
+
last: null
|
|
1171
|
+
};
|
|
1172
|
+
if (this.status !== 'online') {
|
|
1173
|
+
return failed;
|
|
1174
|
+
}
|
|
1175
|
+
try {
|
|
1176
|
+
const page = await fetchHistoryPage(this.client, chatJID, max, {
|
|
1177
|
+
...cursor,
|
|
1178
|
+
window: true
|
|
1179
|
+
});
|
|
1180
|
+
if (!page.ok || !page.finSeen) {
|
|
1181
|
+
return failed;
|
|
1182
|
+
}
|
|
1183
|
+
return {
|
|
1184
|
+
ok: true,
|
|
1185
|
+
messages: page.messages,
|
|
1186
|
+
complete: page.complete,
|
|
1187
|
+
first: page.first,
|
|
1188
|
+
last: page.last
|
|
1189
|
+
};
|
|
1190
|
+
} catch {
|
|
1191
|
+
return failed;
|
|
1192
|
+
}
|
|
1193
|
+
};
|
|
985
1194
|
getLastMessageArchiveStanza(roomJID) {
|
|
986
1195
|
getLastMessage(this.client, normalizeRoomJid(roomJID, this.conference));
|
|
987
1196
|
}
|
|
@@ -1010,6 +1219,22 @@ export class XmppClient {
|
|
|
1010
1219
|
flushOutboundSends(this, Date.now());
|
|
1011
1220
|
}
|
|
1012
1221
|
|
|
1222
|
+
/**
|
|
1223
|
+
* A send joins its own room first (deduped, fire-and-forget): the join
|
|
1224
|
+
* sweep no longer sends every room's presence up front, so a send to a room
|
|
1225
|
+
* the sweep has not reached yet would otherwise hit a room we are not in.
|
|
1226
|
+
* Presence and message go out synchronously on the same stream, join first.
|
|
1227
|
+
*/
|
|
1228
|
+
joinForSend(roomJID) {
|
|
1229
|
+
try {
|
|
1230
|
+
this.joins.ensureRoomPresence(normalizeRoomJid(roomJID, this.conference), {
|
|
1231
|
+
waitForJoin: false,
|
|
1232
|
+
timeoutMs: 2000,
|
|
1233
|
+
source: 'send'
|
|
1234
|
+
});
|
|
1235
|
+
} catch {}
|
|
1236
|
+
}
|
|
1237
|
+
|
|
1013
1238
|
//messages
|
|
1014
1239
|
sendMessage = (roomJID, firstName, lastName, photo, walletAddress, userMessage, notDisplayedValue, isReply, showInChannel, mainMessage, customId) => {
|
|
1015
1240
|
// Stream down (start race / reconnect window): buffer and replay on
|
|
@@ -1024,6 +1249,7 @@ export class XmppClient {
|
|
|
1024
1249
|
});
|
|
1025
1250
|
return false;
|
|
1026
1251
|
}
|
|
1252
|
+
this.joinForSend(roomJID);
|
|
1027
1253
|
sendTextMessage(this.client, roomJID, firstName, lastName, photo, walletAddress, userMessage, notDisplayedValue, isReply, showInChannel, mainMessage, this.devServer || DEFAULT_DEV_SERVER, customId);
|
|
1028
1254
|
return true;
|
|
1029
1255
|
};
|
|
@@ -1139,6 +1365,7 @@ export class XmppClient {
|
|
|
1139
1365
|
});
|
|
1140
1366
|
return undefined;
|
|
1141
1367
|
}
|
|
1368
|
+
this.joinForSend(roomJID);
|
|
1142
1369
|
return sendMediaMessage(this.client, roomJID, data, customId, this.devServer || DEFAULT_DEV_SERVER);
|
|
1143
1370
|
}
|
|
1144
1371
|
|
|
@@ -1179,6 +1406,7 @@ export class XmppClient {
|
|
|
1179
1406
|
});
|
|
1180
1407
|
return false;
|
|
1181
1408
|
}
|
|
1409
|
+
this.joinForSend(roomJID);
|
|
1182
1410
|
return sendTextMessageWithTranslateTag(this.client, {
|
|
1183
1411
|
roomJID,
|
|
1184
1412
|
firstName,
|