@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 @@
1
+ {"version":3,"names":["Event","EventTarget","defineEventAttribute","NativeModules","addListener","removeListener","Logger","WebRTCModule","log","RTCFrameCryptorStateEvent","constructor","type","eventInitDict","_defineProperty","frameCryptor","state","RTCFrameCryptorState","RTCFrameCryptor","frameCryptorId","participantId","_frameCryptorId","_participantId","_registerEvents","id","_cryptorStateFromString","str","FrameCryptorStateNew","FrameCryptorStateOk","FrameCryptorStateDecryptionFailed","FrameCryptorStateEncryptionFailed","FrameCryptorStateInternalError","FrameCryptorStateKeyRatcheted","FrameCryptorStateMissingKey","setKeyIndex","keyIndex","params","frameCryptorSetKeyIndex","then","data","getKeyIndex","frameCryptorGetKeyIndex","setEnabled","enabled","frameCryptorSetEnabled","getEnabled","frameCryptorGetEnabled","dispose","frameCryptorDispose","ev","debug","initDict","dispatchEvent","proto","prototype"],"sources":["RTCFrameCryptor.ts"],"sourcesContent":["import { Event, EventTarget, defineEventAttribute } from 'event-target-shim/index';\r\nimport { NativeModules } from 'react-native';\r\n\r\nimport { addListener, removeListener } from './EventEmitter';\r\nimport Logger from './Logger';\r\nconst { WebRTCModule } = NativeModules;\r\n\r\nconst log = new Logger('pc');\r\n\r\ntype FRAME_CRYPTOR_EVENTS = 'onframecryptorstatechanged';\r\n\r\ninterface IRTCDataChannelEventInitDict extends Event.EventInit {\r\n frameCryptor: RTCFrameCryptor;\r\n state: RTCFrameCryptorState;\r\n}\r\n\r\n/**\r\n * @eventClass\r\n * This event is fired whenever the RTCDataChannel has changed in any way.\r\n * @param {FRAME_CRYPTOR_EVENTS} type - The type of event.\r\n * @param {IRTCDataChannelEventInitDict} eventInitDict - The event init properties.\r\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel#events MDN} for details.\r\n */\r\nexport class RTCFrameCryptorStateEvent<\r\nTEventType extends FRAME_CRYPTOR_EVENTS\r\n> extends Event<TEventType> {\r\n /** @eventProperty */\r\n frameCryptor: RTCFrameCryptor;\r\n /** @eventProperty */\r\n state: RTCFrameCryptorState;\r\n constructor(type: TEventType, eventInitDict: IRTCDataChannelEventInitDict) {\r\n super(type, eventInitDict);\r\n this.frameCryptor = eventInitDict.frameCryptor;\r\n this.state = eventInitDict.state;\r\n }\r\n}\r\n\r\ntype RTCFrameCryptorEventMap = {\r\n onframecryptorstatechanged: RTCFrameCryptorStateEvent<'onframecryptorstatechanged'>;\r\n}\r\n\r\nexport enum RTCFrameCryptorState {\r\n FrameCryptorStateNew,\r\n FrameCryptorStateOk,\r\n FrameCryptorStateEncryptionFailed,\r\n FrameCryptorStateDecryptionFailed,\r\n FrameCryptorStateMissingKey,\r\n FrameCryptorStateKeyRatcheted,\r\n FrameCryptorStateInternalError,\r\n}\r\n\r\nexport default class RTCFrameCryptor extends EventTarget<RTCFrameCryptorEventMap> {\r\n private _frameCryptorId: string;\r\n private _participantId: string;\r\n\r\n constructor(frameCryptorId: string, participantId: string) {\r\n super();\r\n this._frameCryptorId = frameCryptorId;\r\n this._participantId = participantId;\r\n this._registerEvents();\r\n }\r\n\r\n get id() {\r\n return this._frameCryptorId;\r\n }\r\n\r\n get participantId() {\r\n return this._participantId;\r\n }\r\n\r\n _cryptorStateFromString(str: string): RTCFrameCryptorState {\r\n switch (str) {\r\n case 'new':\r\n return RTCFrameCryptorState.FrameCryptorStateNew;\r\n case 'ok':\r\n return RTCFrameCryptorState.FrameCryptorStateOk;\r\n case 'decryptionFailed':\r\n return RTCFrameCryptorState.FrameCryptorStateDecryptionFailed;\r\n case 'encryptionFailed':\r\n return RTCFrameCryptorState.FrameCryptorStateEncryptionFailed;\r\n case 'internalError':\r\n return RTCFrameCryptorState.FrameCryptorStateInternalError;\r\n case 'keyRatcheted':\r\n return RTCFrameCryptorState.FrameCryptorStateKeyRatcheted;\r\n case 'missingKey':\r\n return RTCFrameCryptorState.FrameCryptorStateMissingKey;\r\n default:\r\n throw 'Unknown FrameCryptorState: $str';\r\n }\r\n }\r\n\r\n async setKeyIndex(keyIndex: number): Promise<boolean> {\r\n const params = {\r\n frameCryptorId: this._frameCryptorId,\r\n keyIndex,\r\n };\r\n\r\n return WebRTCModule.frameCryptorSetKeyIndex(params)\r\n .then(data => data['result']);\r\n }\r\n\r\n async getKeyIndex(): Promise<number> {\r\n const params = {\r\n frameCryptorId: this._frameCryptorId,\r\n };\r\n\r\n return WebRTCModule.frameCryptorGetKeyIndex(params)\r\n .then(data => data['keyIndex']);\r\n }\r\n\r\n async setEnabled(enabled: boolean): Promise<boolean> {\r\n const params = {\r\n frameCryptorId: this._frameCryptorId,\r\n enabled,\r\n };\r\n\r\n return WebRTCModule.frameCryptorSetEnabled(params)\r\n .then(data => data['result']);\r\n }\r\n\r\n async getEnabled(): Promise<boolean> {\r\n const params = {\r\n frameCryptorId: this._frameCryptorId,\r\n };\r\n\r\n return WebRTCModule.frameCryptorGetEnabled(params)\r\n .then(data => data['enabled']);\r\n }\r\n\r\n async dispose(): Promise<void> {\r\n const params = {\r\n frameCryptorId: this._frameCryptorId,\r\n };\r\n\r\n await WebRTCModule.frameCryptorDispose(params);\r\n removeListener(this);\r\n }\r\n\r\n\r\n _registerEvents(): void {\r\n addListener(this, 'frameCryptionStateChanged', (ev: any) => {\r\n if (ev.participantId !== this._participantId || ev.frameCryptorId !== this._frameCryptorId) {\r\n return;\r\n }\r\n\r\n log.debug(`${this.id} frameCryptionStateChanged ${ev.state}`);\r\n\r\n const initDict = {\r\n frameCryptor: this,\r\n state: ev.state,\r\n };\r\n\r\n this.dispatchEvent(new RTCFrameCryptorStateEvent('onframecryptorstatechanged', initDict));\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * Define the `onxxx` event handlers.\r\n */\r\nconst proto = RTCFrameCryptor.prototype;\r\n\r\ndefineEventAttribute(proto, 'onframecryptorstatechanged');"],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import * as base64 from 'base64-js';
2
+ import { NativeModules } from 'react-native';
3
+ import RTCFrameCryptor from './RTCFrameCryptor';
4
+ import RTCKeyProvider from './RTCKeyProvider';
5
+ const {
6
+ WebRTCModule
7
+ } = NativeModules;
8
+ export let RTCFrameCryptorAlgorithm; // kAesCbc = 1,
9
+ (function (RTCFrameCryptorAlgorithm) {
10
+ RTCFrameCryptorAlgorithm[RTCFrameCryptorAlgorithm["kAesGcm"] = 0] = "kAesGcm";
11
+ })(RTCFrameCryptorAlgorithm || (RTCFrameCryptorAlgorithm = {}));
12
+ export default class RTCFrameCryptorFactory {
13
+ static createFrameCryptorForRtpSender(participantId, sender, algorithm, keyProvider) {
14
+ const params = {
15
+ 'peerConnectionId': sender._peerConnectionId,
16
+ 'rtpSenderId': sender._id,
17
+ participantId,
18
+ 'keyProviderId': keyProvider._id,
19
+ 'type': 'sender',
20
+ 'algorithm': algorithm
21
+ };
22
+ const result = WebRTCModule.frameCryptorFactoryCreateFrameCryptor(params);
23
+ if (!result) {
24
+ throw new Error('Error when creating frame cryptor for sender');
25
+ }
26
+ return new RTCFrameCryptor(result, participantId);
27
+ }
28
+ static createFrameCryptorForRtpReceiver(participantId, receiver, algorithm, keyProvider) {
29
+ const params = {
30
+ 'peerConnectionId': receiver._peerConnectionId,
31
+ 'rtpReceiverId': receiver._id,
32
+ participantId,
33
+ 'keyProviderId': keyProvider._id,
34
+ 'type': 'receiver',
35
+ 'algorithm': algorithm
36
+ };
37
+ const result = WebRTCModule.frameCryptorFactoryCreateFrameCryptor(params);
38
+ if (!result) {
39
+ throw new Error('Error when creating frame cryptor for receiver');
40
+ }
41
+ return new RTCFrameCryptor(result, participantId);
42
+ }
43
+ static createDefaultKeyProvider(options) {
44
+ var _options$failureToler, _options$keyRingSize, _options$discardFrame;
45
+ const params = {
46
+ 'sharedKey': options.sharedKey,
47
+ 'ratchetWindowSize': options.ratchetWindowSize,
48
+ 'failureTolerance': (_options$failureToler = options.failureTolerance) !== null && _options$failureToler !== void 0 ? _options$failureToler : -1,
49
+ 'keyRingSize': (_options$keyRingSize = options.keyRingSize) !== null && _options$keyRingSize !== void 0 ? _options$keyRingSize : 16,
50
+ 'discardFrameWhenCryptorNotReady': (_options$discardFrame = options.discardFrameWhenCryptorNotReady) !== null && _options$discardFrame !== void 0 ? _options$discardFrame : false
51
+ };
52
+ if (typeof options.ratchetSalt === 'string') {
53
+ params['ratchetSalt'] = options.ratchetSalt;
54
+ params['ratchetSaltIsBase64'] = false;
55
+ } else {
56
+ const bytes = options.ratchetSalt;
57
+ params['ratchetSalt'] = base64.fromByteArray(bytes);
58
+ params['ratchetSaltIsBase64'] = true;
59
+ }
60
+ if (options.uncryptedMagicBytes) {
61
+ params['uncryptedMagicBytes'] = base64.fromByteArray(options.uncryptedMagicBytes);
62
+ }
63
+ const result = WebRTCModule.frameCryptorFactoryCreateKeyProvider(params);
64
+ if (!result) {
65
+ throw new Error('Error when creating key provider!');
66
+ }
67
+ return new RTCKeyProvider(result);
68
+ }
69
+ }
70
+ //# sourceMappingURL=RTCFrameCryptorFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["base64","NativeModules","RTCFrameCryptor","RTCKeyProvider","WebRTCModule","RTCFrameCryptorAlgorithm","RTCFrameCryptorFactory","createFrameCryptorForRtpSender","participantId","sender","algorithm","keyProvider","params","_peerConnectionId","_id","result","frameCryptorFactoryCreateFrameCryptor","Error","createFrameCryptorForRtpReceiver","receiver","createDefaultKeyProvider","options","_options$failureToler","_options$keyRingSize","_options$discardFrame","sharedKey","ratchetWindowSize","failureTolerance","keyRingSize","discardFrameWhenCryptorNotReady","ratchetSalt","bytes","fromByteArray","uncryptedMagicBytes","frameCryptorFactoryCreateKeyProvider"],"sources":["RTCFrameCryptorFactory.ts"],"sourcesContent":["import * as base64 from 'base64-js';\r\nimport { NativeModules } from 'react-native';\r\n\r\nimport RTCFrameCryptor from './RTCFrameCryptor';\r\nimport RTCKeyProvider from './RTCKeyProvider';\r\nimport RTCRtpReceiver from './RTCRtpReceiver';\r\nimport RTCRtpSender from './RTCRtpSender';\r\nconst { WebRTCModule } = NativeModules;\r\n\r\nexport enum RTCFrameCryptorAlgorithm {\r\n kAesGcm = 0,\r\n // kAesCbc = 1,\r\n}\r\n\r\nexport type RTCKeyProviderOptions = {\r\n sharedKey: boolean,\r\n ratchetSalt: string | Uint8Array,\r\n ratchetWindowSize: number,\r\n uncryptedMagicBytes?: Uint8Array,\r\n failureTolerance?: number,\r\n keyRingSize?: number,\r\n discardFrameWhenCryptorNotReady?: boolean\r\n}\r\n\r\nexport default class RTCFrameCryptorFactory {\r\n static createFrameCryptorForRtpSender(\r\n participantId: string,\r\n sender: RTCRtpSender,\r\n algorithm: RTCFrameCryptorAlgorithm,\r\n keyProvider: RTCKeyProvider\r\n ): RTCFrameCryptor {\r\n const params = {\r\n 'peerConnectionId': sender._peerConnectionId,\r\n 'rtpSenderId': sender._id,\r\n participantId,\r\n 'keyProviderId': keyProvider._id,\r\n 'type': 'sender',\r\n 'algorithm': algorithm\r\n };\r\n const result = WebRTCModule.frameCryptorFactoryCreateFrameCryptor(params);\r\n\r\n if (!result) {\r\n throw new Error('Error when creating frame cryptor for sender');\r\n }\r\n\r\n return new RTCFrameCryptor(result, participantId);\r\n }\r\n static createFrameCryptorForRtpReceiver(\r\n participantId: string,\r\n receiver: RTCRtpReceiver,\r\n algorithm: RTCFrameCryptorAlgorithm,\r\n keyProvider: RTCKeyProvider\r\n ): RTCFrameCryptor {\r\n const params = {\r\n 'peerConnectionId': receiver._peerConnectionId,\r\n 'rtpReceiverId': receiver._id,\r\n participantId,\r\n 'keyProviderId': keyProvider._id,\r\n 'type': 'receiver',\r\n 'algorithm': algorithm\r\n };\r\n const result = WebRTCModule.frameCryptorFactoryCreateFrameCryptor(params);\r\n\r\n if (!result) {\r\n throw new Error('Error when creating frame cryptor for receiver');\r\n }\r\n\r\n return new RTCFrameCryptor(result, participantId);\r\n }\r\n\r\n static createDefaultKeyProvider(options: RTCKeyProviderOptions): RTCKeyProvider {\r\n const params = {\r\n 'sharedKey': options.sharedKey,\r\n 'ratchetWindowSize': options.ratchetWindowSize,\r\n 'failureTolerance': options.failureTolerance ?? -1,\r\n 'keyRingSize': options.keyRingSize ?? 16,\r\n 'discardFrameWhenCryptorNotReady': options.discardFrameWhenCryptorNotReady ?? false\r\n };\r\n\r\n if (typeof options.ratchetSalt === 'string') {\r\n params['ratchetSalt'] = options.ratchetSalt;\r\n params['ratchetSaltIsBase64'] = false;\r\n } else {\r\n const bytes = options.ratchetSalt as Uint8Array;\r\n\r\n params['ratchetSalt'] = base64.fromByteArray(bytes);\r\n params['ratchetSaltIsBase64'] = true;\r\n }\r\n\r\n if (options.uncryptedMagicBytes) {\r\n params['uncryptedMagicBytes'] = base64.fromByteArray(options.uncryptedMagicBytes);\r\n }\r\n\r\n const result = WebRTCModule.frameCryptorFactoryCreateKeyProvider(params);\r\n\r\n if (!result) {\r\n throw new Error('Error when creating key provider!');\r\n }\r\n\r\n return new RTCKeyProvider(result);\r\n }\r\n}"],"mappings":"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"}
@@ -0,0 +1,27 @@
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
+ export default class RTCIceCandidate {
3
+ constructor(_ref) {
4
+ let {
5
+ candidate = '',
6
+ sdpMLineIndex = null,
7
+ sdpMid = null
8
+ } = _ref;
9
+ _defineProperty(this, "candidate", void 0);
10
+ _defineProperty(this, "sdpMLineIndex", void 0);
11
+ _defineProperty(this, "sdpMid", void 0);
12
+ if (sdpMLineIndex === null && sdpMid === null) {
13
+ throw new TypeError('`sdpMLineIndex` and `sdpMid` must not be both null');
14
+ }
15
+ this.candidate = candidate;
16
+ this.sdpMLineIndex = sdpMLineIndex;
17
+ this.sdpMid = sdpMid;
18
+ }
19
+ toJSON() {
20
+ return {
21
+ candidate: this.candidate,
22
+ sdpMLineIndex: this.sdpMLineIndex,
23
+ sdpMid: this.sdpMid
24
+ };
25
+ }
26
+ }
27
+ //# sourceMappingURL=RTCIceCandidate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["RTCIceCandidate","constructor","_ref","candidate","sdpMLineIndex","sdpMid","_defineProperty","TypeError","toJSON"],"sources":["RTCIceCandidate.ts"],"sourcesContent":["interface RTCIceCandidateInfo {\r\n candidate?: string;\r\n sdpMLineIndex?: number | null;\r\n sdpMid?: string | null;\r\n}\r\n\r\nexport default class RTCIceCandidate {\r\n candidate: string;\r\n sdpMLineIndex?: number | null;\r\n sdpMid?: string | null;\r\n\r\n constructor({ candidate = '', sdpMLineIndex = null, sdpMid = null }: RTCIceCandidateInfo) {\r\n if (sdpMLineIndex === null && sdpMid === null) {\r\n throw new TypeError('`sdpMLineIndex` and `sdpMid` must not be both null');\r\n }\r\n\r\n this.candidate = candidate;\r\n this.sdpMLineIndex = sdpMLineIndex;\r\n this.sdpMid = sdpMid;\r\n }\r\n\r\n toJSON() {\r\n return {\r\n candidate: this.candidate,\r\n sdpMLineIndex: this.sdpMLineIndex,\r\n sdpMid: this.sdpMid\r\n };\r\n }\r\n}\r\n"],"mappings":";AAMA,eAAe,MAAMA,eAAe,CAAC;EAKjCC,WAAWA,CAAAC,IAAA,EAA+E;IAAA,IAA9E;MAAEC,SAAS,GAAG,EAAE;MAAEC,aAAa,GAAG,IAAI;MAAEC,MAAM,GAAG;IAA0B,CAAC,GAAAH,IAAA;IAAAI,eAAA;IAAAA,eAAA;IAAAA,eAAA;IACpF,IAAIF,aAAa,KAAK,IAAI,IAAIC,MAAM,KAAK,IAAI,EAAE;MAC3C,MAAM,IAAIE,SAAS,CAAC,oDAAoD,CAAC;IAC7E;IAEA,IAAI,CAACJ,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,aAAa,GAAGA,aAAa;IAClC,IAAI,CAACC,MAAM,GAAGA,MAAM;EACxB;EAEAG,MAAMA,CAAA,EAAG;IACL,OAAO;MACHL,SAAS,EAAE,IAAI,CAACA,SAAS;MACzBC,aAAa,EAAE,IAAI,CAACA,aAAa;MACjCC,MAAM,EAAE,IAAI,CAACA;IACjB,CAAC;EACL;AACJ"}
@@ -0,0 +1,21 @@
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
+ import { Event } from 'event-target-shim/index';
3
+ /**
4
+ * @eventClass
5
+ * This event is fired whenever the icecandidate related RTC_EVENTS changed.
6
+ * @type {RTCIceCandidateEvent} for icecandidate related.
7
+ * @param {RTC_ICECANDIDATE_EVENTS} type - The type of event.
8
+ * @param {IRTCDataChannelEventInitDict} eventInitDict - The event init properties.
9
+ * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection#events MDN} for details.
10
+ */
11
+ export default class RTCIceCandidateEvent extends Event {
12
+ /** @eventProperty */
13
+
14
+ constructor(type, eventInitDict) {
15
+ var _eventInitDict$candid;
16
+ super(type, eventInitDict);
17
+ _defineProperty(this, "candidate", void 0);
18
+ this.candidate = (_eventInitDict$candid = eventInitDict === null || eventInitDict === void 0 ? void 0 : eventInitDict.candidate) !== null && _eventInitDict$candid !== void 0 ? _eventInitDict$candid : null;
19
+ }
20
+ }
21
+ //# sourceMappingURL=RTCIceCandidateEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Event","RTCIceCandidateEvent","constructor","type","eventInitDict","_eventInitDict$candid","_defineProperty","candidate"],"sources":["RTCIceCandidateEvent.ts"],"sourcesContent":["import { Event } from 'event-target-shim/index';\r\n\r\nimport type RTCIceCandidate from './RTCIceCandidate';\r\n\r\ntype RTC_ICECANDIDATE_EVENTS = 'icecandidate' | 'icecandidateerror'\r\n\r\ninterface IRTCDataChannelEventInitDict extends Event.EventInit {\r\n candidate: RTCIceCandidate | null\r\n}\r\n\r\n/**\r\n * @eventClass\r\n * This event is fired whenever the icecandidate related RTC_EVENTS changed.\r\n * @type {RTCIceCandidateEvent} for icecandidate related.\r\n * @param {RTC_ICECANDIDATE_EVENTS} type - The type of event.\r\n * @param {IRTCDataChannelEventInitDict} eventInitDict - The event init properties.\r\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection#events MDN} for details.\r\n */\r\nexport default class RTCIceCandidateEvent<TEventType extends RTC_ICECANDIDATE_EVENTS> extends Event<TEventType> {\r\n /** @eventProperty */\r\n candidate: RTCIceCandidate | null;\r\n constructor(type: TEventType, eventInitDict: IRTCDataChannelEventInitDict) {\r\n super(type, eventInitDict);\r\n this.candidate = eventInitDict?.candidate ?? null;\r\n }\r\n}\r\n"],"mappings":";AAAA,SAASA,KAAK,QAAQ,yBAAyB;AAU/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAMC,oBAAoB,SAAqDD,KAAK,CAAa;EAC5G;;EAEAE,WAAWA,CAACC,IAAgB,EAAEC,aAA2C,EAAE;IAAA,IAAAC,qBAAA;IACvE,KAAK,CAACF,IAAI,EAAEC,aAAa,CAAC;IAACE,eAAA;IAC3B,IAAI,CAACC,SAAS,IAAAF,qBAAA,GAAGD,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEG,SAAS,cAAAF,qBAAA,cAAAA,qBAAA,GAAI,IAAI;EACrD;AACJ"}
@@ -0,0 +1,101 @@
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
+ import * as base64 from 'base64-js';
3
+ import { NativeModules } from 'react-native';
4
+ const {
5
+ WebRTCModule
6
+ } = NativeModules;
7
+ export let FrameCryptorState;
8
+ (function (FrameCryptorState) {
9
+ FrameCryptorState[FrameCryptorState["FrameCryptorStateNew"] = 0] = "FrameCryptorStateNew";
10
+ FrameCryptorState[FrameCryptorState["FrameCryptorStateOk"] = 1] = "FrameCryptorStateOk";
11
+ FrameCryptorState[FrameCryptorState["FrameCryptorStateEncryptionFailed"] = 2] = "FrameCryptorStateEncryptionFailed";
12
+ FrameCryptorState[FrameCryptorState["FrameCryptorStateDecryptionFailed"] = 3] = "FrameCryptorStateDecryptionFailed";
13
+ FrameCryptorState[FrameCryptorState["FrameCryptorStateMissingKey"] = 4] = "FrameCryptorStateMissingKey";
14
+ FrameCryptorState[FrameCryptorState["FrameCryptorStateKeyRatcheted"] = 5] = "FrameCryptorStateKeyRatcheted";
15
+ FrameCryptorState[FrameCryptorState["FrameCryptorStateInternalError"] = 6] = "FrameCryptorStateInternalError";
16
+ })(FrameCryptorState || (FrameCryptorState = {}));
17
+ export default class RTCKeyProvider {
18
+ constructor(keyProviderId) {
19
+ _defineProperty(this, "_id", void 0);
20
+ this._id = keyProviderId;
21
+ }
22
+ async setSharedKey(key) {
23
+ let keyIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
24
+ const params = {
25
+ keyProviderId: this._id,
26
+ keyIndex
27
+ };
28
+ if (typeof key === 'string') {
29
+ params['key'] = key;
30
+ params['keyIsBase64'] = false;
31
+ } else {
32
+ params['key'] = base64.fromByteArray(key);
33
+ params['keyIsBase64'] = true;
34
+ }
35
+ return WebRTCModule.keyProviderSetSharedKey(params).then(data => data['result']);
36
+ }
37
+ async ratchetSharedKey() {
38
+ let keyIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
39
+ const params = {
40
+ keyProviderId: this._id,
41
+ keyIndex
42
+ };
43
+ return WebRTCModule.keyProviderRatchetSharedKey(params).then(data => base64.toByteArray(data['result']));
44
+ }
45
+ async exportSharedKey() {
46
+ let keyIndex = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
47
+ const params = {
48
+ keyProviderId: this._id,
49
+ keyIndex
50
+ };
51
+ return WebRTCModule.keyProviderExportSharedKey(params).then(data => base64.toByteArray(data['result']));
52
+ }
53
+ async setKey(participantId, key) {
54
+ let keyIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
55
+ const params = {
56
+ keyProviderId: this._id,
57
+ participantId,
58
+ keyIndex
59
+ };
60
+ if (typeof key === 'string') {
61
+ params['key'] = key;
62
+ params['keyIsBase64'] = false;
63
+ } else {
64
+ params['key'] = base64.fromByteArray(key);
65
+ params['keyIsBase64'] = true;
66
+ }
67
+ return WebRTCModule.keyProviderSetKey(params).then(data => data['result']);
68
+ }
69
+ async ratchetKey(participantId) {
70
+ let keyIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
71
+ const params = {
72
+ keyProviderId: this._id,
73
+ participantId,
74
+ keyIndex
75
+ };
76
+ return WebRTCModule.keyProviderRatchetKey(params).then(data => base64.toByteArray(data['result']));
77
+ }
78
+ async exportKey(participantId) {
79
+ let keyIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
80
+ const params = {
81
+ keyProviderId: this._id,
82
+ participantId,
83
+ keyIndex
84
+ };
85
+ return WebRTCModule.keyProviderExportKey(params).then(data => base64.toByteArray(data['result']));
86
+ }
87
+ async setSifTrailer(trailer) {
88
+ const params = {
89
+ keyProviderId: this._id,
90
+ 'sifTrailer': base64.fromByteArray(trailer)
91
+ };
92
+ return WebRTCModule.keyProviderSetSifTrailer(params);
93
+ }
94
+ async dispose() {
95
+ const params = {
96
+ keyProviderId: this._id
97
+ };
98
+ return WebRTCModule.keyProviderDispose(params);
99
+ }
100
+ }
101
+ //# sourceMappingURL=RTCKeyProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["base64","NativeModules","WebRTCModule","FrameCryptorState","RTCKeyProvider","constructor","keyProviderId","_defineProperty","_id","setSharedKey","key","keyIndex","arguments","length","undefined","params","fromByteArray","keyProviderSetSharedKey","then","data","ratchetSharedKey","keyProviderRatchetSharedKey","toByteArray","exportSharedKey","keyProviderExportSharedKey","setKey","participantId","keyProviderSetKey","ratchetKey","keyProviderRatchetKey","exportKey","keyProviderExportKey","setSifTrailer","trailer","keyProviderSetSifTrailer","dispose","keyProviderDispose"],"sources":["RTCKeyProvider.ts"],"sourcesContent":["import * as base64 from 'base64-js';\r\nimport { NativeModules } from 'react-native';\r\nconst { WebRTCModule } = NativeModules;\r\n\r\nexport enum FrameCryptorState {\r\n FrameCryptorStateNew,\r\n FrameCryptorStateOk,\r\n FrameCryptorStateEncryptionFailed,\r\n FrameCryptorStateDecryptionFailed,\r\n FrameCryptorStateMissingKey,\r\n FrameCryptorStateKeyRatcheted,\r\n FrameCryptorStateInternalError,\r\n}\r\n\r\nexport default class RTCKeyProvider {\r\n _id: string;\r\n\r\n constructor(keyProviderId: string) {\r\n this._id = keyProviderId;\r\n }\r\n\r\n async setSharedKey(key: string | Uint8Array, keyIndex = 0) {\r\n const params = {\r\n keyProviderId: this._id,\r\n keyIndex,\r\n };\r\n\r\n if (typeof key === 'string') {\r\n params['key'] = key;\r\n params['keyIsBase64'] = false;\r\n } else {\r\n params['key'] = base64.fromByteArray(key as Uint8Array);\r\n params['keyIsBase64'] = true;\r\n }\r\n\r\n return WebRTCModule.keyProviderSetSharedKey(params)\r\n .then(data => data['result']);\r\n }\r\n\r\n async ratchetSharedKey(keyIndex = 0): Promise<Uint8Array> {\r\n const params = {\r\n keyProviderId: this._id,\r\n keyIndex,\r\n };\r\n\r\n return WebRTCModule.keyProviderRatchetSharedKey(params)\r\n .then(data => base64.toByteArray(data['result']));\r\n }\r\n\r\n async exportSharedKey(keyIndex = 0): Promise<Uint8Array> {\r\n const params = {\r\n keyProviderId: this._id,\r\n keyIndex,\r\n };\r\n\r\n return WebRTCModule.keyProviderExportSharedKey(params)\r\n .then(data => base64.toByteArray(data['result']));\r\n }\r\n\r\n async setKey(participantId: string, key: string | Uint8Array, keyIndex = 0): Promise<boolean> {\r\n const params = {\r\n keyProviderId: this._id,\r\n participantId,\r\n keyIndex,\r\n };\r\n\r\n if (typeof key === 'string') {\r\n params['key'] = key;\r\n params['keyIsBase64'] = false;\r\n } else {\r\n params['key'] = base64.fromByteArray(key as Uint8Array);\r\n params['keyIsBase64'] = true;\r\n }\r\n\r\n return WebRTCModule.keyProviderSetKey(params)\r\n .then(data => data['result']);\r\n }\r\n\r\n async ratchetKey(participantId: string, keyIndex = 0): Promise<Uint8Array> {\r\n const params = {\r\n keyProviderId: this._id,\r\n participantId,\r\n keyIndex,\r\n };\r\n\r\n return WebRTCModule.keyProviderRatchetKey(params)\r\n .then(data => base64.toByteArray(data['result']));\r\n }\r\n\r\n async exportKey(participantId: string, keyIndex = 0): Promise<Uint8Array> {\r\n const params = {\r\n keyProviderId: this._id,\r\n participantId,\r\n keyIndex,\r\n };\r\n\r\n return WebRTCModule.keyProviderExportKey(params)\r\n .then(data => base64.toByteArray(data['result']));\r\n }\r\n\r\n async setSifTrailer(trailer: Uint8Array) {\r\n const params = {\r\n keyProviderId: this._id,\r\n 'sifTrailer': base64.fromByteArray(trailer),\r\n };\r\n\r\n return WebRTCModule.keyProviderSetSifTrailer(params);\r\n }\r\n\r\n async dispose() {\r\n const params = {\r\n keyProviderId: this._id,\r\n };\r\n\r\n return WebRTCModule.keyProviderDispose(params);\r\n }\r\n}\r\n"],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+ import { forwardRef } from 'react';
3
+ import ReactNative, { UIManager } from 'react-native';
4
+ import RTCView from './RTCView';
5
+ /**
6
+ * A convenience wrapper around RTCView to handle the fallback view as a prop.
7
+ */
8
+ const RTCPIPView = /*#__PURE__*/forwardRef((props, ref) => {
9
+ var _rtcViewProps$iosPIP, _rtcViewProps$iosPIP2;
10
+ const rtcViewProps = {
11
+ ...props
12
+ };
13
+ const fallbackView = (_rtcViewProps$iosPIP = rtcViewProps.iosPIP) === null || _rtcViewProps$iosPIP === void 0 ? void 0 : _rtcViewProps$iosPIP.fallbackView;
14
+ (_rtcViewProps$iosPIP2 = rtcViewProps.iosPIP) === null || _rtcViewProps$iosPIP2 === void 0 ? true : delete _rtcViewProps$iosPIP2.fallbackView;
15
+ return /*#__PURE__*/React.createElement(RTCView, _extends({
16
+ ref: ref
17
+ }, rtcViewProps), fallbackView);
18
+ });
19
+ export function startIOSPIP(ref) {
20
+ UIManager.dispatchViewManagerCommand(ReactNative.findNodeHandle(ref.current), UIManager.getViewManagerConfig('RTCVideoView').Commands.startIOSPIP, []);
21
+ }
22
+ export function stopIOSPIP(ref) {
23
+ UIManager.dispatchViewManagerCommand(ReactNative.findNodeHandle(ref.current), UIManager.getViewManagerConfig('RTCVideoView').Commands.stopIOSPIP, []);
24
+ }
25
+ export default RTCPIPView;
26
+ //# sourceMappingURL=RTCPIPView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["forwardRef","ReactNative","UIManager","RTCView","RTCPIPView","props","ref","_rtcViewProps$iosPIP","_rtcViewProps$iosPIP2","rtcViewProps","fallbackView","iosPIP","React","createElement","_extends","startIOSPIP","dispatchViewManagerCommand","findNodeHandle","current","getViewManagerConfig","Commands","stopIOSPIP"],"sources":["RTCPIPView.tsx"],"sourcesContent":["import { Component, forwardRef } from 'react';\r\nimport ReactNative, { UIManager } from 'react-native';\r\n\r\nimport RTCView, { RTCIOSPIPOptions, RTCVideoViewProps } from './RTCView';\r\n\r\nexport interface RTCPIPViewProps extends RTCVideoViewProps {\r\n iosPIP?: RTCIOSPIPOptions & {\r\n fallbackView?: Component;\r\n };\r\n}\r\n\r\ntype RTCViewInstance = InstanceType<typeof RTCView>;\r\n\r\n/**\r\n * A convenience wrapper around RTCView to handle the fallback view as a prop.\r\n */\r\nconst RTCPIPView = forwardRef<RTCViewInstance, RTCPIPViewProps>((props, ref) => {\r\n const rtcViewProps = { ...props };\r\n const fallbackView = rtcViewProps.iosPIP?.fallbackView;\r\n\r\n delete rtcViewProps.iosPIP?.fallbackView;\r\n\r\n return (\r\n <RTCView ref={ref}\r\n {...rtcViewProps}>\r\n {fallbackView}\r\n </RTCView>\r\n );\r\n});\r\n\r\nexport function startIOSPIP(ref) {\r\n UIManager.dispatchViewManagerCommand(\r\n ReactNative.findNodeHandle(ref.current),\r\n UIManager.getViewManagerConfig('RTCVideoView').Commands.startIOSPIP,\r\n []\r\n );\r\n}\r\n\r\nexport function stopIOSPIP(ref) {\r\n UIManager.dispatchViewManagerCommand(\r\n ReactNative.findNodeHandle(ref.current),\r\n UIManager.getViewManagerConfig('RTCVideoView').Commands.stopIOSPIP,\r\n []\r\n );\r\n}\r\n\r\nexport default RTCPIPView;"],"mappings":";AAAA,SAAoBA,UAAU,QAAQ,OAAO;AAC7C,OAAOC,WAAW,IAAIC,SAAS,QAAQ,cAAc;AAErD,OAAOC,OAAO,MAA+C,WAAW;AAUxE;AACA;AACA;AACA,MAAMC,UAAU,gBAAGJ,UAAU,CAAmC,CAACK,KAAK,EAAEC,GAAG,KAAK;EAAA,IAAAC,oBAAA,EAAAC,qBAAA;EAC5E,MAAMC,YAAY,GAAG;IAAE,GAAGJ;EAAM,CAAC;EACjC,MAAMK,YAAY,IAAAH,oBAAA,GAAGE,YAAY,CAACE,MAAM,cAAAJ,oBAAA,uBAAnBA,oBAAA,CAAqBG,YAAY;EAEtD,CAAAF,qBAAA,GAAOC,YAAY,CAACE,MAAM,cAAAH,qBAAA,qBAA1B,OAAOA,qBAAA,CAAqBE,YAAY;EAExC,oBACIE,KAAA,CAAAC,aAAA,CAACV,OAAO,EAAAW,QAAA;IAACR,GAAG,EAAEA;EAAI,GACVG,YAAY,GACfC,YACI,CAAC;AAElB,CAAC,CAAC;AAEF,OAAO,SAASK,WAAWA,CAACT,GAAG,EAAE;EAC7BJ,SAAS,CAACc,0BAA0B,CAChCf,WAAW,CAACgB,cAAc,CAACX,GAAG,CAACY,OAAO,CAAC,EACvChB,SAAS,CAACiB,oBAAoB,CAAC,cAAc,CAAC,CAACC,QAAQ,CAACL,WAAW,EACnE,EACJ,CAAC;AACL;AAEA,OAAO,SAASM,UAAUA,CAACf,GAAG,EAAE;EAC5BJ,SAAS,CAACc,0BAA0B,CAChCf,WAAW,CAACgB,cAAc,CAACX,GAAG,CAACY,OAAO,CAAC,EACvChB,SAAS,CAACiB,oBAAoB,CAAC,cAAc,CAAC,CAACC,QAAQ,CAACC,UAAU,EAClE,EACJ,CAAC;AACL;AAEA,eAAejB,UAAU"}
@@ -0,0 +1,11 @@
1
+ import React, { forwardRef } from 'react';
2
+ import RTCView from './RTCView.web';
3
+ const RTCPIPView = /*#__PURE__*/forwardRef(props => /*#__PURE__*/React.createElement(RTCView, props));
4
+
5
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
6
+ export function startIOSPIP() {}
7
+
8
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
9
+ export function stopIOSPIP() {}
10
+ export default RTCPIPView;
11
+ //# sourceMappingURL=RTCPIPView.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","forwardRef","RTCView","RTCPIPView","props","createElement","startIOSPIP","stopIOSPIP"],"sources":["RTCPIPView.web.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\r\n\r\nimport RTCView, { RTCIOSPIPOptions, RTCVideoViewProps } from './RTCView.web';\r\n\r\nexport type RTCPIPViewProps = RTCVideoViewProps & {\r\n fallbackView?: React.ReactNode;\r\n iosPIP?: RTCIOSPIPOptions;\r\n};\r\n\r\nconst RTCPIPView = forwardRef<unknown, RTCPIPViewProps>(props => <RTCView {...props} />);\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-empty-function\r\nexport function startIOSPIP() {}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-empty-function\r\nexport function stopIOSPIP() {}\r\n\r\nexport default RTCPIPView;\r\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,UAAU,QAAQ,OAAO;AAEzC,OAAOC,OAAO,MAA+C,eAAe;AAO5E,MAAMC,UAAU,gBAAGF,UAAU,CAA2BG,KAAK,iBAAIJ,KAAA,CAAAK,aAAA,CAACH,OAAO,EAAKE,KAAQ,CAAC,CAAC;;AAExF;AACA,OAAO,SAASE,WAAWA,CAAA,EAAG,CAAC;;AAE/B;AACA,OAAO,SAASC,UAAUA,CAAA,EAAG,CAAC;AAE9B,eAAeJ,UAAU"}