@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.
Files changed (88) hide show
  1. package/android/build.gradle +1 -1
  2. package/android/src/main/java/io/fishjam/reactnative/EmitableEvents.kt +13 -14
  3. package/android/src/main/java/io/fishjam/reactnative/RNFishjamClient.kt +23 -10
  4. package/android/src/main/java/io/fishjam/reactnative/RNFishjamClientModule.kt +9 -7
  5. package/build/RNFishjamClientModule.d.ts +23 -6
  6. package/build/RNFishjamClientModule.d.ts.map +1 -1
  7. package/build/RNFishjamClientModule.js +19 -4
  8. package/build/RNFishjamClientModule.js.map +1 -1
  9. package/build/common/client.d.ts +1 -6
  10. package/build/common/client.d.ts.map +1 -1
  11. package/build/common/client.js +0 -4
  12. package/build/common/client.js.map +1 -1
  13. package/build/common/metadata.d.ts +1 -1
  14. package/build/common/metadata.js +1 -1
  15. package/build/common/metadata.js.map +1 -1
  16. package/build/components/FishjamRoom/parsePeersToTracks.d.ts.map +1 -1
  17. package/build/components/FishjamRoom/parsePeersToTracks.js +4 -6
  18. package/build/components/FishjamRoom/parsePeersToTracks.js.map +1 -1
  19. package/build/debug/stats/useRTCStatistics.d.ts.map +1 -1
  20. package/build/debug/stats/useRTCStatistics.js +13 -13
  21. package/build/debug/stats/useRTCStatistics.js.map +1 -1
  22. package/build/hooks/internal/useFishjamEvent.d.ts +3 -0
  23. package/build/hooks/internal/useFishjamEvent.d.ts.map +1 -0
  24. package/build/hooks/internal/useFishjamEvent.js +11 -0
  25. package/build/hooks/internal/useFishjamEvent.js.map +1 -0
  26. package/build/hooks/internal/useFishjamEventState.d.ts +3 -0
  27. package/build/hooks/internal/useFishjamEventState.d.ts.map +1 -0
  28. package/build/hooks/{useFishjamEventState.js → internal/useFishjamEventState.js} +3 -1
  29. package/build/hooks/internal/useFishjamEventState.js.map +1 -0
  30. package/build/hooks/useAppScreenShare.d.ts.map +1 -1
  31. package/build/hooks/useAppScreenShare.js +5 -7
  32. package/build/hooks/useAppScreenShare.js.map +1 -1
  33. package/build/hooks/useAudioSettings.d.ts.map +1 -1
  34. package/build/hooks/useAudioSettings.js +8 -11
  35. package/build/hooks/useAudioSettings.js.map +1 -1
  36. package/build/hooks/useBandwidthEstimation.d.ts.map +1 -1
  37. package/build/hooks/useBandwidthEstimation.js +3 -4
  38. package/build/hooks/useBandwidthEstimation.js.map +1 -1
  39. package/build/hooks/useCamera.d.ts.map +1 -1
  40. package/build/hooks/useCamera.js +7 -8
  41. package/build/hooks/useCamera.js.map +1 -1
  42. package/build/hooks/useConnection.d.ts +42 -0
  43. package/build/hooks/useConnection.d.ts.map +1 -0
  44. package/build/hooks/useConnection.js +33 -0
  45. package/build/hooks/useConnection.js.map +1 -0
  46. package/build/hooks/useMicrophone.d.ts.map +1 -1
  47. package/build/hooks/useMicrophone.js +2 -3
  48. package/build/hooks/useMicrophone.js.map +1 -1
  49. package/build/hooks/usePeerStatus.d.ts +2 -3
  50. package/build/hooks/usePeerStatus.d.ts.map +1 -1
  51. package/build/hooks/usePeerStatus.js +4 -10
  52. package/build/hooks/usePeerStatus.js.map +1 -1
  53. package/build/hooks/usePeers.d.ts.map +1 -1
  54. package/build/hooks/usePeers.js +4 -15
  55. package/build/hooks/usePeers.js.map +1 -1
  56. package/build/hooks/useReconnection.d.ts +1 -1
  57. package/build/hooks/useReconnection.d.ts.map +1 -1
  58. package/build/hooks/useReconnection.js +4 -10
  59. package/build/hooks/useReconnection.js.map +1 -1
  60. package/build/hooks/useScreenShare.d.ts.map +1 -1
  61. package/build/hooks/useScreenShare.js +6 -10
  62. package/build/hooks/useScreenShare.js.map +1 -1
  63. package/build/hooks/useUpdatePeerMetadata.d.ts +15 -0
  64. package/build/hooks/useUpdatePeerMetadata.d.ts.map +1 -0
  65. package/build/hooks/useUpdatePeerMetadata.js +21 -0
  66. package/build/hooks/useUpdatePeerMetadata.js.map +1 -0
  67. package/build/index.d.ts +22 -15
  68. package/build/index.d.ts.map +1 -1
  69. package/build/index.js +17 -6
  70. package/build/index.js.map +1 -1
  71. package/build/utils/errorListener.d.ts.map +1 -1
  72. package/build/utils/errorListener.js +2 -3
  73. package/build/utils/errorListener.js.map +1 -1
  74. package/ios/Events.swift +4 -7
  75. package/ios/RNFishjamClient.podspec +1 -1
  76. package/ios/RNFishjamClient.swift +14 -9
  77. package/ios/RNFishjamClientModule.swift +8 -4
  78. package/ios/Utils.swift +0 -20
  79. package/package.json +6 -7
  80. package/plugin/build/withFishjamAndroid.js +18 -20
  81. package/plugin/build/withFishjamIos.js +99 -103
  82. package/build/hooks/useFishjamEvent.d.ts +0 -18
  83. package/build/hooks/useFishjamEvent.d.ts.map +0 -1
  84. package/build/hooks/useFishjamEvent.js +0 -27
  85. package/build/hooks/useFishjamEvent.js.map +0 -1
  86. package/build/hooks/useFishjamEventState.d.ts +0 -3
  87. package/build/hooks/useFishjamEventState.d.ts.map +0 -1
  88. package/build/hooks/useFishjamEventState.js.map +0 -1
