@ethora/chat-component-rn 26.8.5 → 26.8.7
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 +26 -0
- package/README.md +95 -0
- package/lib/commonjs/assets/emojiData.js +40 -0
- package/lib/commonjs/assets/emojiData.js.map +1 -0
- package/lib/commonjs/assets/icons.js +5 -3
- package/lib/commonjs/assets/icons.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatHeader.js +35 -15
- package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatRoom.js +33 -24
- package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatWrapper.js +22 -16
- package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
- package/lib/commonjs/components/MainComponents/EncryptedSendNotice.js +47 -0
- package/lib/commonjs/components/MainComponents/EncryptedSendNotice.js.map +1 -0
- package/lib/commonjs/components/MainComponents/EncryptionCard.js +286 -0
- package/lib/commonjs/components/MainComponents/EncryptionCard.js.map +1 -0
- package/lib/commonjs/components/MainComponents/MediaMessage.js +7 -0
- package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
- package/lib/commonjs/components/MainComponents/MessageContainer.js +4 -12
- package/lib/commonjs/components/MainComponents/MessageContainer.js.map +1 -1
- package/lib/commonjs/components/MainComponents/MessageList.js +110 -35
- package/lib/commonjs/components/MainComponents/MessageList.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ReduxWrapper.js +5 -0
- package/lib/commonjs/components/MainComponents/ReduxWrapper.js.map +1 -1
- package/lib/commonjs/components/MainComponents/RoomList.js +32 -29
- package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
- package/lib/commonjs/components/MainComponents/RoomStack.js +133 -65
- package/lib/commonjs/components/MainComponents/RoomStack.js.map +1 -1
- package/lib/commonjs/components/MainComponents/SealedAttachment.js +231 -0
- package/lib/commonjs/components/MainComponents/SealedAttachment.js.map +1 -0
- package/lib/commonjs/components/MainComponents/SystemMessage.js +6 -2
- package/lib/commonjs/components/MainComponents/SystemMessage.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/Avatar.js +5 -1
- package/lib/commonjs/components/MessageBubble/Avatar.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/BottomReplyContainer.js +18 -21
- package/lib/commonjs/components/MessageBubble/BottomReplyContainer.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/EmojiPickerSheet.js +447 -0
- package/lib/commonjs/components/MessageBubble/EmojiPickerSheet.js.map +1 -0
- package/lib/commonjs/components/MessageBubble/Message.js +264 -136
- package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/MessageInteractions.js +215 -13
- package/lib/commonjs/components/MessageBubble/MessageInteractions.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/MessageReaction.js +113 -94
- package/lib/commonjs/components/MessageBubble/MessageReaction.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/MessageReply.js +66 -24
- package/lib/commonjs/components/MessageBubble/MessageReply.js.map +1 -1
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +7 -4
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
- package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +159 -16
- package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
- package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js +4 -0
- package/lib/commonjs/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
- package/lib/commonjs/components/Modals/Modal/SwipeBackLayer.js +76 -44
- package/lib/commonjs/components/Modals/Modal/SwipeBackLayer.js.map +1 -1
- package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js +29 -6
- package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
- package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js +5 -1
- package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
- package/lib/commonjs/components/RoomComponents/ChatRoomItem.js +37 -13
- package/lib/commonjs/components/RoomComponents/ChatRoomItem.js.map +1 -1
- package/lib/commonjs/components/RoomComponents/LastMessageItem.js +6 -0
- package/lib/commonjs/components/RoomComponents/LastMessageItem.js.map +1 -1
- package/lib/commonjs/components/RoomComponents/styled/LastAudioMessage.js +2 -2
- package/lib/commonjs/components/RoomComponents/styled/LastAudioMessage.js.map +1 -1
- package/lib/commonjs/components/RoomComponents/styled/LastMessageEmoji.js +8 -9
- package/lib/commonjs/components/RoomComponents/styled/LastMessageEmoji.js.map +1 -1
- package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js +4 -6
- package/lib/commonjs/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
- package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js +2 -2
- package/lib/commonjs/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
- package/lib/commonjs/components/RoomComponents/styled/LastMessageSealed.js +41 -0
- package/lib/commonjs/components/RoomComponents/styled/LastMessageSealed.js.map +1 -0
- package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js +2 -2
- package/lib/commonjs/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
- package/lib/commonjs/components/Thread/ThreadWrapper.js +273 -152
- package/lib/commonjs/components/Thread/ThreadWrapper.js.map +1 -1
- package/lib/commonjs/components/UsersList/UsersList.js +2 -1
- package/lib/commonjs/components/UsersList/UsersList.js.map +1 -1
- package/lib/commonjs/components/styled/DateLabel.js +6 -3
- package/lib/commonjs/components/styled/DateLabel.js.map +1 -1
- package/lib/commonjs/components/styled/SendInput.js +4 -2
- package/lib/commonjs/components/styled/SendInput.js.map +1 -1
- package/lib/commonjs/context/MessageNotificationContext.js +188 -9
- package/lib/commonjs/context/MessageNotificationContext.js.map +1 -1
- package/lib/commonjs/context/xmppProvider.js +22 -7
- package/lib/commonjs/context/xmppProvider.js.map +1 -1
- package/lib/commonjs/e2ee/crypto.js +207 -0
- package/lib/commonjs/e2ee/crypto.js.map +1 -0
- package/lib/commonjs/e2ee/deviceStore.js +84 -0
- package/lib/commonjs/e2ee/deviceStore.js.map +1 -0
- package/lib/commonjs/e2ee/fileCipher.js +95 -0
- package/lib/commonjs/e2ee/fileCipher.js.map +1 -0
- package/lib/commonjs/e2ee/fileEnvelope.js +79 -0
- package/lib/commonjs/e2ee/fileEnvelope.js.map +1 -0
- package/lib/commonjs/e2ee/index.js +210 -0
- package/lib/commonjs/e2ee/index.js.map +1 -0
- package/lib/commonjs/e2ee/limits.js +9 -0
- package/lib/commonjs/e2ee/limits.js.map +1 -0
- package/lib/commonjs/e2ee/ns.js +8 -0
- package/lib/commonjs/e2ee/ns.js.map +1 -0
- package/lib/commonjs/e2ee/omemo.js +622 -0
- package/lib/commonjs/e2ee/omemo.js.map +1 -0
- package/lib/commonjs/e2ee/protobuf.js +149 -0
- package/lib/commonjs/e2ee/protobuf.js.map +1 -0
- package/lib/commonjs/e2ee/ratchet.js +238 -0
- package/lib/commonjs/e2ee/ratchet.js.map +1 -0
- package/lib/commonjs/e2ee/sealedBody.js +23 -0
- package/lib/commonjs/e2ee/sealedBody.js.map +1 -0
- package/lib/commonjs/e2ee/sealedFiles.js +174 -0
- package/lib/commonjs/e2ee/sealedFiles.js.map +1 -0
- package/lib/commonjs/e2ee/send.js +54 -0
- package/lib/commonjs/e2ee/send.js.map +1 -0
- package/lib/commonjs/e2ee/stanza.js +114 -0
- package/lib/commonjs/e2ee/stanza.js.map +1 -0
- package/lib/commonjs/e2ee/store.js +43 -0
- package/lib/commonjs/e2ee/store.js.map +1 -0
- package/lib/commonjs/helpers/accountName.js +23 -0
- package/lib/commonjs/helpers/accountName.js.map +1 -0
- package/lib/commonjs/helpers/createMessageFromXml.js +19 -4
- package/lib/commonjs/helpers/createMessageFromXml.js.map +1 -1
- package/lib/commonjs/helpers/createRoomFromApi.js +36 -2
- package/lib/commonjs/helpers/createRoomFromApi.js.map +1 -1
- package/lib/commonjs/helpers/createUserNameFromSetUser.js +2 -1
- package/lib/commonjs/helpers/createUserNameFromSetUser.js.map +1 -1
- package/lib/commonjs/helpers/displayName.js +16 -0
- package/lib/commonjs/helpers/displayName.js.map +1 -0
- package/lib/commonjs/helpers/emoji.js +51 -0
- package/lib/commonjs/helpers/emoji.js.map +1 -0
- package/lib/commonjs/helpers/haptics.js +29 -0
- package/lib/commonjs/helpers/haptics.js.map +1 -0
- package/lib/commonjs/helpers/historyPreloadScheduler.js +32 -66
- package/lib/commonjs/helpers/historyPreloadScheduler.js.map +1 -1
- package/lib/commonjs/helpers/insertMessageWithDelimiter.js +21 -12
- package/lib/commonjs/helpers/insertMessageWithDelimiter.js.map +1 -1
- package/lib/commonjs/helpers/mamReactions.js +57 -0
- package/lib/commonjs/helpers/mamReactions.js.map +1 -0
- package/lib/commonjs/helpers/parseMessageReference.js +42 -0
- package/lib/commonjs/helpers/parseMessageReference.js.map +1 -0
- package/lib/commonjs/helpers/persistCrypto.js +5 -0
- package/lib/commonjs/helpers/persistCrypto.js.map +1 -1
- package/lib/commonjs/helpers/reactionsConfig.js +17 -0
- package/lib/commonjs/helpers/reactionsConfig.js.map +1 -0
- package/lib/commonjs/helpers/secureKeyValue.js +20 -0
- package/lib/commonjs/helpers/secureKeyValue.js.map +1 -1
- package/lib/commonjs/helpers/updateMessagesTillLast.js +17 -2
- package/lib/commonjs/helpers/updateMessagesTillLast.js.map +1 -1
- package/lib/commonjs/helpers/videoCache.js +136 -0
- package/lib/commonjs/helpers/videoCache.js.map +1 -0
- package/lib/commonjs/hooks/useHeapSender.js +3 -1
- package/lib/commonjs/hooks/useHeapSender.js.map +1 -1
- package/lib/commonjs/hooks/useLogout.js +8 -0
- package/lib/commonjs/hooks/useLogout.js.map +1 -1
- package/lib/commonjs/hooks/useMessageHeapState.js +3 -2
- package/lib/commonjs/hooks/useMessageHeapState.js.map +1 -1
- package/lib/commonjs/hooks/useRoomInitialization.js +16 -7
- package/lib/commonjs/hooks/useRoomInitialization.js.map +1 -1
- package/lib/commonjs/hooks/useSendMessage.js +85 -15
- package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
- package/lib/commonjs/hooks/useUnreadMessagesCounter.js +1 -1
- package/lib/commonjs/hooks/useUnreadMessagesCounter.js.map +1 -1
- package/lib/commonjs/i18n/strings.js +180 -0
- package/lib/commonjs/i18n/strings.js.map +1 -1
- package/lib/commonjs/main.js +13 -0
- package/lib/commonjs/main.js.map +1 -1
- package/lib/commonjs/networking/api-requests/auth.api.js +4 -1
- package/lib/commonjs/networking/api-requests/auth.api.js.map +1 -1
- package/lib/commonjs/networking/api-requests/rooms.api.js +111 -17
- package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
- package/lib/commonjs/networking/stanzaHandlers.js +106 -50
- package/lib/commonjs/networking/stanzaHandlers.js.map +1 -1
- package/lib/commonjs/networking/xmpp/getHistory.xmpp.js +29 -74
- package/lib/commonjs/networking/xmpp/getHistory.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js +44 -0
- package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmpp/mamRouter.js +186 -0
- package/lib/commonjs/networking/xmpp/mamRouter.js.map +1 -0
- package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js +41 -4
- package/lib/commonjs/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmpp/sendMediaMessage.xmpp.js +16 -3
- package/lib/commonjs/networking/xmpp/sendMediaMessage.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js +13 -6
- package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js +14 -6
- package/lib/commonjs/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmppClient.js +104 -23
- package/lib/commonjs/networking/xmppClient.js.map +1 -1
- package/lib/commonjs/roomStore/Middleware/newMessageMidlleware.js +29 -34
- package/lib/commonjs/roomStore/Middleware/newMessageMidlleware.js.map +1 -1
- package/lib/commonjs/roomStore/Middleware/perfMiddleware.js +51 -0
- package/lib/commonjs/roomStore/Middleware/perfMiddleware.js.map +1 -0
- package/lib/commonjs/roomStore/Middleware/reactionsMiddleware.js +66 -43
- package/lib/commonjs/roomStore/Middleware/reactionsMiddleware.js.map +1 -1
- package/lib/commonjs/roomStore/Middleware/unreadMidlleware.js +88 -68
- package/lib/commonjs/roomStore/Middleware/unreadMidlleware.js.map +1 -1
- package/lib/commonjs/roomStore/index.js +18 -14
- package/lib/commonjs/roomStore/index.js.map +1 -1
- package/lib/commonjs/roomStore/persistBackend.js +93 -0
- package/lib/commonjs/roomStore/persistBackend.js.map +1 -0
- package/lib/commonjs/roomStore/persistence.js +253 -51
- package/lib/commonjs/roomStore/persistence.js.map +1 -1
- package/lib/commonjs/roomStore/roomsSlice.js +282 -136
- package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
- package/lib/commonjs/theme/theme.js +3 -0
- package/lib/commonjs/theme/theme.js.map +1 -1
- package/lib/commonjs/utils/devLogger.js +14 -0
- package/lib/commonjs/utils/devLogger.js.map +1 -1
- package/lib/commonjs/version.js +1 -1
- package/lib/module/assets/emojiData.js +36 -0
- package/lib/module/assets/emojiData.js.map +1 -0
- package/lib/module/assets/icons.js +4 -2
- package/lib/module/assets/icons.js.map +1 -1
- package/lib/module/components/MainComponents/ChatHeader.js +37 -17
- package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/module/components/MainComponents/ChatRoom.js +34 -25
- package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
- package/lib/module/components/MainComponents/ChatWrapper.js +23 -17
- package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
- package/lib/module/components/MainComponents/EncryptedSendNotice.js +42 -0
- package/lib/module/components/MainComponents/EncryptedSendNotice.js.map +1 -0
- package/lib/module/components/MainComponents/EncryptionCard.js +281 -0
- package/lib/module/components/MainComponents/EncryptionCard.js.map +1 -0
- package/lib/module/components/MainComponents/MediaMessage.js +7 -0
- package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
- package/lib/module/components/MainComponents/MessageContainer.js +7 -14
- package/lib/module/components/MainComponents/MessageContainer.js.map +1 -1
- package/lib/module/components/MainComponents/MessageList.js +110 -35
- package/lib/module/components/MainComponents/MessageList.js.map +1 -1
- package/lib/module/components/MainComponents/ReduxWrapper.js +5 -0
- package/lib/module/components/MainComponents/ReduxWrapper.js.map +1 -1
- package/lib/module/components/MainComponents/RoomList.js +32 -29
- package/lib/module/components/MainComponents/RoomList.js.map +1 -1
- package/lib/module/components/MainComponents/RoomStack.js +131 -63
- package/lib/module/components/MainComponents/RoomStack.js.map +1 -1
- package/lib/module/components/MainComponents/SealedAttachment.js +224 -0
- package/lib/module/components/MainComponents/SealedAttachment.js.map +1 -0
- package/lib/module/components/MainComponents/SystemMessage.js +6 -2
- package/lib/module/components/MainComponents/SystemMessage.js.map +1 -1
- package/lib/module/components/MessageBubble/Avatar.js +5 -1
- package/lib/module/components/MessageBubble/Avatar.js.map +1 -1
- package/lib/module/components/MessageBubble/BottomReplyContainer.js +19 -22
- package/lib/module/components/MessageBubble/BottomReplyContainer.js.map +1 -1
- package/lib/module/components/MessageBubble/EmojiPickerSheet.js +438 -0
- package/lib/module/components/MessageBubble/EmojiPickerSheet.js.map +1 -0
- package/lib/module/components/MessageBubble/Message.js +269 -140
- package/lib/module/components/MessageBubble/Message.js.map +1 -1
- package/lib/module/components/MessageBubble/MessageInteractions.js +217 -15
- package/lib/module/components/MessageBubble/MessageInteractions.js.map +1 -1
- package/lib/module/components/MessageBubble/MessageReaction.js +115 -94
- package/lib/module/components/MessageBubble/MessageReaction.js.map +1 -1
- package/lib/module/components/MessageBubble/MessageReply.js +65 -24
- package/lib/module/components/MessageBubble/MessageReply.js.map +1 -1
- package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +7 -4
- package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
- package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +161 -18
- package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js.map +1 -1
- package/lib/module/components/Modals/FilePreviewModal/PdfView.js +4 -0
- package/lib/module/components/Modals/FilePreviewModal/PdfView.js.map +1 -1
- package/lib/module/components/Modals/Modal/SwipeBackLayer.js +76 -44
- package/lib/module/components/Modals/Modal/SwipeBackLayer.js.map +1 -1
- package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js +32 -8
- package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
- package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js +4 -0
- package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
- package/lib/module/components/RoomComponents/ChatRoomItem.js +37 -13
- package/lib/module/components/RoomComponents/ChatRoomItem.js.map +1 -1
- package/lib/module/components/RoomComponents/LastMessageItem.js +6 -0
- package/lib/module/components/RoomComponents/LastMessageItem.js.map +1 -1
- package/lib/module/components/RoomComponents/styled/LastAudioMessage.js +2 -2
- package/lib/module/components/RoomComponents/styled/LastAudioMessage.js.map +1 -1
- package/lib/module/components/RoomComponents/styled/LastMessageEmoji.js +8 -9
- package/lib/module/components/RoomComponents/styled/LastMessageEmoji.js.map +1 -1
- package/lib/module/components/RoomComponents/styled/LastMessageFile.js +4 -6
- package/lib/module/components/RoomComponents/styled/LastMessageFile.js.map +1 -1
- package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js +2 -2
- package/lib/module/components/RoomComponents/styled/LastMessagePhoto.js.map +1 -1
- package/lib/module/components/RoomComponents/styled/LastMessageSealed.js +36 -0
- package/lib/module/components/RoomComponents/styled/LastMessageSealed.js.map +1 -0
- package/lib/module/components/RoomComponents/styled/LastMessageVideo.js +2 -2
- package/lib/module/components/RoomComponents/styled/LastMessageVideo.js.map +1 -1
- package/lib/module/components/Thread/ThreadWrapper.js +273 -153
- package/lib/module/components/Thread/ThreadWrapper.js.map +1 -1
- package/lib/module/components/UsersList/UsersList.js +2 -1
- package/lib/module/components/UsersList/UsersList.js.map +1 -1
- package/lib/module/components/styled/DateLabel.js +6 -3
- package/lib/module/components/styled/DateLabel.js.map +1 -1
- package/lib/module/components/styled/SendInput.js +4 -2
- package/lib/module/components/styled/SendInput.js.map +1 -1
- package/lib/module/context/MessageNotificationContext.js +190 -11
- package/lib/module/context/MessageNotificationContext.js.map +1 -1
- package/lib/module/context/xmppProvider.js +22 -7
- package/lib/module/context/xmppProvider.js.map +1 -1
- package/lib/module/e2ee/crypto.js +170 -0
- package/lib/module/e2ee/crypto.js.map +1 -0
- package/lib/module/e2ee/deviceStore.js +77 -0
- package/lib/module/e2ee/deviceStore.js.map +1 -0
- package/lib/module/e2ee/fileCipher.js +90 -0
- package/lib/module/e2ee/fileCipher.js.map +1 -0
- package/lib/module/e2ee/fileEnvelope.js +66 -0
- package/lib/module/e2ee/fileEnvelope.js.map +1 -0
- package/lib/module/e2ee/index.js +185 -0
- package/lib/module/e2ee/index.js.map +1 -0
- package/lib/module/e2ee/limits.js +5 -0
- package/lib/module/e2ee/limits.js.map +1 -0
- package/lib/module/e2ee/ns.js +4 -0
- package/lib/module/e2ee/ns.js.map +1 -0
- package/lib/module/e2ee/omemo.js +610 -0
- package/lib/module/e2ee/omemo.js.map +1 -0
- package/lib/module/e2ee/protobuf.js +140 -0
- package/lib/module/e2ee/protobuf.js.map +1 -0
- package/lib/module/e2ee/ratchet.js +228 -0
- package/lib/module/e2ee/ratchet.js.map +1 -0
- package/lib/module/e2ee/sealedBody.js +19 -0
- package/lib/module/e2ee/sealedBody.js.map +1 -0
- package/lib/module/e2ee/sealedFiles.js +154 -0
- package/lib/module/e2ee/sealedFiles.js.map +1 -0
- package/lib/module/e2ee/send.js +48 -0
- package/lib/module/e2ee/send.js.map +1 -0
- package/lib/module/e2ee/stanza.js +107 -0
- package/lib/module/e2ee/stanza.js.map +1 -0
- package/lib/module/e2ee/store.js +35 -0
- package/lib/module/e2ee/store.js.map +1 -0
- package/lib/module/helpers/accountName.js +18 -0
- package/lib/module/helpers/accountName.js.map +1 -0
- package/lib/module/helpers/createMessageFromXml.js +19 -4
- package/lib/module/helpers/createMessageFromXml.js.map +1 -1
- package/lib/module/helpers/createRoomFromApi.js +36 -2
- package/lib/module/helpers/createRoomFromApi.js.map +1 -1
- package/lib/module/helpers/createUserNameFromSetUser.js +3 -1
- package/lib/module/helpers/createUserNameFromSetUser.js.map +1 -1
- package/lib/module/helpers/displayName.js +11 -0
- package/lib/module/helpers/displayName.js.map +1 -0
- package/lib/module/helpers/emoji.js +44 -0
- package/lib/module/helpers/emoji.js.map +1 -0
- package/lib/module/helpers/haptics.js +24 -0
- package/lib/module/helpers/haptics.js.map +1 -0
- package/lib/module/helpers/historyPreloadScheduler.js +32 -66
- package/lib/module/helpers/historyPreloadScheduler.js.map +1 -1
- package/lib/module/helpers/insertMessageWithDelimiter.js +21 -12
- package/lib/module/helpers/insertMessageWithDelimiter.js.map +1 -1
- package/lib/module/helpers/mamReactions.js +51 -0
- package/lib/module/helpers/mamReactions.js.map +1 -0
- package/lib/module/helpers/parseMessageReference.js +37 -0
- package/lib/module/helpers/parseMessageReference.js.map +1 -0
- package/lib/module/helpers/persistCrypto.js +4 -0
- package/lib/module/helpers/persistCrypto.js.map +1 -1
- package/lib/module/helpers/reactionsConfig.js +10 -0
- package/lib/module/helpers/reactionsConfig.js.map +1 -0
- package/lib/module/helpers/secureKeyValue.js +19 -0
- package/lib/module/helpers/secureKeyValue.js.map +1 -1
- package/lib/module/helpers/updateMessagesTillLast.js +17 -2
- package/lib/module/helpers/updateMessagesTillLast.js.map +1 -1
- package/lib/module/helpers/videoCache.js +125 -0
- package/lib/module/helpers/videoCache.js.map +1 -0
- package/lib/module/hooks/useHeapSender.js +3 -1
- package/lib/module/hooks/useHeapSender.js.map +1 -1
- package/lib/module/hooks/useLogout.js +8 -0
- package/lib/module/hooks/useLogout.js.map +1 -1
- package/lib/module/hooks/useMessageHeapState.js +3 -2
- package/lib/module/hooks/useMessageHeapState.js.map +1 -1
- package/lib/module/hooks/useRoomInitialization.js +17 -8
- package/lib/module/hooks/useRoomInitialization.js.map +1 -1
- package/lib/module/hooks/useSendMessage.js +85 -15
- package/lib/module/hooks/useSendMessage.js.map +1 -1
- package/lib/module/hooks/useUnreadMessagesCounter.js +1 -1
- package/lib/module/hooks/useUnreadMessagesCounter.js.map +1 -1
- package/lib/module/i18n/strings.js +180 -0
- package/lib/module/i18n/strings.js.map +1 -1
- package/lib/module/main.js +1 -0
- package/lib/module/main.js.map +1 -1
- package/lib/module/networking/api-requests/auth.api.js +4 -1
- package/lib/module/networking/api-requests/auth.api.js.map +1 -1
- package/lib/module/networking/api-requests/rooms.api.js +109 -18
- package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
- package/lib/module/networking/stanzaHandlers.js +107 -51
- package/lib/module/networking/stanzaHandlers.js.map +1 -1
- package/lib/module/networking/xmpp/getHistory.xmpp.js +29 -74
- package/lib/module/networking/xmpp/getHistory.xmpp.js.map +1 -1
- package/lib/module/networking/xmpp/handleStanzas.xmpp.js +42 -0
- package/lib/module/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
- package/lib/module/networking/xmpp/mamRouter.js +175 -0
- package/lib/module/networking/xmpp/mamRouter.js.map +1 -0
- package/lib/module/networking/xmpp/presenceInRoom.xmpp.js +38 -2
- package/lib/module/networking/xmpp/presenceInRoom.xmpp.js.map +1 -1
- package/lib/module/networking/xmpp/sendMediaMessage.xmpp.js +16 -3
- package/lib/module/networking/xmpp/sendMediaMessage.xmpp.js.map +1 -1
- package/lib/module/networking/xmpp/sendTextMessage.xmpp.js +13 -6
- package/lib/module/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
- package/lib/module/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js +14 -6
- package/lib/module/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js.map +1 -1
- package/lib/module/networking/xmppClient.js +105 -24
- package/lib/module/networking/xmppClient.js.map +1 -1
- package/lib/module/roomStore/Middleware/newMessageMidlleware.js +29 -34
- package/lib/module/roomStore/Middleware/newMessageMidlleware.js.map +1 -1
- package/lib/module/roomStore/Middleware/perfMiddleware.js +45 -0
- package/lib/module/roomStore/Middleware/perfMiddleware.js.map +1 -0
- package/lib/module/roomStore/Middleware/reactionsMiddleware.js +66 -43
- package/lib/module/roomStore/Middleware/reactionsMiddleware.js.map +1 -1
- package/lib/module/roomStore/Middleware/unreadMidlleware.js +89 -69
- package/lib/module/roomStore/Middleware/unreadMidlleware.js.map +1 -1
- package/lib/module/roomStore/index.js +19 -15
- package/lib/module/roomStore/index.js.map +1 -1
- package/lib/module/roomStore/persistBackend.js +86 -0
- package/lib/module/roomStore/persistBackend.js.map +1 -0
- package/lib/module/roomStore/persistence.js +253 -49
- package/lib/module/roomStore/persistence.js.map +1 -1
- package/lib/module/roomStore/roomsSlice.js +275 -134
- package/lib/module/roomStore/roomsSlice.js.map +1 -1
- package/lib/module/theme/theme.js +3 -0
- package/lib/module/theme/theme.js.map +1 -1
- package/lib/module/utils/devLogger.js +13 -0
- package/lib/module/utils/devLogger.js.map +1 -1
- package/lib/module/version.js +1 -1
- package/lib/typescript/assets/emojiData.d.ts +8 -0
- package/lib/typescript/assets/emojiData.d.ts.map +1 -0
- package/lib/typescript/assets/icons.d.ts +8 -0
- package/lib/typescript/assets/icons.d.ts.map +1 -1
- 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/EncryptedSendNotice.d.ts +4 -0
- package/lib/typescript/components/MainComponents/EncryptedSendNotice.d.ts.map +1 -0
- package/lib/typescript/components/MainComponents/EncryptionCard.d.ts +10 -0
- package/lib/typescript/components/MainComponents/EncryptionCard.d.ts.map +1 -0
- package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/MessageContainer.d.ts +2 -2
- package/lib/typescript/components/MainComponents/MessageContainer.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/MessageList.d.ts.map +1 -1
- 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/MainComponents/RoomStack.d.ts +7 -2
- package/lib/typescript/components/MainComponents/RoomStack.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/SealedAttachment.d.ts +13 -0
- package/lib/typescript/components/MainComponents/SealedAttachment.d.ts.map +1 -0
- package/lib/typescript/components/MainComponents/SystemMessage.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/Avatar.d.ts +2 -0
- package/lib/typescript/components/MessageBubble/Avatar.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/BottomReplyContainer.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/EmojiPickerSheet.d.ts +11 -0
- package/lib/typescript/components/MessageBubble/EmojiPickerSheet.d.ts.map +1 -0
- package/lib/typescript/components/MessageBubble/Message.d.ts +2 -2
- package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts +2 -0
- package/lib/typescript/components/MessageBubble/MessageInteractions.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/MessageReaction.d.ts +1 -0
- package/lib/typescript/components/MessageBubble/MessageReaction.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/MessageReply.d.ts +7 -7
- package/lib/typescript/components/MessageBubble/MessageReply.d.ts.map +1 -1
- package/lib/typescript/components/Modals/ChatProfileModal/ChatProfileModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/FilePreviewModal/FilePreviewModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/FilePreviewModal/PdfView.d.ts.map +1 -1
- package/lib/typescript/components/Modals/Modal/SwipeBackLayer.d.ts +2 -1
- package/lib/typescript/components/Modals/Modal/SwipeBackLayer.d.ts.map +1 -1
- package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/UserSettingsModal/UserSettingsModal.d.ts.map +1 -1
- package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts +2 -2
- package/lib/typescript/components/RoomComponents/ChatRoomItem.d.ts.map +1 -1
- package/lib/typescript/components/RoomComponents/LastMessageItem.d.ts.map +1 -1
- package/lib/typescript/components/RoomComponents/styled/LastAudioMessage.d.ts.map +1 -1
- package/lib/typescript/components/RoomComponents/styled/LastMessageEmoji.d.ts +3 -6
- package/lib/typescript/components/RoomComponents/styled/LastMessageEmoji.d.ts.map +1 -1
- package/lib/typescript/components/RoomComponents/styled/LastMessageSealed.d.ts +7 -0
- package/lib/typescript/components/RoomComponents/styled/LastMessageSealed.d.ts.map +1 -0
- package/lib/typescript/components/Thread/ThreadWrapper.d.ts +7 -1
- package/lib/typescript/components/Thread/ThreadWrapper.d.ts.map +1 -1
- package/lib/typescript/components/UsersList/UsersList.d.ts.map +1 -1
- package/lib/typescript/components/styled/DateLabel.d.ts +1 -0
- package/lib/typescript/components/styled/DateLabel.d.ts.map +1 -1
- package/lib/typescript/components/styled/SendInput.d.ts +1 -0
- 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.map +1 -1
- package/lib/typescript/e2ee/crypto.d.ts +28 -0
- package/lib/typescript/e2ee/crypto.d.ts.map +1 -0
- package/lib/typescript/e2ee/deviceStore.d.ts +4 -0
- package/lib/typescript/e2ee/deviceStore.d.ts.map +1 -0
- package/lib/typescript/e2ee/fileCipher.d.ts +7 -0
- package/lib/typescript/e2ee/fileCipher.d.ts.map +1 -0
- package/lib/typescript/e2ee/fileEnvelope.d.ts +27 -0
- package/lib/typescript/e2ee/fileEnvelope.d.ts.map +1 -0
- package/lib/typescript/e2ee/index.d.ts +23 -0
- package/lib/typescript/e2ee/index.d.ts.map +1 -0
- package/lib/typescript/e2ee/limits.d.ts +3 -0
- package/lib/typescript/e2ee/limits.d.ts.map +1 -0
- package/lib/typescript/e2ee/ns.d.ts +2 -0
- package/lib/typescript/e2ee/ns.d.ts.map +1 -0
- package/lib/typescript/e2ee/omemo.d.ts +64 -0
- package/lib/typescript/e2ee/omemo.d.ts.map +1 -0
- package/lib/typescript/e2ee/protobuf.d.ts +25 -0
- package/lib/typescript/e2ee/protobuf.d.ts.map +1 -0
- package/lib/typescript/e2ee/ratchet.d.ts +39 -0
- package/lib/typescript/e2ee/ratchet.d.ts.map +1 -0
- package/lib/typescript/e2ee/sealedBody.d.ts +2 -0
- package/lib/typescript/e2ee/sealedBody.d.ts.map +1 -0
- package/lib/typescript/e2ee/sealedFiles.d.ts +31 -0
- package/lib/typescript/e2ee/sealedFiles.d.ts.map +1 -0
- package/lib/typescript/e2ee/send.d.ts +6 -0
- package/lib/typescript/e2ee/send.d.ts.map +1 -0
- package/lib/typescript/e2ee/stanza.d.ts +8 -0
- package/lib/typescript/e2ee/stanza.d.ts.map +1 -0
- package/lib/typescript/e2ee/store.d.ts +16 -0
- package/lib/typescript/e2ee/store.d.ts.map +1 -0
- package/lib/typescript/helpers/accountName.d.ts +7 -0
- package/lib/typescript/helpers/accountName.d.ts.map +1 -0
- package/lib/typescript/helpers/createMessageFromXml.d.ts.map +1 -1
- package/lib/typescript/helpers/createRoomFromApi.d.ts.map +1 -1
- package/lib/typescript/helpers/createUserNameFromSetUser.d.ts.map +1 -1
- package/lib/typescript/helpers/displayName.d.ts +2 -0
- package/lib/typescript/helpers/displayName.d.ts.map +1 -0
- package/lib/typescript/helpers/emoji.d.ts +6 -0
- package/lib/typescript/helpers/emoji.d.ts.map +1 -0
- package/lib/typescript/helpers/haptics.d.ts +3 -0
- package/lib/typescript/helpers/haptics.d.ts.map +1 -0
- package/lib/typescript/helpers/historyPreloadScheduler.d.ts +1 -0
- package/lib/typescript/helpers/historyPreloadScheduler.d.ts.map +1 -1
- package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts.map +1 -1
- package/lib/typescript/helpers/mamReactions.d.ts +13 -0
- package/lib/typescript/helpers/mamReactions.d.ts.map +1 -0
- package/lib/typescript/helpers/parseMessageReference.d.ts +16 -0
- package/lib/typescript/helpers/parseMessageReference.d.ts.map +1 -0
- package/lib/typescript/helpers/persistCrypto.d.ts +1 -0
- package/lib/typescript/helpers/persistCrypto.d.ts.map +1 -1
- package/lib/typescript/helpers/reactionsConfig.d.ts +5 -0
- package/lib/typescript/helpers/reactionsConfig.d.ts.map +1 -0
- package/lib/typescript/helpers/secureKeyValue.d.ts +4 -0
- package/lib/typescript/helpers/secureKeyValue.d.ts.map +1 -1
- package/lib/typescript/helpers/updateMessagesTillLast.d.ts.map +1 -1
- package/lib/typescript/helpers/videoCache.d.ts +19 -0
- package/lib/typescript/helpers/videoCache.d.ts.map +1 -0
- package/lib/typescript/hooks/useHeapSender.d.ts.map +1 -1
- package/lib/typescript/hooks/useLogout.d.ts.map +1 -1
- package/lib/typescript/hooks/useMessageHeapState.d.ts.map +1 -1
- package/lib/typescript/hooks/useRoomInitialization.d.ts +2 -2
- package/lib/typescript/hooks/useRoomInitialization.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/main.d.ts +2 -0
- package/lib/typescript/main.d.ts.map +1 -1
- package/lib/typescript/networking/api-requests/auth.api.d.ts +4 -1
- package/lib/typescript/networking/api-requests/auth.api.d.ts.map +1 -1
- package/lib/typescript/networking/api-requests/rooms.api.d.ts +22 -1
- package/lib/typescript/networking/api-requests/rooms.api.d.ts.map +1 -1
- package/lib/typescript/networking/stanzaHandlers.d.ts +4 -2
- package/lib/typescript/networking/stanzaHandlers.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/getHistory.xmpp.d.ts +3 -1
- package/lib/typescript/networking/xmpp/getHistory.xmpp.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/handleStanzas.xmpp.d.ts +1 -0
- package/lib/typescript/networking/xmpp/handleStanzas.xmpp.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/mamRouter.d.ts +23 -0
- package/lib/typescript/networking/xmpp/mamRouter.d.ts.map +1 -0
- package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts +1 -0
- package/lib/typescript/networking/xmpp/presenceInRoom.xmpp.d.ts.map +1 -1
- 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 +22 -1
- package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
- package/lib/typescript/roomStore/Middleware/newMessageMidlleware.d.ts.map +1 -1
- package/lib/typescript/roomStore/Middleware/perfMiddleware.d.ts +4 -0
- package/lib/typescript/roomStore/Middleware/perfMiddleware.d.ts.map +1 -0
- package/lib/typescript/roomStore/Middleware/reactionsMiddleware.d.ts +9 -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/index.d.ts.map +1 -1
- package/lib/typescript/roomStore/persistBackend.d.ts +11 -0
- package/lib/typescript/roomStore/persistBackend.d.ts.map +1 -0
- package/lib/typescript/roomStore/persistence.d.ts +5 -6
- package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
- package/lib/typescript/roomStore/roomsSlice.d.ts +41 -1
- package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
- package/lib/typescript/theme/theme.d.ts +4 -1
- package/lib/typescript/theme/theme.d.ts.map +1 -1
- package/lib/typescript/types/models/message.model.d.ts +9 -0
- package/lib/typescript/types/models/message.model.d.ts.map +1 -1
- package/lib/typescript/types/models/room.model.d.ts +21 -0
- package/lib/typescript/types/models/room.model.d.ts.map +1 -1
- package/lib/typescript/types/models/xmpp.model.d.ts +6 -1
- package/lib/typescript/types/models/xmpp.model.d.ts.map +1 -1
- package/lib/typescript/types/types.d.ts +19 -3
- package/lib/typescript/types/types.d.ts.map +1 -1
- package/lib/typescript/utils/devLogger.d.ts +8 -0
- package/lib/typescript/utils/devLogger.d.ts.map +1 -1
- package/lib/typescript/version.d.ts +1 -1
- package/package.json +14 -1
- package/src/assets/emojiData.ts +2146 -0
- package/src/assets/icons.tsx +32 -5
- package/src/components/MainComponents/ChatHeader.tsx +46 -16
- package/src/components/MainComponents/ChatRoom.tsx +46 -30
- package/src/components/MainComponents/ChatWrapper.tsx +28 -10
- package/src/components/MainComponents/EncryptedSendNotice.tsx +35 -0
- package/src/components/MainComponents/EncryptionCard.tsx +287 -0
- package/src/components/MainComponents/MediaMessage.tsx +5 -0
- package/src/components/MainComponents/MessageContainer.tsx +7 -15
- package/src/components/MainComponents/MessageList.tsx +96 -43
- package/src/components/MainComponents/ReduxWrapper.tsx +5 -0
- package/src/components/MainComponents/RoomList.tsx +28 -29
- package/src/components/MainComponents/RoomStack.tsx +156 -83
- package/src/components/MainComponents/SealedAttachment.tsx +251 -0
- package/src/components/MainComponents/SystemMessage.tsx +6 -2
- package/src/components/MessageBubble/Avatar.tsx +7 -1
- package/src/components/MessageBubble/BottomReplyContainer.tsx +20 -21
- package/src/components/MessageBubble/EmojiPickerSheet.tsx +468 -0
- package/src/components/MessageBubble/Message.tsx +242 -93
- package/src/components/MessageBubble/MessageInteractions.tsx +215 -15
- package/src/components/MessageBubble/MessageReaction.tsx +120 -96
- package/src/components/MessageBubble/MessageReply.tsx +65 -32
- package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +7 -4
- package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +181 -35
- package/src/components/Modals/FilePreviewModal/PdfView.tsx +4 -0
- package/src/components/Modals/Modal/SwipeBackLayer.tsx +114 -63
- package/src/components/Modals/UserProfileModal/UserProfileModal.tsx +53 -8
- package/src/components/Modals/UserSettingsModal/UserSettingsModal.tsx +5 -0
- package/src/components/RoomComponents/ChatRoomItem.tsx +34 -15
- package/src/components/RoomComponents/LastMessageItem.tsx +5 -0
- package/src/components/RoomComponents/styled/LastAudioMessage.tsx +3 -1
- package/src/components/RoomComponents/styled/LastMessageEmoji.tsx +7 -8
- package/src/components/RoomComponents/styled/LastMessageFile.tsx +2 -2
- package/src/components/RoomComponents/styled/LastMessagePhoto.tsx +1 -1
- package/src/components/RoomComponents/styled/LastMessageSealed.tsx +31 -0
- package/src/components/RoomComponents/styled/LastMessageVideo.tsx +1 -1
- package/src/components/Thread/ThreadWrapper.tsx +287 -198
- package/src/components/UsersList/UsersList.tsx +2 -1
- package/src/components/styled/DateLabel.tsx +7 -3
- package/src/components/styled/SendInput.tsx +5 -2
- package/src/context/MessageNotificationContext.tsx +205 -7
- package/src/context/xmppProvider.tsx +29 -9
- package/src/e2ee/crypto.ts +194 -0
- package/src/e2ee/deviceStore.ts +80 -0
- package/src/e2ee/fileCipher.ts +86 -0
- package/src/e2ee/fileEnvelope.ts +115 -0
- package/src/e2ee/index.ts +192 -0
- package/src/e2ee/limits.ts +2 -0
- package/src/e2ee/ns.ts +1 -0
- package/src/e2ee/omemo.ts +802 -0
- package/src/e2ee/protobuf.ts +188 -0
- package/src/e2ee/ratchet.ts +271 -0
- package/src/e2ee/sealedBody.ts +17 -0
- package/src/e2ee/sealedFiles.ts +181 -0
- package/src/e2ee/send.ts +70 -0
- package/src/e2ee/stanza.ts +133 -0
- package/src/e2ee/store.ts +54 -0
- package/src/helpers/accountName.ts +15 -0
- package/src/helpers/createMessageFromXml.ts +31 -6
- package/src/helpers/createRoomFromApi.tsx +37 -1
- package/src/helpers/createUserNameFromSetUser.ts +2 -1
- package/src/helpers/displayName.ts +9 -0
- package/src/helpers/emoji.ts +39 -0
- package/src/helpers/haptics.ts +19 -0
- package/src/helpers/historyPreloadScheduler.ts +37 -69
- package/src/helpers/insertMessageWithDelimiter.ts +23 -16
- package/src/helpers/mamReactions.ts +59 -0
- package/src/helpers/parseMessageReference.ts +38 -0
- package/src/helpers/persistCrypto.ts +5 -0
- package/src/helpers/reactionsConfig.ts +13 -0
- package/src/helpers/secureKeyValue.ts +15 -0
- package/src/helpers/updateMessagesTillLast.tsx +14 -2
- package/src/helpers/videoCache.ts +138 -0
- package/src/hooks/useHeapSender.tsx +3 -2
- package/src/hooks/useLogout.tsx +9 -0
- package/src/hooks/useMessageHeapState.tsx +6 -2
- package/src/hooks/useRoomInitialization.tsx +32 -15
- package/src/hooks/useSendMessage.tsx +89 -16
- package/src/hooks/useUnreadMessagesCounter.ts +1 -1
- package/src/i18n/strings.ts +180 -0
- package/src/main.ts +2 -0
- package/src/networking/api-requests/auth.api.ts +9 -1
- package/src/networking/api-requests/rooms.api.ts +121 -18
- package/src/networking/stanzaHandlers.ts +116 -60
- package/src/networking/xmpp/getHistory.xmpp.ts +44 -106
- package/src/networking/xmpp/handleStanzas.xmpp.ts +51 -0
- package/src/networking/xmpp/mamRouter.ts +176 -0
- package/src/networking/xmpp/presenceInRoom.xmpp.ts +46 -3
- package/src/networking/xmpp/sendMediaMessage.xmpp.ts +19 -1
- package/src/networking/xmpp/sendTextMessage.xmpp.ts +17 -10
- package/src/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.ts +23 -10
- package/src/networking/xmppClient.ts +111 -20
- package/src/roomStore/Middleware/newMessageMidlleware.tsx +35 -38
- package/src/roomStore/Middleware/perfMiddleware.ts +50 -0
- package/src/roomStore/Middleware/reactionsMiddleware.tsx +53 -52
- package/src/roomStore/Middleware/unreadMidlleware.tsx +92 -80
- package/src/roomStore/index.ts +28 -27
- package/src/roomStore/persistBackend.ts +93 -0
- package/src/roomStore/persistence.ts +295 -73
- package/src/roomStore/roomsSlice.ts +304 -155
- package/src/theme/theme.ts +10 -1
- package/src/types/models/message.model.ts +9 -0
- package/src/types/models/room.model.ts +22 -0
- package/src/types/models/xmpp.model.ts +4 -2
- package/src/types/types.ts +19 -3
- package/src/utils/devLogger.ts +16 -0
- package/src/version.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","createContext","useCallback","useContext","useEffect","useMemo","useRef","useState","AppState","DeviceEventEmitter","NetInfo","VideoCallOverlay","XmppClient","refreshAuthTokensQuietly","buildXmppClientKey","getGlobalXmppClient","getReusableXmppClientByKey","isXmppClientReusable","setGlobalXmppClient","withXmppClientInitLock","applyResolvedUserToStore","refreshUserCredentialsForXmpp","resolveInitBeforeLoadUser","ensureScopedChatCache","getRooms","prefetchRoomsViaRest","allRoomPresences","pushSubscriptionService","store","logout","setStoreClient","setConfig","setLogoutState","setVisibleRoom","clearVisibleRoom","setLastViewedTimestamp","deleteRoomMessage","setUnreadSyncing","getFlushBoundaryTs","getReadMarkerTimestamp","runHistoryPreloadScheduler","updateMessagesTillLast","secureUserStorage","clearPersistedState","pushLog","devPushLog","jsx","_jsx","jsxs","_jsxs","XmppContext","LOGOUT_EVENT","subscribeAllRoomsForPush","client","reason","rooms","Object","keys","getState","length","nick","jid","getLocal","subscribeToRooms","then","catch","e","XmppProvider","children","config","isVisible","setClient","providerBootstrapStatus","setProviderBootstrapStatus","initMode","initBeforeLoad","lastCredsRef","completedBootstrapKeyRef","inflightBootstrapKeyRef","credentialsProvider","refreshTokens","enabled","rotated","force","xmppPassword","rotatedUser","chatSettingStore","user","username","xmppUsername","defaultWallet","walletAddress","password","fresh","err","u","jwtLogin","token","userLogin","customLogin","initBeforeLoadAuth","myEndpoint","initializeClient","xmppSettings","settings","key","reusable","current","created","prevGlobal","close","newClient","setCredentialsProvider","waitForOnline","console","error","setOnOnline","underlying","finally","getChatsPrivateStoreRequestStanza","abortController","AbortController","cancelled","MAX_BOOTSTRAP_ATTEMPTS","bootstrapAttempt","BOOTSTRAP_BUDGET_MS","reachedReady","budgetTimer","setTimeout","abort","dispatch","clearBudget","clearTimeout","run","explicitUser","appId","baseUrl","devServer","join","mode","clearStoreBeforeInit","remove","undefined","resolved","signal","hasResolved","xmppPasswordPresent","connectPassword","restRoomsPromise","c","getRoomsStanza","roomCount","qos","historyQoS","activeRoomJID","defaultRoomJids","defaultRooms","map","r","filter","Boolean","selectedRoomJid","concurrency","stagedPreloadConcurrency","pageSize","stagedPreloadFirstPassSize","roomLimit","preloadTopKRooms","warn","aborted","backoff","Math","min","message","status","response","data","id","setInterval","currentState","suppressReconnect","forceReconnect","ensureStreamAlive","clearInterval","visibleBeforeBackground","suspendInBackground","keepAliveInBackground","sub","addEventListener","next","isSuspended","resume","roomJID","suspend","state","visibleRoomJID","boundaryTs","readBoundaries","readTs","roomHeapSlice","chatJID","timestamp","messageId","flushLastViewedToPrivateStoreStanza","visibleRoomTs","chatWasVisibleRef","wasVisible","lastMessagesRef","lastStampedMs","flushTimer","advance","s","room","messages","newest","freshState","freshBoundaryTs","unsub","subscribe","reachable","isConnected","isInternetReachable","addListener","disconnect","Provider","value","useXmppClient","context","Error","candidates","live","find","emitXmppLogout","emit"],"sourceRoot":"../../../src","sources":["context/xmppProvider.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAEVC,aAAa,EACbC,WAAW,EACXC,UAAU,EACVC,SAAS,EACTC,OAAO,EACPC,MAAM,EACNC,QAAQ,QACH,OAAO;AACd,SAASC,QAAQ,EAAEC,kBAAkB,QAAQ,cAAc;AAC3D,OAAOC,OAAO,MAAM,iCAAiC;AACrD,SAASC,gBAAgB,QAAQ,2CAA2C;AAC5E,OAAOC,UAAU,MAEV,0BAA0B;AACjC,SAASC,wBAAwB,QAAQ,2BAA2B;AAOpE,SACEC,kBAAkB,EAClBC,mBAAmB,EACnBC,0BAA0B,EAC1BC,oBAAoB,EACpBC,mBAAmB,EACnBC,sBAAsB,QACjB,yBAAyB;AAChC,SACEC,wBAAwB,EACxBC,6BAA6B,EAC7BC,yBAAyB,QACpB,sCAAsC;AAC7C,SAASC,qBAAqB,QAAQ,kCAAkC;AACxE,SAASC,QAAQ,IAAIC,oBAAoB,QAAQ,sCAAsC;AACvF,SAASC,gBAAgB,QAAQ,0CAA0C;AAC3E,SAASC,uBAAuB,QAAQ,qCAAqC;AAC7E,SAASC,KAAK,QAAQ,cAAc;AACpC,SAASC,MAAM,EAAEC,cAAc,EAAEC,SAAS,QAAQ,gCAAgC;AAClF,SACEC,cAAc,EACdC,cAAc,EACdC,gBAAgB,EAChBC,sBAAsB,EACtBC,iBAAiB,EACjBC,gBAAgB,QACX,yBAAyB;AAChC,SACEC,kBAAkB,EAClBC,sBAAsB,QACjB,mCAAmC;AAC1C,SAASC,0BAA0B,QAAQ,oCAAoC;AAC/E,SAASC,sBAAsB,QAAQ,mCAAmC;AAC1E,SAASC,iBAAiB,QAAQ,8BAA8B;AAChE,SAASC,mBAAmB,QAAQ,0BAA0B;AAC9D,SAASC,OAAO,IAAIC,UAAU,QAAQ,oBAAoB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAkB3D,MAAMC,WAAW,gBAAGjD,aAAa,CAAyB,IAAI,CAAC;AAW/D,MAAMkD,YAAY,GAAG,oBAAoB;AAEzC,MAAMC,wBAAwB,GAAGA,CAACC,MAAW,EAAEC,MAAc,KAAK;EAChE,MAAMC,KAAK,GAAGC,MAAM,CAACC,IAAI,CAAC7B,KAAK,CAAC8B,QAAQ,CAAC,CAAC,CAACH,KAAK,CAACA,KAAK,IAAI,CAAC,CAAC,CAAC;EAC7D,IAAI,CAACF,MAAM,IAAI,CAACE,KAAK,CAACI,MAAM,EAAE;IAAC;EAAO;EACtC,MAAMC,IAAI,GAAGP,MAAM,CAACQ,GAAG,EAAEC,QAAQ,CAAC,CAAC;EACnCnC,uBAAuB,CACpBoC,gBAAgB,CAACV,MAAM,EAAEE,KAAK,EAAEK,IAAI,CAAC,CACrCI,IAAI,CAAC,MAAMnB,UAAU,CAAC,MAAM,EAAE,GAAGS,MAAM,mBAAmBC,KAAK,CAACI,MAAM,QAAQ,CAAC,CAAC,CAChFM,KAAK,CAAEC,CAAC,IAAKrB,UAAU,CAAC,MAAM,EAAE,GAAGS,MAAM,2BAA2B,EAAEY,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,OAAO,MAAMC,YAAyC,GAAGA,CAAC;EAAEC,QAAQ;EAAEC,MAAM;EAAEC;AAAU,CAAC,KAAK;EAC5F,MAAM,CAACjB,MAAM,EAAEkB,SAAS,CAAC,GAAGhE,QAAQ,CAAoB,IAAI,CAAC;EAC7D,MAAM,CAACiE,uBAAuB,EAAEC,0BAA0B,CAAC,GACzDlE,QAAQ,CAA0B,MAAM,CAAC;;EAE3C;EACA;EACA,MAAMmE,QAA6B,GAAGL,MAAM,EAAEM,cAAc,GAAG,UAAU,GAAG,MAAM;EAElF,MAAMC,YAAY,GAAGtE,MAAM,CAAkF,IAAI,CAAC;EAClH,MAAMuE,wBAAwB,GAAGvE,MAAM,CAAS,EAAE,CAAC;EACnD,MAAMwE,uBAAuB,GAAGxE,MAAM,CAAS,EAAE,CAAC;;EAElD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMyE,mBAAmB,GAAG1E,OAAO,CAA0B,MAAM;IACjE,OAAO,YAAY;MACjB;MACA;MACA;MACA;MACA;MACA;MACA;MACA,IAAIgE,MAAM,EAAEW,aAAa,EAAEC,OAAO,EAAE;QAClC,MAAMC,OAAO,GAAG,MAAMrE,wBAAwB,CAAC;UAAEsE,KAAK,EAAE;QAAK,CAAC,CAAC;QAE/D,IAAID,OAAO,EAAEE,YAAY,EAAE;UACzB,MAAMC,WAAW,GAAGzD,KAAK,CAAC8B,QAAQ,CAAC,CAAC,CAAC4B,gBAAgB,CAACC,IAAI;UAC1D,OAAO;YACLC,QAAQ,EACNH,WAAW,EAAEI,YAAY,IACzBJ,WAAW,EAAEK,aAAa,EAAEC,aAAa,IACzC,EAAE;YACJC,QAAQ,EAAEV,OAAO,CAACE;UACpB,CAAC;QACH;MACF;;MAEA;MACA;MACA;MACA;MACA,MAAMS,KAAK,GAAG,MAAMxE,6BAA6B,CAACgD,MAAM,CAAC,CAACJ,KAAK,CAC5D6B,GAAG,IAAK;QACPjD,UAAU,CAAC,MAAM,EAAE,uCAAuC,EAAEiD,GAAG,CAAC;QAChE,OAAO,IAAI;MACb,CACF,CAAC;MACD,IAAID,KAAK,EAAE;QACTzE,wBAAwB,CAACyE,KAAK,CAAC;QAC/B,OAAO;UACLL,QAAQ,EACNK,KAAK,CAACJ,YAAY,IAClBI,KAAK,CAACH,aAAa,EAAEC,aAAa,IAClC,EAAE;UACJC,QAAQ,EAAEC,KAAK,CAACT,YAAY,IAAI;QAClC,CAAC;MACH;;MAEA;MACA;MACA;MACA;MACA;MACA;MACA,MAAMW,CAAC,GAAGnE,KAAK,CAAC8B,QAAQ,CAAC,CAAC,CAAC4B,gBAAgB,CAACC,IAAI;MAChD,OAAO;QACLC,QAAQ,EAAEO,CAAC,EAAEN,YAAY,IAAIM,CAAC,EAAEL,aAAa,EAAEC,aAAa,IAAI,EAAE;QAClEC,QAAQ,EAAEG,CAAC,EAAEX,YAAY,IAAI;MAC/B,CAAC;IACH,CAAC;EACH,CAAC,EAAE,CACDf,MAAM,EAAE2B,QAAQ,EAAEf,OAAO,EACzBZ,MAAM,EAAE2B,QAAQ,EAAEC,KAAK,EACvB5B,MAAM,EAAEW,aAAa,EAAEC,OAAO,EAC9BZ,MAAM,EAAE6B,SAAS,EAAEjB,OAAO,EAC1BZ,MAAM,EAAE8B,WAAW,EAAElB,OAAO,EAC5BZ,MAAM,EAAE+B,kBAAkB,EAAEC,UAAU,CACvC,CAAC;EAEF,MAAMC,gBAAgB,GAAGpG,WAAW,CAClC,OACEsF,QAAgB,EAChBI,QAAgB,EAChBW,YAAoC,KACZ;IACxB,MAAMC,QAAQ,GAAGD,YAAY,IAAIlC,MAAM,EAAEkC,YAAY;IACrD,MAAME,GAAG,GAAG3F,kBAAkB,CAAC0E,QAAQ,EAAEgB,QAAQ,CAAC;;IAElD;IACA,MAAME,QAAQ,GAAG1F,0BAA0B,CAACyF,GAAG,CAAC;IAChD,IAAIC,QAAQ,EAAE;MACZnC,SAAS,CAACmC,QAAQ,CAAC;MACnB9B,YAAY,CAAC+B,OAAO,GAAG;QAAEnB,QAAQ;QAAEI,QAAQ;QAAEY;MAAS,CAAC;MACvD,OAAOE,QAAQ;IACjB;;IAEA;IACA,IAAIrD,MAAM,IAAIpC,oBAAoB,CAACoC,MAAM,CAAC,EAAE;MAC1CuB,YAAY,CAAC+B,OAAO,GAAG;QAAEnB,QAAQ;QAAEI,QAAQ;QAAEY;MAAS,CAAC;MACvD,OAAOnD,MAAM;IACf;;IAEA;IACA;IACA,MAAMuD,OAAO,GAAG,MAAMzF,sBAAsB,CAACsF,GAAG,EAAE,YAAY;MAC5D,MAAMI,UAAU,GAAG9F,mBAAmB,CAAC,CAAC;MACxC,IAAI8F,UAAU,EAAE;QACd,IAAI;UAAE,MAAMA,UAAU,CAACC,KAAK,CAAC,CAAC;QAAE,CAAC,CAAC,MAAM,CAAC;MAC3C;MACA,MAAMC,SAAS,GAAG,IAAInG,UAAU,CAAC4E,QAAQ,EAAEI,QAAQ,EAAEY,QAAQ,CAAC;MAC9D;MACA;MACA;MACA;MACA;MACAO,SAAS,CAACC,sBAAsB,CAACjC,mBAAmB,CAAC;MACrD7D,mBAAmB,CAAC6F,SAAS,EAAEN,GAAG,CAAC;MACnC,MAAMM,SAAS,CAACE,aAAa,CAAC,CAAC,CAAChD,KAAK,CAAE6B,GAAG,IAAK;QAC7CoB,OAAO,CAACC,KAAK,CAAC,gCAAgC,EAAErB,GAAG,CAAC;QACpD,MAAMA,GAAG;MACX,CAAC,CAAC;MACF,OAAOiB,SAAS;IAClB,CAAC,CAAC;;IAEF;IACA;IACAH,OAAO,CAACI,sBAAsB,CAACjC,mBAAmB,CAAC;;IAEnD;IACA;IACA;IACA;IACA;IACA;IACA6B,OAAO,CAACQ,WAAW,CAAC,MAAM;MACxB,MAAMC,UAAU,GAAIT,OAAO,CAASvD,MAAM;MAC1C,IAAI,CAACgE,UAAU,EAAE;QAAC;MAAO;MACzB3F,gBAAgB,CAAC2F,UAAU,CAAC,CACzBpD,KAAK,CAAEC,CAAC,IACPrB,UAAU,CAAC,MAAM,EAAE,4CAA4C,EAAEqB,CAAC,CACpE,CAAC,CACAoD,OAAO,CAAC,MAAMlE,wBAAwB,CAACiE,UAAU,EAAE,WAAW,CAAC,CAAC;MACnE;MACA;MACA;MACAT,OAAO,CACJW,iCAAiC,CAAC,CAAC,CACnCtD,KAAK,CAAEC,CAAU,IAChBrB,UAAU,CAAC,MAAM,EAAE,wCAAwC,EAAEqB,CAAC,CAChE,CAAC;MACH;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA,MAAMX,KAAK,GAAG3B,KAAK,CAAC8B,QAAQ,CAAC,CAAC,CAACH,KAAK,EAAEA,KAAK,IAAI,CAAC,CAAC;MACjDd,sBAAsB,CAACc,KAAK,EAAEqD,OAAO,CAAC,CAAC3C,KAAK,CAAEC,CAAU,IACtDrB,UAAU,CAAC,MAAM,EAAE,yCAAyC,EAAEqB,CAAC,CACjE,CAAC;IACH,CAAC,CAAC;IAEFK,SAAS,CAACqC,OAAO,CAAC;IAClBhC,YAAY,CAAC+B,OAAO,GAAG;MAAEnB,QAAQ;MAAEI,QAAQ;MAAEY;IAAS,CAAC;IACvD,OAAOI,OAAO;EAChB,CAAC,EACD,CAACvD,MAAM,EAAEgB,MAAM,EAAEkC,YAAY,EAAExB,mBAAmB,CACpD,CAAC;;EAED;EACA;EACA;EACA3E,SAAS,CAAC,MAAM;IACd,IAAI,CAACiE,MAAM,EAAEM,cAAc,EAAE;MAC3BF,0BAA0B,CAAC,MAAM,CAAC;MAClC;IACF;IAEA,MAAM+C,eAAe,GAAG,IAAIC,eAAe,CAAC,CAAC;IAC7C,IAAIC,SAAS,GAAG,KAAK;IACrB;IACA;IACA;IACA;IACA;IACA,MAAMC,sBAAsB,GAAG,CAAC;IAChC,IAAIC,gBAAgB,GAAG,CAAC;IACxB;IACA;IACA,MAAMC,mBAAmB,GAAG,KAAK;IACjC,IAAIC,YAAY,GAAG,KAAK;IACxB,IAAIC,WAAiD,GAAGC,UAAU,CAAC,MAAM;MACvE,IAAIN,SAAS,IAAII,YAAY,EAAE;QAAC;MAAO;MACvCjF,UAAU,CAAC,MAAM,EAAE,+CAA+C,CAAC;MACnE2E,eAAe,CAACS,KAAK,CAAC,CAAC;MACvBnD,uBAAuB,CAAC6B,OAAO,GAAG,EAAE;MACpC/E,KAAK,CAACsG,QAAQ,CAAC7F,gBAAgB,CAAC,KAAK,CAAC,CAAC;MACvCoC,0BAA0B,CAAC,QAAQ,CAAC;IACtC,CAAC,EAAEoD,mBAAmB,CAAC;IACvB,MAAMM,WAAW,GAAGA,CAAA,KAAM;MACxB,IAAIJ,WAAW,EAAE;QACfK,YAAY,CAACL,WAAW,CAAC;QACzBA,WAAW,GAAG,IAAI;MACpB;IACF,CAAC;IAED,MAAMM,GAAG,GAAG,MAAAA,CAAA,KAAY;MACtB;MACA,MAAMC,YAAY,GAAGjE,MAAM,EAAE6B,SAAS,EAAEjB,OAAO,GAAGZ,MAAM,EAAE6B,SAAS,EAAEX,IAAI,GAAG,IAAI;MAChF,MAAMkB,GAAG,GAAG,CACVpC,MAAM,EAAEkE,KAAK,IAAI,EAAE,EACnBlE,MAAM,EAAEmE,OAAO,IAAI,EAAE,EACrBF,YAAY,EAAE5C,aAAa,EAAEC,aAAa,IAAI,EAAE,EAChD2C,YAAY,EAAE7C,YAAY,IAAI,EAAE,EAChC6C,YAAY,EAAErC,KAAK,GAAG,GAAG,GAAG,GAAG,EAC/B5B,MAAM,EAAE2B,QAAQ,EAAEf,OAAO,GAAGZ,MAAM,EAAE2B,QAAQ,EAAEC,KAAK,IAAI,EAAE,GAAG,EAAE,EAC9D5B,MAAM,EAAEkC,YAAY,EAAEkC,SAAS,IAAI,EAAE,CACtC,CAACC,IAAI,CAAC,GAAG,CAAC;MAEX,IAAI7D,wBAAwB,CAAC8B,OAAO,KAAKF,GAAG,EAAE;QAC5C5D,UAAU,CAAC,IAAI,EAAE,qDAAqD,CAAC;QACvE;QACA;QACA;QACA;QACA;QACAiF,YAAY,GAAG,IAAI;QACnBK,WAAW,CAAC,CAAC;QACb;MACF;MACA,IAAIrD,uBAAuB,CAAC6B,OAAO,KAAKF,GAAG,EAAE;QAC3C5D,UAAU,CAAC,IAAI,EAAE,6CAA6C,CAAC;QAC/D;MACF;MACAiC,uBAAuB,CAAC6B,OAAO,GAAGF,GAAG;MACrChC,0BAA0B,CAAC,SAAS,CAAC;MACrC7C,KAAK,CAACsG,QAAQ,CAAC7F,gBAAgB,CAAC,IAAI,CAAC,CAAC;MACtCQ,UAAU,CAAC,IAAI,EAAE,yBAAyB,EAAE;QAC1C0F,KAAK,EAAElE,MAAM,EAAEkE,KAAK;QACpBC,OAAO,EAAEnE,MAAM,EAAEmE,OAAO;QACxBG,IAAI,EACFtE,MAAM,EAAE2B,QAAQ,EAAEf,OAAO,GAAG,KAAK,GACjCZ,MAAM,EAAE6B,SAAS,EAAEjB,OAAO,GAAG,WAAW,GACxCZ,MAAM,EAAE8B,WAAW,EAAElB,OAAO,GAAG,aAAa,GAAG;MACnD,CAAC,CAAC;MAEF,IAAI;QACF,IAAIZ,MAAM,EAAEuE,oBAAoB,EAAE;UAChC/F,UAAU,CAAC,IAAI,EAAE,sCAAsC,CAAC;UACxDjB,KAAK,CAACsG,QAAQ,CAAClG,cAAc,CAAC,CAAC,CAAC;UAChCJ,KAAK,CAACsG,QAAQ,CAACrG,MAAM,CAAC,CAAC,CAAC;UACxB,MAAMa,iBAAiB,CAAC,CAAC,CAACmG,MAAM,CAAC,CAAC,CAAC5E,KAAK,CAAC,MAAM6E,SAAS,CAAC;QAC3D;QAEA,MAAMvH,qBAAqB,CAAC8C,MAAM,CAAC;QACnCxB,UAAU,CAAC,IAAI,EAAE,2CAA2C,CAAC;QAE7D,MAAMkG,QAAqB,GAAG,MAAMzH,yBAAyB,CAAC;UAC5D+C,MAAM;UACN2E,MAAM,EAAExB,eAAe,CAACwB;QAC1B,CAAC,CAAC;QACF,IAAItB,SAAS,EAAE;UAAC;QAAO;QAEvB,IAAI,CAACqB,QAAQ,IAAI,CAACA,QAAQ,CAAC3D,YAAY,IAAI,CAAC2D,QAAQ,CAACtD,YAAY,EAAE;UACjE5C,UAAU,CAAC,OAAO,EAAE,qCAAqC,EAAE;YACzDoG,WAAW,EAAE,CAAC,CAACF,QAAQ;YACvBtD,YAAY,EAAEsD,QAAQ,EAAEtD,YAAY;YACpCyD,mBAAmB,EAAE,CAAC,CAACH,QAAQ,EAAE3D;UACnC,CAAC,CAAC;UACFX,0BAA0B,CAAC,QAAQ,CAAC;UACpCK,uBAAuB,CAAC6B,OAAO,GAAG,EAAE;UACpC/E,KAAK,CAACsG,QAAQ,CAAC7F,gBAAgB,CAAC,KAAK,CAAC,CAAC;UACvC;QACF;QAEAQ,UAAU,CAAC,IAAI,EAAE,kCAAkCkG,QAAQ,CAACtD,YAAY,GAAG,CAAC;QAC5ErE,wBAAwB,CAAC2H,QAAQ,CAAC;QAElC,IAAI1E,MAAM,EAAE;UACVzC,KAAK,CAACsG,QAAQ,CAACnG,SAAS,CAACsC,MAAM,CAAC,CAAC;QACnC;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,IAAI8E,eAAe,GAAGJ,QAAQ,CAAC3D,YAAY;QAC3C,IAAIf,MAAM,EAAEW,aAAa,EAAEC,OAAO,IAAI,CAACZ,MAAM,EAAE2B,QAAQ,EAAEf,OAAO,EAAE;UAChE,MAAMC,OAAO,GAAG,MAAMrE,wBAAwB,CAAC;YAAEsE,KAAK,EAAE;UAAK,CAAC,CAAC;UAC/D,IAAIuC,SAAS,EAAE;YAAC;UAAO;UACvB,IAAIxC,OAAO,EAAEE,YAAY,EAAE;YACzB+D,eAAe,GAAGjE,OAAO,CAACE,YAAY;UACxC;QACF;;QAEA;QACA;QACA;QACA;QACA;QACA,MAAMgE,gBAAgB,GAAG3H,oBAAoB,CAAC,CAAC,CAACwC,KAAK,CAAC,MAAM6E,SAAS,CAAC;QAEtE,MAAMO,CAAC,GAAG,MAAM/C,gBAAgB,CAC9ByC,QAAQ,CAACtD,YAAY,EACrB0D,eAAe,EACf9E,MAAM,EAAEkC,YACV,CAAC;QACD,IAAImB,SAAS,EAAE;UAAC;QAAO;QACvB7E,UAAU,CAAC,IAAI,EAAE,sDAAsD,CAAC;QAExE,MAAMwG,CAAC,CAACpC,aAAa,CAAC,CAAC;QACvB,IAAIS,SAAS,EAAE;UAAC;QAAO;QACvB7E,UAAU,CAAC,MAAM,EAAE,6BAA6B,CAAC;QAEjD,IAAI;UACF,MAAMwG,CAAC,CAACC,cAAc,CAAC,CAAC;UACxBzG,UAAU,CAAC,MAAM,EAAE,mCAAmC,CAAC;QACzD,CAAC,CAAC,OAAOqB,CAAC,EAAE;UACVrB,UAAU,CAAC,MAAM,EAAE,uCAAuC,EAAEqB,CAAC,CAAC;QAChE;QACA,IAAI;UACF,MAAMmF,CAAC,CAAC9B,iCAAiC,CAAC,CAAC;UAC3C1E,UAAU,CAAC,MAAM,EAAE,iCAAiC,CAAC;QACvD,CAAC,CAAC,OAAOqB,CAAC,EAAE;UACVrB,UAAU,CAAC,MAAM,EAAE,qCAAqC,EAAEqB,CAAC,CAAC;QAC9D;QACA;QACA;QACA;QACA,IAAI;UACF,MAAMkF,gBAAgB;QACxB,CAAC,CAAC,MAAM,CAAC;QACT,IAAI;UACF,MAAMG,SAAS,GAAG/F,MAAM,CAACC,IAAI,CAAC7B,KAAK,CAAC8B,QAAQ,CAAC,CAAC,CAACH,KAAK,CAACA,KAAK,IAAI,CAAC,CAAC,CAAC,CAACI,MAAM;UACxEd,UAAU,CAAC,MAAM,EAAE,2BAA2B0G,SAAS,sBAAsB,CAAC;UAC9E,MAAM7H,gBAAgB,CAAE2H,CAAC,CAAShG,MAAM,CAAC;UACzCR,UAAU,CAAC,MAAM,EAAE,qCAAqC,CAAC;QAC3D,CAAC,CAAC,OAAOqB,CAAC,EAAE;UACVrB,UAAU,CAAC,MAAM,EAAE,yCAAyC,EAAEqB,CAAC,CAAC;QAClE;QACAd,wBAAwB,CAAEiG,CAAC,CAAShG,MAAM,EAAE,gBAAgB,CAAC;QAE7DzB,KAAK,CAACsG,QAAQ,CAACpG,cAAc,CAACuH,CAAC,CAAC,CAAC;QACjCxE,wBAAwB,CAAC8B,OAAO,GAAGF,GAAG;QACtC3B,uBAAuB,CAAC6B,OAAO,GAAG,EAAE;QACpCmB,YAAY,GAAG,IAAI;QACnBK,WAAW,CAAC,CAAC;QACb1D,0BAA0B,CAAC,OAAO,CAAC;QACnC5B,UAAU,CAAC,IAAI,EAAE,uBAAuB,CAAC;;QAEzC;QACA,MAAM2G,GAAG,GAAGnF,MAAM,EAAEoF,UAAU;QAC9B,MAAMC,aAAa,GAAG9H,KAAK,CAAC8B,QAAQ,CAAC,CAAC,CAACH,KAAK,CAACmG,aAAa,IAAI,IAAI;QAClE,MAAMC,eAAe,GAClBtF,MAAM,EAAEuF,YAAY,EAAYC,GAAG,CAAEC,CAAC,IACrC,OAAOA,CAAC,KAAK,QAAQ,GAAGA,CAAC,GAAGA,CAAC,EAAEjG,GACjC,CAAC,CAACkG,MAAM,CAACC,OAAO,CAAC,IAAI,EAAE;QACzBxH,0BAA0B,CAAC;UACzBa,MAAM,EAAEgG,CAAC;UACTL,MAAM,EAAExB,eAAe,CAACwB,MAAM;UAC9BiB,eAAe,EAAEP,aAAa;UAC9BC,eAAe;UACfO,WAAW,EAAEV,GAAG,EAAEW,wBAAwB;UAC1CC,QAAQ,EAAEZ,GAAG,EAAEa,0BAA0B;UACzCC,SAAS,EAAEd,GAAG,EAAEe;QAClB,CAAC,CAAC,CAACtG,KAAK,CAAE6B,GAAG,IAAKoB,OAAO,CAACsD,IAAI,CAAC,kCAAkC,EAAE1E,GAAG,CAAC,CAAC;MAC1E,CAAC,CAAC,OAAOqB,KAAU,EAAE;QACnB,IAAIO,SAAS,IAAIF,eAAe,CAACwB,MAAM,CAACyB,OAAO,EAAE;UAAC;QAAO;QACzD7C,gBAAgB,IAAI,CAAC;QACrB;QACA;QACA;QACA;QACA;QACA,IAAIA,gBAAgB,GAAGD,sBAAsB,EAAE;UAC7C,MAAM+C,OAAO,GAAGC,IAAI,CAACC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,KAAKhD,gBAAgB,GAAG,CAAC,CAAC,CAAC;UAClE/E,UAAU,CACR,IAAI,EACJ,2BAA2B+E,gBAAgB,YAAYT,KAAK,EAAE0D,OAAO,kBAAkBH,OAAO,IAChG,CAAC;UACD5F,uBAAuB,CAAC6B,OAAO,GAAG,EAAE;UACpCqB,UAAU,CAAC,MAAM;YACf,IAAI,CAACN,SAAS,IAAI,CAACF,eAAe,CAACwB,MAAM,CAACyB,OAAO,EAAE;cACjDpC,GAAG,CAAC,CAAC;YACP;UACF,CAAC,EAAEqC,OAAO,CAAC;UACX;QACF;QACA7H,UAAU,CAAC,OAAO,EAAE,6CAA6C,EAAE;UACjEgI,OAAO,EAAE1D,KAAK,EAAE0D,OAAO;UACvBC,MAAM,EAAE3D,KAAK,EAAE4D,QAAQ,EAAED,MAAM;UAC/BE,IAAI,EAAE7D,KAAK,EAAE4D,QAAQ,EAAEC;QACzB,CAAC,CAAC;QACFlG,uBAAuB,CAAC6B,OAAO,GAAG,EAAE;QACpCwB,WAAW,CAAC,CAAC;QACbvG,KAAK,CAACsG,QAAQ,CAAC7F,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACvCoC,0BAA0B,CAAC,QAAQ,CAAC;MACtC;IACF,CAAC;IAED4D,GAAG,CAAC,CAAC;IAEL,OAAO,MAAM;MACXX,SAAS,GAAG,IAAI;MAChBS,WAAW,CAAC,CAAC;MACbX,eAAe,CAACS,KAAK,CAAC,CAAC;MACvB;MACA;MACA;MACA;MACA;MACAnD,uBAAuB,CAAC6B,OAAO,GAAG,EAAE;IACtC,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA;EACF,CAAC,EAAE,CACDtC,MAAM,EAAEM,cAAc,EACtBN,MAAM,EAAEkE,KAAK,EACblE,MAAM,EAAEmE,OAAO,EACfnE,MAAM,EAAE6B,SAAS,EAAEjB,OAAO,EAC1BZ,MAAM,EAAE6B,SAAS,EAAEX,IAAI,EAAEG,aAAa,EAAEC,aAAa,EACrDtB,MAAM,EAAE6B,SAAS,EAAEX,IAAI,EAAEE,YAAY,EACrCpB,MAAM,EAAE6B,SAAS,EAAEX,IAAI,EAAEU,KAAK,EAC9B5B,MAAM,EAAE2B,QAAQ,EAAEf,OAAO,EACzBZ,MAAM,EAAE2B,QAAQ,EAAEC,KAAK,EACvB5B,MAAM,EAAEkC,YAAY,EAAEkC,SAAS,CAChC,CAAC;;EAEF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACArI,SAAS,CAAC,MAAM;IACd,IAAI,CAACiD,MAAM,EAAE;MAAC;IAAO;IACrB,MAAM4H,EAAE,GAAGC,WAAW,CAAC,MAAM;MAC3B;MACA;MACA;MACA;MACA;MACA;MACA,IAAI1K,QAAQ,CAAC2K,YAAY,KAAK,YAAY,EAAE;QAAC;MAAO;MACpD,IAAI9H,MAAM,CAAC+H,iBAAiB,EAAE;QAAC;MAAO;MACtC,IAAI/H,MAAM,CAACyH,MAAM,KAAK,QAAQ,EAAE;QAC9BjI,UAAU,CAAC,IAAI,EAAE,oBAAoBQ,MAAM,CAACyH,MAAM,mBAAmB,CAAC;QACtEzH,MAAM,CAACgI,cAAc,CAAC,CAAC;MACzB,CAAC,MAAM;QACLhI,MAAM,CAACiI,iBAAiB,GAAG,CAAC;MAC9B;IACF,CAAC,EAAE,KAAK,CAAC;IACT,OAAO,MAAMC,aAAa,CAACN,EAAE,CAAC;EAChC,CAAC,EAAE,CAAC5H,MAAM,CAAC,CAAC;;EAEZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACAjD,SAAS,CAAC,MAAM;IACd;IACA;IACA;IACA,IAAIoL,uBAAsC,GAAG,IAAI;IACjD,MAAMC,mBAAmB,GAAG,CAACpH,MAAM,EAAEkC,YAAY,EAAEmF,qBAAqB;IACxE,MAAMC,GAAG,GAAGnL,QAAQ,CAACoL,gBAAgB,CAAC,QAAQ,EAAGC,IAAI,IAAK;MACxD,MAAMxC,CAAC,GAAGhG,MAAM;MAChB,IAAIwI,IAAI,KAAK,QAAQ,EAAE;QACrB,IAAIxC,CAAC,EAAEyC,WAAW,EAAE;UAClBjJ,UAAU,CAAC,IAAI,EAAE,iDAAiD,CAAC;UACnEwG,CAAC,CAAC0C,MAAM,CAAC,CAAC;QACZ;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,IAAI1C,CAAC,KAAKA,CAAC,CAACyB,MAAM,KAAK,SAAS,IAAIzB,CAAC,CAACyB,MAAM,KAAK,OAAO,CAAC,EAAE;UACzDjI,UAAU,CAAC,IAAI,EAAE,2BAA2BwG,CAAC,CAACyB,MAAM,mBAAmB,CAAC;UACxEzB,CAAC,CAACgC,cAAc,CAAC,CAAC;QACpB;QACA;QACA;QACA;QACA;QACA,IAAIG,uBAAuB,EAAE;UAC3B5J,KAAK,CAACsG,QAAQ,CAACjG,cAAc,CAAC;YAAE+J,OAAO,EAAER;UAAwB,CAAC,CAAC,CAAC;UACpEA,uBAAuB,GAAG,IAAI;QAChC;QACA;MACF;MACA;MACA,IAAI,CAACnC,CAAC,EAAE;QAAC;MAAO;MAChB,IAAIwC,IAAI,KAAK,YAAY,IAAIJ,mBAAmB,EAAE;QAChDpC,CAAC,CAAC4C,OAAO,CAAC,CAAC,CAAChI,KAAK,CAAC,MAAM6E,SAAS,CAAC;MACpC;MACA,MAAMoD,KAAK,GAAGtK,KAAK,CAAC8B,QAAQ,CAAC,CAAC;MAC9B,MAAMH,KAAK,GAAG2I,KAAK,CAAC3I,KAAK,EAAEA,KAAK;MAChC,MAAM4I,cAAc,GAAGD,KAAK,CAAC3I,KAAK,EAAE4I,cAAc,IAAI,IAAI;MAC1D;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACAX,uBAAuB,GAAGW,cAAc;MACxC,IAAIC,UAAyB,GAAG,IAAI;MACpC,IAAID,cAAc,EAAE;QAClBC,UAAU,GAAGF,KAAK,CAAC3I,KAAK,EAAE8I,cAAc,GAAGF,cAAc,CAAC,IAAI,IAAI;QAClE,MAAMG,MAAM,GAAG/J,sBAAsB,CACnCgB,KAAK,GAAG4I,cAAc,CAAC,EACvBD,KAAK,CAACK,aAAa,EACnBH,UACF,CAAC;QACD;QACA;QACA;QACA;QACA,IAAIE,MAAM,GAAG,CAAC,EAAE;UACd1K,KAAK,CAACsG,QAAQ,CACZ/F,sBAAsB,CAAC;YAAEqK,OAAO,EAAEL,cAAc;YAAEM,SAAS,EAAEH;UAAO,CAAC,CACvE,CAAC;QACH;QACA;QACA;QACA;QACA1K,KAAK,CAACsG,QAAQ,CACZ9F,iBAAiB,CAAC;UAAE4J,OAAO,EAAEG,cAAc;UAAEO,SAAS,EAAE;QAAgB,CAAC,CAC3E,CAAC;QACD9K,KAAK,CAACsG,QAAQ,CAAChG,gBAAgB,CAAC,CAAC,CAAC;MACpC;MACA;MACA;MACA;MACA;MACA;MACAmH,CAAC,CAACsD,mCAAmC,CAACpJ,KAAK,EAAE;QAC3C4I,cAAc;QACd;QACAS,aAAa,EAAET,cAAc,GACzB7J,kBAAkB,CAChBiB,KAAK,GAAG4I,cAAc,CAAC,EACvBD,KAAK,CAACK,aAAa,EACnBH,UACF,CAAC,GACDtD;MACN,CAAC,CAAC,CAAC7E,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACpB,CAAC,CAAC;IACF,OAAO,MAAM0H,GAAG,CAAC9C,MAAM,CAAC,CAAC;EAC3B,CAAC,EAAE,CAACxF,MAAM,EAAEgB,MAAM,EAAEkC,YAAY,EAAEmF,qBAAqB,CAAC,CAAC;;EAEzD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMmB,iBAAiB,GAAGvM,MAAM,CAAC,KAAK,CAAC;EACvCF,SAAS,CAAC,MAAM;IACd,IAAI,OAAOkE,SAAS,KAAK,SAAS,EAAE;MAAC;IAAO;IAC5C,MAAM4H,KAAK,GAAGtK,KAAK,CAAC8B,QAAQ,CAAC,CAAC;IAC9B,MAAMH,KAAK,GAAG2I,KAAK,CAAC3I,KAAK,EAAEA,KAAK;IAChC,MAAMmG,aAAa,GAAGwC,KAAK,CAAC3I,KAAK,EAAEmG,aAAa,IAAI,IAAI;IACxD,MAAMoD,UAAU,GAAGD,iBAAiB,CAAClG,OAAO;IAC5CkG,iBAAiB,CAAClG,OAAO,GAAGrC,SAAS;IACrC,IAAIA,SAAS,EAAE;MACb,IAAIoF,aAAa,EAAE;QACjB9H,KAAK,CAACsG,QAAQ,CAACjG,cAAc,CAAC;UAAE+J,OAAO,EAAEtC;QAAc,CAAC,CAAC,CAAC;MAC5D;IACF,CAAC,MAAM;MACL;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA,MAAM0C,UAAU,GAAG1C,aAAa,GAC5BwC,KAAK,CAAC3I,KAAK,EAAE8I,cAAc,GAAG3C,aAAa,CAAC,IAAI,IAAI,GACpD,IAAI;MACR,IAAIoD,UAAU,IAAIpD,aAAa,EAAE;QAC/B,MAAM4C,MAAM,GAAG/J,sBAAsB,CACnCgB,KAAK,GAAGmG,aAAa,CAAC,EACtBwC,KAAK,CAACK,aAAa,EACnBH,UACF,CAAC;QACD,IAAIE,MAAM,GAAG,CAAC,EAAE;UACd1K,KAAK,CAACsG,QAAQ,CACZ/F,sBAAsB,CAAC;YAAEqK,OAAO,EAAE9C,aAAa;YAAE+C,SAAS,EAAEH;UAAO,CAAC,CACtE,CAAC;QACH;QACA;QACA;QACA1K,KAAK,CAACsG,QAAQ,CACZ9F,iBAAiB,CAAC;UAAE4J,OAAO,EAAEtC,aAAa;UAAEgD,SAAS,EAAE;QAAgB,CAAC,CAC1E,CAAC;MACH;MAEA9K,KAAK,CAACsG,QAAQ,CAAChG,gBAAgB,CAAC,CAAC,CAAC;MAClC,IAAI4K,UAAU,IAAIzJ,MAAM,EAAEsJ,mCAAmC,EAAE;QAC7DtJ,MAAM,CACHsJ,mCAAmC,CAACpJ,KAAK,EAAE;UAC1C4I,cAAc,EAAEzC,aAAa;UAC7B;UACA;UACA;UACAkD,aAAa,EAAElD,aAAa,GACxBpH,kBAAkB,CAChBiB,KAAK,GAAGmG,aAAa,CAAC,EACtBwC,KAAK,CAACK,aAAa,EACnBH,UACF,CAAC,GACDtD;QACN,CAAC,CAAC,CACD7E,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;MACpB;IACF;EACF,CAAC,EAAE,CAACK,SAAS,EAAEjB,MAAM,CAAC,CAAC;EAEvBjD,SAAS,CAAC,MAAM;IACd,IAAIkE,SAAS,KAAK,IAAI,EAAE;MAAC;IAAO;IAChC,IAAIyI,eAAoB,GAAG,IAAI;IAC/B,IAAIC,aAAa,GAAG,CAAC;IACrB,IAAIC,UAAgD,GAAG,IAAI;IAE3D,MAAMC,OAAO,GAAGA,CAAA,KAAM;MACpB,MAAMC,CAAC,GAAGvL,KAAK,CAAC8B,QAAQ,CAAC,CAAC;MAC1B,MAAMG,GAAG,GAAGsJ,CAAC,CAAC5J,KAAK,EAAEmG,aAAa;MAClC,IAAI,CAAC7F,GAAG,EAAE;QAAC;MAAO;MAClB,MAAMuJ,IAAI,GAAGD,CAAC,CAAC5J,KAAK,EAAEA,KAAK,GAAGM,GAAG,CAAC;MAClC,IAAI,CAACuJ,IAAI,EAAE;QAAC;MAAO;MACnB,IAAIA,IAAI,CAACC,QAAQ,KAAKN,eAAe,EAAE;QAAC;MAAO;MAC/CA,eAAe,GAAGK,IAAI,CAACC,QAAQ;;MAE/B;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA,MAAMjB,UAAU,GAAGe,CAAC,CAAC5J,KAAK,EAAE8I,cAAc,GAAGxI,GAAG,CAAC,IAAI,IAAI;MACzD,MAAMyJ,MAAM,GAAG/K,sBAAsB,CAAC6K,IAAI,EAAED,CAAC,CAACZ,aAAa,EAAEH,UAAU,CAAC;MACxE,IAAI,CAACkB,MAAM,IAAIA,MAAM,IAAIN,aAAa,EAAE;QAAC;MAAO;MAChDA,aAAa,GAAGM,MAAM;MAEtB1L,KAAK,CAACsG,QAAQ,CACZ/F,sBAAsB,CAAC;QAAEqK,OAAO,EAAE3I,GAAG;QAAE4I,SAAS,EAAEa;MAAO,CAAC,CAC5D,CAAC;MAED,IAAIL,UAAU,EAAE;QAAC7E,YAAY,CAAC6E,UAAU,CAAC;MAAC;MAC1C,IAAI5J,MAAM,EAAEsJ,mCAAmC,EAAE;QAC/CM,UAAU,GAAGjF,UAAU,CAAC,MAAM;UAC5B;UACA;UACA;UACA;UACA,MAAMuF,UAAU,GAAG3L,KAAK,CAAC8B,QAAQ,CAAC,CAAC;UACnC,MAAM8J,eAAe,GAAGD,UAAU,CAAChK,KAAK,EAAE8I,cAAc,GAAGxI,GAAG,CAAC,IAAI,IAAI;UACvER,MAAM,CACHsJ,mCAAmC,CAACY,UAAU,CAAChK,KAAK,EAAEA,KAAK,EAAE;YAC5D4I,cAAc,EAAEtI,GAAG;YACnB+I,aAAa,EAAEtK,kBAAkB,CAC/BiL,UAAU,CAAChK,KAAK,EAAEA,KAAK,GAAGM,GAAG,CAAC,EAC9B0J,UAAU,CAAChB,aAAa,EACxBiB,eACF;UACF,CAAC,CAAC,CACDvJ,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACpB,CAAC,EAAE,IAAI,CAAC;MACV;IACF,CAAC;IAEDiJ,OAAO,CAAC,CAAC;IACT,MAAMO,KAAK,GAAG7L,KAAK,CAAC8L,SAAS,CAACR,OAAO,CAAC;IACtC,OAAO,MAAM;MACXO,KAAK,CAAC,CAAC;MACP,IAAIR,UAAU,EAAE;QAAC7E,YAAY,CAAC6E,UAAU,CAAC;MAAC;IAC5C,CAAC;EACH,CAAC,EAAE,CAAC3I,SAAS,EAAEjB,MAAM,CAAC,CAAC;;EAEvB;EACA;EACA;EACA;EACA;EACA;EACA;EACAjD,SAAS,CAAC,MAAM;IACd,IAAI,CAACiD,MAAM,EAAE;MAAC;IAAO;IACrB,MAAMoK,KAAK,GAAG/M,OAAO,CAACkL,gBAAgB,CAAEM,KAAK,IAAK;MAChD;MACA,MAAMyB,SAAS,GACb,CAAC,CAACzB,KAAK,EAAE0B,WAAW,IAAI1B,KAAK,EAAE2B,mBAAmB,KAAK,KAAK;MAC9D,IAAI,CAACF,SAAS,EAAE;QAAC;MAAO;MACxB;MACA;MACA;MACA;MACA;MACA;MACA,IAAItK,MAAM,CAACyH,MAAM,KAAK,SAAS,IAAIzH,MAAM,CAACyH,MAAM,KAAK,OAAO,EAAE;QAC5DjI,UAAU,CAAC,IAAI,EAAE,+BAA+BQ,MAAM,CAACyH,MAAM,mBAAmB,CAAC;QACjFzH,MAAM,CAACgI,cAAc,CAAC,CAAC;MACzB,CAAC,MAAM,IAAIhI,MAAM,CAACyH,MAAM,KAAK,QAAQ,EAAE;QACrCzH,MAAM,CAACiI,iBAAiB,GAAG,CAAC;MAC9B;IACF,CAAC,CAAC;IACF,OAAO,MAAMmC,KAAK,CAAC,CAAC;EACtB,CAAC,EAAE,CAACpK,MAAM,CAAC,CAAC;;EAEZ;EACA;EACA;EACA;EACA;EACAjD,SAAS,CAAC,MAAM;IACd,MAAMuL,GAAG,GAAGlL,kBAAkB,CAACqN,WAAW,CAAC,uBAAuB,EAAE,MAAM;MACxEjJ,wBAAwB,CAAC8B,OAAO,GAAG,EAAE;MACrC7B,uBAAuB,CAAC6B,OAAO,GAAG,EAAE;MACpClC,0BAA0B,CAAC,MAAM,CAAC;IACpC,CAAC,CAAC;IACF,OAAO,MAAMkH,GAAG,CAAC9C,MAAM,CAAC,CAAC;EAC3B,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA;EACA;EACAzI,SAAS,CAAC,MAAM;IACd,MAAMuL,GAAG,GAAGlL,kBAAkB,CAACqN,WAAW,CAAC3K,YAAY,EAAE,YAAY;MACnE,IAAI;QACF,IAAIE,MAAM,EAAE;UACV,MAAMA,MAAM,CAAC0K,UAAU,CAAC;YAAE3C,iBAAiB,EAAE;UAAK,CAAC,CAAC;QACtD;MACF,CAAC,CAAC,OAAOlH,CAAC,EAAE;QACVgD,OAAO,CAACsD,IAAI,CAAC,0BAA0B,EAAEtG,CAAC,CAAC;MAC7C;MACAhD,mBAAmB,CAAC,IAAI,CAAC;MACzBqD,SAAS,CAAC,IAAI,CAAC;MACfM,wBAAwB,CAAC8B,OAAO,GAAG,EAAE;MACrC7B,uBAAuB,CAAC6B,OAAO,GAAG,EAAE;MACpClC,0BAA0B,CAAC,MAAM,CAAC;MAClC,MAAM9B,mBAAmB,CAAC,CAAC;IAC7B,CAAC,CAAC;IACF,OAAO,MAAMgJ,GAAG,CAAC9C,MAAM,CAAC,CAAC;EAC3B,CAAC,EAAE,CAACxF,MAAM,CAAC,CAAC;EAEZ,oBACEJ,KAAA,CAACC,WAAW,CAAC8K,QAAQ;IACnBC,KAAK,EAAE;MACL5K,MAAM;MACNmB,uBAAuB;MACvBE,QAAQ;MACR4B,gBAAgB;MAChB/B;IACF,CAAE;IAAAH,QAAA,GAEDA,QAAQ,eAMTrB,IAAA,CAACpC,gBAAgB,IAAE,CAAC;EAAA,CACA,CAAC;AAE3B,CAAC;AAED,OAAO,MAAMuN,aAAa,GAAGA,CAAA,KAAM;EACjC,MAAMC,OAAO,GAAGhO,UAAU,CAAC+C,WAAW,CAAC;EACvC,IAAI,CAACiL,OAAO,EAAE;IACZ,MAAM,IAAIC,KAAK,CAAC,mDAAmD,CAAC;EACtE;EACA,IAAI,CAACD,OAAO,CAAC9K,MAAM,EAAE;IACnB,MAAMgL,UAAgD,GAAG,CACvDtN,mBAAmB,CAAC,CAAC,EACrBa,KAAK,CAAC8B,QAAQ,CAAC,CAAC,EAAE4B,gBAAgB,EAAEjC,MAAM,CAC3C;IACD,MAAMiL,IAAI,GAAGD,UAAU,CAACE,IAAI,CACzBlF,CAAC,IAAKA,CAAC,IAAKA,CAAC,CAASyB,MAAM,KAAK,QACpC,CAAC;IACD,IAAIwD,IAAI,EAAE;MACR,OAAO;QAAE,GAAGH,OAAO;QAAE9K,MAAM,EAAEiL;MAAK,CAAC;IACrC;EACF;EACA,OAAOH,OAAO;AAChB,CAAC;;AAED;AACA,OAAO,SAASK,cAAcA,CAAA,EAAG;EAC/B/N,kBAAkB,CAACgO,IAAI,CAACtL,YAAY,CAAC;AACvC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","createContext","useCallback","useContext","useEffect","useMemo","useRef","useState","AppState","DeviceEventEmitter","NetInfo","VideoCallOverlay","XmppClient","refreshAuthTokensQuietly","buildXmppClientKey","getGlobalXmppClient","getReusableXmppClientByKey","isXmppClientReusable","setGlobalXmppClient","withXmppClientInitLock","applyResolvedUserToStore","refreshUserCredentialsForXmpp","resolveInitBeforeLoadUser","ensureScopedChatCache","getRooms","prefetchRoomsViaRest","allRoomPresences","pushSubscriptionService","store","logout","setStoreClient","setConfig","logoutService","setLogoutState","setVisibleRoom","clearVisibleRoom","setLastViewedTimestamp","deleteRoomMessage","setUnreadSyncing","getFlushBoundaryTs","getReadMarkerTimestamp","runHistoryPreloadScheduler","updateMessagesTillLast","secureUserStorage","clearPersistedState","pushLog","devPushLog","jsx","_jsx","jsxs","_jsxs","XmppContext","LOGOUT_EVENT","subscribeAllRoomsForPush","client","reason","rooms","Object","keys","getState","length","nick","jid","getLocal","subscribeToRooms","then","catch","e","XmppProvider","children","config","isVisible","setClient","providerBootstrapStatus","setProviderBootstrapStatus","initMode","initBeforeLoad","lastCredsRef","completedBootstrapKeyRef","inflightBootstrapKeyRef","credentialsProvider","refreshTokens","enabled","rotated","force","xmppPassword","rotatedUser","chatSettingStore","user","username","xmppUsername","defaultWallet","walletAddress","password","fresh","err","u","jwtLogin","token","userLogin","customLogin","initBeforeLoadAuth","myEndpoint","initializeClient","xmppSettings","settings","key","reusable","current","created","prevGlobal","close","newClient","setCredentialsProvider","waitForOnline","console","error","setAuthLostHandler","performLogout","finally","Promise","resolve","onAfterLogout","setOnOnline","underlying","getChatsPrivateStoreRequestStanza","abortController","AbortController","cancelled","MAX_BOOTSTRAP_ATTEMPTS","bootstrapAttempt","BOOTSTRAP_BUDGET_MS","reachedReady","budgetTimer","setTimeout","abort","dispatch","clearBudget","clearTimeout","run","explicitUser","appId","baseUrl","devServer","join","mode","clearStoreBeforeInit","remove","undefined","resolved","signal","hasResolved","xmppPasswordPresent","connectPassword","restRoomsPromise","c","getRoomsStanza","roomCount","qos","historyQoS","activeRoomJID","defaultRoomJids","defaultRooms","map","r","filter","Boolean","selectedRoomJid","concurrency","stagedPreloadConcurrency","pageSize","stagedPreloadFirstPassSize","roomLimit","preloadTopKRooms","warn","aborted","backoff","Math","min","message","status","response","data","id","setInterval","currentState","suppressReconnect","forceReconnect","ensureStreamAlive","clearInterval","visibleBeforeBackground","suspendInBackground","keepAliveInBackground","sub","addEventListener","next","isSuspended","resume","roomJID","suspend","state","visibleRoomJID","boundaryTs","readBoundaries","readTs","roomHeapSlice","chatJID","timestamp","messageId","flushLastViewedToPrivateStoreStanza","visibleRoomTs","chatWasVisibleRef","wasVisible","lastMessagesRef","lastStampedMs","flushTimer","advance","s","room","messages","newest","freshState","freshBoundaryTs","unsub","subscribe","reachable","isConnected","isInternetReachable","addListener","disconnect","contextValue","Provider","value","useXmppClient","context","Error","candidates","live","find","emitXmppLogout","emit"],"sourceRoot":"../../../src","sources":["context/xmppProvider.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { cbc } from '@noble/ciphers/aes.js';
|
|
4
|
+
import { ed25519, x25519 } from '@noble/curves/ed25519.js';
|
|
5
|
+
import { hkdf } from '@noble/hashes/hkdf.js';
|
|
6
|
+
import { hmac } from '@noble/hashes/hmac.js';
|
|
7
|
+
import { sha256 } from '@noble/hashes/sha2.js';
|
|
8
|
+
import { concatBytes, randomBytes, utf8ToBytes } from '@noble/hashes/utils.js';
|
|
9
|
+
export { concatBytes, randomBytes, utf8ToBytes };
|
|
10
|
+
const ZERO_SALT = new Uint8Array(32);
|
|
11
|
+
export function hkdfSha256(ikm, salt, info, length) {
|
|
12
|
+
return hkdf(sha256, ikm, salt ?? ZERO_SALT, utf8ToBytes(info), length);
|
|
13
|
+
}
|
|
14
|
+
export function hmacSha256(key, data) {
|
|
15
|
+
return hmac(sha256, key, data);
|
|
16
|
+
}
|
|
17
|
+
export function aesEncrypt(key, iv, data) {
|
|
18
|
+
return cbc(key, iv).encrypt(data);
|
|
19
|
+
}
|
|
20
|
+
export function aesDecrypt(key, iv, data) {
|
|
21
|
+
return cbc(key, iv).decrypt(data);
|
|
22
|
+
}
|
|
23
|
+
export function generateKeyPair() {
|
|
24
|
+
const {
|
|
25
|
+
secretKey,
|
|
26
|
+
publicKey
|
|
27
|
+
} = x25519.keygen();
|
|
28
|
+
return {
|
|
29
|
+
priv: secretKey,
|
|
30
|
+
pub: publicKey
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export function generateIdentity() {
|
|
34
|
+
const {
|
|
35
|
+
secretKey,
|
|
36
|
+
publicKey
|
|
37
|
+
} = ed25519.keygen();
|
|
38
|
+
return {
|
|
39
|
+
seed: secretKey,
|
|
40
|
+
pub: publicKey
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export function dh(priv, pub) {
|
|
44
|
+
return x25519.getSharedSecret(priv, pub);
|
|
45
|
+
}
|
|
46
|
+
export function identityDhPrivate(identity) {
|
|
47
|
+
return ed25519.utils.toMontgomerySecret(identity.seed);
|
|
48
|
+
}
|
|
49
|
+
export function identityDhPublic(identityPub) {
|
|
50
|
+
return ed25519.utils.toMontgomery(identityPub);
|
|
51
|
+
}
|
|
52
|
+
export function sign(identity, message) {
|
|
53
|
+
return ed25519.sign(message, identity.seed);
|
|
54
|
+
}
|
|
55
|
+
export function verify(signature, message, identityPub) {
|
|
56
|
+
try {
|
|
57
|
+
return ed25519.verify(signature, message, identityPub);
|
|
58
|
+
} catch {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
export function bytesEqual(a, b) {
|
|
63
|
+
if (a.length !== b.length) {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
let diff = 0;
|
|
67
|
+
for (let i = 0; i < a.length; i++) {
|
|
68
|
+
diff |= a[i] ^ b[i];
|
|
69
|
+
}
|
|
70
|
+
return diff === 0;
|
|
71
|
+
}
|
|
72
|
+
const B64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
|
|
73
|
+
const B64_VALUE = new Int16Array(128).fill(-1);
|
|
74
|
+
for (let i = 0; i < B64.length; i++) {
|
|
75
|
+
B64_VALUE[B64.charCodeAt(i)] = i;
|
|
76
|
+
}
|
|
77
|
+
export function toBase64(bytes) {
|
|
78
|
+
let out = '';
|
|
79
|
+
let i = 0;
|
|
80
|
+
for (; i + 2 < bytes.length; i += 3) {
|
|
81
|
+
const n = bytes[i] << 16 | bytes[i + 1] << 8 | bytes[i + 2];
|
|
82
|
+
out += B64[n >> 18] + B64[n >> 12 & 63] + B64[n >> 6 & 63] + B64[n & 63];
|
|
83
|
+
}
|
|
84
|
+
if (i + 1 === bytes.length) {
|
|
85
|
+
const n = bytes[i] << 16;
|
|
86
|
+
out += B64[n >> 18] + B64[n >> 12 & 63] + '==';
|
|
87
|
+
} else if (i + 2 === bytes.length) {
|
|
88
|
+
const n = bytes[i] << 16 | bytes[i + 1] << 8;
|
|
89
|
+
out += B64[n >> 18] + B64[n >> 12 & 63] + B64[n >> 6 & 63] + '=';
|
|
90
|
+
}
|
|
91
|
+
return out;
|
|
92
|
+
}
|
|
93
|
+
export function fromBase64(text) {
|
|
94
|
+
const clean = text.replace(/\s+/g, '').replace(/=+$/, '');
|
|
95
|
+
if (clean.length % 4 === 1) {
|
|
96
|
+
throw new Error('Invalid base64');
|
|
97
|
+
}
|
|
98
|
+
const out = new Uint8Array(Math.floor(clean.length * 3 / 4));
|
|
99
|
+
let acc = 0;
|
|
100
|
+
let bits = 0;
|
|
101
|
+
let pos = 0;
|
|
102
|
+
for (let i = 0; i < clean.length; i++) {
|
|
103
|
+
const code = clean.charCodeAt(i);
|
|
104
|
+
const value = code < 128 ? B64_VALUE[code] : -1;
|
|
105
|
+
if (value < 0) {
|
|
106
|
+
throw new Error('Invalid base64');
|
|
107
|
+
}
|
|
108
|
+
acc = acc << 6 | value;
|
|
109
|
+
bits += 6;
|
|
110
|
+
if (bits >= 8) {
|
|
111
|
+
bits -= 8;
|
|
112
|
+
out[pos++] = acc >> bits & 0xff;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return out;
|
|
116
|
+
}
|
|
117
|
+
export function toHex(bytes) {
|
|
118
|
+
return Array.from(bytes, b => b.toString(16).padStart(2, '0')).join('');
|
|
119
|
+
}
|
|
120
|
+
export function randomInt(min, max) {
|
|
121
|
+
const bytes = randomBytes(4);
|
|
122
|
+
const n = new DataView(bytes.buffer, bytes.byteOffset, 4).getUint32(0);
|
|
123
|
+
return min + n % (max - min + 1);
|
|
124
|
+
}
|
|
125
|
+
export function bytesToUtf8(bytes) {
|
|
126
|
+
const chunks = [];
|
|
127
|
+
let units = [];
|
|
128
|
+
const push = unit => {
|
|
129
|
+
units.push(unit);
|
|
130
|
+
if (units.length >= 8192) {
|
|
131
|
+
chunks.push(String.fromCharCode.apply(null, units));
|
|
132
|
+
units = [];
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
let i = 0;
|
|
136
|
+
while (i < bytes.length) {
|
|
137
|
+
const b = bytes[i++];
|
|
138
|
+
if (b < 0x80) {
|
|
139
|
+
push(b);
|
|
140
|
+
continue;
|
|
141
|
+
}
|
|
142
|
+
const extra = b >= 0xf0 && b < 0xf8 ? 3 : b >= 0xe0 ? 2 : b >= 0xc2 ? 1 : -1;
|
|
143
|
+
let code = extra === 3 ? b & 0x07 : extra === 2 ? b & 0x0f : b & 0x1f;
|
|
144
|
+
let valid = extra > 0 && b < 0xf8 && i + extra <= bytes.length;
|
|
145
|
+
for (let k = 0; valid && k < extra; k++) {
|
|
146
|
+
const next = bytes[i + k];
|
|
147
|
+
if ((next & 0xc0) !== 0x80) {
|
|
148
|
+
valid = false;
|
|
149
|
+
}
|
|
150
|
+
code = code << 6 | next & 0x3f;
|
|
151
|
+
}
|
|
152
|
+
if (!valid || extra === 2 && code < 0x800 || extra === 3 && (code < 0x10000 || code > 0x10ffff) || code >= 0xd800 && code <= 0xdfff) {
|
|
153
|
+
push(0xfffd);
|
|
154
|
+
continue;
|
|
155
|
+
}
|
|
156
|
+
i += extra;
|
|
157
|
+
if (code > 0xffff) {
|
|
158
|
+
code -= 0x10000;
|
|
159
|
+
push(0xd800 | code >> 10);
|
|
160
|
+
push(0xdc00 | code & 0x3ff);
|
|
161
|
+
} else {
|
|
162
|
+
push(code);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
if (units.length) {
|
|
166
|
+
chunks.push(String.fromCharCode.apply(null, units));
|
|
167
|
+
}
|
|
168
|
+
return chunks.join('');
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=crypto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["cbc","ed25519","x25519","hkdf","hmac","sha256","concatBytes","randomBytes","utf8ToBytes","ZERO_SALT","Uint8Array","hkdfSha256","ikm","salt","info","length","hmacSha256","key","data","aesEncrypt","iv","encrypt","aesDecrypt","decrypt","generateKeyPair","secretKey","publicKey","keygen","priv","pub","generateIdentity","seed","dh","getSharedSecret","identityDhPrivate","identity","utils","toMontgomerySecret","identityDhPublic","identityPub","toMontgomery","sign","message","verify","signature","bytesEqual","a","b","diff","i","B64","B64_VALUE","Int16Array","fill","charCodeAt","toBase64","bytes","out","n","fromBase64","text","clean","replace","Error","Math","floor","acc","bits","pos","code","value","toHex","Array","from","toString","padStart","join","randomInt","min","max","DataView","buffer","byteOffset","getUint32","bytesToUtf8","chunks","units","push","unit","String","fromCharCode","apply","extra","valid","k","next"],"sourceRoot":"../../../src","sources":["e2ee/crypto.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import AsyncStorage from '@react-native-async-storage/async-storage';
|
|
4
|
+
import { secureGetOrCreate } from '../helpers/secureKeyValue';
|
|
5
|
+
import { decryptFromPersist, encryptForPersist, isPersistKeyKept } from '../helpers/persistCrypto';
|
|
6
|
+
import { randomBytes, toHex } from './crypto';
|
|
7
|
+
import { createStore } from './store';
|
|
8
|
+
const MMKV_INSTANCE_ID = 'ethora-omemo';
|
|
9
|
+
const MMKV_KEY_STORE_KEY = 'ethora_omemo_store_key';
|
|
10
|
+
const ASYNC_STORAGE_PREFIX = '@ethora/omemo:';
|
|
11
|
+
const createMmkvBackend = async () => {
|
|
12
|
+
let MMKV;
|
|
13
|
+
try {
|
|
14
|
+
MMKV = require('react-native-mmkv').MMKV;
|
|
15
|
+
} catch {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
if (typeof MMKV !== 'function') {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
const key = await secureGetOrCreate(MMKV_KEY_STORE_KEY, () => toHex(randomBytes(8)));
|
|
22
|
+
if (!key) {
|
|
23
|
+
throw new Error('e2ee: the device store key was not kept');
|
|
24
|
+
}
|
|
25
|
+
try {
|
|
26
|
+
const storage = new MMKV({
|
|
27
|
+
id: MMKV_INSTANCE_ID,
|
|
28
|
+
encryptionKey: key.value
|
|
29
|
+
});
|
|
30
|
+
if (key.created) {
|
|
31
|
+
storage.clearAll();
|
|
32
|
+
}
|
|
33
|
+
return {
|
|
34
|
+
getItem: async key => storage.getString(key) ?? null,
|
|
35
|
+
setItem: async (key, value) => void storage.set(key, value),
|
|
36
|
+
removeItem: async key => void storage.delete(key)
|
|
37
|
+
};
|
|
38
|
+
} catch (e) {
|
|
39
|
+
console.warn('[e2ee] react-native-mmkv present but unusable, falling back', e);
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
const asyncStorageBackend = {
|
|
44
|
+
getItem: async key => {
|
|
45
|
+
const raw = await AsyncStorage.getItem(ASYNC_STORAGE_PREFIX + key);
|
|
46
|
+
return raw ? decryptFromPersist(raw) : null;
|
|
47
|
+
},
|
|
48
|
+
setItem: async (key, value) => AsyncStorage.setItem(ASYNC_STORAGE_PREFIX + key, await encryptForPersist(value)),
|
|
49
|
+
removeItem: key => AsyncStorage.removeItem(ASYNC_STORAGE_PREFIX + key)
|
|
50
|
+
};
|
|
51
|
+
const createAsyncStorageBackend = async () => {
|
|
52
|
+
if (!(await isPersistKeyKept())) {
|
|
53
|
+
throw new Error('e2ee: the storage cipher key was not kept');
|
|
54
|
+
}
|
|
55
|
+
return asyncStorageBackend;
|
|
56
|
+
};
|
|
57
|
+
let backendPromise = null;
|
|
58
|
+
const getBackend = () => {
|
|
59
|
+
if (!backendPromise) {
|
|
60
|
+
const opening = createMmkvBackend().then(mmkv => mmkv ?? createAsyncStorageBackend());
|
|
61
|
+
backendPromise = opening;
|
|
62
|
+
// A refusal is not cached: the next start may find the store usable.
|
|
63
|
+
opening.catch(() => {
|
|
64
|
+
if (backendPromise === opening) {
|
|
65
|
+
backendPromise = null;
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
return backendPromise;
|
|
70
|
+
};
|
|
71
|
+
export async function openDeviceStore(jid) {
|
|
72
|
+
return createStore(await getBackend(), jid);
|
|
73
|
+
}
|
|
74
|
+
export const __resetDeviceStoreForTests = () => {
|
|
75
|
+
backendPromise = null;
|
|
76
|
+
};
|
|
77
|
+
//# sourceMappingURL=deviceStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["AsyncStorage","secureGetOrCreate","decryptFromPersist","encryptForPersist","isPersistKeyKept","randomBytes","toHex","createStore","MMKV_INSTANCE_ID","MMKV_KEY_STORE_KEY","ASYNC_STORAGE_PREFIX","createMmkvBackend","MMKV","require","key","Error","storage","id","encryptionKey","value","created","clearAll","getItem","getString","setItem","set","removeItem","delete","e","console","warn","asyncStorageBackend","raw","createAsyncStorageBackend","backendPromise","getBackend","opening","then","mmkv","catch","openDeviceStore","jid","__resetDeviceStoreForTests"],"sourceRoot":"../../../src","sources":["e2ee/deviceStore.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { cbc } from '@noble/ciphers/aes.js';
|
|
4
|
+
import { hmac } from '@noble/hashes/hmac.js';
|
|
5
|
+
import { sha256 } from '@noble/hashes/sha2.js';
|
|
6
|
+
import { bytesEqual, concatBytes, hkdfSha256, randomBytes } from './crypto';
|
|
7
|
+
const SLICE = 32 * 1024;
|
|
8
|
+
const BLOCK = 16;
|
|
9
|
+
const yieldToUi = () => new Promise(resolve => setTimeout(resolve, 0));
|
|
10
|
+
function payloadKeys(key) {
|
|
11
|
+
const km = hkdfSha256(key, undefined, 'OMEMO Payload', 80);
|
|
12
|
+
return {
|
|
13
|
+
enc: km.slice(0, 32),
|
|
14
|
+
auth: km.slice(32, 64),
|
|
15
|
+
iv: km.slice(64)
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export async function encryptLargePayload(plaintext, onProgress) {
|
|
19
|
+
const key = randomBytes(32);
|
|
20
|
+
const {
|
|
21
|
+
enc,
|
|
22
|
+
auth,
|
|
23
|
+
iv
|
|
24
|
+
} = payloadKeys(key);
|
|
25
|
+
const payload = new Uint8Array((Math.floor(plaintext.length / BLOCK) + 1) * BLOCK);
|
|
26
|
+
const mac = hmac.create(sha256, auth);
|
|
27
|
+
let offset = 0;
|
|
28
|
+
let chain = iv;
|
|
29
|
+
while (plaintext.length - offset > SLICE) {
|
|
30
|
+
const out = payload.subarray(offset, offset + SLICE);
|
|
31
|
+
out.set(cbc(enc, chain, {
|
|
32
|
+
disablePadding: true
|
|
33
|
+
}).encrypt(plaintext.subarray(offset, offset + SLICE)));
|
|
34
|
+
mac.update(out);
|
|
35
|
+
chain = out.slice(SLICE - BLOCK);
|
|
36
|
+
offset += SLICE;
|
|
37
|
+
onProgress?.(offset / plaintext.length);
|
|
38
|
+
await yieldToUi();
|
|
39
|
+
}
|
|
40
|
+
const last = cbc(enc, chain).encrypt(plaintext.subarray(offset));
|
|
41
|
+
payload.set(last, offset);
|
|
42
|
+
mac.update(last);
|
|
43
|
+
onProgress?.(1);
|
|
44
|
+
return {
|
|
45
|
+
keyMaterial: concatBytes(key, mac.digest().slice(0, 16)),
|
|
46
|
+
payload
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
export async function decryptLargePayload(keyMaterial, payload, onProgress) {
|
|
50
|
+
if (keyMaterial.length !== 48) {
|
|
51
|
+
throw new Error('Invalid key material');
|
|
52
|
+
}
|
|
53
|
+
if (payload.length === 0 || payload.length % BLOCK !== 0) {
|
|
54
|
+
throw new Error('Payload authentication failed');
|
|
55
|
+
}
|
|
56
|
+
const {
|
|
57
|
+
enc,
|
|
58
|
+
auth,
|
|
59
|
+
iv
|
|
60
|
+
} = payloadKeys(keyMaterial.slice(0, 32));
|
|
61
|
+
const mac = hmac.create(sha256, auth);
|
|
62
|
+
for (let offset = 0; offset < payload.length; offset += SLICE) {
|
|
63
|
+
mac.update(payload.subarray(offset, offset + SLICE));
|
|
64
|
+
onProgress?.(Math.min(offset + SLICE, payload.length) / payload.length * 0.65);
|
|
65
|
+
if (offset + SLICE < payload.length) {
|
|
66
|
+
await yieldToUi();
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
if (!bytesEqual(mac.digest().slice(0, 16), keyMaterial.slice(32))) {
|
|
70
|
+
throw new Error('Payload authentication failed');
|
|
71
|
+
}
|
|
72
|
+
const plaintext = new Uint8Array(payload.length);
|
|
73
|
+
let offset = 0;
|
|
74
|
+
let chain = iv;
|
|
75
|
+
while (payload.length - offset > SLICE) {
|
|
76
|
+
const part = payload.subarray(offset, offset + SLICE);
|
|
77
|
+
plaintext.set(cbc(enc, chain, {
|
|
78
|
+
disablePadding: true
|
|
79
|
+
}).decrypt(part), offset);
|
|
80
|
+
chain = part.slice(SLICE - BLOCK);
|
|
81
|
+
offset += SLICE;
|
|
82
|
+
onProgress?.(0.65 + offset / payload.length * 0.35);
|
|
83
|
+
await yieldToUi();
|
|
84
|
+
}
|
|
85
|
+
const last = cbc(enc, chain).decrypt(payload.subarray(offset));
|
|
86
|
+
plaintext.set(last, offset);
|
|
87
|
+
onProgress?.(1);
|
|
88
|
+
return plaintext.subarray(0, offset + last.length);
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=fileCipher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["cbc","hmac","sha256","bytesEqual","concatBytes","hkdfSha256","randomBytes","SLICE","BLOCK","yieldToUi","Promise","resolve","setTimeout","payloadKeys","key","km","undefined","enc","slice","auth","iv","encryptLargePayload","plaintext","onProgress","payload","Uint8Array","Math","floor","length","mac","create","offset","chain","out","subarray","set","disablePadding","encrypt","update","last","keyMaterial","digest","decryptLargePayload","Error","min","part","decrypt"],"sourceRoot":"../../../src","sources":["e2ee/fileCipher.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { bytesToUtf8, fromBase64, randomBytes, toBase64, toHex, utf8ToBytes } from './crypto';
|
|
4
|
+
import { decryptLargePayload, encryptLargePayload } from './fileCipher';
|
|
5
|
+
export { parseSealedMediaBody } from './sealedBody';
|
|
6
|
+
const MAGIC = Uint8Array.from([0x45, 0x54, 0x48, 0x4f, 0x46, 0x49, 0x4c, 0x45]);
|
|
7
|
+
const VERSION = 1;
|
|
8
|
+
const HEADER_OFFSET = MAGIC.length + 1 + 4;
|
|
9
|
+
export function encodeFileEnvelope(meta, bytes) {
|
|
10
|
+
const header = utf8ToBytes(JSON.stringify({
|
|
11
|
+
mimetype: meta.mimetype,
|
|
12
|
+
originalname: meta.originalname,
|
|
13
|
+
size: meta.size
|
|
14
|
+
}));
|
|
15
|
+
const out = new Uint8Array(HEADER_OFFSET + header.length + bytes.length);
|
|
16
|
+
out.set(MAGIC, 0);
|
|
17
|
+
out[MAGIC.length] = VERSION;
|
|
18
|
+
new DataView(out.buffer).setUint32(MAGIC.length + 1, header.length, false);
|
|
19
|
+
out.set(header, HEADER_OFFSET);
|
|
20
|
+
out.set(bytes, HEADER_OFFSET + header.length);
|
|
21
|
+
return out;
|
|
22
|
+
}
|
|
23
|
+
export function decodeFileEnvelope(envelope) {
|
|
24
|
+
if (envelope.length < HEADER_OFFSET) {
|
|
25
|
+
throw new Error('file_envelope_truncated');
|
|
26
|
+
}
|
|
27
|
+
for (let i = 0; i < MAGIC.length; i++) {
|
|
28
|
+
if (envelope[i] !== MAGIC[i]) {
|
|
29
|
+
throw new Error('file_envelope_bad_magic');
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
const version = envelope[MAGIC.length];
|
|
33
|
+
if (version !== VERSION) {
|
|
34
|
+
throw new Error(`file_envelope_unsupported_version_${version}`);
|
|
35
|
+
}
|
|
36
|
+
const headerLen = new DataView(envelope.buffer, envelope.byteOffset, envelope.byteLength).getUint32(MAGIC.length + 1, false);
|
|
37
|
+
const bodyStart = HEADER_OFFSET + headerLen;
|
|
38
|
+
if (bodyStart > envelope.length) {
|
|
39
|
+
throw new Error('file_envelope_truncated');
|
|
40
|
+
}
|
|
41
|
+
const meta = JSON.parse(bytesToUtf8(envelope.subarray(HEADER_OFFSET, bodyStart)));
|
|
42
|
+
return {
|
|
43
|
+
meta,
|
|
44
|
+
bytes: envelope.subarray(bodyStart)
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
export async function sealFileForUpload(file, onProgress) {
|
|
48
|
+
const envelope = encodeFileEnvelope({
|
|
49
|
+
mimetype: file.type || 'application/octet-stream',
|
|
50
|
+
originalname: file.name || 'blob',
|
|
51
|
+
size: file.bytes.length
|
|
52
|
+
}, file.bytes);
|
|
53
|
+
const {
|
|
54
|
+
keyMaterial,
|
|
55
|
+
payload
|
|
56
|
+
} = await encryptLargePayload(envelope, onProgress);
|
|
57
|
+
return {
|
|
58
|
+
ciphertext: payload,
|
|
59
|
+
keyMaterial: toBase64(keyMaterial),
|
|
60
|
+
filename: toHex(randomBytes(16))
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
export async function openSealedFile(ciphertext, keyMaterial, onProgress) {
|
|
64
|
+
return decodeFileEnvelope(await decryptLargePayload(fromBase64(keyMaterial), ciphertext, onProgress));
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=fileEnvelope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["bytesToUtf8","fromBase64","randomBytes","toBase64","toHex","utf8ToBytes","decryptLargePayload","encryptLargePayload","parseSealedMediaBody","MAGIC","Uint8Array","from","VERSION","HEADER_OFFSET","length","encodeFileEnvelope","meta","bytes","header","JSON","stringify","mimetype","originalname","size","out","set","DataView","buffer","setUint32","decodeFileEnvelope","envelope","Error","i","version","headerLen","byteOffset","byteLength","getUint32","bodyStart","parse","subarray","sealFileForUpload","file","onProgress","type","name","keyMaterial","payload","ciphertext","filename","openSealedFile"],"sourceRoot":"../../../src","sources":["e2ee/fileEnvelope.ts"],"mappings":"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","ignoreList":[]}
|