@ethora/chat-component-rn 26.8.6 → 26.8.8
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 +36 -0
- package/README.md +64 -2
- package/lib/commonjs/assets/icons.js +4 -2
- package/lib/commonjs/assets/icons.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatHeader.js +28 -6
- package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatRoom.js +9 -1
- package/lib/commonjs/components/MainComponents/ChatRoom.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatWrapper.js +5 -3
- 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/ReduxWrapper.js +13 -0
- package/lib/commonjs/components/MainComponents/ReduxWrapper.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/Menu/HeaderRoomListMenu.js +26 -13
- package/lib/commonjs/components/Menu/HeaderRoomListMenu.js.map +1 -1
- package/lib/commonjs/components/MenuRoom/MenuRoom.js +5 -3
- package/lib/commonjs/components/MenuRoom/MenuRoom.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/BottomReplyContainer.js +2 -1
- package/lib/commonjs/components/MessageBubble/BottomReplyContainer.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/Message.js +69 -9
- package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/MessageInteractions.js +7 -4
- package/lib/commonjs/components/MessageBubble/MessageInteractions.js.map +1 -1
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js +8 -5
- package/lib/commonjs/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
- package/lib/commonjs/components/Modals/ChatProfileModal/ReportChatModal.js +2 -2
- package/lib/commonjs/components/Modals/ChatProfileModal/ReportChatModal.js.map +1 -1
- package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +166 -21
- 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/Modal.js +33 -11
- package/lib/commonjs/components/Modals/Modal/Modal.js.map +1 -1
- package/lib/commonjs/components/Modals/NewChatModal/NewChatModal.js +8 -8
- package/lib/commonjs/components/Modals/NewChatModal/NewChatModal.js.map +1 -1
- package/lib/commonjs/components/Modals/SettingsModals/ChangePassword/ChangePasswordModal.js +279 -0
- package/lib/commonjs/components/Modals/SettingsModals/ChangePassword/ChangePasswordModal.js.map +1 -0
- package/lib/commonjs/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js +10 -8
- package/lib/commonjs/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js.map +1 -1
- package/lib/commonjs/components/Modals/SettingsModals/Visibility/VisibilityModal.js +13 -11
- package/lib/commonjs/components/Modals/SettingsModals/Visibility/VisibilityModal.js.map +1 -1
- package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js +50 -15
- package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
- package/lib/commonjs/components/Modals/UserSettingsModal/LanguageCard.js +121 -0
- package/lib/commonjs/components/Modals/UserSettingsModal/LanguageCard.js.map +1 -0
- package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js +10 -1
- package/lib/commonjs/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
- package/lib/commonjs/components/RoomComponents/ChatRoomItem.js +32 -9
- 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/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 +56 -46
- 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/SendInput.js +4 -2
- package/lib/commonjs/components/styled/SendInput.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/constants/MODAL_COMPONENTS.js +2 -0
- package/lib/commonjs/helpers/constants/MODAL_COMPONENTS.js.map +1 -1
- package/lib/commonjs/helpers/constants/MODAL_TYPES.js +1 -0
- package/lib/commonjs/helpers/constants/MODAL_TYPES.js.map +1 -1
- package/lib/commonjs/helpers/createMessageFromXml.js +19 -4
- package/lib/commonjs/helpers/createMessageFromXml.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/persistCrypto.js +5 -0
- package/lib/commonjs/helpers/persistCrypto.js.map +1 -1
- package/lib/commonjs/helpers/preferencesStorage.js.map +1 -1
- package/lib/commonjs/helpers/secureKeyValue.js +20 -0
- package/lib/commonjs/helpers/secureKeyValue.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/useChatSettingState.js +2 -0
- package/lib/commonjs/hooks/useChatSettingState.js.map +1 -1
- package/lib/commonjs/hooks/useChatWrapperInit.js +4 -0
- package/lib/commonjs/hooks/useChatWrapperInit.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/useSendMessage.js +71 -7
- package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
- package/lib/commonjs/i18n/strings.js +367 -1
- package/lib/commonjs/i18n/strings.js.map +1 -1
- package/lib/commonjs/i18n/useT.js +8 -4
- package/lib/commonjs/i18n/useT.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/api-requests/user.api.js +13 -0
- package/lib/commonjs/networking/api-requests/user.api.js.map +1 -1
- package/lib/commonjs/networking/stanzaHandlers.js +1 -1
- package/lib/commonjs/networking/stanzaHandlers.js.map +1 -1
- package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js +40 -0
- package/lib/commonjs/networking/xmpp/handleStanzas.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 +6 -0
- package/lib/commonjs/networking/xmppClient.js.map +1 -1
- package/lib/commonjs/roomStore/chatSettingsSlice.js +7 -2
- package/lib/commonjs/roomStore/chatSettingsSlice.js.map +1 -1
- package/lib/commonjs/roomStore/persistBackend.js +9 -12
- package/lib/commonjs/roomStore/persistBackend.js.map +1 -1
- package/lib/commonjs/roomStore/persistence.js +8 -1
- package/lib/commonjs/roomStore/persistence.js.map +1 -1
- package/lib/commonjs/services/languageSettings.js +177 -0
- package/lib/commonjs/services/languageSettings.js.map +1 -0
- package/lib/commonjs/version.js +1 -1
- package/lib/module/assets/icons.js +3 -1
- package/lib/module/assets/icons.js.map +1 -1
- package/lib/module/components/MainComponents/ChatHeader.js +29 -7
- package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/module/components/MainComponents/ChatRoom.js +9 -1
- package/lib/module/components/MainComponents/ChatRoom.js.map +1 -1
- package/lib/module/components/MainComponents/ChatWrapper.js +5 -3
- 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/ReduxWrapper.js +14 -1
- package/lib/module/components/MainComponents/ReduxWrapper.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/Menu/HeaderRoomListMenu.js +26 -13
- package/lib/module/components/Menu/HeaderRoomListMenu.js.map +1 -1
- package/lib/module/components/MenuRoom/MenuRoom.js +5 -3
- package/lib/module/components/MenuRoom/MenuRoom.js.map +1 -1
- package/lib/module/components/MessageBubble/BottomReplyContainer.js +2 -1
- package/lib/module/components/MessageBubble/BottomReplyContainer.js.map +1 -1
- package/lib/module/components/MessageBubble/Message.js +72 -12
- package/lib/module/components/MessageBubble/Message.js.map +1 -1
- package/lib/module/components/MessageBubble/MessageInteractions.js +7 -4
- package/lib/module/components/MessageBubble/MessageInteractions.js.map +1 -1
- package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js +8 -5
- package/lib/module/components/Modals/ChatProfileModal/ChatProfileModal.js.map +1 -1
- package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js +2 -2
- package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js.map +1 -1
- package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +168 -23
- 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/Modal.js +33 -11
- package/lib/module/components/Modals/Modal/Modal.js.map +1 -1
- package/lib/module/components/Modals/NewChatModal/NewChatModal.js +8 -8
- package/lib/module/components/Modals/NewChatModal/NewChatModal.js.map +1 -1
- package/lib/module/components/Modals/SettingsModals/ChangePassword/ChangePasswordModal.js +274 -0
- package/lib/module/components/Modals/SettingsModals/ChangePassword/ChangePasswordModal.js.map +1 -0
- package/lib/module/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js +10 -8
- package/lib/module/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.js.map +1 -1
- package/lib/module/components/Modals/SettingsModals/Visibility/VisibilityModal.js +13 -11
- package/lib/module/components/Modals/SettingsModals/Visibility/VisibilityModal.js.map +1 -1
- package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js +54 -18
- package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
- package/lib/module/components/Modals/UserSettingsModal/LanguageCard.js +116 -0
- package/lib/module/components/Modals/UserSettingsModal/LanguageCard.js.map +1 -0
- package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js +10 -1
- package/lib/module/components/Modals/UserSettingsModal/UserSettingsModal.js.map +1 -1
- package/lib/module/components/RoomComponents/ChatRoomItem.js +32 -9
- 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/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 +57 -47
- 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/SendInput.js +4 -2
- package/lib/module/components/styled/SendInput.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/constants/MODAL_COMPONENTS.js +2 -0
- package/lib/module/helpers/constants/MODAL_COMPONENTS.js.map +1 -1
- package/lib/module/helpers/constants/MODAL_TYPES.js +1 -0
- package/lib/module/helpers/constants/MODAL_TYPES.js.map +1 -1
- package/lib/module/helpers/createMessageFromXml.js +19 -4
- package/lib/module/helpers/createMessageFromXml.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/persistCrypto.js +4 -0
- package/lib/module/helpers/persistCrypto.js.map +1 -1
- package/lib/module/helpers/preferencesStorage.js.map +1 -1
- package/lib/module/helpers/secureKeyValue.js +19 -0
- package/lib/module/helpers/secureKeyValue.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/useChatSettingState.js +2 -0
- package/lib/module/hooks/useChatSettingState.js.map +1 -1
- package/lib/module/hooks/useChatWrapperInit.js +4 -0
- package/lib/module/hooks/useChatWrapperInit.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/useSendMessage.js +71 -7
- package/lib/module/hooks/useSendMessage.js.map +1 -1
- package/lib/module/i18n/strings.js +367 -1
- package/lib/module/i18n/strings.js.map +1 -1
- package/lib/module/i18n/useT.js +8 -4
- package/lib/module/i18n/useT.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/api-requests/user.api.js +12 -0
- package/lib/module/networking/api-requests/user.api.js.map +1 -1
- package/lib/module/networking/stanzaHandlers.js +1 -1
- package/lib/module/networking/stanzaHandlers.js.map +1 -1
- package/lib/module/networking/xmpp/handleStanzas.xmpp.js +38 -0
- package/lib/module/networking/xmpp/handleStanzas.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 +6 -0
- package/lib/module/networking/xmppClient.js.map +1 -1
- package/lib/module/roomStore/chatSettingsSlice.js +5 -1
- package/lib/module/roomStore/chatSettingsSlice.js.map +1 -1
- package/lib/module/roomStore/persistBackend.js +10 -13
- package/lib/module/roomStore/persistBackend.js.map +1 -1
- package/lib/module/roomStore/persistence.js +8 -1
- package/lib/module/roomStore/persistence.js.map +1 -1
- package/lib/module/services/languageSettings.js +164 -0
- package/lib/module/services/languageSettings.js.map +1 -0
- package/lib/module/version.js +1 -1
- 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/ReduxWrapper.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/Menu/HeaderRoomListMenu.d.ts +7 -1
- package/lib/typescript/components/Menu/HeaderRoomListMenu.d.ts.map +1 -1
- package/lib/typescript/components/MenuRoom/MenuRoom.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/BottomReplyContainer.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/MessageInteractions.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/Modal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/SettingsModals/ChangePassword/ChangePasswordModal.d.ts +15 -0
- package/lib/typescript/components/Modals/SettingsModals/ChangePassword/ChangePasswordModal.d.ts.map +1 -0
- package/lib/typescript/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/SettingsModals/Visibility/VisibilityModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts.map +1 -1
- package/lib/typescript/components/Modals/UserSettingsModal/LanguageCard.d.ts +14 -0
- package/lib/typescript/components/Modals/UserSettingsModal/LanguageCard.d.ts.map +1 -0
- package/lib/typescript/components/Modals/UserSettingsModal/UserSettingsModal.d.ts.map +1 -1
- 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/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.map +1 -1
- package/lib/typescript/components/UsersList/UsersList.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/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/constants/MODAL_COMPONENTS.d.ts.map +1 -1
- package/lib/typescript/helpers/constants/MODAL_TYPES.d.ts +1 -0
- package/lib/typescript/helpers/constants/MODAL_TYPES.d.ts.map +1 -1
- package/lib/typescript/helpers/createMessageFromXml.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/persistCrypto.d.ts +1 -0
- package/lib/typescript/helpers/persistCrypto.d.ts.map +1 -1
- package/lib/typescript/helpers/preferencesStorage.d.ts +4 -0
- package/lib/typescript/helpers/preferencesStorage.d.ts.map +1 -1
- package/lib/typescript/helpers/secureKeyValue.d.ts +4 -0
- package/lib/typescript/helpers/secureKeyValue.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/useChatSettingState.d.ts +1 -0
- package/lib/typescript/hooks/useChatSettingState.d.ts.map +1 -1
- package/lib/typescript/hooks/useChatWrapperInit.d.ts.map +1 -1
- package/lib/typescript/hooks/useLogout.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/i18n/useT.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/api-requests/user.api.d.ts +6 -0
- package/lib/typescript/networking/api-requests/user.api.d.ts.map +1 -1
- package/lib/typescript/networking/stanzaHandlers.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/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.map +1 -1
- package/lib/typescript/roomStore/chatSettingsSlice.d.ts +8 -1
- package/lib/typescript/roomStore/chatSettingsSlice.d.ts.map +1 -1
- package/lib/typescript/roomStore/persistBackend.d.ts.map +1 -1
- package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
- package/lib/typescript/services/languageSettings.d.ts +29 -0
- package/lib/typescript/services/languageSettings.d.ts.map +1 -0
- package/lib/typescript/types/models/message.model.d.ts +5 -0
- package/lib/typescript/types/models/message.model.d.ts.map +1 -1
- package/lib/typescript/types/models/room.model.d.ts +5 -0
- package/lib/typescript/types/models/room.model.d.ts.map +1 -1
- package/lib/typescript/types/models/user.model.d.ts +4 -0
- package/lib/typescript/types/models/user.model.d.ts.map +1 -1
- package/lib/typescript/types/types.d.ts +25 -0
- package/lib/typescript/types/types.d.ts.map +1 -1
- package/lib/typescript/version.d.ts +1 -1
- package/package.json +8 -4
- package/src/assets/icons.tsx +27 -0
- package/src/components/MainComponents/ChatHeader.tsx +30 -9
- package/src/components/MainComponents/ChatRoom.tsx +11 -1
- package/src/components/MainComponents/ChatWrapper.tsx +5 -3
- 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/ReduxWrapper.tsx +11 -0
- package/src/components/MainComponents/SealedAttachment.tsx +251 -0
- package/src/components/Menu/HeaderRoomListMenu.tsx +40 -13
- package/src/components/MenuRoom/MenuRoom.tsx +5 -3
- package/src/components/MessageBubble/BottomReplyContainer.tsx +2 -1
- package/src/components/MessageBubble/Message.tsx +99 -9
- package/src/components/MessageBubble/MessageInteractions.tsx +7 -6
- package/src/components/Modals/ChatProfileModal/ChatProfileModal.tsx +8 -5
- package/src/components/Modals/ChatProfileModal/ReportChatModal.tsx +2 -2
- package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +188 -40
- package/src/components/Modals/FilePreviewModal/PdfView.tsx +4 -0
- package/src/components/Modals/Modal/Modal.tsx +44 -16
- package/src/components/Modals/NewChatModal/NewChatModal.tsx +8 -8
- package/src/components/Modals/SettingsModals/ChangePassword/ChangePasswordModal.tsx +316 -0
- package/src/components/Modals/SettingsModals/ManageDataModal/ManageDataModal.tsx +10 -15
- package/src/components/Modals/SettingsModals/Visibility/VisibilityModal.tsx +13 -14
- package/src/components/Modals/UserProfileModal/UserProfileModal.tsx +72 -20
- package/src/components/Modals/UserSettingsModal/LanguageCard.tsx +144 -0
- package/src/components/Modals/UserSettingsModal/UserSettingsModal.tsx +13 -1
- package/src/components/RoomComponents/ChatRoomItem.tsx +23 -11
- package/src/components/RoomComponents/LastMessageItem.tsx +5 -0
- package/src/components/RoomComponents/styled/LastAudioMessage.tsx +3 -1
- 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 +17 -2
- package/src/components/UsersList/UsersList.tsx +2 -1
- package/src/components/styled/SendInput.tsx +5 -2
- 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/constants/MODAL_COMPONENTS.tsx +2 -0
- package/src/helpers/constants/MODAL_TYPES.ts +1 -0
- package/src/helpers/createMessageFromXml.ts +31 -6
- package/src/helpers/createUserNameFromSetUser.ts +2 -1
- package/src/helpers/displayName.ts +9 -0
- package/src/helpers/persistCrypto.ts +5 -0
- package/src/helpers/preferencesStorage.ts +4 -0
- package/src/helpers/secureKeyValue.ts +15 -0
- package/src/helpers/videoCache.ts +138 -0
- package/src/hooks/useChatSettingState.tsx +4 -0
- package/src/hooks/useChatWrapperInit.ts +4 -0
- package/src/hooks/useLogout.tsx +9 -0
- package/src/hooks/useSendMessage.tsx +71 -5
- package/src/i18n/strings.ts +367 -1
- package/src/i18n/useT.ts +6 -4
- 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/api-requests/user.api.ts +9 -0
- package/src/networking/stanzaHandlers.ts +1 -0
- package/src/networking/xmpp/handleStanzas.xmpp.ts +49 -0
- 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 +6 -0
- package/src/roomStore/chatSettingsSlice.ts +13 -0
- package/src/roomStore/persistBackend.ts +8 -11
- package/src/roomStore/persistence.ts +15 -0
- package/src/services/languageSettings.ts +143 -0
- package/src/types/models/message.model.ts +5 -0
- package/src/types/models/room.model.ts +5 -0
- package/src/types/models/user.model.ts +4 -0
- package/src/types/types.ts +25 -0
- package/src/version.ts +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import React, { useState, useMemo, useEffect } from 'react';
|
|
4
|
+
import { composeName } from '../../helpers/displayName';
|
|
4
5
|
import { ModalTitle } from '../Modals/styledModalComponents';
|
|
5
6
|
import { ScrollableContainer, UserItem, Label } from './StyledComponents';
|
|
6
7
|
import Checkbox from './Checkbox';
|
|
@@ -75,7 +76,7 @@ const UsersList = ({
|
|
|
75
76
|
disabled: selectedUsers.length === 20
|
|
76
77
|
}), /*#__PURE__*/_jsx(View, {
|
|
77
78
|
children: /*#__PURE__*/_jsx(Label, {
|
|
78
|
-
children:
|
|
79
|
+
children: composeName(user.firstName, user.lastName)
|
|
79
80
|
})
|
|
80
81
|
})]
|
|
81
82
|
}, user._id))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","useMemo","useEffect","ModalTitle","ScrollableContainer","UserItem","Label","Checkbox","debounce","StyledInput","useRoomState","Text","View","useT","jsx","_jsx","jsxs","_jsxs","UsersList","style","selectedUsers","setSelectedUsers","headerElement","filter","usersSet","t","searchTerm","setSearchTerm","filteredUsers","setFilteredUsers","handleUserSelect","user","prev","isSelected","some","u","_id","debouncedFilter","term","lower","toLowerCase","users","Object","values","firstName","lastName","includes","maxHeight","children","fontSize","fontWeight","placeholder","value","onChangeText","width","map","onPress","cursor","onValueChange","disabled","length"],"sourceRoot":"../../../../src","sources":["components/UsersList/UsersList.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAGVC,QAAQ,EACRC,OAAO,EACPC,SAAS,QACJ,OAAO;AACd,SAASC,UAAU,QAAmB,iCAAiC;AACvE,SACEC,mBAAmB,EACnBC,QAAQ,EACRC,KAAK,QACA,oBAAoB;AAC3B,OAAOC,QAAQ,MAAM,YAAY;AAIjC,SAASC,QAAQ,QAAQ,wBAAwB;AACjD,SAASC,WAAW,QAAQ,uDAAuD;AACnF,SAASC,YAAY,QAAQ,0BAA0B;AACvD,SAASC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AACzC,SAASC,IAAI,QAAQ,iBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAUvC,MAAMC,SAAmC,GAAGA,CAAC;EAC3CC,KAAK;EACLC,aAAa;EACbC,gBAAgB;EAChBC,aAAa;EACbC;AACF,CAAC,KAAK;EACJ,MAAM;IAAEC;EAAS,CAAC,GAAGd,YAAY,CAAC,CAAC;EACnC,MAAMe,CAAC,GAAGZ,IAAI,CAAC,CAAC;EAChB,MAAM,CAACa,UAAU,EAAEC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"names":["React","useState","useMemo","useEffect","composeName","ModalTitle","ScrollableContainer","UserItem","Label","Checkbox","debounce","StyledInput","useRoomState","Text","View","useT","jsx","_jsx","jsxs","_jsxs","UsersList","style","selectedUsers","setSelectedUsers","headerElement","filter","usersSet","t","searchTerm","setSearchTerm","filteredUsers","setFilteredUsers","handleUserSelect","user","prev","isSelected","some","u","_id","debouncedFilter","term","lower","toLowerCase","users","Object","values","firstName","lastName","includes","maxHeight","children","fontSize","fontWeight","placeholder","value","onChangeText","width","map","onPress","cursor","onValueChange","disabled","length"],"sourceRoot":"../../../../src","sources":["components/UsersList/UsersList.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -66,6 +66,7 @@ const SendInput = ({
|
|
|
66
66
|
sendMessage,
|
|
67
67
|
sendMedia,
|
|
68
68
|
config,
|
|
69
|
+
maxMediaBytes,
|
|
69
70
|
onFocus,
|
|
70
71
|
onBlur,
|
|
71
72
|
editMessage,
|
|
@@ -123,9 +124,10 @@ const SendInput = ({
|
|
|
123
124
|
// Enforce the upload size cap before anything reaches the network.
|
|
124
125
|
// The backend rejects oversized bodies with HTTP 413; catching it
|
|
125
126
|
// here gives a clear message instead of a silent failed bubble.
|
|
126
|
-
const
|
|
127
|
+
const limit = maxMediaBytes ?? MAX_MEDIA_BYTES;
|
|
128
|
+
const oversize = files.find(f => typeof f.size === 'number' && f.size > limit);
|
|
127
129
|
if (oversize) {
|
|
128
|
-
Alert.alert('File too large', `"${oversize.name}" is ${formatBytes(oversize.size)}. The maximum allowed size is ${Math.round(
|
|
130
|
+
Alert.alert('File too large', `"${oversize.name}" is ${formatBytes(oversize.size)}. The maximum allowed size is ${Math.round(limit / (1024 * 1024))} MB.`);
|
|
129
131
|
return;
|
|
130
132
|
}
|
|
131
133
|
filePreviewsRef.current = files;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","useCallback","useEffect","useRef","MessageInputContainer","InputContainer","MessageInput","Button","SendIcon","AttachIcon","RecordIcon","View","Text","TouchableOpacity","Alert","Linking","AttachSheet","MediaFilePreview","getIconColor","getElementFont","useTheme","useT","getMediaLibrary","ImagePicker","DocumentPicker","ImageManipulator","FileSystem","useAudioRecorder","setAudioModeAsync","requestRecordingPermissionsAsync","RecordingPresets","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","MAX_MEDIA_BYTES","formatBytes","bytes","toFixed","normalizeImageAsset","asset","mime","mimeType","toLowerCase","looksLikeHeic","includes","uri","endsWith","name","fileName","split","pop","Date","now","result","manipulateAsync","compress","format","SaveFormat","JPEG","baseName","replace","SendInput","sendMessage","sendMedia","config","onFocus","onBlur","editMessage","isLoading","isMessageProcessing","t","theme","message","setMessage","isRecording","setIsRecording","recordingDuration","setRecordingDuration","isFocused","setIsFocused","filePreviews","setFilePreviews","showMediaMenu","setShowMediaMenu","audioRecorder","HIGH_QUALITY","isRecordingRef","recordingTimerRef","messageRef","filePreviewsRef","sendingRef","pickingDocRef","handleFileSelect","files","oversize","find","f","size","alert","Math","round","current","promptOpenSettings","text","style","onPress","openSettings","handleCameraSelection","perm","requestCameraPermissionsAsync","granted","launchCameraAsync","mediaTypes","quality","videoQuality","UIImagePickerControllerQualityType","Medium","canceled","assets","type","fileSize","normalized","error","console","handleGallerySelection","requestMediaLibraryPermissionsAsync","launchImageLibraryAsync","allowsEditing","preferredAssetRepresentationMode","UIImagePickerPreferredAssetRepresentationMode","Compatible","handleRecentMediaSelection","media","info","getInfoAsync","exists","isVideo","handleFileSelection","getDocumentAsync","multiple","copyToCacheDirectory","undefined","err","ensureLibraryPermission","MediaLibrary","getPermissionsAsync","canAskAgain","requestPermissionsAsync","warn","libraryPermissionCheckedRef","handleAttachPress","finally","stopRecordingTimer","clearInterval","restoreAudioMode","allowsRecording","playsInSilentMode","handleStartRecording","prepareToRecordAsync","record","startedAt","setInterval","floor","handleCancelRecording","wasRecording","stop","handleStopAndSendRecording","seconds","ts","file","catch","handleRemoveImage","index","next","filter","_","i","handleSendClick","messageToSend","filesToSend","length","inputFontSize","typography","input","fontSize","elements","inputText","inputMinHeight","minHeight","estimatedLineHeight","inputVerticalPadding","max","isText","children","disableMedia","width","height","justifyContent","alignItems","backgroundColor","activeOpacity","color","testID","accessibilityLabel","colors","primary","fontWeight","placeholder","placeholderTextColor","textMuted","keyboardAppearance","dark","value","onChangeText","editable","multiline","maxHeight","paddingTop","paddingBottom","flex","borderRadius","surfaceSecondary","danger","flexDirection","gap","paddingHorizontal","toString","padStart","textSecondary","hasContent","showMic","enableAudio","disabled","filled","EndIcon","textOnPrimary","sendButtonSize","marginLeft","marginRight","opacity","visible","onClose","onCamera","onGallery","onDocument","onPickMedia","primaryColor"],"sourceRoot":"../../../../src","sources":["components/styled/SendInput.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useState","useCallback","useEffect","useRef","MessageInputContainer","InputContainer","MessageInput","Button","SendIcon","AttachIcon","RecordIcon","View","Text","TouchableOpacity","Alert","Linking","AttachSheet","MediaFilePreview","getIconColor","getElementFont","useTheme","useT","getMediaLibrary","ImagePicker","DocumentPicker","ImageManipulator","FileSystem","useAudioRecorder","setAudioModeAsync","requestRecordingPermissionsAsync","RecordingPresets","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","MAX_MEDIA_BYTES","formatBytes","bytes","toFixed","normalizeImageAsset","asset","mime","mimeType","toLowerCase","looksLikeHeic","includes","uri","endsWith","name","fileName","split","pop","Date","now","result","manipulateAsync","compress","format","SaveFormat","JPEG","baseName","replace","SendInput","sendMessage","sendMedia","config","maxMediaBytes","onFocus","onBlur","editMessage","isLoading","isMessageProcessing","t","theme","message","setMessage","isRecording","setIsRecording","recordingDuration","setRecordingDuration","isFocused","setIsFocused","filePreviews","setFilePreviews","showMediaMenu","setShowMediaMenu","audioRecorder","HIGH_QUALITY","isRecordingRef","recordingTimerRef","messageRef","filePreviewsRef","sendingRef","pickingDocRef","handleFileSelect","files","limit","oversize","find","f","size","alert","Math","round","current","promptOpenSettings","text","style","onPress","openSettings","handleCameraSelection","perm","requestCameraPermissionsAsync","granted","launchCameraAsync","mediaTypes","quality","videoQuality","UIImagePickerControllerQualityType","Medium","canceled","assets","type","fileSize","normalized","error","console","handleGallerySelection","requestMediaLibraryPermissionsAsync","launchImageLibraryAsync","allowsEditing","preferredAssetRepresentationMode","UIImagePickerPreferredAssetRepresentationMode","Compatible","handleRecentMediaSelection","media","info","getInfoAsync","exists","isVideo","handleFileSelection","getDocumentAsync","multiple","copyToCacheDirectory","undefined","err","ensureLibraryPermission","MediaLibrary","getPermissionsAsync","canAskAgain","requestPermissionsAsync","warn","libraryPermissionCheckedRef","handleAttachPress","finally","stopRecordingTimer","clearInterval","restoreAudioMode","allowsRecording","playsInSilentMode","handleStartRecording","prepareToRecordAsync","record","startedAt","setInterval","floor","handleCancelRecording","wasRecording","stop","handleStopAndSendRecording","seconds","ts","file","catch","handleRemoveImage","index","next","filter","_","i","handleSendClick","messageToSend","filesToSend","length","inputFontSize","typography","input","fontSize","elements","inputText","inputMinHeight","minHeight","estimatedLineHeight","inputVerticalPadding","max","isText","children","disableMedia","width","height","justifyContent","alignItems","backgroundColor","activeOpacity","color","testID","accessibilityLabel","colors","primary","fontWeight","placeholder","placeholderTextColor","textMuted","keyboardAppearance","dark","value","onChangeText","editable","multiline","maxHeight","paddingTop","paddingBottom","flex","borderRadius","surfaceSecondary","danger","flexDirection","gap","paddingHorizontal","toString","padStart","textSecondary","hasContent","showMic","enableAudio","disabled","filled","EndIcon","textOnPrimary","sendButtonSize","marginLeft","marginRight","opacity","visible","onClose","onCamera","onGallery","onDocument","onPickMedia","primaryColor"],"sourceRoot":"../../../../src","sources":["components/styled/SendInput.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { cbc } from '@noble/ciphers/aes.js';
|
|
4
|
+
import { ed25519, x25519 } from '@noble/curves/ed25519.js';
|
|
5
|
+
import { hkdf } from '@noble/hashes/hkdf.js';
|
|
6
|
+
import { hmac } from '@noble/hashes/hmac.js';
|
|
7
|
+
import { sha256 } from '@noble/hashes/sha2.js';
|
|
8
|
+
import { concatBytes, randomBytes, utf8ToBytes } from '@noble/hashes/utils.js';
|
|
9
|
+
export { concatBytes, randomBytes, utf8ToBytes };
|
|
10
|
+
const ZERO_SALT = new Uint8Array(32);
|
|
11
|
+
export function hkdfSha256(ikm, salt, info, length) {
|
|
12
|
+
return hkdf(sha256, ikm, salt ?? ZERO_SALT, utf8ToBytes(info), length);
|
|
13
|
+
}
|
|
14
|
+
export function hmacSha256(key, data) {
|
|
15
|
+
return hmac(sha256, key, data);
|
|
16
|
+
}
|
|
17
|
+
export function aesEncrypt(key, iv, data) {
|
|
18
|
+
return cbc(key, iv).encrypt(data);
|
|
19
|
+
}
|
|
20
|
+
export function aesDecrypt(key, iv, data) {
|
|
21
|
+
return cbc(key, iv).decrypt(data);
|
|
22
|
+
}
|
|
23
|
+
export function generateKeyPair() {
|
|
24
|
+
const {
|
|
25
|
+
secretKey,
|
|
26
|
+
publicKey
|
|
27
|
+
} = x25519.keygen();
|
|
28
|
+
return {
|
|
29
|
+
priv: secretKey,
|
|
30
|
+
pub: publicKey
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export function generateIdentity() {
|
|
34
|
+
const {
|
|
35
|
+
secretKey,
|
|
36
|
+
publicKey
|
|
37
|
+
} = ed25519.keygen();
|
|
38
|
+
return {
|
|
39
|
+
seed: secretKey,
|
|
40
|
+
pub: publicKey
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export function dh(priv, pub) {
|
|
44
|
+
return x25519.getSharedSecret(priv, pub);
|
|
45
|
+
}
|
|
46
|
+
export function identityDhPrivate(identity) {
|
|
47
|
+
return ed25519.utils.toMontgomerySecret(identity.seed);
|
|
48
|
+
}
|
|
49
|
+
export function identityDhPublic(identityPub) {
|
|
50
|
+
return ed25519.utils.toMontgomery(identityPub);
|
|
51
|
+
}
|
|
52
|
+
export function sign(identity, message) {
|
|
53
|
+
return ed25519.sign(message, identity.seed);
|
|
54
|
+
}
|
|
55
|
+
export function verify(signature, message, identityPub) {
|
|
56
|
+
try {
|
|
57
|
+
return ed25519.verify(signature, message, identityPub);
|
|
58
|
+
} catch {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
export function bytesEqual(a, b) {
|
|
63
|
+
if (a.length !== b.length) {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
let diff = 0;
|
|
67
|
+
for (let i = 0; i < a.length; i++) {
|
|
68
|
+
diff |= a[i] ^ b[i];
|
|
69
|
+
}
|
|
70
|
+
return diff === 0;
|
|
71
|
+
}
|
|
72
|
+
const B64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
|
|
73
|
+
const B64_VALUE = new Int16Array(128).fill(-1);
|
|
74
|
+
for (let i = 0; i < B64.length; i++) {
|
|
75
|
+
B64_VALUE[B64.charCodeAt(i)] = i;
|
|
76
|
+
}
|
|
77
|
+
export function toBase64(bytes) {
|
|
78
|
+
let out = '';
|
|
79
|
+
let i = 0;
|
|
80
|
+
for (; i + 2 < bytes.length; i += 3) {
|
|
81
|
+
const n = bytes[i] << 16 | bytes[i + 1] << 8 | bytes[i + 2];
|
|
82
|
+
out += B64[n >> 18] + B64[n >> 12 & 63] + B64[n >> 6 & 63] + B64[n & 63];
|
|
83
|
+
}
|
|
84
|
+
if (i + 1 === bytes.length) {
|
|
85
|
+
const n = bytes[i] << 16;
|
|
86
|
+
out += B64[n >> 18] + B64[n >> 12 & 63] + '==';
|
|
87
|
+
} else if (i + 2 === bytes.length) {
|
|
88
|
+
const n = bytes[i] << 16 | bytes[i + 1] << 8;
|
|
89
|
+
out += B64[n >> 18] + B64[n >> 12 & 63] + B64[n >> 6 & 63] + '=';
|
|
90
|
+
}
|
|
91
|
+
return out;
|
|
92
|
+
}
|
|
93
|
+
export function fromBase64(text) {
|
|
94
|
+
const clean = text.replace(/\s+/g, '').replace(/=+$/, '');
|
|
95
|
+
if (clean.length % 4 === 1) {
|
|
96
|
+
throw new Error('Invalid base64');
|
|
97
|
+
}
|
|
98
|
+
const out = new Uint8Array(Math.floor(clean.length * 3 / 4));
|
|
99
|
+
let acc = 0;
|
|
100
|
+
let bits = 0;
|
|
101
|
+
let pos = 0;
|
|
102
|
+
for (let i = 0; i < clean.length; i++) {
|
|
103
|
+
const code = clean.charCodeAt(i);
|
|
104
|
+
const value = code < 128 ? B64_VALUE[code] : -1;
|
|
105
|
+
if (value < 0) {
|
|
106
|
+
throw new Error('Invalid base64');
|
|
107
|
+
}
|
|
108
|
+
acc = acc << 6 | value;
|
|
109
|
+
bits += 6;
|
|
110
|
+
if (bits >= 8) {
|
|
111
|
+
bits -= 8;
|
|
112
|
+
out[pos++] = acc >> bits & 0xff;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return out;
|
|
116
|
+
}
|
|
117
|
+
export function toHex(bytes) {
|
|
118
|
+
return Array.from(bytes, b => b.toString(16).padStart(2, '0')).join('');
|
|
119
|
+
}
|
|
120
|
+
export function randomInt(min, max) {
|
|
121
|
+
const bytes = randomBytes(4);
|
|
122
|
+
const n = new DataView(bytes.buffer, bytes.byteOffset, 4).getUint32(0);
|
|
123
|
+
return min + n % (max - min + 1);
|
|
124
|
+
}
|
|
125
|
+
export function bytesToUtf8(bytes) {
|
|
126
|
+
const chunks = [];
|
|
127
|
+
let units = [];
|
|
128
|
+
const push = unit => {
|
|
129
|
+
units.push(unit);
|
|
130
|
+
if (units.length >= 8192) {
|
|
131
|
+
chunks.push(String.fromCharCode.apply(null, units));
|
|
132
|
+
units = [];
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
let i = 0;
|
|
136
|
+
while (i < bytes.length) {
|
|
137
|
+
const b = bytes[i++];
|
|
138
|
+
if (b < 0x80) {
|
|
139
|
+
push(b);
|
|
140
|
+
continue;
|
|
141
|
+
}
|
|
142
|
+
const extra = b >= 0xf0 && b < 0xf8 ? 3 : b >= 0xe0 ? 2 : b >= 0xc2 ? 1 : -1;
|
|
143
|
+
let code = extra === 3 ? b & 0x07 : extra === 2 ? b & 0x0f : b & 0x1f;
|
|
144
|
+
let valid = extra > 0 && b < 0xf8 && i + extra <= bytes.length;
|
|
145
|
+
for (let k = 0; valid && k < extra; k++) {
|
|
146
|
+
const next = bytes[i + k];
|
|
147
|
+
if ((next & 0xc0) !== 0x80) {
|
|
148
|
+
valid = false;
|
|
149
|
+
}
|
|
150
|
+
code = code << 6 | next & 0x3f;
|
|
151
|
+
}
|
|
152
|
+
if (!valid || extra === 2 && code < 0x800 || extra === 3 && (code < 0x10000 || code > 0x10ffff) || code >= 0xd800 && code <= 0xdfff) {
|
|
153
|
+
push(0xfffd);
|
|
154
|
+
continue;
|
|
155
|
+
}
|
|
156
|
+
i += extra;
|
|
157
|
+
if (code > 0xffff) {
|
|
158
|
+
code -= 0x10000;
|
|
159
|
+
push(0xd800 | code >> 10);
|
|
160
|
+
push(0xdc00 | code & 0x3ff);
|
|
161
|
+
} else {
|
|
162
|
+
push(code);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
if (units.length) {
|
|
166
|
+
chunks.push(String.fromCharCode.apply(null, units));
|
|
167
|
+
}
|
|
168
|
+
return chunks.join('');
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=crypto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["cbc","ed25519","x25519","hkdf","hmac","sha256","concatBytes","randomBytes","utf8ToBytes","ZERO_SALT","Uint8Array","hkdfSha256","ikm","salt","info","length","hmacSha256","key","data","aesEncrypt","iv","encrypt","aesDecrypt","decrypt","generateKeyPair","secretKey","publicKey","keygen","priv","pub","generateIdentity","seed","dh","getSharedSecret","identityDhPrivate","identity","utils","toMontgomerySecret","identityDhPublic","identityPub","toMontgomery","sign","message","verify","signature","bytesEqual","a","b","diff","i","B64","B64_VALUE","Int16Array","fill","charCodeAt","toBase64","bytes","out","n","fromBase64","text","clean","replace","Error","Math","floor","acc","bits","pos","code","value","toHex","Array","from","toString","padStart","join","randomInt","min","max","DataView","buffer","byteOffset","getUint32","bytesToUtf8","chunks","units","push","unit","String","fromCharCode","apply","extra","valid","k","next"],"sourceRoot":"../../../src","sources":["e2ee/crypto.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import AsyncStorage from '@react-native-async-storage/async-storage';
|
|
4
|
+
import { secureGetOrCreate } from '../helpers/secureKeyValue';
|
|
5
|
+
import { decryptFromPersist, encryptForPersist, isPersistKeyKept } from '../helpers/persistCrypto';
|
|
6
|
+
import { randomBytes, toHex } from './crypto';
|
|
7
|
+
import { createStore } from './store';
|
|
8
|
+
const MMKV_INSTANCE_ID = 'ethora-omemo';
|
|
9
|
+
const MMKV_KEY_STORE_KEY = 'ethora_omemo_store_key';
|
|
10
|
+
const ASYNC_STORAGE_PREFIX = '@ethora/omemo:';
|
|
11
|
+
const createMmkvBackend = async () => {
|
|
12
|
+
let MMKV;
|
|
13
|
+
try {
|
|
14
|
+
MMKV = require('react-native-mmkv').MMKV;
|
|
15
|
+
} catch {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
if (typeof MMKV !== 'function') {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
const key = await secureGetOrCreate(MMKV_KEY_STORE_KEY, () => toHex(randomBytes(8)));
|
|
22
|
+
if (!key) {
|
|
23
|
+
throw new Error('e2ee: the device store key was not kept');
|
|
24
|
+
}
|
|
25
|
+
try {
|
|
26
|
+
const storage = new MMKV({
|
|
27
|
+
id: MMKV_INSTANCE_ID,
|
|
28
|
+
encryptionKey: key.value
|
|
29
|
+
});
|
|
30
|
+
if (key.created) {
|
|
31
|
+
storage.clearAll();
|
|
32
|
+
}
|
|
33
|
+
return {
|
|
34
|
+
getItem: async key => storage.getString(key) ?? null,
|
|
35
|
+
setItem: async (key, value) => void storage.set(key, value),
|
|
36
|
+
removeItem: async key => void storage.delete(key)
|
|
37
|
+
};
|
|
38
|
+
} catch (e) {
|
|
39
|
+
console.warn('[e2ee] react-native-mmkv present but unusable, falling back', e);
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
const asyncStorageBackend = {
|
|
44
|
+
getItem: async key => {
|
|
45
|
+
const raw = await AsyncStorage.getItem(ASYNC_STORAGE_PREFIX + key);
|
|
46
|
+
return raw ? decryptFromPersist(raw) : null;
|
|
47
|
+
},
|
|
48
|
+
setItem: async (key, value) => AsyncStorage.setItem(ASYNC_STORAGE_PREFIX + key, await encryptForPersist(value)),
|
|
49
|
+
removeItem: key => AsyncStorage.removeItem(ASYNC_STORAGE_PREFIX + key)
|
|
50
|
+
};
|
|
51
|
+
const createAsyncStorageBackend = async () => {
|
|
52
|
+
if (!(await isPersistKeyKept())) {
|
|
53
|
+
throw new Error('e2ee: the storage cipher key was not kept');
|
|
54
|
+
}
|
|
55
|
+
return asyncStorageBackend;
|
|
56
|
+
};
|
|
57
|
+
let backendPromise = null;
|
|
58
|
+
const getBackend = () => {
|
|
59
|
+
if (!backendPromise) {
|
|
60
|
+
const opening = createMmkvBackend().then(mmkv => mmkv ?? createAsyncStorageBackend());
|
|
61
|
+
backendPromise = opening;
|
|
62
|
+
// A refusal is not cached: the next start may find the store usable.
|
|
63
|
+
opening.catch(() => {
|
|
64
|
+
if (backendPromise === opening) {
|
|
65
|
+
backendPromise = null;
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
return backendPromise;
|
|
70
|
+
};
|
|
71
|
+
export async function openDeviceStore(jid) {
|
|
72
|
+
return createStore(await getBackend(), jid);
|
|
73
|
+
}
|
|
74
|
+
export const __resetDeviceStoreForTests = () => {
|
|
75
|
+
backendPromise = null;
|
|
76
|
+
};
|
|
77
|
+
//# sourceMappingURL=deviceStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["AsyncStorage","secureGetOrCreate","decryptFromPersist","encryptForPersist","isPersistKeyKept","randomBytes","toHex","createStore","MMKV_INSTANCE_ID","MMKV_KEY_STORE_KEY","ASYNC_STORAGE_PREFIX","createMmkvBackend","MMKV","require","key","Error","storage","id","encryptionKey","value","created","clearAll","getItem","getString","setItem","set","removeItem","delete","e","console","warn","asyncStorageBackend","raw","createAsyncStorageBackend","backendPromise","getBackend","opening","then","mmkv","catch","openDeviceStore","jid","__resetDeviceStoreForTests"],"sourceRoot":"../../../src","sources":["e2ee/deviceStore.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { cbc } from '@noble/ciphers/aes.js';
|
|
4
|
+
import { hmac } from '@noble/hashes/hmac.js';
|
|
5
|
+
import { sha256 } from '@noble/hashes/sha2.js';
|
|
6
|
+
import { bytesEqual, concatBytes, hkdfSha256, randomBytes } from './crypto';
|
|
7
|
+
const SLICE = 32 * 1024;
|
|
8
|
+
const BLOCK = 16;
|
|
9
|
+
const yieldToUi = () => new Promise(resolve => setTimeout(resolve, 0));
|
|
10
|
+
function payloadKeys(key) {
|
|
11
|
+
const km = hkdfSha256(key, undefined, 'OMEMO Payload', 80);
|
|
12
|
+
return {
|
|
13
|
+
enc: km.slice(0, 32),
|
|
14
|
+
auth: km.slice(32, 64),
|
|
15
|
+
iv: km.slice(64)
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export async function encryptLargePayload(plaintext, onProgress) {
|
|
19
|
+
const key = randomBytes(32);
|
|
20
|
+
const {
|
|
21
|
+
enc,
|
|
22
|
+
auth,
|
|
23
|
+
iv
|
|
24
|
+
} = payloadKeys(key);
|
|
25
|
+
const payload = new Uint8Array((Math.floor(plaintext.length / BLOCK) + 1) * BLOCK);
|
|
26
|
+
const mac = hmac.create(sha256, auth);
|
|
27
|
+
let offset = 0;
|
|
28
|
+
let chain = iv;
|
|
29
|
+
while (plaintext.length - offset > SLICE) {
|
|
30
|
+
const out = payload.subarray(offset, offset + SLICE);
|
|
31
|
+
out.set(cbc(enc, chain, {
|
|
32
|
+
disablePadding: true
|
|
33
|
+
}).encrypt(plaintext.subarray(offset, offset + SLICE)));
|
|
34
|
+
mac.update(out);
|
|
35
|
+
chain = out.slice(SLICE - BLOCK);
|
|
36
|
+
offset += SLICE;
|
|
37
|
+
onProgress?.(offset / plaintext.length);
|
|
38
|
+
await yieldToUi();
|
|
39
|
+
}
|
|
40
|
+
const last = cbc(enc, chain).encrypt(plaintext.subarray(offset));
|
|
41
|
+
payload.set(last, offset);
|
|
42
|
+
mac.update(last);
|
|
43
|
+
onProgress?.(1);
|
|
44
|
+
return {
|
|
45
|
+
keyMaterial: concatBytes(key, mac.digest().slice(0, 16)),
|
|
46
|
+
payload
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
export async function decryptLargePayload(keyMaterial, payload, onProgress) {
|
|
50
|
+
if (keyMaterial.length !== 48) {
|
|
51
|
+
throw new Error('Invalid key material');
|
|
52
|
+
}
|
|
53
|
+
if (payload.length === 0 || payload.length % BLOCK !== 0) {
|
|
54
|
+
throw new Error('Payload authentication failed');
|
|
55
|
+
}
|
|
56
|
+
const {
|
|
57
|
+
enc,
|
|
58
|
+
auth,
|
|
59
|
+
iv
|
|
60
|
+
} = payloadKeys(keyMaterial.slice(0, 32));
|
|
61
|
+
const mac = hmac.create(sha256, auth);
|
|
62
|
+
for (let offset = 0; offset < payload.length; offset += SLICE) {
|
|
63
|
+
mac.update(payload.subarray(offset, offset + SLICE));
|
|
64
|
+
onProgress?.(Math.min(offset + SLICE, payload.length) / payload.length * 0.65);
|
|
65
|
+
if (offset + SLICE < payload.length) {
|
|
66
|
+
await yieldToUi();
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
if (!bytesEqual(mac.digest().slice(0, 16), keyMaterial.slice(32))) {
|
|
70
|
+
throw new Error('Payload authentication failed');
|
|
71
|
+
}
|
|
72
|
+
const plaintext = new Uint8Array(payload.length);
|
|
73
|
+
let offset = 0;
|
|
74
|
+
let chain = iv;
|
|
75
|
+
while (payload.length - offset > SLICE) {
|
|
76
|
+
const part = payload.subarray(offset, offset + SLICE);
|
|
77
|
+
plaintext.set(cbc(enc, chain, {
|
|
78
|
+
disablePadding: true
|
|
79
|
+
}).decrypt(part), offset);
|
|
80
|
+
chain = part.slice(SLICE - BLOCK);
|
|
81
|
+
offset += SLICE;
|
|
82
|
+
onProgress?.(0.65 + offset / payload.length * 0.35);
|
|
83
|
+
await yieldToUi();
|
|
84
|
+
}
|
|
85
|
+
const last = cbc(enc, chain).decrypt(payload.subarray(offset));
|
|
86
|
+
plaintext.set(last, offset);
|
|
87
|
+
onProgress?.(1);
|
|
88
|
+
return plaintext.subarray(0, offset + last.length);
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=fileCipher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["cbc","hmac","sha256","bytesEqual","concatBytes","hkdfSha256","randomBytes","SLICE","BLOCK","yieldToUi","Promise","resolve","setTimeout","payloadKeys","key","km","undefined","enc","slice","auth","iv","encryptLargePayload","plaintext","onProgress","payload","Uint8Array","Math","floor","length","mac","create","offset","chain","out","subarray","set","disablePadding","encrypt","update","last","keyMaterial","digest","decryptLargePayload","Error","min","part","decrypt"],"sourceRoot":"../../../src","sources":["e2ee/fileCipher.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { bytesToUtf8, fromBase64, randomBytes, toBase64, toHex, utf8ToBytes } from './crypto';
|
|
4
|
+
import { decryptLargePayload, encryptLargePayload } from './fileCipher';
|
|
5
|
+
export { parseSealedMediaBody } from './sealedBody';
|
|
6
|
+
const MAGIC = Uint8Array.from([0x45, 0x54, 0x48, 0x4f, 0x46, 0x49, 0x4c, 0x45]);
|
|
7
|
+
const VERSION = 1;
|
|
8
|
+
const HEADER_OFFSET = MAGIC.length + 1 + 4;
|
|
9
|
+
export function encodeFileEnvelope(meta, bytes) {
|
|
10
|
+
const header = utf8ToBytes(JSON.stringify({
|
|
11
|
+
mimetype: meta.mimetype,
|
|
12
|
+
originalname: meta.originalname,
|
|
13
|
+
size: meta.size
|
|
14
|
+
}));
|
|
15
|
+
const out = new Uint8Array(HEADER_OFFSET + header.length + bytes.length);
|
|
16
|
+
out.set(MAGIC, 0);
|
|
17
|
+
out[MAGIC.length] = VERSION;
|
|
18
|
+
new DataView(out.buffer).setUint32(MAGIC.length + 1, header.length, false);
|
|
19
|
+
out.set(header, HEADER_OFFSET);
|
|
20
|
+
out.set(bytes, HEADER_OFFSET + header.length);
|
|
21
|
+
return out;
|
|
22
|
+
}
|
|
23
|
+
export function decodeFileEnvelope(envelope) {
|
|
24
|
+
if (envelope.length < HEADER_OFFSET) {
|
|
25
|
+
throw new Error('file_envelope_truncated');
|
|
26
|
+
}
|
|
27
|
+
for (let i = 0; i < MAGIC.length; i++) {
|
|
28
|
+
if (envelope[i] !== MAGIC[i]) {
|
|
29
|
+
throw new Error('file_envelope_bad_magic');
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
const version = envelope[MAGIC.length];
|
|
33
|
+
if (version !== VERSION) {
|
|
34
|
+
throw new Error(`file_envelope_unsupported_version_${version}`);
|
|
35
|
+
}
|
|
36
|
+
const headerLen = new DataView(envelope.buffer, envelope.byteOffset, envelope.byteLength).getUint32(MAGIC.length + 1, false);
|
|
37
|
+
const bodyStart = HEADER_OFFSET + headerLen;
|
|
38
|
+
if (bodyStart > envelope.length) {
|
|
39
|
+
throw new Error('file_envelope_truncated');
|
|
40
|
+
}
|
|
41
|
+
const meta = JSON.parse(bytesToUtf8(envelope.subarray(HEADER_OFFSET, bodyStart)));
|
|
42
|
+
return {
|
|
43
|
+
meta,
|
|
44
|
+
bytes: envelope.subarray(bodyStart)
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
export async function sealFileForUpload(file, onProgress) {
|
|
48
|
+
const envelope = encodeFileEnvelope({
|
|
49
|
+
mimetype: file.type || 'application/octet-stream',
|
|
50
|
+
originalname: file.name || 'blob',
|
|
51
|
+
size: file.bytes.length
|
|
52
|
+
}, file.bytes);
|
|
53
|
+
const {
|
|
54
|
+
keyMaterial,
|
|
55
|
+
payload
|
|
56
|
+
} = await encryptLargePayload(envelope, onProgress);
|
|
57
|
+
return {
|
|
58
|
+
ciphertext: payload,
|
|
59
|
+
keyMaterial: toBase64(keyMaterial),
|
|
60
|
+
filename: toHex(randomBytes(16))
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
export async function openSealedFile(ciphertext, keyMaterial, onProgress) {
|
|
64
|
+
return decodeFileEnvelope(await decryptLargePayload(fromBase64(keyMaterial), ciphertext, onProgress));
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=fileEnvelope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["bytesToUtf8","fromBase64","randomBytes","toBase64","toHex","utf8ToBytes","decryptLargePayload","encryptLargePayload","parseSealedMediaBody","MAGIC","Uint8Array","from","VERSION","HEADER_OFFSET","length","encodeFileEnvelope","meta","bytes","header","JSON","stringify","mimetype","originalname","size","out","set","DataView","buffer","setUint32","decodeFileEnvelope","envelope","Error","i","version","headerLen","byteOffset","byteLength","getUint32","bodyStart","parse","subarray","sealFileForUpload","file","onProgress","type","name","keyMaterial","payload","ciphertext","filename","openSealedFile"],"sourceRoot":"../../../src","sources":["e2ee/fileEnvelope.ts"],"mappings":"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","ignoreList":[]}
|