@fishjam-cloud/react-native-client 0.5.0 → 0.6.0
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/android/build.gradle +1 -1
- package/android/src/main/java/io/fishjam/reactnative/EmitableEvents.kt +13 -14
- package/android/src/main/java/io/fishjam/reactnative/RNFishjamClient.kt +23 -10
- package/android/src/main/java/io/fishjam/reactnative/RNFishjamClientModule.kt +9 -7
- package/build/RNFishjamClientModule.d.ts +23 -6
- package/build/RNFishjamClientModule.d.ts.map +1 -1
- package/build/RNFishjamClientModule.js +19 -4
- package/build/RNFishjamClientModule.js.map +1 -1
- package/build/common/client.d.ts +1 -6
- package/build/common/client.d.ts.map +1 -1
- package/build/common/client.js +0 -4
- package/build/common/client.js.map +1 -1
- package/build/common/metadata.d.ts +1 -1
- package/build/common/metadata.js +1 -1
- package/build/common/metadata.js.map +1 -1
- package/build/components/FishjamRoom/parsePeersToTracks.d.ts.map +1 -1
- package/build/components/FishjamRoom/parsePeersToTracks.js +4 -6
- package/build/components/FishjamRoom/parsePeersToTracks.js.map +1 -1
- package/build/debug/stats/useRTCStatistics.d.ts.map +1 -1
- package/build/debug/stats/useRTCStatistics.js +13 -13
- package/build/debug/stats/useRTCStatistics.js.map +1 -1
- package/build/hooks/internal/useFishjamEvent.d.ts +3 -0
- package/build/hooks/internal/useFishjamEvent.d.ts.map +1 -0
- package/build/hooks/internal/useFishjamEvent.js +11 -0
- package/build/hooks/internal/useFishjamEvent.js.map +1 -0
- package/build/hooks/internal/useFishjamEventState.d.ts +3 -0
- package/build/hooks/internal/useFishjamEventState.d.ts.map +1 -0
- package/build/hooks/{useFishjamEventState.js → internal/useFishjamEventState.js} +3 -1
- package/build/hooks/internal/useFishjamEventState.js.map +1 -0
- package/build/hooks/useAppScreenShare.d.ts.map +1 -1
- package/build/hooks/useAppScreenShare.js +5 -7
- package/build/hooks/useAppScreenShare.js.map +1 -1
- package/build/hooks/useAudioSettings.d.ts.map +1 -1
- package/build/hooks/useAudioSettings.js +8 -11
- package/build/hooks/useAudioSettings.js.map +1 -1
- package/build/hooks/useBandwidthEstimation.d.ts.map +1 -1
- package/build/hooks/useBandwidthEstimation.js +3 -4
- package/build/hooks/useBandwidthEstimation.js.map +1 -1
- package/build/hooks/useCamera.d.ts.map +1 -1
- package/build/hooks/useCamera.js +7 -8
- package/build/hooks/useCamera.js.map +1 -1
- package/build/hooks/useConnection.d.ts +42 -0
- package/build/hooks/useConnection.d.ts.map +1 -0
- package/build/hooks/useConnection.js +33 -0
- package/build/hooks/useConnection.js.map +1 -0
- package/build/hooks/useMicrophone.d.ts.map +1 -1
- package/build/hooks/useMicrophone.js +2 -3
- package/build/hooks/useMicrophone.js.map +1 -1
- package/build/hooks/usePeerStatus.d.ts +2 -3
- package/build/hooks/usePeerStatus.d.ts.map +1 -1
- package/build/hooks/usePeerStatus.js +4 -10
- package/build/hooks/usePeerStatus.js.map +1 -1
- package/build/hooks/usePeers.d.ts.map +1 -1
- package/build/hooks/usePeers.js +4 -15
- package/build/hooks/usePeers.js.map +1 -1
- package/build/hooks/useReconnection.d.ts +1 -1
- package/build/hooks/useReconnection.d.ts.map +1 -1
- package/build/hooks/useReconnection.js +4 -10
- package/build/hooks/useReconnection.js.map +1 -1
- package/build/hooks/useScreenShare.d.ts.map +1 -1
- package/build/hooks/useScreenShare.js +6 -10
- package/build/hooks/useScreenShare.js.map +1 -1
- package/build/hooks/useUpdatePeerMetadata.d.ts +15 -0
- package/build/hooks/useUpdatePeerMetadata.d.ts.map +1 -0
- package/build/hooks/useUpdatePeerMetadata.js +21 -0
- package/build/hooks/useUpdatePeerMetadata.js.map +1 -0
- package/build/index.d.ts +22 -15
- package/build/index.d.ts.map +1 -1
- package/build/index.js +17 -6
- package/build/index.js.map +1 -1
- package/build/utils/errorListener.d.ts.map +1 -1
- package/build/utils/errorListener.js +2 -3
- package/build/utils/errorListener.js.map +1 -1
- package/ios/Events.swift +4 -7
- package/ios/RNFishjamClient.podspec +1 -1
- package/ios/RNFishjamClient.swift +14 -9
- package/ios/RNFishjamClientModule.swift +8 -4
- package/ios/Utils.swift +0 -20
- package/package.json +6 -7
- package/plugin/build/withFishjamAndroid.js +18 -20
- package/plugin/build/withFishjamIos.js +99 -103
- package/build/hooks/useFishjamEvent.d.ts +0 -18
- package/build/hooks/useFishjamEvent.d.ts.map +0 -1
- package/build/hooks/useFishjamEvent.js +0 -27
- package/build/hooks/useFishjamEvent.js.map +0 -1
- package/build/hooks/useFishjamEventState.d.ts +0 -3
- package/build/hooks/useFishjamEventState.d.ts.map +0 -1
- package/build/hooks/useFishjamEventState.js.map +0 -1
package/android/build.gradle
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
package io.fishjam.reactnative
|
|
2
2
|
|
|
3
|
+
import com.fishjamcloud.client.ReconnectionStatus
|
|
3
4
|
import com.fishjamcloud.client.models.SimulcastConfig
|
|
4
5
|
import com.twilio.audioswitch.AudioDevice
|
|
5
6
|
import io.fishjam.reactnative.extensions.LocalCamera
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
idle
|
|
8
|
+
enum class PeerStatus(
|
|
9
|
+
val status: String
|
|
10
|
+
) {
|
|
11
|
+
Connecting("connecting"),
|
|
12
|
+
Connected("connected"),
|
|
13
|
+
Idle("idle"),
|
|
14
|
+
Error("error")
|
|
13
15
|
}
|
|
14
16
|
|
|
15
17
|
class EmitableEvent private constructor(
|
|
@@ -23,11 +25,9 @@ class EmitableEvent private constructor(
|
|
|
23
25
|
PeersUpdate,
|
|
24
26
|
AudioDeviceUpdate,
|
|
25
27
|
BandwidthEstimation,
|
|
26
|
-
ReconnectionRetriesLimitReached,
|
|
27
|
-
ReconnectionStarted,
|
|
28
|
-
Reconnected,
|
|
29
28
|
Warning,
|
|
30
29
|
PeerStatusChanged,
|
|
30
|
+
ReconnectionStatusChanged,
|
|
31
31
|
CurrentCameraChanged
|
|
32
32
|
}
|
|
33
33
|
|
|
@@ -38,10 +38,6 @@ class EmitableEvent private constructor(
|
|
|
38
38
|
get() = mapOf(event.name to eventContent)
|
|
39
39
|
|
|
40
40
|
companion object {
|
|
41
|
-
val reconnectionRetriesLimitReached = EmitableEvent(EventName.ReconnectionRetriesLimitReached)
|
|
42
|
-
val reconnectionStarted = EmitableEvent(EventName.ReconnectionStarted)
|
|
43
|
-
val reconnected = EmitableEvent(EventName.Reconnected)
|
|
44
|
-
|
|
45
41
|
fun isMicrophoneOn(enabled: Boolean) = EmitableEvent(EventName.IsMicrophoneOn, enabled)
|
|
46
42
|
|
|
47
43
|
fun isScreenShareOn(enabled: Boolean) = EmitableEvent(EventName.IsScreenShareOn, enabled)
|
|
@@ -50,7 +46,10 @@ class EmitableEvent private constructor(
|
|
|
50
46
|
|
|
51
47
|
fun warning(message: String) = EmitableEvent(EventName.Warning, message)
|
|
52
48
|
|
|
53
|
-
fun peerStatusChanged(peerStatus: PeerStatus) = EmitableEvent(EventName.PeerStatusChanged, peerStatus.
|
|
49
|
+
fun peerStatusChanged(peerStatus: PeerStatus) = EmitableEvent(EventName.PeerStatusChanged, peerStatus.status)
|
|
50
|
+
|
|
51
|
+
fun reconnectionStatusChanged(reconnectionStatus: ReconnectionStatus) =
|
|
52
|
+
EmitableEvent(EventName.ReconnectionStatusChanged, reconnectionStatus.status)
|
|
54
53
|
|
|
55
54
|
fun currentCameraChanged(
|
|
56
55
|
localCamera: LocalCamera?,
|
|
@@ -7,6 +7,7 @@ import android.media.projection.MediaProjectionManager
|
|
|
7
7
|
import androidx.appcompat.app.AppCompatActivity
|
|
8
8
|
import com.fishjamcloud.client.FishjamClient
|
|
9
9
|
import com.fishjamcloud.client.FishjamClientListener
|
|
10
|
+
import com.fishjamcloud.client.ReconnectionStatus
|
|
10
11
|
import com.fishjamcloud.client.media.CaptureDevice
|
|
11
12
|
import com.fishjamcloud.client.media.CaptureDeviceChangedListener
|
|
12
13
|
import com.fishjamcloud.client.media.LocalAudioTrack
|
|
@@ -29,6 +30,7 @@ import com.twilio.audioswitch.AudioDevice
|
|
|
29
30
|
import expo.modules.kotlin.AppContext
|
|
30
31
|
import expo.modules.kotlin.Promise
|
|
31
32
|
import expo.modules.kotlin.exception.CodedException
|
|
33
|
+
import fishjam.media_events.server.Server
|
|
32
34
|
import io.fishjam.reactnative.extensions.toLocalCamera
|
|
33
35
|
import io.fishjam.reactnative.foregroundService.ForegroundServiceManager
|
|
34
36
|
import io.fishjam.reactnative.managers.LocalCameraTracksChangedListenersManager
|
|
@@ -72,12 +74,18 @@ class RNFishjamClient(
|
|
|
72
74
|
|
|
73
75
|
var appContext: AppContext? = null
|
|
74
76
|
|
|
75
|
-
var peerStatus = PeerStatus.
|
|
77
|
+
var peerStatus = PeerStatus.Idle
|
|
76
78
|
private set(value) {
|
|
77
79
|
field = value
|
|
78
80
|
emitEvent(EmitableEvent.peerStatusChanged(value))
|
|
79
81
|
}
|
|
80
82
|
|
|
83
|
+
var reconnectionStatus = ReconnectionStatus.Idle
|
|
84
|
+
private set(value) {
|
|
85
|
+
field = value
|
|
86
|
+
emitEvent(EmitableEvent.reconnectionStatusChanged(value))
|
|
87
|
+
}
|
|
88
|
+
|
|
81
89
|
private val foregroundServiceManager by lazy {
|
|
82
90
|
ForegroundServiceManager(appContext ?: throw CodedException("appContext not found"))
|
|
83
91
|
}
|
|
@@ -241,7 +249,7 @@ class RNFishjamClient(
|
|
|
241
249
|
CoroutineScope(Dispatchers.Main).launch {
|
|
242
250
|
connectPromise?.reject(ConnectionError(reason))
|
|
243
251
|
connectPromise = null
|
|
244
|
-
peerStatus = PeerStatus.
|
|
252
|
+
peerStatus = PeerStatus.Error
|
|
245
253
|
}
|
|
246
254
|
}
|
|
247
255
|
|
|
@@ -252,7 +260,7 @@ class RNFishjamClient(
|
|
|
252
260
|
config: ConnectConfig,
|
|
253
261
|
promise: Promise
|
|
254
262
|
) {
|
|
255
|
-
peerStatus = PeerStatus.
|
|
263
|
+
peerStatus = PeerStatus.Connecting
|
|
256
264
|
connectPromise = promise
|
|
257
265
|
localUserMetadata = mapOf("server" to emptyMap(), "peer" to peerMetadata)
|
|
258
266
|
fishjamClient.connect(
|
|
@@ -445,7 +453,11 @@ class RNFishjamClient(
|
|
|
445
453
|
"id" to track.id(),
|
|
446
454
|
"type" to "Audio",
|
|
447
455
|
"metadata" to track.metadata,
|
|
448
|
-
"vadStatus" to
|
|
456
|
+
"vadStatus" to
|
|
457
|
+
when (track.vadStatus) {
|
|
458
|
+
Server.MediaEvent.VadNotification.Status.STATUS_SPEECH -> "speech"
|
|
459
|
+
else -> "silence"
|
|
460
|
+
}
|
|
449
461
|
)
|
|
450
462
|
|
|
451
463
|
is LocalVideoTrack ->
|
|
@@ -802,7 +814,7 @@ class RNFishjamClient(
|
|
|
802
814
|
connectPromise?.resolve(null)
|
|
803
815
|
connectPromise = null
|
|
804
816
|
emitEndpoints()
|
|
805
|
-
peerStatus = PeerStatus.
|
|
817
|
+
peerStatus = PeerStatus.Connected
|
|
806
818
|
}
|
|
807
819
|
}
|
|
808
820
|
|
|
@@ -857,7 +869,7 @@ class RNFishjamClient(
|
|
|
857
869
|
}
|
|
858
870
|
|
|
859
871
|
override fun onDisconnected() {
|
|
860
|
-
peerStatus = PeerStatus.
|
|
872
|
+
peerStatus = PeerStatus.Idle
|
|
861
873
|
}
|
|
862
874
|
|
|
863
875
|
override fun onSocketClose(
|
|
@@ -867,7 +879,7 @@ class RNFishjamClient(
|
|
|
867
879
|
CoroutineScope(Dispatchers.Main).launch {
|
|
868
880
|
connectPromise?.reject(SocketClosedError(code, reason))
|
|
869
881
|
connectPromise = null
|
|
870
|
-
peerStatus = PeerStatus.
|
|
882
|
+
peerStatus = PeerStatus.Idle
|
|
871
883
|
}
|
|
872
884
|
}
|
|
873
885
|
|
|
@@ -875,19 +887,20 @@ class RNFishjamClient(
|
|
|
875
887
|
CoroutineScope(Dispatchers.Main).launch {
|
|
876
888
|
connectPromise?.reject(SocketError(t.message ?: t.toString()))
|
|
877
889
|
connectPromise = null
|
|
890
|
+
peerStatus = PeerStatus.Error
|
|
878
891
|
}
|
|
879
892
|
}
|
|
880
893
|
|
|
881
894
|
override fun onReconnected() {
|
|
882
|
-
|
|
895
|
+
reconnectionStatus = ReconnectionStatus.Reconnecting
|
|
883
896
|
}
|
|
884
897
|
|
|
885
898
|
override fun onReconnectionStarted() {
|
|
886
|
-
|
|
899
|
+
reconnectionStatus = ReconnectionStatus.Idle
|
|
887
900
|
}
|
|
888
901
|
|
|
889
902
|
override fun onReconnectionRetriesLimitReached() {
|
|
890
|
-
|
|
903
|
+
reconnectionStatus = ReconnectionStatus.Error
|
|
891
904
|
}
|
|
892
905
|
|
|
893
906
|
override fun onCaptureDeviceChanged(captureDevice: CaptureDevice?) {
|
|
@@ -152,7 +152,15 @@ class RNFishjamClientModule : Module() {
|
|
|
152
152
|
}
|
|
153
153
|
|
|
154
154
|
Property("peerStatus") {
|
|
155
|
-
return@Property rnFishjamClient.peerStatus
|
|
155
|
+
return@Property rnFishjamClient.peerStatus.status
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
Property("reconnectionStatus") {
|
|
159
|
+
return@Property rnFishjamClient.reconnectionStatus.status
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
Function("getPeers") {
|
|
163
|
+
return@Function rnFishjamClient.getPeers()
|
|
156
164
|
}
|
|
157
165
|
|
|
158
166
|
AsyncFunction(
|
|
@@ -215,12 +223,6 @@ class RNFishjamClientModule : Module() {
|
|
|
215
223
|
}
|
|
216
224
|
}
|
|
217
225
|
|
|
218
|
-
AsyncFunction("getPeers") Coroutine { ->
|
|
219
|
-
withContext(Dispatchers.Main) {
|
|
220
|
-
rnFishjamClient.getPeers()
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
|
|
224
226
|
AsyncFunction("updatePeerMetadata") Coroutine { metadata: Map<String, Any> ->
|
|
225
227
|
withContext(Dispatchers.Main) {
|
|
226
228
|
rnFishjamClient.updatePeerMetadata(metadata)
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { NativeModule } from 'react-native';
|
|
1
|
+
import type { NativeModule } from 'expo-modules-core/types';
|
|
3
2
|
import type { RTCStats } from './debug/stats/types';
|
|
4
3
|
import type { GenericMetadata, SimulcastConfig } from './types';
|
|
5
4
|
import type { CameraConfigInternal, Camera } from './hooks/useCamera';
|
|
@@ -8,8 +7,9 @@ import type { ScreenShareOptionsInternal } from './hooks/useScreenShare';
|
|
|
8
7
|
import type { ConnectionConfig } from './common/client';
|
|
9
8
|
import { PeerStatus } from './hooks/usePeerStatus';
|
|
10
9
|
import { ForegroundServiceConfig } from './hooks/useForegroundService';
|
|
10
|
+
import { ReconnectionStatus } from './hooks/useReconnection';
|
|
11
11
|
type Metadata = {
|
|
12
|
-
[key: string]:
|
|
12
|
+
[key: string]: unknown;
|
|
13
13
|
};
|
|
14
14
|
type RNFishjamClient = {
|
|
15
15
|
isMicrophoneOn: boolean;
|
|
@@ -19,6 +19,8 @@ type RNFishjamClient = {
|
|
|
19
19
|
cameras: ReadonlyArray<Camera>;
|
|
20
20
|
currentCamera: Camera | null;
|
|
21
21
|
peerStatus: PeerStatus;
|
|
22
|
+
reconnectionStatus: ReconnectionStatus;
|
|
23
|
+
getPeers: <PeerMetadataType extends Metadata, ServerMetadata extends Metadata = GenericMetadata>() => Peer<PeerMetadataType, ServerMetadata>[];
|
|
22
24
|
joinRoom: (url: string, peerToken: string, peerMetadata: Metadata, config: ConnectionConfig) => Promise<void>;
|
|
23
25
|
leaveRoom: () => Promise<void>;
|
|
24
26
|
startCamera: (config: CameraConfigInternal) => Promise<boolean>;
|
|
@@ -29,7 +31,6 @@ type RNFishjamClient = {
|
|
|
29
31
|
handleScreenSharePermission: () => Promise<'granted' | 'denied'>;
|
|
30
32
|
toggleScreenShare: (screenShareOptions: Partial<ScreenShareOptionsInternal>) => Promise<void>;
|
|
31
33
|
toggleAppScreenShare: (screenShareOptions: Partial<ScreenShareOptionsInternal>) => Promise<void>;
|
|
32
|
-
getPeers: <PeerMetadataType extends Metadata, ServerMetadata extends Metadata = GenericMetadata>() => Promise<Peer<PeerMetadataType, ServerMetadata>[]>;
|
|
33
34
|
updatePeerMetadata: <MetadataType extends Metadata>(metadata: MetadataType) => Promise<void>;
|
|
34
35
|
updateVideoTrackMetadata: <MetadataType extends Metadata>(metadata: MetadataType) => Promise<void>;
|
|
35
36
|
updateScreenShareTrackMetadata: <MetadataType extends Metadata>(metadata: MetadataType) => Promise<void>;
|
|
@@ -50,7 +51,23 @@ type RNFishjamClient = {
|
|
|
50
51
|
startForegroundService: (config: ForegroundServiceConfig) => Promise<void>;
|
|
51
52
|
stopForegroundService: () => void;
|
|
52
53
|
};
|
|
53
|
-
export declare const
|
|
54
|
-
|
|
54
|
+
export declare const ReceivableEvents: {
|
|
55
|
+
readonly IsMicrophoneOn: "IsMicrophoneOn";
|
|
56
|
+
readonly IsScreenShareOn: "IsScreenShareOn";
|
|
57
|
+
readonly IsAppScreenShareOn: "IsAppScreenShareOn";
|
|
58
|
+
readonly SimulcastConfigUpdate: "SimulcastConfigUpdate";
|
|
59
|
+
readonly PeersUpdate: "PeersUpdate";
|
|
60
|
+
readonly AudioDeviceUpdate: "AudioDeviceUpdate";
|
|
61
|
+
readonly SendMediaEvent: "SendMediaEvent";
|
|
62
|
+
readonly BandwidthEstimation: "BandwidthEstimation";
|
|
63
|
+
readonly ReconnectionRetriesLimitReached: "ReconnectionRetriesLimitReached";
|
|
64
|
+
readonly ReconnectionStarted: "ReconnectionStarted";
|
|
65
|
+
readonly Reconnected: "Reconnected";
|
|
66
|
+
readonly Warning: "Warning";
|
|
67
|
+
readonly PeerStatusChanged: "PeerStatusChanged";
|
|
68
|
+
readonly ReconnectionStatusChanged: "ReconnectionStatusChanged";
|
|
69
|
+
readonly CurrentCameraChanged: "CurrentCameraChanged";
|
|
70
|
+
};
|
|
71
|
+
declare const _default: RNFishjamClient & NativeModule<Record<keyof typeof ReceivableEvents, <T>(...args: T[]) => void>>;
|
|
55
72
|
export default _default;
|
|
56
73
|
//# sourceMappingURL=RNFishjamClientModule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RNFishjamClientModule.d.ts","sourceRoot":"","sources":["../src/RNFishjamClientModule.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RNFishjamClientModule.d.ts","sourceRoot":"","sources":["../src/RNFishjamClientModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,20 @@
|
|
|
1
|
-
import {
|
|
2
|
-
const
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { requireNativeModule } from 'expo-modules-core';
|
|
2
|
+
export const ReceivableEvents = {
|
|
3
|
+
IsMicrophoneOn: 'IsMicrophoneOn',
|
|
4
|
+
IsScreenShareOn: 'IsScreenShareOn',
|
|
5
|
+
IsAppScreenShareOn: 'IsAppScreenShareOn', // only for iOS
|
|
6
|
+
SimulcastConfigUpdate: 'SimulcastConfigUpdate',
|
|
7
|
+
PeersUpdate: 'PeersUpdate',
|
|
8
|
+
AudioDeviceUpdate: 'AudioDeviceUpdate',
|
|
9
|
+
SendMediaEvent: 'SendMediaEvent',
|
|
10
|
+
BandwidthEstimation: 'BandwidthEstimation',
|
|
11
|
+
ReconnectionRetriesLimitReached: 'ReconnectionRetriesLimitReached',
|
|
12
|
+
ReconnectionStarted: 'ReconnectionStarted',
|
|
13
|
+
Reconnected: 'Reconnected',
|
|
14
|
+
Warning: 'Warning',
|
|
15
|
+
PeerStatusChanged: 'PeerStatusChanged',
|
|
16
|
+
ReconnectionStatusChanged: 'ReconnectionStatusChanged',
|
|
17
|
+
CurrentCameraChanged: 'CurrentCameraChanged',
|
|
18
|
+
};
|
|
19
|
+
export default requireNativeModule('RNFishjamClient');
|
|
5
20
|
//# sourceMappingURL=RNFishjamClientModule.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RNFishjamClientModule.js","sourceRoot":"","sources":["../src/RNFishjamClientModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"RNFishjamClientModule.js","sourceRoot":"","sources":["../src/RNFishjamClientModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAoFxD,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,cAAc,EAAE,gBAAgB;IAChC,eAAe,EAAE,iBAAiB;IAClC,kBAAkB,EAAE,oBAAoB,EAAE,eAAe;IACzD,qBAAqB,EAAE,uBAAuB;IAC9C,WAAW,EAAE,aAAa;IAC1B,iBAAiB,EAAE,mBAAmB;IACtC,cAAc,EAAE,gBAAgB;IAChC,mBAAmB,EAAE,qBAAqB;IAC1C,+BAA+B,EAAE,iCAAiC;IAClE,mBAAmB,EAAE,qBAAqB;IAC1C,WAAW,EAAE,aAAa;IAC1B,OAAO,EAAE,SAAS;IAClB,iBAAiB,EAAE,mBAAmB;IACtC,yBAAyB,EAAE,2BAA2B;IACtD,oBAAoB,EAAE,sBAAsB;CACpC,CAAC;AAEX,eAAe,mBAAmB,CAAC,iBAAiB,CAIjD,CAAC","sourcesContent":["import { requireNativeModule } from 'expo-modules-core';\n\nimport type { NativeModule } from 'expo-modules-core/types';\nimport type { RTCStats } from './debug/stats/types';\nimport type { GenericMetadata, SimulcastConfig } from './types';\nimport type { CameraConfigInternal, Camera } from './hooks/useCamera';\nimport type { Peer } from './hooks/usePeers';\nimport type { ScreenShareOptionsInternal } from './hooks/useScreenShare';\nimport type { ConnectionConfig } from './common/client';\nimport { PeerStatus } from './hooks/usePeerStatus';\nimport { ForegroundServiceConfig } from './hooks/useForegroundService';\nimport { ReconnectionStatus } from './hooks/useReconnection';\n\ntype Metadata = { [key: string]: unknown };\n\ntype RNFishjamClient = {\n isMicrophoneOn: boolean;\n isCameraOn: boolean;\n isScreenShareOn: boolean;\n isAppScreenShareOn: boolean; // only available on ios\n cameras: ReadonlyArray<Camera>;\n currentCamera: Camera | null;\n peerStatus: PeerStatus;\n reconnectionStatus: ReconnectionStatus;\n\n getPeers: <\n PeerMetadataType extends Metadata,\n ServerMetadata extends Metadata = GenericMetadata,\n >() => Peer<PeerMetadataType, ServerMetadata>[];\n\n joinRoom: (\n url: string,\n peerToken: string,\n peerMetadata: Metadata,\n config: ConnectionConfig,\n ) => Promise<void>;\n leaveRoom: () => Promise<void>;\n startCamera: (config: CameraConfigInternal) => Promise<boolean>;\n toggleMicrophone: () => Promise<boolean>;\n toggleCamera: () => Promise<boolean>;\n flipCamera: () => Promise<void>;\n switchCamera: (cameraId: string) => Promise<void>;\n handleScreenSharePermission: () => Promise<'granted' | 'denied'>;\n toggleScreenShare: (\n screenShareOptions: Partial<ScreenShareOptionsInternal>,\n ) => Promise<void>;\n toggleAppScreenShare: (\n screenShareOptions: Partial<ScreenShareOptionsInternal>,\n ) => Promise<void>;\n updatePeerMetadata: <MetadataType extends Metadata>(\n metadata: MetadataType,\n ) => Promise<void>;\n updateVideoTrackMetadata: <MetadataType extends Metadata>(\n metadata: MetadataType,\n ) => Promise<void>;\n updateScreenShareTrackMetadata: <MetadataType extends Metadata>(\n metadata: MetadataType,\n ) => Promise<void>;\n setOutputAudioDevice: (audioDevice: string) => Promise<void>;\n startAudioSwitcher: () => Promise<void>;\n stopAudioSwitcher: () => Promise<void>;\n selectAudioSessionMode: (sessionMode: string) => Promise<void>;\n showAudioRoutePicker: () => Promise<void>;\n toggleScreenShareTrackEncoding: (\n encoding: string,\n ) => Promise<SimulcastConfig>;\n setScreenShareTrackBandwidth: (bandwidth: number) => Promise<void>;\n setScreenShareTrackEncodingBandwidth: (\n encoding: string,\n bandwidth: number,\n ) => Promise<void>;\n setTargetTrackEncoding: (trackId: string, encoding: string) => Promise<void>;\n toggleVideoTrackEncoding: (encoding: string) => Promise<SimulcastConfig>;\n setVideoTrackEncodingBandwidth: (\n encoding: string,\n bandwidth: number,\n ) => Promise<void>;\n setVideoTrackBandwidth: (bandwidth: number) => Promise<void>;\n changeWebRTCLoggingSeverity: (severity: string) => Promise<void>;\n getStatistics: () => Promise<RTCStats>;\n startForegroundService: (config: ForegroundServiceConfig) => Promise<void>;\n stopForegroundService: () => void;\n};\n\nexport const ReceivableEvents = {\n IsMicrophoneOn: 'IsMicrophoneOn',\n IsScreenShareOn: 'IsScreenShareOn',\n IsAppScreenShareOn: 'IsAppScreenShareOn', // only for iOS\n SimulcastConfigUpdate: 'SimulcastConfigUpdate',\n PeersUpdate: 'PeersUpdate',\n AudioDeviceUpdate: 'AudioDeviceUpdate',\n SendMediaEvent: 'SendMediaEvent',\n BandwidthEstimation: 'BandwidthEstimation',\n ReconnectionRetriesLimitReached: 'ReconnectionRetriesLimitReached',\n ReconnectionStarted: 'ReconnectionStarted',\n Reconnected: 'Reconnected',\n Warning: 'Warning',\n PeerStatusChanged: 'PeerStatusChanged',\n ReconnectionStatusChanged: 'ReconnectionStatusChanged',\n CurrentCameraChanged: 'CurrentCameraChanged',\n} as const;\n\nexport default requireNativeModule('RNFishjamClient') as RNFishjamClient &\n NativeModule<\n // TODO: Make event arguments typesafe instead of generic.\n Record<keyof typeof ReceivableEvents, <T>(...args: T[]) => void>\n >;\n"]}
|
package/build/common/client.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { GenericMetadata } from '../types';
|
|
2
|
-
import { PeerTrackMetadata } from '../hooks/usePeers';
|
|
3
2
|
export type ConnectionConfig = {
|
|
4
3
|
/**
|
|
5
4
|
* Configuration for automatic reconnection
|
|
@@ -20,11 +19,7 @@ export type ConnectionConfig = {
|
|
|
20
19
|
* @param peerToken token received from server (or Room Manager)
|
|
21
20
|
* @param peerMetadata string indexed record with metadata, that will be available to all other peers
|
|
22
21
|
* @param config additional connection configuration
|
|
23
|
-
* @category Connection
|
|
24
|
-
*/
|
|
25
|
-
export declare function joinRoom<PeerMetadata extends GenericMetadata = GenericMetadata, ServerMetadata extends GenericMetadata = GenericMetadata>(url: string, peerToken: string, peerMetadata?: PeerTrackMetadata<PeerMetadata, ServerMetadata>, config?: ConnectionConfig): Promise<void>;
|
|
26
|
-
/**
|
|
27
|
-
* @category Connection
|
|
28
22
|
*/
|
|
23
|
+
export declare function joinRoom<PeerMetadata extends GenericMetadata = GenericMetadata>(url: string, peerToken: string, peerMetadata?: PeerMetadata, config?: ConnectionConfig): Promise<void>;
|
|
29
24
|
export declare function leaveRoom(): Promise<void>;
|
|
30
25
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/common/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/common/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAG3C,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;;;;;;OAOG;IACH,eAAe,CAAC,EAAE;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,QAAQ,CAC5B,YAAY,SAAS,eAAe,GAAG,eAAe,EAEtD,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,YAAY,EAC3B,MAAM,CAAC,EAAE,gBAAgB,iBAQ1B;AAED,wBAAsB,SAAS,kBAE9B"}
|
package/build/common/client.js
CHANGED
|
@@ -4,14 +4,10 @@ import RNFishjamClientModule from '../RNFishjamClientModule';
|
|
|
4
4
|
* @param peerToken token received from server (or Room Manager)
|
|
5
5
|
* @param peerMetadata string indexed record with metadata, that will be available to all other peers
|
|
6
6
|
* @param config additional connection configuration
|
|
7
|
-
* @category Connection
|
|
8
7
|
*/
|
|
9
8
|
export async function joinRoom(url, peerToken, peerMetadata, config) {
|
|
10
9
|
await RNFishjamClientModule.joinRoom(url, peerToken, peerMetadata ?? {}, config ?? {});
|
|
11
10
|
}
|
|
12
|
-
/**
|
|
13
|
-
* @category Connection
|
|
14
|
-
*/
|
|
15
11
|
export async function leaveRoom() {
|
|
16
12
|
await RNFishjamClientModule.leaveRoom();
|
|
17
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/common/client.ts"],"names":[],"mappings":"AACA,OAAO,qBAAqB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/common/client.ts"],"names":[],"mappings":"AACA,OAAO,qBAAqB,MAAM,0BAA0B,CAAC;AAkB7D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAG5B,GAAW,EACX,SAAiB,EACjB,YAA2B,EAC3B,MAAyB;IAEzB,MAAM,qBAAqB,CAAC,QAAQ,CAClC,GAAG,EACH,SAAS,EACT,YAAY,IAAI,EAAE,EAClB,MAAM,IAAI,EAAE,CACb,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,qBAAqB,CAAC,SAAS,EAAE,CAAC;AAC1C,CAAC","sourcesContent":["import { GenericMetadata } from '../types';\nimport RNFishjamClientModule from '../RNFishjamClientModule';\n\nexport type ConnectionConfig = {\n /**\n * Configuration for automatic reconnection\n * sdk uses a linear backoff algorithm, that is the formula\n * for the delay of the nth attempt is\n * n * delayMs + initialDelayMs\n *\n * Pass 0 for maxAttempts to disable automatic reconnection\n */\n reconnectConfig?: {\n maxAttempts?: number;\n initialDelayMs?: number;\n delayMs?: number;\n };\n};\n\n/**\n * @param url fishjam Url\n * @param peerToken token received from server (or Room Manager)\n * @param peerMetadata string indexed record with metadata, that will be available to all other peers\n * @param config additional connection configuration\n */\nexport async function joinRoom<\n PeerMetadata extends GenericMetadata = GenericMetadata,\n>(\n url: string,\n peerToken: string,\n peerMetadata?: PeerMetadata,\n config?: ConnectionConfig,\n) {\n await RNFishjamClientModule.joinRoom(\n url,\n peerToken,\n peerMetadata ?? {},\n config ?? {},\n );\n}\n\nexport async function leaveRoom() {\n await RNFishjamClientModule.leaveRoom();\n}\n"]}
|
|
@@ -2,7 +2,7 @@ import { GenericMetadata } from '../types';
|
|
|
2
2
|
/**
|
|
3
3
|
* Updates metadata send to other peers
|
|
4
4
|
* @param peerMetadata string indexed record with metadata, that will be available to all other peers
|
|
5
|
-
* @
|
|
5
|
+
* @deprecated
|
|
6
6
|
*/
|
|
7
7
|
export declare function updatePeerMetadata<PeerMetadata extends GenericMetadata = GenericMetadata>(peerMetadata: PeerMetadata): Promise<void>;
|
|
8
8
|
//# sourceMappingURL=metadata.d.ts.map
|
package/build/common/metadata.js
CHANGED
|
@@ -2,7 +2,7 @@ import RNFishjamClientModule from '../RNFishjamClientModule';
|
|
|
2
2
|
/**
|
|
3
3
|
* Updates metadata send to other peers
|
|
4
4
|
* @param peerMetadata string indexed record with metadata, that will be available to all other peers
|
|
5
|
-
* @
|
|
5
|
+
* @deprecated
|
|
6
6
|
*/
|
|
7
7
|
export async function updatePeerMetadata(peerMetadata) {
|
|
8
8
|
await RNFishjamClientModule.updatePeerMetadata(peerMetadata);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/common/metadata.ts"],"names":[],"mappings":"AACA,OAAO,qBAAqB,MAAM,0BAA0B,CAAC;AAE7D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAEtC,YAA0B;IAC1B,MAAM,qBAAqB,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;AAC/D,CAAC","sourcesContent":["import { GenericMetadata } from '../types';\nimport RNFishjamClientModule from '../RNFishjamClientModule';\n\n/**\n * Updates metadata send to other peers\n * @param peerMetadata string indexed record with metadata, that will be available to all other peers\n * @
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/common/metadata.ts"],"names":[],"mappings":"AACA,OAAO,qBAAqB,MAAM,0BAA0B,CAAC;AAE7D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAEtC,YAA0B;IAC1B,MAAM,qBAAqB,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;AAC/D,CAAC","sourcesContent":["import { GenericMetadata } from '../types';\nimport RNFishjamClientModule from '../RNFishjamClientModule';\n\n/**\n * Updates metadata send to other peers\n * @param peerMetadata string indexed record with metadata, that will be available to all other peers\n * @deprecated\n */\nexport async function updatePeerMetadata<\n PeerMetadata extends GenericMetadata = GenericMetadata,\n>(peerMetadata: PeerMetadata) {\n await RNFishjamClientModule.updatePeerMetadata(peerMetadata);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parsePeersToTracks.d.ts","sourceRoot":"","sources":["../../../src/components/FishjamRoom/parsePeersToTracks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAqC5C,eAAO,MAAM,kBAAkB,cAClB,cAAc,GAAG,IAAI,eACnB,cAAc,EAAE,KAC5B,SAAS,
|
|
1
|
+
{"version":3,"file":"parsePeersToTracks.d.ts","sourceRoot":"","sources":["../../../src/components/FishjamRoom/parsePeersToTracks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAqC5C,eAAO,MAAM,kBAAkB,cAClB,cAAc,GAAG,IAAI,eACnB,cAAc,EAAE,KAC5B,SAAS,EAGX,CAAC"}
|
|
@@ -27,10 +27,8 @@ const createGridTracksFromPeer = (peer) => {
|
|
|
27
27
|
}
|
|
28
28
|
return tracks;
|
|
29
29
|
};
|
|
30
|
-
export const parsePeersToTracks = (localPeer, remotePeers) =>
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
];
|
|
35
|
-
};
|
|
30
|
+
export const parsePeersToTracks = (localPeer, remotePeers) => [
|
|
31
|
+
...(localPeer ? createGridTracksFromPeer(localPeer) : []),
|
|
32
|
+
...remotePeers.flatMap(createGridTracksFromPeer),
|
|
33
|
+
];
|
|
36
34
|
//# sourceMappingURL=parsePeersToTracks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parsePeersToTracks.js","sourceRoot":"","sources":["../../../src/components/FishjamRoom/parsePeersToTracks.ts"],"names":[],"mappings":"AAGA,MAAM,wBAAwB,GAAG,CAAC,IAAoB,EAAe,EAAE;IACrE,MAAM,MAAM,GAAgB,EAAE,CAAC;IAE/B,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,IAAI,CAAC,WAAW;YACvB,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,KAAK,QAAQ;SAC1D,CAAC,CAAC;IACL,CAAC;IAED,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC;QACtE,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,IAAI,CAAC,qBAAqB;YACjC,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,qBAAqB,EAAE,SAAS,KAAK,QAAQ;SAChE,CAAC,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EACT,IAAI,CAAC,eAAe,EAAE,SAAS,KAAK,QAAQ;gBAC5C,IAAI,CAAC,qBAAqB,EAAE,SAAS,KAAK,QAAQ;SACrD,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,SAAgC,EAChC,WAA6B,EAChB,EAAE
|
|
1
|
+
{"version":3,"file":"parsePeersToTracks.js","sourceRoot":"","sources":["../../../src/components/FishjamRoom/parsePeersToTracks.ts"],"names":[],"mappings":"AAGA,MAAM,wBAAwB,GAAG,CAAC,IAAoB,EAAe,EAAE;IACrE,MAAM,MAAM,GAAgB,EAAE,CAAC;IAE/B,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,IAAI,CAAC,WAAW;YACvB,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE,SAAS,KAAK,QAAQ;SAC1D,CAAC,CAAC;IACL,CAAC;IAED,IAAI,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC;QACtE,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,IAAI,CAAC,qBAAqB;YACjC,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,qBAAqB,EAAE,SAAS,KAAK,QAAQ;SAChE,CAAC,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC;YACV,KAAK,EAAE,IAAI;YACX,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EACT,IAAI,CAAC,eAAe,EAAE,SAAS,KAAK,QAAQ;gBAC5C,IAAI,CAAC,qBAAqB,EAAE,SAAS,KAAK,QAAQ;SACrD,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,SAAgC,EAChC,WAA6B,EAChB,EAAE,CAAC;IAChB,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzD,GAAG,WAAW,CAAC,OAAO,CAAC,wBAAwB,CAAC;CACjD,CAAC","sourcesContent":["import { PeerWithTracks } from '../../hooks/usePeers';\nimport { GridTrack } from './GridTrackItem';\n\nconst createGridTracksFromPeer = (peer: PeerWithTracks): GridTrack[] => {\n const tracks: GridTrack[] = [];\n\n if (peer.cameraTrack && peer.cameraTrack.isActive) {\n tracks.push({\n track: peer.cameraTrack,\n peerId: peer.id,\n isLocal: peer.isLocal,\n isVadActive: peer.microphoneTrack?.vadStatus === 'speech',\n });\n }\n\n if (peer.screenShareVideoTrack && peer.screenShareVideoTrack.isActive) {\n tracks.push({\n track: peer.screenShareVideoTrack,\n peerId: peer.id,\n isLocal: peer.isLocal,\n isVadActive: peer.screenShareAudioTrack?.vadStatus === 'speech',\n });\n }\n\n if (tracks.length === 0) {\n tracks.push({\n track: null,\n peerId: peer.id,\n isLocal: peer.isLocal,\n isVadActive:\n peer.microphoneTrack?.vadStatus === 'speech' ||\n peer.screenShareAudioTrack?.vadStatus === 'speech',\n });\n }\n\n return tracks;\n};\n\nexport const parsePeersToTracks = (\n localPeer: PeerWithTracks | null,\n remotePeers: PeerWithTracks[],\n): GridTrack[] => [\n ...(localPeer ? createGridTracksFromPeer(localPeer) : []),\n ...remotePeers.flatMap(createGridTracksFromPeer),\n];\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRTCStatistics.d.ts","sourceRoot":"","sources":["../../../src/debug/stats/useRTCStatistics.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAqC,QAAQ,EAAE,MAAM,SAAS,CAAC;AAG3E;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,eAAe,EAAE,MAAM;;
|
|
1
|
+
{"version":3,"file":"useRTCStatistics.d.ts","sourceRoot":"","sources":["../../../src/debug/stats/useRTCStatistics.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAqC,QAAQ,EAAE,MAAM,SAAS,CAAC;AAG3E;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,eAAe,EAAE,MAAM;;EAqFvD"}
|
|
@@ -10,13 +10,13 @@ export function useRTCStatistics(refreshInterval) {
|
|
|
10
10
|
const [statistics, setStatistics] = useState([]);
|
|
11
11
|
// Calculates diff between pervious and current stats,
|
|
12
12
|
// providing end users with a per second metric.
|
|
13
|
-
const processIncomingStats = useCallback((
|
|
14
|
-
Object.keys(
|
|
13
|
+
const processIncomingStats = useCallback((stats, stat) => {
|
|
14
|
+
Object.keys(stat).forEach((obj) => {
|
|
15
15
|
if (obj.includes('Inbound')) {
|
|
16
|
-
const rtcStats =
|
|
17
|
-
if (
|
|
18
|
-
Object.keys(
|
|
19
|
-
const prevRtcStats =
|
|
16
|
+
const rtcStats = stat[obj];
|
|
17
|
+
if (stats.length > 0 &&
|
|
18
|
+
Object.keys(stats[stats.length - 1]).includes(obj)) {
|
|
19
|
+
const prevRtcStats = stats[stats.length - 1][obj];
|
|
20
20
|
rtcStats['packetsLost/s'] =
|
|
21
21
|
rtcStats['packetsLost'] - prevRtcStats['packetsLost'];
|
|
22
22
|
rtcStats['packetsReceived/s'] =
|
|
@@ -35,13 +35,13 @@ export function useRTCStatistics(refreshInterval) {
|
|
|
35
35
|
rtcStats['framesReceived/s'] = 0;
|
|
36
36
|
rtcStats['framesDropped/s'] = 0;
|
|
37
37
|
}
|
|
38
|
-
return
|
|
38
|
+
return stat;
|
|
39
39
|
}
|
|
40
40
|
// Outbound
|
|
41
|
-
const rtcStats =
|
|
42
|
-
if (
|
|
43
|
-
Object.keys(
|
|
44
|
-
const prevRtcStats =
|
|
41
|
+
const rtcStats = stat[obj];
|
|
42
|
+
if (stats.length > 0 &&
|
|
43
|
+
Object.keys(stats[stats.length - 1]).includes(obj)) {
|
|
44
|
+
const prevRtcStats = stats[stats.length - 1][obj];
|
|
45
45
|
rtcStats['bytesSent/s'] =
|
|
46
46
|
rtcStats['bytesSent'] - prevRtcStats['bytesSent'];
|
|
47
47
|
rtcStats['packetsSent/s'] =
|
|
@@ -54,9 +54,9 @@ export function useRTCStatistics(refreshInterval) {
|
|
|
54
54
|
rtcStats['packetsSent/s'] = 0;
|
|
55
55
|
rtcStats['framesEncoded/s'] = 0;
|
|
56
56
|
}
|
|
57
|
-
return
|
|
57
|
+
return stat;
|
|
58
58
|
});
|
|
59
|
-
return
|
|
59
|
+
return stat;
|
|
60
60
|
}, []);
|
|
61
61
|
// Gets stats from the native libraries.
|
|
62
62
|
const getStatistics = useCallback(async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRTCStatistics.js","sourceRoot":"","sources":["../../../src/debug/stats/useRTCStatistics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGzD,OAAO,qBAAqB,MAAM,6BAA6B,CAAC;AAEhE;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,eAAuB;IACtD,MAAM,QAAQ,GAAG,GAAG,CAAC;IACrB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAa,EAAE,CAAC,CAAC;IAE7D,sDAAsD;IACtD,gDAAgD;IAChD,MAAM,oBAAoB,GAAG,WAAW,CACtC,CAAC,
|
|
1
|
+
{"version":3,"file":"useRTCStatistics.js","sourceRoot":"","sources":["../../../src/debug/stats/useRTCStatistics.ts"],"names":[],"mappings":"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","sourcesContent":["import { takeRight } from 'lodash';\nimport { useCallback, useEffect, useState } from 'react';\n\nimport type { RTCInboundStats, RTCOutboundStats, RTCStats } from './types';\nimport RNFishjamClientModule from '../../RNFishjamClientModule';\n\n/**\n * This hook provides access to current rtc statistics data.\n * @category Debugging\n */\nexport function useRTCStatistics(refreshInterval: number) {\n const MAX_SIZE = 120;\n const [statistics, setStatistics] = useState<RTCStats[]>([]);\n\n // Calculates diff between pervious and current stats,\n // providing end users with a per second metric.\n const processIncomingStats = useCallback(\n (stats: ReadonlyArray<RTCStats>, stat: Readonly<RTCStats>) => {\n Object.keys(stat).forEach((obj) => {\n if (obj.includes('Inbound')) {\n const rtcStats = stat[obj] as RTCInboundStats;\n\n if (\n stats.length > 0 &&\n Object.keys(stats[stats.length - 1]).includes(obj)\n ) {\n const prevRtcStats = stats[stats.length - 1][\n obj\n ] as RTCInboundStats;\n\n rtcStats['packetsLost/s'] =\n rtcStats['packetsLost'] - prevRtcStats['packetsLost'];\n rtcStats['packetsReceived/s'] =\n rtcStats['packetsReceived'] - prevRtcStats['packetsReceived'];\n rtcStats['bytesReceived/s'] =\n rtcStats['bytesReceived'] - prevRtcStats['bytesReceived'];\n rtcStats['framesReceived/s'] =\n rtcStats['framesReceived'] - prevRtcStats['framesReceived'];\n rtcStats['framesDropped/s'] =\n rtcStats['framesDropped'] - prevRtcStats['framesDropped'];\n } else {\n rtcStats['packetsLost/s'] = 0;\n rtcStats['packetsReceived/s'] = 0;\n rtcStats['bytesReceived/s'] = 0;\n rtcStats['framesReceived/s'] = 0;\n rtcStats['framesDropped/s'] = 0;\n }\n return stat;\n }\n // Outbound\n const rtcStats = stat[obj] as RTCOutboundStats;\n\n if (\n stats.length > 0 &&\n Object.keys(stats[stats.length - 1]).includes(obj)\n ) {\n const prevRtcStats = stats[stats.length - 1][obj] as RTCOutboundStats;\n\n rtcStats['bytesSent/s'] =\n rtcStats['bytesSent'] - prevRtcStats['bytesSent'];\n rtcStats['packetsSent/s'] =\n rtcStats['packetsSent'] - prevRtcStats['packetsSent'];\n rtcStats['framesEncoded/s'] =\n rtcStats['framesEncoded'] - prevRtcStats['framesEncoded'];\n } else {\n rtcStats['bytesSent/s'] = 0;\n rtcStats['packetsSent/s'] = 0;\n rtcStats['framesEncoded/s'] = 0;\n }\n return stat;\n });\n return stat;\n },\n [],\n );\n\n // Gets stats from the native libraries.\n const getStatistics = useCallback(async () => {\n const stats = await RNFishjamClientModule.getStatistics();\n setStatistics((prev) => {\n const newStats = [...prev, processIncomingStats(prev, stats)];\n takeRight(newStats, MAX_SIZE);\n return newStats;\n });\n }, [processIncomingStats]);\n\n useEffect(() => {\n const intervalId = setInterval(getStatistics, refreshInterval);\n return () => {\n clearInterval(intervalId);\n setStatistics([]);\n };\n }, [getStatistics, refreshInterval]);\n\n return { statistics };\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFishjamEvent.d.ts","sourceRoot":"","sources":["../../../src/hooks/internal/useFishjamEvent.ts"],"names":[],"mappings":"AACA,OAAqB,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE7E,wBAAgB,eAAe,CAAC,CAAC,EAC/B,SAAS,EAAE,MAAM,OAAO,gBAAgB,EACxC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,QAQ7B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import nativeModule from '../../RNFishjamClientModule';
|
|
3
|
+
export function useFishjamEvent(eventName, callback) {
|
|
4
|
+
useEffect(() => {
|
|
5
|
+
const eventListener = nativeModule.addListener(eventName, (event) => {
|
|
6
|
+
callback(event[eventName]);
|
|
7
|
+
});
|
|
8
|
+
return () => eventListener.remove();
|
|
9
|
+
}, [callback, eventName]);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=useFishjamEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFishjamEvent.js","sourceRoot":"","sources":["../../../src/hooks/internal/useFishjamEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,YAAkC,MAAM,6BAA6B,CAAC;AAE7E,MAAM,UAAU,eAAe,CAC7B,SAAwC,EACxC,QAA4B;IAE5B,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,aAAa,GAAG,YAAY,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE;YAClE,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QACH,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;IACtC,CAAC,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAC5B,CAAC","sourcesContent":["import { useEffect } from 'react';\nimport nativeModule, { ReceivableEvents } from '../../RNFishjamClientModule';\n\nexport function useFishjamEvent<T>(\n eventName: keyof typeof ReceivableEvents,\n callback: (event: T) => void,\n) {\n useEffect(() => {\n const eventListener = nativeModule.addListener(eventName, (event) => {\n callback(event[eventName]);\n });\n return () => eventListener.remove();\n }, [callback, eventName]);\n}\n"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { ReceivableEvents } from '../../RNFishjamClientModule';
|
|
2
|
+
export declare function useFishjamEventState<EventType, StateType = EventType>(eventName: keyof typeof ReceivableEvents, defaultValue: EventType, transform?: (eventValue: EventType) => StateType): StateType;
|
|
3
|
+
//# sourceMappingURL=useFishjamEventState.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFishjamEventState.d.ts","sourceRoot":"","sources":["../../../src/hooks/internal/useFishjamEventState.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAE/D,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,EACnE,SAAS,EAAE,MAAM,OAAO,gBAAgB,EACxC,YAAY,EAAE,SAAS,EACvB,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,SAAS,KAAK,SAAS,aAsBjD"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { useCallback, useState } from 'react';
|
|
2
2
|
import { useFishjamEvent } from './useFishjamEvent';
|
|
3
3
|
export function useFishjamEventState(eventName, defaultValue, transform) {
|
|
4
|
-
const [value, setValue] = useState(
|
|
4
|
+
const [value, setValue] = useState(transform
|
|
5
|
+
? transform(defaultValue)
|
|
6
|
+
: defaultValue);
|
|
5
7
|
const onEvent = useCallback((newValue) => {
|
|
6
8
|
if (transform) {
|
|
7
9
|
setValue(transform(newValue));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFishjamEventState.js","sourceRoot":"","sources":["../../../src/hooks/internal/useFishjamEventState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,MAAM,UAAU,oBAAoB,CAClC,SAAwC,EACxC,YAAuB,EACvB,SAAgD;IAEhD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAChC,SAAS;QACP,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC;QACzB,CAAC,CAAE,YAAqC,CAC3C,CAAC;IAEF,MAAM,OAAO,GAAG,WAAW,CACzB,CAAC,QAAmB,EAAE,EAAE;QACtB,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,QAAgC,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC,EACD,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAEpC,OAAO,KAAK,CAAC;AACf,CAAC","sourcesContent":["import { useCallback, useState } from 'react';\nimport { useFishjamEvent } from './useFishjamEvent';\nimport { ReceivableEvents } from '../../RNFishjamClientModule';\n\nexport function useFishjamEventState<EventType, StateType = EventType>(\n eventName: keyof typeof ReceivableEvents,\n defaultValue: EventType,\n transform?: (eventValue: EventType) => StateType,\n) {\n const [value, setValue] = useState<StateType>(\n transform\n ? transform(defaultValue)\n : (defaultValue as unknown as StateType),\n );\n\n const onEvent = useCallback(\n (newValue: EventType) => {\n if (transform) {\n setValue(transform(newValue));\n } else {\n setValue(newValue as unknown as StateType);\n }\n },\n [transform],\n );\n\n useFishjamEvent(eventName, onEvent);\n\n return value;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAppScreenShare.d.ts","sourceRoot":"","sources":["../../src/hooks/useAppScreenShare.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useAppScreenShare.d.ts","sourceRoot":"","sources":["../../src/hooks/useAppScreenShare.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAWtD,KAAK,kBAAkB,GAAG;IACxB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,eAAe,CAAC;IACjC,oBAAoB,EAAE,CACpB,kBAAkB,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,KAC7C,OAAO,CAAC,IAAI,CAAC,CAAC;CACpB,CAAC;AA8CF,iBAAS,+BAA+B,IAAI,kBAAkB,CAM7D;AAED,eAAO,MAAM,iBAAiB,wCAG5B,CAAC"}
|