@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","_interopRequireWildcard","require","_reactNative","_netinfo","_interopRequireDefault","_VideoCallOverlay","_xmppClient","_authRefresh","_clientRegistry","_resolveInitBeforeLoadUser","_ensureScopedChatCache","_rooms","_allRoomPresences","_pushSubscriptionService","_roomStore","_chatSettingsSlice","_roomsSlice","_getServerReadTimestamp","_historyPreloadScheduler","_updateMessagesTillLast","_secureUserStorage","_persistence","_devLogger","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","XmppContext","createContext","LOGOUT_EVENT","subscribeAllRoomsForPush","client","reason","rooms","keys","store","getState","length","nick","jid","getLocal","pushSubscriptionService","subscribeToRooms","then","devPushLog","catch","XmppProvider","children","config","isVisible","setClient","useState","providerBootstrapStatus","setProviderBootstrapStatus","initMode","initBeforeLoad","lastCredsRef","useRef","completedBootstrapKeyRef","inflightBootstrapKeyRef","credentialsProvider","useMemo","refreshTokens","enabled","rotated","refreshAuthTokensQuietly","force","xmppPassword","rotatedUser","chatSettingStore","user","username","xmppUsername","defaultWallet","walletAddress","password","fresh","refreshUserCredentialsForXmpp","err","applyResolvedUserToStore","u","jwtLogin","token","userLogin","customLogin","initBeforeLoadAuth","myEndpoint","initializeClient","useCallback","xmppSettings","settings","key","buildXmppClientKey","reusable","getReusableXmppClientByKey","current","isXmppClientReusable","created","withXmppClientInitLock","prevGlobal","getGlobalXmppClient","close","newClient","XmppClient","setCredentialsProvider","setGlobalXmppClient","waitForOnline","console","error","setOnOnline","underlying","allRoomPresences","finally","getChatsPrivateStoreRequestStanza","updateMessagesTillLast","useEffect","abortController","AbortController","cancelled","MAX_BOOTSTRAP_ATTEMPTS","bootstrapAttempt","BOOTSTRAP_BUDGET_MS","reachedReady","budgetTimer","setTimeout","abort","dispatch","setUnreadSyncing","clearBudget","clearTimeout","run","explicitUser","appId","baseUrl","devServer","join","mode","clearStoreBeforeInit","setLogoutState","logout","secureUserStorage","remove","undefined","ensureScopedChatCache","resolved","resolveInitBeforeLoadUser","signal","hasResolved","xmppPasswordPresent","setConfig","connectPassword","restRoomsPromise","prefetchRoomsViaRest","c","getRoomsStanza","roomCount","setStoreClient","qos","historyQoS","activeRoomJID","defaultRoomJids","defaultRooms","map","filter","Boolean","runHistoryPreloadScheduler","selectedRoomJid","concurrency","stagedPreloadConcurrency","pageSize","stagedPreloadFirstPassSize","roomLimit","preloadTopKRooms","warn","aborted","backoff","Math","min","message","status","response","data","id","setInterval","AppState","currentState","suppressReconnect","forceReconnect","ensureStreamAlive","clearInterval","visibleBeforeBackground","suspendInBackground","keepAliveInBackground","sub","addEventListener","next","isSuspended","resume","setVisibleRoom","roomJID","suspend","state","visibleRoomJID","boundaryTs","readBoundaries","readTs","getReadMarkerTimestamp","roomHeapSlice","setLastViewedTimestamp","chatJID","timestamp","deleteRoomMessage","messageId","clearVisibleRoom","flushLastViewedToPrivateStoreStanza","visibleRoomTs","getFlushBoundaryTs","chatWasVisibleRef","wasVisible","lastMessagesRef","lastStampedMs","flushTimer","advance","s","room","messages","newest","freshState","freshBoundaryTs","unsub","subscribe","NetInfo","reachable","isConnected","isInternetReachable","DeviceEventEmitter","addListener","disconnect","clearPersistedState","jsxs","Provider","value","jsx","VideoCallOverlay","exports","useXmppClient","context","useContext","Error","candidates","live","find","emitXmppLogout","emit"],"sourceRoot":"../../../src","sources":["context/xmppProvider.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_netinfo","_interopRequireDefault","_VideoCallOverlay","_xmppClient","_authRefresh","_clientRegistry","_resolveInitBeforeLoadUser","_ensureScopedChatCache","_rooms","_allRoomPresences","_pushSubscriptionService","_roomStore","_chatSettingsSlice","_useLogout","_roomsSlice","_getServerReadTimestamp","_historyPreloadScheduler","_updateMessagesTillLast","_secureUserStorage","_persistence","_devLogger","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","XmppContext","createContext","LOGOUT_EVENT","subscribeAllRoomsForPush","client","reason","rooms","keys","store","getState","length","nick","jid","getLocal","pushSubscriptionService","subscribeToRooms","then","devPushLog","catch","XmppProvider","children","config","isVisible","setClient","useState","providerBootstrapStatus","setProviderBootstrapStatus","initMode","initBeforeLoad","lastCredsRef","useRef","completedBootstrapKeyRef","inflightBootstrapKeyRef","credentialsProvider","useMemo","refreshTokens","enabled","rotated","refreshAuthTokensQuietly","force","xmppPassword","rotatedUser","chatSettingStore","user","username","xmppUsername","defaultWallet","walletAddress","password","fresh","refreshUserCredentialsForXmpp","err","applyResolvedUserToStore","u","jwtLogin","token","userLogin","customLogin","initBeforeLoadAuth","myEndpoint","initializeClient","useCallback","xmppSettings","settings","key","buildXmppClientKey","reusable","getReusableXmppClientByKey","current","isXmppClientReusable","created","withXmppClientInitLock","prevGlobal","getGlobalXmppClient","close","newClient","XmppClient","setCredentialsProvider","setGlobalXmppClient","waitForOnline","console","error","setAuthLostHandler","logoutService","performLogout","finally","Promise","resolve","logout","onAfterLogout","setOnOnline","underlying","allRoomPresences","getChatsPrivateStoreRequestStanza","updateMessagesTillLast","useEffect","abortController","AbortController","cancelled","MAX_BOOTSTRAP_ATTEMPTS","bootstrapAttempt","BOOTSTRAP_BUDGET_MS","reachedReady","budgetTimer","setTimeout","abort","dispatch","setUnreadSyncing","clearBudget","clearTimeout","run","explicitUser","appId","baseUrl","devServer","join","mode","clearStoreBeforeInit","setLogoutState","secureUserStorage","remove","undefined","ensureScopedChatCache","resolved","resolveInitBeforeLoadUser","signal","hasResolved","xmppPasswordPresent","setConfig","connectPassword","restRoomsPromise","prefetchRoomsViaRest","c","getRoomsStanza","roomCount","setStoreClient","qos","historyQoS","activeRoomJID","defaultRoomJids","defaultRooms","map","filter","Boolean","runHistoryPreloadScheduler","selectedRoomJid","concurrency","stagedPreloadConcurrency","pageSize","stagedPreloadFirstPassSize","roomLimit","preloadTopKRooms","warn","aborted","backoff","Math","min","message","status","response","data","id","setInterval","AppState","currentState","suppressReconnect","forceReconnect","ensureStreamAlive","clearInterval","visibleBeforeBackground","suspendInBackground","keepAliveInBackground","sub","addEventListener","next","isSuspended","resume","setVisibleRoom","roomJID","suspend","state","visibleRoomJID","boundaryTs","readBoundaries","readTs","getReadMarkerTimestamp","roomHeapSlice","setLastViewedTimestamp","chatJID","timestamp","deleteRoomMessage","messageId","clearVisibleRoom","flushLastViewedToPrivateStoreStanza","visibleRoomTs","getFlushBoundaryTs","chatWasVisibleRef","wasVisible","lastMessagesRef","lastStampedMs","flushTimer","advance","s","room","messages","newest","freshState","freshBoundaryTs","unsub","subscribe","NetInfo","reachable","isConnected","isInternetReachable","DeviceEventEmitter","addListener","disconnect","clearPersistedState","contextValue","jsxs","Provider","value","jsx","VideoCallOverlay","exports","useXmppClient","context","useContext","Error","candidates","live","find","emitXmppLogout","emit"],"sourceRoot":"../../../src","sources":["context/xmppProvider.tsx"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAUA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAF,sBAAA,CAAAH,OAAA;AAGA,IAAAM,YAAA,GAAAN,OAAA;AAOA,IAAAO,eAAA,GAAAP,OAAA;AAQA,IAAAQ,0BAAA,GAAAR,OAAA;AAKA,IAAAS,sBAAA,GAAAT,OAAA;AACA,IAAAU,MAAA,GAAAV,OAAA;AACA,IAAAW,iBAAA,GAAAX,OAAA;AACA,IAAAY,wBAAA,GAAAZ,OAAA;AACA,IAAAa,UAAA,GAAAb,OAAA;AACA,IAAAc,kBAAA,GAAAd,OAAA;AACA,IAAAe,UAAA,GAAAf,OAAA;AACA,IAAAgB,WAAA,GAAAhB,OAAA;AAQA,IAAAiB,uBAAA,GAAAjB,OAAA;AAIA,IAAAkB,wBAAA,GAAAlB,OAAA;AACA,IAAAmB,uBAAA,GAAAnB,OAAA;AACA,IAAAoB,kBAAA,GAAApB,OAAA;AACA,IAAAqB,YAAA,GAAArB,OAAA;AACA,IAAAsB,UAAA,GAAAtB,OAAA;AAA2D,IAAAuB,WAAA,GAAAvB,OAAA;AAAA,SAAAG,uBAAAqB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAAA,SAAAzB,wBAAAyB,CAAA,EAAAG,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAA7B,uBAAA,YAAAA,CAAAyB,CAAA,EAAAG,CAAA,SAAAA,CAAA,IAAAH,CAAA,IAAAA,CAAA,CAAAC,UAAA,SAAAD,CAAA,MAAAO,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAR,OAAA,EAAAF,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAS,CAAA,MAAAF,CAAA,GAAAJ,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAE,CAAA,CAAAI,GAAA,CAAAX,CAAA,UAAAO,CAAA,CAAAK,GAAA,CAAAZ,CAAA,GAAAO,CAAA,CAAAM,GAAA,CAAAb,CAAA,EAAAS,CAAA,gBAAAN,CAAA,IAAAH,CAAA,gBAAAG,CAAA,OAAAW,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAG,CAAA,OAAAK,CAAA,IAAAD,CAAA,GAAAS,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAG,CAAA,OAAAK,CAAA,CAAAI,GAAA,IAAAJ,CAAA,CAAAK,GAAA,IAAAN,CAAA,CAAAE,CAAA,EAAAN,CAAA,EAAAK,CAAA,IAAAC,CAAA,CAAAN,CAAA,IAAAH,CAAA,CAAAG,CAAA,WAAAM,CAAA,KAAAT,CAAA,EAAAG,CAAA;AAkB3D,MAAMgB,WAAW,gBAAG,IAAAC,oBAAa,EAAyB,IAAI,CAAC;AAW/D,MAAMC,YAAY,GAAG,oBAAoB;AAEzC,MAAMC,wBAAwB,GAAGA,CAACC,MAAW,EAAEC,MAAc,KAAK;EAChE,MAAMC,KAAK,GAAGT,MAAM,CAACU,IAAI,CAACC,gBAAK,CAACC,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;EACnCC,gDAAuB,CACpBC,gBAAgB,CAACX,MAAM,EAAEE,KAAK,EAAEK,IAAI,CAAC,CACrCK,IAAI,CAAC,MAAM,IAAAC,kBAAU,EAAC,MAAM,EAAE,GAAGZ,MAAM,mBAAmBC,KAAK,CAACI,MAAM,QAAQ,CAAC,CAAC,CAChFQ,KAAK,CAAErC,CAAC,IAAK,IAAAoC,kBAAU,EAAC,MAAM,EAAE,GAAGZ,MAAM,2BAA2B,EAAExB,CAAC,CAAC,CAAC;AAC9E,CAAC;AAEM,MAAMsC,YAAyC,GAAGA,CAAC;EAAEC,QAAQ;EAAEC,MAAM;EAAEC;AAAU,CAAC,KAAK;EAC5F,MAAM,CAAClB,MAAM,EAAEmB,SAAS,CAAC,GAAG,IAAAC,eAAQ,EAAoB,IAAI,CAAC;EAC7D,MAAM,CAACC,uBAAuB,EAAEC,0BAA0B,CAAC,GACzD,IAAAF,eAAQ,EAA0B,MAAM,CAAC;;EAE3C;EACA;EACA,MAAMG,QAA6B,GAAGN,MAAM,EAAEO,cAAc,GAAG,UAAU,GAAG,MAAM;EAElF,MAAMC,YAAY,GAAG,IAAAC,aAAM,EAAkF,IAAI,CAAC;EAClH,MAAMC,wBAAwB,GAAG,IAAAD,aAAM,EAAS,EAAE,CAAC;EACnD,MAAME,uBAAuB,GAAG,IAAAF,aAAM,EAAS,EAAE,CAAC;;EAElD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMG,mBAAmB,GAAG,IAAAC,cAAO,EAA0B,MAAM;IACjE,OAAO,YAAY;MACjB;MACA;MACA;MACA;MACA;MACA;MACA;MACA,IAAIb,MAAM,EAAEc,aAAa,EAAEC,OAAO,EAAE;QAClC,MAAMC,OAAO,GAAG,MAAM,IAAAC,qCAAwB,EAAC;UAAEC,KAAK,EAAE;QAAK,CAAC,CAAC;QAE/D,IAAIF,OAAO,EAAEG,YAAY,EAAE;UACzB,MAAMC,WAAW,GAAGjC,gBAAK,CAACC,QAAQ,CAAC,CAAC,CAACiC,gBAAgB,CAACC,IAAI;UAC1D,OAAO;YACLC,QAAQ,EACNH,WAAW,EAAEI,YAAY,IACzBJ,WAAW,EAAEK,aAAa,EAAEC,aAAa,IACzC,EAAE;YACJC,QAAQ,EAAEX,OAAO,CAACG;UACpB,CAAC;QACH;MACF;;MAEA;MACA;MACA;MACA;MACA,MAAMS,KAAK,GAAG,MAAM,IAAAC,wDAA6B,EAAC7B,MAAM,CAAC,CAACH,KAAK,CAC5DiC,GAAG,IAAK;QACP,IAAAlC,kBAAU,EAAC,MAAM,EAAE,uCAAuC,EAAEkC,GAAG,CAAC;QAChE,OAAO,IAAI;MACb,CACF,CAAC;MACD,IAAIF,KAAK,EAAE;QACT,IAAAG,mDAAwB,EAACH,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,MAAMa,CAAC,GAAG7C,gBAAK,CAACC,QAAQ,CAAC,CAAC,CAACiC,gBAAgB,CAACC,IAAI;MAChD,OAAO;QACLC,QAAQ,EAAES,CAAC,EAAER,YAAY,IAAIQ,CAAC,EAAEP,aAAa,EAAEC,aAAa,IAAI,EAAE;QAClEC,QAAQ,EAAEK,CAAC,EAAEb,YAAY,IAAI;MAC/B,CAAC;IACH,CAAC;EACH,CAAC,EAAE,CACDnB,MAAM,EAAEiC,QAAQ,EAAElB,OAAO,EACzBf,MAAM,EAAEiC,QAAQ,EAAEC,KAAK,EACvBlC,MAAM,EAAEc,aAAa,EAAEC,OAAO,EAC9Bf,MAAM,EAAEmC,SAAS,EAAEpB,OAAO,EAC1Bf,MAAM,EAAEoC,WAAW,EAAErB,OAAO,EAC5Bf,MAAM,EAAEqC,kBAAkB,EAAEC,UAAU,CACvC,CAAC;EAEF,MAAMC,gBAAgB,GAAG,IAAAC,kBAAW,EAClC,OACEjB,QAAgB,EAChBI,QAAgB,EAChBc,YAAoC,KACZ;IACxB,MAAMC,QAAQ,GAAGD,YAAY,IAAIzC,MAAM,EAAEyC,YAAY;IACrD,MAAME,GAAG,GAAG,IAAAC,kCAAkB,EAACrB,QAAQ,EAAEmB,QAAQ,CAAC;;IAElD;IACA,MAAMG,QAAQ,GAAG,IAAAC,0CAA0B,EAACH,GAAG,CAAC;IAChD,IAAIE,QAAQ,EAAE;MACZ3C,SAAS,CAAC2C,QAAQ,CAAC;MACnBrC,YAAY,CAACuC,OAAO,GAAG;QAAExB,QAAQ;QAAEI,QAAQ;QAAEe;MAAS,CAAC;MACvD,OAAOG,QAAQ;IACjB;;IAEA;IACA,IAAI9D,MAAM,IAAI,IAAAiE,oCAAoB,EAACjE,MAAM,CAAC,EAAE;MAC1CyB,YAAY,CAACuC,OAAO,GAAG;QAAExB,QAAQ;QAAEI,QAAQ;QAAEe;MAAS,CAAC;MACvD,OAAO3D,MAAM;IACf;;IAEA;IACA;IACA,MAAMkE,OAAO,GAAG,MAAM,IAAAC,sCAAsB,EAACP,GAAG,EAAE,YAAY;MAC5D,MAAMQ,UAAU,GAAG,IAAAC,mCAAmB,EAAC,CAAC;MACxC,IAAID,UAAU,EAAE;QACd,IAAI;UAAE,MAAMA,UAAU,CAACE,KAAK,CAAC,CAAC;QAAE,CAAC,CAAC,MAAM,CAAC;MAC3C;MACA,MAAMC,SAAS,GAAG,IAAIC,mBAAU,CAAChC,QAAQ,EAAEI,QAAQ,EAAEe,QAAQ,CAAC;MAC9D;MACA;MACA;MACA;MACA;MACAY,SAAS,CAACE,sBAAsB,CAAC5C,mBAAmB,CAAC;MACrD,IAAA6C,mCAAmB,EAACH,SAAS,EAAEX,GAAG,CAAC;MACnC,MAAMW,SAAS,CAACI,aAAa,CAAC,CAAC,CAAC7D,KAAK,CAAEiC,GAAG,IAAK;QAC7C6B,OAAO,CAACC,KAAK,CAAC,gCAAgC,EAAE9B,GAAG,CAAC;QACpD,MAAMA,GAAG;MACX,CAAC,CAAC;MACF,OAAOwB,SAAS;IAClB,CAAC,CAAC;;IAEF;IACA;IACAL,OAAO,CAACO,sBAAsB,CAAC5C,mBAAmB,CAAC;IACnD;IACA;IACA;IACAqC,OAAO,CAACY,kBAAkB,GAAG,MAAM;MACjC,IAAAjE,kBAAU,EAAC,OAAO,EAAE,kCAAkC,CAAC;MACvDkE,wBAAa,CACVC,aAAa,CAAC,CAAC,CACflE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CACfmE,OAAO,CAAC,MAAM;QACb,IAAI;UACFC,OAAO,CAACC,OAAO,CAAClE,MAAM,EAAEmE,MAAM,EAAEC,aAAa,GAAG,CAAC,CAAC,CAACvE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACpE,CAAC,CAAC,MAAM;UACN;QAAA;MAEJ,CAAC,CAAC;IACN,CAAC,CAAC;;IAEF;IACA;IACA;IACA;IACA;IACA;IACAoD,OAAO,CAACoB,WAAW,CAAC,MAAM;MACxB,MAAMC,UAAU,GAAIrB,OAAO,CAASlE,MAAM;MAC1C,IAAI,CAACuF,UAAU,EAAE;QAAC;MAAO;MACzB,IAAAC,kCAAgB,EAACD,UAAU,CAAC,CACzBzE,KAAK,CAAErC,CAAC,IACP,IAAAoC,kBAAU,EAAC,MAAM,EAAE,4CAA4C,EAAEpC,CAAC,CACpE,CAAC,CACAwG,OAAO,CAAC,MAAMlF,wBAAwB,CAACwF,UAAU,EAAE,WAAW,CAAC,CAAC;MACnE;MACA;MACA;MACArB,OAAO,CACJuB,iCAAiC,CAAC,CAAC,CACnC3E,KAAK,CAAErC,CAAU,IAChB,IAAAoC,kBAAU,EAAC,MAAM,EAAE,wCAAwC,EAAEpC,CAAC,CAChE,CAAC;MACH;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA,MAAMyB,KAAK,GAAGE,gBAAK,CAACC,QAAQ,CAAC,CAAC,CAACH,KAAK,EAAEA,KAAK,IAAI,CAAC,CAAC;MACjD,IAAAwF,8CAAsB,EAACxF,KAAK,EAAEgE,OAAO,CAAC,CAACpD,KAAK,CAAErC,CAAU,IACtD,IAAAoC,kBAAU,EAAC,MAAM,EAAE,yCAAyC,EAAEpC,CAAC,CACjE,CAAC;IACH,CAAC,CAAC;IAEF0C,SAAS,CAAC+C,OAAO,CAAC;IAClBzC,YAAY,CAACuC,OAAO,GAAG;MAAExB,QAAQ;MAAEI,QAAQ;MAAEe;IAAS,CAAC;IACvD,OAAOO,OAAO;EAChB,CAAC,EACD,CAAClE,MAAM,EAAEiB,MAAM,EAAEyC,YAAY,EAAE7B,mBAAmB,CACpD,CAAC;;EAED;EACA;EACA;EACA,IAAA8D,gBAAS,EAAC,MAAM;IACd,IAAI,CAAC1E,MAAM,EAAEO,cAAc,EAAE;MAC3BF,0BAA0B,CAAC,MAAM,CAAC;MAClC;IACF;IAEA,MAAMsE,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;MACvC,IAAArF,kBAAU,EAAC,MAAM,EAAE,+CAA+C,CAAC;MACnE+E,eAAe,CAACS,KAAK,CAAC,CAAC;MACvBzE,uBAAuB,CAACoC,OAAO,GAAG,EAAE;MACpC5D,gBAAK,CAACkG,QAAQ,CAAC,IAAAC,4BAAgB,EAAC,KAAK,CAAC,CAAC;MACvCjF,0BAA0B,CAAC,QAAQ,CAAC;IACtC,CAAC,EAAE2E,mBAAmB,CAAC;IACvB,MAAMO,WAAW,GAAGA,CAAA,KAAM;MACxB,IAAIL,WAAW,EAAE;QACfM,YAAY,CAACN,WAAW,CAAC;QACzBA,WAAW,GAAG,IAAI;MACpB;IACF,CAAC;IAED,MAAMO,GAAG,GAAG,MAAAA,CAAA,KAAY;MACtB;MACA,MAAMC,YAAY,GAAG1F,MAAM,EAAEmC,SAAS,EAAEpB,OAAO,GAAGf,MAAM,EAAEmC,SAAS,EAAEb,IAAI,GAAG,IAAI;MAChF,MAAMqB,GAAG,GAAG,CACV3C,MAAM,EAAE2F,KAAK,IAAI,EAAE,EACnB3F,MAAM,EAAE4F,OAAO,IAAI,EAAE,EACrBF,YAAY,EAAEjE,aAAa,EAAEC,aAAa,IAAI,EAAE,EAChDgE,YAAY,EAAElE,YAAY,IAAI,EAAE,EAChCkE,YAAY,EAAExD,KAAK,GAAG,GAAG,GAAG,GAAG,EAC/BlC,MAAM,EAAEiC,QAAQ,EAAElB,OAAO,GAAGf,MAAM,EAAEiC,QAAQ,EAAEC,KAAK,IAAI,EAAE,GAAG,EAAE,EAC9DlC,MAAM,EAAEyC,YAAY,EAAEoD,SAAS,IAAI,EAAE,CACtC,CAACC,IAAI,CAAC,GAAG,CAAC;MAEX,IAAIpF,wBAAwB,CAACqC,OAAO,KAAKJ,GAAG,EAAE;QAC5C,IAAA/C,kBAAU,EAAC,IAAI,EAAE,qDAAqD,CAAC;QACvE;QACA;QACA;QACA;QACA;QACAqF,YAAY,GAAG,IAAI;QACnBM,WAAW,CAAC,CAAC;QACb;MACF;MACA,IAAI5E,uBAAuB,CAACoC,OAAO,KAAKJ,GAAG,EAAE;QAC3C,IAAA/C,kBAAU,EAAC,IAAI,EAAE,6CAA6C,CAAC;QAC/D;MACF;MACAe,uBAAuB,CAACoC,OAAO,GAAGJ,GAAG;MACrCtC,0BAA0B,CAAC,SAAS,CAAC;MACrClB,gBAAK,CAACkG,QAAQ,CAAC,IAAAC,4BAAgB,EAAC,IAAI,CAAC,CAAC;MACtC,IAAA1F,kBAAU,EAAC,IAAI,EAAE,yBAAyB,EAAE;QAC1C+F,KAAK,EAAE3F,MAAM,EAAE2F,KAAK;QACpBC,OAAO,EAAE5F,MAAM,EAAE4F,OAAO;QACxBG,IAAI,EACF/F,MAAM,EAAEiC,QAAQ,EAAElB,OAAO,GAAG,KAAK,GACjCf,MAAM,EAAEmC,SAAS,EAAEpB,OAAO,GAAG,WAAW,GACxCf,MAAM,EAAEoC,WAAW,EAAErB,OAAO,GAAG,aAAa,GAAG;MACnD,CAAC,CAAC;MAEF,IAAI;QACF,IAAIf,MAAM,EAAEgG,oBAAoB,EAAE;UAChC,IAAApG,kBAAU,EAAC,IAAI,EAAE,sCAAsC,CAAC;UACxDT,gBAAK,CAACkG,QAAQ,CAAC,IAAAY,0BAAc,EAAC,CAAC,CAAC;UAChC9G,gBAAK,CAACkG,QAAQ,CAAC,IAAAlB,yBAAM,EAAC,CAAC,CAAC;UACxB,MAAM,IAAA+B,oCAAiB,EAAC,CAAC,CAACC,MAAM,CAAC,CAAC,CAACtG,KAAK,CAAC,MAAMuG,SAAS,CAAC;QAC3D;QAEA,MAAM,IAAAC,4CAAqB,EAACrG,MAAM,CAAC;QACnC,IAAAJ,kBAAU,EAAC,IAAI,EAAE,2CAA2C,CAAC;QAE7D,MAAM0G,QAAqB,GAAG,MAAM,IAAAC,oDAAyB,EAAC;UAC5DvG,MAAM;UACNwG,MAAM,EAAE7B,eAAe,CAAC6B;QAC1B,CAAC,CAAC;QACF,IAAI3B,SAAS,EAAE;UAAC;QAAO;QAEvB,IAAI,CAACyB,QAAQ,IAAI,CAACA,QAAQ,CAACnF,YAAY,IAAI,CAACmF,QAAQ,CAAC9E,YAAY,EAAE;UACjE,IAAA5B,kBAAU,EAAC,OAAO,EAAE,qCAAqC,EAAE;YACzD6G,WAAW,EAAE,CAAC,CAACH,QAAQ;YACvB9E,YAAY,EAAE8E,QAAQ,EAAE9E,YAAY;YACpCkF,mBAAmB,EAAE,CAAC,CAACJ,QAAQ,EAAEnF;UACnC,CAAC,CAAC;UACFd,0BAA0B,CAAC,QAAQ,CAAC;UACpCM,uBAAuB,CAACoC,OAAO,GAAG,EAAE;UACpC5D,gBAAK,CAACkG,QAAQ,CAAC,IAAAC,4BAAgB,EAAC,KAAK,CAAC,CAAC;UACvC;QACF;QAEA,IAAA1F,kBAAU,EAAC,IAAI,EAAE,kCAAkC0G,QAAQ,CAAC9E,YAAY,GAAG,CAAC;QAC5E,IAAAO,mDAAwB,EAACuE,QAAQ,CAAC;QAElC,IAAItG,MAAM,EAAE;UACVb,gBAAK,CAACkG,QAAQ,CAAC,IAAAsB,4BAAS,EAAC3G,MAAM,CAAC,CAAC;QACnC;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,IAAI4G,eAAe,GAAGN,QAAQ,CAACnF,YAAY;QAC3C,IAAInB,MAAM,EAAEc,aAAa,EAAEC,OAAO,IAAI,CAACf,MAAM,EAAEiC,QAAQ,EAAElB,OAAO,EAAE;UAChE,MAAMC,OAAO,GAAG,MAAM,IAAAC,qCAAwB,EAAC;YAAEC,KAAK,EAAE;UAAK,CAAC,CAAC;UAC/D,IAAI2D,SAAS,EAAE;YAAC;UAAO;UACvB,IAAI7D,OAAO,EAAEG,YAAY,EAAE;YACzByF,eAAe,GAAG5F,OAAO,CAACG,YAAY;UACxC;QACF;;QAEA;QACA;QACA;QACA;QACA;QACA,MAAM0F,gBAAgB,GAAG,IAAAC,eAAoB,EAAC,CAAC,CAACjH,KAAK,CAAC,MAAMuG,SAAS,CAAC;QAEtE,MAAMW,CAAC,GAAG,MAAMxE,gBAAgB,CAC9B+D,QAAQ,CAAC9E,YAAY,EACrBoF,eAAe,EACf5G,MAAM,EAAEyC,YACV,CAAC;QACD,IAAIoC,SAAS,EAAE;UAAC;QAAO;QACvB,IAAAjF,kBAAU,EAAC,IAAI,EAAE,sDAAsD,CAAC;QAExE,MAAMmH,CAAC,CAACrD,aAAa,CAAC,CAAC;QACvB,IAAImB,SAAS,EAAE;UAAC;QAAO;QACvB,IAAAjF,kBAAU,EAAC,MAAM,EAAE,6BAA6B,CAAC;QAEjD,IAAI;UACF,MAAMmH,CAAC,CAACC,cAAc,CAAC,CAAC;UACxB,IAAApH,kBAAU,EAAC,MAAM,EAAE,mCAAmC,CAAC;QACzD,CAAC,CAAC,OAAOpC,CAAC,EAAE;UACV,IAAAoC,kBAAU,EAAC,MAAM,EAAE,uCAAuC,EAAEpC,CAAC,CAAC;QAChE;QACA,IAAI;UACF,MAAMuJ,CAAC,CAACvC,iCAAiC,CAAC,CAAC;UAC3C,IAAA5E,kBAAU,EAAC,MAAM,EAAE,iCAAiC,CAAC;QACvD,CAAC,CAAC,OAAOpC,CAAC,EAAE;UACV,IAAAoC,kBAAU,EAAC,MAAM,EAAE,qCAAqC,EAAEpC,CAAC,CAAC;QAC9D;QACA;QACA;QACA;QACA,IAAI;UACF,MAAMqJ,gBAAgB;QACxB,CAAC,CAAC,MAAM,CAAC;QACT,IAAI;UACF,MAAMI,SAAS,GAAGzI,MAAM,CAACU,IAAI,CAACC,gBAAK,CAACC,QAAQ,CAAC,CAAC,CAACH,KAAK,CAACA,KAAK,IAAI,CAAC,CAAC,CAAC,CAACI,MAAM;UACxE,IAAAO,kBAAU,EAAC,MAAM,EAAE,2BAA2BqH,SAAS,sBAAsB,CAAC;UAC9E,MAAM,IAAA1C,kCAAgB,EAAEwC,CAAC,CAAShI,MAAM,CAAC;UACzC,IAAAa,kBAAU,EAAC,MAAM,EAAE,qCAAqC,CAAC;QAC3D,CAAC,CAAC,OAAOpC,CAAC,EAAE;UACV,IAAAoC,kBAAU,EAAC,MAAM,EAAE,yCAAyC,EAAEpC,CAAC,CAAC;QAClE;QACAsB,wBAAwB,CAAEiI,CAAC,CAAShI,MAAM,EAAE,gBAAgB,CAAC;QAE7DI,gBAAK,CAACkG,QAAQ,CAAC,IAAA6B,iCAAc,EAACH,CAAC,CAAC,CAAC;QACjCrG,wBAAwB,CAACqC,OAAO,GAAGJ,GAAG;QACtChC,uBAAuB,CAACoC,OAAO,GAAG,EAAE;QACpCkC,YAAY,GAAG,IAAI;QACnBM,WAAW,CAAC,CAAC;QACblF,0BAA0B,CAAC,OAAO,CAAC;QACnC,IAAAT,kBAAU,EAAC,IAAI,EAAE,uBAAuB,CAAC;;QAEzC;QACA,MAAMuH,GAAG,GAAGnH,MAAM,EAAEoH,UAAU;QAC9B,MAAMC,aAAa,GAAGlI,gBAAK,CAACC,QAAQ,CAAC,CAAC,CAACH,KAAK,CAACoI,aAAa,IAAI,IAAI;QAClE,MAAMC,eAAe,GAClBtH,MAAM,EAAEuH,YAAY,EAAYC,GAAG,CAAE3J,CAAC,IACrC,OAAOA,CAAC,KAAK,QAAQ,GAAGA,CAAC,GAAGA,CAAC,EAAE0B,GACjC,CAAC,CAACkI,MAAM,CAACC,OAAO,CAAC,IAAI,EAAE;QACzB,IAAAC,mDAA0B,EAAC;UACzB5I,MAAM,EAAEgI,CAAC;UACTP,MAAM,EAAE7B,eAAe,CAAC6B,MAAM;UAC9BoB,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,CAACrI,KAAK,CAAEiC,GAAG,IAAK6B,OAAO,CAACwE,IAAI,CAAC,kCAAkC,EAAErG,GAAG,CAAC,CAAC;MAC1E,CAAC,CAAC,OAAO8B,KAAU,EAAE;QACnB,IAAIiB,SAAS,IAAIF,eAAe,CAAC6B,MAAM,CAAC4B,OAAO,EAAE;UAAC;QAAO;QACzDrD,gBAAgB,IAAI,CAAC;QACrB;QACA;QACA;QACA;QACA;QACA,IAAIA,gBAAgB,GAAGD,sBAAsB,EAAE;UAC7C,MAAMuD,OAAO,GAAGC,IAAI,CAACC,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,KAAKxD,gBAAgB,GAAG,CAAC,CAAC,CAAC;UAClE,IAAAnF,kBAAU,EACR,IAAI,EACJ,2BAA2BmF,gBAAgB,YAAYnB,KAAK,EAAE4E,OAAO,kBAAkBH,OAAO,IAChG,CAAC;UACD1H,uBAAuB,CAACoC,OAAO,GAAG,EAAE;UACpCoC,UAAU,CAAC,MAAM;YACf,IAAI,CAACN,SAAS,IAAI,CAACF,eAAe,CAAC6B,MAAM,CAAC4B,OAAO,EAAE;cACjD3C,GAAG,CAAC,CAAC;YACP;UACF,CAAC,EAAE4C,OAAO,CAAC;UACX;QACF;QACA,IAAAzI,kBAAU,EAAC,OAAO,EAAE,6CAA6C,EAAE;UACjE4I,OAAO,EAAE5E,KAAK,EAAE4E,OAAO;UACvBC,MAAM,EAAE7E,KAAK,EAAE8E,QAAQ,EAAED,MAAM;UAC/BE,IAAI,EAAE/E,KAAK,EAAE8E,QAAQ,EAAEC;QACzB,CAAC,CAAC;QACFhI,uBAAuB,CAACoC,OAAO,GAAG,EAAE;QACpCwC,WAAW,CAAC,CAAC;QACbpG,gBAAK,CAACkG,QAAQ,CAAC,IAAAC,4BAAgB,EAAC,KAAK,CAAC,CAAC;QACvCjF,0BAA0B,CAAC,QAAQ,CAAC;MACtC;IACF,CAAC;IAEDoF,GAAG,CAAC,CAAC;IAEL,OAAO,MAAM;MACXZ,SAAS,GAAG,IAAI;MAChBU,WAAW,CAAC,CAAC;MACbZ,eAAe,CAACS,KAAK,CAAC,CAAC;MACvB;MACA;MACA;MACA;MACA;MACAzE,uBAAuB,CAACoC,OAAO,GAAG,EAAE;IACtC,CAAC;IACD;IACA;IACA;IACA;IACA;IACA;IACA;EACF,CAAC,EAAE,CACD/C,MAAM,EAAEO,cAAc,EACtBP,MAAM,EAAE2F,KAAK,EACb3F,MAAM,EAAE4F,OAAO,EACf5F,MAAM,EAAEmC,SAAS,EAAEpB,OAAO,EAC1Bf,MAAM,EAAEmC,SAAS,EAAEb,IAAI,EAAEG,aAAa,EAAEC,aAAa,EACrD1B,MAAM,EAAEmC,SAAS,EAAEb,IAAI,EAAEE,YAAY,EACrCxB,MAAM,EAAEmC,SAAS,EAAEb,IAAI,EAAEY,KAAK,EAC9BlC,MAAM,EAAEiC,QAAQ,EAAElB,OAAO,EACzBf,MAAM,EAAEiC,QAAQ,EAAEC,KAAK,EACvBlC,MAAM,EAAEyC,YAAY,EAAEoD,SAAS,CAChC,CAAC;;EAEF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAAnB,gBAAS,EAAC,MAAM;IACd,IAAI,CAAC3F,MAAM,EAAE;MAAC;IAAO;IACrB,MAAM6J,EAAE,GAAGC,WAAW,CAAC,MAAM;MAC3B;MACA;MACA;MACA;MACA;MACA;MACA,IAAIC,qBAAQ,CAACC,YAAY,KAAK,YAAY,EAAE;QAAC;MAAO;MACpD,IAAIhK,MAAM,CAACiK,iBAAiB,EAAE;QAAC;MAAO;MACtC,IAAIjK,MAAM,CAAC0J,MAAM,KAAK,QAAQ,EAAE;QAC9B,IAAA7I,kBAAU,EAAC,IAAI,EAAE,oBAAoBb,MAAM,CAAC0J,MAAM,mBAAmB,CAAC;QACtE1J,MAAM,CAACkK,cAAc,CAAC,CAAC;MACzB,CAAC,MAAM;QACLlK,MAAM,CAACmK,iBAAiB,GAAG,CAAC;MAC9B;IACF,CAAC,EAAE,KAAK,CAAC;IACT,OAAO,MAAMC,aAAa,CAACP,EAAE,CAAC;EAChC,CAAC,EAAE,CAAC7J,MAAM,CAAC,CAAC;;EAEZ;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAA2F,gBAAS,EAAC,MAAM;IACd;IACA;IACA;IACA,IAAI0E,uBAAsC,GAAG,IAAI;IACjD,MAAMC,mBAAmB,GAAG,CAACrJ,MAAM,EAAEyC,YAAY,EAAE6G,qBAAqB;IACxE,MAAMC,GAAG,GAAGT,qBAAQ,CAACU,gBAAgB,CAAC,QAAQ,EAAGC,IAAI,IAAK;MACxD,MAAM1C,CAAC,GAAGhI,MAAM;MAChB,IAAI0K,IAAI,KAAK,QAAQ,EAAE;QACrB,IAAI1C,CAAC,EAAE2C,WAAW,EAAE;UAClB,IAAA9J,kBAAU,EAAC,IAAI,EAAE,iDAAiD,CAAC;UACnEmH,CAAC,CAAC4C,MAAM,CAAC,CAAC;QACZ;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,IAAI5C,CAAC,KAAKA,CAAC,CAAC0B,MAAM,KAAK,SAAS,IAAI1B,CAAC,CAAC0B,MAAM,KAAK,OAAO,CAAC,EAAE;UACzD,IAAA7I,kBAAU,EAAC,IAAI,EAAE,2BAA2BmH,CAAC,CAAC0B,MAAM,mBAAmB,CAAC;UACxE1B,CAAC,CAACkC,cAAc,CAAC,CAAC;QACpB;QACA;QACA;QACA;QACA;QACA,IAAIG,uBAAuB,EAAE;UAC3BjK,gBAAK,CAACkG,QAAQ,CAAC,IAAAuE,0BAAc,EAAC;YAAEC,OAAO,EAAET;UAAwB,CAAC,CAAC,CAAC;UACpEA,uBAAuB,GAAG,IAAI;QAChC;QACA;MACF;MACA;MACA,IAAI,CAACrC,CAAC,EAAE;QAAC;MAAO;MAChB,IAAI0C,IAAI,KAAK,YAAY,IAAIJ,mBAAmB,EAAE;QAChDtC,CAAC,CAAC+C,OAAO,CAAC,CAAC,CAACjK,KAAK,CAAC,MAAMuG,SAAS,CAAC;MACpC;MACA,MAAM2D,KAAK,GAAG5K,gBAAK,CAACC,QAAQ,CAAC,CAAC;MAC9B,MAAMH,KAAK,GAAG8K,KAAK,CAAC9K,KAAK,EAAEA,KAAK;MAChC,MAAM+K,cAAc,GAAGD,KAAK,CAAC9K,KAAK,EAAE+K,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;MACAZ,uBAAuB,GAAGY,cAAc;MACxC,IAAIC,UAAyB,GAAG,IAAI;MACpC,IAAID,cAAc,EAAE;QAClBC,UAAU,GAAGF,KAAK,CAAC9K,KAAK,EAAEiL,cAAc,GAAGF,cAAc,CAAC,IAAI,IAAI;QAClE,MAAMG,MAAM,GAAG,IAAAC,8CAAsB,EACnCnL,KAAK,GAAG+K,cAAc,CAAC,EACvBD,KAAK,CAACM,aAAa,EACnBJ,UACF,CAAC;QACD;QACA;QACA;QACA;QACA,IAAIE,MAAM,GAAG,CAAC,EAAE;UACdhL,gBAAK,CAACkG,QAAQ,CACZ,IAAAiF,kCAAsB,EAAC;YAAEC,OAAO,EAAEP,cAAc;YAAEQ,SAAS,EAAEL;UAAO,CAAC,CACvE,CAAC;QACH;QACA;QACA;QACA;QACAhL,gBAAK,CAACkG,QAAQ,CACZ,IAAAoF,6BAAiB,EAAC;UAAEZ,OAAO,EAAEG,cAAc;UAAEU,SAAS,EAAE;QAAgB,CAAC,CAC3E,CAAC;QACDvL,gBAAK,CAACkG,QAAQ,CAAC,IAAAsF,4BAAgB,EAAC,CAAC,CAAC;MACpC;MACA;MACA;MACA;MACA;MACA;MACA5D,CAAC,CAAC6D,mCAAmC,CAAC3L,KAAK,EAAE;QAC3C+K,cAAc;QACd;QACAa,aAAa,EAAEb,cAAc,GACzB,IAAAc,0CAAkB,EAChB7L,KAAK,GAAG+K,cAAc,CAAC,EACvBD,KAAK,CAACM,aAAa,EACnBJ,UACF,CAAC,GACD7D;MACN,CAAC,CAAC,CAACvG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACpB,CAAC,CAAC;IACF,OAAO,MAAM0J,GAAG,CAACpD,MAAM,CAAC,CAAC;EAC3B,CAAC,EAAE,CAACpH,MAAM,EAAEiB,MAAM,EAAEyC,YAAY,EAAE6G,qBAAqB,CAAC,CAAC;;EAEzD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMyB,iBAAiB,GAAG,IAAAtK,aAAM,EAAC,KAAK,CAAC;EACvC,IAAAiE,gBAAS,EAAC,MAAM;IACd,IAAI,OAAOzE,SAAS,KAAK,SAAS,EAAE;MAAC;IAAO;IAC5C,MAAM8J,KAAK,GAAG5K,gBAAK,CAACC,QAAQ,CAAC,CAAC;IAC9B,MAAMH,KAAK,GAAG8K,KAAK,CAAC9K,KAAK,EAAEA,KAAK;IAChC,MAAMoI,aAAa,GAAG0C,KAAK,CAAC9K,KAAK,EAAEoI,aAAa,IAAI,IAAI;IACxD,MAAM2D,UAAU,GAAGD,iBAAiB,CAAChI,OAAO;IAC5CgI,iBAAiB,CAAChI,OAAO,GAAG9C,SAAS;IACrC,IAAIA,SAAS,EAAE;MACb,IAAIoH,aAAa,EAAE;QACjBlI,gBAAK,CAACkG,QAAQ,CAAC,IAAAuE,0BAAc,EAAC;UAAEC,OAAO,EAAExC;QAAc,CAAC,CAAC,CAAC;MAC5D;IACF,CAAC,MAAM;MACL;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA,MAAM4C,UAAU,GAAG5C,aAAa,GAC5B0C,KAAK,CAAC9K,KAAK,EAAEiL,cAAc,GAAG7C,aAAa,CAAC,IAAI,IAAI,GACpD,IAAI;MACR,IAAI2D,UAAU,IAAI3D,aAAa,EAAE;QAC/B,MAAM8C,MAAM,GAAG,IAAAC,8CAAsB,EACnCnL,KAAK,GAAGoI,aAAa,CAAC,EACtB0C,KAAK,CAACM,aAAa,EACnBJ,UACF,CAAC;QACD,IAAIE,MAAM,GAAG,CAAC,EAAE;UACdhL,gBAAK,CAACkG,QAAQ,CACZ,IAAAiF,kCAAsB,EAAC;YAAEC,OAAO,EAAElD,aAAa;YAAEmD,SAAS,EAAEL;UAAO,CAAC,CACtE,CAAC;QACH;QACA;QACA;QACAhL,gBAAK,CAACkG,QAAQ,CACZ,IAAAoF,6BAAiB,EAAC;UAAEZ,OAAO,EAAExC,aAAa;UAAEqD,SAAS,EAAE;QAAgB,CAAC,CAC1E,CAAC;MACH;MAEAvL,gBAAK,CAACkG,QAAQ,CAAC,IAAAsF,4BAAgB,EAAC,CAAC,CAAC;MAClC,IAAIK,UAAU,IAAIjM,MAAM,EAAE6L,mCAAmC,EAAE;QAC7D7L,MAAM,CACH6L,mCAAmC,CAAC3L,KAAK,EAAE;UAC1C+K,cAAc,EAAE3C,aAAa;UAC7B;UACA;UACA;UACAwD,aAAa,EAAExD,aAAa,GACxB,IAAAyD,0CAAkB,EAChB7L,KAAK,GAAGoI,aAAa,CAAC,EACtB0C,KAAK,CAACM,aAAa,EACnBJ,UACF,CAAC,GACD7D;QACN,CAAC,CAAC,CACDvG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;MACpB;IACF;EACF,CAAC,EAAE,CAACI,SAAS,EAAElB,MAAM,CAAC,CAAC;EAEvB,IAAA2F,gBAAS,EAAC,MAAM;IACd,IAAIzE,SAAS,KAAK,IAAI,EAAE;MAAC;IAAO;IAChC,IAAIgL,eAAoB,GAAG,IAAI;IAC/B,IAAIC,aAAa,GAAG,CAAC;IACrB,IAAIC,UAAgD,GAAG,IAAI;IAE3D,MAAMC,OAAO,GAAGA,CAAA,KAAM;MACpB,MAAMC,CAAC,GAAGlM,gBAAK,CAACC,QAAQ,CAAC,CAAC;MAC1B,MAAMG,GAAG,GAAG8L,CAAC,CAACpM,KAAK,EAAEoI,aAAa;MAClC,IAAI,CAAC9H,GAAG,EAAE;QAAC;MAAO;MAClB,MAAM+L,IAAI,GAAGD,CAAC,CAACpM,KAAK,EAAEA,KAAK,GAAGM,GAAG,CAAC;MAClC,IAAI,CAAC+L,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,MAAMtB,UAAU,GAAGoB,CAAC,CAACpM,KAAK,EAAEiL,cAAc,GAAG3K,GAAG,CAAC,IAAI,IAAI;MACzD,MAAMiM,MAAM,GAAG,IAAApB,8CAAsB,EAACkB,IAAI,EAAED,CAAC,CAAChB,aAAa,EAAEJ,UAAU,CAAC;MACxE,IAAI,CAACuB,MAAM,IAAIA,MAAM,IAAIN,aAAa,EAAE;QAAC;MAAO;MAChDA,aAAa,GAAGM,MAAM;MAEtBrM,gBAAK,CAACkG,QAAQ,CACZ,IAAAiF,kCAAsB,EAAC;QAAEC,OAAO,EAAEhL,GAAG;QAAEiL,SAAS,EAAEgB;MAAO,CAAC,CAC5D,CAAC;MAED,IAAIL,UAAU,EAAE;QAAC3F,YAAY,CAAC2F,UAAU,CAAC;MAAC;MAC1C,IAAIpM,MAAM,EAAE6L,mCAAmC,EAAE;QAC/CO,UAAU,GAAGhG,UAAU,CAAC,MAAM;UAC5B;UACA;UACA;UACA;UACA,MAAMsG,UAAU,GAAGtM,gBAAK,CAACC,QAAQ,CAAC,CAAC;UACnC,MAAMsM,eAAe,GAAGD,UAAU,CAACxM,KAAK,EAAEiL,cAAc,GAAG3K,GAAG,CAAC,IAAI,IAAI;UACvER,MAAM,CACH6L,mCAAmC,CAACa,UAAU,CAACxM,KAAK,EAAEA,KAAK,EAAE;YAC5D+K,cAAc,EAAEzK,GAAG;YACnBsL,aAAa,EAAE,IAAAC,0CAAkB,EAC/BW,UAAU,CAACxM,KAAK,EAAEA,KAAK,GAAGM,GAAG,CAAC,EAC9BkM,UAAU,CAACpB,aAAa,EACxBqB,eACF;UACF,CAAC,CAAC,CACD7L,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACpB,CAAC,EAAE,IAAI,CAAC;MACV;IACF,CAAC;IAEDuL,OAAO,CAAC,CAAC;IACT,MAAMO,KAAK,GAAGxM,gBAAK,CAACyM,SAAS,CAACR,OAAO,CAAC;IACtC,OAAO,MAAM;MACXO,KAAK,CAAC,CAAC;MACP,IAAIR,UAAU,EAAE;QAAC3F,YAAY,CAAC2F,UAAU,CAAC;MAAC;IAC5C,CAAC;EACH,CAAC,EAAE,CAAClL,SAAS,EAAElB,MAAM,CAAC,CAAC;;EAEvB;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAA2F,gBAAS,EAAC,MAAM;IACd,IAAI,CAAC3F,MAAM,EAAE;MAAC;IAAO;IACrB,MAAM4M,KAAK,GAAGE,gBAAO,CAACrC,gBAAgB,CAAEO,KAAK,IAAK;MAChD;MACA,MAAM+B,SAAS,GACb,CAAC,CAAC/B,KAAK,EAAEgC,WAAW,IAAIhC,KAAK,EAAEiC,mBAAmB,KAAK,KAAK;MAC9D,IAAI,CAACF,SAAS,EAAE;QAAC;MAAO;MACxB;MACA;MACA;MACA;MACA;MACA;MACA,IAAI/M,MAAM,CAAC0J,MAAM,KAAK,SAAS,IAAI1J,MAAM,CAAC0J,MAAM,KAAK,OAAO,EAAE;QAC5D,IAAA7I,kBAAU,EAAC,IAAI,EAAE,+BAA+Bb,MAAM,CAAC0J,MAAM,mBAAmB,CAAC;QACjF1J,MAAM,CAACkK,cAAc,CAAC,CAAC;MACzB,CAAC,MAAM,IAAIlK,MAAM,CAAC0J,MAAM,KAAK,QAAQ,EAAE;QACrC1J,MAAM,CAACmK,iBAAiB,GAAG,CAAC;MAC9B;IACF,CAAC,CAAC;IACF,OAAO,MAAMyC,KAAK,CAAC,CAAC;EACtB,CAAC,EAAE,CAAC5M,MAAM,CAAC,CAAC;;EAEZ;EACA;EACA;EACA;EACA;EACA,IAAA2F,gBAAS,EAAC,MAAM;IACd,MAAM6E,GAAG,GAAG0C,+BAAkB,CAACC,WAAW,CAAC,uBAAuB,EAAE,MAAM;MACxExL,wBAAwB,CAACqC,OAAO,GAAG,EAAE;MACrCpC,uBAAuB,CAACoC,OAAO,GAAG,EAAE;MACpC1C,0BAA0B,CAAC,MAAM,CAAC;IACpC,CAAC,CAAC;IACF,OAAO,MAAMkJ,GAAG,CAACpD,MAAM,CAAC,CAAC;EAC3B,CAAC,EAAE,EAAE,CAAC;;EAEN;EACA;EACA;EACA,IAAAzB,gBAAS,EAAC,MAAM;IACd,MAAM6E,GAAG,GAAG0C,+BAAkB,CAACC,WAAW,CAACrN,YAAY,EAAE,YAAY;MACnE,IAAI;QACF,IAAIE,MAAM,EAAE;UACV,MAAMA,MAAM,CAACoN,UAAU,CAAC;YAAEnD,iBAAiB,EAAE;UAAK,CAAC,CAAC;QACtD;MACF,CAAC,CAAC,OAAOxL,CAAC,EAAE;QACVmG,OAAO,CAACwE,IAAI,CAAC,0BAA0B,EAAE3K,CAAC,CAAC;MAC7C;MACA,IAAAiG,mCAAmB,EAAC,IAAI,CAAC;MACzBvD,SAAS,CAAC,IAAI,CAAC;MACfQ,wBAAwB,CAACqC,OAAO,GAAG,EAAE;MACrCpC,uBAAuB,CAACoC,OAAO,GAAG,EAAE;MACpC1C,0BAA0B,CAAC,MAAM,CAAC;MAClC,MAAM,IAAA+L,gCAAmB,EAAC,CAAC;IAC7B,CAAC,CAAC;IACF,OAAO,MAAM7C,GAAG,CAACpD,MAAM,CAAC,CAAC;EAC3B,CAAC,EAAE,CAACpH,MAAM,CAAC,CAAC;EAEZ,MAAMsN,YAAY,GAAG,IAAAxL,cAAO,EAC1B,OAAO;IACL9B,MAAM;IACNqB,uBAAuB;IACvBE,QAAQ;IACRiC,gBAAgB;IAChBrC;EACF,CAAC,CAAC,EACF,CAACnB,MAAM,EAAEqB,uBAAuB,EAAEE,QAAQ,EAAEiC,gBAAgB,EAAErC,SAAS,CACzE,CAAC;EAED,oBACE,IAAA3C,WAAA,CAAA+O,IAAA,EAAC3N,WAAW,CAAC4N,QAAQ;IAACC,KAAK,EAAEH,YAAa;IAAAtM,QAAA,GACvCA,QAAQ,eAMT,IAAAxC,WAAA,CAAAkP,GAAA,EAACrQ,iBAAA,CAAAsQ,gBAAgB,IAAE,CAAC;EAAA,CACA,CAAC;AAE3B,CAAC;AAACC,OAAA,CAAA7M,YAAA,GAAAA,YAAA;AAEK,MAAM8M,aAAa,GAAGA,CAAA,KAAM;EACjC,MAAMC,OAAO,GAAG,IAAAC,iBAAU,EAACnO,WAAW,CAAC;EACvC,IAAI,CAACkO,OAAO,EAAE;IACZ,MAAM,IAAIE,KAAK,CAAC,mDAAmD,CAAC;EACtE;EACA,IAAI,CAACF,OAAO,CAAC9N,MAAM,EAAE;IACnB,MAAMiO,UAAgD,GAAG,CACvD,IAAA5J,mCAAmB,EAAC,CAAC,EACrBjE,gBAAK,CAACC,QAAQ,CAAC,CAAC,EAAEiC,gBAAgB,EAAEtC,MAAM,CAC3C;IACD,MAAMkO,IAAI,GAAGD,UAAU,CAACE,IAAI,CACzBnG,CAAC,IAAKA,CAAC,IAAKA,CAAC,CAAS0B,MAAM,KAAK,QACpC,CAAC;IACD,IAAIwE,IAAI,EAAE;MACR,OAAO;QAAE,GAAGJ,OAAO;QAAE9N,MAAM,EAAEkO;MAAK,CAAC;IACrC;EACF;EACA,OAAOJ,OAAO;AAChB,CAAC;;AAED;AAAAF,OAAA,CAAAC,aAAA,GAAAA,aAAA;AACO,SAASO,cAAcA,CAAA,EAAG;EAC/BlB,+BAAkB,CAACmB,IAAI,CAACvO,YAAY,CAAC;AACvC","ignoreList":[]}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.aesDecrypt = aesDecrypt;
|
|
7
|
+
exports.aesEncrypt = aesEncrypt;
|
|
8
|
+
exports.bytesEqual = bytesEqual;
|
|
9
|
+
exports.bytesToUtf8 = bytesToUtf8;
|
|
10
|
+
Object.defineProperty(exports, "concatBytes", {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _utils.concatBytes;
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
exports.dh = dh;
|
|
17
|
+
exports.fromBase64 = fromBase64;
|
|
18
|
+
exports.generateIdentity = generateIdentity;
|
|
19
|
+
exports.generateKeyPair = generateKeyPair;
|
|
20
|
+
exports.hkdfSha256 = hkdfSha256;
|
|
21
|
+
exports.hmacSha256 = hmacSha256;
|
|
22
|
+
exports.identityDhPrivate = identityDhPrivate;
|
|
23
|
+
exports.identityDhPublic = identityDhPublic;
|
|
24
|
+
Object.defineProperty(exports, "randomBytes", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _utils.randomBytes;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
exports.randomInt = randomInt;
|
|
31
|
+
exports.sign = sign;
|
|
32
|
+
exports.toBase64 = toBase64;
|
|
33
|
+
exports.toHex = toHex;
|
|
34
|
+
Object.defineProperty(exports, "utf8ToBytes", {
|
|
35
|
+
enumerable: true,
|
|
36
|
+
get: function () {
|
|
37
|
+
return _utils.utf8ToBytes;
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
exports.verify = verify;
|
|
41
|
+
var _aes = require("@noble/ciphers/aes.js");
|
|
42
|
+
var _ed = require("@noble/curves/ed25519.js");
|
|
43
|
+
var _hkdf = require("@noble/hashes/hkdf.js");
|
|
44
|
+
var _hmac = require("@noble/hashes/hmac.js");
|
|
45
|
+
var _sha = require("@noble/hashes/sha2.js");
|
|
46
|
+
var _utils = require("@noble/hashes/utils.js");
|
|
47
|
+
const ZERO_SALT = new Uint8Array(32);
|
|
48
|
+
function hkdfSha256(ikm, salt, info, length) {
|
|
49
|
+
return (0, _hkdf.hkdf)(_sha.sha256, ikm, salt ?? ZERO_SALT, (0, _utils.utf8ToBytes)(info), length);
|
|
50
|
+
}
|
|
51
|
+
function hmacSha256(key, data) {
|
|
52
|
+
return (0, _hmac.hmac)(_sha.sha256, key, data);
|
|
53
|
+
}
|
|
54
|
+
function aesEncrypt(key, iv, data) {
|
|
55
|
+
return (0, _aes.cbc)(key, iv).encrypt(data);
|
|
56
|
+
}
|
|
57
|
+
function aesDecrypt(key, iv, data) {
|
|
58
|
+
return (0, _aes.cbc)(key, iv).decrypt(data);
|
|
59
|
+
}
|
|
60
|
+
function generateKeyPair() {
|
|
61
|
+
const {
|
|
62
|
+
secretKey,
|
|
63
|
+
publicKey
|
|
64
|
+
} = _ed.x25519.keygen();
|
|
65
|
+
return {
|
|
66
|
+
priv: secretKey,
|
|
67
|
+
pub: publicKey
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
function generateIdentity() {
|
|
71
|
+
const {
|
|
72
|
+
secretKey,
|
|
73
|
+
publicKey
|
|
74
|
+
} = _ed.ed25519.keygen();
|
|
75
|
+
return {
|
|
76
|
+
seed: secretKey,
|
|
77
|
+
pub: publicKey
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
function dh(priv, pub) {
|
|
81
|
+
return _ed.x25519.getSharedSecret(priv, pub);
|
|
82
|
+
}
|
|
83
|
+
function identityDhPrivate(identity) {
|
|
84
|
+
return _ed.ed25519.utils.toMontgomerySecret(identity.seed);
|
|
85
|
+
}
|
|
86
|
+
function identityDhPublic(identityPub) {
|
|
87
|
+
return _ed.ed25519.utils.toMontgomery(identityPub);
|
|
88
|
+
}
|
|
89
|
+
function sign(identity, message) {
|
|
90
|
+
return _ed.ed25519.sign(message, identity.seed);
|
|
91
|
+
}
|
|
92
|
+
function verify(signature, message, identityPub) {
|
|
93
|
+
try {
|
|
94
|
+
return _ed.ed25519.verify(signature, message, identityPub);
|
|
95
|
+
} catch {
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
function bytesEqual(a, b) {
|
|
100
|
+
if (a.length !== b.length) {
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
let diff = 0;
|
|
104
|
+
for (let i = 0; i < a.length; i++) {
|
|
105
|
+
diff |= a[i] ^ b[i];
|
|
106
|
+
}
|
|
107
|
+
return diff === 0;
|
|
108
|
+
}
|
|
109
|
+
const B64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
|
|
110
|
+
const B64_VALUE = new Int16Array(128).fill(-1);
|
|
111
|
+
for (let i = 0; i < B64.length; i++) {
|
|
112
|
+
B64_VALUE[B64.charCodeAt(i)] = i;
|
|
113
|
+
}
|
|
114
|
+
function toBase64(bytes) {
|
|
115
|
+
let out = '';
|
|
116
|
+
let i = 0;
|
|
117
|
+
for (; i + 2 < bytes.length; i += 3) {
|
|
118
|
+
const n = bytes[i] << 16 | bytes[i + 1] << 8 | bytes[i + 2];
|
|
119
|
+
out += B64[n >> 18] + B64[n >> 12 & 63] + B64[n >> 6 & 63] + B64[n & 63];
|
|
120
|
+
}
|
|
121
|
+
if (i + 1 === bytes.length) {
|
|
122
|
+
const n = bytes[i] << 16;
|
|
123
|
+
out += B64[n >> 18] + B64[n >> 12 & 63] + '==';
|
|
124
|
+
} else if (i + 2 === bytes.length) {
|
|
125
|
+
const n = bytes[i] << 16 | bytes[i + 1] << 8;
|
|
126
|
+
out += B64[n >> 18] + B64[n >> 12 & 63] + B64[n >> 6 & 63] + '=';
|
|
127
|
+
}
|
|
128
|
+
return out;
|
|
129
|
+
}
|
|
130
|
+
function fromBase64(text) {
|
|
131
|
+
const clean = text.replace(/\s+/g, '').replace(/=+$/, '');
|
|
132
|
+
if (clean.length % 4 === 1) {
|
|
133
|
+
throw new Error('Invalid base64');
|
|
134
|
+
}
|
|
135
|
+
const out = new Uint8Array(Math.floor(clean.length * 3 / 4));
|
|
136
|
+
let acc = 0;
|
|
137
|
+
let bits = 0;
|
|
138
|
+
let pos = 0;
|
|
139
|
+
for (let i = 0; i < clean.length; i++) {
|
|
140
|
+
const code = clean.charCodeAt(i);
|
|
141
|
+
const value = code < 128 ? B64_VALUE[code] : -1;
|
|
142
|
+
if (value < 0) {
|
|
143
|
+
throw new Error('Invalid base64');
|
|
144
|
+
}
|
|
145
|
+
acc = acc << 6 | value;
|
|
146
|
+
bits += 6;
|
|
147
|
+
if (bits >= 8) {
|
|
148
|
+
bits -= 8;
|
|
149
|
+
out[pos++] = acc >> bits & 0xff;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return out;
|
|
153
|
+
}
|
|
154
|
+
function toHex(bytes) {
|
|
155
|
+
return Array.from(bytes, b => b.toString(16).padStart(2, '0')).join('');
|
|
156
|
+
}
|
|
157
|
+
function randomInt(min, max) {
|
|
158
|
+
const bytes = (0, _utils.randomBytes)(4);
|
|
159
|
+
const n = new DataView(bytes.buffer, bytes.byteOffset, 4).getUint32(0);
|
|
160
|
+
return min + n % (max - min + 1);
|
|
161
|
+
}
|
|
162
|
+
function bytesToUtf8(bytes) {
|
|
163
|
+
const chunks = [];
|
|
164
|
+
let units = [];
|
|
165
|
+
const push = unit => {
|
|
166
|
+
units.push(unit);
|
|
167
|
+
if (units.length >= 8192) {
|
|
168
|
+
chunks.push(String.fromCharCode.apply(null, units));
|
|
169
|
+
units = [];
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
let i = 0;
|
|
173
|
+
while (i < bytes.length) {
|
|
174
|
+
const b = bytes[i++];
|
|
175
|
+
if (b < 0x80) {
|
|
176
|
+
push(b);
|
|
177
|
+
continue;
|
|
178
|
+
}
|
|
179
|
+
const extra = b >= 0xf0 && b < 0xf8 ? 3 : b >= 0xe0 ? 2 : b >= 0xc2 ? 1 : -1;
|
|
180
|
+
let code = extra === 3 ? b & 0x07 : extra === 2 ? b & 0x0f : b & 0x1f;
|
|
181
|
+
let valid = extra > 0 && b < 0xf8 && i + extra <= bytes.length;
|
|
182
|
+
for (let k = 0; valid && k < extra; k++) {
|
|
183
|
+
const next = bytes[i + k];
|
|
184
|
+
if ((next & 0xc0) !== 0x80) {
|
|
185
|
+
valid = false;
|
|
186
|
+
}
|
|
187
|
+
code = code << 6 | next & 0x3f;
|
|
188
|
+
}
|
|
189
|
+
if (!valid || extra === 2 && code < 0x800 || extra === 3 && (code < 0x10000 || code > 0x10ffff) || code >= 0xd800 && code <= 0xdfff) {
|
|
190
|
+
push(0xfffd);
|
|
191
|
+
continue;
|
|
192
|
+
}
|
|
193
|
+
i += extra;
|
|
194
|
+
if (code > 0xffff) {
|
|
195
|
+
code -= 0x10000;
|
|
196
|
+
push(0xd800 | code >> 10);
|
|
197
|
+
push(0xdc00 | code & 0x3ff);
|
|
198
|
+
} else {
|
|
199
|
+
push(code);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
if (units.length) {
|
|
203
|
+
chunks.push(String.fromCharCode.apply(null, units));
|
|
204
|
+
}
|
|
205
|
+
return chunks.join('');
|
|
206
|
+
}
|
|
207
|
+
//# sourceMappingURL=crypto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_aes","require","_ed","_hkdf","_hmac","_sha","_utils","ZERO_SALT","Uint8Array","hkdfSha256","ikm","salt","info","length","hkdf","sha256","utf8ToBytes","hmacSha256","key","data","hmac","aesEncrypt","iv","cbc","encrypt","aesDecrypt","decrypt","generateKeyPair","secretKey","publicKey","x25519","keygen","priv","pub","generateIdentity","ed25519","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","randomBytes","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,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.__resetDeviceStoreForTests = void 0;
|
|
7
|
+
exports.openDeviceStore = openDeviceStore;
|
|
8
|
+
var _asyncStorage = _interopRequireDefault(require("@react-native-async-storage/async-storage"));
|
|
9
|
+
var _secureKeyValue = require("../helpers/secureKeyValue");
|
|
10
|
+
var _persistCrypto = require("../helpers/persistCrypto");
|
|
11
|
+
var _crypto = require("./crypto");
|
|
12
|
+
var _store = require("./store");
|
|
13
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
const MMKV_INSTANCE_ID = 'ethora-omemo';
|
|
15
|
+
const MMKV_KEY_STORE_KEY = 'ethora_omemo_store_key';
|
|
16
|
+
const ASYNC_STORAGE_PREFIX = '@ethora/omemo:';
|
|
17
|
+
const createMmkvBackend = async () => {
|
|
18
|
+
let MMKV;
|
|
19
|
+
try {
|
|
20
|
+
MMKV = require('react-native-mmkv').MMKV;
|
|
21
|
+
} catch {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
if (typeof MMKV !== 'function') {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
const key = await (0, _secureKeyValue.secureGetOrCreate)(MMKV_KEY_STORE_KEY, () => (0, _crypto.toHex)((0, _crypto.randomBytes)(8)));
|
|
28
|
+
if (!key) {
|
|
29
|
+
throw new Error('e2ee: the device store key was not kept');
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
const storage = new MMKV({
|
|
33
|
+
id: MMKV_INSTANCE_ID,
|
|
34
|
+
encryptionKey: key.value
|
|
35
|
+
});
|
|
36
|
+
if (key.created) {
|
|
37
|
+
storage.clearAll();
|
|
38
|
+
}
|
|
39
|
+
return {
|
|
40
|
+
getItem: async key => storage.getString(key) ?? null,
|
|
41
|
+
setItem: async (key, value) => void storage.set(key, value),
|
|
42
|
+
removeItem: async key => void storage.delete(key)
|
|
43
|
+
};
|
|
44
|
+
} catch (e) {
|
|
45
|
+
console.warn('[e2ee] react-native-mmkv present but unusable, falling back', e);
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
const asyncStorageBackend = {
|
|
50
|
+
getItem: async key => {
|
|
51
|
+
const raw = await _asyncStorage.default.getItem(ASYNC_STORAGE_PREFIX + key);
|
|
52
|
+
return raw ? (0, _persistCrypto.decryptFromPersist)(raw) : null;
|
|
53
|
+
},
|
|
54
|
+
setItem: async (key, value) => _asyncStorage.default.setItem(ASYNC_STORAGE_PREFIX + key, await (0, _persistCrypto.encryptForPersist)(value)),
|
|
55
|
+
removeItem: key => _asyncStorage.default.removeItem(ASYNC_STORAGE_PREFIX + key)
|
|
56
|
+
};
|
|
57
|
+
const createAsyncStorageBackend = async () => {
|
|
58
|
+
if (!(await (0, _persistCrypto.isPersistKeyKept)())) {
|
|
59
|
+
throw new Error('e2ee: the storage cipher key was not kept');
|
|
60
|
+
}
|
|
61
|
+
return asyncStorageBackend;
|
|
62
|
+
};
|
|
63
|
+
let backendPromise = null;
|
|
64
|
+
const getBackend = () => {
|
|
65
|
+
if (!backendPromise) {
|
|
66
|
+
const opening = createMmkvBackend().then(mmkv => mmkv ?? createAsyncStorageBackend());
|
|
67
|
+
backendPromise = opening;
|
|
68
|
+
// A refusal is not cached: the next start may find the store usable.
|
|
69
|
+
opening.catch(() => {
|
|
70
|
+
if (backendPromise === opening) {
|
|
71
|
+
backendPromise = null;
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
return backendPromise;
|
|
76
|
+
};
|
|
77
|
+
async function openDeviceStore(jid) {
|
|
78
|
+
return (0, _store.createStore)(await getBackend(), jid);
|
|
79
|
+
}
|
|
80
|
+
const __resetDeviceStoreForTests = () => {
|
|
81
|
+
backendPromise = null;
|
|
82
|
+
};
|
|
83
|
+
exports.__resetDeviceStoreForTests = __resetDeviceStoreForTests;
|
|
84
|
+
//# sourceMappingURL=deviceStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_asyncStorage","_interopRequireDefault","require","_secureKeyValue","_persistCrypto","_crypto","_store","e","__esModule","default","MMKV_INSTANCE_ID","MMKV_KEY_STORE_KEY","ASYNC_STORAGE_PREFIX","createMmkvBackend","MMKV","key","secureGetOrCreate","toHex","randomBytes","Error","storage","id","encryptionKey","value","created","clearAll","getItem","getString","setItem","set","removeItem","delete","console","warn","asyncStorageBackend","raw","AsyncStorage","decryptFromPersist","encryptForPersist","createAsyncStorageBackend","isPersistKeyKept","backendPromise","getBackend","opening","then","mmkv","catch","openDeviceStore","jid","createStore","__resetDeviceStoreForTests","exports"],"sourceRoot":"../../../src","sources":["e2ee/deviceStore.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.decryptLargePayload = decryptLargePayload;
|
|
7
|
+
exports.encryptLargePayload = encryptLargePayload;
|
|
8
|
+
var _aes = require("@noble/ciphers/aes.js");
|
|
9
|
+
var _hmac = require("@noble/hashes/hmac.js");
|
|
10
|
+
var _sha = require("@noble/hashes/sha2.js");
|
|
11
|
+
var _crypto = require("./crypto");
|
|
12
|
+
const SLICE = 32 * 1024;
|
|
13
|
+
const BLOCK = 16;
|
|
14
|
+
const yieldToUi = () => new Promise(resolve => setTimeout(resolve, 0));
|
|
15
|
+
function payloadKeys(key) {
|
|
16
|
+
const km = (0, _crypto.hkdfSha256)(key, undefined, 'OMEMO Payload', 80);
|
|
17
|
+
return {
|
|
18
|
+
enc: km.slice(0, 32),
|
|
19
|
+
auth: km.slice(32, 64),
|
|
20
|
+
iv: km.slice(64)
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
async function encryptLargePayload(plaintext, onProgress) {
|
|
24
|
+
const key = (0, _crypto.randomBytes)(32);
|
|
25
|
+
const {
|
|
26
|
+
enc,
|
|
27
|
+
auth,
|
|
28
|
+
iv
|
|
29
|
+
} = payloadKeys(key);
|
|
30
|
+
const payload = new Uint8Array((Math.floor(plaintext.length / BLOCK) + 1) * BLOCK);
|
|
31
|
+
const mac = _hmac.hmac.create(_sha.sha256, auth);
|
|
32
|
+
let offset = 0;
|
|
33
|
+
let chain = iv;
|
|
34
|
+
while (plaintext.length - offset > SLICE) {
|
|
35
|
+
const out = payload.subarray(offset, offset + SLICE);
|
|
36
|
+
out.set((0, _aes.cbc)(enc, chain, {
|
|
37
|
+
disablePadding: true
|
|
38
|
+
}).encrypt(plaintext.subarray(offset, offset + SLICE)));
|
|
39
|
+
mac.update(out);
|
|
40
|
+
chain = out.slice(SLICE - BLOCK);
|
|
41
|
+
offset += SLICE;
|
|
42
|
+
onProgress?.(offset / plaintext.length);
|
|
43
|
+
await yieldToUi();
|
|
44
|
+
}
|
|
45
|
+
const last = (0, _aes.cbc)(enc, chain).encrypt(plaintext.subarray(offset));
|
|
46
|
+
payload.set(last, offset);
|
|
47
|
+
mac.update(last);
|
|
48
|
+
onProgress?.(1);
|
|
49
|
+
return {
|
|
50
|
+
keyMaterial: (0, _crypto.concatBytes)(key, mac.digest().slice(0, 16)),
|
|
51
|
+
payload
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
async function decryptLargePayload(keyMaterial, payload, onProgress) {
|
|
55
|
+
if (keyMaterial.length !== 48) {
|
|
56
|
+
throw new Error('Invalid key material');
|
|
57
|
+
}
|
|
58
|
+
if (payload.length === 0 || payload.length % BLOCK !== 0) {
|
|
59
|
+
throw new Error('Payload authentication failed');
|
|
60
|
+
}
|
|
61
|
+
const {
|
|
62
|
+
enc,
|
|
63
|
+
auth,
|
|
64
|
+
iv
|
|
65
|
+
} = payloadKeys(keyMaterial.slice(0, 32));
|
|
66
|
+
const mac = _hmac.hmac.create(_sha.sha256, auth);
|
|
67
|
+
for (let offset = 0; offset < payload.length; offset += SLICE) {
|
|
68
|
+
mac.update(payload.subarray(offset, offset + SLICE));
|
|
69
|
+
onProgress?.(Math.min(offset + SLICE, payload.length) / payload.length * 0.65);
|
|
70
|
+
if (offset + SLICE < payload.length) {
|
|
71
|
+
await yieldToUi();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (!(0, _crypto.bytesEqual)(mac.digest().slice(0, 16), keyMaterial.slice(32))) {
|
|
75
|
+
throw new Error('Payload authentication failed');
|
|
76
|
+
}
|
|
77
|
+
const plaintext = new Uint8Array(payload.length);
|
|
78
|
+
let offset = 0;
|
|
79
|
+
let chain = iv;
|
|
80
|
+
while (payload.length - offset > SLICE) {
|
|
81
|
+
const part = payload.subarray(offset, offset + SLICE);
|
|
82
|
+
plaintext.set((0, _aes.cbc)(enc, chain, {
|
|
83
|
+
disablePadding: true
|
|
84
|
+
}).decrypt(part), offset);
|
|
85
|
+
chain = part.slice(SLICE - BLOCK);
|
|
86
|
+
offset += SLICE;
|
|
87
|
+
onProgress?.(0.65 + offset / payload.length * 0.35);
|
|
88
|
+
await yieldToUi();
|
|
89
|
+
}
|
|
90
|
+
const last = (0, _aes.cbc)(enc, chain).decrypt(payload.subarray(offset));
|
|
91
|
+
plaintext.set(last, offset);
|
|
92
|
+
onProgress?.(1);
|
|
93
|
+
return plaintext.subarray(0, offset + last.length);
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=fileCipher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_aes","require","_hmac","_sha","_crypto","SLICE","BLOCK","yieldToUi","Promise","resolve","setTimeout","payloadKeys","key","km","hkdfSha256","undefined","enc","slice","auth","iv","encryptLargePayload","plaintext","onProgress","randomBytes","payload","Uint8Array","Math","floor","length","mac","hmac","create","sha256","offset","chain","out","subarray","set","cbc","disablePadding","encrypt","update","last","keyMaterial","concatBytes","digest","decryptLargePayload","Error","min","bytesEqual","part","decrypt"],"sourceRoot":"../../../src","sources":["e2ee/fileCipher.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.decodeFileEnvelope = decodeFileEnvelope;
|
|
7
|
+
exports.encodeFileEnvelope = encodeFileEnvelope;
|
|
8
|
+
exports.openSealedFile = openSealedFile;
|
|
9
|
+
Object.defineProperty(exports, "parseSealedMediaBody", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function () {
|
|
12
|
+
return _sealedBody.parseSealedMediaBody;
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
exports.sealFileForUpload = sealFileForUpload;
|
|
16
|
+
var _crypto = require("./crypto");
|
|
17
|
+
var _fileCipher = require("./fileCipher");
|
|
18
|
+
var _sealedBody = require("./sealedBody");
|
|
19
|
+
const MAGIC = Uint8Array.from([0x45, 0x54, 0x48, 0x4f, 0x46, 0x49, 0x4c, 0x45]);
|
|
20
|
+
const VERSION = 1;
|
|
21
|
+
const HEADER_OFFSET = MAGIC.length + 1 + 4;
|
|
22
|
+
function encodeFileEnvelope(meta, bytes) {
|
|
23
|
+
const header = (0, _crypto.utf8ToBytes)(JSON.stringify({
|
|
24
|
+
mimetype: meta.mimetype,
|
|
25
|
+
originalname: meta.originalname,
|
|
26
|
+
size: meta.size
|
|
27
|
+
}));
|
|
28
|
+
const out = new Uint8Array(HEADER_OFFSET + header.length + bytes.length);
|
|
29
|
+
out.set(MAGIC, 0);
|
|
30
|
+
out[MAGIC.length] = VERSION;
|
|
31
|
+
new DataView(out.buffer).setUint32(MAGIC.length + 1, header.length, false);
|
|
32
|
+
out.set(header, HEADER_OFFSET);
|
|
33
|
+
out.set(bytes, HEADER_OFFSET + header.length);
|
|
34
|
+
return out;
|
|
35
|
+
}
|
|
36
|
+
function decodeFileEnvelope(envelope) {
|
|
37
|
+
if (envelope.length < HEADER_OFFSET) {
|
|
38
|
+
throw new Error('file_envelope_truncated');
|
|
39
|
+
}
|
|
40
|
+
for (let i = 0; i < MAGIC.length; i++) {
|
|
41
|
+
if (envelope[i] !== MAGIC[i]) {
|
|
42
|
+
throw new Error('file_envelope_bad_magic');
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
const version = envelope[MAGIC.length];
|
|
46
|
+
if (version !== VERSION) {
|
|
47
|
+
throw new Error(`file_envelope_unsupported_version_${version}`);
|
|
48
|
+
}
|
|
49
|
+
const headerLen = new DataView(envelope.buffer, envelope.byteOffset, envelope.byteLength).getUint32(MAGIC.length + 1, false);
|
|
50
|
+
const bodyStart = HEADER_OFFSET + headerLen;
|
|
51
|
+
if (bodyStart > envelope.length) {
|
|
52
|
+
throw new Error('file_envelope_truncated');
|
|
53
|
+
}
|
|
54
|
+
const meta = JSON.parse((0, _crypto.bytesToUtf8)(envelope.subarray(HEADER_OFFSET, bodyStart)));
|
|
55
|
+
return {
|
|
56
|
+
meta,
|
|
57
|
+
bytes: envelope.subarray(bodyStart)
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
async function sealFileForUpload(file, onProgress) {
|
|
61
|
+
const envelope = encodeFileEnvelope({
|
|
62
|
+
mimetype: file.type || 'application/octet-stream',
|
|
63
|
+
originalname: file.name || 'blob',
|
|
64
|
+
size: file.bytes.length
|
|
65
|
+
}, file.bytes);
|
|
66
|
+
const {
|
|
67
|
+
keyMaterial,
|
|
68
|
+
payload
|
|
69
|
+
} = await (0, _fileCipher.encryptLargePayload)(envelope, onProgress);
|
|
70
|
+
return {
|
|
71
|
+
ciphertext: payload,
|
|
72
|
+
keyMaterial: (0, _crypto.toBase64)(keyMaterial),
|
|
73
|
+
filename: (0, _crypto.toHex)((0, _crypto.randomBytes)(16))
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
async function openSealedFile(ciphertext, keyMaterial, onProgress) {
|
|
77
|
+
return decodeFileEnvelope(await (0, _fileCipher.decryptLargePayload)((0, _crypto.fromBase64)(keyMaterial), ciphertext, onProgress));
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=fileEnvelope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_crypto","require","_fileCipher","_sealedBody","MAGIC","Uint8Array","from","VERSION","HEADER_OFFSET","length","encodeFileEnvelope","meta","bytes","header","utf8ToBytes","JSON","stringify","mimetype","originalname","size","out","set","DataView","buffer","setUint32","decodeFileEnvelope","envelope","Error","i","version","headerLen","byteOffset","byteLength","getUint32","bodyStart","parse","bytesToUtf8","subarray","sealFileForUpload","file","onProgress","type","name","keyMaterial","payload","encryptLargePayload","ciphertext","toBase64","filename","toHex","randomBytes","openSealedFile","decryptLargePayload","fromBase64"],"sourceRoot":"../../../src","sources":["e2ee/fileEnvelope.ts"],"mappings":"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","ignoreList":[]}
|