@sbhjt-gr/react-native-webrtc 137.0.2

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 (377) hide show
  1. package/.clang-format +11 -0
  2. package/.eslintignore +6 -0
  3. package/.nvmrc +1 -0
  4. package/ISSUE_TEMPLATE.md +40 -0
  5. package/LICENSE +22 -0
  6. package/README.md +82 -0
  7. package/android/build.gradle +36 -0
  8. package/android/consumer-rules.pro +3 -0
  9. package/android/src/main/AndroidManifest.xml +11 -0
  10. package/android/src/main/java/com/oney/WebRTCModule/AbstractVideoCaptureController.java +113 -0
  11. package/android/src/main/java/com/oney/WebRTCModule/CameraCaptureController.java +338 -0
  12. package/android/src/main/java/com/oney/WebRTCModule/CameraEventsHandler.java +49 -0
  13. package/android/src/main/java/com/oney/WebRTCModule/DataChannelWrapper.java +99 -0
  14. package/android/src/main/java/com/oney/WebRTCModule/DataPacketCryptorManager.java +63 -0
  15. package/android/src/main/java/com/oney/WebRTCModule/DisplayUtils.java +16 -0
  16. package/android/src/main/java/com/oney/WebRTCModule/EglUtils.java +66 -0
  17. package/android/src/main/java/com/oney/WebRTCModule/GetUserMediaImpl.java +539 -0
  18. package/android/src/main/java/com/oney/WebRTCModule/LibraryLoader.java +21 -0
  19. package/android/src/main/java/com/oney/WebRTCModule/MediaProjectionNotification.java +70 -0
  20. package/android/src/main/java/com/oney/WebRTCModule/MediaProjectionService.java +82 -0
  21. package/android/src/main/java/com/oney/WebRTCModule/PeerConnectionObserver.java +588 -0
  22. package/android/src/main/java/com/oney/WebRTCModule/RTCCryptoManager.java +493 -0
  23. package/android/src/main/java/com/oney/WebRTCModule/RTCVideoViewManager.java +98 -0
  24. package/android/src/main/java/com/oney/WebRTCModule/ReactBridgeUtil.java +36 -0
  25. package/android/src/main/java/com/oney/WebRTCModule/ScreenCaptureController.java +94 -0
  26. package/android/src/main/java/com/oney/WebRTCModule/SerializeUtils.java +342 -0
  27. package/android/src/main/java/com/oney/WebRTCModule/StringUtils.java +101 -0
  28. package/android/src/main/java/com/oney/WebRTCModule/ThreadUtils.java +41 -0
  29. package/android/src/main/java/com/oney/WebRTCModule/TrackCapturerEventsEmitter.java +34 -0
  30. package/android/src/main/java/com/oney/WebRTCModule/VideoTrackAdapter.java +137 -0
  31. package/android/src/main/java/com/oney/WebRTCModule/WebRTCModule.java +1593 -0
  32. package/android/src/main/java/com/oney/WebRTCModule/WebRTCModuleOptions.java +33 -0
  33. package/android/src/main/java/com/oney/WebRTCModule/WebRTCModulePackage.java +21 -0
  34. package/android/src/main/java/com/oney/WebRTCModule/WebRTCView.java +583 -0
  35. package/android/src/main/java/com/oney/WebRTCModule/videoEffects/ProcessorProvider.java +38 -0
  36. package/android/src/main/java/com/oney/WebRTCModule/videoEffects/VideoEffectProcessor.java +59 -0
  37. package/android/src/main/java/com/oney/WebRTCModule/videoEffects/VideoFrameProcessor.java +19 -0
  38. package/android/src/main/java/com/oney/WebRTCModule/videoEffects/VideoFrameProcessorFactoryInterface.java +12 -0
  39. package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/H264AndSoftwareVideoDecoderFactory.java +73 -0
  40. package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/H264AndSoftwareVideoEncoderFactory.java +73 -0
  41. package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/SoftwareVideoDecoderFactoryProxy.java +36 -0
  42. package/android/src/main/java/com/oney/WebRTCModule/webrtcutils/SoftwareVideoEncoderFactoryProxy.java +36 -0
  43. package/android/src/main/java/org/webrtc/Camera1Helper.java +54 -0
  44. package/android/src/main/java/org/webrtc/Camera2Helper.java +52 -0
  45. package/android/src/main/res/values/strings.xml +5 -0
  46. package/android/src/main/res/values/styles.xml +8 -0
  47. package/apple/.placeholder +0 -0
  48. package/ios/RCTWebRTC/CaptureController.h +18 -0
  49. package/ios/RCTWebRTC/CaptureController.m +29 -0
  50. package/ios/RCTWebRTC/CapturerEventsDelegate.h +12 -0
  51. package/ios/RCTWebRTC/DataChannelWrapper.h +27 -0
  52. package/ios/RCTWebRTC/DataChannelWrapper.m +42 -0
  53. package/ios/RCTWebRTC/I420Converter.h +22 -0
  54. package/ios/RCTWebRTC/I420Converter.m +164 -0
  55. package/ios/RCTWebRTC/PIPController.h +24 -0
  56. package/ios/RCTWebRTC/PIPController.m +234 -0
  57. package/ios/RCTWebRTC/RCTConvert+WebRTC.h +16 -0
  58. package/ios/RCTWebRTC/RCTConvert+WebRTC.m +206 -0
  59. package/ios/RCTWebRTC/RTCMediaStreamTrack+React.h +10 -0
  60. package/ios/RCTWebRTC/RTCMediaStreamTrack+React.m +16 -0
  61. package/ios/RCTWebRTC/RTCVideoViewManager.h +29 -0
  62. package/ios/RCTWebRTC/RTCVideoViewManager.m +411 -0
  63. package/ios/RCTWebRTC/SampleBufferVideoCallView.h +12 -0
  64. package/ios/RCTWebRTC/SampleBufferVideoCallView.m +178 -0
  65. package/ios/RCTWebRTC/ScreenCaptureController.h +20 -0
  66. package/ios/RCTWebRTC/ScreenCaptureController.m +83 -0
  67. package/ios/RCTWebRTC/ScreenCapturePickerViewManager.h +7 -0
  68. package/ios/RCTWebRTC/ScreenCapturePickerViewManager.m +60 -0
  69. package/ios/RCTWebRTC/ScreenCapturer.h +19 -0
  70. package/ios/RCTWebRTC/ScreenCapturer.m +264 -0
  71. package/ios/RCTWebRTC/SerializeUtils.h +28 -0
  72. package/ios/RCTWebRTC/SerializeUtils.m +314 -0
  73. package/ios/RCTWebRTC/SocketConnection.h +13 -0
  74. package/ios/RCTWebRTC/SocketConnection.m +137 -0
  75. package/ios/RCTWebRTC/TrackCapturerEventsEmitter.h +14 -0
  76. package/ios/RCTWebRTC/TrackCapturerEventsEmitter.m +37 -0
  77. package/ios/RCTWebRTC/VideoCaptureController.h +21 -0
  78. package/ios/RCTWebRTC/VideoCaptureController.m +328 -0
  79. package/ios/RCTWebRTC/WebRTCModule+Permissions.m +75 -0
  80. package/ios/RCTWebRTC/WebRTCModule+RTCAudioSession.m +20 -0
  81. package/ios/RCTWebRTC/WebRTCModule+RTCDataChannel.h +14 -0
  82. package/ios/RCTWebRTC/WebRTCModule+RTCDataChannel.m +165 -0
  83. package/ios/RCTWebRTC/WebRTCModule+RTCFrameCryptor.m +611 -0
  84. package/ios/RCTWebRTC/WebRTCModule+RTCMediaStream.h +14 -0
  85. package/ios/RCTWebRTC/WebRTCModule+RTCMediaStream.m +545 -0
  86. package/ios/RCTWebRTC/WebRTCModule+RTCPeerConnection.h +24 -0
  87. package/ios/RCTWebRTC/WebRTCModule+RTCPeerConnection.m +1004 -0
  88. package/ios/RCTWebRTC/WebRTCModule+Transceivers.m +267 -0
  89. package/ios/RCTWebRTC/WebRTCModule+VideoTrackAdapter.h +12 -0
  90. package/ios/RCTWebRTC/WebRTCModule+VideoTrackAdapter.m +166 -0
  91. package/ios/RCTWebRTC/WebRTCModule.h +45 -0
  92. package/ios/RCTWebRTC/WebRTCModule.m +149 -0
  93. package/ios/RCTWebRTC/WebRTCModuleOptions.h +24 -0
  94. package/ios/RCTWebRTC/WebRTCModuleOptions.m +31 -0
  95. package/ios/RCTWebRTC/videoEffects/ProcessorProvider.h +9 -0
  96. package/ios/RCTWebRTC/videoEffects/ProcessorProvider.m +23 -0
  97. package/ios/RCTWebRTC/videoEffects/VideoEffectProcessor.h +13 -0
  98. package/ios/RCTWebRTC/videoEffects/VideoEffectProcessor.m +23 -0
  99. package/ios/RCTWebRTC/videoEffects/VideoFrameProcessor.h +8 -0
  100. package/ios/RCTWebRTC.xcodeproj/project.pbxproj +404 -0
  101. package/ios/RCTWebRTC.xcworkspace/contents.xcworkspacedata +10 -0
  102. package/lib/commonjs/Constraints.js +2 -0
  103. package/lib/commonjs/Constraints.js.map +1 -0
  104. package/lib/commonjs/EventEmitter.js +69 -0
  105. package/lib/commonjs/EventEmitter.js.map +1 -0
  106. package/lib/commonjs/Logger.js +47 -0
  107. package/lib/commonjs/Logger.js.map +1 -0
  108. package/lib/commonjs/MediaDevices.js +54 -0
  109. package/lib/commonjs/MediaDevices.js.map +1 -0
  110. package/lib/commonjs/MediaStream.js +137 -0
  111. package/lib/commonjs/MediaStream.js.map +1 -0
  112. package/lib/commonjs/MediaStreamError.js +19 -0
  113. package/lib/commonjs/MediaStreamError.js.map +1 -0
  114. package/lib/commonjs/MediaStreamErrorEvent.js +17 -0
  115. package/lib/commonjs/MediaStreamErrorEvent.js.map +1 -0
  116. package/lib/commonjs/MediaStreamTrack.js +239 -0
  117. package/lib/commonjs/MediaStreamTrack.js.map +1 -0
  118. package/lib/commonjs/MediaStreamTrackEvent.js +26 -0
  119. package/lib/commonjs/MediaStreamTrackEvent.js.map +1 -0
  120. package/lib/commonjs/MessageEvent.js +27 -0
  121. package/lib/commonjs/MessageEvent.js.map +1 -0
  122. package/lib/commonjs/Permissions.js +116 -0
  123. package/lib/commonjs/Permissions.js.map +1 -0
  124. package/lib/commonjs/RTCAudioSession.js +33 -0
  125. package/lib/commonjs/RTCAudioSession.js.map +1 -0
  126. package/lib/commonjs/RTCDataChannel.js +165 -0
  127. package/lib/commonjs/RTCDataChannel.js.map +1 -0
  128. package/lib/commonjs/RTCDataChannelEvent.js +26 -0
  129. package/lib/commonjs/RTCDataChannelEvent.js.map +1 -0
  130. package/lib/commonjs/RTCDataPacketCryptor.js +76 -0
  131. package/lib/commonjs/RTCDataPacketCryptor.js.map +1 -0
  132. package/lib/commonjs/RTCDataPacketCryptorFactory.js +27 -0
  133. package/lib/commonjs/RTCDataPacketCryptorFactory.js.map +1 -0
  134. package/lib/commonjs/RTCErrorEvent.js +23 -0
  135. package/lib/commonjs/RTCErrorEvent.js.map +1 -0
  136. package/lib/commonjs/RTCFrameCryptor.js +138 -0
  137. package/lib/commonjs/RTCFrameCryptor.js.map +1 -0
  138. package/lib/commonjs/RTCFrameCryptorFactory.js +81 -0
  139. package/lib/commonjs/RTCFrameCryptorFactory.js.map +1 -0
  140. package/lib/commonjs/RTCIceCandidate.js +34 -0
  141. package/lib/commonjs/RTCIceCandidate.js.map +1 -0
  142. package/lib/commonjs/RTCIceCandidateEvent.js +28 -0
  143. package/lib/commonjs/RTCIceCandidateEvent.js.map +1 -0
  144. package/lib/commonjs/RTCKeyProvider.js +111 -0
  145. package/lib/commonjs/RTCKeyProvider.js.map +1 -0
  146. package/lib/commonjs/RTCPIPView.js +38 -0
  147. package/lib/commonjs/RTCPIPView.js.map +1 -0
  148. package/lib/commonjs/RTCPeerConnection.js +694 -0
  149. package/lib/commonjs/RTCPeerConnection.js.map +1 -0
  150. package/lib/commonjs/RTCRtcpParameters.js +24 -0
  151. package/lib/commonjs/RTCRtcpParameters.js.map +1 -0
  152. package/lib/commonjs/RTCRtpCapabilities.js +22 -0
  153. package/lib/commonjs/RTCRtpCapabilities.js.map +1 -0
  154. package/lib/commonjs/RTCRtpCodecCapability.js +19 -0
  155. package/lib/commonjs/RTCRtpCodecCapability.js.map +1 -0
  156. package/lib/commonjs/RTCRtpCodecParameters.js +38 -0
  157. package/lib/commonjs/RTCRtpCodecParameters.js.map +1 -0
  158. package/lib/commonjs/RTCRtpEncodingParameters.js +78 -0
  159. package/lib/commonjs/RTCRtpEncodingParameters.js.map +1 -0
  160. package/lib/commonjs/RTCRtpHeaderExtension.js +27 -0
  161. package/lib/commonjs/RTCRtpHeaderExtension.js.map +1 -0
  162. package/lib/commonjs/RTCRtpParameters.js +35 -0
  163. package/lib/commonjs/RTCRtpParameters.js.map +1 -0
  164. package/lib/commonjs/RTCRtpReceiveParameters.js +15 -0
  165. package/lib/commonjs/RTCRtpReceiveParameters.js.map +1 -0
  166. package/lib/commonjs/RTCRtpReceiver.js +53 -0
  167. package/lib/commonjs/RTCRtpReceiver.js.map +1 -0
  168. package/lib/commonjs/RTCRtpSendParameters.js +49 -0
  169. package/lib/commonjs/RTCRtpSendParameters.js.map +1 -0
  170. package/lib/commonjs/RTCRtpSender.js +67 -0
  171. package/lib/commonjs/RTCRtpSender.js.map +1 -0
  172. package/lib/commonjs/RTCRtpTransceiver.js +81 -0
  173. package/lib/commonjs/RTCRtpTransceiver.js.map +1 -0
  174. package/lib/commonjs/RTCSessionDescription.js +33 -0
  175. package/lib/commonjs/RTCSessionDescription.js.map +1 -0
  176. package/lib/commonjs/RTCTrackEvent.js +38 -0
  177. package/lib/commonjs/RTCTrackEvent.js.map +1 -0
  178. package/lib/commonjs/RTCUtil.js +186 -0
  179. package/lib/commonjs/RTCUtil.js.map +1 -0
  180. package/lib/commonjs/RTCView.js +16 -0
  181. package/lib/commonjs/RTCView.js.map +1 -0
  182. package/lib/commonjs/ScreenCapturePickerView.js +10 -0
  183. package/lib/commonjs/ScreenCapturePickerView.js.map +1 -0
  184. package/lib/commonjs/getDisplayMedia.js +33 -0
  185. package/lib/commonjs/getDisplayMedia.js.map +1 -0
  186. package/lib/commonjs/getUserMedia.js +101 -0
  187. package/lib/commonjs/getUserMedia.js.map +1 -0
  188. package/lib/commonjs/index.js +224 -0
  189. package/lib/commonjs/index.js.map +1 -0
  190. package/lib/module/Constraints.js +2 -0
  191. package/lib/module/Constraints.js.map +1 -0
  192. package/lib/module/EventEmitter.js +58 -0
  193. package/lib/module/EventEmitter.js.map +1 -0
  194. package/lib/module/Logger.js +39 -0
  195. package/lib/module/Logger.js.map +1 -0
  196. package/lib/module/MediaDevices.js +46 -0
  197. package/lib/module/MediaDevices.js.map +1 -0
  198. package/lib/module/MediaStream.js +129 -0
  199. package/lib/module/MediaStream.js.map +1 -0
  200. package/lib/module/MediaStreamError.js +12 -0
  201. package/lib/module/MediaStreamError.js.map +1 -0
  202. package/lib/module/MediaStreamErrorEvent.js +10 -0
  203. package/lib/module/MediaStreamErrorEvent.js.map +1 -0
  204. package/lib/module/MediaStreamTrack.js +231 -0
  205. package/lib/module/MediaStreamTrack.js.map +1 -0
  206. package/lib/module/MediaStreamTrackEvent.js +19 -0
  207. package/lib/module/MediaStreamTrackEvent.js.map +1 -0
  208. package/lib/module/MessageEvent.js +20 -0
  209. package/lib/module/MessageEvent.js.map +1 -0
  210. package/lib/module/Permissions.js +109 -0
  211. package/lib/module/Permissions.js.map +1 -0
  212. package/lib/module/RTCAudioSession.js +26 -0
  213. package/lib/module/RTCAudioSession.js.map +1 -0
  214. package/lib/module/RTCDataChannel.js +155 -0
  215. package/lib/module/RTCDataChannel.js.map +1 -0
  216. package/lib/module/RTCDataChannelEvent.js +19 -0
  217. package/lib/module/RTCDataChannelEvent.js.map +1 -0
  218. package/lib/module/RTCDataPacketCryptor.js +66 -0
  219. package/lib/module/RTCDataPacketCryptor.js.map +1 -0
  220. package/lib/module/RTCDataPacketCryptorFactory.js +19 -0
  221. package/lib/module/RTCDataPacketCryptorFactory.js.map +1 -0
  222. package/lib/module/RTCErrorEvent.js +16 -0
  223. package/lib/module/RTCErrorEvent.js.map +1 -0
  224. package/lib/module/RTCFrameCryptor.js +128 -0
  225. package/lib/module/RTCFrameCryptor.js.map +1 -0
  226. package/lib/module/RTCFrameCryptorFactory.js +70 -0
  227. package/lib/module/RTCFrameCryptorFactory.js.map +1 -0
  228. package/lib/module/RTCIceCandidate.js +27 -0
  229. package/lib/module/RTCIceCandidate.js.map +1 -0
  230. package/lib/module/RTCIceCandidateEvent.js +21 -0
  231. package/lib/module/RTCIceCandidateEvent.js.map +1 -0
  232. package/lib/module/RTCKeyProvider.js +101 -0
  233. package/lib/module/RTCKeyProvider.js.map +1 -0
  234. package/lib/module/RTCPIPView.js +26 -0
  235. package/lib/module/RTCPIPView.js.map +1 -0
  236. package/lib/module/RTCPeerConnection.js +684 -0
  237. package/lib/module/RTCPeerConnection.js.map +1 -0
  238. package/lib/module/RTCRtcpParameters.js +17 -0
  239. package/lib/module/RTCRtcpParameters.js.map +1 -0
  240. package/lib/module/RTCRtpCapabilities.js +15 -0
  241. package/lib/module/RTCRtpCapabilities.js.map +1 -0
  242. package/lib/module/RTCRtpCodecCapability.js +12 -0
  243. package/lib/module/RTCRtpCodecCapability.js.map +1 -0
  244. package/lib/module/RTCRtpCodecParameters.js +31 -0
  245. package/lib/module/RTCRtpCodecParameters.js.map +1 -0
  246. package/lib/module/RTCRtpEncodingParameters.js +71 -0
  247. package/lib/module/RTCRtpEncodingParameters.js.map +1 -0
  248. package/lib/module/RTCRtpHeaderExtension.js +20 -0
  249. package/lib/module/RTCRtpHeaderExtension.js.map +1 -0
  250. package/lib/module/RTCRtpParameters.js +27 -0
  251. package/lib/module/RTCRtpParameters.js.map +1 -0
  252. package/lib/module/RTCRtpReceiveParameters.js +7 -0
  253. package/lib/module/RTCRtpReceiveParameters.js.map +1 -0
  254. package/lib/module/RTCRtpReceiver.js +45 -0
  255. package/lib/module/RTCRtpReceiver.js.map +1 -0
  256. package/lib/module/RTCRtpSendParameters.js +41 -0
  257. package/lib/module/RTCRtpSendParameters.js.map +1 -0
  258. package/lib/module/RTCRtpSender.js +59 -0
  259. package/lib/module/RTCRtpSender.js.map +1 -0
  260. package/lib/module/RTCRtpTransceiver.js +74 -0
  261. package/lib/module/RTCRtpTransceiver.js.map +1 -0
  262. package/lib/module/RTCSessionDescription.js +26 -0
  263. package/lib/module/RTCSessionDescription.js.map +1 -0
  264. package/lib/module/RTCTrackEvent.js +31 -0
  265. package/lib/module/RTCTrackEvent.js.map +1 -0
  266. package/lib/module/RTCUtil.js +176 -0
  267. package/lib/module/RTCUtil.js.map +1 -0
  268. package/lib/module/RTCView.js +11 -0
  269. package/lib/module/RTCView.js.map +1 -0
  270. package/lib/module/ScreenCapturePickerView.js +3 -0
  271. package/lib/module/ScreenCapturePickerView.js.map +1 -0
  272. package/lib/module/getDisplayMedia.js +26 -0
  273. package/lib/module/getDisplayMedia.js.map +1 -0
  274. package/lib/module/getUserMedia.js +92 -0
  275. package/lib/module/getUserMedia.js.map +1 -0
  276. package/lib/module/index.js +60 -0
  277. package/lib/module/index.js.map +1 -0
  278. package/lib/typescript/Constraints.d.ts +19 -0
  279. package/lib/typescript/EventEmitter.d.ts +7 -0
  280. package/lib/typescript/Logger.d.ts +13 -0
  281. package/lib/typescript/MediaDevices.d.ts +30 -0
  282. package/lib/typescript/MediaStream.d.ts +48 -0
  283. package/lib/typescript/MediaStreamError.d.ts +6 -0
  284. package/lib/typescript/MediaStreamErrorEvent.d.ts +6 -0
  285. package/lib/typescript/MediaStreamTrack.d.ts +103 -0
  286. package/lib/typescript/MediaStreamTrackEvent.d.ts +19 -0
  287. package/lib/typescript/MessageEvent.d.ts +21 -0
  288. package/lib/typescript/Permissions.d.ts +55 -0
  289. package/lib/typescript/RTCAudioSession.d.ts +10 -0
  290. package/lib/typescript/RTCDataChannel.d.ts +43 -0
  291. package/lib/typescript/RTCDataChannelEvent.d.ts +19 -0
  292. package/lib/typescript/RTCDataPacketCryptor.d.ts +12 -0
  293. package/lib/typescript/RTCDataPacketCryptorFactory.d.ts +6 -0
  294. package/lib/typescript/RTCErrorEvent.d.ts +12 -0
  295. package/lib/typescript/RTCFrameCryptor.d.ts +47 -0
  296. package/lib/typescript/RTCFrameCryptorFactory.d.ts +21 -0
  297. package/lib/typescript/RTCIceCandidate.d.ts +17 -0
  298. package/lib/typescript/RTCIceCandidateEvent.d.ts +20 -0
  299. package/lib/typescript/RTCKeyProvider.d.ts +21 -0
  300. package/lib/typescript/RTCPIPView.d.ts +15 -0
  301. package/lib/typescript/RTCPeerConnection.d.ts +117 -0
  302. package/lib/typescript/RTCRtcpParameters.d.ts +10 -0
  303. package/lib/typescript/RTCRtpCapabilities.d.ts +9 -0
  304. package/lib/typescript/RTCRtpCodecCapability.d.ts +7 -0
  305. package/lib/typescript/RTCRtpCodecParameters.d.ts +16 -0
  306. package/lib/typescript/RTCRtpEncodingParameters.d.ts +23 -0
  307. package/lib/typescript/RTCRtpHeaderExtension.d.ts +12 -0
  308. package/lib/typescript/RTCRtpParameters.d.ts +19 -0
  309. package/lib/typescript/RTCRtpReceiveParameters.d.ts +4 -0
  310. package/lib/typescript/RTCRtpReceiver.d.ts +21 -0
  311. package/lib/typescript/RTCRtpSendParameters.d.ts +20 -0
  312. package/lib/typescript/RTCRtpSender.d.ts +22 -0
  313. package/lib/typescript/RTCRtpTransceiver.d.ts +31 -0
  314. package/lib/typescript/RTCSessionDescription.d.ts +12 -0
  315. package/lib/typescript/RTCTrackEvent.d.ts +29 -0
  316. package/lib/typescript/RTCUtil.d.ts +37 -0
  317. package/lib/typescript/RTCView.d.ts +117 -0
  318. package/lib/typescript/ScreenCapturePickerView.d.ts +2 -0
  319. package/lib/typescript/getDisplayMedia.d.ts +2 -0
  320. package/lib/typescript/getUserMedia.d.ts +7 -0
  321. package/lib/typescript/index.d.ts +22 -0
  322. package/livekit-react-native-webrtc.podspec +29 -0
  323. package/macos/RCTWebRTC.xcodeproj/project.pbxproj +324 -0
  324. package/macos/RCTWebRTC.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  325. package/macos/RCTWebRTC.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  326. package/metro.config.js +7 -0
  327. package/metro.config.macos.js +14 -0
  328. package/package.json +65 -0
  329. package/react-native.config.js +11 -0
  330. package/src/.eslintrc.cjs +67 -0
  331. package/src/Constraints.ts +21 -0
  332. package/src/EventEmitter.ts +83 -0
  333. package/src/Logger.ts +49 -0
  334. package/src/MediaDevices.ts +53 -0
  335. package/src/MediaStream.ts +161 -0
  336. package/src/MediaStreamError.ts +12 -0
  337. package/src/MediaStreamErrorEvent.ts +11 -0
  338. package/src/MediaStreamTrack.ts +331 -0
  339. package/src/MediaStreamTrackEvent.ts +25 -0
  340. package/src/MessageEvent.ts +26 -0
  341. package/src/Permissions.ts +133 -0
  342. package/src/RTCAudioSession.ts +25 -0
  343. package/src/RTCDataChannel.ts +190 -0
  344. package/src/RTCDataChannelEvent.ts +28 -0
  345. package/src/RTCDataPacketCryptor.ts +90 -0
  346. package/src/RTCDataPacketCryptorFactory.ts +25 -0
  347. package/src/RTCErrorEvent.ts +21 -0
  348. package/src/RTCFrameCryptor.ts +163 -0
  349. package/src/RTCFrameCryptorFactory.ts +102 -0
  350. package/src/RTCIceCandidate.ts +29 -0
  351. package/src/RTCIceCandidateEvent.ts +26 -0
  352. package/src/RTCKeyProvider.ts +117 -0
  353. package/src/RTCPIPView.tsx +47 -0
  354. package/src/RTCPeerConnection.ts +832 -0
  355. package/src/RTCRtcpParameters.ts +23 -0
  356. package/src/RTCRtpCapabilities.ts +16 -0
  357. package/src/RTCRtpCodecCapability.ts +13 -0
  358. package/src/RTCRtpCodecParameters.ts +44 -0
  359. package/src/RTCRtpEncodingParameters.ts +90 -0
  360. package/src/RTCRtpHeaderExtension.ts +27 -0
  361. package/src/RTCRtpParameters.ts +37 -0
  362. package/src/RTCRtpReceiveParameters.ts +7 -0
  363. package/src/RTCRtpReceiver.ts +60 -0
  364. package/src/RTCRtpSendParameters.ts +63 -0
  365. package/src/RTCRtpSender.ts +78 -0
  366. package/src/RTCRtpTransceiver.ts +107 -0
  367. package/src/RTCSessionDescription.ts +30 -0
  368. package/src/RTCTrackEvent.ts +42 -0
  369. package/src/RTCUtil.ts +211 -0
  370. package/src/RTCView.ts +122 -0
  371. package/src/ScreenCapturePickerView.ts +4 -0
  372. package/src/getDisplayMedia.ts +30 -0
  373. package/src/getUserMedia.ts +111 -0
  374. package/src/index.ts +101 -0
  375. package/tools/format.sh +6 -0
  376. package/tools/release.sh +45 -0
  377. package/tsconfig.json +16 -0
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = getUserMedia;
7
+ var _reactNative = require("react-native");
8
+ var _MediaStream = _interopRequireDefault(require("./MediaStream"));
9
+ var _MediaStreamError = _interopRequireDefault(require("./MediaStreamError"));
10
+ var _Permissions = _interopRequireDefault(require("./Permissions"));
11
+ var RTCUtil = _interopRequireWildcard(require("./RTCUtil"));
12
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+ const {
16
+ WebRTCModule
17
+ } = _reactNative.NativeModules;
18
+ function getUserMedia() {
19
+ let constraints = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
20
+ // According to
21
+ // https://www.w3.org/TR/mediacapture-streams/#dom-mediadevices-getusermedia,
22
+ // the constraints argument is a dictionary of type MediaStreamConstraints.
23
+ if (typeof constraints !== 'object') {
24
+ return Promise.reject(new TypeError('constraints is not a dictionary'));
25
+ }
26
+ if ((typeof constraints.audio === 'undefined' || !constraints.audio) && (typeof constraints.video === 'undefined' || !constraints.video)) {
27
+ return Promise.reject(new TypeError('audio and/or video is required'));
28
+ }
29
+
30
+ // Normalize constraints.
31
+ constraints = RTCUtil.normalizeConstraints(constraints);
32
+
33
+ // Request required permissions
34
+ const reqPermissions = [];
35
+ if (constraints.audio) {
36
+ reqPermissions.push(_Permissions.default.request({
37
+ name: 'microphone'
38
+ }));
39
+ } else {
40
+ reqPermissions.push(Promise.resolve(false));
41
+ }
42
+ if (constraints.video) {
43
+ reqPermissions.push(_Permissions.default.request({
44
+ name: 'camera'
45
+ }));
46
+ } else {
47
+ reqPermissions.push(Promise.resolve(false));
48
+ }
49
+ return new Promise((resolve, reject) => {
50
+ Promise.all(reqPermissions).then(results => {
51
+ const [audioPerm, videoPerm] = results;
52
+
53
+ // Check permission results and remove unneeded permissions.
54
+
55
+ if (!audioPerm && !videoPerm) {
56
+ // https://www.w3.org/TR/mediacapture-streams/#dom-mediadevices-getusermedia
57
+ // step 4
58
+ const error = {
59
+ message: 'Permission denied.',
60
+ name: 'SecurityError'
61
+ };
62
+ reject(new _MediaStreamError.default(error));
63
+ return;
64
+ }
65
+ audioPerm || delete constraints.audio;
66
+ videoPerm || delete constraints.video;
67
+ const success = (id, tracks) => {
68
+ // Store initial constraints.
69
+ for (const trackInfo of tracks) {
70
+ const c = constraints[trackInfo.kind];
71
+ if (typeof c === 'object') {
72
+ trackInfo.constraints = RTCUtil.deepClone(c);
73
+ }
74
+ }
75
+ const info = {
76
+ streamId: id,
77
+ streamReactTag: id,
78
+ tracks
79
+ };
80
+ resolve(new _MediaStream.default(info));
81
+ };
82
+ const failure = (type, message) => {
83
+ let error;
84
+ switch (type) {
85
+ case 'TypeError':
86
+ error = new TypeError(message);
87
+ break;
88
+ }
89
+ if (!error) {
90
+ error = new _MediaStreamError.default({
91
+ message,
92
+ name: type
93
+ });
94
+ }
95
+ reject(error);
96
+ };
97
+ WebRTCModule.getUserMedia(constraints, success, failure);
98
+ });
99
+ });
100
+ }
101
+ //# sourceMappingURL=getUserMedia.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_MediaStream","_interopRequireDefault","_MediaStreamError","_Permissions","RTCUtil","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","WebRTCModule","NativeModules","getUserMedia","constraints","arguments","length","undefined","Promise","reject","TypeError","audio","video","normalizeConstraints","reqPermissions","push","permissions","request","name","resolve","all","then","results","audioPerm","videoPerm","error","message","MediaStreamError","success","id","tracks","trackInfo","c","kind","deepClone","info","streamId","streamReactTag","MediaStream","failure","type"],"sources":["getUserMedia.ts"],"sourcesContent":["\nimport { NativeModules } from 'react-native';\n\n\nimport { MediaTrackConstraints } from './Constraints';\nimport MediaStream from './MediaStream';\nimport MediaStreamError from './MediaStreamError';\nimport permissions from './Permissions';\nimport * as RTCUtil from './RTCUtil';\n\nconst { WebRTCModule } = NativeModules;\n\nexport interface Constraints {\n audio?: boolean | MediaTrackConstraints;\n video?: boolean | MediaTrackConstraints;\n}\n\nexport default function getUserMedia(constraints: Constraints = {}): Promise<MediaStream> {\n // According to\n // https://www.w3.org/TR/mediacapture-streams/#dom-mediadevices-getusermedia,\n // the constraints argument is a dictionary of type MediaStreamConstraints.\n if (typeof constraints !== 'object') {\n return Promise.reject(new TypeError('constraints is not a dictionary'));\n }\n\n if (\n (typeof constraints.audio === 'undefined' || !constraints.audio) &&\n (typeof constraints.video === 'undefined' || !constraints.video)\n ) {\n return Promise.reject(new TypeError('audio and/or video is required'));\n }\n\n // Normalize constraints.\n constraints = RTCUtil.normalizeConstraints(constraints);\n\n // Request required permissions\n const reqPermissions: Promise<boolean>[] = [];\n\n if (constraints.audio) {\n reqPermissions.push(permissions.request({ name: 'microphone' }));\n } else {\n reqPermissions.push(Promise.resolve(false));\n }\n\n if (constraints.video) {\n reqPermissions.push(permissions.request({ name: 'camera' }));\n } else {\n reqPermissions.push(Promise.resolve(false));\n }\n\n return new Promise((resolve, reject) => {\n Promise.all(reqPermissions).then(results => {\n const [ audioPerm, videoPerm ] = results;\n\n // Check permission results and remove unneeded permissions.\n\n if (!audioPerm && !videoPerm) {\n // https://www.w3.org/TR/mediacapture-streams/#dom-mediadevices-getusermedia\n // step 4\n const error = {\n message: 'Permission denied.',\n name: 'SecurityError'\n };\n\n reject(new MediaStreamError(error));\n\n return;\n }\n\n audioPerm || delete constraints.audio;\n videoPerm || delete constraints.video;\n\n const success = (id, tracks) => {\n // Store initial constraints.\n for (const trackInfo of tracks) {\n const c = constraints[trackInfo.kind];\n\n if (typeof c === 'object') {\n trackInfo.constraints = RTCUtil.deepClone(c);\n }\n }\n\n const info = {\n streamId: id,\n streamReactTag: id,\n tracks\n };\n\n resolve(new MediaStream(info));\n };\n\n const failure = (type, message) => {\n let error;\n\n switch (type) {\n case 'TypeError':\n error = new TypeError(message);\n break;\n }\n\n if (!error) {\n error = new MediaStreamError({ message, name: type });\n }\n\n reject(error);\n };\n\n WebRTCModule.getUserMedia(constraints, success, failure);\n });\n });\n}\n"],"mappings":"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"}
@@ -0,0 +1,224 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "MediaStream", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _MediaStream.default;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "MediaStreamTrack", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _MediaStreamTrack.default;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "RTCAudioSession", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _RTCAudioSession.default;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "RTCDataPacketCryptor", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _RTCDataPacketCryptor.default;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "RTCDataPacketCryptorFactory", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _RTCDataPacketCryptorFactory.default;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "RTCEncryptedPacket", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _RTCDataPacketCryptor.RTCEncryptedPacket;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "RTCErrorEvent", {
43
+ enumerable: true,
44
+ get: function () {
45
+ return _RTCErrorEvent.default;
46
+ }
47
+ });
48
+ Object.defineProperty(exports, "RTCFrameCryptor", {
49
+ enumerable: true,
50
+ get: function () {
51
+ return _RTCFrameCryptor.default;
52
+ }
53
+ });
54
+ Object.defineProperty(exports, "RTCFrameCryptorAlgorithm", {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _RTCFrameCryptorFactory.RTCFrameCryptorAlgorithm;
58
+ }
59
+ });
60
+ Object.defineProperty(exports, "RTCFrameCryptorFactory", {
61
+ enumerable: true,
62
+ get: function () {
63
+ return _RTCFrameCryptorFactory.default;
64
+ }
65
+ });
66
+ Object.defineProperty(exports, "RTCFrameCryptorState", {
67
+ enumerable: true,
68
+ get: function () {
69
+ return _RTCFrameCryptor.RTCFrameCryptorState;
70
+ }
71
+ });
72
+ Object.defineProperty(exports, "RTCIceCandidate", {
73
+ enumerable: true,
74
+ get: function () {
75
+ return _RTCIceCandidate.default;
76
+ }
77
+ });
78
+ Object.defineProperty(exports, "RTCKeyProvider", {
79
+ enumerable: true,
80
+ get: function () {
81
+ return _RTCKeyProvider.default;
82
+ }
83
+ });
84
+ Object.defineProperty(exports, "RTCKeyProviderOptions", {
85
+ enumerable: true,
86
+ get: function () {
87
+ return _RTCFrameCryptorFactory.RTCKeyProviderOptions;
88
+ }
89
+ });
90
+ Object.defineProperty(exports, "RTCPIPView", {
91
+ enumerable: true,
92
+ get: function () {
93
+ return _RTCPIPView.default;
94
+ }
95
+ });
96
+ Object.defineProperty(exports, "RTCPeerConnection", {
97
+ enumerable: true,
98
+ get: function () {
99
+ return _RTCPeerConnection.default;
100
+ }
101
+ });
102
+ Object.defineProperty(exports, "RTCRtpReceiver", {
103
+ enumerable: true,
104
+ get: function () {
105
+ return _RTCRtpReceiver.default;
106
+ }
107
+ });
108
+ Object.defineProperty(exports, "RTCRtpSender", {
109
+ enumerable: true,
110
+ get: function () {
111
+ return _RTCRtpSender.default;
112
+ }
113
+ });
114
+ Object.defineProperty(exports, "RTCRtpTransceiver", {
115
+ enumerable: true,
116
+ get: function () {
117
+ return _RTCRtpTransceiver.default;
118
+ }
119
+ });
120
+ Object.defineProperty(exports, "RTCSessionDescription", {
121
+ enumerable: true,
122
+ get: function () {
123
+ return _RTCSessionDescription.default;
124
+ }
125
+ });
126
+ Object.defineProperty(exports, "RTCView", {
127
+ enumerable: true,
128
+ get: function () {
129
+ return _RTCView.default;
130
+ }
131
+ });
132
+ Object.defineProperty(exports, "ScreenCapturePickerView", {
133
+ enumerable: true,
134
+ get: function () {
135
+ return _ScreenCapturePickerView.default;
136
+ }
137
+ });
138
+ Object.defineProperty(exports, "mediaDevices", {
139
+ enumerable: true,
140
+ get: function () {
141
+ return _MediaDevices.default;
142
+ }
143
+ });
144
+ Object.defineProperty(exports, "permissions", {
145
+ enumerable: true,
146
+ get: function () {
147
+ return _Permissions.default;
148
+ }
149
+ });
150
+ exports.registerGlobals = registerGlobals;
151
+ Object.defineProperty(exports, "startIOSPIP", {
152
+ enumerable: true,
153
+ get: function () {
154
+ return _RTCPIPView.startIOSPIP;
155
+ }
156
+ });
157
+ Object.defineProperty(exports, "stopIOSPIP", {
158
+ enumerable: true,
159
+ get: function () {
160
+ return _RTCPIPView.stopIOSPIP;
161
+ }
162
+ });
163
+ var _reactNative = require("react-native");
164
+ var _EventEmitter = require("./EventEmitter");
165
+ var _Logger = _interopRequireDefault(require("./Logger"));
166
+ var _MediaDevices = _interopRequireDefault(require("./MediaDevices"));
167
+ var _MediaStream = _interopRequireDefault(require("./MediaStream"));
168
+ var _MediaStreamTrack = _interopRequireDefault(require("./MediaStreamTrack"));
169
+ var _MediaStreamTrackEvent = _interopRequireDefault(require("./MediaStreamTrackEvent"));
170
+ var _Permissions = _interopRequireDefault(require("./Permissions"));
171
+ var _RTCAudioSession = _interopRequireDefault(require("./RTCAudioSession"));
172
+ var _RTCDataPacketCryptor = _interopRequireWildcard(require("./RTCDataPacketCryptor"));
173
+ var _RTCDataPacketCryptorFactory = _interopRequireDefault(require("./RTCDataPacketCryptorFactory"));
174
+ var _RTCErrorEvent = _interopRequireDefault(require("./RTCErrorEvent"));
175
+ var _RTCFrameCryptor = _interopRequireWildcard(require("./RTCFrameCryptor"));
176
+ var _RTCFrameCryptorFactory = _interopRequireWildcard(require("./RTCFrameCryptorFactory"));
177
+ var _RTCIceCandidate = _interopRequireDefault(require("./RTCIceCandidate"));
178
+ var _RTCKeyProvider = _interopRequireDefault(require("./RTCKeyProvider"));
179
+ var _RTCPIPView = _interopRequireWildcard(require("./RTCPIPView"));
180
+ var _RTCPeerConnection = _interopRequireDefault(require("./RTCPeerConnection"));
181
+ var _RTCRtpReceiver = _interopRequireDefault(require("./RTCRtpReceiver"));
182
+ var _RTCRtpSender = _interopRequireDefault(require("./RTCRtpSender"));
183
+ var _RTCRtpTransceiver = _interopRequireDefault(require("./RTCRtpTransceiver"));
184
+ var _RTCSessionDescription = _interopRequireDefault(require("./RTCSessionDescription"));
185
+ var _RTCView = _interopRequireDefault(require("./RTCView"));
186
+ var _ScreenCapturePickerView = _interopRequireDefault(require("./ScreenCapturePickerView"));
187
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
188
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
189
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
190
+ const {
191
+ WebRTCModule
192
+ } = _reactNative.NativeModules;
193
+ if (WebRTCModule === null) {
194
+ throw new Error(`WebRTC native module not found.\n${_reactNative.Platform.OS === 'ios' ? 'Try executing the "pod install" command inside your projects ios folder.' : 'Try executing the "npm install" command inside your projects folder.'}`);
195
+ }
196
+ _Logger.default.enable(`${_Logger.default.ROOT_PREFIX}:*`);
197
+
198
+ // Add listeners for the native events early, since they are added asynchronously.
199
+ (0, _EventEmitter.setupNativeEvents)();
200
+ function registerGlobals() {
201
+ // Should not happen. React Native has a global navigator object.
202
+ if (typeof global.navigator !== 'object') {
203
+ throw new Error('navigator is not an object');
204
+ }
205
+ if (!global.navigator.mediaDevices) {
206
+ global.navigator.mediaDevices = {};
207
+ }
208
+ global.navigator.mediaDevices.getUserMedia = _MediaDevices.default.getUserMedia.bind(_MediaDevices.default);
209
+ global.navigator.mediaDevices.getDisplayMedia = _MediaDevices.default.getDisplayMedia.bind(_MediaDevices.default);
210
+ global.navigator.mediaDevices.enumerateDevices = _MediaDevices.default.enumerateDevices.bind(_MediaDevices.default);
211
+ global.RTCIceCandidate = _RTCIceCandidate.default;
212
+ global.RTCPeerConnection = _RTCPeerConnection.default;
213
+ global.RTCRtpReceiver = _RTCRtpReceiver.default;
214
+ global.RTCRtpSender = _RTCRtpReceiver.default;
215
+ global.RTCSessionDescription = _RTCSessionDescription.default;
216
+ global.MediaStream = _MediaStream.default;
217
+ global.MediaStreamTrack = _MediaStreamTrack.default;
218
+ global.MediaStreamTrackEvent = _MediaStreamTrackEvent.default;
219
+ global.RTCRtpTransceiver = _RTCRtpTransceiver.default;
220
+ global.RTCRtpReceiver = _RTCRtpReceiver.default;
221
+ global.RTCRtpSender = _RTCRtpSender.default;
222
+ global.RTCErrorEvent = _RTCErrorEvent.default;
223
+ }
224
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_EventEmitter","_Logger","_interopRequireDefault","_MediaDevices","_MediaStream","_MediaStreamTrack","_MediaStreamTrackEvent","_Permissions","_RTCAudioSession","_RTCDataPacketCryptor","_interopRequireWildcard","_RTCDataPacketCryptorFactory","_RTCErrorEvent","_RTCFrameCryptor","_RTCFrameCryptorFactory","_RTCIceCandidate","_RTCKeyProvider","_RTCPIPView","_RTCPeerConnection","_RTCRtpReceiver","_RTCRtpSender","_RTCRtpTransceiver","_RTCSessionDescription","_RTCView","_ScreenCapturePickerView","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","WebRTCModule","NativeModules","Error","Platform","OS","Logger","enable","ROOT_PREFIX","setupNativeEvents","registerGlobals","global","navigator","mediaDevices","getUserMedia","bind","getDisplayMedia","enumerateDevices","RTCIceCandidate","RTCPeerConnection","RTCRtpReceiver","RTCRtpSender","RTCSessionDescription","MediaStream","MediaStreamTrack","MediaStreamTrackEvent","RTCRtpTransceiver","RTCErrorEvent"],"sources":["index.ts"],"sourcesContent":["import { NativeModules, Platform } from 'react-native';\nconst { WebRTCModule } = NativeModules;\n\nif (WebRTCModule === null) {\n throw new Error(`WebRTC native module not found.\\n${Platform.OS === 'ios' ?\n 'Try executing the \"pod install\" command inside your projects ios folder.' :\n 'Try executing the \"npm install\" command inside your projects folder.'\n }`);\n}\n\nimport { setupNativeEvents } from './EventEmitter';\nimport Logger from './Logger';\nimport mediaDevices from './MediaDevices';\nimport MediaStream from './MediaStream';\nimport MediaStreamTrack, { type MediaTrackSettings } from './MediaStreamTrack';\nimport MediaStreamTrackEvent from './MediaStreamTrackEvent';\nimport permissions from './Permissions';\nimport RTCAudioSession from './RTCAudioSession';\nimport RTCDataPacketCryptor, { RTCEncryptedPacket } from './RTCDataPacketCryptor';\nimport RTCDataPacketCryptorFactory from './RTCDataPacketCryptorFactory';\nimport RTCErrorEvent from './RTCErrorEvent';\nimport RTCFrameCryptor, { RTCFrameCryptorState } from './RTCFrameCryptor';\nimport RTCFrameCryptorFactory, { RTCFrameCryptorAlgorithm, RTCKeyProviderOptions } from './RTCFrameCryptorFactory';\nimport RTCIceCandidate from './RTCIceCandidate';\nimport RTCKeyProvider from './RTCKeyProvider';\nimport RTCPIPView, { startIOSPIP, stopIOSPIP } from './RTCPIPView';\nimport RTCPeerConnection from './RTCPeerConnection';\nimport RTCRtpReceiver from './RTCRtpReceiver';\nimport RTCRtpSender from './RTCRtpSender';\nimport RTCRtpTransceiver from './RTCRtpTransceiver';\nimport RTCSessionDescription from './RTCSessionDescription';\nimport RTCView, { type RTCVideoViewProps, type RTCIOSPIPOptions } from './RTCView';\nimport ScreenCapturePickerView from './ScreenCapturePickerView';\n\nLogger.enable(`${Logger.ROOT_PREFIX}:*`);\n\n// Add listeners for the native events early, since they are added asynchronously.\nsetupNativeEvents();\n\nexport {\n RTCIceCandidate,\n RTCPeerConnection,\n RTCSessionDescription,\n RTCView,\n RTCPIPView,\n ScreenCapturePickerView,\n RTCRtpTransceiver,\n RTCRtpReceiver,\n RTCRtpSender,\n RTCErrorEvent,\n RTCAudioSession,\n RTCDataPacketCryptor,\n RTCDataPacketCryptorFactory,\n RTCEncryptedPacket,\n RTCFrameCryptor,\n RTCFrameCryptorAlgorithm,\n RTCFrameCryptorState,\n RTCFrameCryptorFactory,\n RTCKeyProvider,\n RTCKeyProviderOptions,\n MediaStream,\n MediaStreamTrack,\n type MediaTrackSettings,\n type RTCVideoViewProps,\n type RTCIOSPIPOptions,\n mediaDevices,\n permissions,\n registerGlobals,\n startIOSPIP,\n stopIOSPIP,\n};\n\ndeclare const global: any;\n\nfunction registerGlobals(): void {\n // Should not happen. React Native has a global navigator object.\n if (typeof global.navigator !== 'object') {\n throw new Error('navigator is not an object');\n }\n\n if (!global.navigator.mediaDevices) {\n global.navigator.mediaDevices = {};\n }\n\n global.navigator.mediaDevices.getUserMedia = mediaDevices.getUserMedia.bind(mediaDevices);\n global.navigator.mediaDevices.getDisplayMedia = mediaDevices.getDisplayMedia.bind(mediaDevices);\n global.navigator.mediaDevices.enumerateDevices = mediaDevices.enumerateDevices.bind(mediaDevices);\n\n global.RTCIceCandidate = RTCIceCandidate;\n global.RTCPeerConnection = RTCPeerConnection;\n global.RTCRtpReceiver = RTCRtpReceiver;\n global.RTCRtpSender = RTCRtpReceiver;\n global.RTCSessionDescription = RTCSessionDescription;\n global.MediaStream = MediaStream;\n global.MediaStreamTrack = MediaStreamTrack;\n global.MediaStreamTrackEvent = MediaStreamTrackEvent;\n global.RTCRtpTransceiver = RTCRtpTransceiver;\n global.RTCRtpReceiver = RTCRtpReceiver;\n global.RTCRtpSender = RTCRtpSender;\n global.RTCErrorEvent = RTCErrorEvent;\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=Constraints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["Constraints.ts"],"sourcesContent":["\nexport type MediaTrackConstraints = {\n width?: ConstrainNumber;\n height?: ConstrainNumber;\n frameRate?: ConstrainNumber;\n facingMode?: ConstrainString;\n deviceId?: ConstrainString;\n groupId?: ConstrainString;\n}\n\ntype ConstrainNumber = number | {\n exact?: number,\n ideal?: number,\n max?: number,\n min?: number,\n}\n\ntype ConstrainString = string | {\n exact?: string,\n ideal?: string,\n}"],"mappings":""}
@@ -0,0 +1,58 @@
1
+ import { NativeModules, NativeEventEmitter } from 'react-native';
2
+ // @ts-ignore
3
+ import EventEmitter from 'react-native/Libraries/vendor/emitter/EventEmitter';
4
+ const {
5
+ WebRTCModule
6
+ } = NativeModules;
7
+
8
+ // This emitter is going to be used to listen to all the native events (once) and then
9
+ // re-emit them on a JS-only emitter.
10
+ const nativeEmitter = new NativeEventEmitter(WebRTCModule);
11
+ const NATIVE_EVENTS = ['peerConnectionSignalingStateChanged', 'peerConnectionStateChanged', 'peerConnectionOnRenegotiationNeeded', 'peerConnectionIceConnectionChanged', 'peerConnectionIceGatheringChanged', 'peerConnectionGotICECandidate', 'peerConnectionDidOpenDataChannel', 'peerConnectionOnRemoveTrack', 'peerConnectionOnTrack', 'dataChannelStateChanged', 'dataChannelReceiveMessage', 'dataChannelDidChangeBufferedAmount', 'mediaStreamTrackMuteChanged', 'mediaStreamTrackEnded', 'frameCryptionStateChanged', 'audioSamples'];
12
+ const eventEmitter = new EventEmitter();
13
+ export function setupNativeEvents() {
14
+ for (const eventName of NATIVE_EVENTS) {
15
+ nativeEmitter.addListener(eventName, function () {
16
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
17
+ args[_key] = arguments[_key];
18
+ }
19
+ eventEmitter.emit(eventName, ...args);
20
+ });
21
+ }
22
+ }
23
+ const _subscriptions = new Map();
24
+ export function addListener(listener, eventName, eventHandler) {
25
+ var _subscriptions$get;
26
+ if (!NATIVE_EVENTS.includes(eventName)) {
27
+ throw new Error(`Invalid event: ${eventName}`);
28
+ }
29
+ if (!_subscriptions.has(listener)) {
30
+ _subscriptions.set(listener, []);
31
+ }
32
+ (_subscriptions$get = _subscriptions.get(listener)) === null || _subscriptions$get === void 0 ? void 0 : _subscriptions$get.push(eventEmitter.addListener(eventName, eventHandler));
33
+ }
34
+ export function removeListener(listener) {
35
+ var _subscriptions$get2;
36
+ (_subscriptions$get2 = _subscriptions.get(listener)) === null || _subscriptions$get2 === void 0 ? void 0 : _subscriptions$get2.forEach(sub => {
37
+ sub.remove();
38
+ });
39
+ _subscriptions.delete(listener);
40
+ }
41
+ export function removeListenerForEvent(listener, eventName) {
42
+ const subs = _subscriptions.get(listener);
43
+ if (!subs) return;
44
+ const remaining = [];
45
+ subs.forEach(sub => {
46
+ if (sub.eventType === eventName) {
47
+ sub.remove();
48
+ } else {
49
+ remaining.push(sub);
50
+ }
51
+ });
52
+ if (remaining.length === 0) {
53
+ _subscriptions.delete(listener);
54
+ } else {
55
+ _subscriptions.set(listener, remaining);
56
+ }
57
+ }
58
+ //# sourceMappingURL=EventEmitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NativeModules","NativeEventEmitter","EventEmitter","WebRTCModule","nativeEmitter","NATIVE_EVENTS","eventEmitter","setupNativeEvents","eventName","addListener","_len","arguments","length","args","Array","_key","emit","_subscriptions","Map","listener","eventHandler","_subscriptions$get","includes","Error","has","set","get","push","removeListener","_subscriptions$get2","forEach","sub","remove","delete","removeListenerForEvent","subs","remaining","eventType"],"sources":["EventEmitter.ts"],"sourcesContent":["import { NativeModules, NativeEventEmitter, EmitterSubscription } from 'react-native';\n// @ts-ignore\nimport EventEmitter from 'react-native/Libraries/vendor/emitter/EventEmitter';\n\nconst { WebRTCModule } = NativeModules;\n\n// This emitter is going to be used to listen to all the native events (once) and then\n// re-emit them on a JS-only emitter.\nconst nativeEmitter = new NativeEventEmitter(WebRTCModule);\n\nconst NATIVE_EVENTS = [\n 'peerConnectionSignalingStateChanged',\n 'peerConnectionStateChanged',\n 'peerConnectionOnRenegotiationNeeded',\n 'peerConnectionIceConnectionChanged',\n 'peerConnectionIceGatheringChanged',\n 'peerConnectionGotICECandidate',\n 'peerConnectionDidOpenDataChannel',\n 'peerConnectionOnRemoveTrack',\n 'peerConnectionOnTrack',\n 'dataChannelStateChanged',\n 'dataChannelReceiveMessage',\n 'dataChannelDidChangeBufferedAmount',\n 'mediaStreamTrackMuteChanged',\n 'mediaStreamTrackEnded',\n 'frameCryptionStateChanged',\n 'audioSamples',\n];\n\nconst eventEmitter = new EventEmitter();\n\nexport function setupNativeEvents() {\n for (const eventName of NATIVE_EVENTS) {\n nativeEmitter.addListener(eventName, (...args) => {\n eventEmitter.emit(eventName, ...args);\n });\n }\n}\n\ntype EventHandler = (event: unknown) => void;\ntype Listener = unknown;\n\nconst _subscriptions: Map<Listener, EmitterSubscription[]> = new Map();\n\nexport function addListener(listener: Listener, eventName: string, eventHandler: EventHandler): void {\n if (!NATIVE_EVENTS.includes(eventName)) {\n throw new Error(`Invalid event: ${eventName}`);\n }\n\n if (!_subscriptions.has(listener)) {\n _subscriptions.set(listener, []);\n }\n\n _subscriptions.get(listener)?.push(eventEmitter.addListener(eventName, eventHandler));\n}\n\nexport function removeListener(listener: Listener): void {\n _subscriptions.get(listener)?.forEach(sub => {\n sub.remove();\n });\n\n _subscriptions.delete(listener);\n}\n\nexport function removeListenerForEvent(listener: Listener, eventName: string): void {\n const subs = _subscriptions.get(listener);\n if (!subs) return;\n \n const remaining: EmitterSubscription[] = [];\n subs.forEach(sub => {\n if ((sub as any).eventType === eventName) {\n sub.remove();\n } else {\n remaining.push(sub);\n }\n });\n \n if (remaining.length === 0) {\n _subscriptions.delete(listener);\n } else {\n _subscriptions.set(listener, remaining);\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,39 @@
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 debug from 'debug';
3
+ export default class Logger {
4
+ static enable(ns) {
5
+ debug.enable(ns);
6
+ }
7
+ constructor(prefix) {
8
+ _defineProperty(this, "_debug", void 0);
9
+ _defineProperty(this, "_info", void 0);
10
+ _defineProperty(this, "_warn", void 0);
11
+ _defineProperty(this, "_error", void 0);
12
+ const _prefix = `${Logger.ROOT_PREFIX}:${prefix}`;
13
+ this._debug = debug(`${_prefix}:DEBUG`);
14
+ this._info = debug(`${_prefix}:INFO`);
15
+ this._warn = debug(`${_prefix}:WARN`);
16
+ this._error = debug(`${_prefix}:ERROR`);
17
+ const log = console.log.bind(console);
18
+ this._debug.log = log;
19
+ this._info.log = log;
20
+ this._warn.log = log;
21
+ this._error.log = log;
22
+ }
23
+ debug(msg) {
24
+ this._debug(msg);
25
+ }
26
+ info(msg) {
27
+ this._info(msg);
28
+ }
29
+ warn(msg) {
30
+ this._warn(msg);
31
+ }
32
+ error(msg, err) {
33
+ var _err$stack;
34
+ const trace = (_err$stack = err === null || err === void 0 ? void 0 : err.stack) !== null && _err$stack !== void 0 ? _err$stack : 'N/A';
35
+ this._error(`${msg} Trace: ${trace}`);
36
+ }
37
+ }
38
+ _defineProperty(Logger, "ROOT_PREFIX", 'rn-webrtc');
39
+ //# sourceMappingURL=Logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["debug","Logger","enable","ns","constructor","prefix","_defineProperty","_prefix","ROOT_PREFIX","_debug","_info","_warn","_error","log","console","bind","msg","info","warn","error","err","_err$stack","trace","stack"],"sources":["Logger.ts"],"sourcesContent":["import debug from 'debug';\n\n\nexport default class Logger {\n static ROOT_PREFIX = 'rn-webrtc';\n\n private _debug: debug.Debugger;\n private _info: debug.Debugger;\n private _warn: debug.Debugger;\n private _error: debug.Debugger;\n\n static enable(ns: string): void {\n debug.enable(ns);\n }\n\n constructor(prefix: string) {\n const _prefix = `${Logger.ROOT_PREFIX}:${prefix}`;\n\n this._debug = debug(`${_prefix}:DEBUG`);\n this._info = debug(`${_prefix}:INFO`);\n this._warn = debug(`${_prefix}:WARN`);\n this._error = debug(`${_prefix}:ERROR`);\n\n const log = console.log.bind(console);\n\n this._debug.log = log;\n this._info.log = log;\n this._warn.log = log;\n this._error.log = log;\n }\n\n debug(msg: string): void {\n this._debug(msg);\n }\n\n info(msg: string): void {\n this._info(msg);\n }\n\n warn(msg: string): void {\n this._warn(msg);\n }\n\n error(msg: string, err?: Error): void {\n const trace = err?.stack ?? 'N/A';\n\n this._error(`${msg} Trace: ${trace}`);\n }\n}\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AAGzB,eAAe,MAAMC,MAAM,CAAC;EAQxB,OAAOC,MAAMA,CAACC,EAAU,EAAQ;IAC5BH,KAAK,CAACE,MAAM,CAACC,EAAE,CAAC;EACpB;EAEAC,WAAWA,CAACC,MAAc,EAAE;IAAAC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IACxB,MAAMC,OAAO,GAAI,GAAEN,MAAM,CAACO,WAAY,IAAGH,MAAO,EAAC;IAEjD,IAAI,CAACI,MAAM,GAAGT,KAAK,CAAE,GAAEO,OAAQ,QAAO,CAAC;IACvC,IAAI,CAACG,KAAK,GAAGV,KAAK,CAAE,GAAEO,OAAQ,OAAM,CAAC;IACrC,IAAI,CAACI,KAAK,GAAGX,KAAK,CAAE,GAAEO,OAAQ,OAAM,CAAC;IACrC,IAAI,CAACK,MAAM,GAAGZ,KAAK,CAAE,GAAEO,OAAQ,QAAO,CAAC;IAEvC,MAAMM,GAAG,GAAGC,OAAO,CAACD,GAAG,CAACE,IAAI,CAACD,OAAO,CAAC;IAErC,IAAI,CAACL,MAAM,CAACI,GAAG,GAAGA,GAAG;IACrB,IAAI,CAACH,KAAK,CAACG,GAAG,GAAGA,GAAG;IACpB,IAAI,CAACF,KAAK,CAACE,GAAG,GAAGA,GAAG;IACpB,IAAI,CAACD,MAAM,CAACC,GAAG,GAAGA,GAAG;EACzB;EAEAb,KAAKA,CAACgB,GAAW,EAAQ;IACrB,IAAI,CAACP,MAAM,CAACO,GAAG,CAAC;EACpB;EAEAC,IAAIA,CAACD,GAAW,EAAQ;IACpB,IAAI,CAACN,KAAK,CAACM,GAAG,CAAC;EACnB;EAEAE,IAAIA,CAACF,GAAW,EAAQ;IACpB,IAAI,CAACL,KAAK,CAACK,GAAG,CAAC;EACnB;EAEAG,KAAKA,CAACH,GAAW,EAAEI,GAAW,EAAQ;IAAA,IAAAC,UAAA;IAClC,MAAMC,KAAK,IAAAD,UAAA,GAAGD,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEG,KAAK,cAAAF,UAAA,cAAAA,UAAA,GAAI,KAAK;IAEjC,IAAI,CAACT,MAAM,CAAE,GAAEI,GAAI,WAAUM,KAAM,EAAC,CAAC;EACzC;AACJ;AAAChB,eAAA,CA7CoBL,MAAM,iBACF,WAAW"}
@@ -0,0 +1,46 @@
1
+ import { EventTarget, defineEventAttribute } from 'event-target-shim/index';
2
+ import { NativeModules } from 'react-native';
3
+ import getDisplayMedia from './getDisplayMedia';
4
+ import getUserMedia from './getUserMedia';
5
+ const {
6
+ WebRTCModule
7
+ } = NativeModules;
8
+ class MediaDevices extends EventTarget {
9
+ /**
10
+ * W3C "Media Capture and Streams" compatible {@code enumerateDevices}
11
+ * implementation.
12
+ */
13
+ enumerateDevices() {
14
+ return new Promise(resolve => WebRTCModule.enumerateDevices(resolve));
15
+ }
16
+
17
+ /**
18
+ * W3C "Screen Capture" compatible {@code getDisplayMedia} implementation.
19
+ * See: https://w3c.github.io/mediacapture-screen-share/
20
+ *
21
+ * @returns {Promise}
22
+ */
23
+ getDisplayMedia() {
24
+ return getDisplayMedia();
25
+ }
26
+
27
+ /**
28
+ * W3C "Media Capture and Streams" compatible {@code getUserMedia}
29
+ * implementation.
30
+ * See: https://www.w3.org/TR/mediacapture-streams/#dom-mediadevices-enumeratedevices
31
+ *
32
+ * @param {*} constraints
33
+ * @returns {Promise}
34
+ */
35
+ getUserMedia(constraints) {
36
+ return getUserMedia(constraints);
37
+ }
38
+ }
39
+
40
+ /**
41
+ * Define the `onxxx` event handlers.
42
+ */
43
+ const proto = MediaDevices.prototype;
44
+ defineEventAttribute(proto, 'devicechange');
45
+ export default new MediaDevices();
46
+ //# sourceMappingURL=MediaDevices.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["EventTarget","defineEventAttribute","NativeModules","getDisplayMedia","getUserMedia","WebRTCModule","MediaDevices","enumerateDevices","Promise","resolve","constraints","proto","prototype"],"sources":["MediaDevices.ts"],"sourcesContent":["import { EventTarget, Event, defineEventAttribute } from 'event-target-shim/index';\nimport { NativeModules } from 'react-native';\n\nimport getDisplayMedia from './getDisplayMedia';\nimport getUserMedia, { Constraints } from './getUserMedia';\n\nconst { WebRTCModule } = NativeModules;\n\ntype MediaDevicesEventMap = {\n devicechange: Event<'devicechange'>\n}\n\nclass MediaDevices extends EventTarget<MediaDevicesEventMap> {\n /**\n * W3C \"Media Capture and Streams\" compatible {@code enumerateDevices}\n * implementation.\n */\n enumerateDevices() {\n return new Promise(resolve => WebRTCModule.enumerateDevices(resolve));\n }\n\n /**\n * W3C \"Screen Capture\" compatible {@code getDisplayMedia} implementation.\n * See: https://w3c.github.io/mediacapture-screen-share/\n *\n * @returns {Promise}\n */\n getDisplayMedia() {\n return getDisplayMedia();\n }\n\n /**\n * W3C \"Media Capture and Streams\" compatible {@code getUserMedia}\n * implementation.\n * See: https://www.w3.org/TR/mediacapture-streams/#dom-mediadevices-enumeratedevices\n *\n * @param {*} constraints\n * @returns {Promise}\n */\n getUserMedia(constraints: Constraints) {\n return getUserMedia(constraints);\n }\n}\n\n/**\n * Define the `onxxx` event handlers.\n */\nconst proto = MediaDevices.prototype;\n\ndefineEventAttribute(proto, 'devicechange');\n\n\nexport default new MediaDevices();\n"],"mappings":"AAAA,SAASA,WAAW,EAASC,oBAAoB,QAAQ,yBAAyB;AAClF,SAASC,aAAa,QAAQ,cAAc;AAE5C,OAAOC,eAAe,MAAM,mBAAmB;AAC/C,OAAOC,YAAY,MAAuB,gBAAgB;AAE1D,MAAM;EAAEC;AAAa,CAAC,GAAGH,aAAa;AAMtC,MAAMI,YAAY,SAASN,WAAW,CAAuB;EACzD;AACJ;AACA;AACA;EACIO,gBAAgBA,CAAA,EAAG;IACf,OAAO,IAAIC,OAAO,CAACC,OAAO,IAAIJ,YAAY,CAACE,gBAAgB,CAACE,OAAO,CAAC,CAAC;EACzE;;EAEA;AACJ;AACA;AACA;AACA;AACA;EACIN,eAAeA,CAAA,EAAG;IACd,OAAOA,eAAe,CAAC,CAAC;EAC5B;;EAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;EACIC,YAAYA,CAACM,WAAwB,EAAE;IACnC,OAAON,YAAY,CAACM,WAAW,CAAC;EACpC;AACJ;;AAEA;AACA;AACA;AACA,MAAMC,KAAK,GAAGL,YAAY,CAACM,SAAS;AAEpCX,oBAAoB,CAACU,KAAK,EAAE,cAAc,CAAC;AAG3C,eAAe,IAAIL,YAAY,CAAC,CAAC"}