@sbhjt-gr/react-native-webrtc 124.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (417) hide show
  1. package/.clang-format +11 -0
  2. package/.claude/settings.local.json +9 -0
  3. package/.eslintignore +6 -0
  4. package/.nvmrc +1 -0
  5. package/ISSUE_TEMPLATE.md +40 -0
  6. package/LICENSE +22 -0
  7. package/README.md +103 -0
  8. package/android/build.gradle +37 -0
  9. package/android/consumer-rules.pro +3 -0
  10. package/android/src/main/AndroidManifest.xml +11 -0
  11. package/android/src/main/java/com/oney/WebRTCModule/AbstractVideoCaptureController.java +113 -0
  12. package/android/src/main/java/com/oney/WebRTCModule/CameraCaptureController.java +338 -0
  13. package/android/src/main/java/com/oney/WebRTCModule/CameraEventsHandler.java +49 -0
  14. package/android/src/main/java/com/oney/WebRTCModule/DataChannelWrapper.java +99 -0
  15. package/android/src/main/java/com/oney/WebRTCModule/DataPacketCryptorManager.java +63 -0
  16. package/android/src/main/java/com/oney/WebRTCModule/DisplayUtils.java +16 -0
  17. package/android/src/main/java/com/oney/WebRTCModule/EglUtils.java +66 -0
  18. package/android/src/main/java/com/oney/WebRTCModule/GetUserMediaImpl.java +539 -0
  19. package/android/src/main/java/com/oney/WebRTCModule/LibraryLoader.java +21 -0
  20. package/android/src/main/java/com/oney/WebRTCModule/MediaProjectionNotification.java +70 -0
  21. package/android/src/main/java/com/oney/WebRTCModule/MediaProjectionService.java +82 -0
  22. package/android/src/main/java/com/oney/WebRTCModule/PeerConnectionObserver.java +588 -0
  23. package/android/src/main/java/com/oney/WebRTCModule/RTCCryptoManager.java +493 -0
  24. package/android/src/main/java/com/oney/WebRTCModule/RTCVideoViewManager.java +98 -0
  25. package/android/src/main/java/com/oney/WebRTCModule/ReactBridgeUtil.java +36 -0
  26. package/android/src/main/java/com/oney/WebRTCModule/ScreenCaptureController.java +94 -0
  27. package/android/src/main/java/com/oney/WebRTCModule/SerializeUtils.java +342 -0
  28. package/android/src/main/java/com/oney/WebRTCModule/StringUtils.java +101 -0
  29. package/android/src/main/java/com/oney/WebRTCModule/ThreadUtils.java +41 -0
  30. package/android/src/main/java/com/oney/WebRTCModule/TrackCapturerEventsEmitter.java +34 -0
  31. package/android/src/main/java/com/oney/WebRTCModule/VideoTrackAdapter.java +137 -0
  32. package/android/src/main/java/com/oney/WebRTCModule/WebRTCModule.java +1643 -0
  33. package/android/src/main/java/com/oney/WebRTCModule/WebRTCModuleOptions.java +33 -0
  34. package/android/src/main/java/com/oney/WebRTCModule/WebRTCModulePackage.java +21 -0
  35. package/android/src/main/java/com/oney/WebRTCModule/WebRTCView.java +583 -0
  36. package/android/src/main/java/com/oney/WebRTCModule/palabra/PalabraClient.java +464 -0
  37. package/android/src/main/java/com/oney/WebRTCModule/palabra/PalabraConfig.java +17 -0
  38. package/android/src/main/java/com/oney/WebRTCModule/palabra/PalabraListener.java +7 -0
  39. package/android/src/main/java/com/oney/WebRTCModule/videoEffects/ProcessorProvider.java +38 -0
  40. package/android/src/main/java/com/oney/WebRTCModule/videoEffects/VideoEffectProcessor.java +59 -0
  41. package/android/src/main/java/com/oney/WebRTCModule/videoEffects/VideoFrameProcessor.java +19 -0
  42. package/android/src/main/java/com/oney/WebRTCModule/videoEffects/VideoFrameProcessorFactoryInterface.java +12 -0
  43. package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/H264AndSoftwareVideoDecoderFactory.java +73 -0
  44. package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/H264AndSoftwareVideoEncoderFactory.java +73 -0
  45. package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/SoftwareVideoDecoderFactoryProxy.java +36 -0
  46. package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/SoftwareVideoEncoderFactoryProxy.java +36 -0
  47. package/android/src/main/java/org/webrtc/Camera1Helper.java +54 -0
  48. package/android/src/main/java/org/webrtc/Camera2Helper.java +52 -0
  49. package/android/src/main/res/values/strings.xml +5 -0
  50. package/android/src/main/res/values/styles.xml +8 -0
  51. package/apple/.placeholder +0 -0
  52. package/ios/RCTWebRTC/CaptureController.h +18 -0
  53. package/ios/RCTWebRTC/CaptureController.m +29 -0
  54. package/ios/RCTWebRTC/CapturerEventsDelegate.h +12 -0
  55. package/ios/RCTWebRTC/DataChannelWrapper.h +27 -0
  56. package/ios/RCTWebRTC/DataChannelWrapper.m +42 -0
  57. package/ios/RCTWebRTC/I420Converter.h +22 -0
  58. package/ios/RCTWebRTC/I420Converter.m +164 -0
  59. package/ios/RCTWebRTC/PIPController.h +24 -0
  60. package/ios/RCTWebRTC/PIPController.m +234 -0
  61. package/ios/RCTWebRTC/PalabraAudioSink.h +13 -0
  62. package/ios/RCTWebRTC/PalabraAudioSink.m +18 -0
  63. package/ios/RCTWebRTC/PalabraClient.h +36 -0
  64. package/ios/RCTWebRTC/PalabraClient.m +584 -0
  65. package/ios/RCTWebRTC/RCTConvert+WebRTC.h +16 -0
  66. package/ios/RCTWebRTC/RCTConvert+WebRTC.m +206 -0
  67. package/ios/RCTWebRTC/RTCMediaStreamTrack+React.h +10 -0
  68. package/ios/RCTWebRTC/RTCMediaStreamTrack+React.m +16 -0
  69. package/ios/RCTWebRTC/RTCVideoViewManager.h +29 -0
  70. package/ios/RCTWebRTC/RTCVideoViewManager.m +411 -0
  71. package/ios/RCTWebRTC/SampleBufferVideoCallView.h +12 -0
  72. package/ios/RCTWebRTC/SampleBufferVideoCallView.m +178 -0
  73. package/ios/RCTWebRTC/ScreenCaptureController.h +20 -0
  74. package/ios/RCTWebRTC/ScreenCaptureController.m +83 -0
  75. package/ios/RCTWebRTC/ScreenCapturePickerViewManager.h +7 -0
  76. package/ios/RCTWebRTC/ScreenCapturePickerViewManager.m +60 -0
  77. package/ios/RCTWebRTC/ScreenCapturer.h +19 -0
  78. package/ios/RCTWebRTC/ScreenCapturer.m +264 -0
  79. package/ios/RCTWebRTC/SerializeUtils.h +28 -0
  80. package/ios/RCTWebRTC/SerializeUtils.m +314 -0
  81. package/ios/RCTWebRTC/SocketConnection.h +13 -0
  82. package/ios/RCTWebRTC/SocketConnection.m +137 -0
  83. package/ios/RCTWebRTC/TrackCapturerEventsEmitter.h +14 -0
  84. package/ios/RCTWebRTC/TrackCapturerEventsEmitter.m +37 -0
  85. package/ios/RCTWebRTC/VideoCaptureController.h +21 -0
  86. package/ios/RCTWebRTC/VideoCaptureController.m +328 -0
  87. package/ios/RCTWebRTC/WebRTCModule+Palabra.h +4 -0
  88. package/ios/RCTWebRTC/WebRTCModule+Palabra.m +83 -0
  89. package/ios/RCTWebRTC/WebRTCModule+Permissions.m +75 -0
  90. package/ios/RCTWebRTC/WebRTCModule+RTCAudioSession.m +20 -0
  91. package/ios/RCTWebRTC/WebRTCModule+RTCDataChannel.h +14 -0
  92. package/ios/RCTWebRTC/WebRTCModule+RTCDataChannel.m +165 -0
  93. package/ios/RCTWebRTC/WebRTCModule+RTCFrameCryptor.m +611 -0
  94. package/ios/RCTWebRTC/WebRTCModule+RTCMediaStream.h +14 -0
  95. package/ios/RCTWebRTC/WebRTCModule+RTCMediaStream.m +533 -0
  96. package/ios/RCTWebRTC/WebRTCModule+RTCPeerConnection.h +24 -0
  97. package/ios/RCTWebRTC/WebRTCModule+RTCPeerConnection.m +1004 -0
  98. package/ios/RCTWebRTC/WebRTCModule+Transceivers.m +267 -0
  99. package/ios/RCTWebRTC/WebRTCModule+VideoTrackAdapter.h +12 -0
  100. package/ios/RCTWebRTC/WebRTCModule+VideoTrackAdapter.m +166 -0
  101. package/ios/RCTWebRTC/WebRTCModule.h +51 -0
  102. package/ios/RCTWebRTC/WebRTCModule.m +151 -0
  103. package/ios/RCTWebRTC/WebRTCModuleOptions.h +24 -0
  104. package/ios/RCTWebRTC/WebRTCModuleOptions.m +31 -0
  105. package/ios/RCTWebRTC/videoEffects/ProcessorProvider.h +9 -0
  106. package/ios/RCTWebRTC/videoEffects/ProcessorProvider.m +23 -0
  107. package/ios/RCTWebRTC/videoEffects/VideoEffectProcessor.h +13 -0
  108. package/ios/RCTWebRTC/videoEffects/VideoEffectProcessor.m +23 -0
  109. package/ios/RCTWebRTC/videoEffects/VideoFrameProcessor.h +8 -0
  110. package/ios/RCTWebRTC.xcodeproj/project.pbxproj +404 -0
  111. package/ios/RCTWebRTC.xcworkspace/contents.xcworkspacedata +10 -0
  112. package/lib/commonjs/Constraints.js +2 -0
  113. package/lib/commonjs/Constraints.js.map +1 -0
  114. package/lib/commonjs/EventEmitter.js +51 -0
  115. package/lib/commonjs/EventEmitter.js.map +1 -0
  116. package/lib/commonjs/Logger.js +47 -0
  117. package/lib/commonjs/Logger.js.map +1 -0
  118. package/lib/commonjs/MediaDevices.js +54 -0
  119. package/lib/commonjs/MediaDevices.js.map +1 -0
  120. package/lib/commonjs/MediaStream.js +137 -0
  121. package/lib/commonjs/MediaStream.js.map +1 -0
  122. package/lib/commonjs/MediaStreamError.js +19 -0
  123. package/lib/commonjs/MediaStreamError.js.map +1 -0
  124. package/lib/commonjs/MediaStreamErrorEvent.js +17 -0
  125. package/lib/commonjs/MediaStreamErrorEvent.js.map +1 -0
  126. package/lib/commonjs/MediaStreamTrack.js +203 -0
  127. package/lib/commonjs/MediaStreamTrack.js.map +1 -0
  128. package/lib/commonjs/MediaStreamTrackEvent.js +26 -0
  129. package/lib/commonjs/MediaStreamTrackEvent.js.map +1 -0
  130. package/lib/commonjs/MessageEvent.js +27 -0
  131. package/lib/commonjs/MessageEvent.js.map +1 -0
  132. package/lib/commonjs/Permissions.js +116 -0
  133. package/lib/commonjs/Permissions.js.map +1 -0
  134. package/lib/commonjs/RTCAudioSession.js +33 -0
  135. package/lib/commonjs/RTCAudioSession.js.map +1 -0
  136. package/lib/commonjs/RTCDataChannel.js +165 -0
  137. package/lib/commonjs/RTCDataChannel.js.map +1 -0
  138. package/lib/commonjs/RTCDataChannelEvent.js +26 -0
  139. package/lib/commonjs/RTCDataChannelEvent.js.map +1 -0
  140. package/lib/commonjs/RTCDataPacketCryptor.js +76 -0
  141. package/lib/commonjs/RTCDataPacketCryptor.js.map +1 -0
  142. package/lib/commonjs/RTCDataPacketCryptorFactory.js +27 -0
  143. package/lib/commonjs/RTCDataPacketCryptorFactory.js.map +1 -0
  144. package/lib/commonjs/RTCErrorEvent.js +23 -0
  145. package/lib/commonjs/RTCErrorEvent.js.map +1 -0
  146. package/lib/commonjs/RTCFrameCryptor.js +138 -0
  147. package/lib/commonjs/RTCFrameCryptor.js.map +1 -0
  148. package/lib/commonjs/RTCFrameCryptorFactory.js +81 -0
  149. package/lib/commonjs/RTCFrameCryptorFactory.js.map +1 -0
  150. package/lib/commonjs/RTCIceCandidate.js +34 -0
  151. package/lib/commonjs/RTCIceCandidate.js.map +1 -0
  152. package/lib/commonjs/RTCIceCandidateEvent.js +28 -0
  153. package/lib/commonjs/RTCIceCandidateEvent.js.map +1 -0
  154. package/lib/commonjs/RTCKeyProvider.js +111 -0
  155. package/lib/commonjs/RTCKeyProvider.js.map +1 -0
  156. package/lib/commonjs/RTCPIPView.js +38 -0
  157. package/lib/commonjs/RTCPIPView.js.map +1 -0
  158. package/lib/commonjs/RTCPIPView.web.js +23 -0
  159. package/lib/commonjs/RTCPIPView.web.js.map +1 -0
  160. package/lib/commonjs/RTCPeerConnection.js +694 -0
  161. package/lib/commonjs/RTCPeerConnection.js.map +1 -0
  162. package/lib/commonjs/RTCRtcpParameters.js +24 -0
  163. package/lib/commonjs/RTCRtcpParameters.js.map +1 -0
  164. package/lib/commonjs/RTCRtpCapabilities.js +22 -0
  165. package/lib/commonjs/RTCRtpCapabilities.js.map +1 -0
  166. package/lib/commonjs/RTCRtpCodecCapability.js +19 -0
  167. package/lib/commonjs/RTCRtpCodecCapability.js.map +1 -0
  168. package/lib/commonjs/RTCRtpCodecParameters.js +38 -0
  169. package/lib/commonjs/RTCRtpCodecParameters.js.map +1 -0
  170. package/lib/commonjs/RTCRtpEncodingParameters.js +78 -0
  171. package/lib/commonjs/RTCRtpEncodingParameters.js.map +1 -0
  172. package/lib/commonjs/RTCRtpHeaderExtension.js +27 -0
  173. package/lib/commonjs/RTCRtpHeaderExtension.js.map +1 -0
  174. package/lib/commonjs/RTCRtpParameters.js +35 -0
  175. package/lib/commonjs/RTCRtpParameters.js.map +1 -0
  176. package/lib/commonjs/RTCRtpReceiveParameters.js +15 -0
  177. package/lib/commonjs/RTCRtpReceiveParameters.js.map +1 -0
  178. package/lib/commonjs/RTCRtpReceiver.js +53 -0
  179. package/lib/commonjs/RTCRtpReceiver.js.map +1 -0
  180. package/lib/commonjs/RTCRtpSendParameters.js +49 -0
  181. package/lib/commonjs/RTCRtpSendParameters.js.map +1 -0
  182. package/lib/commonjs/RTCRtpSender.js +67 -0
  183. package/lib/commonjs/RTCRtpSender.js.map +1 -0
  184. package/lib/commonjs/RTCRtpTransceiver.js +81 -0
  185. package/lib/commonjs/RTCRtpTransceiver.js.map +1 -0
  186. package/lib/commonjs/RTCSessionDescription.js +33 -0
  187. package/lib/commonjs/RTCSessionDescription.js.map +1 -0
  188. package/lib/commonjs/RTCTrackEvent.js +38 -0
  189. package/lib/commonjs/RTCTrackEvent.js.map +1 -0
  190. package/lib/commonjs/RTCUtil.js +186 -0
  191. package/lib/commonjs/RTCUtil.js.map +1 -0
  192. package/lib/commonjs/RTCView.js +16 -0
  193. package/lib/commonjs/RTCView.js.map +1 -0
  194. package/lib/commonjs/RTCView.web.js +62 -0
  195. package/lib/commonjs/RTCView.web.js.map +1 -0
  196. package/lib/commonjs/ScreenCapturePickerView.js +10 -0
  197. package/lib/commonjs/ScreenCapturePickerView.js.map +1 -0
  198. package/lib/commonjs/ScreenCapturePickerView.web.js +10 -0
  199. package/lib/commonjs/ScreenCapturePickerView.web.js.map +1 -0
  200. package/lib/commonjs/getDisplayMedia.js +33 -0
  201. package/lib/commonjs/getDisplayMedia.js.map +1 -0
  202. package/lib/commonjs/getUserMedia.js +101 -0
  203. package/lib/commonjs/getUserMedia.js.map +1 -0
  204. package/lib/commonjs/index.js +224 -0
  205. package/lib/commonjs/index.js.map +1 -0
  206. package/lib/commonjs/index.web.js +175 -0
  207. package/lib/commonjs/index.web.js.map +1 -0
  208. package/lib/commonjs/webStream.js +35 -0
  209. package/lib/commonjs/webStream.js.map +1 -0
  210. package/lib/module/Constraints.js +2 -0
  211. package/lib/module/Constraints.js.map +1 -0
  212. package/lib/module/EventEmitter.js +41 -0
  213. package/lib/module/EventEmitter.js.map +1 -0
  214. package/lib/module/Logger.js +39 -0
  215. package/lib/module/Logger.js.map +1 -0
  216. package/lib/module/MediaDevices.js +46 -0
  217. package/lib/module/MediaDevices.js.map +1 -0
  218. package/lib/module/MediaStream.js +129 -0
  219. package/lib/module/MediaStream.js.map +1 -0
  220. package/lib/module/MediaStreamError.js +12 -0
  221. package/lib/module/MediaStreamError.js.map +1 -0
  222. package/lib/module/MediaStreamErrorEvent.js +10 -0
  223. package/lib/module/MediaStreamErrorEvent.js.map +1 -0
  224. package/lib/module/MediaStreamTrack.js +195 -0
  225. package/lib/module/MediaStreamTrack.js.map +1 -0
  226. package/lib/module/MediaStreamTrackEvent.js +19 -0
  227. package/lib/module/MediaStreamTrackEvent.js.map +1 -0
  228. package/lib/module/MessageEvent.js +20 -0
  229. package/lib/module/MessageEvent.js.map +1 -0
  230. package/lib/module/Permissions.js +109 -0
  231. package/lib/module/Permissions.js.map +1 -0
  232. package/lib/module/RTCAudioSession.js +26 -0
  233. package/lib/module/RTCAudioSession.js.map +1 -0
  234. package/lib/module/RTCDataChannel.js +155 -0
  235. package/lib/module/RTCDataChannel.js.map +1 -0
  236. package/lib/module/RTCDataChannelEvent.js +19 -0
  237. package/lib/module/RTCDataChannelEvent.js.map +1 -0
  238. package/lib/module/RTCDataPacketCryptor.js +66 -0
  239. package/lib/module/RTCDataPacketCryptor.js.map +1 -0
  240. package/lib/module/RTCDataPacketCryptorFactory.js +19 -0
  241. package/lib/module/RTCDataPacketCryptorFactory.js.map +1 -0
  242. package/lib/module/RTCErrorEvent.js +16 -0
  243. package/lib/module/RTCErrorEvent.js.map +1 -0
  244. package/lib/module/RTCFrameCryptor.js +128 -0
  245. package/lib/module/RTCFrameCryptor.js.map +1 -0
  246. package/lib/module/RTCFrameCryptorFactory.js +70 -0
  247. package/lib/module/RTCFrameCryptorFactory.js.map +1 -0
  248. package/lib/module/RTCIceCandidate.js +27 -0
  249. package/lib/module/RTCIceCandidate.js.map +1 -0
  250. package/lib/module/RTCIceCandidateEvent.js +21 -0
  251. package/lib/module/RTCIceCandidateEvent.js.map +1 -0
  252. package/lib/module/RTCKeyProvider.js +101 -0
  253. package/lib/module/RTCKeyProvider.js.map +1 -0
  254. package/lib/module/RTCPIPView.js +26 -0
  255. package/lib/module/RTCPIPView.js.map +1 -0
  256. package/lib/module/RTCPIPView.web.js +11 -0
  257. package/lib/module/RTCPIPView.web.js.map +1 -0
  258. package/lib/module/RTCPeerConnection.js +684 -0
  259. package/lib/module/RTCPeerConnection.js.map +1 -0
  260. package/lib/module/RTCRtcpParameters.js +17 -0
  261. package/lib/module/RTCRtcpParameters.js.map +1 -0
  262. package/lib/module/RTCRtpCapabilities.js +15 -0
  263. package/lib/module/RTCRtpCapabilities.js.map +1 -0
  264. package/lib/module/RTCRtpCodecCapability.js +12 -0
  265. package/lib/module/RTCRtpCodecCapability.js.map +1 -0
  266. package/lib/module/RTCRtpCodecParameters.js +31 -0
  267. package/lib/module/RTCRtpCodecParameters.js.map +1 -0
  268. package/lib/module/RTCRtpEncodingParameters.js +71 -0
  269. package/lib/module/RTCRtpEncodingParameters.js.map +1 -0
  270. package/lib/module/RTCRtpHeaderExtension.js +20 -0
  271. package/lib/module/RTCRtpHeaderExtension.js.map +1 -0
  272. package/lib/module/RTCRtpParameters.js +27 -0
  273. package/lib/module/RTCRtpParameters.js.map +1 -0
  274. package/lib/module/RTCRtpReceiveParameters.js +7 -0
  275. package/lib/module/RTCRtpReceiveParameters.js.map +1 -0
  276. package/lib/module/RTCRtpReceiver.js +45 -0
  277. package/lib/module/RTCRtpReceiver.js.map +1 -0
  278. package/lib/module/RTCRtpSendParameters.js +41 -0
  279. package/lib/module/RTCRtpSendParameters.js.map +1 -0
  280. package/lib/module/RTCRtpSender.js +59 -0
  281. package/lib/module/RTCRtpSender.js.map +1 -0
  282. package/lib/module/RTCRtpTransceiver.js +74 -0
  283. package/lib/module/RTCRtpTransceiver.js.map +1 -0
  284. package/lib/module/RTCSessionDescription.js +26 -0
  285. package/lib/module/RTCSessionDescription.js.map +1 -0
  286. package/lib/module/RTCTrackEvent.js +31 -0
  287. package/lib/module/RTCTrackEvent.js.map +1 -0
  288. package/lib/module/RTCUtil.js +176 -0
  289. package/lib/module/RTCUtil.js.map +1 -0
  290. package/lib/module/RTCView.js +11 -0
  291. package/lib/module/RTCView.js.map +1 -0
  292. package/lib/module/RTCView.web.js +54 -0
  293. package/lib/module/RTCView.web.js.map +1 -0
  294. package/lib/module/ScreenCapturePickerView.js +3 -0
  295. package/lib/module/ScreenCapturePickerView.js.map +1 -0
  296. package/lib/module/ScreenCapturePickerView.web.js +4 -0
  297. package/lib/module/ScreenCapturePickerView.web.js.map +1 -0
  298. package/lib/module/getDisplayMedia.js +26 -0
  299. package/lib/module/getDisplayMedia.js.map +1 -0
  300. package/lib/module/getUserMedia.js +92 -0
  301. package/lib/module/getUserMedia.js.map +1 -0
  302. package/lib/module/index.js +60 -0
  303. package/lib/module/index.js.map +1 -0
  304. package/lib/module/index.web.js +114 -0
  305. package/lib/module/index.web.js.map +1 -0
  306. package/lib/module/webStream.js +27 -0
  307. package/lib/module/webStream.js.map +1 -0
  308. package/lib/typescript/Constraints.d.ts +19 -0
  309. package/lib/typescript/EventEmitter.d.ts +6 -0
  310. package/lib/typescript/Logger.d.ts +13 -0
  311. package/lib/typescript/MediaDevices.d.ts +30 -0
  312. package/lib/typescript/MediaStream.d.ts +48 -0
  313. package/lib/typescript/MediaStreamError.d.ts +6 -0
  314. package/lib/typescript/MediaStreamErrorEvent.d.ts +6 -0
  315. package/lib/typescript/MediaStreamTrack.d.ts +101 -0
  316. package/lib/typescript/MediaStreamTrackEvent.d.ts +19 -0
  317. package/lib/typescript/MessageEvent.d.ts +20 -0
  318. package/lib/typescript/Permissions.d.ts +55 -0
  319. package/lib/typescript/RTCAudioSession.d.ts +10 -0
  320. package/lib/typescript/RTCDataChannel.d.ts +43 -0
  321. package/lib/typescript/RTCDataChannelEvent.d.ts +19 -0
  322. package/lib/typescript/RTCDataPacketCryptor.d.ts +12 -0
  323. package/lib/typescript/RTCDataPacketCryptorFactory.d.ts +6 -0
  324. package/lib/typescript/RTCErrorEvent.d.ts +12 -0
  325. package/lib/typescript/RTCFrameCryptor.d.ts +47 -0
  326. package/lib/typescript/RTCFrameCryptorFactory.d.ts +21 -0
  327. package/lib/typescript/RTCIceCandidate.d.ts +17 -0
  328. package/lib/typescript/RTCIceCandidateEvent.d.ts +20 -0
  329. package/lib/typescript/RTCKeyProvider.d.ts +21 -0
  330. package/lib/typescript/RTCPIPView.d.ts +15 -0
  331. package/lib/typescript/RTCPIPView.web.d.ts +13 -0
  332. package/lib/typescript/RTCPeerConnection.d.ts +117 -0
  333. package/lib/typescript/RTCRtcpParameters.d.ts +10 -0
  334. package/lib/typescript/RTCRtpCapabilities.d.ts +9 -0
  335. package/lib/typescript/RTCRtpCodecCapability.d.ts +7 -0
  336. package/lib/typescript/RTCRtpCodecParameters.d.ts +16 -0
  337. package/lib/typescript/RTCRtpEncodingParameters.d.ts +23 -0
  338. package/lib/typescript/RTCRtpHeaderExtension.d.ts +12 -0
  339. package/lib/typescript/RTCRtpParameters.d.ts +19 -0
  340. package/lib/typescript/RTCRtpReceiveParameters.d.ts +4 -0
  341. package/lib/typescript/RTCRtpReceiver.d.ts +21 -0
  342. package/lib/typescript/RTCRtpSendParameters.d.ts +20 -0
  343. package/lib/typescript/RTCRtpSender.d.ts +22 -0
  344. package/lib/typescript/RTCRtpTransceiver.d.ts +31 -0
  345. package/lib/typescript/RTCSessionDescription.d.ts +12 -0
  346. package/lib/typescript/RTCTrackEvent.d.ts +29 -0
  347. package/lib/typescript/RTCUtil.d.ts +37 -0
  348. package/lib/typescript/RTCView.d.ts +117 -0
  349. package/lib/typescript/RTCView.web.d.ts +25 -0
  350. package/lib/typescript/ScreenCapturePickerView.d.ts +2 -0
  351. package/lib/typescript/ScreenCapturePickerView.web.d.ts +1 -0
  352. package/lib/typescript/getDisplayMedia.d.ts +2 -0
  353. package/lib/typescript/getUserMedia.d.ts +7 -0
  354. package/lib/typescript/index.d.ts +22 -0
  355. package/lib/typescript/index.web.d.ts +101 -0
  356. package/lib/typescript/webStream.d.ts +3 -0
  357. package/livekit-react-native-webrtc.podspec +29 -0
  358. package/macos/RCTWebRTC.xcodeproj/project.pbxproj +324 -0
  359. package/macos/RCTWebRTC.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  360. package/macos/RCTWebRTC.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  361. package/metro.config.js +7 -0
  362. package/metro.config.macos.js +14 -0
  363. package/package.json +66 -0
  364. package/react-native.config.js +11 -0
  365. package/src/.eslintrc.cjs +67 -0
  366. package/src/Constraints.ts +21 -0
  367. package/src/EventEmitter.ts +65 -0
  368. package/src/Logger.ts +49 -0
  369. package/src/MediaDevices.ts +53 -0
  370. package/src/MediaStream.ts +161 -0
  371. package/src/MediaStreamError.ts +12 -0
  372. package/src/MediaStreamErrorEvent.ts +11 -0
  373. package/src/MediaStreamTrack.ts +284 -0
  374. package/src/MediaStreamTrackEvent.ts +25 -0
  375. package/src/MessageEvent.ts +26 -0
  376. package/src/Permissions.ts +133 -0
  377. package/src/RTCAudioSession.ts +25 -0
  378. package/src/RTCDataChannel.ts +190 -0
  379. package/src/RTCDataChannelEvent.ts +28 -0
  380. package/src/RTCDataPacketCryptor.ts +90 -0
  381. package/src/RTCDataPacketCryptorFactory.ts +25 -0
  382. package/src/RTCErrorEvent.ts +21 -0
  383. package/src/RTCFrameCryptor.ts +163 -0
  384. package/src/RTCFrameCryptorFactory.ts +102 -0
  385. package/src/RTCIceCandidate.ts +29 -0
  386. package/src/RTCIceCandidateEvent.ts +26 -0
  387. package/src/RTCKeyProvider.ts +117 -0
  388. package/src/RTCPIPView.tsx +47 -0
  389. package/src/RTCPIPView.web.tsx +18 -0
  390. package/src/RTCPeerConnection.ts +832 -0
  391. package/src/RTCRtcpParameters.ts +23 -0
  392. package/src/RTCRtpCapabilities.ts +16 -0
  393. package/src/RTCRtpCodecCapability.ts +13 -0
  394. package/src/RTCRtpCodecParameters.ts +44 -0
  395. package/src/RTCRtpEncodingParameters.ts +90 -0
  396. package/src/RTCRtpHeaderExtension.ts +27 -0
  397. package/src/RTCRtpParameters.ts +37 -0
  398. package/src/RTCRtpReceiveParameters.ts +7 -0
  399. package/src/RTCRtpReceiver.ts +60 -0
  400. package/src/RTCRtpSendParameters.ts +63 -0
  401. package/src/RTCRtpSender.ts +78 -0
  402. package/src/RTCRtpTransceiver.ts +107 -0
  403. package/src/RTCSessionDescription.ts +30 -0
  404. package/src/RTCTrackEvent.ts +42 -0
  405. package/src/RTCUtil.ts +211 -0
  406. package/src/RTCView.ts +122 -0
  407. package/src/RTCView.web.tsx +82 -0
  408. package/src/ScreenCapturePickerView.ts +4 -0
  409. package/src/ScreenCapturePickerView.web.tsx +3 -0
  410. package/src/getDisplayMedia.ts +30 -0
  411. package/src/getUserMedia.ts +111 -0
  412. package/src/index.ts +107 -0
  413. package/src/index.web.ts +191 -0
  414. package/src/webStream.ts +33 -0
  415. package/tools/format.sh +6 -0
  416. package/tools/release.sh +45 -0
  417. package/tsconfig.json +17 -0