@@ -2,7 +2,7 @@ apply plugin: 'com.android.library'
2
2
  apply plugin: 'kotlin-android'
3
3
  apply plugin: 'maven-publish'
4
4
 
5
- def packageVersion = '0.5.0'
5
+ def packageVersion = '0.6.0'
6
6
 
7
7
  group = 'io.fishjam.reactnative'
8
8
  version = "${packageVersion}"
@@ -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
- @Suppress("ktlint:standard:enum-entry-name-case")
8
- enum class PeerStatus {
9
- connecting,
10
- connected,
11
- error,
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.name)
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.idle
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.error
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.connecting
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 track.vadStatus.value
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.connected
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.idle
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.error
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
- emitEvent(EmitableEvent.reconnected)
895
+ reconnectionStatus = ReconnectionStatus.Reconnecting
883
896
  }
884
897
 
885
898
  override fun onReconnectionStarted() {
886
- emitEvent(EmitableEvent.reconnectionStarted)
899
+ reconnectionStatus = ReconnectionStatus.Idle
887
900
  }
888
901
 
889
902
  override fun onReconnectionRetriesLimitReached() {
890
- emitEvent(EmitableEvent.reconnectionRetriesLimitReached)
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 { EventEmitter } from 'expo-modules-core';
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]: any;
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 nativeModuleEventEmitter: EventEmitter;
54
- declare const _default: RNFishjamClient & NativeModule;
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":"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"}
1
+ {"version":3,"file":"RNFishjamClientModule.d.ts","sourceRoot":"","sources":["../src/RNFishjamClientModule.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,20 @@
1
- import { EventEmitter, requireNativeModule } from 'expo-modules-core';
2
- const nativeModule = requireNativeModule('RNFishjamClient');
3
- export const nativeModuleEventEmitter = new EventEmitter(nativeModule);
4
- export default nativeModule;
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,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAgFtE,MAAM,YAAY,GAAG,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;AAC5D,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,YAAY,CAAC,YAAY,CAAC,CAAC;AAEvE,eAAe,YAA8C,CAAC","sourcesContent":["import { EventEmitter, requireNativeModule } from 'expo-modules-core';\nimport { NativeModule } from 'react-native';\n\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';\n\ntype Metadata = { [key: string]: any };\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 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 getPeers: <\n PeerMetadataType extends Metadata,\n ServerMetadata extends Metadata = GenericMetadata,\n >() => Promise<Peer<PeerMetadataType, ServerMetadata>[]>;\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\nconst nativeModule = requireNativeModule('RNFishjamClient');\nexport const nativeModuleEventEmitter = new EventEmitter(nativeModule);\n\nexport default nativeModule as RNFishjamClient & NativeModule;\n"]}
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"]}
@@ -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;AAE3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,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;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAC5B,YAAY,SAAS,eAAe,GAAG,eAAe,EACtD,cAAc,SAAS,eAAe,GAAG,eAAe,EAExD,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,iBAAiB,CAAC,YAAY,EAAE,cAAc,CAAC,EAC9D,MAAM,CAAC,EAAE,gBAAgB,iBAQ1B;AACD;;GAEG;AACH,wBAAsB,SAAS,kBAE9B"}
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"}
@@ -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;AAmB7D;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAI5B,GAAW,EACX,SAAiB,EACjB,YAA8D,EAC9D,MAAyB;IAEzB,MAAM,qBAAqB,CAAC,QAAQ,CAClC,GAAG,EACH,SAAS,EACT,YAAY,IAAI,EAAE,EAClB,MAAM,IAAI,EAAE,CACb,CAAC;AACJ,CAAC;AACD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,qBAAqB,CAAC,SAAS,EAAE,CAAC;AAC1C,CAAC","sourcesContent":["import { GenericMetadata } from '../types';\nimport RNFishjamClientModule from '../RNFishjamClientModule';\nimport { PeerTrackMetadata } from '../hooks/usePeers';\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 * @category Connection\n */\nexport async function joinRoom<\n PeerMetadata extends GenericMetadata = GenericMetadata,\n ServerMetadata extends GenericMetadata = GenericMetadata,\n>(\n url: string,\n peerToken: string,\n peerMetadata?: PeerTrackMetadata<PeerMetadata, ServerMetadata>,\n config?: ConnectionConfig,\n) {\n await RNFishjamClientModule.joinRoom(\n url,\n peerToken,\n peerMetadata ?? {},\n config ?? {},\n );\n}\n/**\n * @category Connection\n */\nexport async function leaveRoom() {\n await RNFishjamClientModule.leaveRoom();\n}\n"]}
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
- * @category Connection
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
@@ -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
- * @category Connection
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 * @category Connection\n */\nexport async function updatePeerMetadata<\n PeerMetadata extends GenericMetadata = GenericMetadata,\n>(peerMetadata: PeerMetadata) {\n await RNFishjamClientModule.updatePeerMetadata(peerMetadata);\n}\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,EAKX,CAAC"}
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
- return [
32
- ...(localPeer ? createGridTracksFromPeer(localPeer) : []),
33
- ...remotePeers.flatMap(createGridTracksFromPeer),
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;IACf,OAAO;QACL,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,GAAG,WAAW,CAAC,OAAO,CAAC,wBAAwB,CAAC;KACjD,CAAC;AACJ,CAAC,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 return [\n ...(localPeer ? createGridTracksFromPeer(localPeer) : []),\n ...remotePeers.flatMap(createGridTracksFromPeer),\n ];\n};\n"]}
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;;EAuFvD"}
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((statistics, stats) => {
14
- Object.keys(stats).forEach((obj) => {
13
+ const processIncomingStats = useCallback((stats, stat) => {
14
+ Object.keys(stat).forEach((obj) => {
15
15
  if (obj.includes('Inbound')) {
16
- const rtcStats = stats[obj];
17
- if (statistics.length > 0 &&
18
- Object.keys(statistics[statistics.length - 1]).includes(obj)) {
19
- const prevRtcStats = statistics[statistics.length - 1][obj];
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 stats;
38
+ return stat;
39
39
  }
40
40
  // Outbound
41
- const rtcStats = stats[obj];
42
- if (statistics.length > 0 &&
43
- Object.keys(statistics[statistics.length - 1]).includes(obj)) {
44
- const prevRtcStats = statistics[statistics.length - 1][obj];
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 stats;
57
+ return stat;
58
58
  });
59
- return stats;
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":"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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 (statistics: ReadonlyArray<RTCStats>, stats: Readonly<RTCStats>) => {\n Object.keys(stats).forEach((obj) => {\n if (obj.includes('Inbound')) {\n const rtcStats = stats[obj] as RTCInboundStats;\n\n if (\n statistics.length > 0 &&\n Object.keys(statistics[statistics.length - 1]).includes(obj)\n ) {\n const prevRtcStats = statistics[statistics.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 stats;\n }\n // Outbound\n const rtcStats = stats[obj] as RTCOutboundStats;\n\n if (\n statistics.length > 0 &&\n Object.keys(statistics[statistics.length - 1]).includes(obj)\n ) {\n const prevRtcStats = statistics[statistics.length - 1][\n obj\n ] 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 stats;\n });\n return stats;\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"]}
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,3 @@
1
+ import { ReceivableEvents } from '../../RNFishjamClientModule';
2
+ export declare function useFishjamEvent<T>(eventName: keyof typeof ReceivableEvents, callback: (event: T) => void): void;
3
+ //# sourceMappingURL=useFishjamEvent.d.ts.map
@@ -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(defaultValue);
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":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAUtD,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;AA+CF,iBAAS,+BAA+B,IAAI,kBAAkB,CAM7D;AAED,eAAO,MAAM,iBAAiB,wCAG5B,CAAC"}
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"}