@stream-io/video-react-native-sdk 2.0.0-beta.0 → 2.0.0-beta.2
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 +95 -0
- package/README.md +15 -0
- package/android/build.gradle +7 -1
- package/android/src/main/java/com/streamvideo/reactnative/audio/AudioDeviceManager.kt +110 -58
- package/android/src/main/java/com/streamvideo/reactnative/audio/CommunicationModeKeepAlive.kt +247 -0
- package/android/src/main/java/com/streamvideo/reactnative/callmanager/StreamInCallManagerModule.kt +16 -5
- package/dist/commonjs/components/Call/CallContent/CallContent.js +1 -1
- package/dist/commonjs/components/Call/CallContent/CallContent.js.map +1 -1
- package/dist/commonjs/components/Call/CallContent/RTCViewPipIOS.js +78 -7
- package/dist/commonjs/components/Call/CallContent/RTCViewPipIOS.js.map +1 -1
- package/dist/commonjs/components/Call/CallContent/RTCViewPipNative.js +3 -0
- package/dist/commonjs/components/Call/CallContent/RTCViewPipNative.js.map +1 -1
- package/dist/commonjs/components/Call/Lobby/JoinCallButton.js +3 -2
- package/dist/commonjs/components/Call/Lobby/JoinCallButton.js.map +1 -1
- package/dist/commonjs/components/Call/Lobby/Lobby.js +4 -3
- package/dist/commonjs/components/Call/Lobby/Lobby.js.map +1 -1
- package/dist/commonjs/components/Call/Lobby/LobbyFooter.js +10 -10
- package/dist/commonjs/components/Call/Lobby/LobbyFooter.js.map +1 -1
- package/dist/commonjs/components/Call/RingingCallContent/CallLeftIndicator.js +3 -3
- package/dist/commonjs/components/Call/RingingCallContent/CallLeftIndicator.js.map +1 -1
- package/dist/commonjs/components/Call/RingingCallContent/CallPreparingIndicator.js +3 -3
- package/dist/commonjs/components/Call/RingingCallContent/CallPreparingIndicator.js.map +1 -1
- package/dist/commonjs/components/Call/RingingCallContent/IncomingCall.js +3 -2
- package/dist/commonjs/components/Call/RingingCallContent/IncomingCall.js.map +1 -1
- package/dist/commonjs/components/Call/RingingCallContent/OutgoingCall.js +7 -14
- package/dist/commonjs/components/Call/RingingCallContent/OutgoingCall.js.map +1 -1
- package/dist/commonjs/components/Livestream/LivestreamControls/HostStartStreamButton.js +3 -2
- package/dist/commonjs/components/Livestream/LivestreamControls/HostStartStreamButton.js.map +1 -1
- package/dist/commonjs/components/Livestream/LivestreamPlayer/LivestreamEnded.js +4 -3
- package/dist/commonjs/components/Livestream/LivestreamPlayer/LivestreamEnded.js.map +1 -1
- package/dist/commonjs/components/Livestream/LivestreamTopView/LiveIndicator.js +3 -3
- package/dist/commonjs/components/Livestream/LivestreamTopView/LiveIndicator.js.map +1 -1
- package/dist/commonjs/components/Livestream/ViewerLivestream/ViewerLobby.js +9 -4
- package/dist/commonjs/components/Livestream/ViewerLivestream/ViewerLobby.js.map +1 -1
- package/dist/commonjs/components/Participant/ParticipantView/ParticipantLabel.js +4 -3
- package/dist/commonjs/components/Participant/ParticipantView/ParticipantLabel.js.map +1 -1
- package/dist/commonjs/components/Participant/ParticipantView/VideoRenderer/TrackSubscriber.js +27 -4
- package/dist/commonjs/components/Participant/ParticipantView/VideoRenderer/TrackSubscriber.js.map +1 -1
- package/dist/commonjs/components/utility/ScreenShareOverlay.js +4 -3
- package/dist/commonjs/components/utility/ScreenShareOverlay.js.map +1 -1
- package/dist/commonjs/i18n/Streami18n.js +77 -0
- package/dist/commonjs/i18n/Streami18n.js.map +1 -0
- package/dist/commonjs/i18n/TranslationContext.js +52 -0
- package/dist/commonjs/i18n/TranslationContext.js.map +1 -0
- package/dist/commonjs/i18n/index.js +85 -0
- package/dist/commonjs/i18n/index.js.map +1 -0
- package/dist/commonjs/i18n/keys.js +2 -0
- package/dist/commonjs/i18n/keys.js.map +1 -0
- package/dist/commonjs/i18n/runtimeDefaults.js +24 -0
- package/dist/commonjs/i18n/runtimeDefaults.js.map +1 -0
- package/dist/commonjs/i18n/types.js +6 -0
- package/dist/commonjs/i18n/types.js.map +1 -0
- package/dist/commonjs/i18n/useStreami18n.js +61 -0
- package/dist/commonjs/i18n/useStreami18n.js.map +1 -0
- package/dist/commonjs/index.js +18 -5
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/modules/encryption/EncryptionManager.js +305 -0
- package/dist/commonjs/modules/encryption/EncryptionManager.js.map +1 -0
- package/dist/commonjs/modules/encryption/eventMapping.js +143 -0
- package/dist/commonjs/modules/encryption/eventMapping.js.map +1 -0
- package/dist/commonjs/modules/encryption/index.js +13 -0
- package/dist/commonjs/modules/encryption/index.js.map +1 -0
- package/dist/commonjs/modules/encryption/parity.js +6 -0
- package/dist/commonjs/modules/encryption/parity.js.map +1 -0
- package/dist/commonjs/providers/NoiseCancellation/NoiseCancellationProvider.js +6 -2
- package/dist/commonjs/providers/NoiseCancellation/NoiseCancellationProvider.js.map +1 -1
- package/dist/commonjs/providers/StreamVideo.js +28 -12
- package/dist/commonjs/providers/StreamVideo.js.map +1 -1
- package/dist/commonjs/utils/StreamVideoRN/index.js +46 -0
- package/dist/commonjs/utils/StreamVideoRN/index.js.map +1 -1
- package/dist/commonjs/utils/internal/callingx/callingx.js +29 -4
- package/dist/commonjs/utils/internal/callingx/callingx.js.map +1 -1
- package/dist/commonjs/utils/internal/iosPipTrack.js +41 -0
- package/dist/commonjs/utils/internal/iosPipTrack.js.map +1 -0
- package/dist/commonjs/utils/internal/registerSDKGlobals.js +6 -0
- package/dist/commonjs/utils/internal/registerSDKGlobals.js.map +1 -1
- package/dist/commonjs/utils/internal/ringingCallLifecycle.js +142 -0
- package/dist/commonjs/utils/internal/ringingCallLifecycle.js.map +1 -0
- package/dist/commonjs/utils/push/internal/utils.js +4 -0
- package/dist/commonjs/utils/push/internal/utils.js.map +1 -1
- package/dist/commonjs/version.js +1 -1
- package/dist/module/components/Call/CallContent/CallContent.js +1 -1
- package/dist/module/components/Call/CallContent/CallContent.js.map +1 -1
- package/dist/module/components/Call/CallContent/RTCViewPipIOS.js +80 -9
- package/dist/module/components/Call/CallContent/RTCViewPipIOS.js.map +1 -1
- package/dist/module/components/Call/CallContent/RTCViewPipNative.js +3 -0
- package/dist/module/components/Call/CallContent/RTCViewPipNative.js.map +1 -1
- package/dist/module/components/Call/Lobby/JoinCallButton.js +3 -2
- package/dist/module/components/Call/Lobby/JoinCallButton.js.map +1 -1
- package/dist/module/components/Call/Lobby/Lobby.js +4 -3
- package/dist/module/components/Call/Lobby/Lobby.js.map +1 -1
- package/dist/module/components/Call/Lobby/LobbyFooter.js +10 -10
- package/dist/module/components/Call/Lobby/LobbyFooter.js.map +1 -1
- package/dist/module/components/Call/RingingCallContent/CallLeftIndicator.js +2 -2
- package/dist/module/components/Call/RingingCallContent/CallLeftIndicator.js.map +1 -1
- package/dist/module/components/Call/RingingCallContent/CallPreparingIndicator.js +2 -2
- package/dist/module/components/Call/RingingCallContent/CallPreparingIndicator.js.map +1 -1
- package/dist/module/components/Call/RingingCallContent/IncomingCall.js +3 -2
- package/dist/module/components/Call/RingingCallContent/IncomingCall.js.map +1 -1
- package/dist/module/components/Call/RingingCallContent/OutgoingCall.js +7 -14
- package/dist/module/components/Call/RingingCallContent/OutgoingCall.js.map +1 -1
- package/dist/module/components/Livestream/LivestreamControls/HostStartStreamButton.js +3 -2
- package/dist/module/components/Livestream/LivestreamControls/HostStartStreamButton.js.map +1 -1
- package/dist/module/components/Livestream/LivestreamPlayer/LivestreamEnded.js +4 -3
- package/dist/module/components/Livestream/LivestreamPlayer/LivestreamEnded.js.map +1 -1
- package/dist/module/components/Livestream/LivestreamTopView/LiveIndicator.js +2 -2
- package/dist/module/components/Livestream/LivestreamTopView/LiveIndicator.js.map +1 -1
- package/dist/module/components/Livestream/ViewerLivestream/ViewerLobby.js +9 -4
- package/dist/module/components/Livestream/ViewerLivestream/ViewerLobby.js.map +1 -1
- package/dist/module/components/Participant/ParticipantView/ParticipantLabel.js +4 -3
- package/dist/module/components/Participant/ParticipantView/ParticipantLabel.js.map +1 -1
- package/dist/module/components/Participant/ParticipantView/VideoRenderer/TrackSubscriber.js +28 -5
- package/dist/module/components/Participant/ParticipantView/VideoRenderer/TrackSubscriber.js.map +1 -1
- package/dist/module/components/utility/ScreenShareOverlay.js +4 -3
- package/dist/module/components/utility/ScreenShareOverlay.js.map +1 -1
- package/dist/module/i18n/Streami18n.js +73 -0
- package/dist/module/i18n/Streami18n.js.map +1 -0
- package/dist/module/i18n/TranslationContext.js +48 -0
- package/dist/module/i18n/TranslationContext.js.map +1 -0
- package/dist/module/i18n/index.js +20 -0
- package/dist/module/i18n/index.js.map +1 -0
- package/dist/module/i18n/keys.js +2 -0
- package/dist/module/i18n/keys.js.map +1 -0
- package/dist/module/i18n/runtimeDefaults.js +20 -0
- package/dist/module/i18n/runtimeDefaults.js.map +1 -0
- package/dist/module/i18n/types.js +4 -0
- package/dist/module/i18n/types.js.map +1 -0
- package/dist/module/i18n/useStreami18n.js +56 -0
- package/dist/module/i18n/useStreami18n.js.map +1 -0
- package/dist/module/index.js +6 -1
- package/dist/module/index.js.map +1 -1
- package/dist/module/modules/encryption/EncryptionManager.js +301 -0
- package/dist/module/modules/encryption/EncryptionManager.js.map +1 -0
- package/dist/module/modules/encryption/eventMapping.js +135 -0
- package/dist/module/modules/encryption/eventMapping.js.map +1 -0
- package/dist/module/modules/encryption/index.js +4 -0
- package/dist/module/modules/encryption/index.js.map +1 -0
- package/dist/module/modules/encryption/parity.js +4 -0
- package/dist/module/modules/encryption/parity.js.map +1 -0
- package/dist/module/providers/NoiseCancellation/NoiseCancellationProvider.js +6 -2
- package/dist/module/providers/NoiseCancellation/NoiseCancellationProvider.js.map +1 -1
- package/dist/module/providers/StreamVideo.js +29 -14
- package/dist/module/providers/StreamVideo.js.map +1 -1
- package/dist/module/utils/StreamVideoRN/index.js +46 -0
- package/dist/module/utils/StreamVideoRN/index.js.map +1 -1
- package/dist/module/utils/internal/callingx/callingx.js +29 -4
- package/dist/module/utils/internal/callingx/callingx.js.map +1 -1
- package/dist/module/utils/internal/iosPipTrack.js +35 -0
- package/dist/module/utils/internal/iosPipTrack.js.map +1 -0
- package/dist/module/utils/internal/registerSDKGlobals.js +6 -0
- package/dist/module/utils/internal/registerSDKGlobals.js.map +1 -1
- package/dist/module/utils/internal/ringingCallLifecycle.js +134 -0
- package/dist/module/utils/internal/ringingCallLifecycle.js.map +1 -0
- package/dist/module/utils/push/internal/utils.js +4 -0
- package/dist/module/utils/push/internal/utils.js.map +1 -1
- package/dist/module/version.js +1 -1
- package/dist/typescript/components/Call/CallContent/RTCViewPipIOS.d.ts.map +1 -1
- package/dist/typescript/components/Call/CallContent/RTCViewPipNative.d.ts +12 -0
- package/dist/typescript/components/Call/CallContent/RTCViewPipNative.d.ts.map +1 -1
- package/dist/typescript/components/Call/Lobby/JoinCallButton.d.ts.map +1 -1
- package/dist/typescript/components/Call/Lobby/Lobby.d.ts.map +1 -1
- package/dist/typescript/components/Call/Lobby/LobbyFooter.d.ts.map +1 -1
- package/dist/typescript/components/Call/RingingCallContent/OutgoingCall.d.ts.map +1 -1
- package/dist/typescript/components/Livestream/LivestreamControls/HostStartStreamButton.d.ts.map +1 -1
- package/dist/typescript/components/Livestream/LivestreamPlayer/LivestreamEnded.d.ts.map +1 -1
- package/dist/typescript/components/Livestream/ViewerLivestream/ViewerLobby.d.ts.map +1 -1
- package/dist/typescript/components/Participant/ParticipantView/ParticipantLabel.d.ts.map +1 -1
- package/dist/typescript/components/Participant/ParticipantView/VideoRenderer/TrackSubscriber.d.ts +11 -0
- package/dist/typescript/components/Participant/ParticipantView/VideoRenderer/TrackSubscriber.d.ts.map +1 -1
- package/dist/typescript/components/utility/ScreenShareOverlay.d.ts.map +1 -1
- package/dist/typescript/i18n/Streami18n.d.ts +61 -0
- package/dist/typescript/i18n/Streami18n.d.ts.map +1 -0
- package/dist/typescript/i18n/TranslationContext.d.ts +31 -0
- package/dist/typescript/i18n/TranslationContext.d.ts.map +1 -0
- package/dist/typescript/i18n/index.d.ts +17 -0
- package/dist/typescript/i18n/index.d.ts.map +1 -0
- package/dist/typescript/i18n/keys.d.ts +38 -0
- package/dist/typescript/i18n/keys.d.ts.map +1 -0
- package/dist/typescript/i18n/runtimeDefaults.d.ts +18 -0
- package/dist/typescript/i18n/runtimeDefaults.d.ts.map +1 -0
- package/dist/typescript/i18n/types.d.ts +46 -0
- package/dist/typescript/i18n/types.d.ts.map +1 -0
- package/dist/typescript/i18n/useStreami18n.d.ts +20 -0
- package/dist/typescript/i18n/useStreami18n.d.ts.map +1 -0
- package/dist/typescript/index.d.ts +2 -1
- package/dist/typescript/index.d.ts.map +1 -1
- package/dist/typescript/modules/encryption/EncryptionManager.d.ts +190 -0
- package/dist/typescript/modules/encryption/EncryptionManager.d.ts.map +1 -0
- package/dist/typescript/modules/encryption/eventMapping.d.ts +38 -0
- package/dist/typescript/modules/encryption/eventMapping.d.ts.map +1 -0
- package/dist/typescript/modules/encryption/index.d.ts +2 -0
- package/dist/typescript/modules/encryption/index.d.ts.map +1 -0
- package/dist/typescript/modules/encryption/parity.d.ts +55 -0
- package/dist/typescript/modules/encryption/parity.d.ts.map +1 -0
- package/dist/typescript/providers/NoiseCancellation/NoiseCancellationProvider.d.ts.map +1 -1
- package/dist/typescript/providers/StreamVideo.d.ts +17 -4
- package/dist/typescript/providers/StreamVideo.d.ts.map +1 -1
- package/dist/typescript/utils/StreamVideoRN/index.d.ts +33 -1
- package/dist/typescript/utils/StreamVideoRN/index.d.ts.map +1 -1
- package/dist/typescript/utils/StreamVideoRN/types.d.ts +67 -0
- package/dist/typescript/utils/StreamVideoRN/types.d.ts.map +1 -1
- package/dist/typescript/utils/internal/callingx/callingx.d.ts +1 -1
- package/dist/typescript/utils/internal/callingx/callingx.d.ts.map +1 -1
- package/dist/typescript/utils/internal/iosPipTrack.d.ts +9 -0
- package/dist/typescript/utils/internal/iosPipTrack.d.ts.map +1 -0
- package/dist/typescript/utils/internal/registerSDKGlobals.d.ts.map +1 -1
- package/dist/typescript/utils/internal/ringingCallLifecycle.d.ts +27 -0
- package/dist/typescript/utils/internal/ringingCallLifecycle.d.ts.map +1 -0
- package/dist/typescript/utils/push/internal/utils.d.ts.map +1 -1
- package/dist/typescript/version.d.ts +1 -1
- package/ios/RTCViewPip.swift +33 -8
- package/ios/RTCViewPipManager.mm +1 -0
- package/package.json +17 -13
- package/src/components/Call/CallContent/CallContent.tsx +1 -1
- package/src/components/Call/CallContent/RTCViewPipIOS.tsx +92 -10
- package/src/components/Call/CallContent/RTCViewPipNative.tsx +13 -0
- package/src/components/Call/Lobby/JoinCallButton.tsx +5 -2
- package/src/components/Call/Lobby/Lobby.tsx +6 -3
- package/src/components/Call/Lobby/LobbyFooter.tsx +15 -10
- package/src/components/Call/RingingCallContent/CallLeftIndicator.tsx +2 -2
- package/src/components/Call/RingingCallContent/CallPreparingIndicator.tsx +2 -2
- package/src/components/Call/RingingCallContent/IncomingCall.tsx +2 -2
- package/src/components/Call/RingingCallContent/OutgoingCall.tsx +7 -14
- package/src/components/Livestream/LivestreamControls/HostStartStreamButton.tsx +5 -8
- package/src/components/Livestream/LivestreamPlayer/LivestreamEnded.tsx +11 -3
- package/src/components/Livestream/LivestreamTopView/LiveIndicator.tsx +2 -2
- package/src/components/Livestream/ViewerLivestream/ViewerLobby.tsx +23 -10
- package/src/components/Participant/ParticipantView/ParticipantLabel.tsx +15 -6
- package/src/components/Participant/ParticipantView/VideoRenderer/TrackSubscriber.tsx +58 -5
- package/src/components/utility/ScreenShareOverlay.tsx +7 -3
- package/src/i18n/Streami18n.ts +71 -0
- package/src/i18n/TranslationContext.tsx +55 -0
- package/src/i18n/index.ts +22 -0
- package/src/i18n/keys.ts +42 -0
- package/src/i18n/runtimeDefaults.ts +17 -0
- package/src/i18n/types.ts +78 -0
- package/src/i18n/useStreami18n.ts +66 -0
- package/src/index.ts +6 -1
- package/src/modules/call-manager/native-module.d.ts +14 -0
- package/src/modules/encryption/EncryptionManager.ts +360 -0
- package/src/modules/encryption/eventMapping.ts +151 -0
- package/src/modules/encryption/index.ts +1 -0
- package/src/modules/encryption/parity.ts +83 -0
- package/src/providers/NoiseCancellation/NoiseCancellationProvider.tsx +8 -4
- package/src/providers/StreamVideo.tsx +39 -28
- package/src/utils/StreamVideoRN/index.ts +51 -1
- package/src/utils/StreamVideoRN/types.ts +68 -0
- package/src/utils/internal/callingx/callingx.ts +37 -2
- package/src/utils/internal/iosPipTrack.ts +39 -0
- package/src/utils/internal/registerSDKGlobals.ts +2 -0
- package/src/utils/internal/ringingCallLifecycle.ts +148 -0
- package/src/utils/push/internal/utils.ts +4 -0
- package/src/version.ts +1 -1
- package/dist/commonjs/translations/en.json +0 -32
- package/dist/commonjs/translations/index.js +0 -12
- package/dist/commonjs/translations/index.js.map +0 -1
- package/dist/module/translations/en.json +0 -32
- package/dist/module/translations/index.js +0 -7
- package/dist/module/translations/index.js.map +0 -1
- package/dist/typescript/translations/index.d.ts +0 -35
- package/dist/typescript/translations/index.d.ts.map +0 -1
- package/src/translations/en.json +0 -32
- package/src/translations/index.ts +0 -3
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compile-time proof that the React Native {@link EncryptionManager} exposes the
|
|
3
|
+
* same public surface as the web one in `@stream-io/video-client`.
|
|
4
|
+
*
|
|
5
|
+
* This file has no runtime output and is imported by nothing. It exists because
|
|
6
|
+
* the SDK's entry point deliberately *shadows* the client's `EncryptionManager`
|
|
7
|
+
* export with this platform's implementation: a host writing against the
|
|
8
|
+
* documented API gets whichever class its platform ships, so the two surfaces
|
|
9
|
+
* diverging would be a silent break for that host rather than a build error.
|
|
10
|
+
* Both directions are asserted, so adding a method to either manager fails the
|
|
11
|
+
* build until the other one follows. Keep it that way, or delete both managers'
|
|
12
|
+
* claim to a shared API.
|
|
13
|
+
*
|
|
14
|
+
* `test:types` and the `tsc` pass in `bob build` both cover `src`, so CI runs
|
|
15
|
+
* this whether or not anything imports it.
|
|
16
|
+
*/
|
|
17
|
+
import type { EncryptionManager as WebEncryptionManager } from '@stream-io/video-client';
|
|
18
|
+
import type { EncryptionManager } from './EncryptionManager';
|
|
19
|
+
/** Fails to compile unless `T` is exactly `true`. */
|
|
20
|
+
type AssertTrue<T extends true> = T;
|
|
21
|
+
/**
|
|
22
|
+
* Public members only.
|
|
23
|
+
*
|
|
24
|
+
* A class type carrying `private` members is nominal, so the two managers can
|
|
25
|
+
* never be compared as classes however identical their APIs. `keyof` yields
|
|
26
|
+
* public keys alone, which is also precisely the surface a host can touch.
|
|
27
|
+
*/
|
|
28
|
+
type PublicSurface<T> = {
|
|
29
|
+
[K in keyof T]: T[K];
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* `emit` is public on the web manager only because it extends the shared
|
|
33
|
+
* `TypedEventEmitter`. Dispatching a forged E2EE event is not part of the
|
|
34
|
+
* documented API — `SPEC.md` §2 lists `on`/`off` and nothing else — so it is
|
|
35
|
+
* excluded here rather than mirrored on this side.
|
|
36
|
+
*/
|
|
37
|
+
type WebSurface = Omit<PublicSurface<WebEncryptionManager>, 'emit'>;
|
|
38
|
+
type NativeSurface = PublicSurface<EncryptionManager>;
|
|
39
|
+
/** Every documented web member exists here, with a compatible signature. */
|
|
40
|
+
export type NativeCoversWeb = AssertTrue<NativeSurface extends WebSurface ? true : false>;
|
|
41
|
+
/**
|
|
42
|
+
* ...and nothing extra. A React Native-only method would compile fine but make
|
|
43
|
+
* host code silently unportable, which is the failure this file exists to catch.
|
|
44
|
+
*/
|
|
45
|
+
export type WebCoversNative = AssertTrue<WebSurface extends NativeSurface ? true : false>;
|
|
46
|
+
/**
|
|
47
|
+
* The statics are checked by signature rather than by assignability: both
|
|
48
|
+
* `create`s return their own class, so comparing them whole would only ever
|
|
49
|
+
* restate that the two classes are nominally distinct.
|
|
50
|
+
*/
|
|
51
|
+
export type CreateAcceptsSameArguments = AssertTrue<Parameters<typeof EncryptionManager.create> extends Parameters<typeof WebEncryptionManager.create> ? Parameters<typeof WebEncryptionManager.create> extends Parameters<typeof EncryptionManager.create> ? true : false : false>;
|
|
52
|
+
export type CreateResolvesAManager = AssertTrue<Awaited<ReturnType<typeof EncryptionManager.create>> extends NativeSurface ? true : false>;
|
|
53
|
+
export type IsSupportedMatches = AssertTrue<typeof EncryptionManager.isSupported extends typeof WebEncryptionManager.isSupported ? typeof WebEncryptionManager.isSupported extends typeof EncryptionManager.isSupported ? true : false : false>;
|
|
54
|
+
export {};
|
|
55
|
+
//# sourceMappingURL=parity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parity.d.ts","sourceRoot":"","sources":["../../../../src/modules/encryption/parity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,iBAAiB,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACzF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,qDAAqD;AACrD,KAAK,UAAU,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC;AAEpC;;;;;;GAMG;AACH,KAAK,aAAa,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAEjD;;;;;GAKG;AACH,KAAK,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC,CAAC;AACpE,KAAK,aAAa,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC;AAEtD,4EAA4E;AAC5E,MAAM,MAAM,eAAe,GAAG,UAAU,CACtC,aAAa,SAAS,UAAU,GAAG,IAAI,GAAG,KAAK,CAChD,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG,UAAU,CACtC,UAAU,SAAS,aAAa,GAAG,IAAI,GAAG,KAAK,CAChD,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GAAG,UAAU,CACjD,UAAU,CAAC,OAAO,iBAAiB,CAAC,MAAM,CAAC,SAAS,UAAU,CAC5D,OAAO,oBAAoB,CAAC,MAAM,CACnC,GACG,UAAU,CAAC,OAAO,oBAAoB,CAAC,MAAM,CAAC,SAAS,UAAU,CAC/D,OAAO,iBAAiB,CAAC,MAAM,CAChC,GACC,IAAI,GACJ,KAAK,GACP,KAAK,CACV,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAC7C,OAAO,CAAC,UAAU,CAAC,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC,SAAS,aAAa,GACtE,IAAI,GACJ,KAAK,CACV,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,UAAU,CACzC,OAAO,iBAAiB,CAAC,WAAW,SAAS,OAAO,oBAAoB,CAAC,WAAW,GAChF,OAAO,oBAAoB,CAAC,WAAW,SAAS,OAAO,iBAAiB,CAAC,WAAW,GAClF,IAAI,GACJ,KAAK,GACP,KAAK,CACV,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NoiseCancellationProvider.d.ts","sourceRoot":"","sources":["../../../../src/providers/NoiseCancellation/NoiseCancellationProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAEZ,iBAAiB,EAIlB,MAAM,OAAO,CAAC;AAaf;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC;;;;OAIG;IACH,qCAAqC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3D;;;OAGG;IACH,WAAW,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,KAAK,IAAI,CAAC;CACxE,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,QAAO,oBAQvC,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,OAAO,iBAAiB,CAAC,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"NoiseCancellationProvider.d.ts","sourceRoot":"","sources":["../../../../src/providers/NoiseCancellation/NoiseCancellationProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAEZ,iBAAiB,EAIlB,MAAM,OAAO,CAAC;AAaf;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC;;;;OAIG;IACH,qCAAqC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3D;;;OAGG;IACH,WAAW,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,KAAK,IAAI,CAAC;CACxE,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,QAAO,oBAQvC,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,OAAO,iBAAiB,CAAC,EAAE,CAAC,sBAsFrE,CAAC"}
|
|
@@ -1,15 +1,28 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type StreamVideoProviderProps } from '@stream-io/video-react-bindings';
|
|
2
2
|
import React, { type PropsWithChildren } from 'react';
|
|
3
|
+
import { type UseStreami18nParams } from '../i18n';
|
|
3
4
|
import { type DeepPartial } from '../contexts/ThemeContext';
|
|
4
5
|
import { type Theme } from '../theme/theme';
|
|
6
|
+
export type StreamVideoProps = StreamVideoProviderProps & UseStreami18nParams & {
|
|
7
|
+
style?: DeepPartial<Theme>;
|
|
8
|
+
};
|
|
5
9
|
/**
|
|
10
|
+
* StreamVideo is the root provider of the SDK: it provides the client to the component tree and
|
|
11
|
+
* mounts the SDK's translation context.
|
|
12
|
+
*
|
|
13
|
+
* The i18n runtime lives here rather than in `@stream-io/video-react-bindings` because the
|
|
14
|
+
* translation key catalog is generated from *this* package's `t()` call sites.
|
|
15
|
+
*
|
|
16
|
+
* There used to be a `translationsOverrides = translations` default parameter here, which was a
|
|
17
|
+
* bug: an integrator passing their own dictionaries *replaced* the SDK's bundled strings instead
|
|
18
|
+
* of merging with them, leaving every untranslated key rendering as a raw dotted path.
|
|
19
|
+
* `useStreami18n` layers integrator dictionaries over the SDK's own defaults, so a partial
|
|
20
|
+
* dictionary is now safe.
|
|
6
21
|
*
|
|
7
22
|
* @param props
|
|
8
23
|
* @returns
|
|
9
24
|
*
|
|
10
25
|
* @category Client State
|
|
11
26
|
*/
|
|
12
|
-
export declare const StreamVideo: (props: PropsWithChildren<StreamVideoProps
|
|
13
|
-
style?: DeepPartial<Theme>;
|
|
14
|
-
}>) => React.JSX.Element;
|
|
27
|
+
export declare const StreamVideo: (props: PropsWithChildren<StreamVideoProps>) => React.JSX.Element;
|
|
15
28
|
//# sourceMappingURL=StreamVideo.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StreamVideo.d.ts","sourceRoot":"","sources":["../../../src/providers/StreamVideo.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,
|
|
1
|
+
{"version":3,"file":"StreamVideo.d.ts","sourceRoot":"","sources":["../../../src/providers/StreamVideo.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,wBAAwB,EAE9B,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAa,MAAM,OAAO,CAAC;AAGjE,OAAO,EAGL,KAAK,mBAAmB,EACzB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,KAAK,WAAW,EAAe,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAI5C,MAAM,MAAM,gBAAgB,GAAG,wBAAwB,GACrD,mBAAmB,GAAG;IACpB,KAAK,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;CAC5B,CAAC;AAEJ;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,iBAAiB,CAAC,gBAAgB,CAAC,sBAwCrE,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { StreamVideoConfig } from './types';
|
|
1
|
+
import type { RingingCallLifecycleHooks, StreamVideoConfig } from './types';
|
|
2
2
|
type DeepPartial<T> = {
|
|
3
3
|
[P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
|
|
4
4
|
};
|
|
@@ -47,6 +47,25 @@ export declare class StreamVideoRN {
|
|
|
47
47
|
* AppRegistry.registerComponent('app', () => App);
|
|
48
48
|
*/
|
|
49
49
|
static setPushConfig(pushConfig: NonNullable<StreamVideoConfig['push']>): void;
|
|
50
|
+
/**
|
|
51
|
+
* Register hooks that run around a ringing call's join, for every ringing path:
|
|
52
|
+
* accepted from the CallKit/Telecom UI, accepted inside the app, and outgoing.
|
|
53
|
+
*
|
|
54
|
+
* Call this at your application's entry point, alongside
|
|
55
|
+
* {@link StreamVideoRN.setPushConfig} and **outside** the React tree. A call
|
|
56
|
+
* accepted from a push notification can be created and joined before any
|
|
57
|
+
* component mounts, so hooks registered from inside React would be missed on
|
|
58
|
+
* exactly the path that most needs them.
|
|
59
|
+
*
|
|
60
|
+
* Calling it again replaces the previously registered hooks.
|
|
61
|
+
*
|
|
62
|
+
* @example // in index.js
|
|
63
|
+
* StreamVideoRN.setRingingCallLifecycleHooks({
|
|
64
|
+
* onBeforeCallJoin: (call) => attachE2EEIfConfigured(call),
|
|
65
|
+
* onAfterCallLeave: (call) => disposeE2EEManager(call),
|
|
66
|
+
* });
|
|
67
|
+
*/
|
|
68
|
+
static setRingingCallLifecycleHooks: (hooks: RingingCallLifecycleHooks) => void;
|
|
50
69
|
static getConfig(): StreamVideoConfig;
|
|
51
70
|
/**
|
|
52
71
|
* This is the function to be called when the push token must be removed.
|
|
@@ -54,6 +73,19 @@ export declare class StreamVideoRN {
|
|
|
54
73
|
*/
|
|
55
74
|
static onPushLogout(): Promise<void>;
|
|
56
75
|
static clearPushLogoutCallbacks(): void;
|
|
76
|
+
/**
|
|
77
|
+
* Android only. Opt out of the Android 11+ communication-mode keep-alive.
|
|
78
|
+
*
|
|
79
|
+
* By default the SDK plays a silent voice-communication track for the duration of a
|
|
80
|
+
* communicator-role call, so Android does not reset `MODE_IN_COMMUNICATION` ~6s after it is
|
|
81
|
+
* set (which breaks audio routing and echo cancellation).
|
|
82
|
+
* See {@link https://issuetracker.google.com/issues/209493718}
|
|
83
|
+
*
|
|
84
|
+
* Call this at app start, alongside {@link setPushConfig} — the native audio manager
|
|
85
|
+
* rejects the change once it has been activated for a call. No-op on iOS and on
|
|
86
|
+
* Android below API 30.
|
|
87
|
+
*/
|
|
88
|
+
static setDisableCommunicationModeWorkaround(disabled: boolean): void;
|
|
57
89
|
/**
|
|
58
90
|
* Play native busy tone for call rejection
|
|
59
91
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/StreamVideoRN/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/StreamVideoRN/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAc5E,KAAK,WAAW,CAAC,CAAC,IAAI;KACnB,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAChE,CAAC;AAgDF,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,MAAM,CAA+B;IAEpD;;;;OAIG;IACH,MAAM,CAAC,YAAY,CACjB,YAAY,EAAE,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;IAK5D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,MAAM,CAAC,aAAa,CAAC,UAAU,EAAE,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;IA0BvE;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,4BAA4B,GAAI,OAAO,yBAAyB,UAErE;IAEF,MAAM,CAAC,SAAS;IAIhB;;;OAGG;IACH,MAAM,CAAC,YAAY;IASnB,MAAM,CAAC,wBAAwB;IAI/B;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,qCAAqC,CAAC,QAAQ,EAAE,OAAO;IAe9D;;OAEG;WACU,YAAY;IAIzB;;OAEG;WACU,YAAY;IAIzB;;;OAGG;WACU,6BAA6B,IAAI,OAAO,CAAC,OAAO,CAAC;IAQ9D;;;OAGG;WACU,4BAA4B,IAAI,OAAO,CAAC,OAAO,CAAC;IAQ7D;;;OAGG;WACU,wBAAwB,IAAI,OAAO,CAAC,OAAO,CAAC;CAO1D"}
|
|
@@ -10,6 +10,73 @@ export type KeepAliveAndroidNotificationTexts = {
|
|
|
10
10
|
body: string;
|
|
11
11
|
};
|
|
12
12
|
export type NonRingingPushEvent = 'call.live_started' | 'call.notification' | 'call.missed';
|
|
13
|
+
/**
|
|
14
|
+
* Hooks that run around a ringing call's join, wherever that join is triggered.
|
|
15
|
+
*
|
|
16
|
+
* A ringing call is joined by the SDK, not by your code: the accept button joins
|
|
17
|
+
* internally, and an outgoing call joins itself once the callee answers. That
|
|
18
|
+
* leaves no moment in which app code holds the call and the join has not yet
|
|
19
|
+
* happened - which is a problem for anything that must be installed first, most
|
|
20
|
+
* notably `call.setE2EEManager()`, since it throws once a call has peer
|
|
21
|
+
* connections.
|
|
22
|
+
*
|
|
23
|
+
* These hooks are that moment. They run for every ringing path: accepted from the
|
|
24
|
+
* CallKit/Telecom UI, accepted inside the app, and outgoing.
|
|
25
|
+
*
|
|
26
|
+
* Register them with {@link StreamVideoRN.setRingingCallLifecycleHooks} at your app's
|
|
27
|
+
* entry point, next to `setPushConfig`. A call accepted from a push notification
|
|
28
|
+
* can be created and joined before any component mounts - the app may be launched
|
|
29
|
+
* from a killed state - so registering them from inside React is too late.
|
|
30
|
+
*/
|
|
31
|
+
export type RingingCallLifecycleHooks = {
|
|
32
|
+
/**
|
|
33
|
+
* Awaited by `Call.join()` for a ringing call, before any peer connection exists.
|
|
34
|
+
* **Throwing aborts the join** and the call is not entered.
|
|
35
|
+
*
|
|
36
|
+
* That is deliberate: joining without whatever this hook installs would, in the
|
|
37
|
+
* E2EE case, publish unencrypted media on a call the user believes is private.
|
|
38
|
+
* On the push path there is no UI to reveal it, so the join fails closed instead.
|
|
39
|
+
* A failed join also ends the call, so the `Call` it failed on is finished with -
|
|
40
|
+
* a later attempt happens on a new incoming call or a newly created one.
|
|
41
|
+
*
|
|
42
|
+
* Keep it fast. On the CallKit accept path it runs inside iOS's accept deadline
|
|
43
|
+
* (roughly 30s before the app is killed) and anything slower than five seconds is
|
|
44
|
+
* treated as a failure. Deriving a key locally is fine; fetching one over the
|
|
45
|
+
* network does not belong here.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* onBeforeCallJoin: async (call) => {
|
|
49
|
+
* await attachE2EEIfConfigured(call);
|
|
50
|
+
* }
|
|
51
|
+
*/
|
|
52
|
+
onBeforeCallJoin?: (call: Call) => Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Called once, when a ringing call is finished with - it left, whether because
|
|
55
|
+
* the user hung up, the other side ended it, or its join failed and the SDK
|
|
56
|
+
* ended the flow.
|
|
57
|
+
*
|
|
58
|
+
* Use it to free per-call resources the SDK does not own. An E2EE manager is the
|
|
59
|
+
* motivating case: it has no native detach, closing the peer connections does not
|
|
60
|
+
* free it, and on the push path the call can end while the app is still in the
|
|
61
|
+
* background, where no React cleanup ever runs.
|
|
62
|
+
*
|
|
63
|
+
* When an {@link onBeforeCallJoin} is also registered, this is only called for a
|
|
64
|
+
* call that hook actually entered, so it always pairs with a setup that happened -
|
|
65
|
+
* a call that rings and is then rejected, cancelled or missed was never set up and
|
|
66
|
+
* releases nothing. Registered on its own it has no such pairing to honour and is
|
|
67
|
+
* called for every ringing call that ends. Either way it is tied to the call
|
|
68
|
+
* ending rather than to any view's lifetime, so navigating away from a live call
|
|
69
|
+
* does not release it.
|
|
70
|
+
*
|
|
71
|
+
* If the setup hook is still running when the call ends - it timed out, say - the
|
|
72
|
+
* release waits for it to settle, so it cannot free something that hook is about
|
|
73
|
+
* to create.
|
|
74
|
+
*
|
|
75
|
+
* May return a promise; rejections are logged. Nothing is gated on it, so do not
|
|
76
|
+
* rely on it completing before the OS suspends the app.
|
|
77
|
+
*/
|
|
78
|
+
onAfterCallLeave?: (call: Call) => void | Promise<void>;
|
|
79
|
+
};
|
|
13
80
|
export type StreamVideoConfig = {
|
|
14
81
|
/**
|
|
15
82
|
* The configuration to be used for push notifications.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/utils/StreamVideoRN/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,oBAAoB,EACzB,iBAAiB,EACjB,KAAK,IAAI,EACV,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,oBAAoB,GAAG;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAC7B,mBAAmB,GAAG,mBAAmB,GAAG,aAAa,CAAC;AAE5D,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;;OAIG;IACH,IAAI,CAAC,EAAE;QACL;;WAEG;QACH,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB;;;;WAIG;QACH,cAAc,CAAC,EAAE,oBAAoB,CAAC;QAEtC,GAAG,CAAC,EAAE;YACJ;;;;eAIG;YACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;YACxB;;;eAGG;YACH,KAAK,CAAC,EAAE,MAAM,CAAC;YACf;;;eAGG;YACH,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB;;;eAGG;YACH,YAAY,CAAC,EAAE,OAAO,CAAC;YACvB;;;eAGG;YACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;YAC5B;;;eAGG;YACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;YAC7B;;;;;;eAMG;YACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;YACvC;;;;;eAKG;YACH,yBAAyB,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;SACpD,CAAC;QACF,OAAO,CAAC,EAAE;YACR;;;;eAIG;YACH,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB;;;;eAIG;YACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B;;;;;;;;;eASG;YACH,eAAe,CAAC,EAAE,oBAAoB,CAAC;YACvC;;;;;;;;eAQG;YACH,iBAAiB,CAAC,EAAE;gBAClB,SAAS,CAAC,EAAE,MAAM,CAAC;gBACnB,SAAS,CAAC,EAAE,MAAM,CAAC;aACpB,CAAC;YACF;;eAEG;YACH,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,MAAM,CAAC;YACrE,kBAAkB,CAAC,EAAE,OAAO,CAAC;YAC7B;;;;eAIG;YACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;YACvC;;;eAGG;YACH,yBAAyB,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;SACpD,CAAC;QACF;;;WAGG;QACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;QACnC;;;;;;;;;;;;;;;;;WAiBG;QACH,uBAAuB,EAAE,MAAM,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAC;KACvE,CAAC;IACF,iBAAiB,EAAE;QACjB,OAAO,EAAE;YACP;;eAEG;YACH,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC;YAC3D;;eAEG;YACH,iBAAiB,EAAE,iCAAiC,CAAC;YACrD;;eAEG;YACH,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;SAC1C,CAAC;KACH,CAAC;CACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/utils/StreamVideoRN/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,oBAAoB,EACzB,iBAAiB,EACjB,KAAK,IAAI,EACV,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,oBAAoB,GAAG;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAC7B,mBAAmB,GAAG,mBAAmB,GAAG,aAAa,CAAC;AAE5D;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC;;;;;;;;;;;;;;;;;;;OAmBG;IACH,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;;OAIG;IACH,IAAI,CAAC,EAAE;QACL;;WAEG;QACH,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB;;;;WAIG;QACH,cAAc,CAAC,EAAE,oBAAoB,CAAC;QAEtC,GAAG,CAAC,EAAE;YACJ;;;;eAIG;YACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;YACxB;;;eAGG;YACH,KAAK,CAAC,EAAE,MAAM,CAAC;YACf;;;eAGG;YACH,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB;;;eAGG;YACH,YAAY,CAAC,EAAE,OAAO,CAAC;YACvB;;;eAGG;YACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;YAC5B;;;eAGG;YACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;YAC7B;;;;;;eAMG;YACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;YACvC;;;;;eAKG;YACH,yBAAyB,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;SACpD,CAAC;QACF,OAAO,CAAC,EAAE;YACR;;;;eAIG;YACH,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB;;;;eAIG;YACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;YAC1B;;;;;;;;;eASG;YACH,eAAe,CAAC,EAAE,oBAAoB,CAAC;YACvC;;;;;;;;eAQG;YACH,iBAAiB,CAAC,EAAE;gBAClB,SAAS,CAAC,EAAE,MAAM,CAAC;gBACnB,SAAS,CAAC,EAAE,MAAM,CAAC;aACpB,CAAC;YACF;;eAEG;YACH,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,MAAM,CAAC;YACrE,kBAAkB,CAAC,EAAE,OAAO,CAAC;YAC7B;;;;eAIG;YACH,4BAA4B,CAAC,EAAE,OAAO,CAAC;YACvC;;;eAGG;YACH,yBAAyB,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;SACpD,CAAC;QACF;;;WAGG;QACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;QACnC;;;;;;;;;;;;;;;;;WAiBG;QACH,uBAAuB,EAAE,MAAM,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAAC;KACvE,CAAC;IACF,iBAAiB,EAAE;QACjB,OAAO,EAAE;YACP;;eAEG;YACH,OAAO,EAAE,IAAI,CAAC,oBAAoB,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC;YAC3D;;eAEG;YACH,iBAAiB,EAAE,iCAAiC,CAAC;YACrD;;eAEG;YACH,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;SAC1C,CAAC;KACH,CAAC;CACH,CAAC"}
|
|
@@ -13,7 +13,7 @@ export declare function registerOutgoingCall(call: Call): Promise<void>;
|
|
|
13
13
|
* 2. Displays the incoming call in the callingx library
|
|
14
14
|
* 3. Optionally for non-ringing calls also when ongoing calls are enabled.
|
|
15
15
|
*/
|
|
16
|
-
export declare function joinCallingxCall(call: Call, activeCalls: Call[]): Promise<void>;
|
|
16
|
+
export declare function joinCallingxCall(call: Call, activeCalls: Call[], isCancelled?: () => boolean): Promise<void>;
|
|
17
17
|
export declare function endCallingxCall(call: Call, reason?: EndCallReason): Promise<void>;
|
|
18
18
|
export declare function wireAudioEngineSubscription(): Promise<void>;
|
|
19
19
|
export declare function unwireAudioEngineSubscription(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callingx.d.ts","sourceRoot":"","sources":["../../../../../src/utils/internal/callingx/callingx.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,KAAK,EACV,IAAI,EACJ,cAAc,EACd,sBAAsB,EACvB,MAAM,yBAAyB,CAAC;AAKjC;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,cAAc,EAAE,GAAG,SAAS,EACzC,YAAY,EAAE,sBAAsB,EAAE,GAAG,SAAS,EAClD,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC,MAAM,CAgCR;
|
|
1
|
+
{"version":3,"file":"callingx.d.ts","sourceRoot":"","sources":["../../../../../src/utils/internal/callingx/callingx.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,KAAK,EACV,IAAI,EACJ,cAAc,EACd,sBAAsB,EACvB,MAAM,yBAAyB,CAAC;AAKjC;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,WAAW,EAAE,cAAc,EAAE,GAAG,SAAS,EACzC,YAAY,EAAE,sBAAsB,EAAE,GAAG,SAAS,EAClD,aAAa,EAAE,MAAM,GAAG,SAAS,GAChC,MAAM,CAgCR;AA2BD,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,IAAI,iBAyBpD;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,IAAI,EAAE,EACnB,WAAW,CAAC,EAAE,MAAM,OAAO,iBA+E5B;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,aAAa,iBAmBvE;AAED,wBAAsB,2BAA2B,kBAehD;AAED,wBAAgB,6BAA6B,SAe5C"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type Call, type VideoTrackType } from '@stream-io/video-client';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
export type PipTrack = {
|
|
4
|
+
sessionId: string;
|
|
5
|
+
trackType: VideoTrackType;
|
|
6
|
+
};
|
|
7
|
+
export declare const getIosPipTrack$: (call: Call) => BehaviorSubject<PipTrack | undefined>;
|
|
8
|
+
export declare const setIosPipTrack: (call: Call, track: PipTrack | undefined) => void;
|
|
9
|
+
//# sourceMappingURL=iosPipTrack.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iosPipTrack.d.ts","sourceRoot":"","sources":["../../../../src/utils/internal/iosPipTrack.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,IAAI,EAET,KAAK,cAAc,EACpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,MAAM,CAAC;AAEvC,MAAM,MAAM,QAAQ,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,cAAc,CAAA;CAAE,CAAC;AASxE,eAAO,MAAM,eAAe,GAAI,MAAM,IAAI,0CAOzC,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,MAAM,IAAI,EAAE,OAAO,QAAQ,GAAG,SAAS,SAarE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerSDKGlobals.d.ts","sourceRoot":"","sources":["../../../../src/utils/internal/registerSDKGlobals.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registerSDKGlobals.d.ts","sourceRoot":"","sources":["../../../../src/utils/internal/registerSDKGlobals.ts"],"names":[],"mappings":"AAgPA,wBAAgB,kBAAkB,SAMjC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type Call } from '@stream-io/video-client';
|
|
2
|
+
import type { RingingCallLifecycleHooks } from '../StreamVideoRN/types';
|
|
3
|
+
export declare const setRingingCallLifecycleHooks: (next: RingingCallLifecycleHooks) => void;
|
|
4
|
+
/**
|
|
5
|
+
* Runs the app's pre-join setup, bounded by the deadline.
|
|
6
|
+
*
|
|
7
|
+
* Rejecting fails the join closed - joining without whatever this installs would
|
|
8
|
+
* publish unencrypted media on a call the user believes is private.
|
|
9
|
+
*/
|
|
10
|
+
export declare const beforeJoin: (call: Call) => Promise<void>;
|
|
11
|
+
/**
|
|
12
|
+
* The join failed and will not be retried on this call.
|
|
13
|
+
*
|
|
14
|
+
* Ends the ringing flow rather than leaving the call sitting in `RINGING`: one
|
|
15
|
+
* `Call` is one call flow, so the accept button must not be able to offer this
|
|
16
|
+
* instance again. Never rejects, so the original join error survives.
|
|
17
|
+
*/
|
|
18
|
+
export declare const onJoinFailed: (call: Call) => Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* The call has ended.
|
|
21
|
+
*
|
|
22
|
+
* Releases what the setup hook installed, once the hook has actually settled -
|
|
23
|
+
* a hook still running may yet install something, and releasing before it
|
|
24
|
+
* finishes would strand that.
|
|
25
|
+
*/
|
|
26
|
+
export declare const onLeave: (call: Call) => void;
|
|
27
|
+
//# sourceMappingURL=ringingCallLifecycle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ringingCallLifecycle.d.ts","sourceRoot":"","sources":["../../../../src/utils/internal/ringingCallLifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,IAAI,EACV,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAuBxE,eAAO,MAAM,4BAA4B,GACvC,MAAM,yBAAyB,SAGhC,CAAC;AAmCF;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,IAAI,KAAG,OAAO,CAAC,IAAI,CAiCnD,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GAAU,MAAM,IAAI,KAAG,OAAO,CAAC,IAAI,CAc3D,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,GAAI,MAAM,IAAI,KAAG,IASpC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/utils/push/internal/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EAIL,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAKnE,KAAK,UAAU,GAAG,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;AAGzD,KAAK,4BAA4B,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAEzD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,cAAc,IAAI,EAClB,eAAe,MAAM,GAAG,SAAS,EACjC,aAAa,MAAM,GAAG,SAAS;;;CAoChC,CAAC;AAMF,eAAO,MAAM,+BAA+B,GAC1C,YAAY,UAAU,EACtB,UAAU,MAAM,EAChB,QAAQ,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,qBAAqB;AAChE;;;;;GAKG;AACH,2BAA2B,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/utils/push/internal/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,EAIL,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAKnE,KAAK,UAAU,GAAG,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;AAGzD,KAAK,4BAA4B,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAEzD;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,cAAc,IAAI,EAClB,eAAe,MAAM,GAAG,SAAS,EACjC,aAAa,MAAM,GAAG,SAAS;;;CAoChC,CAAC;AAMF,eAAO,MAAM,+BAA+B,GAC1C,YAAY,UAAU,EACtB,UAAU,MAAM,EAChB,QAAQ,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,qBAAqB;AAChE;;;;;GAKG;AACH,2BAA2B,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,kBAuFtD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,6BAA6B,GAAI,UAAU,MAAM,SAM7D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,4BAA4B,EAAE,4BAE1C,CAAC;AAEF,eAAO,MAAM,aAAa,eACkD,CAAC;AAE7E,eAAO,MAAM,kBAAkB,GAC7B,MAAM,IAAI,EACV,UAAU;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;CAAE;;;CAW7C,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const version = "2.0.0-beta.
|
|
1
|
+
export declare const version = "2.0.0-beta.2";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/ios/RTCViewPip.swift
CHANGED
|
@@ -17,6 +17,9 @@ class RTCViewPip: UIView {
|
|
|
17
17
|
weak var manager: RTCViewPipManager?
|
|
18
18
|
|
|
19
19
|
@objc var onPiPChange: RCTBubblingEventBlock?
|
|
20
|
+
/// Actual PiP window bounds in logical points.
|
|
21
|
+
@objc var onPiPBoundsChange: RCTBubblingEventBlock?
|
|
22
|
+
private var lastEmittedBounds: CGSize?
|
|
20
23
|
|
|
21
24
|
// MARK: - Avatar Placeholder Properties
|
|
22
25
|
|
|
@@ -156,8 +159,11 @@ class RTCViewPip: UIView {
|
|
|
156
159
|
@objc
|
|
157
160
|
func onCallClosed() {
|
|
158
161
|
PictureInPictureLogger.log("pictureInPictureController cleanup called")
|
|
162
|
+
self.pictureInPictureController?.onPiPStateChange = nil
|
|
163
|
+
self.pictureInPictureController?.onSizeUpdate = nil
|
|
159
164
|
self.pictureInPictureController?.cleanup()
|
|
160
165
|
self.pictureInPictureController = nil
|
|
166
|
+
self.lastEmittedBounds = nil
|
|
161
167
|
}
|
|
162
168
|
|
|
163
169
|
@objc
|
|
@@ -191,9 +197,8 @@ class RTCViewPip: UIView {
|
|
|
191
197
|
}
|
|
192
198
|
self.pictureInPictureController?.sourceView = self
|
|
193
199
|
self.pictureInPictureController?.isMirrored = self.mirror
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
self?.sendPiPChangeEvent(isActive: isActive)
|
|
200
|
+
if let controller = self.pictureInPictureController {
|
|
201
|
+
self.installCallbacks(on: controller)
|
|
197
202
|
}
|
|
198
203
|
if let reactTag = self.reactTag,
|
|
199
204
|
let size = self.manager?.getCachedSize(for: reactTag) {
|
|
@@ -277,12 +282,32 @@ class RTCViewPip: UIView {
|
|
|
277
282
|
}
|
|
278
283
|
}
|
|
279
284
|
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
285
|
+
// MARK: - Picture in Picture Events
|
|
286
|
+
|
|
287
|
+
/// Ignore callbacks from a controller that has already been disposed.
|
|
288
|
+
private func installCallbacks(on controller: StreamPictureInPictureController) {
|
|
289
|
+
controller.onPiPStateChange = { [weak self, weak controller] isActive in
|
|
290
|
+
guard let self, let controller,
|
|
291
|
+
self.pictureInPictureController === controller else { return }
|
|
292
|
+
self.onPiPChange?(["active": isActive])
|
|
293
|
+
}
|
|
294
|
+
controller.onSizeUpdate = { [weak self, weak controller] size in
|
|
295
|
+
guard let self, let controller,
|
|
296
|
+
self.pictureInPictureController === controller else { return }
|
|
297
|
+
self.handleSizeUpdate(size)
|
|
283
298
|
}
|
|
299
|
+
}
|
|
284
300
|
|
|
285
|
-
|
|
286
|
-
|
|
301
|
+
private func handleSizeUpdate(_ size: CGSize) {
|
|
302
|
+
guard size.width.isFinite, size.height.isFinite else { return }
|
|
303
|
+
// truncated to match the integer dimensions the inline views report.
|
|
304
|
+
let bounds = CGSize(
|
|
305
|
+
width: size.width.rounded(.towardZero),
|
|
306
|
+
height: size.height.rounded(.towardZero)
|
|
307
|
+
)
|
|
308
|
+
guard bounds.width > 0, bounds.height > 0 else { return }
|
|
309
|
+
guard let onPiPBoundsChange, lastEmittedBounds != bounds else { return }
|
|
310
|
+
lastEmittedBounds = bounds
|
|
311
|
+
onPiPBoundsChange(["width": bounds.width, "height": bounds.height])
|
|
287
312
|
}
|
|
288
313
|
}
|
package/ios/RTCViewPipManager.mm
CHANGED
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
RCT_EXPORT_VIEW_PROPERTY(streamURL, NSString)
|
|
14
14
|
RCT_EXPORT_VIEW_PROPERTY(mirror, BOOL)
|
|
15
15
|
RCT_EXPORT_VIEW_PROPERTY(onPiPChange, RCTBubblingEventBlock)
|
|
16
|
+
RCT_EXPORT_VIEW_PROPERTY(onPiPBoundsChange, RCTBubblingEventBlock)
|
|
16
17
|
RCT_EXPORT_VIEW_PROPERTY(participantName, NSString)
|
|
17
18
|
RCT_EXPORT_VIEW_PROPERTY(participantImageURL, NSString)
|
|
18
19
|
RCT_EXPORT_VIEW_PROPERTY(isReconnecting, BOOL)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stream-io/video-react-native-sdk",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.2",
|
|
4
4
|
"description": "Stream Video SDK for React Native",
|
|
5
5
|
"author": "https://getstream.io",
|
|
6
6
|
"homepage": "https://getstream.io/video/docs/react-native/",
|
|
@@ -14,11 +14,14 @@
|
|
|
14
14
|
"lint": "eslint \"**/*.{js,ts,tsx}\"",
|
|
15
15
|
"start": "yarn copy-version && tsc --project tsconfig.json --watch",
|
|
16
16
|
"build:expo-plugin": "rimraf expo-config-plugin/dist && tsc --project expo-config-plugin/tsconfig.json",
|
|
17
|
-
"build": "yarn copy-version && bob build && yarn build:expo-plugin",
|
|
17
|
+
"build": "yarn copy-version && yarn build-translations && bob build && yarn build:expo-plugin",
|
|
18
18
|
"test:expo-plugin": "jest --config=expo-config-plugin/jest.config.js --coverage",
|
|
19
19
|
"test": "yarn copy-version && jest --coverage && yarn test:types && yarn test:expo-plugin",
|
|
20
20
|
"test:types": "yarn copy-version && tsc -p tsconfig.spec.json",
|
|
21
|
-
"copy-version": "echo \"export const version = '$npm_package_version';\" > ./src/version.ts"
|
|
21
|
+
"copy-version": "echo \"export const version = '$npm_package_version';\" > ./src/version.ts",
|
|
22
|
+
"build-translations": "node scripts/generate-i18n-keys.mts && yarn run -T prettier --write --log-level warn src/i18n/keys.ts",
|
|
23
|
+
"validate-translations": "yarn build-translations && git diff --exit-code -- src/i18n/keys.ts __tests__/i18n/catalog.fixture.json",
|
|
24
|
+
"i18n:export": "node scripts/generate-i18n-keys.mts --json en.json"
|
|
22
25
|
},
|
|
23
26
|
"repository": {
|
|
24
27
|
"type": "git",
|
|
@@ -52,8 +55,9 @@
|
|
|
52
55
|
"!**/.*"
|
|
53
56
|
],
|
|
54
57
|
"dependencies": {
|
|
55
|
-
"@stream-io/
|
|
56
|
-
"@stream-io/video-
|
|
58
|
+
"@stream-io/i18n": "^1.0.2",
|
|
59
|
+
"@stream-io/video-client": "2.0.0-beta.1",
|
|
60
|
+
"@stream-io/video-react-bindings": "2.0.0-beta.1",
|
|
57
61
|
"intl-pluralrules": "2.0.1",
|
|
58
62
|
"react-native-url-polyfill": "^3.0.0",
|
|
59
63
|
"rxjs": "~7.8.2",
|
|
@@ -63,10 +67,10 @@
|
|
|
63
67
|
"@react-native-community/netinfo": ">=9.0.0",
|
|
64
68
|
"@react-native-firebase/app": ">=17.5.0",
|
|
65
69
|
"@react-native-firebase/messaging": ">=17.5.0",
|
|
66
|
-
"@stream-io/noise-cancellation-react-native": ">=0.
|
|
67
|
-
"@stream-io/react-native-callingx": ">=0.
|
|
68
|
-
"@stream-io/react-native-webrtc": "^145.
|
|
69
|
-
"@stream-io/video-filters-react-native": ">=0.
|
|
70
|
+
"@stream-io/noise-cancellation-react-native": ">=1.0.0-beta.0",
|
|
71
|
+
"@stream-io/react-native-callingx": ">=1.0.0-beta.0",
|
|
72
|
+
"@stream-io/react-native-webrtc": "^145.4.1",
|
|
73
|
+
"@stream-io/video-filters-react-native": ">=1.0.0-beta.0",
|
|
70
74
|
"expo": ">=47.0.0",
|
|
71
75
|
"expo-notifications": "*",
|
|
72
76
|
"react": ">=17.0.0",
|
|
@@ -117,11 +121,11 @@
|
|
|
117
121
|
"@react-native/babel-preset": "0.86.2",
|
|
118
122
|
"@react-native/jest-preset": "0.86.2",
|
|
119
123
|
"@react-native/metro-config": "0.86.2",
|
|
120
|
-
"@stream-io/noise-cancellation-react-native": "^0.
|
|
121
|
-
"@stream-io/react-native-callingx": "^0.
|
|
122
|
-
"@stream-io/react-native-webrtc": "145.
|
|
124
|
+
"@stream-io/noise-cancellation-react-native": "^1.0.0-beta.1",
|
|
125
|
+
"@stream-io/react-native-callingx": "^1.0.0-beta.1",
|
|
126
|
+
"@stream-io/react-native-webrtc": "145.4.1",
|
|
123
127
|
"@stream-io/typescript-config": "^0.0.0",
|
|
124
|
-
"@stream-io/video-filters-react-native": "^0.
|
|
128
|
+
"@stream-io/video-filters-react-native": "^1.0.0-beta.1",
|
|
125
129
|
"@testing-library/jest-native": "^5.4.3",
|
|
126
130
|
"@testing-library/react-native": "13.3.3",
|
|
127
131
|
"@tsconfig/node18": "^18.2.6",
|
|
@@ -267,7 +267,7 @@ export const CallContent = ({
|
|
|
267
267
|
|
|
268
268
|
return (
|
|
269
269
|
<>
|
|
270
|
-
{!disablePictureInPicture && (
|
|
270
|
+
{Platform.OS === 'ios' && !disablePictureInPicture && (
|
|
271
271
|
<RTCViewPipIOS
|
|
272
272
|
includeLocalParticipantVideo={iOSPiPIncludeLocalParticipantVideo}
|
|
273
273
|
mirror={mirror}
|