@@ -0,0 +1,60 @@
1
+ import { NativeModules, Platform } from 'react-native';
2
+ const {
3
+ WebRTCModule
4
+ } = NativeModules;
5
+ if (WebRTCModule === null) {
6
+ throw new Error(`WebRTC native module not found.\n${Platform.OS === 'ios' ? 'Try executing the "pod install" command inside your projects ios folder.' : 'Try executing the "npm install" command inside your projects folder.'}`);
7
+ }
8
+ import { setupNativeEvents } from './EventEmitter';
9
+ import Logger from './Logger';
10
+ import mediaDevices from './MediaDevices';
11
+ import MediaStream from './MediaStream';
12
+ import MediaStreamTrack from './MediaStreamTrack';
13
+ import MediaStreamTrackEvent from './MediaStreamTrackEvent';
14
+ import permissions from './Permissions';
15
+ import RTCAudioSession from './RTCAudioSession';
16
+ import RTCDataPacketCryptor, { RTCEncryptedPacket } from './RTCDataPacketCryptor';
17
+ import RTCDataPacketCryptorFactory from './RTCDataPacketCryptorFactory';
18
+ import RTCErrorEvent from './RTCErrorEvent';
19
+ import RTCFrameCryptor, { RTCFrameCryptorState } from './RTCFrameCryptor';
20
+ import RTCFrameCryptorFactory, { RTCFrameCryptorAlgorithm, RTCKeyProviderOptions } from './RTCFrameCryptorFactory';
21
+ import RTCIceCandidate from './RTCIceCandidate';
22
+ import RTCKeyProvider from './RTCKeyProvider';
23
+ import RTCPIPView, { startIOSPIP, stopIOSPIP } from './RTCPIPView';
24
+ import RTCPeerConnection from './RTCPeerConnection';
25
+ import RTCRtpReceiver from './RTCRtpReceiver';
26
+ import RTCRtpSender from './RTCRtpSender';
27
+ import RTCRtpTransceiver from './RTCRtpTransceiver';
28
+ import RTCSessionDescription from './RTCSessionDescription';
29
+ import RTCView from './RTCView';
30
+ import ScreenCapturePickerView from './ScreenCapturePickerView';
31
+ Logger.enable(`${Logger.ROOT_PREFIX}:*`);
32
+
33
+ // Add listeners for the native events early, since they are added asynchronously.
34
+ setupNativeEvents();
35
+ export { RTCIceCandidate, RTCPeerConnection, RTCSessionDescription, RTCView, RTCPIPView, ScreenCapturePickerView, RTCRtpTransceiver, RTCRtpReceiver, RTCRtpSender, RTCErrorEvent, RTCAudioSession, RTCDataPacketCryptor, RTCDataPacketCryptorFactory, RTCEncryptedPacket, RTCFrameCryptor, RTCFrameCryptorAlgorithm, RTCFrameCryptorState, RTCFrameCryptorFactory, RTCKeyProvider, RTCKeyProviderOptions, MediaStream, MediaStreamTrack, mediaDevices, permissions, registerGlobals, startIOSPIP, stopIOSPIP };
36
+ function registerGlobals() {
37
+ // Should not happen. React Native has a global navigator object.
38
+ if (typeof global.navigator !== 'object') {
39
+ throw new Error('navigator is not an object');
40
+ }
41
+ if (!global.navigator.mediaDevices) {
42
+ global.navigator.mediaDevices = {};
43
+ }
44
+ global.navigator.mediaDevices.getUserMedia = mediaDevices.getUserMedia.bind(mediaDevices);
45
+ global.navigator.mediaDevices.getDisplayMedia = mediaDevices.getDisplayMedia.bind(mediaDevices);
46
+ global.navigator.mediaDevices.enumerateDevices = mediaDevices.enumerateDevices.bind(mediaDevices);
47
+ global.RTCIceCandidate = RTCIceCandidate;
48
+ global.RTCPeerConnection = RTCPeerConnection;
49
+ global.RTCRtpReceiver = RTCRtpReceiver;
50
+ global.RTCRtpSender = RTCRtpReceiver;
51
+ global.RTCSessionDescription = RTCSessionDescription;
52
+ global.MediaStream = MediaStream;
53
+ global.MediaStreamTrack = MediaStreamTrack;
54
+ global.MediaStreamTrackEvent = MediaStreamTrackEvent;
55
+ global.RTCRtpTransceiver = RTCRtpTransceiver;
56
+ global.RTCRtpReceiver = RTCRtpReceiver;
57
+ global.RTCRtpSender = RTCRtpSender;
58
+ global.RTCErrorEvent = RTCErrorEvent;
59
+ }
60
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NativeModules","Platform","WebRTCModule","Error","OS","setupNativeEvents","Logger","mediaDevices","MediaStream","MediaStreamTrack","MediaStreamTrackEvent","permissions","RTCAudioSession","RTCDataPacketCryptor","RTCEncryptedPacket","RTCDataPacketCryptorFactory","RTCErrorEvent","RTCFrameCryptor","RTCFrameCryptorState","RTCFrameCryptorFactory","RTCFrameCryptorAlgorithm","RTCKeyProviderOptions","RTCIceCandidate","RTCKeyProvider","RTCPIPView","startIOSPIP","stopIOSPIP","RTCPeerConnection","RTCRtpReceiver","RTCRtpSender","RTCRtpTransceiver","RTCSessionDescription","RTCView","ScreenCapturePickerView","enable","ROOT_PREFIX","registerGlobals","global","navigator","getUserMedia","bind","getDisplayMedia","enumerateDevices"],"sources":["index.ts"],"sourcesContent":["import { NativeModules, Platform } from 'react-native';\r\nconst { WebRTCModule } = NativeModules;\r\n\r\nif (WebRTCModule === null) {\r\n throw new Error(`WebRTC native module not found.\\n${Platform.OS === 'ios' ?\r\n 'Try executing the \"pod install\" command inside your projects ios folder.' :\r\n 'Try executing the \"npm install\" command inside your projects folder.'\r\n }`);\r\n}\r\n\r\nimport { setupNativeEvents } from './EventEmitter';\r\nimport Logger from './Logger';\r\nimport mediaDevices from './MediaDevices';\r\nimport MediaStream from './MediaStream';\r\nimport MediaStreamTrack, {\r\n type MediaTrackSettings,\r\n type PalabraConfig,\r\n type PalabraTranscription,\r\n} from './MediaStreamTrack';\r\nimport MediaStreamTrackEvent from './MediaStreamTrackEvent';\r\nimport permissions from './Permissions';\r\nimport RTCAudioSession from './RTCAudioSession';\r\nimport RTCDataPacketCryptor, { RTCEncryptedPacket } from './RTCDataPacketCryptor';\r\nimport RTCDataPacketCryptorFactory from './RTCDataPacketCryptorFactory';\r\nimport RTCErrorEvent from './RTCErrorEvent';\r\nimport RTCFrameCryptor, { RTCFrameCryptorState } from './RTCFrameCryptor';\r\nimport RTCFrameCryptorFactory, { RTCFrameCryptorAlgorithm, RTCKeyProviderOptions } from './RTCFrameCryptorFactory';\r\nimport RTCIceCandidate from './RTCIceCandidate';\r\nimport RTCKeyProvider from './RTCKeyProvider';\r\nimport RTCPIPView, { startIOSPIP, stopIOSPIP } from './RTCPIPView';\r\nimport RTCPeerConnection from './RTCPeerConnection';\r\nimport RTCRtpReceiver from './RTCRtpReceiver';\r\nimport RTCRtpSender from './RTCRtpSender';\r\nimport RTCRtpTransceiver from './RTCRtpTransceiver';\r\nimport RTCSessionDescription from './RTCSessionDescription';\r\nimport RTCView, { type RTCVideoViewProps, type RTCIOSPIPOptions } from './RTCView';\r\nimport ScreenCapturePickerView from './ScreenCapturePickerView';\r\n\r\nLogger.enable(`${Logger.ROOT_PREFIX}:*`);\r\n\r\n// Add listeners for the native events early, since they are added asynchronously.\r\nsetupNativeEvents();\r\n\r\nexport {\r\n RTCIceCandidate,\r\n RTCPeerConnection,\r\n RTCSessionDescription,\r\n RTCView,\r\n RTCPIPView,\r\n ScreenCapturePickerView,\r\n RTCRtpTransceiver,\r\n RTCRtpReceiver,\r\n RTCRtpSender,\r\n RTCErrorEvent,\r\n RTCAudioSession,\r\n RTCDataPacketCryptor,\r\n RTCDataPacketCryptorFactory,\r\n RTCEncryptedPacket,\r\n RTCFrameCryptor,\r\n RTCFrameCryptorAlgorithm,\r\n RTCFrameCryptorState,\r\n RTCFrameCryptorFactory,\r\n RTCKeyProvider,\r\n RTCKeyProviderOptions,\r\n MediaStream,\r\n MediaStreamTrack,\r\n type MediaTrackSettings,\r\n type PalabraConfig,\r\n type PalabraTranscription,\r\n type RTCVideoViewProps,\r\n type RTCIOSPIPOptions,\r\n mediaDevices,\r\n permissions,\r\n registerGlobals,\r\n startIOSPIP,\r\n stopIOSPIP,\r\n};\r\n\r\ndeclare const global: any;\r\n\r\nfunction registerGlobals(): void {\r\n // Should not happen. React Native has a global navigator object.\r\n if (typeof global.navigator !== 'object') {\r\n throw new Error('navigator is not an object');\r\n }\r\n\r\n if (!global.navigator.mediaDevices) {\r\n global.navigator.mediaDevices = {};\r\n }\r\n\r\n global.navigator.mediaDevices.getUserMedia = mediaDevices.getUserMedia.bind(mediaDevices);\r\n global.navigator.mediaDevices.getDisplayMedia = mediaDevices.getDisplayMedia.bind(mediaDevices);\r\n global.navigator.mediaDevices.enumerateDevices = mediaDevices.enumerateDevices.bind(mediaDevices);\r\n\r\n global.RTCIceCandidate = RTCIceCandidate;\r\n global.RTCPeerConnection = RTCPeerConnection;\r\n global.RTCRtpReceiver = RTCRtpReceiver;\r\n global.RTCRtpSender = RTCRtpReceiver;\r\n global.RTCSessionDescription = RTCSessionDescription;\r\n global.MediaStream = MediaStream;\r\n global.MediaStreamTrack = MediaStreamTrack;\r\n global.MediaStreamTrackEvent = MediaStreamTrackEvent;\r\n global.RTCRtpTransceiver = RTCRtpTransceiver;\r\n global.RTCRtpReceiver = RTCRtpReceiver;\r\n global.RTCRtpSender = RTCRtpSender;\r\n global.RTCErrorEvent = RTCErrorEvent;\r\n}\r\n"],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ import RTCPIPView, { startIOSPIP, stopIOSPIP } from './RTCPIPView.web';
2
+ import RTCView from './RTCView.web';
3
+ import ScreenCapturePickerView from './ScreenCapturePickerView.web';
4
+ import { patchMediaStream } from './webStream';
5
+ export let RTCFrameCryptorAlgorithm;
6
+ (function (RTCFrameCryptorAlgorithm) {
7
+ RTCFrameCryptorAlgorithm["kAesGcm"] = "kAesGcm";
8
+ })(RTCFrameCryptorAlgorithm || (RTCFrameCryptorAlgorithm = {}));
9
+ export let RTCFrameCryptorState;
10
+ (function (RTCFrameCryptorState) {
11
+ RTCFrameCryptorState["kNew"] = "kNew";
12
+ RTCFrameCryptorState["kOk"] = "kOk";
13
+ })(RTCFrameCryptorState || (RTCFrameCryptorState = {}));
14
+ class UnsupportedFeature {
15
+ unsupported() {
16
+ throw new Error('This WebRTC native feature is not available on web.');
17
+ }
18
+ }
19
+ class RTCDataPacketCryptor extends UnsupportedFeature {}
20
+ class RTCDataPacketCryptorFactory extends UnsupportedFeature {
21
+ static async createDataPacketCryptor() {
22
+ throw new Error('Data packet cryptor is not available on web.');
23
+ }
24
+ }
25
+ class RTCErrorEvent extends Event {}
26
+ class RTCFrameCryptor extends UnsupportedFeature {}
27
+ class RTCFrameCryptorFactory extends UnsupportedFeature {
28
+ static createDefaultKeyProvider() {
29
+ return new RTCKeyProvider();
30
+ }
31
+ }
32
+ class RTCKeyProvider extends UnsupportedFeature {
33
+ setSharedKey() {
34
+ this.unsupported();
35
+ }
36
+ setKey() {
37
+ this.unsupported();
38
+ }
39
+ ratchetKey() {
40
+ this.unsupported();
41
+ }
42
+ ratchetSharedKey() {
43
+ this.unsupported();
44
+ }
45
+ setSifTrailer() {
46
+ this.unsupported();
47
+ }
48
+
49
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
50
+ dispose() {}
51
+ }
52
+ class RTCAudioSession {
53
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
54
+ static async setConfiguration() {}
55
+ }
56
+ const mediaDevices = typeof navigator !== 'undefined' && navigator.mediaDevices ? navigator.mediaDevices : {
57
+ enumerateDevices: async () => [],
58
+ getDisplayMedia: async () => {
59
+ throw new Error('Display capture is not available.');
60
+ },
61
+ getUserMedia: async () => {
62
+ throw new Error('User media is not available.');
63
+ }
64
+ };
65
+ const permissions = {
66
+ async check() {
67
+ return true;
68
+ },
69
+ async request() {
70
+ return true;
71
+ }
72
+ };
73
+ const RTCIceCandidateRef = typeof globalThis.RTCIceCandidate === 'function' ? globalThis.RTCIceCandidate : class {};
74
+ const RTCPeerConnectionRef = typeof globalThis.RTCPeerConnection === 'function' ? globalThis.RTCPeerConnection : class {};
75
+ const RTCSessionDescriptionRef = typeof globalThis.RTCSessionDescription === 'function' ? globalThis.RTCSessionDescription : class {};
76
+ const RTCRtpReceiverRef = typeof globalThis.RTCRtpReceiver === 'function' ? globalThis.RTCRtpReceiver : class {};
77
+ const RTCRtpSenderRef = typeof globalThis.RTCRtpSender === 'function' ? globalThis.RTCRtpSender : class {};
78
+ const RTCRtpTransceiverRef = typeof globalThis.RTCRtpTransceiver === 'function' ? globalThis.RTCRtpTransceiver : class {};
79
+ const MediaStreamRef = typeof globalThis.MediaStream === 'function' ? globalThis.MediaStream : class {};
80
+ const MediaStreamTrackRef = typeof globalThis.MediaStreamTrack === 'function' ? globalThis.MediaStreamTrack : class {};
81
+ const MediaStreamTrackEventRef = typeof globalThis.MediaStreamTrackEvent === 'function' ? globalThis.MediaStreamTrackEvent : class extends Event {};
82
+ export const RTCIceCandidate = RTCIceCandidateRef;
83
+ export const RTCPeerConnection = RTCPeerConnectionRef;
84
+ export const RTCSessionDescription = RTCSessionDescriptionRef;
85
+ export const RTCRtpReceiver = RTCRtpReceiverRef;
86
+ export const RTCRtpSender = RTCRtpSenderRef;
87
+ export const RTCRtpTransceiver = RTCRtpTransceiverRef;
88
+ export const MediaStream = MediaStreamRef;
89
+ export const MediaStreamTrack = MediaStreamTrackRef;
90
+ export const MediaStreamTrackEvent = MediaStreamTrackEventRef;
91
+ export function registerGlobals() {
92
+ var _globalThis$navigator;
93
+ patchMediaStream();
94
+ const nav = (_globalThis$navigator = globalThis.navigator) !== null && _globalThis$navigator !== void 0 ? _globalThis$navigator : {};
95
+ if (typeof globalThis.navigator === 'undefined') {
96
+ globalThis.navigator = nav;
97
+ }
98
+ if (!nav.mediaDevices) {
99
+ nav.mediaDevices = mediaDevices;
100
+ }
101
+ const globalRef = globalThis;
102
+ globalRef.RTCIceCandidate = RTCIceCandidate;
103
+ globalRef.RTCPeerConnection = RTCPeerConnection;
104
+ globalRef.RTCSessionDescription = RTCSessionDescription;
105
+ globalRef.MediaStream = MediaStream;
106
+ globalRef.MediaStreamTrack = MediaStreamTrack;
107
+ globalRef.MediaStreamTrackEvent = MediaStreamTrackEvent;
108
+ globalRef.RTCRtpTransceiver = RTCRtpTransceiver;
109
+ globalRef.RTCRtpReceiver = RTCRtpReceiver;
110
+ globalRef.RTCRtpSender = RTCRtpSender;
111
+ globalRef.RTCErrorEvent = RTCErrorEvent;
112
+ }
113
+ export { mediaDevices, permissions, RTCView, RTCPIPView, ScreenCapturePickerView, RTCAudioSession, RTCDataPacketCryptor, RTCDataPacketCryptorFactory, RTCErrorEvent, RTCFrameCryptor, RTCFrameCryptorFactory, RTCKeyProvider, startIOSPIP, stopIOSPIP };
114
+ //# sourceMappingURL=index.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["RTCPIPView","startIOSPIP","stopIOSPIP","RTCView","ScreenCapturePickerView","patchMediaStream","RTCFrameCryptorAlgorithm","RTCFrameCryptorState","UnsupportedFeature","unsupported","Error","RTCDataPacketCryptor","RTCDataPacketCryptorFactory","createDataPacketCryptor","RTCErrorEvent","Event","RTCFrameCryptor","RTCFrameCryptorFactory","createDefaultKeyProvider","RTCKeyProvider","setSharedKey","setKey","ratchetKey","ratchetSharedKey","setSifTrailer","dispose","RTCAudioSession","setConfiguration","mediaDevices","navigator","enumerateDevices","getDisplayMedia","getUserMedia","permissions","check","request","RTCIceCandidateRef","globalThis","RTCIceCandidate","RTCPeerConnectionRef","RTCPeerConnection","RTCSessionDescriptionRef","RTCSessionDescription","RTCRtpReceiverRef","RTCRtpReceiver","RTCRtpSenderRef","RTCRtpSender","RTCRtpTransceiverRef","RTCRtpTransceiver","MediaStreamRef","MediaStream","MediaStreamTrackRef","MediaStreamTrack","MediaStreamTrackEventRef","MediaStreamTrackEvent","registerGlobals","_globalThis$navigator","nav","globalRef"],"sources":["index.web.ts"],"sourcesContent":["import RTCPIPView, { startIOSPIP, stopIOSPIP } from './RTCPIPView.web';\r\nimport RTCView, { type RTCIOSPIPOptions, type RTCVideoViewProps } from './RTCView.web';\r\nimport ScreenCapturePickerView from './ScreenCapturePickerView.web';\r\nimport { patchMediaStream } from './webStream';\r\n\r\nexport type MediaTrackSettings = Record<string, unknown>;\r\nexport type PalabraConfig = Record<string, never>;\r\nexport type PalabraTranscription = {\r\n text: string;\r\n lang: string;\r\n isFinal: boolean;\r\n};\r\nexport type RTCEncryptedPacket = {\r\n payload: Uint8Array;\r\n iv: Uint8Array;\r\n keyIndex: number;\r\n};\r\n\r\nexport enum RTCFrameCryptorAlgorithm {\r\n kAesGcm = 'kAesGcm',\r\n}\r\n\r\nexport enum RTCFrameCryptorState {\r\n kNew = 'kNew',\r\n kOk = 'kOk',\r\n}\r\n\r\nexport type RTCKeyProviderOptions = Record<string, unknown>;\r\n\r\nclass UnsupportedFeature {\r\n protected unsupported(): never {\r\n throw new Error('This WebRTC native feature is not available on web.');\r\n }\r\n}\r\n\r\nclass RTCDataPacketCryptor extends UnsupportedFeature {}\r\n\r\nclass RTCDataPacketCryptorFactory extends UnsupportedFeature {\r\n static async createDataPacketCryptor() {\r\n throw new Error('Data packet cryptor is not available on web.');\r\n }\r\n}\r\n\r\nclass RTCErrorEvent extends Event {}\r\n\r\nclass RTCFrameCryptor extends UnsupportedFeature {}\r\n\r\nclass RTCFrameCryptorFactory extends UnsupportedFeature {\r\n static createDefaultKeyProvider() {\r\n return new RTCKeyProvider();\r\n }\r\n}\r\n\r\nclass RTCKeyProvider extends UnsupportedFeature {\r\n setSharedKey() {\r\n this.unsupported();\r\n }\r\n\r\n setKey() {\r\n this.unsupported();\r\n }\r\n\r\n ratchetKey() {\r\n this.unsupported();\r\n }\r\n\r\n ratchetSharedKey() {\r\n this.unsupported();\r\n }\r\n\r\n setSifTrailer() {\r\n this.unsupported();\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n dispose() {}\r\n}\r\n\r\nclass RTCAudioSession {\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n static async setConfiguration() {}\r\n}\r\n\r\nconst mediaDevices = typeof navigator !== 'undefined' && navigator.mediaDevices\r\n ? navigator.mediaDevices\r\n : {\r\n enumerateDevices: async () => [],\r\n getDisplayMedia: async () => {\r\n throw new Error('Display capture is not available.');\r\n },\r\n getUserMedia: async () => {\r\n throw new Error('User media is not available.');\r\n },\r\n };\r\n\r\nconst permissions = {\r\n async check() {\r\n return true;\r\n },\r\n async request() {\r\n return true;\r\n },\r\n};\r\n\r\nconst RTCIceCandidateRef =\r\n typeof globalThis.RTCIceCandidate === 'function' ? globalThis.RTCIceCandidate : class {};\r\nconst RTCPeerConnectionRef =\r\n typeof globalThis.RTCPeerConnection === 'function' ? globalThis.RTCPeerConnection : class {};\r\nconst RTCSessionDescriptionRef =\r\n typeof globalThis.RTCSessionDescription === 'function'\r\n ? globalThis.RTCSessionDescription\r\n : class {};\r\nconst RTCRtpReceiverRef =\r\n typeof globalThis.RTCRtpReceiver === 'function' ? globalThis.RTCRtpReceiver : class {};\r\nconst RTCRtpSenderRef =\r\n typeof globalThis.RTCRtpSender === 'function' ? globalThis.RTCRtpSender : class {};\r\nconst RTCRtpTransceiverRef =\r\n typeof globalThis.RTCRtpTransceiver === 'function'\r\n ? globalThis.RTCRtpTransceiver\r\n : class {};\r\nconst MediaStreamRef =\r\n typeof globalThis.MediaStream === 'function' ? globalThis.MediaStream : class {};\r\nconst MediaStreamTrackRef =\r\n typeof globalThis.MediaStreamTrack === 'function'\r\n ? globalThis.MediaStreamTrack\r\n : class {};\r\nconst MediaStreamTrackEventRef =\r\n typeof globalThis.MediaStreamTrackEvent === 'function'\r\n ? globalThis.MediaStreamTrackEvent\r\n : class extends Event {};\r\n\r\nexport const RTCIceCandidate = RTCIceCandidateRef as typeof globalThis.RTCIceCandidate;\r\nexport const RTCPeerConnection = RTCPeerConnectionRef as typeof globalThis.RTCPeerConnection;\r\nexport const RTCSessionDescription =\r\n RTCSessionDescriptionRef as typeof globalThis.RTCSessionDescription;\r\nexport const RTCRtpReceiver = RTCRtpReceiverRef as typeof globalThis.RTCRtpReceiver;\r\nexport const RTCRtpSender = RTCRtpSenderRef as typeof globalThis.RTCRtpSender;\r\nexport const RTCRtpTransceiver =\r\n RTCRtpTransceiverRef as typeof globalThis.RTCRtpTransceiver;\r\nexport const MediaStream = MediaStreamRef as typeof globalThis.MediaStream;\r\nexport const MediaStreamTrack = MediaStreamTrackRef as typeof globalThis.MediaStreamTrack;\r\nexport const MediaStreamTrackEvent =\r\n MediaStreamTrackEventRef as typeof globalThis.MediaStreamTrackEvent;\r\n\r\nexport function registerGlobals(): void {\r\n patchMediaStream();\r\n\r\n const nav = (globalThis.navigator ?? {}) as unknown as Record<string, unknown> & {\r\n mediaDevices?: typeof mediaDevices;\r\n };\r\n\r\n if (typeof globalThis.navigator === 'undefined') {\r\n (globalThis as typeof globalThis & { navigator: typeof nav }).navigator = nav as any;\r\n }\r\n\r\n if (!nav.mediaDevices) {\r\n nav.mediaDevices = mediaDevices;\r\n }\r\n\r\n const globalRef = globalThis as typeof globalThis & Record<string, unknown>;\r\n\r\n globalRef.RTCIceCandidate = RTCIceCandidate;\r\n globalRef.RTCPeerConnection = RTCPeerConnection;\r\n globalRef.RTCSessionDescription = RTCSessionDescription;\r\n globalRef.MediaStream = MediaStream;\r\n globalRef.MediaStreamTrack = MediaStreamTrack;\r\n globalRef.MediaStreamTrackEvent = MediaStreamTrackEvent;\r\n globalRef.RTCRtpTransceiver = RTCRtpTransceiver;\r\n globalRef.RTCRtpReceiver = RTCRtpReceiver;\r\n globalRef.RTCRtpSender = RTCRtpSender;\r\n globalRef.RTCErrorEvent = RTCErrorEvent;\r\n}\r\n\r\nexport {\r\n mediaDevices,\r\n permissions,\r\n RTCView,\r\n RTCPIPView,\r\n ScreenCapturePickerView,\r\n RTCAudioSession,\r\n RTCDataPacketCryptor,\r\n RTCDataPacketCryptorFactory,\r\n RTCErrorEvent,\r\n RTCFrameCryptor,\r\n RTCFrameCryptorFactory,\r\n RTCKeyProvider,\r\n startIOSPIP,\r\n stopIOSPIP,\r\n type RTCVideoViewProps,\r\n type RTCIOSPIPOptions,\r\n};\r\n"],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ const streams = new Map();
2
+ export function rememberStream(stream) {
3
+ if (!stream) {
4
+ return '';
5
+ }
6
+ streams.set(stream.id, stream);
7
+ return stream.id;
8
+ }
9
+ export function getStream(streamURL) {
10
+ var _streams$get;
11
+ if (!streamURL) {
12
+ return null;
13
+ }
14
+ return (_streams$get = streams.get(streamURL)) !== null && _streams$get !== void 0 ? _streams$get : null;
15
+ }
16
+ export function patchMediaStream() {
17
+ if (typeof MediaStream === 'undefined') {
18
+ return;
19
+ }
20
+ const proto = MediaStream.prototype;
21
+ if (typeof proto.toURL !== 'function') {
22
+ proto.toURL = function toURL() {
23
+ return rememberStream(this);
24
+ };
25
+ }
26
+ }
27
+ //# sourceMappingURL=webStream.js.map
@@ -0,0 +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;AAE9C,OAAO,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;AAEA,OAAO,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;AAEA,OAAO,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"}
@@ -0,0 +1,19 @@
1
+ export declare type MediaTrackConstraints = {
2
+ width?: ConstrainNumber;
3
+ height?: ConstrainNumber;
4
+ frameRate?: ConstrainNumber;
5
+ facingMode?: ConstrainString;
6
+ deviceId?: ConstrainString;
7
+ groupId?: ConstrainString;
8
+ };
9
+ declare type ConstrainNumber = number | {
10
+ exact?: number;
11
+ ideal?: number;
12
+ max?: number;
13
+ min?: number;
14
+ };
15
+ declare type ConstrainString = string | {
16
+ exact?: string;
17
+ ideal?: string;
18
+ };
19
+ export {};
@@ -0,0 +1,6 @@
1
+ export declare function setupNativeEvents(): void;
2
+ declare type EventHandler = (event: unknown) => void;
3
+ declare type Listener = unknown;
4
+ export declare function addListener(listener: Listener, eventName: string, eventHandler: EventHandler): void;
5
+ export declare function removeListener(listener: Listener): void;
6
+ export {};
@@ -0,0 +1,13 @@
1
+ export default class Logger {
2
+ static ROOT_PREFIX: string;
3
+ private _debug;
4
+ private _info;
5
+ private _warn;
6
+ private _error;
7
+ static enable(ns: string): void;
8
+ constructor(prefix: string);
9
+ debug(msg: string): void;
10
+ info(msg: string): void;
11
+ warn(msg: string): void;
12
+ error(msg: string, err?: Error): void;
13
+ }
@@ -0,0 +1,30 @@
1
+ import { EventTarget, Event } from 'event-target-shim/index';
2
+ import { Constraints } from './getUserMedia';
3
+ declare type MediaDevicesEventMap = {
4
+ devicechange: Event<'devicechange'>;
5
+ };
6
+ declare class MediaDevices extends EventTarget<MediaDevicesEventMap> {
7
+ /**
8
+ * W3C "Media Capture and Streams" compatible {@code enumerateDevices}
9
+ * implementation.
10
+ */
11
+ enumerateDevices(): Promise<unknown>;
12
+ /**
13
+ * W3C "Screen Capture" compatible {@code getDisplayMedia} implementation.
14
+ * See: https://w3c.github.io/mediacapture-screen-share/
15
+ *
16
+ * @returns {Promise}
17
+ */
18
+ getDisplayMedia(): Promise<import("./MediaStream").default>;
19
+ /**
20
+ * W3C "Media Capture and Streams" compatible {@code getUserMedia}
21
+ * implementation.
22
+ * See: https://www.w3.org/TR/mediacapture-streams/#dom-mediadevices-enumeratedevices
23
+ *
24
+ * @param {*} constraints
25
+ * @returns {Promise}
26
+ */
27
+ getUserMedia(constraints: Constraints): Promise<import("./MediaStream").default>;
28
+ }
29
+ declare const _default: MediaDevices;
30
+ export default _default;
@@ -0,0 +1,48 @@
1
+ import { EventTarget } from 'event-target-shim/index';
2
+ import MediaStreamTrack, { MediaStreamTrackInfo } from './MediaStreamTrack';
3
+ import MediaStreamTrackEvent from './MediaStreamTrackEvent';
4
+ declare type MediaStreamEventMap = {
5
+ addtrack: MediaStreamTrackEvent<'addtrack'>;
6
+ removetrack: MediaStreamTrackEvent<'removetrack'>;
7
+ };
8
+ export default class MediaStream extends EventTarget<MediaStreamEventMap> {
9
+ _tracks: MediaStreamTrack[];
10
+ _id: string;
11
+ /**
12
+ * The identifier of this MediaStream unique within the associated
13
+ * WebRTCModule instance. As the id of a remote MediaStream instance is unique
14
+ * only within the associated RTCPeerConnection, it is not sufficiently unique
15
+ * to identify this MediaStream across multiple RTCPeerConnections and to
16
+ * unambiguously differentiate it from a local MediaStream instance not added
17
+ * to an RTCPeerConnection.
18
+ */
19
+ _reactTag: string;
20
+ /**
21
+ * A MediaStream can be constructed in several ways, depending on the parameters
22
+ * that are passed here.
23
+ *
24
+ * - undefined: just a new stream, with no tracks.
25
+ * - MediaStream instance: a new stream, with a copy of the tracks of the passed stream.
26
+ * - Array of MediaStreamTrack: a new stream with a copy of the tracks in the array.
27
+ * - object: a new stream instance, represented by the passed info object, this is always
28
+ * done internally, when the stream is first created in native and the JS wrapper is
29
+ * built afterwards.
30
+ */
31
+ constructor(arg?: MediaStream | MediaStreamTrack[] | {
32
+ streamId: string;
33
+ streamReactTag: string;
34
+ tracks: MediaStreamTrackInfo[];
35
+ });
36
+ get id(): string;
37
+ get active(): boolean;
38
+ addTrack(track: MediaStreamTrack): void;
39
+ removeTrack(track: MediaStreamTrack): void;
40
+ getTracks(): MediaStreamTrack[];
41
+ getTrackById(trackId: any): MediaStreamTrack | undefined;
42
+ getAudioTracks(): MediaStreamTrack[];
43
+ getVideoTracks(): MediaStreamTrack[];
44
+ clone(): never;
45
+ toURL(): string;
46
+ release(releaseTracks?: boolean): void;
47
+ }
48
+ export {};
@@ -0,0 +1,6 @@
1
+ export default class MediaStreamError {
2
+ name: string;
3
+ message?: string;
4
+ constraintName?: string;
5
+ constructor(error: any);
6
+ }
@@ -0,0 +1,6 @@
1
+ import type MediaStreamError from './MediaStreamError';
2
+ export default class MediaStreamErrorEvent {
3
+ type: string;
4
+ error?: MediaStreamError;
5
+ constructor(type: any, eventInitDict: any);
6
+ }
@@ -0,0 +1,101 @@
1
+ import { EventTarget, Event } from 'event-target-shim/index';
2
+ import { MediaTrackConstraints } from './Constraints';
3
+ export declare type PalabraConfig = {
4
+ clientId: string;
5
+ clientSecret: string;
6
+ sourceLang: string;
7
+ targetLang: string;
8
+ apiUrl?: string;
9
+ };
10
+ export declare type PalabraTranscription = {
11
+ text: string;
12
+ lang: string;
13
+ isFinal: boolean;
14
+ };
15
+ declare type MediaStreamTrackState = 'live' | 'ended';
16
+ export declare type MediaStreamTrackInfo = {
17
+ id: string;
18
+ kind: string;
19
+ remote: boolean;
20
+ constraints: object;
21
+ enabled: boolean;
22
+ settings: object;
23
+ peerConnectionId: number;
24
+ readyState: MediaStreamTrackState;
25
+ };
26
+ export declare type MediaTrackSettings = {
27
+ width?: number;
28
+ height?: number;
29
+ frameRate?: number;
30
+ facingMode?: string;
31
+ deviceId?: string;
32
+ groupId?: string;
33
+ };
34
+ declare type MediaStreamTrackEventMap = {
35
+ ended: Event<'ended'>;
36
+ mute: Event<'mute'>;
37
+ unmute: Event<'unmute'>;
38
+ };
39
+ export default class MediaStreamTrack extends EventTarget<MediaStreamTrackEventMap> {
40
+ _constraints: MediaTrackConstraints;
41
+ _enabled: boolean;
42
+ _settings: MediaTrackSettings;
43
+ _muted: boolean;
44
+ _peerConnectionId: number;
45
+ _readyState: MediaStreamTrackState;
46
+ readonly id: string;
47
+ readonly kind: string;
48
+ readonly label: string;
49
+ readonly remote: boolean;
50
+ constructor(info: MediaStreamTrackInfo);
51
+ get enabled(): boolean;
52
+ set enabled(enabled: boolean);
53
+ get muted(): boolean;
54
+ get readyState(): string;
55
+ stop(): void;
56
+ /**
57
+ * Private / custom API for switching the cameras on the fly, without the
58
+ * need for adding / removing tracks or doing any SDP renegotiation.
59
+ *
60
+ * This is how the reference application (AppRTCMobile) implements camera
61
+ * switching.
62
+ *
63
+ * @deprecated Use applyConstraints instead.
64
+ */
65
+ _switchCamera(): void;
66
+ _setVideoEffects(names: string[]): void;
67
+ _setVideoEffect(name: string): void;
68
+ /**
69
+ * Internal function which is used to set the muted state on remote tracks and
70
+ * emit the mute / unmute event.
71
+ *
72
+ * @param muted Whether the track should be marked as muted / unmuted.
73
+ */
74
+ _setMutedInternal(muted: boolean): void;
75
+ /**
76
+ * Custom API for setting the volume on an individual audio track.
77
+ *
78
+ * @param volume a gain value in the range of 0-10. defaults to 1.0
79
+ */
80
+ _setVolume(volume: number): void;
81
+ /**
82
+ * Applies a new set of constraints to the track.
83
+ *
84
+ * @param constraints An object listing the constraints
85
+ * to apply to the track's constrainable properties; any existing
86
+ * constraints are replaced with the new values specified, and any
87
+ * constrainable properties not included are restored to their default
88
+ * constraints. If this parameter is omitted, all currently set custom
89
+ * constraints are cleared.
90
+ */
91
+ applyConstraints(constraints?: MediaTrackConstraints): Promise<void>;
92
+ clone(): never;
93
+ getCapabilities(): never;
94
+ startPalabraTranslation(config: PalabraConfig): Promise<void>;
95
+ stopPalabraTranslation(): Promise<void>;
96
+ getConstraints(): MediaTrackConstraints;
97
+ getSettings(): MediaTrackSettings;
98
+ _registerEvents(): void;
99
+ release(): void;
100
+ }
101
+ export {};
@@ -0,0 +1,19 @@
1
+ import { Event } from 'event-target-shim/index';
2
+ import type MediaStreamTrack from './MediaStreamTrack';
3
+ declare type MEDIA_STREAM_EVENTS = 'addtrack' | 'removetrack';
4
+ interface IMediaStreamTrackEventInitDict extends Event.EventInit {
5
+ track: MediaStreamTrack;
6
+ }
7
+ /**
8
+ * @eventClass
9
+ * This event is fired whenever the MediaStreamTrack has changed in any way.
10
+ * @param {MEDIA_STREAM_EVENTS} type - The type of event.
11
+ * @param {IMediaStreamTrackEventInitDict} eventInitDict - The event init properties.
12
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/MediaStream#events MDN} for details.
13
+ */
14
+ export default class MediaStreamTrackEvent<TEventType extends MEDIA_STREAM_EVENTS> extends Event<TEventType> {
15
+ /** @eventProperty */
16
+ track: MediaStreamTrack;
17
+ constructor(type: TEventType, eventInitDict: IMediaStreamTrackEventInitDict);
18
+ }
19
+ export {};
@@ -0,0 +1,20 @@
1
+ import { Event } from 'event-target-shim/index';
2
+ export declare type MessageEventData = string | ArrayBuffer | Blob;
3
+ declare type MESSAGE_EVENTS = 'message' | 'messageerror';
4
+ interface IMessageEventInitDict extends Event.EventInit {
5
+ data: MessageEventData;
6
+ }
7
+ /**
8
+ * @eventClass
9
+ * This event is fired whenever the RTCDataChannel send message.
10
+ * @param {MESSAGE_EVENTS} type - The type of event.
11
+ * @param {IMessageEventInitDict} eventInitDict - The event init properties.
12
+ * @see
13
+ * {@link https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel/message_event#event_type MDN} for details.
14
+ */
15
+ export default class MessageEvent<TEventType extends MESSAGE_EVENTS> extends Event<TEventType> {
16
+ /** @eventProperty */
17
+ data: MessageEventData;
18
+ constructor(type: TEventType, eventInitDict: IMessageEventInitDict);
19
+ }
20
+ export {};
@@ -0,0 +1,55 @@
1
+ import { Permission } from 'react-native';
2
+ /**
3
+ * Type declaration for a permissions descriptor.
4
+ */
5
+ declare type PermissionDescriptor = {
6
+ name: string;
7
+ };
8
+ /**
9
+ * Class implementing a subset of W3C's Permissions API as defined by:
10
+ * https://www.w3.org/TR/permissions/
11
+ */
12
+ declare class Permissions {
13
+ /**
14
+ * Possible result values for {@link query}, in accordance with:
15
+ * https://www.w3.org/TR/permissions/#status-of-a-permission
16
+ */
17
+ RESULT: {
18
+ DENIED: string;
19
+ GRANTED: string;
20
+ PROMPT: string;
21
+ };
22
+ /**
23
+ * This implementation only supports requesting these permissions, a subset
24
+ * of: https://www.w3.org/TR/permissions/#permission-registry
25
+ */
26
+ VALID_PERMISSIONS: string[];
27
+ _lastReq: Promise<unknown>;
28
+ /**
29
+ * Helper for requesting Android permissions. On Android only one permission
30
+ * can be requested at a time (unless the multi-permission API is used,
31
+ * but we are not using that for symmetry with the W3C API for querying)
32
+ * so we'll queue them up.
33
+ *
34
+ * @param perm - The requested permission from
35
+ * {@link PermissionsAndroid.PERMISSIONS}
36
+ * https://facebook.github.io/react-native/docs/permissionsandroid#permissions-that-require-prompting-the-user
37
+ */
38
+ _requestPermissionAndroid(perm: Permission): Promise<unknown>;
39
+ /**
40
+ * Validates the given permission descriptor.
41
+ */
42
+ _validatePermissionDescriptior(permissionDesc: any): void;
43
+ /**
44
+ * Method for querying the status of a permission, according to:
45
+ * https://www.w3.org/TR/permissions/#permissions-interface
46
+ */
47
+ query(permissionDesc: PermissionDescriptor): any;
48
+ /**
49
+ * Custom method NOT defined by W3C's permissions API, which allows the
50
+ * caller to request a permission.
51
+ */
52
+ request(permissionDesc: PermissionDescriptor): any;
53
+ }
54
+ declare const _default: Permissions;
55
+ export default _default;
@@ -0,0 +1,10 @@
1
+ export default class RTCAudioSession {
2
+ /**
3
+ * To be called when CallKit activates the audio session.
4
+ */
5
+ static audioSessionDidActivate(): void;
6
+ /**
7
+ * To be called when CallKit deactivates the audio session.
8
+ */
9
+ static audioSessionDidDeactivate(): void;
10
+ }
@@ -0,0 +1,43 @@
1
+ import { EventTarget } from 'event-target-shim/index';
2
+ import MessageEvent from './MessageEvent';
3
+ import RTCDataChannelEvent from './RTCDataChannelEvent';
4
+ declare type RTCDataChannelState = 'connecting' | 'open' | 'closing' | 'closed';
5
+ declare type DataChannelEventMap = {
6
+ bufferedamountlow: RTCDataChannelEvent<'bufferedamountlow'>;
7
+ close: RTCDataChannelEvent<'close'>;
8
+ closing: RTCDataChannelEvent<'closing'>;
9
+ error: RTCDataChannelEvent<'error'>;
10
+ message: MessageEvent<'message'>;
11
+ open: RTCDataChannelEvent<'open'>;
12
+ };
13
+ export default class RTCDataChannel extends EventTarget<DataChannelEventMap> {
14
+ _peerConnectionId: number;
15
+ _reactTag: string;
16
+ _bufferedAmount: number;
17
+ _id: number;
18
+ _label: string;
19
+ _maxPacketLifeTime?: number;
20
+ _maxRetransmits?: number;
21
+ _negotiated: boolean;
22
+ _ordered: boolean;
23
+ _protocol: string;
24
+ _readyState: RTCDataChannelState;
25
+ binaryType: string;
26
+ bufferedAmountLowThreshold: number;
27
+ constructor(info: any);
28
+ get bufferedAmount(): number;
29
+ get label(): string;
30
+ get id(): number;
31
+ get ordered(): boolean;
32
+ get maxPacketLifeTime(): number | undefined;
33
+ get maxRetransmits(): number | undefined;
34
+ get protocol(): string;
35
+ get negotiated(): boolean;
36
+ get readyState(): string;
37
+ send(data: string): void;
38
+ send(data: ArrayBuffer): void;
39
+ send(data: ArrayBufferView): void;
40
+ close(): void;
41
+ _registerEvents(): void;
42
+ }
43
+ export {};