@sbhjt-gr/react-native-webrtc 124.0.0 → 124.0.1

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 (360) hide show
  1. package/.clang-format +11 -11
  2. package/.eslintignore +6 -6
  3. package/.nvmrc +1 -1
  4. package/ISSUE_TEMPLATE.md +40 -40
  5. package/LICENSE +22 -22
  6. package/README.md +103 -103
  7. package/android/build.gradle +37 -37
  8. package/android/consumer-rules.pro +3 -3
  9. package/android/src/main/AndroidManifest.xml +11 -11
  10. package/android/src/main/java/com/oney/WebRTCModule/AbstractVideoCaptureController.java +113 -113
  11. package/android/src/main/java/com/oney/WebRTCModule/CameraCaptureController.java +338 -338
  12. package/android/src/main/java/com/oney/WebRTCModule/CameraEventsHandler.java +49 -49
  13. package/android/src/main/java/com/oney/WebRTCModule/DataChannelWrapper.java +99 -99
  14. package/android/src/main/java/com/oney/WebRTCModule/DataPacketCryptorManager.java +62 -62
  15. package/android/src/main/java/com/oney/WebRTCModule/DisplayUtils.java +16 -16
  16. package/android/src/main/java/com/oney/WebRTCModule/EglUtils.java +66 -66
  17. package/android/src/main/java/com/oney/WebRTCModule/GetUserMediaImpl.java +539 -539
  18. package/android/src/main/java/com/oney/WebRTCModule/LibraryLoader.java +21 -21
  19. package/android/src/main/java/com/oney/WebRTCModule/MediaProjectionNotification.java +70 -70
  20. package/android/src/main/java/com/oney/WebRTCModule/MediaProjectionService.java +82 -82
  21. package/android/src/main/java/com/oney/WebRTCModule/PeerConnectionObserver.java +588 -588
  22. package/android/src/main/java/com/oney/WebRTCModule/RTCCryptoManager.java +493 -493
  23. package/android/src/main/java/com/oney/WebRTCModule/RTCVideoViewManager.java +98 -98
  24. package/android/src/main/java/com/oney/WebRTCModule/ReactBridgeUtil.java +35 -35
  25. package/android/src/main/java/com/oney/WebRTCModule/ScreenCaptureController.java +94 -94
  26. package/android/src/main/java/com/oney/WebRTCModule/SerializeUtils.java +342 -342
  27. package/android/src/main/java/com/oney/WebRTCModule/StringUtils.java +100 -100
  28. package/android/src/main/java/com/oney/WebRTCModule/ThreadUtils.java +41 -41
  29. package/android/src/main/java/com/oney/WebRTCModule/TrackCapturerEventsEmitter.java +34 -34
  30. package/android/src/main/java/com/oney/WebRTCModule/VideoTrackAdapter.java +137 -137
  31. package/android/src/main/java/com/oney/WebRTCModule/WebRTCModule.java +1643 -1643
  32. package/android/src/main/java/com/oney/WebRTCModule/WebRTCModuleOptions.java +33 -33
  33. package/android/src/main/java/com/oney/WebRTCModule/WebRTCModulePackage.java +21 -21
  34. package/android/src/main/java/com/oney/WebRTCModule/WebRTCView.java +583 -583
  35. package/android/src/main/java/com/oney/WebRTCModule/palabra/PalabraClient.java +464 -464
  36. package/android/src/main/java/com/oney/WebRTCModule/palabra/PalabraConfig.java +17 -17
  37. package/android/src/main/java/com/oney/WebRTCModule/palabra/PalabraListener.java +7 -7
  38. package/android/src/main/java/com/oney/WebRTCModule/videoEffects/ProcessorProvider.java +38 -38
  39. package/android/src/main/java/com/oney/WebRTCModule/videoEffects/VideoEffectProcessor.java +59 -59
  40. package/android/src/main/java/com/oney/WebRTCModule/videoEffects/VideoFrameProcessor.java +19 -19
  41. package/android/src/main/java/com/oney/WebRTCModule/videoEffects/VideoFrameProcessorFactoryInterface.java +12 -12
  42. package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/H264AndSoftwareVideoDecoderFactory.java +73 -73
  43. package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/H264AndSoftwareVideoEncoderFactory.java +73 -73
  44. package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/SoftwareVideoDecoderFactoryProxy.java +36 -36
  45. package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/SoftwareVideoEncoderFactoryProxy.java +36 -36
  46. package/android/src/main/java/org/webrtc/Camera1Helper.java +54 -54
  47. package/android/src/main/java/org/webrtc/Camera2Helper.java +52 -52
  48. package/android/src/main/res/values/strings.xml +5 -5
  49. package/android/src/main/res/values/styles.xml +8 -8
  50. package/ios/RCTWebRTC/CaptureController.h +18 -18
  51. package/ios/RCTWebRTC/CaptureController.m +28 -28
  52. package/ios/RCTWebRTC/CapturerEventsDelegate.h +12 -12
  53. package/ios/RCTWebRTC/DataChannelWrapper.h +27 -27
  54. package/ios/RCTWebRTC/DataChannelWrapper.m +42 -42
  55. package/ios/RCTWebRTC/I420Converter.h +22 -22
  56. package/ios/RCTWebRTC/I420Converter.m +164 -164
  57. package/ios/RCTWebRTC/PIPController.h +24 -24
  58. package/ios/RCTWebRTC/PIPController.m +234 -234
  59. package/ios/RCTWebRTC/PalabraAudioSink.h +13 -13
  60. package/ios/RCTWebRTC/PalabraAudioSink.m +18 -18
  61. package/ios/RCTWebRTC/PalabraClient.h +36 -36
  62. package/ios/RCTWebRTC/PalabraClient.m +584 -584
  63. package/ios/RCTWebRTC/RCTConvert+WebRTC.h +16 -16
  64. package/ios/RCTWebRTC/RCTConvert+WebRTC.m +206 -206
  65. package/ios/RCTWebRTC/RTCMediaStreamTrack+React.h +10 -10
  66. package/ios/RCTWebRTC/RTCMediaStreamTrack+React.m +16 -16
  67. package/ios/RCTWebRTC/RTCVideoViewManager.h +29 -29
  68. package/ios/RCTWebRTC/RTCVideoViewManager.m +411 -411
  69. package/ios/RCTWebRTC/SampleBufferVideoCallView.h +12 -12
  70. package/ios/RCTWebRTC/SampleBufferVideoCallView.m +178 -178
  71. package/ios/RCTWebRTC/ScreenCaptureController.h +20 -20
  72. package/ios/RCTWebRTC/ScreenCaptureController.m +82 -82
  73. package/ios/RCTWebRTC/ScreenCapturePickerViewManager.h +7 -7
  74. package/ios/RCTWebRTC/ScreenCapturePickerViewManager.m +59 -59
  75. package/ios/RCTWebRTC/ScreenCapturer.h +19 -19
  76. package/ios/RCTWebRTC/ScreenCapturer.m +263 -263
  77. package/ios/RCTWebRTC/SerializeUtils.h +28 -28
  78. package/ios/RCTWebRTC/SerializeUtils.m +314 -314
  79. package/ios/RCTWebRTC/SocketConnection.h +13 -13
  80. package/ios/RCTWebRTC/SocketConnection.m +137 -137
  81. package/ios/RCTWebRTC/TrackCapturerEventsEmitter.h +14 -14
  82. package/ios/RCTWebRTC/TrackCapturerEventsEmitter.m +36 -36
  83. package/ios/RCTWebRTC/VideoCaptureController.h +21 -21
  84. package/ios/RCTWebRTC/VideoCaptureController.m +328 -328
  85. package/ios/RCTWebRTC/WebRTCModule+Palabra.h +4 -4
  86. package/ios/RCTWebRTC/WebRTCModule+Palabra.m +83 -83
  87. package/ios/RCTWebRTC/WebRTCModule+Permissions.m +75 -75
  88. package/ios/RCTWebRTC/WebRTCModule+RTCAudioSession.m +20 -20
  89. package/ios/RCTWebRTC/WebRTCModule+RTCDataChannel.h +14 -14
  90. package/ios/RCTWebRTC/WebRTCModule+RTCDataChannel.m +165 -165
  91. package/ios/RCTWebRTC/WebRTCModule+RTCFrameCryptor.m +611 -611
  92. package/ios/RCTWebRTC/WebRTCModule+RTCMediaStream.h +13 -13
  93. package/ios/RCTWebRTC/WebRTCModule+RTCMediaStream.m +728 -533
  94. package/ios/RCTWebRTC/WebRTCModule+RTCPeerConnection.h +24 -24
  95. package/ios/RCTWebRTC/WebRTCModule+RTCPeerConnection.m +1004 -1004
  96. package/ios/RCTWebRTC/WebRTCModule+Transceivers.m +267 -267
  97. package/ios/RCTWebRTC/WebRTCModule+VideoTrackAdapter.h +12 -12
  98. package/ios/RCTWebRTC/WebRTCModule+VideoTrackAdapter.m +166 -166
  99. package/ios/RCTWebRTC/WebRTCModule.h +58 -51
  100. package/ios/RCTWebRTC/WebRTCModule.m +169 -151
  101. package/ios/RCTWebRTC/WebRTCModuleOptions.h +24 -24
  102. package/ios/RCTWebRTC/WebRTCModuleOptions.m +31 -31
  103. package/ios/RCTWebRTC/videoEffects/ProcessorProvider.h +9 -9
  104. package/ios/RCTWebRTC/videoEffects/ProcessorProvider.m +23 -23
  105. package/ios/RCTWebRTC/videoEffects/VideoEffectProcessor.h +13 -13
  106. package/ios/RCTWebRTC/videoEffects/VideoEffectProcessor.m +23 -23
  107. package/ios/RCTWebRTC/videoEffects/VideoFrameProcessor.h +8 -8
  108. package/ios/RCTWebRTC.xcodeproj/project.pbxproj +404 -404
  109. package/ios/RCTWebRTC.xcworkspace/contents.xcworkspacedata +10 -10
  110. package/lib/commonjs/Constraints.js.map +1 -1
  111. package/lib/commonjs/EventEmitter.js.map +1 -1
  112. package/lib/commonjs/Logger.js.map +1 -1
  113. package/lib/commonjs/MediaDevices.js +17 -17
  114. package/lib/commonjs/MediaDevices.js.map +1 -1
  115. package/lib/commonjs/MediaStream.js +19 -19
  116. package/lib/commonjs/MediaStream.js.map +1 -1
  117. package/lib/commonjs/MediaStreamError.js.map +1 -1
  118. package/lib/commonjs/MediaStreamErrorEvent.js.map +1 -1
  119. package/lib/commonjs/MediaStreamTrack.js +28 -28
  120. package/lib/commonjs/MediaStreamTrack.js.map +1 -1
  121. package/lib/commonjs/MediaStreamTrackEvent.js +6 -6
  122. package/lib/commonjs/MediaStreamTrackEvent.js.map +1 -1
  123. package/lib/commonjs/MessageEvent.js +7 -7
  124. package/lib/commonjs/MessageEvent.js.map +1 -1
  125. package/lib/commonjs/Permissions.js +28 -28
  126. package/lib/commonjs/Permissions.js.map +1 -1
  127. package/lib/commonjs/RTCAudioSession.js +4 -4
  128. package/lib/commonjs/RTCAudioSession.js.map +1 -1
  129. package/lib/commonjs/RTCDataChannel.js +2 -2
  130. package/lib/commonjs/RTCDataChannel.js.map +1 -1
  131. package/lib/commonjs/RTCDataChannelEvent.js +6 -6
  132. package/lib/commonjs/RTCDataChannelEvent.js.map +1 -1
  133. package/lib/commonjs/RTCDataPacketCryptor.js.map +1 -1
  134. package/lib/commonjs/RTCDataPacketCryptorFactory.js.map +1 -1
  135. package/lib/commonjs/RTCErrorEvent.js +3 -3
  136. package/lib/commonjs/RTCErrorEvent.js.map +1 -1
  137. package/lib/commonjs/RTCFrameCryptor.js +8 -8
  138. package/lib/commonjs/RTCFrameCryptor.js.map +1 -1
  139. package/lib/commonjs/RTCFrameCryptorFactory.js.map +1 -1
  140. package/lib/commonjs/RTCIceCandidate.js.map +1 -1
  141. package/lib/commonjs/RTCIceCandidateEvent.js +7 -7
  142. package/lib/commonjs/RTCIceCandidateEvent.js.map +1 -1
  143. package/lib/commonjs/RTCKeyProvider.js.map +1 -1
  144. package/lib/commonjs/RTCPIPView.js +2 -2
  145. package/lib/commonjs/RTCPIPView.js.map +1 -1
  146. package/lib/commonjs/RTCPIPView.web.js.map +1 -1
  147. package/lib/commonjs/RTCPeerConnection.js +36 -36
  148. package/lib/commonjs/RTCPeerConnection.js.map +1 -1
  149. package/lib/commonjs/RTCRtcpParameters.js.map +1 -1
  150. package/lib/commonjs/RTCRtpCapabilities.js +2 -2
  151. package/lib/commonjs/RTCRtpCapabilities.js.map +1 -1
  152. package/lib/commonjs/RTCRtpCodecCapability.js.map +1 -1
  153. package/lib/commonjs/RTCRtpCodecParameters.js.map +1 -1
  154. package/lib/commonjs/RTCRtpEncodingParameters.js.map +1 -1
  155. package/lib/commonjs/RTCRtpHeaderExtension.js.map +1 -1
  156. package/lib/commonjs/RTCRtpParameters.js.map +1 -1
  157. package/lib/commonjs/RTCRtpReceiveParameters.js.map +1 -1
  158. package/lib/commonjs/RTCRtpReceiver.js +7 -7
  159. package/lib/commonjs/RTCRtpReceiver.js.map +1 -1
  160. package/lib/commonjs/RTCRtpSendParameters.js +3 -3
  161. package/lib/commonjs/RTCRtpSendParameters.js.map +1 -1
  162. package/lib/commonjs/RTCRtpSender.js +7 -7
  163. package/lib/commonjs/RTCRtpSender.js.map +1 -1
  164. package/lib/commonjs/RTCRtpTransceiver.js.map +1 -1
  165. package/lib/commonjs/RTCSessionDescription.js.map +1 -1
  166. package/lib/commonjs/RTCTrackEvent.js +6 -6
  167. package/lib/commonjs/RTCTrackEvent.js.map +1 -1
  168. package/lib/commonjs/RTCUtil.js +28 -28
  169. package/lib/commonjs/RTCUtil.js.map +1 -1
  170. package/lib/commonjs/RTCView.js +5 -5
  171. package/lib/commonjs/RTCView.js.map +1 -1
  172. package/lib/commonjs/RTCView.web.js.map +1 -1
  173. package/lib/commonjs/ScreenCapturePickerView.js.map +1 -1
  174. package/lib/commonjs/ScreenCapturePickerView.web.js.map +1 -1
  175. package/lib/commonjs/getDisplayMedia.js.map +1 -1
  176. package/lib/commonjs/getUserMedia.js.map +1 -1
  177. package/lib/commonjs/index.js.map +1 -1
  178. package/lib/commonjs/index.web.js.map +1 -1
  179. package/lib/commonjs/webStream.js.map +1 -1
  180. package/lib/module/Constraints.js.map +1 -1
  181. package/lib/module/EventEmitter.js.map +1 -1
  182. package/lib/module/Logger.js.map +1 -1
  183. package/lib/module/MediaDevices.js +17 -17
  184. package/lib/module/MediaDevices.js.map +1 -1
  185. package/lib/module/MediaStream.js +19 -19
  186. package/lib/module/MediaStream.js.map +1 -1
  187. package/lib/module/MediaStreamError.js.map +1 -1
  188. package/lib/module/MediaStreamErrorEvent.js.map +1 -1
  189. package/lib/module/MediaStreamTrack.js +28 -28
  190. package/lib/module/MediaStreamTrack.js.map +1 -1
  191. package/lib/module/MediaStreamTrackEvent.js +6 -6
  192. package/lib/module/MediaStreamTrackEvent.js.map +1 -1
  193. package/lib/module/MessageEvent.js +7 -7
  194. package/lib/module/MessageEvent.js.map +1 -1
  195. package/lib/module/Permissions.js +28 -28
  196. package/lib/module/Permissions.js.map +1 -1
  197. package/lib/module/RTCAudioSession.js +4 -4
  198. package/lib/module/RTCAudioSession.js.map +1 -1
  199. package/lib/module/RTCDataChannel.js +2 -2
  200. package/lib/module/RTCDataChannel.js.map +1 -1
  201. package/lib/module/RTCDataChannelEvent.js +6 -6
  202. package/lib/module/RTCDataChannelEvent.js.map +1 -1
  203. package/lib/module/RTCDataPacketCryptor.js.map +1 -1
  204. package/lib/module/RTCDataPacketCryptorFactory.js.map +1 -1
  205. package/lib/module/RTCErrorEvent.js +3 -3
  206. package/lib/module/RTCErrorEvent.js.map +1 -1
  207. package/lib/module/RTCFrameCryptor.js +8 -8
  208. package/lib/module/RTCFrameCryptor.js.map +1 -1
  209. package/lib/module/RTCFrameCryptorFactory.js.map +1 -1
  210. package/lib/module/RTCIceCandidate.js.map +1 -1
  211. package/lib/module/RTCIceCandidateEvent.js +7 -7
  212. package/lib/module/RTCIceCandidateEvent.js.map +1 -1
  213. package/lib/module/RTCKeyProvider.js.map +1 -1
  214. package/lib/module/RTCPIPView.js +2 -2
  215. package/lib/module/RTCPIPView.js.map +1 -1
  216. package/lib/module/RTCPIPView.web.js.map +1 -1
  217. package/lib/module/RTCPeerConnection.js +36 -36
  218. package/lib/module/RTCPeerConnection.js.map +1 -1
  219. package/lib/module/RTCRtcpParameters.js.map +1 -1
  220. package/lib/module/RTCRtpCapabilities.js +2 -2
  221. package/lib/module/RTCRtpCapabilities.js.map +1 -1
  222. package/lib/module/RTCRtpCodecCapability.js.map +1 -1
  223. package/lib/module/RTCRtpCodecParameters.js.map +1 -1
  224. package/lib/module/RTCRtpEncodingParameters.js.map +1 -1
  225. package/lib/module/RTCRtpHeaderExtension.js.map +1 -1
  226. package/lib/module/RTCRtpParameters.js.map +1 -1
  227. package/lib/module/RTCRtpReceiveParameters.js.map +1 -1
  228. package/lib/module/RTCRtpReceiver.js +7 -7
  229. package/lib/module/RTCRtpReceiver.js.map +1 -1
  230. package/lib/module/RTCRtpSendParameters.js +3 -3
  231. package/lib/module/RTCRtpSendParameters.js.map +1 -1
  232. package/lib/module/RTCRtpSender.js +7 -7
  233. package/lib/module/RTCRtpSender.js.map +1 -1
  234. package/lib/module/RTCRtpTransceiver.js.map +1 -1
  235. package/lib/module/RTCSessionDescription.js.map +1 -1
  236. package/lib/module/RTCTrackEvent.js +6 -6
  237. package/lib/module/RTCTrackEvent.js.map +1 -1
  238. package/lib/module/RTCUtil.js +28 -28
  239. package/lib/module/RTCUtil.js.map +1 -1
  240. package/lib/module/RTCView.js +5 -5
  241. package/lib/module/RTCView.js.map +1 -1
  242. package/lib/module/RTCView.web.js.map +1 -1
  243. package/lib/module/ScreenCapturePickerView.js.map +1 -1
  244. package/lib/module/ScreenCapturePickerView.web.js.map +1 -1
  245. package/lib/module/getDisplayMedia.js.map +1 -1
  246. package/lib/module/getUserMedia.js.map +1 -1
  247. package/lib/module/index.js.map +1 -1
  248. package/lib/module/index.web.js.map +1 -1
  249. package/lib/module/webStream.js.map +1 -1
  250. package/lib/typescript/Constraints.d.ts +19 -19
  251. package/lib/typescript/EventEmitter.d.ts +6 -6
  252. package/lib/typescript/Logger.d.ts +13 -13
  253. package/lib/typescript/MediaDevices.d.ts +30 -30
  254. package/lib/typescript/MediaStream.d.ts +48 -48
  255. package/lib/typescript/MediaStreamError.d.ts +6 -6
  256. package/lib/typescript/MediaStreamErrorEvent.d.ts +6 -6
  257. package/lib/typescript/MediaStreamTrack.d.ts +101 -101
  258. package/lib/typescript/MediaStreamTrackEvent.d.ts +19 -19
  259. package/lib/typescript/MessageEvent.d.ts +20 -20
  260. package/lib/typescript/Permissions.d.ts +55 -55
  261. package/lib/typescript/RTCAudioSession.d.ts +10 -10
  262. package/lib/typescript/RTCDataChannel.d.ts +43 -43
  263. package/lib/typescript/RTCDataChannelEvent.d.ts +19 -19
  264. package/lib/typescript/RTCDataPacketCryptor.d.ts +12 -12
  265. package/lib/typescript/RTCDataPacketCryptorFactory.d.ts +6 -6
  266. package/lib/typescript/RTCErrorEvent.d.ts +12 -12
  267. package/lib/typescript/RTCFrameCryptor.d.ts +47 -47
  268. package/lib/typescript/RTCFrameCryptorFactory.d.ts +21 -21
  269. package/lib/typescript/RTCIceCandidate.d.ts +17 -17
  270. package/lib/typescript/RTCIceCandidateEvent.d.ts +20 -20
  271. package/lib/typescript/RTCKeyProvider.d.ts +21 -21
  272. package/lib/typescript/RTCPIPView.d.ts +15 -15
  273. package/lib/typescript/RTCPIPView.web.d.ts +13 -13
  274. package/lib/typescript/RTCPeerConnection.d.ts +117 -117
  275. package/lib/typescript/RTCRtcpParameters.d.ts +10 -10
  276. package/lib/typescript/RTCRtpCapabilities.d.ts +9 -9
  277. package/lib/typescript/RTCRtpCodecCapability.d.ts +7 -7
  278. package/lib/typescript/RTCRtpCodecParameters.d.ts +16 -16
  279. package/lib/typescript/RTCRtpEncodingParameters.d.ts +23 -23
  280. package/lib/typescript/RTCRtpHeaderExtension.d.ts +12 -12
  281. package/lib/typescript/RTCRtpParameters.d.ts +19 -19
  282. package/lib/typescript/RTCRtpReceiveParameters.d.ts +4 -4
  283. package/lib/typescript/RTCRtpReceiver.d.ts +21 -21
  284. package/lib/typescript/RTCRtpSendParameters.d.ts +20 -20
  285. package/lib/typescript/RTCRtpSender.d.ts +22 -22
  286. package/lib/typescript/RTCRtpTransceiver.d.ts +31 -31
  287. package/lib/typescript/RTCSessionDescription.d.ts +12 -12
  288. package/lib/typescript/RTCTrackEvent.d.ts +29 -29
  289. package/lib/typescript/RTCUtil.d.ts +37 -37
  290. package/lib/typescript/RTCView.d.ts +117 -117
  291. package/lib/typescript/RTCView.web.d.ts +25 -25
  292. package/lib/typescript/ScreenCapturePickerView.d.ts +2 -2
  293. package/lib/typescript/ScreenCapturePickerView.web.d.ts +1 -1
  294. package/lib/typescript/getDisplayMedia.d.ts +2 -2
  295. package/lib/typescript/getUserMedia.d.ts +7 -7
  296. package/lib/typescript/index.d.ts +22 -22
  297. package/lib/typescript/index.web.d.ts +101 -101
  298. package/lib/typescript/webStream.d.ts +3 -3
  299. package/livekit-react-native-webrtc.podspec +29 -29
  300. package/macos/RCTWebRTC.xcodeproj/project.pbxproj +324 -324
  301. package/macos/RCTWebRTC.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -7
  302. package/macos/RCTWebRTC.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -8
  303. package/metro.config.js +7 -7
  304. package/metro.config.macos.js +14 -14
  305. package/package.json +66 -66
  306. package/react-native.config.js +11 -11
  307. package/src/.eslintrc.cjs +67 -67
  308. package/src/Constraints.ts +20 -20
  309. package/src/EventEmitter.ts +65 -65
  310. package/src/Logger.ts +49 -49
  311. package/src/MediaDevices.ts +53 -53
  312. package/src/MediaStream.ts +161 -161
  313. package/src/MediaStreamError.ts +12 -12
  314. package/src/MediaStreamErrorEvent.ts +11 -11
  315. package/src/MediaStreamTrack.ts +282 -282
  316. package/src/MediaStreamTrackEvent.ts +25 -25
  317. package/src/MessageEvent.ts +26 -26
  318. package/src/Permissions.ts +133 -133
  319. package/src/RTCAudioSession.ts +25 -25
  320. package/src/RTCDataChannel.ts +190 -190
  321. package/src/RTCDataChannelEvent.ts +28 -28
  322. package/src/RTCDataPacketCryptor.ts +90 -90
  323. package/src/RTCDataPacketCryptorFactory.ts +24 -24
  324. package/src/RTCErrorEvent.ts +20 -20
  325. package/src/RTCFrameCryptor.ts +162 -162
  326. package/src/RTCFrameCryptorFactory.ts +101 -101
  327. package/src/RTCIceCandidate.ts +29 -29
  328. package/src/RTCIceCandidateEvent.ts +26 -26
  329. package/src/RTCKeyProvider.ts +117 -117
  330. package/src/RTCPIPView.tsx +46 -46
  331. package/src/RTCPIPView.web.tsx +18 -18
  332. package/src/RTCPeerConnection.ts +832 -832
  333. package/src/RTCRtcpParameters.ts +23 -23
  334. package/src/RTCRtpCapabilities.ts +16 -16
  335. package/src/RTCRtpCodecCapability.ts +12 -12
  336. package/src/RTCRtpCodecParameters.ts +44 -44
  337. package/src/RTCRtpEncodingParameters.ts +90 -90
  338. package/src/RTCRtpHeaderExtension.ts +27 -27
  339. package/src/RTCRtpParameters.ts +37 -37
  340. package/src/RTCRtpReceiveParameters.ts +7 -7
  341. package/src/RTCRtpReceiver.ts +60 -60
  342. package/src/RTCRtpSendParameters.ts +63 -63
  343. package/src/RTCRtpSender.ts +78 -78
  344. package/src/RTCRtpTransceiver.ts +107 -107
  345. package/src/RTCSessionDescription.ts +30 -30
  346. package/src/RTCTrackEvent.ts +42 -42
  347. package/src/RTCUtil.ts +211 -211
  348. package/src/RTCView.ts +122 -122
  349. package/src/RTCView.web.tsx +80 -80
  350. package/src/ScreenCapturePickerView.ts +4 -4
  351. package/src/ScreenCapturePickerView.web.tsx +3 -3
  352. package/src/getDisplayMedia.ts +30 -30
  353. package/src/getUserMedia.ts +111 -111
  354. package/src/index.ts +107 -107
  355. package/src/index.web.ts +191 -191
  356. package/src/webStream.ts +31 -31
  357. package/tools/format.sh +6 -6
  358. package/tools/release.sh +45 -45
  359. package/tsconfig.json +17 -17
  360. package/.claude/settings.local.json +0 -9
