@ethora/chat-component-rn 26.5.21 → 26.6.11
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 +80 -0
- package/README.md +3 -3
- package/index.js +1 -1
- package/lib/commonjs/components/MainComponents/ChatHeader.js +20 -8
- package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/commonjs/components/MainComponents/ChatWrapper.js +17 -0
- package/lib/commonjs/components/MainComponents/ChatWrapper.js.map +1 -1
- package/lib/commonjs/components/MainComponents/LanguageSelectorButton.js +62 -0
- package/lib/commonjs/components/MainComponents/LanguageSelectorButton.js.map +1 -0
- package/lib/commonjs/components/MainComponents/LanguageSelectorModal.js +253 -0
- package/lib/commonjs/components/MainComponents/LanguageSelectorModal.js.map +1 -0
- package/lib/commonjs/components/MainComponents/MediaMessage.js +7 -1
- package/lib/commonjs/components/MainComponents/MediaMessage.js.map +1 -1
- package/lib/commonjs/components/MainComponents/RoomList.js +23 -9
- package/lib/commonjs/components/MainComponents/RoomList.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/Message.js +72 -11
- package/lib/commonjs/components/MessageBubble/Message.js.map +1 -1
- package/lib/commonjs/components/MessageBubble/MessageTranslate.js +160 -0
- package/lib/commonjs/components/MessageBubble/MessageTranslate.js.map +1 -0
- package/lib/commonjs/components/MessageBubble/TranslatedMessageBody.js +59 -0
- package/lib/commonjs/components/MessageBubble/TranslatedMessageBody.js.map +1 -0
- package/lib/commonjs/components/Modals/FilePreviewModal/FilePreviewModal.js +3 -3
- package/lib/commonjs/components/UsersList/UsersList.js +3 -1
- package/lib/commonjs/components/UsersList/UsersList.js.map +1 -1
- package/lib/commonjs/components/VideoCalls/CallButtons.js +159 -0
- package/lib/commonjs/components/VideoCalls/CallButtons.js.map +1 -0
- package/lib/commonjs/components/VideoCalls/CallIcons.js +328 -0
- package/lib/commonjs/components/VideoCalls/CallIcons.js.map +1 -0
- package/lib/commonjs/components/VideoCalls/VideoCallOverlay.js +550 -0
- package/lib/commonjs/components/VideoCalls/VideoCallOverlay.js.map +1 -0
- package/lib/commonjs/components/VideoCalls/VideoCallSession.js +636 -0
- package/lib/commonjs/components/VideoCalls/VideoCallSession.js.map +1 -0
- package/lib/commonjs/components/VideoCalls/livekitRuntime.js +91 -0
- package/lib/commonjs/components/VideoCalls/livekitRuntime.js.map +1 -0
- package/lib/commonjs/components/VideoCalls/useCallKeep.js +215 -0
- package/lib/commonjs/components/VideoCalls/useCallKeep.js.map +1 -0
- package/lib/commonjs/components/styled/AudioMessage.js +91 -33
- package/lib/commonjs/components/styled/AudioMessage.js.map +1 -1
- package/lib/commonjs/components/styled/RoomListComponents/index.js +13 -1
- package/lib/commonjs/components/styled/RoomListComponents/index.js.map +1 -1
- package/lib/commonjs/components/styled/SendInput.js +83 -49
- package/lib/commonjs/components/styled/SendInput.js.map +1 -1
- package/lib/commonjs/components/styled/StyledComponents.js +9 -4
- package/lib/commonjs/components/styled/StyledComponents.js.map +1 -1
- package/lib/commonjs/components/styled/StyledInputComponents/Composing.js +2 -0
- package/lib/commonjs/components/styled/StyledInputComponents/Composing.js.map +1 -1
- package/lib/commonjs/components/styled/VideoMessage.js +110 -26
- package/lib/commonjs/components/styled/VideoMessage.js.map +1 -1
- package/lib/commonjs/context/xmppProvider.js +10 -3
- package/lib/commonjs/context/xmppProvider.js.map +1 -1
- package/lib/commonjs/helpers/callLogMessage.js +162 -0
- package/lib/commonjs/helpers/callLogMessage.js.map +1 -0
- package/lib/commonjs/helpers/callPush.js +61 -0
- package/lib/commonjs/helpers/callPush.js.map +1 -0
- package/lib/commonjs/helpers/constants/LANGUAGE_OPTIONS.js +24 -12
- package/lib/commonjs/helpers/constants/LANGUAGE_OPTIONS.js.map +1 -1
- package/lib/commonjs/helpers/createUserNameFromSetUser.js +51 -2
- package/lib/commonjs/helpers/createUserNameFromSetUser.js.map +1 -1
- package/lib/commonjs/helpers/getDataFromXml.js +19 -1
- package/lib/commonjs/helpers/getDataFromXml.js.map +1 -1
- package/lib/commonjs/helpers/incomingCallFromPush.js +74 -0
- package/lib/commonjs/helpers/incomingCallFromPush.js.map +1 -0
- package/lib/commonjs/helpers/insertMessageWithDelimiter.js +13 -1
- package/lib/commonjs/helpers/insertMessageWithDelimiter.js.map +1 -1
- package/lib/commonjs/helpers/isUnresolvedSenderId.js +32 -0
- package/lib/commonjs/helpers/isUnresolvedSenderId.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/useMessageTranslation.js +51 -0
- package/lib/commonjs/hooks/useMessageTranslation.js.map +1 -0
- package/lib/commonjs/hooks/usePushNotifications.js +13 -3
- package/lib/commonjs/hooks/usePushNotifications.js.map +1 -1
- package/lib/commonjs/hooks/useSendMessage.js +14 -4
- package/lib/commonjs/hooks/useSendMessage.js.map +1 -1
- package/lib/commonjs/i18n/strings.js +1308 -0
- package/lib/commonjs/i18n/strings.js.map +1 -0
- package/lib/commonjs/i18n/useT.js +60 -0
- package/lib/commonjs/i18n/useT.js.map +1 -0
- package/lib/commonjs/main.js +44 -0
- package/lib/commonjs/main.js.map +1 -1
- package/lib/commonjs/networking/api-requests/auth.api.js +81 -52
- package/lib/commonjs/networking/api-requests/auth.api.js.map +1 -1
- package/lib/commonjs/networking/api-requests/push.api.js +34 -5
- package/lib/commonjs/networking/api-requests/push.api.js.map +1 -1
- package/lib/commonjs/networking/api-requests/rooms.api.js +108 -0
- package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
- package/lib/commonjs/networking/callTokenStanza.js +531 -0
- package/lib/commonjs/networking/callTokenStanza.js.map +1 -0
- package/lib/commonjs/networking/outboundQueue.js.map +1 -1
- package/lib/commonjs/networking/stanzaHandlers.js +75 -8
- package/lib/commonjs/networking/stanzaHandlers.js.map +1 -1
- package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js +47 -11
- package/lib/commonjs/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js +2 -1
- package/lib/commonjs/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js +42 -5
- package/lib/commonjs/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js.map +1 -1
- package/lib/commonjs/networking/xmppClient.js +78 -16
- package/lib/commonjs/networking/xmppClient.js.map +1 -1
- package/lib/commonjs/roomStore/callSlice.js +144 -0
- package/lib/commonjs/roomStore/callSlice.js.map +1 -0
- package/lib/commonjs/roomStore/chatSettingsSlice.js +8 -2
- package/lib/commonjs/roomStore/chatSettingsSlice.js.map +1 -1
- package/lib/commonjs/roomStore/index.js +7 -1
- package/lib/commonjs/roomStore/index.js.map +1 -1
- package/lib/commonjs/roomStore/persistence.js +69 -5
- package/lib/commonjs/roomStore/persistence.js.map +1 -1
- package/lib/commonjs/roomStore/roomsSlice.js +136 -6
- package/lib/commonjs/roomStore/roomsSlice.js.map +1 -1
- package/lib/commonjs/utils/translateModePolicy.js +33 -0
- package/lib/commonjs/utils/translateModePolicy.js.map +1 -0
- package/lib/module/components/MainComponents/ChatHeader.js +20 -8
- package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
- package/lib/module/components/MainComponents/ChatWrapper.js +17 -0
- package/lib/module/components/MainComponents/ChatWrapper.js.map +1 -1
- package/lib/module/components/MainComponents/LanguageSelectorButton.js +57 -0
- package/lib/module/components/MainComponents/LanguageSelectorButton.js.map +1 -0
- package/lib/module/components/MainComponents/LanguageSelectorModal.js +246 -0
- package/lib/module/components/MainComponents/LanguageSelectorModal.js.map +1 -0
- package/lib/module/components/MainComponents/MediaMessage.js +7 -1
- package/lib/module/components/MainComponents/MediaMessage.js.map +1 -1
- package/lib/module/components/MainComponents/RoomList.js +23 -9
- package/lib/module/components/MainComponents/RoomList.js.map +1 -1
- package/lib/module/components/MessageBubble/Message.js +73 -12
- package/lib/module/components/MessageBubble/Message.js.map +1 -1
- package/lib/module/components/MessageBubble/MessageTranslate.js +155 -0
- package/lib/module/components/MessageBubble/MessageTranslate.js.map +1 -0
- package/lib/module/components/MessageBubble/TranslatedMessageBody.js +53 -0
- package/lib/module/components/MessageBubble/TranslatedMessageBody.js.map +1 -0
- package/lib/module/components/Modals/FilePreviewModal/FilePreviewModal.js +3 -3
- package/lib/module/components/UsersList/UsersList.js +3 -1
- package/lib/module/components/UsersList/UsersList.js.map +1 -1
- package/lib/module/components/VideoCalls/CallButtons.js +154 -0
- package/lib/module/components/VideoCalls/CallButtons.js.map +1 -0
- package/lib/module/components/VideoCalls/CallIcons.js +309 -0
- package/lib/module/components/VideoCalls/CallIcons.js.map +1 -0
- package/lib/module/components/VideoCalls/VideoCallOverlay.js +544 -0
- package/lib/module/components/VideoCalls/VideoCallOverlay.js.map +1 -0
- package/lib/module/components/VideoCalls/VideoCallSession.js +630 -0
- package/lib/module/components/VideoCalls/VideoCallSession.js.map +1 -0
- package/lib/module/components/VideoCalls/livekitRuntime.js +83 -0
- package/lib/module/components/VideoCalls/livekitRuntime.js.map +1 -0
- package/lib/module/components/VideoCalls/useCallKeep.js +210 -0
- package/lib/module/components/VideoCalls/useCallKeep.js.map +1 -0
- package/lib/module/components/styled/AudioMessage.js +91 -33
- package/lib/module/components/styled/AudioMessage.js.map +1 -1
- package/lib/module/components/styled/RoomListComponents/index.js +13 -1
- package/lib/module/components/styled/RoomListComponents/index.js.map +1 -1
- package/lib/module/components/styled/SendInput.js +83 -49
- package/lib/module/components/styled/SendInput.js.map +1 -1
- package/lib/module/components/styled/StyledComponents.js +9 -4
- package/lib/module/components/styled/StyledComponents.js.map +1 -1
- package/lib/module/components/styled/StyledInputComponents/Composing.js +2 -0
- package/lib/module/components/styled/StyledInputComponents/Composing.js.map +1 -1
- package/lib/module/components/styled/VideoMessage.js +111 -27
- package/lib/module/components/styled/VideoMessage.js.map +1 -1
- package/lib/module/context/xmppProvider.js +11 -4
- package/lib/module/context/xmppProvider.js.map +1 -1
- package/lib/module/helpers/callLogMessage.js +152 -0
- package/lib/module/helpers/callLogMessage.js.map +1 -0
- package/lib/module/helpers/callPush.js +55 -0
- package/lib/module/helpers/callPush.js.map +1 -0
- package/lib/module/helpers/constants/LANGUAGE_OPTIONS.js +24 -12
- package/lib/module/helpers/constants/LANGUAGE_OPTIONS.js.map +1 -1
- package/lib/module/helpers/createUserNameFromSetUser.js +49 -1
- package/lib/module/helpers/createUserNameFromSetUser.js.map +1 -1
- package/lib/module/helpers/getDataFromXml.js +20 -1
- package/lib/module/helpers/getDataFromXml.js.map +1 -1
- package/lib/module/helpers/incomingCallFromPush.js +70 -0
- package/lib/module/helpers/incomingCallFromPush.js.map +1 -0
- package/lib/module/helpers/insertMessageWithDelimiter.js +13 -1
- package/lib/module/helpers/insertMessageWithDelimiter.js.map +1 -1
- package/lib/module/helpers/isUnresolvedSenderId.js +27 -0
- package/lib/module/helpers/isUnresolvedSenderId.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/useMessageTranslation.js +46 -0
- package/lib/module/hooks/useMessageTranslation.js.map +1 -0
- package/lib/module/hooks/usePushNotifications.js +13 -3
- package/lib/module/hooks/usePushNotifications.js.map +1 -1
- package/lib/module/hooks/useSendMessage.js +15 -5
- package/lib/module/hooks/useSendMessage.js.map +1 -1
- package/lib/module/i18n/strings.js +1300 -0
- package/lib/module/i18n/strings.js.map +1 -0
- package/lib/module/i18n/useT.js +55 -0
- package/lib/module/i18n/useT.js.map +1 -0
- package/lib/module/main.js +7 -1
- package/lib/module/main.js.map +1 -1
- package/lib/module/networking/api-requests/auth.api.js +80 -51
- package/lib/module/networking/api-requests/auth.api.js.map +1 -1
- package/lib/module/networking/api-requests/push.api.js +35 -5
- package/lib/module/networking/api-requests/push.api.js.map +1 -1
- package/lib/module/networking/api-requests/rooms.api.js +109 -1
- package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
- package/lib/module/networking/callTokenStanza.js +526 -0
- package/lib/module/networking/callTokenStanza.js.map +1 -0
- package/lib/module/networking/outboundQueue.js.map +1 -1
- package/lib/module/networking/stanzaHandlers.js +76 -9
- package/lib/module/networking/stanzaHandlers.js.map +1 -1
- package/lib/module/networking/xmpp/handleStanzas.xmpp.js +48 -11
- package/lib/module/networking/xmpp/handleStanzas.xmpp.js.map +1 -1
- package/lib/module/networking/xmpp/sendTextMessage.xmpp.js +1 -1
- package/lib/module/networking/xmpp/sendTextMessage.xmpp.js.map +1 -1
- package/lib/module/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js +43 -5
- package/lib/module/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.js.map +1 -1
- package/lib/module/networking/xmppClient.js +78 -16
- package/lib/module/networking/xmppClient.js.map +1 -1
- package/lib/module/roomStore/callSlice.js +130 -0
- package/lib/module/roomStore/callSlice.js.map +1 -0
- package/lib/module/roomStore/chatSettingsSlice.js +6 -1
- package/lib/module/roomStore/chatSettingsSlice.js.map +1 -1
- package/lib/module/roomStore/index.js +6 -1
- package/lib/module/roomStore/index.js.map +1 -1
- package/lib/module/roomStore/persistence.js +69 -5
- package/lib/module/roomStore/persistence.js.map +1 -1
- package/lib/module/roomStore/roomsSlice.js +134 -5
- package/lib/module/roomStore/roomsSlice.js.map +1 -1
- package/lib/module/utils/translateModePolicy.js +27 -0
- package/lib/module/utils/translateModePolicy.js.map +1 -0
- package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/ChatWrapper.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/LanguageSelectorButton.d.ts +12 -0
- package/lib/typescript/components/MainComponents/LanguageSelectorButton.d.ts.map +1 -0
- package/lib/typescript/components/MainComponents/LanguageSelectorModal.d.ts +31 -0
- package/lib/typescript/components/MainComponents/LanguageSelectorModal.d.ts.map +1 -0
- package/lib/typescript/components/MainComponents/MediaMessage.d.ts.map +1 -1
- package/lib/typescript/components/MainComponents/RoomList.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/Message.d.ts.map +1 -1
- package/lib/typescript/components/MessageBubble/MessageTranslate.d.ts +44 -0
- package/lib/typescript/components/MessageBubble/MessageTranslate.d.ts.map +1 -0
- package/lib/typescript/components/MessageBubble/TranslatedMessageBody.d.ts +24 -0
- package/lib/typescript/components/MessageBubble/TranslatedMessageBody.d.ts.map +1 -0
- package/lib/typescript/components/UsersList/UsersList.d.ts.map +1 -1
- package/lib/typescript/components/VideoCalls/CallButtons.d.ts +16 -0
- package/lib/typescript/components/VideoCalls/CallButtons.d.ts.map +1 -0
- package/lib/typescript/components/VideoCalls/CallIcons.d.ts +30 -0
- package/lib/typescript/components/VideoCalls/CallIcons.d.ts.map +1 -0
- package/lib/typescript/components/VideoCalls/VideoCallOverlay.d.ts +10 -0
- package/lib/typescript/components/VideoCalls/VideoCallOverlay.d.ts.map +1 -0
- package/lib/typescript/components/VideoCalls/VideoCallSession.d.ts +38 -0
- package/lib/typescript/components/VideoCalls/VideoCallSession.d.ts.map +1 -0
- package/lib/typescript/components/VideoCalls/livekitRuntime.d.ts +52 -0
- package/lib/typescript/components/VideoCalls/livekitRuntime.d.ts.map +1 -0
- package/lib/typescript/components/VideoCalls/useCallKeep.d.ts +32 -0
- package/lib/typescript/components/VideoCalls/useCallKeep.d.ts.map +1 -0
- package/lib/typescript/components/styled/AudioMessage.d.ts.map +1 -1
- package/lib/typescript/components/styled/RoomListComponents/index.d.ts.map +1 -1
- package/lib/typescript/components/styled/SendInput.d.ts.map +1 -1
- package/lib/typescript/components/styled/StyledComponents.d.ts.map +1 -1
- package/lib/typescript/components/styled/StyledInputComponents/Composing.d.ts.map +1 -1
- package/lib/typescript/components/styled/VideoMessage.d.ts +2 -0
- package/lib/typescript/components/styled/VideoMessage.d.ts.map +1 -1
- package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
- package/lib/typescript/helpers/callLogMessage.d.ts +34 -0
- package/lib/typescript/helpers/callLogMessage.d.ts.map +1 -0
- package/lib/typescript/helpers/callPush.d.ts +23 -0
- package/lib/typescript/helpers/callPush.d.ts.map +1 -0
- package/lib/typescript/helpers/constants/LANGUAGE_OPTIONS.d.ts +14 -0
- package/lib/typescript/helpers/constants/LANGUAGE_OPTIONS.d.ts.map +1 -1
- package/lib/typescript/helpers/createUserNameFromSetUser.d.ts +33 -1
- package/lib/typescript/helpers/createUserNameFromSetUser.d.ts.map +1 -1
- package/lib/typescript/helpers/getDataFromXml.d.ts.map +1 -1
- package/lib/typescript/helpers/incomingCallFromPush.d.ts +14 -0
- package/lib/typescript/helpers/incomingCallFromPush.d.ts.map +1 -0
- package/lib/typescript/helpers/insertMessageWithDelimiter.d.ts.map +1 -1
- package/lib/typescript/helpers/isUnresolvedSenderId.d.ts +2 -0
- package/lib/typescript/helpers/isUnresolvedSenderId.d.ts.map +1 -0
- package/lib/typescript/hooks/useChatSettingState.d.ts +2 -1
- package/lib/typescript/hooks/useChatSettingState.d.ts.map +1 -1
- package/lib/typescript/hooks/useMessageTranslation.d.ts +25 -0
- package/lib/typescript/hooks/useMessageTranslation.d.ts.map +1 -0
- package/lib/typescript/hooks/usePushNotifications.d.ts.map +1 -1
- package/lib/typescript/hooks/useSendMessage.d.ts.map +1 -1
- package/lib/typescript/i18n/strings.d.ts +16 -0
- package/lib/typescript/i18n/strings.d.ts.map +1 -0
- package/lib/typescript/i18n/useT.d.ts +34 -0
- package/lib/typescript/i18n/useT.d.ts.map +1 -0
- package/lib/typescript/main.d.ts +6 -1
- package/lib/typescript/main.d.ts.map +1 -1
- package/lib/typescript/networking/api-requests/auth.api.d.ts +27 -1
- package/lib/typescript/networking/api-requests/auth.api.d.ts.map +1 -1
- package/lib/typescript/networking/api-requests/push.api.d.ts.map +1 -1
- package/lib/typescript/networking/api-requests/rooms.api.d.ts +3 -0
- package/lib/typescript/networking/api-requests/rooms.api.d.ts.map +1 -1
- package/lib/typescript/networking/callTokenStanza.d.ts +14 -0
- package/lib/typescript/networking/callTokenStanza.d.ts.map +1 -0
- package/lib/typescript/networking/outboundQueue.d.ts +1 -0
- package/lib/typescript/networking/outboundQueue.d.ts.map +1 -1
- package/lib/typescript/networking/stanzaHandlers.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/handleStanzas.xmpp.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/sendTextMessage.xmpp.d.ts +10 -0
- package/lib/typescript/networking/xmpp/sendTextMessage.xmpp.d.ts.map +1 -1
- package/lib/typescript/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.d.ts +16 -1
- package/lib/typescript/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.d.ts.map +1 -1
- package/lib/typescript/networking/xmppClient.d.ts +1 -1
- package/lib/typescript/networking/xmppClient.d.ts.map +1 -1
- package/lib/typescript/roomStore/callSlice.d.ts +39 -0
- package/lib/typescript/roomStore/callSlice.d.ts.map +1 -0
- package/lib/typescript/roomStore/chatSettingsSlice.d.ts +10 -1
- package/lib/typescript/roomStore/chatSettingsSlice.d.ts.map +1 -1
- package/lib/typescript/roomStore/index.d.ts +4 -0
- package/lib/typescript/roomStore/index.d.ts.map +1 -1
- package/lib/typescript/roomStore/persistence.d.ts.map +1 -1
- package/lib/typescript/roomStore/roomsSlice.d.ts +6 -1
- package/lib/typescript/roomStore/roomsSlice.d.ts.map +1 -1
- package/lib/typescript/types/models/language.model.d.ts +1 -1
- package/lib/typescript/types/models/language.model.d.ts.map +1 -1
- package/lib/typescript/types/models/message.model.d.ts +7 -0
- package/lib/typescript/types/models/message.model.d.ts.map +1 -1
- package/lib/typescript/types/types.d.ts +135 -1
- package/lib/typescript/types/types.d.ts.map +1 -1
- package/lib/typescript/utils/translateModePolicy.d.ts +20 -0
- package/lib/typescript/utils/translateModePolicy.d.ts.map +1 -0
- package/package.json +20 -4
- package/src/components/MainComponents/ChatHeader.tsx +30 -9
- package/src/components/MainComponents/ChatWrapper.tsx +15 -0
- package/src/components/MainComponents/LanguageSelectorButton.tsx +53 -0
- package/src/components/MainComponents/LanguageSelectorModal.tsx +276 -0
- package/src/components/MainComponents/MediaMessage.tsx +5 -0
- package/src/components/MainComponents/RoomList.tsx +27 -9
- package/src/components/MessageBubble/Message.tsx +109 -17
- package/src/components/MessageBubble/MessageTranslate.tsx +182 -0
- package/src/components/MessageBubble/TranslatedMessageBody.tsx +59 -0
- package/src/components/Modals/FilePreviewModal/FilePreviewModal.tsx +3 -3
- package/src/components/UsersList/UsersList.tsx +3 -1
- package/src/components/VideoCalls/CallButtons.tsx +171 -0
- package/src/components/VideoCalls/CallIcons.tsx +246 -0
- package/src/components/VideoCalls/VideoCallOverlay.tsx +627 -0
- package/src/components/VideoCalls/VideoCallSession.tsx +675 -0
- package/src/components/VideoCalls/livekitRuntime.ts +100 -0
- package/src/components/VideoCalls/useCallKeep.ts +252 -0
- package/src/components/styled/AudioMessage.tsx +97 -37
- package/src/components/styled/RoomListComponents/index.tsx +15 -3
- package/src/components/styled/SendInput.tsx +94 -51
- package/src/components/styled/StyledComponents.ts +9 -6
- package/src/components/styled/StyledInputComponents/Composing.tsx +7 -1
- package/src/components/styled/VideoMessage.tsx +114 -20
- package/src/context/xmppProvider.tsx +14 -1
- package/src/helpers/callLogMessage.ts +174 -0
- package/src/helpers/callPush.ts +90 -0
- package/src/helpers/constants/LANGUAGE_OPTIONS.ts +20 -5
- package/src/helpers/createUserNameFromSetUser.ts +68 -2
- package/src/helpers/getDataFromXml.ts +40 -4
- package/src/helpers/incomingCallFromPush.ts +83 -0
- package/src/helpers/insertMessageWithDelimiter.ts +27 -9
- package/src/helpers/isUnresolvedSenderId.ts +25 -0
- package/src/hooks/useChatSettingState.tsx +4 -0
- package/src/hooks/useMessageTranslation.ts +70 -0
- package/src/hooks/usePushNotifications.ts +15 -3
- package/src/hooks/useSendMessage.tsx +18 -5
- package/src/i18n/strings.ts +1322 -0
- package/src/i18n/useT.ts +56 -0
- package/src/main.ts +18 -1
- package/src/networking/api-requests/auth.api.ts +79 -44
- package/src/networking/api-requests/push.api.ts +39 -8
- package/src/networking/api-requests/rooms.api.ts +109 -1
- package/src/networking/callTokenStanza.ts +636 -0
- package/src/networking/outboundQueue.ts +1 -0
- package/src/networking/stanzaHandlers.ts +74 -15
- package/src/networking/xmpp/handleStanzas.xmpp.ts +52 -11
- package/src/networking/xmpp/sendTextMessage.xmpp.ts +1 -1
- package/src/networking/xmpp/sendTextMessageWithTranslateTag.xmpp.ts +41 -5
- package/src/networking/xmppClient.ts +97 -28
- package/src/roomStore/callSlice.ts +190 -0
- package/src/roomStore/chatSettingsSlice.ts +16 -0
- package/src/roomStore/index.ts +5 -0
- package/src/roomStore/persistence.ts +103 -3
- package/src/roomStore/roomsSlice.ts +149 -4
- package/src/types/models/language.model.ts +17 -1
- package/src/types/models/message.model.ts +9 -0
- package/src/types/types.ts +142 -2
- package/src/utils/translateModePolicy.ts +31 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_roomStore","require","_roomsSlice","_apiClient","_interopRequireDefault","e","__esModule","default","dispatchRoomsFromRestItems","items","length","config","store","getState","chatSettingStore","host","xmppSettings","conference","replace","baseUrl","m","exec","undefined","item","jid","console","warn","name","includes","room","id","_id","title","usersCnt","participants","members","messages","isLoading","roomBg","icon","picture","createdAt","updatedAt","description","type","roomMembers","map","firstName","lastName","xmppUsername","role","ban_status","last_active","dispatch","addRoom","roomData","GET_ROOMS_CACHE_MS","getRoomsInFlight","getRoomsInFlightToken","lastGetRoomsResponse","lastGetRoomsResponseAt","lastGetRoomsResponseToken","getRooms","token","user","now","Date","response","http","get","headers","Authorization","data","error","log","getRoomByName","chatName","Error","postRoom","post","result","postPrivateRoom","username","postReportRoom","category","text","postAddRoomMember","results","deleteRoomMember","roomId","delete","deleteRoom","clearRoomsRestCache"],"sourceRoot":"../../../../src","sources":["networking/api-requests/rooms.api.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_roomStore","require","_roomsSlice","_apiClient","_interopRequireDefault","e","__esModule","default","dispatchUsersSetFromRestItems","items","length","ownXmpp","String","store","getState","chatSettingStore","user","xmppUsername","appId","includes","split","members","item","list","Array","isArray","m","entry","firstName","lastName","_id","role","ban_status","last_active","jid","name","keys","Set","add","forEach","k","Object","dispatch","mergeUsersSet","dispatchRoomsFromRestItems","config","host","xmppSettings","conference","replace","baseUrl","exec","undefined","console","warn","room","id","title","usersCnt","participants","messages","isLoading","roomBg","icon","picture","createdAt","updatedAt","description","type","roomMembers","map","addRoom","roomData","GET_ROOMS_CACHE_MS","getRoomsInFlight","getRoomsInFlightToken","lastGetRoomsResponse","lastGetRoomsResponseAt","lastGetRoomsResponseToken","getRooms","token","now","Date","response","http","get","headers","Authorization","data","error","log","getRoomByName","chatName","Error","postRoom","post","result","postPrivateRoom","username","postReportRoom","category","text","postAddRoomMember","results","deleteRoomMember","roomId","delete","deleteRoom","CALL_CREATE_TIMEOUT_MS","createChatCall","options","kind","timeout","code","test","message","clearRoomsRestCache"],"sourceRoot":"../../../../src","sources":["networking/api-requests/rooms.api.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,531 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.sendCallStateSignal = exports.sendCallInviteSignal = exports.onCallTokenMessage = void 0;
|
|
7
|
+
var _client = require("@xmpp/client");
|
|
8
|
+
var _roomStore = require("../roomStore");
|
|
9
|
+
var _callSlice = require("../roomStore/callSlice");
|
|
10
|
+
var _clientRegistry = require("../utils/clientRegistry");
|
|
11
|
+
var _callLogMessage = require("../helpers/callLogMessage");
|
|
12
|
+
var _devLogger = require("../utils/devLogger");
|
|
13
|
+
// Backend currently doesn't propagate `kind` on the broadcast call-token
|
|
14
|
+
// stanza, both ends default to video unless we tell them otherwise. We
|
|
15
|
+
// work around it by having the dialer send a separate `<data type=
|
|
16
|
+
// "call-invite" kind="..." ... />` direct-chat to the peer right before
|
|
17
|
+
// POST /v1/chats/call/create. The invite arrives over ~50ms direct chat,
|
|
18
|
+
// the call-token relays through the server in ~200-300ms, so the invite
|
|
19
|
+
// almost always lands first. This stash keys the kind hint by callId AND
|
|
20
|
+
// by room bare name (server sometimes drops callId on the token).
|
|
21
|
+
//
|
|
22
|
+
// TTL keeps the map from growing unbounded if a token never arrives.
|
|
23
|
+
const KIND_HINT_TTL_MS = 60_000;
|
|
24
|
+
const kindHints = new Map();
|
|
25
|
+
const stashKindHint = (key, kind) => {
|
|
26
|
+
if (!key) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
// Cheap cleanup pass, drop expired entries before inserting.
|
|
30
|
+
const now = Date.now();
|
|
31
|
+
for (const [k, v] of kindHints) {
|
|
32
|
+
if (v.expiresAt < now) {
|
|
33
|
+
kindHints.delete(k);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
kindHints.set(key, {
|
|
37
|
+
kind,
|
|
38
|
+
expiresAt: now + KIND_HINT_TTL_MS
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
const consumeKindHint = keys => {
|
|
42
|
+
const now = Date.now();
|
|
43
|
+
for (const key of keys) {
|
|
44
|
+
if (!key) {
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
const hit = kindHints.get(key);
|
|
48
|
+
if (hit && hit.expiresAt >= now) {
|
|
49
|
+
kindHints.delete(key);
|
|
50
|
+
return hit.kind;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return null;
|
|
54
|
+
};
|
|
55
|
+
const MAX_CALL_TOKEN_AGE_MS = 5000;
|
|
56
|
+
|
|
57
|
+
// Hermes has no global `atob` and RN ships no Buffer polyfill by default,
|
|
58
|
+
// so the JWT payload is decoded here by hand. Only used on the ~500-byte
|
|
59
|
+
// middle segment of a call token, so a table-driven loop is plenty fast
|
|
60
|
+
// and saves pulling a base64 dependency into the SDK.
|
|
61
|
+
const B64_ALPHABET = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
|
|
62
|
+
const decodeBase64 = input => {
|
|
63
|
+
const clean = input.replace(/[^A-Za-z0-9+/]/g, '');
|
|
64
|
+
let out = '';
|
|
65
|
+
let buffer = 0;
|
|
66
|
+
let bits = 0;
|
|
67
|
+
for (let i = 0; i < clean.length; i++) {
|
|
68
|
+
const idx = B64_ALPHABET.indexOf(clean[i]);
|
|
69
|
+
if (idx === -1) {
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
buffer = buffer << 6 | idx;
|
|
73
|
+
bits += 6;
|
|
74
|
+
if (bits >= 8) {
|
|
75
|
+
bits -= 8;
|
|
76
|
+
out += String.fromCharCode(buffer >> bits & 0xff);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return out;
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
// A JWT payload is UTF-8, and decodeBase64 hands back one char per byte.
|
|
83
|
+
// Re-interpret those bytes as UTF-8 so non-ASCII caller names (accents,
|
|
84
|
+
// Cyrillic) survive instead of turning into mojibake on the ring screen.
|
|
85
|
+
const bytesToUtf8 = binary => {
|
|
86
|
+
try {
|
|
87
|
+
return decodeURIComponent(binary.split('').map(c => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)).join(''));
|
|
88
|
+
} catch {
|
|
89
|
+
return binary;
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
// Pull the JWT payload out of the call-token. We only read non-sensitive
|
|
94
|
+
// claims (`sub` = caller display name; `metadata.callId`, `video.room`),
|
|
95
|
+
// no signature verification, which is fine because the server has already
|
|
96
|
+
// vetted the token and LiveKit will reject anything tampered with on
|
|
97
|
+
// connect. Returns null when the token isn't a parseable JWT.
|
|
98
|
+
const decodeJwtPayload = token => {
|
|
99
|
+
if (!token || typeof token !== 'string') {
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
const parts = token.split('.');
|
|
103
|
+
if (parts.length < 2) {
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
try {
|
|
107
|
+
const b64 = parts[1].replace(/-/g, '+').replace(/_/g, '/');
|
|
108
|
+
const padded = b64 + '='.repeat((4 - b64.length % 4) % 4);
|
|
109
|
+
return JSON.parse(bytesToUtf8(decodeBase64(padded)));
|
|
110
|
+
} catch {
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
const extractCallId = (data, jwtPayload) => {
|
|
115
|
+
const fromAttr = String(data.attrs?.callId || data.attrs?.callid || '').trim();
|
|
116
|
+
if (fromAttr) {
|
|
117
|
+
return fromAttr;
|
|
118
|
+
}
|
|
119
|
+
const metadata = jwtPayload?.metadata;
|
|
120
|
+
if (typeof metadata === 'string') {
|
|
121
|
+
try {
|
|
122
|
+
const parsed = JSON.parse(metadata);
|
|
123
|
+
if (parsed?.callId) {
|
|
124
|
+
return String(parsed.callId);
|
|
125
|
+
}
|
|
126
|
+
} catch {
|
|
127
|
+
// metadata isn't JSON, ignore
|
|
128
|
+
}
|
|
129
|
+
} else if (metadata && typeof metadata === 'object' && metadata.callId) {
|
|
130
|
+
return String(metadata.callId);
|
|
131
|
+
}
|
|
132
|
+
return null;
|
|
133
|
+
};
|
|
134
|
+
const extractCallerDisplayName = jwtPayload => {
|
|
135
|
+
const sub = jwtPayload?.sub;
|
|
136
|
+
if (typeof sub !== 'string') {
|
|
137
|
+
return '';
|
|
138
|
+
}
|
|
139
|
+
const trimmed = sub.trim();
|
|
140
|
+
if (!trimmed) {
|
|
141
|
+
return '';
|
|
142
|
+
}
|
|
143
|
+
// Defense: server occasionally falls back to xmppUsername / userId for
|
|
144
|
+
// `sub` when the caller's profile is incomplete. Those look like raw
|
|
145
|
+
// ID strings (long, no spaces, all alphanumeric with underscores). Skip
|
|
146
|
+
// them so we don't render an opaque ID as the "caller name".
|
|
147
|
+
const looksLikeRawId = /^[0-9a-f_-]{16,}$/i.test(trimmed);
|
|
148
|
+
if (looksLikeRawId) {
|
|
149
|
+
return '';
|
|
150
|
+
}
|
|
151
|
+
return trimmed;
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
// Room name format is "<userA>-<userB>" for 1:1 private chats (post
|
|
155
|
+
// /chats/private convention). Derive the peer xmpp localpart by removing
|
|
156
|
+
// the current user's xmpp localpart from the split.
|
|
157
|
+
const derivePeerXmppUsername = (bareRoomName, selfXmppUsername) => {
|
|
158
|
+
if (!bareRoomName.includes('-')) {
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
161
|
+
const parts = bareRoomName.split('-');
|
|
162
|
+
if (parts.length !== 2) {
|
|
163
|
+
return null;
|
|
164
|
+
}
|
|
165
|
+
const selfLocal = String(selfXmppUsername || '').split('@')[0];
|
|
166
|
+
const peer = parts.find(p => p && p !== selfLocal);
|
|
167
|
+
return peer || null;
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
// Body-text values the server may use to broadcast call signaling into a
|
|
171
|
+
// MUC room (so other clients without `<data>` parsing still receive the
|
|
172
|
+
// event in their MAM archive). These must NEVER reach `onRealtimeMessage`
|
|
173
|
+
// or they render as chat bubbles / new-message notifications saying
|
|
174
|
+
// "Deleted User: call-state".
|
|
175
|
+
const CALL_BODY_KEYWORDS = new Set(['call-token', 'call-state', 'call-ringing', 'call-ended', 'call-declined', 'call-cancelled', 'call-canceled', 'call-timeout', 'call-rejected']);
|
|
176
|
+
const extractNumericTimestamp = value => {
|
|
177
|
+
const source = String(value || '').trim();
|
|
178
|
+
if (!source) {
|
|
179
|
+
return null;
|
|
180
|
+
}
|
|
181
|
+
const direct = Number(source);
|
|
182
|
+
if (Number.isFinite(direct) && direct > 0) {
|
|
183
|
+
return source.length > 13 ? Number(source.slice(0, 13)) : direct;
|
|
184
|
+
}
|
|
185
|
+
const match = source.match(/\d{13,}/)?.[0];
|
|
186
|
+
if (!match) {
|
|
187
|
+
return null;
|
|
188
|
+
}
|
|
189
|
+
return Number(match.slice(0, 13));
|
|
190
|
+
};
|
|
191
|
+
const isFreshCallToken = stanza => {
|
|
192
|
+
const stanzaId = stanza.getChild('stanza-id')?.attrs?.id;
|
|
193
|
+
const createdTs = extractNumericTimestamp(stanzaId);
|
|
194
|
+
if (!createdTs) {
|
|
195
|
+
return false;
|
|
196
|
+
}
|
|
197
|
+
return Math.abs(Date.now() - createdTs) <= MAX_CALL_TOKEN_AGE_MS;
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
// Match a call-token stanza's `room` attribute against the local rooms map.
|
|
201
|
+
// The server sends the bare room name (e.g. "${appId}_<uuid>"), but our
|
|
202
|
+
// store keys rooms by full JID, and IRoom.name actually holds the display
|
|
203
|
+
// title (see createRoomFromApi, the API's `name` is mapped onto the JID
|
|
204
|
+
// localpart). So lookup order is: full JID match -> JID-localpart match ->
|
|
205
|
+
// last-resort display-title match (only useful when the server ever decides
|
|
206
|
+
// to send a fully-qualified JID or a title verbatim).
|
|
207
|
+
const resolveRoomByStanzaRoom = roomAttr => {
|
|
208
|
+
const rooms = _roomStore.store.getState().rooms.rooms || {};
|
|
209
|
+
const roomEntries = Object.values(rooms);
|
|
210
|
+
const byJid = rooms[roomAttr];
|
|
211
|
+
if (byJid) {
|
|
212
|
+
return byJid;
|
|
213
|
+
}
|
|
214
|
+
const byLocalpart = roomEntries.find(room => (room?.jid || '').split('@')[0] === roomAttr);
|
|
215
|
+
if (byLocalpart) {
|
|
216
|
+
return byLocalpart;
|
|
217
|
+
}
|
|
218
|
+
const byName = roomEntries.find(room => room?.name === roomAttr);
|
|
219
|
+
if (byName) {
|
|
220
|
+
return byName;
|
|
221
|
+
}
|
|
222
|
+
return null;
|
|
223
|
+
};
|
|
224
|
+
|
|
225
|
+
// Mirror of handleStanzas.unwrapMucsubMessage so we can look at the real
|
|
226
|
+
// payload that the server pushed into the room, mucsub wraps the inner
|
|
227
|
+
// <message> inside <event><items><item>.
|
|
228
|
+
const unwrapMucsub = stanza => {
|
|
229
|
+
// The web SDK also passes the pubsub#event xmlns here, but the ltx
|
|
230
|
+
// typings bundled with the RN toolchain only declare getChild(name).
|
|
231
|
+
// Matching on the element name alone is enough: the items > item >
|
|
232
|
+
// message chain below fails fast on any other <event>.
|
|
233
|
+
const inner = stanza?.getChild?.('event')?.getChild?.('items')?.getChild?.('item')?.getChild?.('message');
|
|
234
|
+
return inner || stanza;
|
|
235
|
+
};
|
|
236
|
+
const findCallData = stanza => {
|
|
237
|
+
// Direct `<data type="call-*">` on the message. Optional-called for the
|
|
238
|
+
// same reason as onCallTokenMessage's name check: not every stanza that
|
|
239
|
+
// reaches handleStanza is a real ltx Element.
|
|
240
|
+
const direct = stanza?.getChild?.('data');
|
|
241
|
+
if (direct && /^call-/i.test(String(direct.attrs?.type || ''))) {
|
|
242
|
+
return direct;
|
|
243
|
+
}
|
|
244
|
+
return null;
|
|
245
|
+
};
|
|
246
|
+
const getBodyText = stanza => {
|
|
247
|
+
const body = stanza?.getChild?.('body');
|
|
248
|
+
return String(body?.getText?.() || '').trim();
|
|
249
|
+
};
|
|
250
|
+
|
|
251
|
+
// Tear down the active call overlay in response to a call-state stanza.
|
|
252
|
+
// Two shapes arrive here:
|
|
253
|
+
// 1. Client signaling (sendCallStateSignal): has explicit `state`
|
|
254
|
+
// (cancelled / declined / ended). Terminal -> end.
|
|
255
|
+
// 2. Server call-log: NO `state` attr, but carries `callId` /
|
|
256
|
+
// `durationMs` and is broadcast into the room when the LiveKit room
|
|
257
|
+
// empties. For a 1:1 call that means the other side left -> end.
|
|
258
|
+
// `fallbackRoomAttr` is the bare room name derived from the message's
|
|
259
|
+
// `from` JID (server call-logs don't put `room` on the <data>).
|
|
260
|
+
const handleCallStateData = (data, fallbackRoomAttr) => {
|
|
261
|
+
const state = String(data.attrs?.state || data.attrs?.event || '').toLowerCase();
|
|
262
|
+
const stanzaRoomAttr = String(data.attrs?.room || '').trim() || fallbackRoomAttr || '';
|
|
263
|
+
const stanzaCallId = String(data.attrs?.callId || data.attrs?.callid || '').trim();
|
|
264
|
+
const currentCall = _roomStore.store.getState().call;
|
|
265
|
+
if (currentCall.phase === 'idle') {
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
const roomMatches = !!stanzaRoomAttr && (currentCall.roomJid === stanzaRoomAttr || currentCall.roomName === stanzaRoomAttr || currentCall.roomBareName === stanzaRoomAttr || (currentCall.roomJid || '').split('@')[0] === stanzaRoomAttr);
|
|
269
|
+
const callIdMatches = !!stanzaCallId && !!currentCall.callId && currentCall.callId === stanzaCallId;
|
|
270
|
+
const isTerminalState = state === 'ended' || state === 'declined' || state === 'cancelled' || state === 'canceled' || state === 'timeout' || state === 'rejected';
|
|
271
|
+
|
|
272
|
+
// A server call-log (no explicit state, but with callId/duration) is
|
|
273
|
+
// itself a "session concluded" signal.
|
|
274
|
+
const isServerCallLog = !state && (0, _callLogMessage.callStateHasLogData)(data.attrs || {});
|
|
275
|
+
if ((roomMatches || callIdMatches) && (isTerminalState || isServerCallLog)) {
|
|
276
|
+
_roomStore.store.dispatch((0, _callSlice.endCall)());
|
|
277
|
+
}
|
|
278
|
+
};
|
|
279
|
+
const onCallTokenMessage = stanza => {
|
|
280
|
+
// The web SDK calls `stanza.is('message')`. Here we read `.name`
|
|
281
|
+
// directly: handleStanza is also fed plain stanza-shaped objects (test
|
|
282
|
+
// fixtures, and the mucsub inner payloads we synthesize below), and
|
|
283
|
+
// `.is` only exists on real ltx Elements. Name equality is what `.is`
|
|
284
|
+
// checks anyway for a stanza with no explicit xmlns.
|
|
285
|
+
if (stanza?.name !== 'message') {
|
|
286
|
+
return false;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
// 1. Unwrap mucsub wrappers so server broadcasts into the MUC archive
|
|
290
|
+
// are inspected the same way as direct chat stanzas.
|
|
291
|
+
const inner = unwrapMucsub(stanza);
|
|
292
|
+
|
|
293
|
+
// 2. Anything carrying a `<data type="call-*">` element is signaling, no
|
|
294
|
+
// matter the message type (chat / groupchat / headline), swallow it
|
|
295
|
+
// before any chat / history / notification handler touches it.
|
|
296
|
+
const data = findCallData(inner);
|
|
297
|
+
if (data) {
|
|
298
|
+
const dataType = String(data.attrs?.type || '').toLowerCase();
|
|
299
|
+
if (dataType === 'call-state') {
|
|
300
|
+
// Surface the raw call-state attrs so we can confirm what the server
|
|
301
|
+
// sends for durationMs / callerXmppUsername during QA.
|
|
302
|
+
try {
|
|
303
|
+
(0, _devLogger.pushLog)('xmpp', '[call-state] received', {
|
|
304
|
+
callId: data.attrs?.callId,
|
|
305
|
+
durationMs: data.attrs?.durationMs,
|
|
306
|
+
state: data.attrs?.state,
|
|
307
|
+
callerXmppUsername: data.attrs?.callerXmppUsername,
|
|
308
|
+
from: stanza.attrs?.from
|
|
309
|
+
});
|
|
310
|
+
} catch {
|
|
311
|
+
/* noop */
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
// The server call-log doesn't put `room` on the <data>; derive it
|
|
315
|
+
// from the message's `from` MUC JID localpart instead.
|
|
316
|
+
const fromRoom = String(stanza.attrs?.from || '').split('/')[0].split('@')[0].trim();
|
|
317
|
+
handleCallStateData(inner, fromRoom);
|
|
318
|
+
|
|
319
|
+
// Server call-logs (carry callerXmppUsername / durationMs) should
|
|
320
|
+
// flow on to onRealtimeMessage / onMessageHistory where they become
|
|
321
|
+
// a friendly "Outgoing call · 12 sec" entry. Bare client-side
|
|
322
|
+
// signaling frames (state=cancelled/declined, no log data) are
|
|
323
|
+
// swallowed, they exist only to tear the overlay down.
|
|
324
|
+
if ((0, _callLogMessage.callStateHasLogData)(data.attrs || {})) {
|
|
325
|
+
return false;
|
|
326
|
+
}
|
|
327
|
+
return true;
|
|
328
|
+
}
|
|
329
|
+
if (dataType === 'call-invite') {
|
|
330
|
+
const inviteKind = String(data.attrs?.kind || '').toLowerCase();
|
|
331
|
+
const normalized = inviteKind === 'audio' ? 'audio' : 'video';
|
|
332
|
+
const inviteRoom = String(data.attrs?.room || '').trim() || null;
|
|
333
|
+
const inviteCallId = String(data.attrs?.callId || data.attrs?.callid || '').trim() || null;
|
|
334
|
+
|
|
335
|
+
// Stash for the upcoming call-token lookup AND patch any existing
|
|
336
|
+
// call state if the token actually arrived first (rare race).
|
|
337
|
+
stashKindHint(inviteRoom, normalized);
|
|
338
|
+
stashKindHint(inviteCallId, normalized);
|
|
339
|
+
const currentCall = _roomStore.store.getState().call;
|
|
340
|
+
const matchesActive = currentCall.phase !== 'idle' && (!!inviteRoom && (currentCall.roomBareName === inviteRoom || currentCall.roomJid === inviteRoom || (currentCall.roomJid || '').split('@')[0] === inviteRoom) || !!inviteCallId && currentCall.callId === inviteCallId);
|
|
341
|
+
if (matchesActive && currentCall.kind !== normalized) {
|
|
342
|
+
_roomStore.store.dispatch((0, _callSlice.setCallKind)(normalized));
|
|
343
|
+
}
|
|
344
|
+
return true;
|
|
345
|
+
}
|
|
346
|
+
if (dataType === 'call-token') {
|
|
347
|
+
const videoCallsConfig = _roomStore.store.getState().chatSettingStore.config?.videoCalls;
|
|
348
|
+
if (videoCallsConfig?.enabled !== true) {
|
|
349
|
+
return true;
|
|
350
|
+
}
|
|
351
|
+
if (!isFreshCallToken(inner)) {
|
|
352
|
+
return true;
|
|
353
|
+
}
|
|
354
|
+
const token = String(data.attrs?.token || '').trim();
|
|
355
|
+
const stanzaRoom = String(data.attrs?.room || '').trim();
|
|
356
|
+
const stanzaKind = String(data.attrs?.kind || '').toLowerCase();
|
|
357
|
+
const stanzaCallId = String(data.attrs?.callId || data.attrs?.callid || '').trim() || null;
|
|
358
|
+
// Server doesn't propagate `kind` on the broadcast stanza, so first
|
|
359
|
+
// look for a client-side `call-invite` hint we stashed when the
|
|
360
|
+
// dialer signaled us directly. Falls back to whatever the server
|
|
361
|
+
// happens to attach, finally to video (legacy default).
|
|
362
|
+
const hintedKind = consumeKindHint([stanzaRoom, stanzaCallId]);
|
|
363
|
+
const kind = hintedKind || (stanzaKind === 'audio' ? 'audio' : 'video');
|
|
364
|
+
if (!token || !stanzaRoom) {
|
|
365
|
+
return true;
|
|
366
|
+
}
|
|
367
|
+
const resolvedRoom = resolveRoomByStanzaRoom(stanzaRoom);
|
|
368
|
+
const allowedRoomTypes = videoCallsConfig.allowedRoomTypes || ['private'];
|
|
369
|
+
const usersCnt = Number(resolvedRoom?.usersCnt || 0);
|
|
370
|
+
const isOneToOneLikeRoom = usersCnt > 0 && usersCnt <= 2;
|
|
371
|
+
const isPrivateAllowed = allowedRoomTypes.includes('private');
|
|
372
|
+
if (resolvedRoom?.type && resolvedRoom.type !== 'private' && !isOneToOneLikeRoom) {
|
|
373
|
+
return true;
|
|
374
|
+
}
|
|
375
|
+
if (resolvedRoom?.type === 'private' && !isPrivateAllowed) {
|
|
376
|
+
return true;
|
|
377
|
+
}
|
|
378
|
+
if (!resolvedRoom?.type && !stanzaRoom.includes('@') && !isOneToOneLikeRoom) {
|
|
379
|
+
return true;
|
|
380
|
+
}
|
|
381
|
+
const roomJid = resolvedRoom?.jid || (stanzaRoom.includes('@') ? stanzaRoom : '');
|
|
382
|
+
// Prefer the JWT `sub` claim as the display name on the incoming
|
|
383
|
+
// ring screen, the server populates it with the caller's full name
|
|
384
|
+
// ("Roman Test") which is far more useful than the resolved room
|
|
385
|
+
// title (which for stale / deleted-peer chats reads "deleted").
|
|
386
|
+
const jwtPayload = decodeJwtPayload(token);
|
|
387
|
+
const callerName = extractCallerDisplayName(jwtPayload);
|
|
388
|
+
const resolvedTitle = String(resolvedRoom?.name || '').trim();
|
|
389
|
+
const titleLooksBad = !resolvedTitle || ['deleted', 'deleted user', 'unknown', 'null'].includes(resolvedTitle.toLowerCase());
|
|
390
|
+
const incomingRoomName = (callerName && titleLooksBad ? callerName : resolvedTitle) || callerName || stanzaRoom;
|
|
391
|
+
if (!roomJid) {
|
|
392
|
+
return true;
|
|
393
|
+
}
|
|
394
|
+
const callId = extractCallId(data, jwtPayload);
|
|
395
|
+
const selfXmpp = _roomStore.store.getState().chatSettingStore.user?.xmppUsername || '';
|
|
396
|
+
const peerXmppUsername = derivePeerXmppUsername(stanzaRoom, selfXmpp);
|
|
397
|
+
const callState = _roomStore.store.getState().call;
|
|
398
|
+
const isOutgoingRoomMatch = callState.direction === 'outgoing' && (callState.roomJid === roomJid || callState.roomName === incomingRoomName || callState.roomBareName === stanzaRoom);
|
|
399
|
+
if (isOutgoingRoomMatch) {
|
|
400
|
+
_roomStore.store.dispatch((0, _callSlice.setOutgoingCallToken)({
|
|
401
|
+
roomJid,
|
|
402
|
+
token,
|
|
403
|
+
callId: callId || null
|
|
404
|
+
}));
|
|
405
|
+
return true;
|
|
406
|
+
}
|
|
407
|
+
_roomStore.store.dispatch((0, _callSlice.setIncomingCallToken)({
|
|
408
|
+
roomJid,
|
|
409
|
+
roomName: incomingRoomName,
|
|
410
|
+
roomBareName: stanzaRoom,
|
|
411
|
+
token,
|
|
412
|
+
kind,
|
|
413
|
+
callId: callId || null,
|
|
414
|
+
peerXmppUsername: peerXmppUsername || null
|
|
415
|
+
}));
|
|
416
|
+
return true;
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
// Unknown `call-*` signaling, swallow so it never lands in chat.
|
|
420
|
+
return true;
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
// 3. Backstop for legacy servers / clients that broadcast the signal as
|
|
424
|
+
// plain body text (no `<data>` element). The body literally reads
|
|
425
|
+
// "call-state" / "call-token" / etc. Drop these so the chat list
|
|
426
|
+
// and the notification toast never display them.
|
|
427
|
+
const bodyText = getBodyText(inner).toLowerCase();
|
|
428
|
+
if (bodyText && CALL_BODY_KEYWORDS.has(bodyText)) {
|
|
429
|
+
if (bodyText.startsWith('call-')) {
|
|
430
|
+
const stateFromBody = bodyText.replace(/^call-/, '');
|
|
431
|
+
// Treat the body-only variant as a state notification; tear down
|
|
432
|
+
// active call on terminal transitions, ignore otherwise.
|
|
433
|
+
handleCallStateData({
|
|
434
|
+
attrs: {
|
|
435
|
+
state: stateFromBody,
|
|
436
|
+
room: ''
|
|
437
|
+
}
|
|
438
|
+
});
|
|
439
|
+
}
|
|
440
|
+
return true;
|
|
441
|
+
}
|
|
442
|
+
return false;
|
|
443
|
+
};
|
|
444
|
+
|
|
445
|
+
// Outbound counterpart of the swallow logic above. When the local user
|
|
446
|
+
// hangs up, cancels their own dial, or declines an incoming ring we send
|
|
447
|
+
// a `call-state` stanza to the peer so their UI dismisses instead of
|
|
448
|
+
// dangling on a phantom "incoming call" or "calling..." screen.
|
|
449
|
+
//
|
|
450
|
+
// We address the peer directly (`<message type="chat" to="<peer>@<host>">`),
|
|
451
|
+
// going through the room JID isn't reliable because the callee may not
|
|
452
|
+
// have joined the MUC yet during the ring window. The receiving client's
|
|
453
|
+
// onCallTokenMessage handler picks up the same `<data type="call-state">`
|
|
454
|
+
// it would receive from the server and dispatches `endCall()`.
|
|
455
|
+
exports.onCallTokenMessage = onCallTokenMessage;
|
|
456
|
+
const sendCallStateSignal = (state, options) => {
|
|
457
|
+
const xmppClient = (0, _clientRegistry.getGlobalXmppClient)();
|
|
458
|
+
if (!xmppClient) {
|
|
459
|
+
return;
|
|
460
|
+
}
|
|
461
|
+
const callState = _roomStore.store.getState().call;
|
|
462
|
+
const peer = (options?.peerXmppUsername || callState.peerXmppUsername || '').trim();
|
|
463
|
+
if (!peer) {
|
|
464
|
+
return;
|
|
465
|
+
}
|
|
466
|
+
const host = xmppClient.host || '';
|
|
467
|
+
if (!host) {
|
|
468
|
+
return;
|
|
469
|
+
}
|
|
470
|
+
const callId = options?.callId || callState.callId || '';
|
|
471
|
+
const room = options?.roomBareName || callState.roomBareName || (callState.roomJid || '').split('@')[0] || '';
|
|
472
|
+
try {
|
|
473
|
+
const stanza = (0, _client.xml)('message', {
|
|
474
|
+
to: peer.includes('@') ? peer : `${peer}@${host}`,
|
|
475
|
+
type: 'chat',
|
|
476
|
+
id: `call-state-${Date.now()}`
|
|
477
|
+
}, (0, _client.xml)('data', {
|
|
478
|
+
type: 'call-state',
|
|
479
|
+
state,
|
|
480
|
+
callId,
|
|
481
|
+
room
|
|
482
|
+
}));
|
|
483
|
+
xmppClient.client?.send?.(stanza);
|
|
484
|
+
} catch {
|
|
485
|
+
// Swallow, signaling is best-effort. The LiveKit room disconnect
|
|
486
|
+
// also serves as an implicit "call ended" once both sides are in.
|
|
487
|
+
}
|
|
488
|
+
};
|
|
489
|
+
|
|
490
|
+
// Tell the peer what KIND of call we're starting before the server-side
|
|
491
|
+
// call-token stanza reaches them, the backend currently drops the kind
|
|
492
|
+
// attribute on its broadcast, so without this the callee always lands on
|
|
493
|
+
// the video UI even when the dialer chose audio.
|
|
494
|
+
//
|
|
495
|
+
// Sent right before POST /v1/chats/call/create, addressed directly to
|
|
496
|
+
// the peer's bare JID. Receiver swallows it via onCallTokenMessage and
|
|
497
|
+
// stashes the kind hint for the upcoming call-token lookup.
|
|
498
|
+
exports.sendCallStateSignal = sendCallStateSignal;
|
|
499
|
+
const sendCallInviteSignal = (kind, options) => {
|
|
500
|
+
const xmppClient = (0, _clientRegistry.getGlobalXmppClient)();
|
|
501
|
+
if (!xmppClient) {
|
|
502
|
+
return;
|
|
503
|
+
}
|
|
504
|
+
const peer = String(options.peerXmppUsername || '').trim();
|
|
505
|
+
if (!peer) {
|
|
506
|
+
return;
|
|
507
|
+
}
|
|
508
|
+
const host = xmppClient.host || '';
|
|
509
|
+
if (!host) {
|
|
510
|
+
return;
|
|
511
|
+
}
|
|
512
|
+
try {
|
|
513
|
+
const stanza = (0, _client.xml)('message', {
|
|
514
|
+
to: peer.includes('@') ? peer : `${peer}@${host}`,
|
|
515
|
+
type: 'chat',
|
|
516
|
+
id: `call-invite-${Date.now()}`
|
|
517
|
+
}, (0, _client.xml)('data', {
|
|
518
|
+
type: 'call-invite',
|
|
519
|
+
kind,
|
|
520
|
+
room: options.roomBareName || '',
|
|
521
|
+
callId: options.callId || ''
|
|
522
|
+
}));
|
|
523
|
+
xmppClient.client?.send?.(stanza);
|
|
524
|
+
} catch {
|
|
525
|
+
// Best-effort: missing the hint just means the callee starts on the
|
|
526
|
+
// video UI and the dialer's audio publish auto-corrects once both
|
|
527
|
+
// join LiveKit (UI flicker, not a functional failure).
|
|
528
|
+
}
|
|
529
|
+
};
|
|
530
|
+
exports.sendCallInviteSignal = sendCallInviteSignal;
|
|
531
|
+
//# sourceMappingURL=callTokenStanza.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_client","require","_roomStore","_callSlice","_clientRegistry","_callLogMessage","_devLogger","KIND_HINT_TTL_MS","kindHints","Map","stashKindHint","key","kind","now","Date","k","v","expiresAt","delete","set","consumeKindHint","keys","hit","get","MAX_CALL_TOKEN_AGE_MS","B64_ALPHABET","decodeBase64","input","clean","replace","out","buffer","bits","i","length","idx","indexOf","String","fromCharCode","bytesToUtf8","binary","decodeURIComponent","split","map","c","charCodeAt","toString","slice","join","decodeJwtPayload","token","parts","b64","padded","repeat","JSON","parse","extractCallId","data","jwtPayload","fromAttr","attrs","callId","callid","trim","metadata","parsed","extractCallerDisplayName","sub","trimmed","looksLikeRawId","test","derivePeerXmppUsername","bareRoomName","selfXmppUsername","includes","selfLocal","peer","find","p","CALL_BODY_KEYWORDS","Set","extractNumericTimestamp","value","source","direct","Number","isFinite","match","isFreshCallToken","stanza","stanzaId","getChild","id","createdTs","Math","abs","resolveRoomByStanzaRoom","roomAttr","rooms","store","getState","roomEntries","Object","values","byJid","byLocalpart","room","jid","byName","name","unwrapMucsub","inner","findCallData","type","getBodyText","body","getText","handleCallStateData","fallbackRoomAttr","state","event","toLowerCase","stanzaRoomAttr","stanzaCallId","currentCall","call","phase","roomMatches","roomJid","roomName","roomBareName","callIdMatches","isTerminalState","isServerCallLog","callStateHasLogData","dispatch","endCall","onCallTokenMessage","dataType","pushLog","durationMs","callerXmppUsername","from","fromRoom","inviteKind","normalized","inviteRoom","inviteCallId","matchesActive","setCallKind","videoCallsConfig","chatSettingStore","config","videoCalls","enabled","stanzaRoom","stanzaKind","hintedKind","resolvedRoom","allowedRoomTypes","usersCnt","isOneToOneLikeRoom","isPrivateAllowed","callerName","resolvedTitle","titleLooksBad","incomingRoomName","selfXmpp","user","xmppUsername","peerXmppUsername","callState","isOutgoingRoomMatch","direction","setOutgoingCallToken","setIncomingCallToken","bodyText","has","startsWith","stateFromBody","exports","sendCallStateSignal","options","xmppClient","getGlobalXmppClient","host","xml","to","client","send","sendCallInviteSignal"],"sourceRoot":"../../../src","sources":["networking/callTokenStanza.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["OUTBOUND_QUEUE_TTL_MS","exports","queue","enqueueOutboundSend","item","idx","findIndex","q","optimisticId","push","flushOutboundSends","client","now","length","pending","enqueuedAt","ttlMs","send","err","console","warn","removeOutboundSend","splice","clearOutboundSends","outboundQueueLength"],"sourceRoot":"../../../src","sources":["networking/outboundQueue.ts"],"mappings":";;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;
|
|
1
|
+
{"version":3,"names":["OUTBOUND_QUEUE_TTL_MS","exports","queue","enqueueOutboundSend","item","idx","findIndex","q","optimisticId","push","flushOutboundSends","client","now","length","pending","enqueuedAt","ttlMs","send","err","console","warn","removeOutboundSend","splice","clearOutboundSends","outboundQueueLength"],"sourceRoot":"../../../src","sources":["networking/outboundQueue.ts"],"mappings":";;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AA0BA;AACA;AACO,MAAMA,qBAAqB,GAAAC,OAAA,CAAAD,qBAAA,GAAG,MAAM;AAE3C,IAAIE,KAAmB,GAAG,EAAE;;AAE5B;AACA;AACA;AACA;AACO,SAASC,mBAAmBA,CAACC,IAAgB,EAAQ;EAC1D,MAAMC,GAAG,GAAGH,KAAK,CAACI,SAAS,CAAEC,CAAC,IAAKA,CAAC,CAACC,YAAY,KAAKJ,IAAI,CAACI,YAAY,CAAC;EACxE,IAAIH,GAAG,IAAI,CAAC,EAAE;IACZ;IACA;IACAH,KAAK,CAACG,GAAG,CAAC,GAAGD,IAAI;IACjB;EACF;EACAF,KAAK,CAACO,IAAI,CAACL,IAAI,CAAC;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACO,SAASM,kBAAkBA,CAChCC,MAA2B,EAC3BC,GAAW,EACL;EACN,IAAIV,KAAK,CAACW,MAAM,KAAK,CAAC,EAAE;IAAC;EAAO;EAChC,MAAMC,OAAO,GAAGZ,KAAK;EACrBA,KAAK,GAAG,EAAE;EACV,KAAK,MAAME,IAAI,IAAIU,OAAO,EAAE;IAC1B,IAAIF,GAAG,GAAGR,IAAI,CAACW,UAAU,IAAIX,IAAI,CAACY,KAAK,IAAIhB,qBAAqB,CAAC,EAAE;MACjE;MACA;IACF;IACA,IAAI;MACFI,IAAI,CAACa,IAAI,CAACN,MAAM,CAAC;IACnB,CAAC,CAAC,OAAOO,GAAG,EAAE;MACZ;MACAC,OAAO,CAACC,IAAI,CAAC,mCAAmC,EAAEhB,IAAI,CAACI,YAAY,EAAEU,GAAG,CAAC;IAC3E;EACF;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,kBAAkBA,CAACb,YAAoB,EAAQ;EAC7D,IAAI,CAACA,YAAY,EAAE;IAAC;EAAO;EAC3B,MAAMH,GAAG,GAAGH,KAAK,CAACI,SAAS,CAAEC,CAAC,IAAKA,CAAC,CAACC,YAAY,KAAKA,YAAY,CAAC;EACnE,IAAIH,GAAG,IAAI,CAAC,EAAE;IAACH,KAAK,CAACoB,MAAM,CAACjB,GAAG,EAAE,CAAC,CAAC;EAAC;AACtC;;AAEA;AACO,SAASkB,kBAAkBA,CAAA,EAAS;EACzCrB,KAAK,GAAG,EAAE;AACZ;;AAEA;AACO,SAASsB,mBAAmBA,CAAA,EAAW;EAC5C,OAAOtB,KAAK,CAACW,MAAM;AACrB","ignoreList":[]}
|