@@ -1 +1 @@
1
- {"version":3,"names":["streams","Map","rememberStream","stream","set","id","getStream","streamURL","_streams$get","get","patchMediaStream","MediaStream","proto","prototype","toURL"],"sources":["webStream.ts"],"sourcesContent":["const streams = new Map<string, MediaStream>();\r\n\r\nexport function rememberStream(stream: MediaStream | null | undefined): string {\r\n if (!stream) {\r\n return '';\r\n }\r\n\r\n streams.set(stream.id, stream);\n\r\n return stream.id;\r\n}\r\n\r\nexport function getStream(streamURL?: string): MediaStream | null {\r\n if (!streamURL) {\r\n return null;\r\n }\r\n\r\n return streams.get(streamURL) ?? null;\r\n}\r\n\r\nexport function patchMediaStream() {\r\n if (typeof MediaStream === 'undefined') {\r\n return;\r\n }\r\n\r\n const proto = MediaStream.prototype as MediaStream & { toURL?: () => string };\n\r\n if (typeof proto.toURL !== 'function') {\r\n proto.toURL = function toURL() {\r\n return rememberStream(this);\r\n };\r\n }\r\n}\r\n"],"mappings":";;;;;;;;AAAA,MAAMA,OAAO,GAAG,IAAIC,GAAG,CAAsB,CAAC;AAEvC,SAASC,cAAcA,CAACC,MAAsC,EAAU;EAC3E,IAAI,CAACA,MAAM,EAAE;IACT,OAAO,EAAE;EACb;EAEAH,OAAO,CAACI,GAAG,CAACD,MAAM,CAACE,EAAE,EAAEF,MAAM,CAAC;EAE9B,OAAOA,MAAM,CAACE,EAAE;AACpB;AAEO,SAASC,SAASA,CAACC,SAAkB,EAAsB;EAAA,IAAAC,YAAA;EAC9D,IAAI,CAACD,SAAS,EAAE;IACZ,OAAO,IAAI;EACf;EAEA,QAAAC,YAAA,GAAOR,OAAO,CAACS,GAAG,CAACF,SAAS,CAAC,cAAAC,YAAA,cAAAA,YAAA,GAAI,IAAI;AACzC;AAEO,SAASE,gBAAgBA,CAAA,EAAG;EAC/B,IAAI,OAAOC,WAAW,KAAK,WAAW,EAAE;IACpC;EACJ;EAEA,MAAMC,KAAK,GAAGD,WAAW,CAACE,SAAmD;EAE7E,IAAI,OAAOD,KAAK,CAACE,KAAK,KAAK,UAAU,EAAE;IACnCF,KAAK,CAACE,KAAK,GAAG,SAASA,KAAKA,CAAA,EAAG;MAC3B,OAAOZ,cAAc,CAAC,IAAI,CAAC;IAC/B,CAAC;EACL;AACJ"}
1
+ {"version":3,"names":["streams","Map","rememberStream","stream","set","id","getStream","streamURL","_streams$get","get","patchMediaStream","MediaStream","proto","prototype","toURL"],"sources":["webStream.ts"],"sourcesContent":["const streams = new Map<string, MediaStream>();\n\nexport function rememberStream(stream: MediaStream | null | undefined): string {\n if (!stream) {\n return '';\n }\n\n streams.set(stream.id, stream);\n\n return stream.id;\n}\n\nexport function getStream(streamURL?: string): MediaStream | null {\n if (!streamURL) {\n return null;\n }\n\n return streams.get(streamURL) ?? null;\n}\n\nexport function patchMediaStream() {\n if (typeof MediaStream === 'undefined') {\n return;\n }\n\n const proto = MediaStream.prototype as MediaStream & { toURL?: () => string };\n\n if (typeof proto.toURL !== 'function') {\n proto.toURL = function toURL() {\n return rememberStream(this);\n };\n }\n}\n"],"mappings":";;;;;;;;AAAA,MAAMA,OAAO,GAAG,IAAIC,GAAG,CAAsB,CAAC;AAEvC,SAASC,cAAcA,CAACC,MAAsC,EAAU;EAC3E,IAAI,CAACA,MAAM,EAAE;IACT,OAAO,EAAE;EACb;EAEAH,OAAO,CAACI,GAAG,CAACD,MAAM,CAACE,EAAE,EAAEF,MAAM,CAAC;EAE9B,OAAOA,MAAM,CAACE,EAAE;AACpB;AAEO,SAASC,SAASA,CAACC,SAAkB,EAAsB;EAAA,IAAAC,YAAA;EAC9D,IAAI,CAACD,SAAS,EAAE;IACZ,OAAO,IAAI;EACf;EAEA,QAAAC,YAAA,GAAOR,OAAO,CAACS,GAAG,CAACF,SAAS,CAAC,cAAAC,YAAA,cAAAA,YAAA,GAAI,IAAI;AACzC;AAEO,SAASE,gBAAgBA,CAAA,EAAG;EAC/B,IAAI,OAAOC,WAAW,KAAK,WAAW,EAAE;IACpC;EACJ;EAEA,MAAMC,KAAK,GAAGD,WAAW,CAACE,SAAmD;EAE7E,IAAI,OAAOD,KAAK,CAACE,KAAK,KAAK,UAAU,EAAE;IACnCF,KAAK,CAACE,KAAK,GAAG,SAASA,KAAKA,CAAA,EAAG;MAC3B,OAAOZ,cAAc,CAAC,IAAI,CAAC;IAC/B,CAAC;EACL;AACJ"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["Constraints.ts"],"sourcesContent":["\r\nexport type MediaTrackConstraints = {\r\n width?: ConstrainNumber;\r\n height?: ConstrainNumber;\r\n frameRate?: ConstrainNumber;\r\n facingMode?: ConstrainString;\r\n deviceId?: ConstrainString;\r\n groupId?: ConstrainString;\r\n}\r\n\r\ntype ConstrainNumber = number | {\r\n exact?: number,\r\n ideal?: number,\r\n max?: number,\r\n min?: number,\r\n}\r\n\r\ntype ConstrainString = string | {\r\n exact?: string,\r\n ideal?: string,\r\n}"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["Constraints.ts"],"sourcesContent":["\nexport type MediaTrackConstraints = {\n width?: ConstrainNumber;\n height?: ConstrainNumber;\n frameRate?: ConstrainNumber;\n facingMode?: ConstrainString;\n deviceId?: ConstrainString;\n groupId?: ConstrainString;\n}\n\ntype ConstrainNumber = number | {\n exact?: number,\n ideal?: number,\n max?: number,\n min?: number,\n}\n\ntype ConstrainString = string | {\n exact?: string,\n ideal?: string,\n}"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","NativeEventEmitter","EventEmitter","WebRTCModule","nativeEmitter","NATIVE_EVENTS","eventEmitter","setupNativeEvents","eventName","addListener","_len","arguments","length","args","Array","_key","emit","_subscriptions","Map","listener","eventHandler","_subscriptions$get","includes","Error","has","set","get","push","removeListener","_subscriptions$get2","forEach","sub","remove","delete"],"sources":["EventEmitter.ts"],"sourcesContent":["import { NativeModules, NativeEventEmitter, EmitterSubscription } from 'react-native';\r\n// @ts-ignore\r\nimport EventEmitter from 'react-native/Libraries/vendor/emitter/EventEmitter';\r\n\r\nconst { WebRTCModule } = NativeModules;\r\n\r\n// This emitter is going to be used to listen to all the native events (once) and then\r\n// re-emit them on a JS-only emitter.\r\nconst nativeEmitter = new NativeEventEmitter(WebRTCModule);\r\n\r\nconst NATIVE_EVENTS = [\r\n 'peerConnectionSignalingStateChanged',\r\n 'peerConnectionStateChanged',\r\n 'peerConnectionOnRenegotiationNeeded',\r\n 'peerConnectionIceConnectionChanged',\r\n 'peerConnectionIceGatheringChanged',\r\n 'peerConnectionGotICECandidate',\r\n 'peerConnectionDidOpenDataChannel',\r\n 'peerConnectionOnRemoveTrack',\r\n 'peerConnectionOnTrack',\r\n 'dataChannelStateChanged',\r\n 'dataChannelReceiveMessage',\r\n 'dataChannelDidChangeBufferedAmount',\r\n 'mediaStreamTrackMuteChanged',\r\n 'mediaStreamTrackEnded',\r\n 'frameCryptionStateChanged',\r\n 'palabraTranscription',\r\n 'palabraConnectionState',\r\n 'palabraError',\r\n];\r\n\r\nconst eventEmitter = new EventEmitter();\r\n\r\nexport function setupNativeEvents() {\r\n for (const eventName of NATIVE_EVENTS) {\r\n nativeEmitter.addListener(eventName, (...args) => {\r\n eventEmitter.emit(eventName, ...args);\r\n });\r\n }\r\n}\r\n\r\ntype EventHandler = (event: unknown) => void;\r\ntype Listener = unknown;\r\n\r\nconst _subscriptions: Map<Listener, EmitterSubscription[]> = new Map();\r\n\r\nexport function addListener(listener: Listener, eventName: string, eventHandler: EventHandler): void {\r\n if (!NATIVE_EVENTS.includes(eventName)) {\r\n throw new Error(`Invalid event: ${eventName}`);\r\n }\r\n\r\n if (!_subscriptions.has(listener)) {\r\n _subscriptions.set(listener, []);\r\n }\r\n\r\n _subscriptions.get(listener)?.push(eventEmitter.addListener(eventName, eventHandler));\r\n}\r\n\r\nexport function removeListener(listener: Listener): void {\r\n _subscriptions.get(listener)?.forEach(sub => {\r\n sub.remove();\r\n });\r\n\r\n _subscriptions.delete(listener);\r\n}\r\n"],"mappings":"AAAA,SAASA,aAAa,EAAEC,kBAAkB,QAA6B,cAAc;AACrF;AACA,OAAOC,YAAY,MAAM,oDAAoD;AAE7E,MAAM;EAAEC;AAAa,CAAC,GAAGH,aAAa;;AAEtC;AACA;AACA,MAAMI,aAAa,GAAG,IAAIH,kBAAkB,CAACE,YAAY,CAAC;AAE1D,MAAME,aAAa,GAAG,CAClB,qCAAqC,EACrC,4BAA4B,EAC5B,qCAAqC,EACrC,oCAAoC,EACpC,mCAAmC,EACnC,+BAA+B,EAC/B,kCAAkC,EAClC,6BAA6B,EAC7B,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC3B,oCAAoC,EACpC,6BAA6B,EAC7B,uBAAuB,EACvB,2BAA2B,EAC3B,sBAAsB,EACtB,wBAAwB,EACxB,cAAc,CACjB;AAED,MAAMC,YAAY,GAAG,IAAIJ,YAAY,CAAC,CAAC;AAEvC,OAAO,SAASK,iBAAiBA,CAAA,EAAG;EAChC,KAAK,MAAMC,SAAS,IAAIH,aAAa,EAAE;IACnCD,aAAa,CAACK,WAAW,CAACD,SAAS,EAAE,YAAa;MAAA,SAAAE,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAATC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;QAAJF,IAAI,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;MAAA;MACzCT,YAAY,CAACU,IAAI,CAACR,SAAS,EAAE,GAAGK,IAAI,CAAC;IACzC,CAAC,CAAC;EACN;AACJ;AAKA,MAAMI,cAAoD,GAAG,IAAIC,GAAG,CAAC,CAAC;AAEtE,OAAO,SAAST,WAAWA,CAACU,QAAkB,EAAEX,SAAiB,EAAEY,YAA0B,EAAQ;EAAA,IAAAC,kBAAA;EACjG,IAAI,CAAChB,aAAa,CAACiB,QAAQ,CAACd,SAAS,CAAC,EAAE;IACpC,MAAM,IAAIe,KAAK,CAAE,kBAAiBf,SAAU,EAAC,CAAC;EAClD;EAEA,IAAI,CAACS,cAAc,CAACO,GAAG,CAACL,QAAQ,CAAC,EAAE;IAC/BF,cAAc,CAACQ,GAAG,CAACN,QAAQ,EAAE,EAAE,CAAC;EACpC;EAEA,CAAAE,kBAAA,GAAAJ,cAAc,CAACS,GAAG,CAACP,QAAQ,CAAC,cAAAE,kBAAA,uBAA5BA,kBAAA,CAA8BM,IAAI,CAACrB,YAAY,CAACG,WAAW,CAACD,SAAS,EAAEY,YAAY,CAAC,CAAC;AACzF;AAEA,OAAO,SAASQ,cAAcA,CAACT,QAAkB,EAAQ;EAAA,IAAAU,mBAAA;EACrD,CAAAA,mBAAA,GAAAZ,cAAc,CAACS,GAAG,CAACP,QAAQ,CAAC,cAAAU,mBAAA,uBAA5BA,mBAAA,CAA8BC,OAAO,CAACC,GAAG,IAAI;IACzCA,GAAG,CAACC,MAAM,CAAC,CAAC;EAChB,CAAC,CAAC;EAEFf,cAAc,CAACgB,MAAM,CAACd,QAAQ,CAAC;AACnC"}
1
+ {"version":3,"names":["NativeModules","NativeEventEmitter","EventEmitter","WebRTCModule","nativeEmitter","NATIVE_EVENTS","eventEmitter","setupNativeEvents","eventName","addListener","_len","arguments","length","args","Array","_key","emit","_subscriptions","Map","listener","eventHandler","_subscriptions$get","includes","Error","has","set","get","push","removeListener","_subscriptions$get2","forEach","sub","remove","delete"],"sources":["EventEmitter.ts"],"sourcesContent":["import { NativeModules, NativeEventEmitter, EmitterSubscription } from 'react-native';\n// @ts-ignore\nimport EventEmitter from 'react-native/Libraries/vendor/emitter/EventEmitter';\n\nconst { WebRTCModule } = NativeModules;\n\n// This emitter is going to be used to listen to all the native events (once) and then\n// re-emit them on a JS-only emitter.\nconst nativeEmitter = new NativeEventEmitter(WebRTCModule);\n\nconst NATIVE_EVENTS = [\n 'peerConnectionSignalingStateChanged',\n 'peerConnectionStateChanged',\n 'peerConnectionOnRenegotiationNeeded',\n 'peerConnectionIceConnectionChanged',\n 'peerConnectionIceGatheringChanged',\n 'peerConnectionGotICECandidate',\n 'peerConnectionDidOpenDataChannel',\n 'peerConnectionOnRemoveTrack',\n 'peerConnectionOnTrack',\n 'dataChannelStateChanged',\n 'dataChannelReceiveMessage',\n 'dataChannelDidChangeBufferedAmount',\n 'mediaStreamTrackMuteChanged',\n 'mediaStreamTrackEnded',\n 'frameCryptionStateChanged',\n 'palabraTranscription',\n 'palabraConnectionState',\n 'palabraError',\n];\n\nconst eventEmitter = new EventEmitter();\n\nexport function setupNativeEvents() {\n for (const eventName of NATIVE_EVENTS) {\n nativeEmitter.addListener(eventName, (...args) => {\n eventEmitter.emit(eventName, ...args);\n });\n }\n}\n\ntype EventHandler = (event: unknown) => void;\ntype Listener = unknown;\n\nconst _subscriptions: Map<Listener, EmitterSubscription[]> = new Map();\n\nexport function addListener(listener: Listener, eventName: string, eventHandler: EventHandler): void {\n if (!NATIVE_EVENTS.includes(eventName)) {\n throw new Error(`Invalid event: ${eventName}`);\n }\n\n if (!_subscriptions.has(listener)) {\n _subscriptions.set(listener, []);\n }\n\n _subscriptions.get(listener)?.push(eventEmitter.addListener(eventName, eventHandler));\n}\n\nexport function removeListener(listener: Listener): void {\n _subscriptions.get(listener)?.forEach(sub => {\n sub.remove();\n });\n\n _subscriptions.delete(listener);\n}\n"],"mappings":"AAAA,SAASA,aAAa,EAAEC,kBAAkB,QAA6B,cAAc;AACrF;AACA,OAAOC,YAAY,MAAM,oDAAoD;AAE7E,MAAM;EAAEC;AAAa,CAAC,GAAGH,aAAa;;AAEtC;AACA;AACA,MAAMI,aAAa,GAAG,IAAIH,kBAAkB,CAACE,YAAY,CAAC;AAE1D,MAAME,aAAa,GAAG,CAClB,qCAAqC,EACrC,4BAA4B,EAC5B,qCAAqC,EACrC,oCAAoC,EACpC,mCAAmC,EACnC,+BAA+B,EAC/B,kCAAkC,EAClC,6BAA6B,EAC7B,uBAAuB,EACvB,yBAAyB,EACzB,2BAA2B,EAC3B,oCAAoC,EACpC,6BAA6B,EAC7B,uBAAuB,EACvB,2BAA2B,EAC3B,sBAAsB,EACtB,wBAAwB,EACxB,cAAc,CACjB;AAED,MAAMC,YAAY,GAAG,IAAIJ,YAAY,CAAC,CAAC;AAEvC,OAAO,SAASK,iBAAiBA,CAAA,EAAG;EAChC,KAAK,MAAMC,SAAS,IAAIH,aAAa,EAAE;IACnCD,aAAa,CAACK,WAAW,CAACD,SAAS,EAAE,YAAa;MAAA,SAAAE,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAATC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;QAAJF,IAAI,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;MAAA;MACzCT,YAAY,CAACU,IAAI,CAACR,SAAS,EAAE,GAAGK,IAAI,CAAC;IACzC,CAAC,CAAC;EACN;AACJ;AAKA,MAAMI,cAAoD,GAAG,IAAIC,GAAG,CAAC,CAAC;AAEtE,OAAO,SAAST,WAAWA,CAACU,QAAkB,EAAEX,SAAiB,EAAEY,YAA0B,EAAQ;EAAA,IAAAC,kBAAA;EACjG,IAAI,CAAChB,aAAa,CAACiB,QAAQ,CAACd,SAAS,CAAC,EAAE;IACpC,MAAM,IAAIe,KAAK,CAAE,kBAAiBf,SAAU,EAAC,CAAC;EAClD;EAEA,IAAI,CAACS,cAAc,CAACO,GAAG,CAACL,QAAQ,CAAC,EAAE;IAC/BF,cAAc,CAACQ,GAAG,CAACN,QAAQ,EAAE,EAAE,CAAC;EACpC;EAEA,CAAAE,kBAAA,GAAAJ,cAAc,CAACS,GAAG,CAACP,QAAQ,CAAC,cAAAE,kBAAA,uBAA5BA,kBAAA,CAA8BM,IAAI,CAACrB,YAAY,CAACG,WAAW,CAACD,SAAS,EAAEY,YAAY,CAAC,CAAC;AACzF;AAEA,OAAO,SAASQ,cAAcA,CAACT,QAAkB,EAAQ;EAAA,IAAAU,mBAAA;EACrD,CAAAA,mBAAA,GAAAZ,cAAc,CAACS,GAAG,CAACP,QAAQ,CAAC,cAAAU,mBAAA,uBAA5BA,mBAAA,CAA8BC,OAAO,CAACC,GAAG,IAAI;IACzCA,GAAG,CAACC,MAAM,CAAC,CAAC;EAChB,CAAC,CAAC;EAEFf,cAAc,CAACgB,MAAM,CAACd,QAAQ,CAAC;AACnC"}
@@ -1 +1 @@
1
- {"version":3,"names":["debug","Logger","enable","ns","constructor","prefix","_defineProperty","_prefix","ROOT_PREFIX","_debug","_info","_warn","_error","log","console","bind","msg","info","warn","error","err","_err$stack","trace","stack"],"sources":["Logger.ts"],"sourcesContent":["import debug from 'debug';\r\n\r\n\r\nexport default class Logger {\r\n static ROOT_PREFIX = 'rn-webrtc';\r\n\r\n private _debug: debug.Debugger;\r\n private _info: debug.Debugger;\r\n private _warn: debug.Debugger;\r\n private _error: debug.Debugger;\r\n\r\n static enable(ns: string): void {\r\n debug.enable(ns);\r\n }\r\n\r\n constructor(prefix: string) {\r\n const _prefix = `${Logger.ROOT_PREFIX}:${prefix}`;\r\n\r\n this._debug = debug(`${_prefix}:DEBUG`);\r\n this._info = debug(`${_prefix}:INFO`);\r\n this._warn = debug(`${_prefix}:WARN`);\r\n this._error = debug(`${_prefix}:ERROR`);\r\n\r\n const log = console.log.bind(console);\r\n\r\n this._debug.log = log;\r\n this._info.log = log;\r\n this._warn.log = log;\r\n this._error.log = log;\r\n }\r\n\r\n debug(msg: string): void {\r\n this._debug(msg);\r\n }\r\n\r\n info(msg: string): void {\r\n this._info(msg);\r\n }\r\n\r\n warn(msg: string): void {\r\n this._warn(msg);\r\n }\r\n\r\n error(msg: string, err?: Error): void {\r\n const trace = err?.stack ?? 'N/A';\r\n\r\n this._error(`${msg} Trace: ${trace}`);\r\n }\r\n}\r\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AAGzB,eAAe,MAAMC,MAAM,CAAC;EAQxB,OAAOC,MAAMA,CAACC,EAAU,EAAQ;IAC5BH,KAAK,CAACE,MAAM,CAACC,EAAE,CAAC;EACpB;EAEAC,WAAWA,CAACC,MAAc,EAAE;IAAAC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IACxB,MAAMC,OAAO,GAAI,GAAEN,MAAM,CAACO,WAAY,IAAGH,MAAO,EAAC;IAEjD,IAAI,CAACI,MAAM,GAAGT,KAAK,CAAE,GAAEO,OAAQ,QAAO,CAAC;IACvC,IAAI,CAACG,KAAK,GAAGV,KAAK,CAAE,GAAEO,OAAQ,OAAM,CAAC;IACrC,IAAI,CAACI,KAAK,GAAGX,KAAK,CAAE,GAAEO,OAAQ,OAAM,CAAC;IACrC,IAAI,CAACK,MAAM,GAAGZ,KAAK,CAAE,GAAEO,OAAQ,QAAO,CAAC;IAEvC,MAAMM,GAAG,GAAGC,OAAO,CAACD,GAAG,CAACE,IAAI,CAACD,OAAO,CAAC;IAErC,IAAI,CAACL,MAAM,CAACI,GAAG,GAAGA,GAAG;IACrB,IAAI,CAACH,KAAK,CAACG,GAAG,GAAGA,GAAG;IACpB,IAAI,CAACF,KAAK,CAACE,GAAG,GAAGA,GAAG;IACpB,IAAI,CAACD,MAAM,CAACC,GAAG,GAAGA,GAAG;EACzB;EAEAb,KAAKA,CAACgB,GAAW,EAAQ;IACrB,IAAI,CAACP,MAAM,CAACO,GAAG,CAAC;EACpB;EAEAC,IAAIA,CAACD,GAAW,EAAQ;IACpB,IAAI,CAACN,KAAK,CAACM,GAAG,CAAC;EACnB;EAEAE,IAAIA,CAACF,GAAW,EAAQ;IACpB,IAAI,CAACL,KAAK,CAACK,GAAG,CAAC;EACnB;EAEAG,KAAKA,CAACH,GAAW,EAAEI,GAAW,EAAQ;IAAA,IAAAC,UAAA;IAClC,MAAMC,KAAK,IAAAD,UAAA,GAAGD,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEG,KAAK,cAAAF,UAAA,cAAAA,UAAA,GAAI,KAAK;IAEjC,IAAI,CAACT,MAAM,CAAE,GAAEI,GAAI,WAAUM,KAAM,EAAC,CAAC;EACzC;AACJ;AAAChB,eAAA,CA7CoBL,MAAM,iBACF,WAAW"}
1
+ {"version":3,"names":["debug","Logger","enable","ns","constructor","prefix","_defineProperty","_prefix","ROOT_PREFIX","_debug","_info","_warn","_error","log","console","bind","msg","info","warn","error","err","_err$stack","trace","stack"],"sources":["Logger.ts"],"sourcesContent":["import debug from 'debug';\n\n\nexport default class Logger {\n static ROOT_PREFIX = 'rn-webrtc';\n\n private _debug: debug.Debugger;\n private _info: debug.Debugger;\n private _warn: debug.Debugger;\n private _error: debug.Debugger;\n\n static enable(ns: string): void {\n debug.enable(ns);\n }\n\n constructor(prefix: string) {\n const _prefix = `${Logger.ROOT_PREFIX}:${prefix}`;\n\n this._debug = debug(`${_prefix}:DEBUG`);\n this._info = debug(`${_prefix}:INFO`);\n this._warn = debug(`${_prefix}:WARN`);\n this._error = debug(`${_prefix}:ERROR`);\n\n const log = console.log.bind(console);\n\n this._debug.log = log;\n this._info.log = log;\n this._warn.log = log;\n this._error.log = log;\n }\n\n debug(msg: string): void {\n this._debug(msg);\n }\n\n info(msg: string): void {\n this._info(msg);\n }\n\n warn(msg: string): void {\n this._warn(msg);\n }\n\n error(msg: string, err?: Error): void {\n const trace = err?.stack ?? 'N/A';\n\n this._error(`${msg} Trace: ${trace}`);\n }\n}\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AAGzB,eAAe,MAAMC,MAAM,CAAC;EAQxB,OAAOC,MAAMA,CAACC,EAAU,EAAQ;IAC5BH,KAAK,CAACE,MAAM,CAACC,EAAE,CAAC;EACpB;EAEAC,WAAWA,CAACC,MAAc,EAAE;IAAAC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IACxB,MAAMC,OAAO,GAAI,GAAEN,MAAM,CAACO,WAAY,IAAGH,MAAO,EAAC;IAEjD,IAAI,CAACI,MAAM,GAAGT,KAAK,CAAE,GAAEO,OAAQ,QAAO,CAAC;IACvC,IAAI,CAACG,KAAK,GAAGV,KAAK,CAAE,GAAEO,OAAQ,OAAM,CAAC;IACrC,IAAI,CAACI,KAAK,GAAGX,KAAK,CAAE,GAAEO,OAAQ,OAAM,CAAC;IACrC,IAAI,CAACK,MAAM,GAAGZ,KAAK,CAAE,GAAEO,OAAQ,QAAO,CAAC;IAEvC,MAAMM,GAAG,GAAGC,OAAO,CAACD,GAAG,CAACE,IAAI,CAACD,OAAO,CAAC;IAErC,IAAI,CAACL,MAAM,CAACI,GAAG,GAAGA,GAAG;IACrB,IAAI,CAACH,KAAK,CAACG,GAAG,GAAGA,GAAG;IACpB,IAAI,CAACF,KAAK,CAACE,GAAG,GAAGA,GAAG;IACpB,IAAI,CAACD,MAAM,CAACC,GAAG,GAAGA,GAAG;EACzB;EAEAb,KAAKA,CAACgB,GAAW,EAAQ;IACrB,IAAI,CAACP,MAAM,CAACO,GAAG,CAAC;EACpB;EAEAC,IAAIA,CAACD,GAAW,EAAQ;IACpB,IAAI,CAACN,KAAK,CAACM,GAAG,CAAC;EACnB;EAEAE,IAAIA,CAACF,GAAW,EAAQ;IACpB,IAAI,CAACL,KAAK,CAACK,GAAG,CAAC;EACnB;EAEAG,KAAKA,CAACH,GAAW,EAAEI,GAAW,EAAQ;IAAA,IAAAC,UAAA;IAClC,MAAMC,KAAK,IAAAD,UAAA,GAAGD,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEG,KAAK,cAAAF,UAAA,cAAAA,UAAA,GAAI,KAAK;IAEjC,IAAI,CAACT,MAAM,CAAE,GAAEI,GAAI,WAAUM,KAAM,EAAC,CAAC;EACzC;AACJ;AAAChB,eAAA,CA7CoBL,MAAM,iBACF,WAAW"}
@@ -6,39 +6,39 @@ const {
6
6
  WebRTCModule
7
7
  } = NativeModules;
8
8
  class MediaDevices extends EventTarget {
9
- /**
10
- * W3C "Media Capture and Streams" compatible {@code enumerateDevices}
11
- * implementation.
9
+ /**
10
+ * W3C "Media Capture and Streams" compatible {@code enumerateDevices}
11
+ * implementation.
12
12
  */
13
13
  enumerateDevices() {
14
14
  return new Promise(resolve => WebRTCModule.enumerateDevices(resolve));
15
15
  }
16
16
 
17
- /**
18
- * W3C "Screen Capture" compatible {@code getDisplayMedia} implementation.
19
- * See: https://w3c.github.io/mediacapture-screen-share/
20
- *
21
- * @returns {Promise}
17
+ /**
18
+ * W3C "Screen Capture" compatible {@code getDisplayMedia} implementation.
19
+ * See: https://w3c.github.io/mediacapture-screen-share/
20
+ *
21
+ * @returns {Promise}
22
22
  */
23
23
  getDisplayMedia() {
24
24
  return getDisplayMedia();
25
25
  }
26
26
 
27
- /**
28
- * W3C "Media Capture and Streams" compatible {@code getUserMedia}
29
- * implementation.
30
- * See: https://www.w3.org/TR/mediacapture-streams/#dom-mediadevices-enumeratedevices
31
- *
32
- * @param {*} constraints
33
- * @returns {Promise}
27
+ /**
28
+ * W3C "Media Capture and Streams" compatible {@code getUserMedia}
29
+ * implementation.
30
+ * See: https://www.w3.org/TR/mediacapture-streams/#dom-mediadevices-enumeratedevices
31
+ *
32
+ * @param {*} constraints
33
+ * @returns {Promise}
34
34
  */
35
35
  getUserMedia(constraints) {
36
36
  return getUserMedia(constraints);
37
37
  }
38
38
  }
39
39
 
40
- /**
41
- * Define the `onxxx` event handlers.
40
+ /**
41
+ * Define the `onxxx` event handlers.
42
42
  */
43
43
  const proto = MediaDevices.prototype;
44
44
  defineEventAttribute(proto, 'devicechange');
@@ -1 +1 @@
1
- {"version":3,"names":["EventTarget","defineEventAttribute","NativeModules","getDisplayMedia","getUserMedia","WebRTCModule","MediaDevices","enumerateDevices","Promise","resolve","constraints","proto","prototype"],"sources":["MediaDevices.ts"],"sourcesContent":["import { EventTarget, Event, defineEventAttribute } from 'event-target-shim/index';\r\nimport { NativeModules } from 'react-native';\r\n\r\nimport getDisplayMedia from './getDisplayMedia';\r\nimport getUserMedia, { Constraints } from './getUserMedia';\r\n\r\nconst { WebRTCModule } = NativeModules;\r\n\r\ntype MediaDevicesEventMap = {\r\n devicechange: Event<'devicechange'>\r\n}\r\n\r\nclass MediaDevices extends EventTarget<MediaDevicesEventMap> {\r\n /**\r\n * W3C \"Media Capture and Streams\" compatible {@code enumerateDevices}\r\n * implementation.\r\n */\r\n enumerateDevices() {\r\n return new Promise(resolve => WebRTCModule.enumerateDevices(resolve));\r\n }\r\n\r\n /**\r\n * W3C \"Screen Capture\" compatible {@code getDisplayMedia} implementation.\r\n * See: https://w3c.github.io/mediacapture-screen-share/\r\n *\r\n * @returns {Promise}\r\n */\r\n getDisplayMedia() {\r\n return getDisplayMedia();\r\n }\r\n\r\n /**\r\n * W3C \"Media Capture and Streams\" compatible {@code getUserMedia}\r\n * implementation.\r\n * See: https://www.w3.org/TR/mediacapture-streams/#dom-mediadevices-enumeratedevices\r\n *\r\n * @param {*} constraints\r\n * @returns {Promise}\r\n */\r\n getUserMedia(constraints: Constraints) {\r\n return getUserMedia(constraints);\r\n }\r\n}\r\n\r\n/**\r\n * Define the `onxxx` event handlers.\r\n */\r\nconst proto = MediaDevices.prototype;\r\n\r\ndefineEventAttribute(proto, 'devicechange');\r\n\r\n\r\nexport default new MediaDevices();\r\n"],"mappings":"AAAA,SAASA,WAAW,EAASC,oBAAoB,QAAQ,yBAAyB;AAClF,SAASC,aAAa,QAAQ,cAAc;AAE5C,OAAOC,eAAe,MAAM,mBAAmB;AAC/C,OAAOC,YAAY,MAAuB,gBAAgB;AAE1D,MAAM;EAAEC;AAAa,CAAC,GAAGH,aAAa;AAMtC,MAAMI,YAAY,SAASN,WAAW,CAAuB;EACzD;AACJ;AACA;AACA;EACIO,gBAAgBA,CAAA,EAAG;IACf,OAAO,IAAIC,OAAO,CAACC,OAAO,IAAIJ,YAAY,CAACE,gBAAgB,CAACE,OAAO,CAAC,CAAC;EACzE;;EAEA;AACJ;AACA;AACA;AACA;AACA;EACIN,eAAeA,CAAA,EAAG;IACd,OAAOA,eAAe,CAAC,CAAC;EAC5B;;EAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACIC,YAAYA,CAACM,WAAwB,EAAE;IACnC,OAAON,YAAY,CAACM,WAAW,CAAC;EACpC;AACJ;;AAEA;AACA;AACA;AACA,MAAMC,KAAK,GAAGL,YAAY,CAACM,SAAS;AAEpCX,oBAAoB,CAACU,KAAK,EAAE,cAAc,CAAC;AAG3C,eAAe,IAAIL,YAAY,CAAC,CAAC"}
1
+ {"version":3,"names":["EventTarget","defineEventAttribute","NativeModules","getDisplayMedia","getUserMedia","WebRTCModule","MediaDevices","enumerateDevices","Promise","resolve","constraints","proto","prototype"],"sources":["MediaDevices.ts"],"sourcesContent":["import { EventTarget, Event, defineEventAttribute } from 'event-target-shim/index';\nimport { NativeModules } from 'react-native';\n\nimport getDisplayMedia from './getDisplayMedia';\nimport getUserMedia, { Constraints } from './getUserMedia';\n\nconst { WebRTCModule } = NativeModules;\n\ntype MediaDevicesEventMap = {\n devicechange: Event<'devicechange'>\n}\n\nclass MediaDevices extends EventTarget<MediaDevicesEventMap> {\n /**\n * W3C \"Media Capture and Streams\" compatible {@code enumerateDevices}\n * implementation.\n */\n enumerateDevices() {\n return new Promise(resolve => WebRTCModule.enumerateDevices(resolve));\n }\n\n /**\n * W3C \"Screen Capture\" compatible {@code getDisplayMedia} implementation.\n * See: https://w3c.github.io/mediacapture-screen-share/\n *\n * @returns {Promise}\n */\n getDisplayMedia() {\n return getDisplayMedia();\n }\n\n /**\n * W3C \"Media Capture and Streams\" compatible {@code getUserMedia}\n * implementation.\n * See: https://www.w3.org/TR/mediacapture-streams/#dom-mediadevices-enumeratedevices\n *\n * @param {*} constraints\n * @returns {Promise}\n */\n getUserMedia(constraints: Constraints) {\n return getUserMedia(constraints);\n }\n}\n\n/**\n * Define the `onxxx` event handlers.\n */\nconst proto = MediaDevices.prototype;\n\ndefineEventAttribute(proto, 'devicechange');\n\n\nexport default new MediaDevices();\n"],"mappings":"AAAA,SAASA,WAAW,EAASC,oBAAoB,QAAQ,yBAAyB;AAClF,SAASC,aAAa,QAAQ,cAAc;AAE5C,OAAOC,eAAe,MAAM,mBAAmB;AAC/C,OAAOC,YAAY,MAAuB,gBAAgB;AAE1D,MAAM;EAAEC;AAAa,CAAC,GAAGH,aAAa;AAMtC,MAAMI,YAAY,SAASN,WAAW,CAAuB;EACzD;AACJ;AACA;AACA;EACIO,gBAAgBA,CAAA,EAAG;IACf,OAAO,IAAIC,OAAO,CAACC,OAAO,IAAIJ,YAAY,CAACE,gBAAgB,CAACE,OAAO,CAAC,CAAC;EACzE;;EAEA;AACJ;AACA;AACA;AACA;AACA;EACIN,eAAeA,CAAA,EAAG;IACd,OAAOA,eAAe,CAAC,CAAC;EAC5B;;EAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACIC,YAAYA,CAACM,WAAwB,EAAE;IACnC,OAAON,YAAY,CAACM,WAAW,CAAC;EACpC;AACJ;;AAEA;AACA;AACA;AACA,MAAMC,KAAK,GAAGL,YAAY,CAACM,SAAS;AAEpCX,oBAAoB,CAACU,KAAK,EAAE,cAAc,CAAC;AAG3C,eAAe,IAAIL,YAAY,CAAC,CAAC"}
@@ -7,25 +7,25 @@ const {
7
7
  WebRTCModule
8
8
  } = NativeModules;
9
9
  export default class MediaStream extends EventTarget {
10
- /**
11
- * The identifier of this MediaStream unique within the associated
12
- * WebRTCModule instance. As the id of a remote MediaStream instance is unique
13
- * only within the associated RTCPeerConnection, it is not sufficiently unique
14
- * to identify this MediaStream across multiple RTCPeerConnections and to
15
- * unambiguously differentiate it from a local MediaStream instance not added
16
- * to an RTCPeerConnection.
10
+ /**
11
+ * The identifier of this MediaStream unique within the associated
12
+ * WebRTCModule instance. As the id of a remote MediaStream instance is unique
13
+ * only within the associated RTCPeerConnection, it is not sufficiently unique
14
+ * to identify this MediaStream across multiple RTCPeerConnections and to
15
+ * unambiguously differentiate it from a local MediaStream instance not added
16
+ * to an RTCPeerConnection.
17
17
  */
18
18
 
19
- /**
20
- * A MediaStream can be constructed in several ways, depending on the parameters
21
- * that are passed here.
22
- *
23
- * - undefined: just a new stream, with no tracks.
24
- * - MediaStream instance: a new stream, with a copy of the tracks of the passed stream.
25
- * - Array of MediaStreamTrack: a new stream with a copy of the tracks in the array.
26
- * - object: a new stream instance, represented by the passed info object, this is always
27
- * done internally, when the stream is first created in native and the JS wrapper is
28
- * built afterwards.
19
+ /**
20
+ * A MediaStream can be constructed in several ways, depending on the parameters
21
+ * that are passed here.
22
+ *
23
+ * - undefined: just a new stream, with no tracks.
24
+ * - MediaStream instance: a new stream, with a copy of the tracks of the passed stream.
25
+ * - Array of MediaStreamTrack: a new stream with a copy of the tracks in the array.
26
+ * - object: a new stream instance, represented by the passed info object, this is always
27
+ * done internally, when the stream is first created in native and the JS wrapper is
28
+ * built afterwards.
29
29
  */
30
30
  constructor(arg) {
31
31
  super();
@@ -120,8 +120,8 @@ export default class MediaStream extends EventTarget {
120
120
  }
121
121
  }
122
122
 
123
- /**
124
- * Define the `onxxx` event handlers.
123
+ /**
124
+ * Define the `onxxx` event handlers.
125
125
  */
126
126
  const proto = MediaStream.prototype;
127
127
  defineEventAttribute(proto, 'addtrack');
@@ -1 +1 @@
1
- {"version":3,"names":["EventTarget","defineEventAttribute","NativeModules","MediaStreamTrack","uniqueID","WebRTCModule","MediaStream","constructor","arg","_defineProperty","_id","_reactTag","mediaStreamCreate","id","track","getTracks","addTrack","Array","isArray","streamId","streamReactTag","tracks","trackInfo","_tracks","push","TypeError","active","index","indexOf","mediaStreamAddTrack","remote","_peerConnectionId","removeTrack","splice","mediaStreamRemoveTrack","slice","getTrackById","trackId","find","getAudioTracks","filter","kind","getVideoTracks","clone","Error","toURL","release","releaseTracks","arguments","length","undefined","mediaStreamRelease","proto","prototype"],"sources":["MediaStream.ts"],"sourcesContent":["import { EventTarget, defineEventAttribute } from 'event-target-shim/index';\r\nimport { NativeModules } from 'react-native';\r\n\r\nimport MediaStreamTrack, { MediaStreamTrackInfo } from './MediaStreamTrack';\r\nimport MediaStreamTrackEvent from './MediaStreamTrackEvent';\r\nimport { uniqueID } from './RTCUtil';\r\n\r\nconst { WebRTCModule } = NativeModules;\r\n\r\ntype MediaStreamEventMap = {\r\n addtrack: MediaStreamTrackEvent<'addtrack'>\r\n removetrack: MediaStreamTrackEvent<'removetrack'>\r\n}\r\n\r\nexport default class MediaStream extends EventTarget<MediaStreamEventMap> {\r\n _tracks: MediaStreamTrack[] = [];\r\n _id: string;\r\n\r\n /**\r\n * The identifier of this MediaStream unique within the associated\r\n * WebRTCModule instance. As the id of a remote MediaStream instance is unique\r\n * only within the associated RTCPeerConnection, it is not sufficiently unique\r\n * to identify this MediaStream across multiple RTCPeerConnections and to\r\n * unambiguously differentiate it from a local MediaStream instance not added\r\n * to an RTCPeerConnection.\r\n */\r\n _reactTag: string;\r\n\r\n /**\r\n * A MediaStream can be constructed in several ways, depending on the parameters\r\n * that are passed here.\r\n *\r\n * - undefined: just a new stream, with no tracks.\r\n * - MediaStream instance: a new stream, with a copy of the tracks of the passed stream.\r\n * - Array of MediaStreamTrack: a new stream with a copy of the tracks in the array.\r\n * - object: a new stream instance, represented by the passed info object, this is always\r\n * done internally, when the stream is first created in native and the JS wrapper is\r\n * built afterwards.\r\n */\r\n constructor(arg?:\r\n MediaStream |\r\n MediaStreamTrack[] |\r\n { streamId: string, streamReactTag: string, tracks: MediaStreamTrackInfo[] }\r\n ) {\r\n super();\r\n\r\n // Assign a UUID to start with. It will get overridden for remote streams.\r\n this._id = uniqueID();\r\n\r\n // Local MediaStreams are created by WebRTCModule to have their id and\r\n // reactTag equal because WebRTCModule follows the respective standard's\r\n // recommendation for id generation i.e. uses UUID which is unique enough\r\n // for the purposes of reactTag.\r\n this._reactTag = this._id;\r\n\r\n if (typeof arg === 'undefined') {\r\n WebRTCModule.mediaStreamCreate(this.id);\r\n } else if (arg instanceof MediaStream) {\r\n WebRTCModule.mediaStreamCreate(this.id);\r\n\r\n for (const track of arg.getTracks()) {\r\n this.addTrack(track);\r\n }\r\n } else if (Array.isArray(arg)) {\r\n WebRTCModule.mediaStreamCreate(this.id);\r\n\r\n for (const track of arg) {\r\n this.addTrack(track);\r\n }\r\n } else if (typeof arg === 'object' && arg.streamId && arg.streamReactTag && arg.tracks) {\r\n this._id = arg.streamId;\r\n this._reactTag = arg.streamReactTag;\r\n\r\n for (const trackInfo of arg.tracks) {\r\n // We are not using addTrack here because the track is already part of the\r\n // stream, so there is no need to add it on the native side.\r\n this._tracks.push(new MediaStreamTrack(trackInfo));\r\n }\r\n } else {\r\n throw new TypeError(`invalid type: ${typeof arg}`);\r\n }\r\n }\r\n\r\n get id(): string {\r\n return this._id;\r\n }\r\n\r\n get active(): boolean {\r\n // TODO: can we reliably report this value?\r\n\r\n return true;\r\n }\r\n\r\n addTrack(track: MediaStreamTrack): void {\r\n const index = this._tracks.indexOf(track);\r\n\r\n if (index !== -1) {\r\n return;\r\n }\r\n\r\n this._tracks.push(track);\r\n WebRTCModule.mediaStreamAddTrack(this._reactTag, track.remote ? track._peerConnectionId : -1, track.id);\r\n }\r\n\r\n removeTrack(track: MediaStreamTrack): void {\r\n const index = this._tracks.indexOf(track);\r\n\r\n if (index === -1) {\r\n return;\r\n }\r\n\r\n this._tracks.splice(index, 1);\r\n WebRTCModule.mediaStreamRemoveTrack(this._reactTag, track.remote ? track._peerConnectionId : -1, track.id);\r\n }\r\n\r\n getTracks(): MediaStreamTrack[] {\r\n return this._tracks.slice();\r\n }\r\n\r\n getTrackById(trackId): MediaStreamTrack | undefined {\r\n return this._tracks.find(track => track.id === trackId);\r\n }\r\n\r\n getAudioTracks(): MediaStreamTrack[] {\r\n return this._tracks.filter(track => track.kind === 'audio');\r\n }\r\n\r\n getVideoTracks(): MediaStreamTrack[] {\r\n return this._tracks.filter(track => track.kind === 'video');\r\n }\r\n\r\n clone(): never {\r\n throw new Error('Not implemented.');\r\n }\r\n\r\n toURL(): string {\r\n return this._reactTag;\r\n }\r\n\r\n release(releaseTracks = true): void {\r\n const tracks = [ ...this._tracks ];\r\n\r\n for (const track of tracks) {\r\n this.removeTrack(track);\r\n\r\n if (releaseTracks) {\r\n track.release();\r\n }\r\n }\r\n\r\n WebRTCModule.mediaStreamRelease(this._reactTag);\r\n }\r\n}\r\n\r\n/**\r\n * Define the `onxxx` event handlers.\r\n */\r\nconst proto = MediaStream.prototype;\r\n\r\ndefineEventAttribute(proto, 'addtrack');\r\ndefineEventAttribute(proto, 'removetrack');\r\n"],"mappings":"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"}
1
+ {"version":3,"names":["EventTarget","defineEventAttribute","NativeModules","MediaStreamTrack","uniqueID","WebRTCModule","MediaStream","constructor","arg","_defineProperty","_id","_reactTag","mediaStreamCreate","id","track","getTracks","addTrack","Array","isArray","streamId","streamReactTag","tracks","trackInfo","_tracks","push","TypeError","active","index","indexOf","mediaStreamAddTrack","remote","_peerConnectionId","removeTrack","splice","mediaStreamRemoveTrack","slice","getTrackById","trackId","find","getAudioTracks","filter","kind","getVideoTracks","clone","Error","toURL","release","releaseTracks","arguments","length","undefined","mediaStreamRelease","proto","prototype"],"sources":["MediaStream.ts"],"sourcesContent":["import { EventTarget, defineEventAttribute } from 'event-target-shim/index';\nimport { NativeModules } from 'react-native';\n\nimport MediaStreamTrack, { MediaStreamTrackInfo } from './MediaStreamTrack';\nimport MediaStreamTrackEvent from './MediaStreamTrackEvent';\nimport { uniqueID } from './RTCUtil';\n\nconst { WebRTCModule } = NativeModules;\n\ntype MediaStreamEventMap = {\n addtrack: MediaStreamTrackEvent<'addtrack'>\n removetrack: MediaStreamTrackEvent<'removetrack'>\n}\n\nexport default class MediaStream extends EventTarget<MediaStreamEventMap> {\n _tracks: MediaStreamTrack[] = [];\n _id: string;\n\n /**\n * The identifier of this MediaStream unique within the associated\n * WebRTCModule instance. As the id of a remote MediaStream instance is unique\n * only within the associated RTCPeerConnection, it is not sufficiently unique\n * to identify this MediaStream across multiple RTCPeerConnections and to\n * unambiguously differentiate it from a local MediaStream instance not added\n * to an RTCPeerConnection.\n */\n _reactTag: string;\n\n /**\n * A MediaStream can be constructed in several ways, depending on the parameters\n * that are passed here.\n *\n * - undefined: just a new stream, with no tracks.\n * - MediaStream instance: a new stream, with a copy of the tracks of the passed stream.\n * - Array of MediaStreamTrack: a new stream with a copy of the tracks in the array.\n * - object: a new stream instance, represented by the passed info object, this is always\n * done internally, when the stream is first created in native and the JS wrapper is\n * built afterwards.\n */\n constructor(arg?:\n MediaStream |\n MediaStreamTrack[] |\n { streamId: string, streamReactTag: string, tracks: MediaStreamTrackInfo[] }\n ) {\n super();\n\n // Assign a UUID to start with. It will get overridden for remote streams.\n this._id = uniqueID();\n\n // Local MediaStreams are created by WebRTCModule to have their id and\n // reactTag equal because WebRTCModule follows the respective standard's\n // recommendation for id generation i.e. uses UUID which is unique enough\n // for the purposes of reactTag.\n this._reactTag = this._id;\n\n if (typeof arg === 'undefined') {\n WebRTCModule.mediaStreamCreate(this.id);\n } else if (arg instanceof MediaStream) {\n WebRTCModule.mediaStreamCreate(this.id);\n\n for (const track of arg.getTracks()) {\n this.addTrack(track);\n }\n } else if (Array.isArray(arg)) {\n WebRTCModule.mediaStreamCreate(this.id);\n\n for (const track of arg) {\n this.addTrack(track);\n }\n } else if (typeof arg === 'object' && arg.streamId && arg.streamReactTag && arg.tracks) {\n this._id = arg.streamId;\n this._reactTag = arg.streamReactTag;\n\n for (const trackInfo of arg.tracks) {\n // We are not using addTrack here because the track is already part of the\n // stream, so there is no need to add it on the native side.\n this._tracks.push(new MediaStreamTrack(trackInfo));\n }\n } else {\n throw new TypeError(`invalid type: ${typeof arg}`);\n }\n }\n\n get id(): string {\n return this._id;\n }\n\n get active(): boolean {\n // TODO: can we reliably report this value?\n\n return true;\n }\n\n addTrack(track: MediaStreamTrack): void {\n const index = this._tracks.indexOf(track);\n\n if (index !== -1) {\n return;\n }\n\n this._tracks.push(track);\n WebRTCModule.mediaStreamAddTrack(this._reactTag, track.remote ? track._peerConnectionId : -1, track.id);\n }\n\n removeTrack(track: MediaStreamTrack): void {\n const index = this._tracks.indexOf(track);\n\n if (index === -1) {\n return;\n }\n\n this._tracks.splice(index, 1);\n WebRTCModule.mediaStreamRemoveTrack(this._reactTag, track.remote ? track._peerConnectionId : -1, track.id);\n }\n\n getTracks(): MediaStreamTrack[] {\n return this._tracks.slice();\n }\n\n getTrackById(trackId): MediaStreamTrack | undefined {\n return this._tracks.find(track => track.id === trackId);\n }\n\n getAudioTracks(): MediaStreamTrack[] {\n return this._tracks.filter(track => track.kind === 'audio');\n }\n\n getVideoTracks(): MediaStreamTrack[] {\n return this._tracks.filter(track => track.kind === 'video');\n }\n\n clone(): never {\n throw new Error('Not implemented.');\n }\n\n toURL(): string {\n return this._reactTag;\n }\n\n release(releaseTracks = true): void {\n const tracks = [ ...this._tracks ];\n\n for (const track of tracks) {\n this.removeTrack(track);\n\n if (releaseTracks) {\n track.release();\n }\n }\n\n WebRTCModule.mediaStreamRelease(this._reactTag);\n }\n}\n\n/**\n * Define the `onxxx` event handlers.\n */\nconst proto = MediaStream.prototype;\n\ndefineEventAttribute(proto, 'addtrack');\ndefineEventAttribute(proto, 'removetrack');\n"],"mappings":";AAAA,SAASA,WAAW,EAAEC,oBAAoB,QAAQ,yBAAyB;AAC3E,SAASC,aAAa,QAAQ,cAAc;AAE5C,OAAOC,gBAAgB,MAAgC,oBAAoB;AAE3E,SAASC,QAAQ,QAAQ,WAAW;AAEpC,MAAM;EAAEC;AAAa,CAAC,GAAGH,aAAa;AAOtC,eAAe,MAAMI,WAAW,SAASN,WAAW,CAAsB;EAItE;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;EAGI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIO,WAAWA,CAACC,GAGoE,EAC9E;IACE,KAAK,CAAC,CAAC;;IAEP;IAAAC,eAAA,kBA/B0B,EAAE;IAAAA,eAAA;IAAAA,eAAA;IAgC5B,IAAI,CAACC,GAAG,GAAGN,QAAQ,CAAC,CAAC;;IAErB;IACA;IACA;IACA;IACA,IAAI,CAACO,SAAS,GAAG,IAAI,CAACD,GAAG;IAEzB,IAAI,OAAOF,GAAG,KAAK,WAAW,EAAE;MAC5BH,YAAY,CAACO,iBAAiB,CAAC,IAAI,CAACC,EAAE,CAAC;IAC3C,CAAC,MAAM,IAAIL,GAAG,YAAYF,WAAW,EAAE;MACnCD,YAAY,CAACO,iBAAiB,CAAC,IAAI,CAACC,EAAE,CAAC;MAEvC,KAAK,MAAMC,KAAK,IAAIN,GAAG,CAACO,SAAS,CAAC,CAAC,EAAE;QACjC,IAAI,CAACC,QAAQ,CAACF,KAAK,CAAC;MACxB;IACJ,CAAC,MAAM,IAAIG,KAAK,CAACC,OAAO,CAACV,GAAG,CAAC,EAAE;MAC3BH,YAAY,CAACO,iBAAiB,CAAC,IAAI,CAACC,EAAE,CAAC;MAEvC,KAAK,MAAMC,KAAK,IAAIN,GAAG,EAAE;QACrB,IAAI,CAACQ,QAAQ,CAACF,KAAK,CAAC;MACxB;IACJ,CAAC,MAAM,IAAI,OAAON,GAAG,KAAK,QAAQ,IAAIA,GAAG,CAACW,QAAQ,IAAIX,GAAG,CAACY,cAAc,IAAIZ,GAAG,CAACa,MAAM,EAAE;MACpF,IAAI,CAACX,GAAG,GAAGF,GAAG,CAACW,QAAQ;MACvB,IAAI,CAACR,SAAS,GAAGH,GAAG,CAACY,cAAc;MAEnC,KAAK,MAAME,SAAS,IAAId,GAAG,CAACa,MAAM,EAAE;QAChC;QACA;QACA,IAAI,CAACE,OAAO,CAACC,IAAI,CAAC,IAAIrB,gBAAgB,CAACmB,SAAS,CAAC,CAAC;MACtD;IACJ,CAAC,MAAM;MACH,MAAM,IAAIG,SAAS,CAAE,iBAAgB,OAAOjB,GAAI,EAAC,CAAC;IACtD;EACJ;EAEA,IAAIK,EAAEA,CAAA,EAAW;IACb,OAAO,IAAI,CAACH,GAAG;EACnB;EAEA,IAAIgB,MAAMA,CAAA,EAAY;IAClB;;IAEA,OAAO,IAAI;EACf;EAEAV,QAAQA,CAACF,KAAuB,EAAQ;IACpC,MAAMa,KAAK,GAAG,IAAI,CAACJ,OAAO,CAACK,OAAO,CAACd,KAAK,CAAC;IAEzC,IAAIa,KAAK,KAAK,CAAC,CAAC,EAAE;MACd;IACJ;IAEA,IAAI,CAACJ,OAAO,CAACC,IAAI,CAACV,KAAK,CAAC;IACxBT,YAAY,CAACwB,mBAAmB,CAAC,IAAI,CAAClB,SAAS,EAAEG,KAAK,CAACgB,MAAM,GAAGhB,KAAK,CAACiB,iBAAiB,GAAG,CAAC,CAAC,EAAEjB,KAAK,CAACD,EAAE,CAAC;EAC3G;EAEAmB,WAAWA,CAAClB,KAAuB,EAAQ;IACvC,MAAMa,KAAK,GAAG,IAAI,CAACJ,OAAO,CAACK,OAAO,CAACd,KAAK,CAAC;IAEzC,IAAIa,KAAK,KAAK,CAAC,CAAC,EAAE;MACd;IACJ;IAEA,IAAI,CAACJ,OAAO,CAACU,MAAM,CAACN,KAAK,EAAE,CAAC,CAAC;IAC7BtB,YAAY,CAAC6B,sBAAsB,CAAC,IAAI,CAACvB,SAAS,EAAEG,KAAK,CAACgB,MAAM,GAAGhB,KAAK,CAACiB,iBAAiB,GAAG,CAAC,CAAC,EAAEjB,KAAK,CAACD,EAAE,CAAC;EAC9G;EAEAE,SAASA,CAAA,EAAuB;IAC5B,OAAO,IAAI,CAACQ,OAAO,CAACY,KAAK,CAAC,CAAC;EAC/B;EAEAC,YAAYA,CAACC,OAAO,EAAgC;IAChD,OAAO,IAAI,CAACd,OAAO,CAACe,IAAI,CAACxB,KAAK,IAAIA,KAAK,CAACD,EAAE,KAAKwB,OAAO,CAAC;EAC3D;EAEAE,cAAcA,CAAA,EAAuB;IACjC,OAAO,IAAI,CAAChB,OAAO,CAACiB,MAAM,CAAC1B,KAAK,IAAIA,KAAK,CAAC2B,IAAI,KAAK,OAAO,CAAC;EAC/D;EAEAC,cAAcA,CAAA,EAAuB;IACjC,OAAO,IAAI,CAACnB,OAAO,CAACiB,MAAM,CAAC1B,KAAK,IAAIA,KAAK,CAAC2B,IAAI,KAAK,OAAO,CAAC;EAC/D;EAEAE,KAAKA,CAAA,EAAU;IACX,MAAM,IAAIC,KAAK,CAAC,kBAAkB,CAAC;EACvC;EAEAC,KAAKA,CAAA,EAAW;IACZ,OAAO,IAAI,CAAClC,SAAS;EACzB;EAEAmC,OAAOA,CAAA,EAA6B;IAAA,IAA5BC,aAAa,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;IACxB,MAAM3B,MAAM,GAAG,CAAE,GAAG,IAAI,CAACE,OAAO,CAAE;IAElC,KAAK,MAAMT,KAAK,IAAIO,MAAM,EAAE;MACxB,IAAI,CAACW,WAAW,CAAClB,KAAK,CAAC;MAEvB,IAAIiC,aAAa,EAAE;QACfjC,KAAK,CAACgC,OAAO,CAAC,CAAC;MACnB;IACJ;IAEAzC,YAAY,CAAC8C,kBAAkB,CAAC,IAAI,CAACxC,SAAS,CAAC;EACnD;AACJ;;AAEA;AACA;AACA;AACA,MAAMyC,KAAK,GAAG9C,WAAW,CAAC+C,SAAS;AAEnCpD,oBAAoB,CAACmD,KAAK,EAAE,UAAU,CAAC;AACvCnD,oBAAoB,CAACmD,KAAK,EAAE,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"names":["MediaStreamError","constructor","error","_defineProperty","name","message","constraintName"],"sources":["MediaStreamError.ts"],"sourcesContent":["\r\nexport default class MediaStreamError {\r\n name: string;\r\n message?: string;\r\n constraintName?: string;\r\n\r\n constructor(error) {\r\n this.name = error.name;\r\n this.message = error.message;\r\n this.constraintName = error.constraintName;\r\n }\r\n}\r\n"],"mappings":";AACA,eAAe,MAAMA,gBAAgB,CAAC;EAKlCC,WAAWA,CAACC,KAAK,EAAE;IAAAC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IACf,IAAI,CAACC,IAAI,GAAGF,KAAK,CAACE,IAAI;IACtB,IAAI,CAACC,OAAO,GAAGH,KAAK,CAACG,OAAO;IAC5B,IAAI,CAACC,cAAc,GAAGJ,KAAK,CAACI,cAAc;EAC9C;AACJ"}
1
+ {"version":3,"names":["MediaStreamError","constructor","error","_defineProperty","name","message","constraintName"],"sources":["MediaStreamError.ts"],"sourcesContent":["\nexport default class MediaStreamError {\n name: string;\n message?: string;\n constraintName?: string;\n\n constructor(error) {\n this.name = error.name;\n this.message = error.message;\n this.constraintName = error.constraintName;\n }\n}\n"],"mappings":";AACA,eAAe,MAAMA,gBAAgB,CAAC;EAKlCC,WAAWA,CAACC,KAAK,EAAE;IAAAC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IACf,IAAI,CAACC,IAAI,GAAGF,KAAK,CAACE,IAAI;IACtB,IAAI,CAACC,OAAO,GAAGH,KAAK,CAACG,OAAO;IAC5B,IAAI,CAACC,cAAc,GAAGJ,KAAK,CAACI,cAAc;EAC9C;AACJ"}
@@ -1 +1 @@
1
- {"version":3,"names":["MediaStreamErrorEvent","constructor","type","eventInitDict","_defineProperty","toString","Object","assign"],"sources":["MediaStreamErrorEvent.ts"],"sourcesContent":["\r\nimport type MediaStreamError from './MediaStreamError';\r\n\r\nexport default class MediaStreamErrorEvent {\r\n type: string;\r\n error?: MediaStreamError;\r\n constructor(type, eventInitDict) {\r\n this.type = type.toString();\r\n Object.assign(this, eventInitDict);\r\n }\r\n}\r\n"],"mappings":";AAGA,eAAe,MAAMA,qBAAqB,CAAC;EAGvCC,WAAWA,CAACC,IAAI,EAAEC,aAAa,EAAE;IAAAC,eAAA;IAAAA,eAAA;IAC7B,IAAI,CAACF,IAAI,GAAGA,IAAI,CAACG,QAAQ,CAAC,CAAC;IAC3BC,MAAM,CAACC,MAAM,CAAC,IAAI,EAAEJ,aAAa,CAAC;EACtC;AACJ"}
1
+ {"version":3,"names":["MediaStreamErrorEvent","constructor","type","eventInitDict","_defineProperty","toString","Object","assign"],"sources":["MediaStreamErrorEvent.ts"],"sourcesContent":["\nimport type MediaStreamError from './MediaStreamError';\n\nexport default class MediaStreamErrorEvent {\n type: string;\n error?: MediaStreamError;\n constructor(type, eventInitDict) {\n this.type = type.toString();\n Object.assign(this, eventInitDict);\n }\n}\n"],"mappings":";AAGA,eAAe,MAAMA,qBAAqB,CAAC;EAGvCC,WAAWA,CAACC,IAAI,EAAEC,aAAa,EAAE;IAAAC,eAAA;IAAAA,eAAA;IAC7B,IAAI,CAACF,IAAI,GAAGA,IAAI,CAACG,QAAQ,CAAC,CAAC;IAC3BC,MAAM,CAACC,MAAM,CAAC,IAAI,EAAEJ,aAAa,CAAC;EACtC;AACJ"}
@@ -58,14 +58,14 @@ export default class MediaStreamTrack extends EventTarget {
58
58
  this._readyState = 'ended';
59
59
  }
60
60
 
61
- /**
62
- * Private / custom API for switching the cameras on the fly, without the
63
- * need for adding / removing tracks or doing any SDP renegotiation.
64
- *
65
- * This is how the reference application (AppRTCMobile) implements camera
66
- * switching.
67
- *
68
- * @deprecated Use applyConstraints instead.
61
+ /**
62
+ * Private / custom API for switching the cameras on the fly, without the
63
+ * need for adding / removing tracks or doing any SDP renegotiation.
64
+ *
65
+ * This is how the reference application (AppRTCMobile) implements camera
66
+ * switching.
67
+ *
68
+ * @deprecated Use applyConstraints instead.
69
69
  */
70
70
  _switchCamera() {
71
71
  if (this.remote) {
@@ -92,11 +92,11 @@ export default class MediaStreamTrack extends EventTarget {
92
92
  this._setVideoEffects([name]);
93
93
  }
94
94
 
95
- /**
96
- * Internal function which is used to set the muted state on remote tracks and
97
- * emit the mute / unmute event.
98
- *
99
- * @param muted Whether the track should be marked as muted / unmuted.
95
+ /**
96
+ * Internal function which is used to set the muted state on remote tracks and
97
+ * emit the mute / unmute event.
98
+ *
99
+ * @param muted Whether the track should be marked as muted / unmuted.
100
100
  */
101
101
  _setMutedInternal(muted) {
102
102
  if (!this.remote) {
@@ -106,10 +106,10 @@ export default class MediaStreamTrack extends EventTarget {
106
106
  this.dispatchEvent(new Event(muted ? 'mute' : 'unmute'));
107
107
  }
108
108
 
109
- /**
110
- * Custom API for setting the volume on an individual audio track.
111
- *
112
- * @param volume a gain value in the range of 0-10. defaults to 1.0
109
+ /**
110
+ * Custom API for setting the volume on an individual audio track.
111
+ *
112
+ * @param volume a gain value in the range of 0-10. defaults to 1.0
113
113
  */
114
114
  _setVolume(volume) {
115
115
  if (this.kind !== 'audio') {
@@ -118,15 +118,15 @@ export default class MediaStreamTrack extends EventTarget {
118
118
  WebRTCModule.mediaStreamTrackSetVolume(this.remote ? this._peerConnectionId : -1, this.id, volume);
119
119
  }
120
120
 
121
- /**
122
- * Applies a new set of constraints to the track.
123
- *
124
- * @param constraints An object listing the constraints
125
- * to apply to the track's constrainable properties; any existing
126
- * constraints are replaced with the new values specified, and any
127
- * constrainable properties not included are restored to their default
128
- * constraints. If this parameter is omitted, all currently set custom
129
- * constraints are cleared.
121
+ /**
122
+ * Applies a new set of constraints to the track.
123
+ *
124
+ * @param constraints An object listing the constraints
125
+ * to apply to the track's constrainable properties; any existing
126
+ * constraints are replaced with the new values specified, and any
127
+ * constrainable properties not included are restored to their default
128
+ * constraints. If this parameter is omitted, all currently set custom
129
+ * constraints are cleared.
130
130
  */
131
131
  async applyConstraints(constraints) {
132
132
  if (this.kind !== 'video') {
@@ -185,8 +185,8 @@ export default class MediaStreamTrack extends EventTarget {
185
185
  }
186
186
  }
187
187
 
188
- /**
189
- * Define the `onxxx` event handlers.
188
+ /**
189
+ * Define the `onxxx` event handlers.
190
190
  */
191
191
  const proto = MediaStreamTrack.prototype;
192
192
  defineEventAttribute(proto, 'ended');
@@ -1 +1 @@
1
- {"version":3,"names":["EventTarget","Event","defineEventAttribute","NativeModules","addListener","removeListener","Logger","deepClone","normalizeConstraints","log","WebRTCModule","MediaStreamTrack","constructor","info","_defineProperty","_constraints","constraints","_enabled","enabled","_settings","settings","_muted","_peerConnectionId","peerConnectionId","_readyState","readyState","id","kind","remote","_registerEvents","Boolean","mediaStreamTrackSetEnabled","muted","stop","_switchCamera","Error","deviceId","facingMode","applyConstraints","_setVideoEffects","names","mediaStreamTrackSetVideoEffects","_setVideoEffect","name","_setMutedInternal","dispatchEvent","_setVolume","volume","mediaStreamTrackSetVolume","normalized","video","mediaStreamTrackApplyConstraints","clone","getCapabilities","startPalabraTranslation","config","clientId","clientSecret","sourceLang","targetLang","apiUrl","stopPalabraTranslation","getConstraints","getSettings","ev","trackId","debug","release","mediaStreamTrackRelease","proto","prototype"],"sources":["MediaStreamTrack.ts"],"sourcesContent":["import { EventTarget, Event, defineEventAttribute } from 'event-target-shim/index';\r\nimport { NativeModules } from 'react-native';\r\n\r\nimport { MediaTrackConstraints } from './Constraints';\r\nimport { addListener, removeListener } from './EventEmitter';\r\nimport Logger from './Logger';\r\nimport { deepClone, normalizeConstraints } from './RTCUtil';\r\n\r\nconst log = new Logger('pc');\r\nconst { WebRTCModule } = NativeModules;\r\n\r\nexport type PalabraConfig = {\r\n clientId: string;\r\n clientSecret: string;\r\n sourceLang: string;\r\n targetLang: string;\r\n apiUrl?: string;\r\n};\r\n\r\nexport type PalabraTranscription = {\r\n text: string;\r\n lang: string;\r\n isFinal: boolean;\r\n};\r\n\r\ntype MediaStreamTrackState = 'live' | 'ended';\r\n\r\nexport type MediaStreamTrackInfo = {\r\n id: string;\r\n kind: string;\r\n remote: boolean;\r\n constraints: object;\r\n enabled: boolean;\r\n settings: object;\r\n peerConnectionId: number;\r\n readyState: MediaStreamTrackState;\r\n}\r\n\r\nexport type MediaTrackSettings = {\r\n width?: number;\r\n height?: number;\r\n frameRate?: number;\r\n facingMode?: string;\r\n deviceId?: string;\r\n groupId?: string;\r\n}\r\n\r\ntype MediaStreamTrackEventMap = {\r\n ended: Event<'ended'>;\r\n mute: Event<'mute'>;\r\n unmute: Event<'unmute'>;\r\n}\r\n\r\nexport default class MediaStreamTrack extends EventTarget<MediaStreamTrackEventMap> {\r\n _constraints: MediaTrackConstraints;\r\n _enabled: boolean;\r\n _settings: MediaTrackSettings;\r\n _muted: boolean;\r\n _peerConnectionId: number;\r\n _readyState: MediaStreamTrackState;\r\n\r\n readonly id: string;\r\n readonly kind: string;\r\n readonly label: string = '';\r\n readonly remote: boolean;\r\n\r\n constructor(info: MediaStreamTrackInfo) {\r\n super();\r\n\r\n this._constraints = info.constraints || {};\r\n this._enabled = info.enabled;\r\n this._settings = info.settings || {};\r\n this._muted = false;\r\n this._peerConnectionId = info.peerConnectionId;\r\n this._readyState = info.readyState;\r\n\r\n this.id = info.id;\r\n this.kind = info.kind;\r\n this.remote = info.remote;\r\n\r\n if (!this.remote) {\r\n this._registerEvents();\r\n }\r\n }\r\n\r\n get enabled(): boolean {\r\n return this._enabled;\r\n }\r\n\r\n set enabled(enabled: boolean) {\r\n if (enabled === this._enabled) {\r\n return;\r\n }\r\n\r\n this._enabled = Boolean(enabled);\r\n\r\n if (this._readyState === 'ended') {\r\n return;\r\n }\r\n\r\n WebRTCModule.mediaStreamTrackSetEnabled(this.remote ? this._peerConnectionId : -1, this.id, this._enabled);\r\n }\r\n\r\n get muted(): boolean {\r\n return this._muted;\r\n }\r\n\r\n get readyState(): string {\r\n return this._readyState;\r\n }\r\n\r\n stop(): void {\r\n this.enabled = false;\r\n this._readyState = 'ended';\r\n }\r\n\r\n /**\r\n * Private / custom API for switching the cameras on the fly, without the\r\n * need for adding / removing tracks or doing any SDP renegotiation.\r\n *\r\n * This is how the reference application (AppRTCMobile) implements camera\r\n * switching.\r\n *\r\n * @deprecated Use applyConstraints instead.\r\n */\r\n _switchCamera(): void {\r\n if (this.remote) {\r\n throw new Error('Not implemented for remote tracks');\r\n }\r\n\r\n if (this.kind !== 'video') {\r\n throw new Error('Only implemented for video tracks');\r\n }\r\n\r\n const constraints = deepClone(this._settings);\r\n\r\n delete constraints.deviceId;\r\n constraints.facingMode = this._settings.facingMode === 'user' ? 'environment' : 'user';\r\n\r\n this.applyConstraints(constraints);\r\n }\r\n\r\n _setVideoEffects(names: string[]) {\r\n if (this.remote) {\r\n throw new Error('Not implemented for remote tracks');\r\n }\r\n\r\n if (this.kind !== 'video') {\r\n throw new Error('Only implemented for video tracks');\r\n }\r\n\r\n WebRTCModule.mediaStreamTrackSetVideoEffects(this.id, names);\r\n }\r\n\r\n _setVideoEffect(name: string) {\r\n this._setVideoEffects([ name ]);\r\n }\r\n\r\n /**\r\n * Internal function which is used to set the muted state on remote tracks and\r\n * emit the mute / unmute event.\r\n *\r\n * @param muted Whether the track should be marked as muted / unmuted.\r\n */\r\n _setMutedInternal(muted: boolean) {\r\n if (!this.remote) {\r\n throw new Error('Track is not remote!');\r\n }\r\n\r\n this._muted = muted;\r\n this.dispatchEvent(new Event(muted ? 'mute' : 'unmute'));\r\n }\r\n\r\n /**\r\n * Custom API for setting the volume on an individual audio track.\r\n *\r\n * @param volume a gain value in the range of 0-10. defaults to 1.0\r\n */\r\n _setVolume(volume: number) {\r\n if (this.kind !== 'audio') {\r\n throw new Error('Only implemented for audio tracks');\r\n }\r\n\r\n WebRTCModule.mediaStreamTrackSetVolume(this.remote ? this._peerConnectionId : -1, this.id, volume);\r\n }\r\n\r\n /**\r\n * Applies a new set of constraints to the track.\r\n *\r\n * @param constraints An object listing the constraints\r\n * to apply to the track's constrainable properties; any existing\r\n * constraints are replaced with the new values specified, and any\r\n * constrainable properties not included are restored to their default\r\n * constraints. If this parameter is omitted, all currently set custom\r\n * constraints are cleared.\r\n */\r\n async applyConstraints(constraints?: MediaTrackConstraints): Promise<void> {\r\n if (this.kind !== 'video') {\r\n log.info(`Only implemented for video tracks, ignoring applyConstraints for ${this.id}`);\r\n\r\n return;\r\n }\r\n\r\n const normalized = normalizeConstraints({ video: constraints ?? true });\r\n\r\n this._settings = await WebRTCModule.mediaStreamTrackApplyConstraints(this.id, normalized.video);\r\n this._constraints = constraints ?? {};\r\n }\r\n\r\n clone(): never {\r\n throw new Error('Not implemented.');\r\n }\r\n\r\n getCapabilities(): never {\r\n throw new Error('Not implemented.');\r\n }\r\n\r\n async startPalabraTranslation(config: PalabraConfig): Promise<void> {\r\n if (!this.remote) {\r\n throw new Error('only_remote_tracks');\r\n }\n\r\n if (this.kind !== 'audio') {\r\n throw new Error('only_audio_tracks');\r\n }\n\r\n if (this._readyState === 'ended') {\r\n throw new Error('track_ended');\r\n }\r\n\r\n return WebRTCModule.startPalabraTranslation(\r\n this._peerConnectionId,\r\n this.id,\r\n config.clientId,\r\n config.clientSecret,\r\n config.sourceLang,\r\n config.targetLang,\r\n config.apiUrl || 'https://api.palabra.ai'\r\n );\r\n }\r\n\r\n async stopPalabraTranslation(): Promise<void> {\r\n return WebRTCModule.stopPalabraTranslation();\r\n }\r\n\r\n getConstraints() {\r\n return deepClone(this._constraints);\r\n }\r\n\r\n getSettings(): MediaTrackSettings {\r\n return deepClone(this._settings);\r\n }\r\n\r\n _registerEvents(): void {\r\n addListener(this, 'mediaStreamTrackEnded', (ev: any) => {\r\n if (ev.trackId !== this.id || this._readyState === 'ended') {\r\n return;\r\n }\r\n\r\n log.debug(`${this.id} mediaStreamTrackEnded`);\r\n this._readyState = 'ended';\r\n\r\n this.dispatchEvent(new Event('ended'));\r\n });\r\n }\r\n\r\n release(): void {\r\n if (this.remote) {\r\n return;\r\n }\r\n\r\n removeListener(this);\r\n WebRTCModule.mediaStreamTrackRelease(this.id);\r\n }\r\n}\r\n\r\n/**\r\n * Define the `onxxx` event handlers.\r\n */\r\nconst proto = MediaStreamTrack.prototype;\r\n\r\ndefineEventAttribute(proto, 'ended');\r\ndefineEventAttribute(proto, 'mute');\r\ndefineEventAttribute(proto, 'unmute');\r\n"],"mappings":"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"}
1
+ {"version":3,"names":["EventTarget","Event","defineEventAttribute","NativeModules","addListener","removeListener","Logger","deepClone","normalizeConstraints","log","WebRTCModule","MediaStreamTrack","constructor","info","_defineProperty","_constraints","constraints","_enabled","enabled","_settings","settings","_muted","_peerConnectionId","peerConnectionId","_readyState","readyState","id","kind","remote","_registerEvents","Boolean","mediaStreamTrackSetEnabled","muted","stop","_switchCamera","Error","deviceId","facingMode","applyConstraints","_setVideoEffects","names","mediaStreamTrackSetVideoEffects","_setVideoEffect","name","_setMutedInternal","dispatchEvent","_setVolume","volume","mediaStreamTrackSetVolume","normalized","video","mediaStreamTrackApplyConstraints","clone","getCapabilities","startPalabraTranslation","config","clientId","clientSecret","sourceLang","targetLang","apiUrl","stopPalabraTranslation","getConstraints","getSettings","ev","trackId","debug","release","mediaStreamTrackRelease","proto","prototype"],"sources":["MediaStreamTrack.ts"],"sourcesContent":["import { EventTarget, Event, defineEventAttribute } from 'event-target-shim/index';\nimport { NativeModules } from 'react-native';\n\nimport { MediaTrackConstraints } from './Constraints';\nimport { addListener, removeListener } from './EventEmitter';\nimport Logger from './Logger';\nimport { deepClone, normalizeConstraints } from './RTCUtil';\n\nconst log = new Logger('pc');\nconst { WebRTCModule } = NativeModules;\n\nexport type PalabraConfig = {\n clientId: string;\n clientSecret: string;\n sourceLang: string;\n targetLang: string;\n apiUrl?: string;\n};\n\nexport type PalabraTranscription = {\n text: string;\n lang: string;\n isFinal: boolean;\n};\n\ntype MediaStreamTrackState = 'live' | 'ended';\n\nexport type MediaStreamTrackInfo = {\n id: string;\n kind: string;\n remote: boolean;\n constraints: object;\n enabled: boolean;\n settings: object;\n peerConnectionId: number;\n readyState: MediaStreamTrackState;\n}\n\nexport type MediaTrackSettings = {\n width?: number;\n height?: number;\n frameRate?: number;\n facingMode?: string;\n deviceId?: string;\n groupId?: string;\n}\n\ntype MediaStreamTrackEventMap = {\n ended: Event<'ended'>;\n mute: Event<'mute'>;\n unmute: Event<'unmute'>;\n}\n\nexport default class MediaStreamTrack extends EventTarget<MediaStreamTrackEventMap> {\n _constraints: MediaTrackConstraints;\n _enabled: boolean;\n _settings: MediaTrackSettings;\n _muted: boolean;\n _peerConnectionId: number;\n _readyState: MediaStreamTrackState;\n\n readonly id: string;\n readonly kind: string;\n readonly label: string = '';\n readonly remote: boolean;\n\n constructor(info: MediaStreamTrackInfo) {\n super();\n\n this._constraints = info.constraints || {};\n this._enabled = info.enabled;\n this._settings = info.settings || {};\n this._muted = false;\n this._peerConnectionId = info.peerConnectionId;\n this._readyState = info.readyState;\n\n this.id = info.id;\n this.kind = info.kind;\n this.remote = info.remote;\n\n if (!this.remote) {\n this._registerEvents();\n }\n }\n\n get enabled(): boolean {\n return this._enabled;\n }\n\n set enabled(enabled: boolean) {\n if (enabled === this._enabled) {\n return;\n }\n\n this._enabled = Boolean(enabled);\n\n if (this._readyState === 'ended') {\n return;\n }\n\n WebRTCModule.mediaStreamTrackSetEnabled(this.remote ? this._peerConnectionId : -1, this.id, this._enabled);\n }\n\n get muted(): boolean {\n return this._muted;\n }\n\n get readyState(): string {\n return this._readyState;\n }\n\n stop(): void {\n this.enabled = false;\n this._readyState = 'ended';\n }\n\n /**\n * Private / custom API for switching the cameras on the fly, without the\n * need for adding / removing tracks or doing any SDP renegotiation.\n *\n * This is how the reference application (AppRTCMobile) implements camera\n * switching.\n *\n * @deprecated Use applyConstraints instead.\n */\n _switchCamera(): void {\n if (this.remote) {\n throw new Error('Not implemented for remote tracks');\n }\n\n if (this.kind !== 'video') {\n throw new Error('Only implemented for video tracks');\n }\n\n const constraints = deepClone(this._settings);\n\n delete constraints.deviceId;\n constraints.facingMode = this._settings.facingMode === 'user' ? 'environment' : 'user';\n\n this.applyConstraints(constraints);\n }\n\n _setVideoEffects(names: string[]) {\n if (this.remote) {\n throw new Error('Not implemented for remote tracks');\n }\n\n if (this.kind !== 'video') {\n throw new Error('Only implemented for video tracks');\n }\n\n WebRTCModule.mediaStreamTrackSetVideoEffects(this.id, names);\n }\n\n _setVideoEffect(name: string) {\n this._setVideoEffects([ name ]);\n }\n\n /**\n * Internal function which is used to set the muted state on remote tracks and\n * emit the mute / unmute event.\n *\n * @param muted Whether the track should be marked as muted / unmuted.\n */\n _setMutedInternal(muted: boolean) {\n if (!this.remote) {\n throw new Error('Track is not remote!');\n }\n\n this._muted = muted;\n this.dispatchEvent(new Event(muted ? 'mute' : 'unmute'));\n }\n\n /**\n * Custom API for setting the volume on an individual audio track.\n *\n * @param volume a gain value in the range of 0-10. defaults to 1.0\n */\n _setVolume(volume: number) {\n if (this.kind !== 'audio') {\n throw new Error('Only implemented for audio tracks');\n }\n\n WebRTCModule.mediaStreamTrackSetVolume(this.remote ? this._peerConnectionId : -1, this.id, volume);\n }\n\n /**\n * Applies a new set of constraints to the track.\n *\n * @param constraints An object listing the constraints\n * to apply to the track's constrainable properties; any existing\n * constraints are replaced with the new values specified, and any\n * constrainable properties not included are restored to their default\n * constraints. If this parameter is omitted, all currently set custom\n * constraints are cleared.\n */\n async applyConstraints(constraints?: MediaTrackConstraints): Promise<void> {\n if (this.kind !== 'video') {\n log.info(`Only implemented for video tracks, ignoring applyConstraints for ${this.id}`);\n\n return;\n }\n\n const normalized = normalizeConstraints({ video: constraints ?? true });\n\n this._settings = await WebRTCModule.mediaStreamTrackApplyConstraints(this.id, normalized.video);\n this._constraints = constraints ?? {};\n }\n\n clone(): never {\n throw new Error('Not implemented.');\n }\n\n getCapabilities(): never {\n throw new Error('Not implemented.');\n }\n\n async startPalabraTranslation(config: PalabraConfig): Promise<void> {\n if (!this.remote) {\n throw new Error('only_remote_tracks');\n }\n\n if (this.kind !== 'audio') {\n throw new Error('only_audio_tracks');\n }\n\n if (this._readyState === 'ended') {\n throw new Error('track_ended');\n }\n\n return WebRTCModule.startPalabraTranslation(\n this._peerConnectionId,\n this.id,\n config.clientId,\n config.clientSecret,\n config.sourceLang,\n config.targetLang,\n config.apiUrl || 'https://api.palabra.ai'\n );\n }\n\n async stopPalabraTranslation(): Promise<void> {\n return WebRTCModule.stopPalabraTranslation();\n }\n\n getConstraints() {\n return deepClone(this._constraints);\n }\n\n getSettings(): MediaTrackSettings {\n return deepClone(this._settings);\n }\n\n _registerEvents(): void {\n addListener(this, 'mediaStreamTrackEnded', (ev: any) => {\n if (ev.trackId !== this.id || this._readyState === 'ended') {\n return;\n }\n\n log.debug(`${this.id} mediaStreamTrackEnded`);\n this._readyState = 'ended';\n\n this.dispatchEvent(new Event('ended'));\n });\n }\n\n release(): void {\n if (this.remote) {\n return;\n }\n\n removeListener(this);\n WebRTCModule.mediaStreamTrackRelease(this.id);\n }\n}\n\n/**\n * Define the `onxxx` event handlers.\n */\nconst proto = MediaStreamTrack.prototype;\n\ndefineEventAttribute(proto, 'ended');\ndefineEventAttribute(proto, 'mute');\ndefineEventAttribute(proto, 'unmute');\n"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
2
  import { Event } from 'event-target-shim/index';
3
- /**
4
- * @eventClass
5
- * This event is fired whenever the MediaStreamTrack has changed in any way.
6
- * @param {MEDIA_STREAM_EVENTS} type - The type of event.
7
- * @param {IMediaStreamTrackEventInitDict} eventInitDict - The event init properties.
8
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/MediaStream#events MDN} for details.
3
+ /**
4
+ * @eventClass
5
+ * This event is fired whenever the MediaStreamTrack has changed in any way.
6
+ * @param {MEDIA_STREAM_EVENTS} type - The type of event.
7
+ * @param {IMediaStreamTrackEventInitDict} eventInitDict - The event init properties.
8
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/MediaStream#events MDN} for details.
9
9
  */
10
10
  export default class MediaStreamTrackEvent extends Event {
11
11
  /** @eventProperty */
@@ -1 +1 @@
1
- {"version":3,"names":["Event","MediaStreamTrackEvent","constructor","type","eventInitDict","_defineProperty","track"],"sources":["MediaStreamTrackEvent.ts"],"sourcesContent":["import { Event } from 'event-target-shim/index';\r\n\r\nimport type MediaStreamTrack from './MediaStreamTrack';\r\n\r\ntype MEDIA_STREAM_EVENTS = 'addtrack'| 'removetrack'\r\n\r\ninterface IMediaStreamTrackEventInitDict extends Event.EventInit {\r\n track: MediaStreamTrack;\r\n}\r\n\r\n/**\r\n * @eventClass\r\n * This event is fired whenever the MediaStreamTrack has changed in any way.\r\n * @param {MEDIA_STREAM_EVENTS} type - The type of event.\r\n * @param {IMediaStreamTrackEventInitDict} eventInitDict - The event init properties.\r\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/MediaStream#events MDN} for details.\r\n */\r\nexport default class MediaStreamTrackEvent<TEventType extends MEDIA_STREAM_EVENTS> extends Event<TEventType> {\r\n /** @eventProperty */\r\n track: MediaStreamTrack;\r\n constructor(type: TEventType, eventInitDict: IMediaStreamTrackEventInitDict) {\r\n super(type, eventInitDict);\r\n this.track = eventInitDict.track;\r\n }\r\n}\r\n"],"mappings":";AAAA,SAASA,KAAK,QAAQ,yBAAyB;AAU/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAMC,qBAAqB,SAAiDD,KAAK,CAAa;EACzG;;EAEAE,WAAWA,CAACC,IAAgB,EAAEC,aAA6C,EAAE;IACzE,KAAK,CAACD,IAAI,EAAEC,aAAa,CAAC;IAACC,eAAA;IAC3B,IAAI,CAACC,KAAK,GAAGF,aAAa,CAACE,KAAK;EACpC;AACJ"}
1
+ {"version":3,"names":["Event","MediaStreamTrackEvent","constructor","type","eventInitDict","_defineProperty","track"],"sources":["MediaStreamTrackEvent.ts"],"sourcesContent":["import { Event } from 'event-target-shim/index';\n\nimport type MediaStreamTrack from './MediaStreamTrack';\n\ntype MEDIA_STREAM_EVENTS = 'addtrack'| 'removetrack'\n\ninterface IMediaStreamTrackEventInitDict extends Event.EventInit {\n track: MediaStreamTrack;\n}\n\n/**\n * @eventClass\n * This event is fired whenever the MediaStreamTrack has changed in any way.\n * @param {MEDIA_STREAM_EVENTS} type - The type of event.\n * @param {IMediaStreamTrackEventInitDict} eventInitDict - The event init properties.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/MediaStream#events MDN} for details.\n */\nexport default class MediaStreamTrackEvent<TEventType extends MEDIA_STREAM_EVENTS> extends Event<TEventType> {\n /** @eventProperty */\n track: MediaStreamTrack;\n constructor(type: TEventType, eventInitDict: IMediaStreamTrackEventInitDict) {\n super(type, eventInitDict);\n this.track = eventInitDict.track;\n }\n}\n"],"mappings":";AAAA,SAASA,KAAK,QAAQ,yBAAyB;AAU/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAMC,qBAAqB,SAAiDD,KAAK,CAAa;EACzG;;EAEAE,WAAWA,CAACC,IAAgB,EAAEC,aAA6C,EAAE;IACzE,KAAK,CAACD,IAAI,EAAEC,aAAa,CAAC;IAACC,eAAA;IAC3B,IAAI,CAACC,KAAK,GAAGF,aAAa,CAACE,KAAK;EACpC;AACJ"}
@@ -1,12 +1,12 @@
1
1
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
2
  import { Event } from 'event-target-shim/index';
3
- /**
4
- * @eventClass
5
- * This event is fired whenever the RTCDataChannel send message.
6
- * @param {MESSAGE_EVENTS} type - The type of event.
7
- * @param {IMessageEventInitDict} eventInitDict - The event init properties.
8
- * @see
9
- * {@link https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel/message_event#event_type MDN} for details.
3
+ /**
4
+ * @eventClass
5
+ * This event is fired whenever the RTCDataChannel send message.
6
+ * @param {MESSAGE_EVENTS} type - The type of event.
7
+ * @param {IMessageEventInitDict} eventInitDict - The event init properties.
8
+ * @see
9
+ * {@link https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel/message_event#event_type MDN} for details.
10
10
  */
11
11
  export default class MessageEvent extends Event {
12
12
  /** @eventProperty */
@@ -1 +1 @@
1
- {"version":3,"names":["Event","MessageEvent","constructor","type","eventInitDict","_defineProperty","data"],"sources":["MessageEvent.ts"],"sourcesContent":["import { Event } from 'event-target-shim/index';\r\n\r\nexport type MessageEventData = string | ArrayBuffer | Blob;\r\n\r\ntype MESSAGE_EVENTS = 'message' | 'messageerror';\r\n\r\ninterface IMessageEventInitDict extends Event.EventInit {\r\n data: MessageEventData;\r\n}\r\n\r\n/**\r\n * @eventClass\r\n * This event is fired whenever the RTCDataChannel send message.\r\n * @param {MESSAGE_EVENTS} type - The type of event.\r\n * @param {IMessageEventInitDict} eventInitDict - The event init properties.\r\n * @see\r\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel/message_event#event_type MDN} for details.\r\n */\r\nexport default class MessageEvent<TEventType extends MESSAGE_EVENTS> extends Event<TEventType> {\r\n /** @eventProperty */\r\n data: MessageEventData;\r\n constructor(type: TEventType, eventInitDict: IMessageEventInitDict) {\r\n super(type, eventInitDict);\r\n this.data = eventInitDict.data;\r\n }\r\n}\r\n"],"mappings":";AAAA,SAASA,KAAK,QAAQ,yBAAyB;AAU/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAMC,YAAY,SAA4CD,KAAK,CAAa;EAC3F;;EAEAE,WAAWA,CAACC,IAAgB,EAAEC,aAAoC,EAAE;IAChE,KAAK,CAACD,IAAI,EAAEC,aAAa,CAAC;IAACC,eAAA;IAC3B,IAAI,CAACC,IAAI,GAAGF,aAAa,CAACE,IAAI;EAClC;AACJ"}
1
+ {"version":3,"names":["Event","MessageEvent","constructor","type","eventInitDict","_defineProperty","data"],"sources":["MessageEvent.ts"],"sourcesContent":["import { Event } from 'event-target-shim/index';\n\nexport type MessageEventData = string | ArrayBuffer | Blob;\n\ntype MESSAGE_EVENTS = 'message' | 'messageerror';\n\ninterface IMessageEventInitDict extends Event.EventInit {\n data: MessageEventData;\n}\n\n/**\n * @eventClass\n * This event is fired whenever the RTCDataChannel send message.\n * @param {MESSAGE_EVENTS} type - The type of event.\n * @param {IMessageEventInitDict} eventInitDict - The event init properties.\n * @see\n * {@link https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel/message_event#event_type MDN} for details.\n */\nexport default class MessageEvent<TEventType extends MESSAGE_EVENTS> extends Event<TEventType> {\n /** @eventProperty */\n data: MessageEventData;\n constructor(type: TEventType, eventInitDict: IMessageEventInitDict) {\n super(type, eventInitDict);\n this.data = eventInitDict.data;\n }\n}\n"],"mappings":";AAAA,SAASA,KAAK,QAAQ,yBAAyB;AAU/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAMC,YAAY,SAA4CD,KAAK,CAAa;EAC3F;;EAEAE,WAAWA,CAACC,IAAgB,EAAEC,aAAoC,EAAE;IAChE,KAAK,CAACD,IAAI,EAAEC,aAAa,CAAC;IAACC,eAAA;IAC3B,IAAI,CAACC,IAAI,GAAGF,aAAa,CAACE,IAAI;EAClC;AACJ"}
@@ -4,13 +4,13 @@ const {
4
4
  WebRTCModule
5
5
  } = NativeModules;
6
6
 
7
- /**
8
- * Type declaration for a permissions descriptor.
7
+ /**
8
+ * Type declaration for a permissions descriptor.
9
9
  */
10
10
 
11
- /**
12
- * Class implementing a subset of W3C's Permissions API as defined by:
13
- * https://www.w3.org/TR/permissions/
11
+ /**
12
+ * Class implementing a subset of W3C's Permissions API as defined by:
13
+ * https://www.w3.org/TR/permissions/
14
14
  */
15
15
  class Permissions {
16
16
  constructor() {
@@ -22,23 +22,23 @@ class Permissions {
22
22
  _defineProperty(this, "VALID_PERMISSIONS", ['camera', 'microphone']);
23
23
  _defineProperty(this, "_lastReq", Promise.resolve());
24
24
  }
25
- /**
26
- * Possible result values for {@link query}, in accordance with:
27
- * https://www.w3.org/TR/permissions/#status-of-a-permission
25
+ /**
26
+ * Possible result values for {@link query}, in accordance with:
27
+ * https://www.w3.org/TR/permissions/#status-of-a-permission
28
28
  */
29
- /**
30
- * This implementation only supports requesting these permissions, a subset
31
- * of: https://www.w3.org/TR/permissions/#permission-registry
29
+ /**
30
+ * This implementation only supports requesting these permissions, a subset
31
+ * of: https://www.w3.org/TR/permissions/#permission-registry
32
32
  */
33
- /**
34
- * Helper for requesting Android permissions. On Android only one permission
35
- * can be requested at a time (unless the multi-permission API is used,
36
- * but we are not using that for symmetry with the W3C API for querying)
37
- * so we'll queue them up.
38
- *
39
- * @param perm - The requested permission from
40
- * {@link PermissionsAndroid.PERMISSIONS}
41
- * https://facebook.github.io/react-native/docs/permissionsandroid#permissions-that-require-prompting-the-user
33
+ /**
34
+ * Helper for requesting Android permissions. On Android only one permission
35
+ * can be requested at a time (unless the multi-permission API is used,
36
+ * but we are not using that for symmetry with the W3C API for querying)
37
+ * so we'll queue them up.
38
+ *
39
+ * @param perm - The requested permission from
40
+ * {@link PermissionsAndroid.PERMISSIONS}
41
+ * https://facebook.github.io/react-native/docs/permissionsandroid#permissions-that-require-prompting-the-user
42
42
  */
43
43
  _requestPermissionAndroid(perm) {
44
44
  return new Promise(resolve => {
@@ -46,8 +46,8 @@ class Permissions {
46
46
  });
47
47
  }
48
48
 
49
- /**
50
- * Validates the given permission descriptor.
49
+ /**
50
+ * Validates the given permission descriptor.
51
51
  */
52
52
  _validatePermissionDescriptior(permissionDesc) {
53
53
  if (typeof permissionDesc !== 'object') {
@@ -61,9 +61,9 @@ class Permissions {
61
61
  }
62
62
  }
63
63
 
64
- /**
65
- * Method for querying the status of a permission, according to:
66
- * https://www.w3.org/TR/permissions/#permissions-interface
64
+ /**
65
+ * Method for querying the status of a permission, according to:
66
+ * https://www.w3.org/TR/permissions/#permissions-interface
67
67
  */
68
68
  query(permissionDesc) {
69
69
  try {
@@ -83,9 +83,9 @@ class Permissions {
83
83
  }
84
84
  }
85
85
 
86
- /**
87
- * Custom method NOT defined by W3C's permissions API, which allows the
88
- * caller to request a permission.
86
+ /**
87
+ * Custom method NOT defined by W3C's permissions API, which allows the
88
+ * caller to request a permission.
89
89
  */
90
90
  request(permissionDesc) {
91
91
  try {