@stream-io/video-react-native-sdk 1.29.4-beta.0 → 1.30.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 (276) hide show
  1. package/CHANGELOG.md +3162 -0
  2. package/android/src/main/AndroidManifest.xml +1 -8
  3. package/android/src/main/AndroidManifestNew.xml +0 -11
  4. package/android/src/main/java/com/streamvideo/reactnative/StreamVideoReactNativeModule.kt +5 -42
  5. package/android/src/main/java/com/streamvideo/reactnative/audio/utils/WebRtcAudioUtils.kt +6 -70
  6. package/android/src/main/java/com/streamvideo/reactnative/callmanager/StreamInCallManagerModule.kt +4 -6
  7. package/android/src/main/java/com/streamvideo/reactnative/util/CallAliveServiceChecker.kt +95 -0
  8. package/dist/commonjs/components/Call/CallContent/CallContent.js +13 -7
  9. package/dist/commonjs/components/Call/CallContent/CallContent.js.map +1 -1
  10. package/dist/commonjs/components/Call/CallContent/RTCViewPipIOS.js +50 -14
  11. package/dist/commonjs/components/Call/CallContent/RTCViewPipIOS.js.map +1 -1
  12. package/dist/commonjs/components/Call/CallContent/RTCViewPipNative.js +27 -0
  13. package/dist/commonjs/components/Call/CallContent/RTCViewPipNative.js.map +1 -1
  14. package/dist/commonjs/components/Call/CallLayout/CallParticipantsGrid.js +19 -10
  15. package/dist/commonjs/components/Call/CallLayout/CallParticipantsGrid.js.map +1 -1
  16. package/dist/commonjs/components/Call/CallLayout/CallParticipantsSpotlight.js +12 -9
  17. package/dist/commonjs/components/Call/CallLayout/CallParticipantsSpotlight.js.map +1 -1
  18. package/dist/commonjs/components/Call/CallParticipantsList/CallParticipantsList.js +19 -4
  19. package/dist/commonjs/components/Call/CallParticipantsList/CallParticipantsList.js.map +1 -1
  20. package/dist/commonjs/hooks/push/index.js +2 -0
  21. package/dist/commonjs/hooks/push/index.js.map +1 -1
  22. package/dist/commonjs/hooks/push/useIosCallkeepWithCallingStateEffect.js +160 -0
  23. package/dist/commonjs/hooks/push/useIosCallkeepWithCallingStateEffect.js.map +1 -0
  24. package/dist/commonjs/hooks/push/useIosVoipPushEventsSetupEffect.js +31 -18
  25. package/dist/commonjs/hooks/push/useIosVoipPushEventsSetupEffect.js.map +1 -1
  26. package/dist/commonjs/hooks/push/useProcessPushCallEffect.js +67 -0
  27. package/dist/commonjs/hooks/push/useProcessPushCallEffect.js.map +1 -0
  28. package/dist/commonjs/hooks/useAndroidKeepCallAliveEffect.js +97 -64
  29. package/dist/commonjs/hooks/useAndroidKeepCallAliveEffect.js.map +1 -1
  30. package/dist/commonjs/index.js +0 -1
  31. package/dist/commonjs/index.js.map +1 -1
  32. package/dist/commonjs/modules/call-manager/CallManager.js +0 -26
  33. package/dist/commonjs/modules/call-manager/CallManager.js.map +1 -1
  34. package/dist/commonjs/providers/StreamCall/index.js +6 -6
  35. package/dist/commonjs/providers/StreamCall/index.js.map +1 -1
  36. package/dist/commonjs/utils/StreamVideoRN/index.js +21 -33
  37. package/dist/commonjs/utils/StreamVideoRN/index.js.map +1 -1
  38. package/dist/commonjs/utils/hooks/index.js +0 -11
  39. package/dist/commonjs/utils/hooks/index.js.map +1 -1
  40. package/dist/commonjs/utils/internal/registerSDKGlobals.js +3 -52
  41. package/dist/commonjs/utils/internal/registerSDKGlobals.js.map +1 -1
  42. package/dist/commonjs/utils/push/android.js +202 -151
  43. package/dist/commonjs/utils/push/android.js.map +1 -1
  44. package/dist/commonjs/utils/push/internal/ios.js +34 -17
  45. package/dist/commonjs/utils/push/internal/ios.js.map +1 -1
  46. package/dist/commonjs/utils/push/internal/rxSubjects.js +45 -1
  47. package/dist/commonjs/utils/push/internal/rxSubjects.js.map +1 -1
  48. package/dist/commonjs/utils/push/internal/utils.js +20 -32
  49. package/dist/commonjs/utils/push/internal/utils.js.map +1 -1
  50. package/dist/commonjs/utils/push/ios.js.map +1 -1
  51. package/dist/commonjs/utils/push/libs/callkeep.js +17 -0
  52. package/dist/commonjs/utils/push/libs/callkeep.js.map +1 -0
  53. package/dist/commonjs/utils/push/libs/index.js +19 -8
  54. package/dist/commonjs/utils/push/libs/index.js.map +1 -1
  55. package/dist/commonjs/utils/push/libs/notifee/index.js +19 -0
  56. package/dist/commonjs/utils/push/libs/notifee/index.js.map +1 -1
  57. package/dist/commonjs/utils/push/libs/voipPushNotification.js +17 -0
  58. package/dist/commonjs/utils/push/libs/voipPushNotification.js.map +1 -0
  59. package/dist/commonjs/utils/push/setupIosCallKeepEvents.js +205 -0
  60. package/dist/commonjs/utils/push/setupIosCallKeepEvents.js.map +1 -0
  61. package/dist/commonjs/utils/push/setupIosVoipPushEvents.js +6 -7
  62. package/dist/commonjs/utils/push/setupIosVoipPushEvents.js.map +1 -1
  63. package/dist/commonjs/version.js +1 -1
  64. package/dist/commonjs/version.js.map +1 -1
  65. package/dist/module/components/Call/CallContent/CallContent.js +10 -4
  66. package/dist/module/components/Call/CallContent/CallContent.js.map +1 -1
  67. package/dist/module/components/Call/CallContent/RTCViewPipIOS.js +52 -16
  68. package/dist/module/components/Call/CallContent/RTCViewPipIOS.js.map +1 -1
  69. package/dist/module/components/Call/CallContent/RTCViewPipNative.js +27 -0
  70. package/dist/module/components/Call/CallContent/RTCViewPipNative.js.map +1 -1
  71. package/dist/module/components/Call/CallLayout/CallParticipantsGrid.js +19 -10
  72. package/dist/module/components/Call/CallLayout/CallParticipantsGrid.js.map +1 -1
  73. package/dist/module/components/Call/CallLayout/CallParticipantsSpotlight.js +15 -12
  74. package/dist/module/components/Call/CallLayout/CallParticipantsSpotlight.js.map +1 -1
  75. package/dist/module/components/Call/CallParticipantsList/CallParticipantsList.js +20 -5
  76. package/dist/module/components/Call/CallParticipantsList/CallParticipantsList.js.map +1 -1
  77. package/dist/module/hooks/push/index.js +2 -0
  78. package/dist/module/hooks/push/index.js.map +1 -1
  79. package/dist/module/hooks/push/useIosCallkeepWithCallingStateEffect.js +153 -0
  80. package/dist/module/hooks/push/useIosCallkeepWithCallingStateEffect.js.map +1 -0
  81. package/dist/module/hooks/push/useIosVoipPushEventsSetupEffect.js +31 -18
  82. package/dist/module/hooks/push/useIosVoipPushEventsSetupEffect.js.map +1 -1
  83. package/dist/module/hooks/push/useProcessPushCallEffect.js +60 -0
  84. package/dist/module/hooks/push/useProcessPushCallEffect.js.map +1 -0
  85. package/dist/module/hooks/useAndroidKeepCallAliveEffect.js +99 -66
  86. package/dist/module/hooks/useAndroidKeepCallAliveEffect.js.map +1 -1
  87. package/dist/module/index.js +0 -1
  88. package/dist/module/index.js.map +1 -1
  89. package/dist/module/modules/call-manager/CallManager.js +0 -26
  90. package/dist/module/modules/call-manager/CallManager.js.map +1 -1
  91. package/dist/module/providers/StreamCall/index.js +6 -6
  92. package/dist/module/providers/StreamCall/index.js.map +1 -1
  93. package/dist/module/utils/StreamVideoRN/index.js +21 -33
  94. package/dist/module/utils/StreamVideoRN/index.js.map +1 -1
  95. package/dist/module/utils/hooks/index.js +0 -1
  96. package/dist/module/utils/hooks/index.js.map +1 -1
  97. package/dist/module/utils/internal/registerSDKGlobals.js +3 -52
  98. package/dist/module/utils/internal/registerSDKGlobals.js.map +1 -1
  99. package/dist/module/utils/push/android.js +204 -153
  100. package/dist/module/utils/push/android.js.map +1 -1
  101. package/dist/module/utils/push/internal/ios.js +34 -17
  102. package/dist/module/utils/push/internal/ios.js.map +1 -1
  103. package/dist/module/utils/push/internal/rxSubjects.js +44 -0
  104. package/dist/module/utils/push/internal/rxSubjects.js.map +1 -1
  105. package/dist/module/utils/push/internal/utils.js +19 -29
  106. package/dist/module/utils/push/internal/utils.js.map +1 -1
  107. package/dist/module/utils/push/ios.js.map +1 -1
  108. package/dist/module/utils/push/libs/callkeep.js +11 -0
  109. package/dist/module/utils/push/libs/callkeep.js.map +1 -0
  110. package/dist/module/utils/push/libs/index.js +2 -1
  111. package/dist/module/utils/push/libs/index.js.map +1 -1
  112. package/dist/module/utils/push/libs/notifee/index.js +18 -0
  113. package/dist/module/utils/push/libs/notifee/index.js.map +1 -1
  114. package/dist/module/utils/push/libs/voipPushNotification.js +11 -0
  115. package/dist/module/utils/push/libs/voipPushNotification.js.map +1 -0
  116. package/dist/module/utils/push/setupIosCallKeepEvents.js +199 -0
  117. package/dist/module/utils/push/setupIosCallKeepEvents.js.map +1 -0
  118. package/dist/module/utils/push/setupIosVoipPushEvents.js +6 -7
  119. package/dist/module/utils/push/setupIosVoipPushEvents.js.map +1 -1
  120. package/dist/module/version.js +1 -1
  121. package/dist/module/version.js.map +1 -1
  122. package/dist/typescript/components/Call/CallContent/CallContent.d.ts.map +1 -1
  123. package/dist/typescript/components/Call/CallContent/RTCViewPipIOS.d.ts.map +1 -1
  124. package/dist/typescript/components/Call/CallContent/RTCViewPipNative.d.ts +18 -0
  125. package/dist/typescript/components/Call/CallContent/RTCViewPipNative.d.ts.map +1 -1
  126. package/dist/typescript/components/Call/CallLayout/CallParticipantsGrid.d.ts.map +1 -1
  127. package/dist/typescript/components/Call/CallLayout/CallParticipantsSpotlight.d.ts.map +1 -1
  128. package/dist/typescript/components/Call/CallParticipantsList/CallParticipantsList.d.ts.map +1 -1
  129. package/dist/typescript/hooks/push/index.d.ts.map +1 -1
  130. package/dist/typescript/hooks/push/useIosCallkeepWithCallingStateEffect.d.ts +5 -0
  131. package/dist/typescript/hooks/push/useIosCallkeepWithCallingStateEffect.d.ts.map +1 -0
  132. package/dist/typescript/hooks/push/useIosVoipPushEventsSetupEffect.d.ts.map +1 -1
  133. package/dist/typescript/hooks/push/useProcessPushCallEffect.d.ts +8 -0
  134. package/dist/typescript/hooks/push/useProcessPushCallEffect.d.ts.map +1 -0
  135. package/dist/typescript/hooks/useAndroidKeepCallAliveEffect.d.ts.map +1 -1
  136. package/dist/typescript/index.d.ts +0 -1
  137. package/dist/typescript/index.d.ts.map +1 -1
  138. package/dist/typescript/modules/call-manager/CallManager.d.ts +0 -5
  139. package/dist/typescript/modules/call-manager/CallManager.d.ts.map +1 -1
  140. package/dist/typescript/utils/StreamVideoRN/index.d.ts +2 -20
  141. package/dist/typescript/utils/StreamVideoRN/index.d.ts.map +1 -1
  142. package/dist/typescript/utils/StreamVideoRN/types.d.ts +29 -54
  143. package/dist/typescript/utils/StreamVideoRN/types.d.ts.map +1 -1
  144. package/dist/typescript/utils/hooks/index.d.ts +0 -1
  145. package/dist/typescript/utils/hooks/index.d.ts.map +1 -1
  146. package/dist/typescript/utils/internal/registerSDKGlobals.d.ts.map +1 -1
  147. package/dist/typescript/utils/push/android.d.ts +2 -1
  148. package/dist/typescript/utils/push/android.d.ts.map +1 -1
  149. package/dist/typescript/utils/push/internal/ios.d.ts.map +1 -1
  150. package/dist/typescript/utils/push/internal/rxSubjects.d.ts +33 -0
  151. package/dist/typescript/utils/push/internal/rxSubjects.d.ts.map +1 -1
  152. package/dist/typescript/utils/push/internal/utils.d.ts +1 -8
  153. package/dist/typescript/utils/push/internal/utils.d.ts.map +1 -1
  154. package/dist/typescript/utils/push/ios.d.ts +2 -1
  155. package/dist/typescript/utils/push/ios.d.ts.map +1 -1
  156. package/dist/typescript/utils/push/libs/callkeep.d.ts +3 -0
  157. package/dist/typescript/utils/push/libs/callkeep.d.ts.map +1 -0
  158. package/dist/typescript/utils/push/libs/index.d.ts +2 -1
  159. package/dist/typescript/utils/push/libs/index.d.ts.map +1 -1
  160. package/dist/typescript/utils/push/libs/notifee/index.d.ts +1 -0
  161. package/dist/typescript/utils/push/libs/notifee/index.d.ts.map +1 -1
  162. package/dist/typescript/utils/push/libs/voipPushNotification.d.ts +3 -0
  163. package/dist/typescript/utils/push/libs/voipPushNotification.d.ts.map +1 -0
  164. package/dist/typescript/utils/push/setupIosCallKeepEvents.d.ts +6 -0
  165. package/dist/typescript/utils/push/setupIosCallKeepEvents.d.ts.map +1 -0
  166. package/dist/typescript/utils/push/setupIosVoipPushEvents.d.ts.map +1 -1
  167. package/dist/typescript/version.d.ts +1 -1
  168. package/dist/typescript/version.d.ts.map +1 -1
  169. package/expo-config-plugin/dist/withAndroidManifest.js +33 -1
  170. package/expo-config-plugin/dist/withAndroidPermissions.js +7 -2
  171. package/expo-config-plugin/dist/withAppDelegate.js +197 -19
  172. package/expo-config-plugin/dist/withMainActivity.js +1 -1
  173. package/expo-config-plugin/dist/withiOSInfoPlist.js +3 -2
  174. package/ios/PictureInPicture/PictureInPictureAvatarView.swift +273 -0
  175. package/ios/PictureInPicture/PictureInPictureConnectionQualityIndicator.swift +162 -0
  176. package/ios/PictureInPicture/PictureInPictureContent.swift +173 -0
  177. package/ios/PictureInPicture/PictureInPictureContentState.swift +123 -0
  178. package/ios/PictureInPicture/PictureInPictureDelegateProxy.swift +89 -0
  179. package/ios/PictureInPicture/PictureInPictureEnforcedStopAdapter.swift +166 -0
  180. package/ios/PictureInPicture/PictureInPictureLogger.swift +16 -0
  181. package/ios/PictureInPicture/PictureInPictureParticipantOverlayView.swift +217 -0
  182. package/ios/PictureInPicture/PictureInPictureReconnectionView.swift +193 -0
  183. package/ios/PictureInPicture/StreamAVPictureInPictureVideoCallViewController.swift +125 -7
  184. package/ios/PictureInPicture/StreamPictureInPictureController.swift +237 -63
  185. package/ios/PictureInPicture/StreamPictureInPictureControllerProtocol.swift +30 -0
  186. package/ios/PictureInPicture/StreamPictureInPictureVideoRenderer.swift +384 -12
  187. package/ios/RTCViewPip.swift +187 -21
  188. package/ios/RTCViewPipManager.mm +9 -0
  189. package/ios/RTCViewPipManager.swift +3 -3
  190. package/ios/StreamInCallManager.m +0 -2
  191. package/ios/StreamInCallManager.swift +7 -19
  192. package/ios/StreamVideoReactNative.h +4 -7
  193. package/ios/StreamVideoReactNative.m +82 -189
  194. package/package.json +19 -14
  195. package/src/components/Call/CallContent/CallContent.tsx +16 -8
  196. package/src/components/Call/CallContent/RTCViewPipIOS.tsx +81 -15
  197. package/src/components/Call/CallContent/RTCViewPipNative.tsx +36 -0
  198. package/src/components/Call/CallLayout/CallParticipantsGrid.tsx +28 -14
  199. package/src/components/Call/CallLayout/CallParticipantsSpotlight.tsx +19 -10
  200. package/src/components/Call/CallParticipantsList/CallParticipantsList.tsx +20 -5
  201. package/src/hooks/push/index.ts +2 -0
  202. package/src/hooks/push/useIosCallkeepWithCallingStateEffect.ts +235 -0
  203. package/src/hooks/push/useIosVoipPushEventsSetupEffect.ts +34 -21
  204. package/src/hooks/push/useProcessPushCallEffect.ts +108 -0
  205. package/src/hooks/useAndroidKeepCallAliveEffect.ts +120 -94
  206. package/src/index.ts +0 -1
  207. package/src/modules/call-manager/CallManager.ts +0 -36
  208. package/src/modules/call-manager/native-module.d.ts +0 -7
  209. package/src/providers/StreamCall/index.tsx +6 -6
  210. package/src/utils/StreamVideoRN/index.ts +30 -40
  211. package/src/utils/StreamVideoRN/types.ts +29 -56
  212. package/src/utils/hooks/index.ts +0 -1
  213. package/src/utils/internal/registerSDKGlobals.ts +4 -47
  214. package/src/utils/push/android.ts +309 -227
  215. package/src/utils/push/internal/ios.ts +44 -28
  216. package/src/utils/push/internal/rxSubjects.ts +61 -0
  217. package/src/utils/push/internal/utils.ts +26 -45
  218. package/src/utils/push/ios.ts +6 -1
  219. package/src/utils/push/libs/callkeep.ts +16 -0
  220. package/src/utils/push/libs/index.ts +2 -1
  221. package/src/utils/push/libs/notifee/index.ts +27 -0
  222. package/src/utils/push/libs/voipPushNotification.ts +17 -0
  223. package/src/utils/push/setupIosCallKeepEvents.ts +252 -0
  224. package/src/utils/push/setupIosVoipPushEvents.ts +7 -11
  225. package/src/version.ts +1 -1
  226. package/android/src/main/java/com/streamvideo/reactnative/keepalive/KeepAliveNotification.kt +0 -83
  227. package/android/src/main/java/com/streamvideo/reactnative/keepalive/StreamCallKeepAliveHeadlessService.kt +0 -149
  228. package/dist/commonjs/hooks/push/useCallingExpWithCallingStateEffect.js +0 -121
  229. package/dist/commonjs/hooks/push/useCallingExpWithCallingStateEffect.js.map +0 -1
  230. package/dist/commonjs/utils/hooks/useDebouncedValue.js +0 -24
  231. package/dist/commonjs/utils/hooks/useDebouncedValue.js.map +0 -1
  232. package/dist/commonjs/utils/internal/callingx/audioSessionPromise.js +0 -58
  233. package/dist/commonjs/utils/internal/callingx/audioSessionPromise.js.map +0 -1
  234. package/dist/commonjs/utils/internal/callingx/callingx.js +0 -109
  235. package/dist/commonjs/utils/internal/callingx/callingx.js.map +0 -1
  236. package/dist/commonjs/utils/keepCallAliveHeadlessTask.js +0 -48
  237. package/dist/commonjs/utils/keepCallAliveHeadlessTask.js.map +0 -1
  238. package/dist/commonjs/utils/push/libs/callingx.js +0 -75
  239. package/dist/commonjs/utils/push/libs/callingx.js.map +0 -1
  240. package/dist/commonjs/utils/push/setupCallingExpEvents.js +0 -108
  241. package/dist/commonjs/utils/push/setupCallingExpEvents.js.map +0 -1
  242. package/dist/module/hooks/push/useCallingExpWithCallingStateEffect.js +0 -114
  243. package/dist/module/hooks/push/useCallingExpWithCallingStateEffect.js.map +0 -1
  244. package/dist/module/utils/hooks/useDebouncedValue.js +0 -19
  245. package/dist/module/utils/hooks/useDebouncedValue.js.map +0 -1
  246. package/dist/module/utils/internal/callingx/audioSessionPromise.js +0 -51
  247. package/dist/module/utils/internal/callingx/audioSessionPromise.js.map +0 -1
  248. package/dist/module/utils/internal/callingx/callingx.js +0 -100
  249. package/dist/module/utils/internal/callingx/callingx.js.map +0 -1
  250. package/dist/module/utils/keepCallAliveHeadlessTask.js +0 -42
  251. package/dist/module/utils/keepCallAliveHeadlessTask.js.map +0 -1
  252. package/dist/module/utils/push/libs/callingx.js +0 -67
  253. package/dist/module/utils/push/libs/callingx.js.map +0 -1
  254. package/dist/module/utils/push/setupCallingExpEvents.js +0 -102
  255. package/dist/module/utils/push/setupCallingExpEvents.js.map +0 -1
  256. package/dist/typescript/hooks/push/useCallingExpWithCallingStateEffect.d.ts +0 -5
  257. package/dist/typescript/hooks/push/useCallingExpWithCallingStateEffect.d.ts.map +0 -1
  258. package/dist/typescript/utils/hooks/useDebouncedValue.d.ts +0 -8
  259. package/dist/typescript/utils/hooks/useDebouncedValue.d.ts.map +0 -1
  260. package/dist/typescript/utils/internal/callingx/audioSessionPromise.d.ts +0 -16
  261. package/dist/typescript/utils/internal/callingx/audioSessionPromise.d.ts.map +0 -1
  262. package/dist/typescript/utils/internal/callingx/callingx.d.ts +0 -14
  263. package/dist/typescript/utils/internal/callingx/callingx.d.ts.map +0 -1
  264. package/dist/typescript/utils/keepCallAliveHeadlessTask.d.ts +0 -10
  265. package/dist/typescript/utils/keepCallAliveHeadlessTask.d.ts.map +0 -1
  266. package/dist/typescript/utils/push/libs/callingx.d.ts +0 -9
  267. package/dist/typescript/utils/push/libs/callingx.d.ts.map +0 -1
  268. package/dist/typescript/utils/push/setupCallingExpEvents.d.ts +0 -8
  269. package/dist/typescript/utils/push/setupCallingExpEvents.d.ts.map +0 -1
  270. package/src/hooks/push/useCallingExpWithCallingStateEffect.ts +0 -147
  271. package/src/utils/hooks/useDebouncedValue.ts +0 -21
  272. package/src/utils/internal/callingx/audioSessionPromise.ts +0 -53
  273. package/src/utils/internal/callingx/callingx.ts +0 -146
  274. package/src/utils/keepCallAliveHeadlessTask.ts +0 -54
  275. package/src/utils/push/libs/callingx.ts +0 -90
  276. package/src/utils/push/setupCallingExpEvents.ts +0 -130
@@ -1 +0,0 @@
1
- {"version":3,"names":["_reactNative","require","_videoClient","_StreamVideoRN","KEEP_CALL_ALIVE_HEADLESS_TASK_NAME","exports","keepCallAliveCallRef","current","undefined","registerKeepCallAliveHeadlessTaskOnce","Platform","OS","AppRegistry","registerHeadlessTask","data","logger","videoLoggerSystem","getLogger","callCid","call","warn","cid","activeCallCid","config","StreamVideoRN","getConfig","taskToRun","foregroundService","android","e","error"],"sourceRoot":"../../../src","sources":["utils/keepCallAliveHeadlessTask.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AAEO,MAAMG,kCAAkC,GAAAC,OAAA,CAAAD,kCAAA,GAAG,0BAA0B;;AAE5E;AACA;AACA;AACA;AACO,MAAME,oBAAmD,GAAAD,OAAA,CAAAC,oBAAA,GAAG;EACjEC,OAAO,EAAEC;AACX,CAAC;AAED,SAASC,qCAAqCA,CAAA,EAAG;EAC/C,IAAIC,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;EAE/BC,wBAAW,CAACC,oBAAoB,CAC9BT,kCAAkC,EAClC,MAAM,MAAOU,IAAsC,IAAK;IACtD,MAAMC,MAAM,GAAGC,8BAAiB,CAACC,SAAS,CACxC,+BACF,CAAC;IACD,MAAMC,OAAO,GAAGJ,IAAI,EAAEI,OAAO;IAE7B,MAAMC,IAAI,GAAGb,oBAAoB,CAACC,OAAO;IACzC,IAAI,CAACY,IAAI,EAAE;MACTJ,MAAM,CAACK,IAAI,CACT,kEAAkE,EAClE;QAAEF;MAAQ,CACZ,CAAC;MACD;IACF;IACA,IAAIA,OAAO,IAAIC,IAAI,CAACE,GAAG,IAAIF,IAAI,CAACE,GAAG,KAAKH,OAAO,EAAE;MAC/CH,MAAM,CAACK,IAAI,CACT,+DAA+D,EAC/D;QAAEF,OAAO;QAAEI,aAAa,EAAEH,IAAI,CAACE;MAAI,CACrC,CAAC;MACD;IACF;IAEA,MAAME,MAAM,GAAGC,4BAAa,CAACC,SAAS,CAAC,CAAC;IACxC,MAAMC,SAAS,GAAGH,MAAM,CAACI,iBAAiB,CAACC,OAAO,CAACF,SAAS;IAC5D,IAAI;MACF,MAAMA,SAAS,CAACP,IAAI,CAAC;IACvB,CAAC,CAAC,OAAOU,CAAC,EAAE;MACVd,MAAM,CAACe,KAAK,CAAC,iCAAiC,EAAED,CAAC,CAAC;IACpD;EACF,CACF,CAAC;AACH;AAEApB,qCAAqC,CAAC,CAAC","ignoreList":[]}
@@ -1,75 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.extractCallingExpOptions = extractCallingExpOptions;
7
- exports.getCallingxLib = getCallingxLib;
8
- exports.getCallingxLibIfAvailable = getCallingxLibIfAvailable;
9
- let callingx;
10
- try {
11
- callingx = require('@stream-io/react-native-callingx').CallingxModule;
12
- } catch {}
13
- function getCallingxLib() {
14
- if (!callingx) {
15
- throw Error('react-native-callingx library is not installed.');
16
- }
17
- return callingx;
18
- }
19
- function getCallingxLibIfAvailable() {
20
- return callingx ?? undefined;
21
- }
22
- function extractCallingExpOptions(config) {
23
- const {
24
- push: pushConfig,
25
- foregroundService: foregroundServiceConfig
26
- } = config;
27
- const callingExpOptions = {};
28
- if (pushConfig?.ios) {
29
- const iosOptions = {};
30
- if (pushConfig.ios.supportsVideo !== undefined) {
31
- iosOptions.supportsVideo = pushConfig.ios.supportsVideo;
32
- }
33
- if (pushConfig.ios.sound !== undefined) {
34
- iosOptions.sound = pushConfig.ios.sound;
35
- }
36
- if (pushConfig.ios.imageName !== undefined) {
37
- iosOptions.imageName = pushConfig.ios.imageName;
38
- }
39
- if (pushConfig.ios.callsHistory !== undefined) {
40
- iosOptions.callsHistory = pushConfig.ios.callsHistory;
41
- }
42
- if (pushConfig.ios.displayCallTimeout !== undefined) {
43
- iosOptions.displayCallTimeout = pushConfig.ios.displayCallTimeout;
44
- }
45
- if (Object.keys(iosOptions).length > 0) {
46
- callingExpOptions.ios = iosOptions;
47
- }
48
- }
49
- const androidOptions = {};
50
- if (pushConfig?.android) {
51
- if (pushConfig.android.incomingChannel) {
52
- androidOptions.incomingChannel = pushConfig.android.incomingChannel;
53
- }
54
- if (pushConfig.android.titleTransformer) {
55
- androidOptions.titleTransformer = pushConfig.android.titleTransformer;
56
- }
57
- if (pushConfig.android.subtitleTransformer) {
58
- androidOptions.subtitleTransformer = pushConfig.android.subtitleTransformer;
59
- }
60
- }
61
- if (foregroundServiceConfig.android.channel) {
62
- androidOptions.ongoingChannel = foregroundServiceConfig.android.channel;
63
- }
64
- if (Object.keys(androidOptions).length > 0) {
65
- callingExpOptions.android = androidOptions;
66
- }
67
- if (pushConfig?.shouldRejectCallWhenBusy !== undefined) {
68
- callingExpOptions.shouldRejectCallWhenBusy = pushConfig.shouldRejectCallWhenBusy;
69
- }
70
- if (pushConfig?.enableOngoingCalls !== undefined) {
71
- callingExpOptions.enableOngoingCalls = pushConfig?.enableOngoingCalls;
72
- }
73
- return callingExpOptions;
74
- }
75
- //# sourceMappingURL=callingx.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["callingx","require","CallingxModule","getCallingxLib","Error","getCallingxLibIfAvailable","undefined","extractCallingExpOptions","config","push","pushConfig","foregroundService","foregroundServiceConfig","callingExpOptions","ios","iosOptions","supportsVideo","sound","imageName","callsHistory","displayCallTimeout","Object","keys","length","androidOptions","android","incomingChannel","titleTransformer","subtitleTransformer","channel","ongoingChannel","shouldRejectCallWhenBusy","enableOngoingCalls"],"sourceRoot":"../../../../../src","sources":["utils/push/libs/callingx.ts"],"mappings":"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","ignoreList":[]}
@@ -1,108 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.setupCallingExpEvents = setupCallingExpEvents;
7
- var _videoClient = require("@stream-io/video-client");
8
- var _utils = require("./internal/utils");
9
- var _pushLogoutCallback = require("../internal/pushLogoutCallback");
10
- var _audioSessionPromise = require("../internal/callingx/audioSessionPromise");
11
- var _callingx = require("./libs/callingx");
12
- var _reactNative = require("react-native");
13
- const logger = _videoClient.videoLoggerSystem.getLogger('callingx');
14
-
15
- /**
16
- * Sets up callingx event listeners for handling call actions from the native calling UI.
17
- */
18
- function setupCallingExpEvents(pushConfig) {
19
- const hasPushProvider = _reactNative.Platform.OS === 'android' && pushConfig.android?.pushProviderName || _reactNative.Platform.OS === 'ios' && pushConfig.ios?.pushProviderName;
20
- if (!hasPushProvider) {
21
- return;
22
- }
23
- const callingx = (0, _callingx.getCallingxLib)();
24
- const {
25
- remove: removeAnswerCall
26
- } = callingx.addEventListener('answerCall', params => {
27
- onAcceptCall(pushConfig)(params).catch(err => {
28
- logger.error('Failed to process answerCall event', err);
29
- });
30
- });
31
- const {
32
- remove: removeEndCall
33
- } = callingx.addEventListener('endCall', params => {
34
- onEndCall(pushConfig)(params).catch(err => {
35
- logger.error('Failed to process endCall event', err);
36
- });
37
- });
38
- const {
39
- remove: removeDidActivateAudioSession
40
- } = callingx.addEventListener('didActivateAudioSession', onDidActivateAudioSession);
41
- const {
42
- remove: removeDidDeactivateAudioSession
43
- } = callingx.addEventListener('didDeactivateAudioSession', onDidDeactivateAudioSession);
44
-
45
- //NOTE: until getInitialEvents invocation, events are delayed and won't be sent to event listeners, this is a way to make sure none of required events are missed
46
- //in most cases there will be no delayed answers or ends, but it we don't want to miss any of them
47
- const events = callingx.getInitialEvents();
48
- events.forEach(event => {
49
- const {
50
- eventName,
51
- params
52
- } = event;
53
- if (eventName === 'answerCall') {
54
- logger.debug(`answerCall delayed event callId: ${params?.callId}`);
55
- onAcceptCall(pushConfig)(params).catch(err => {
56
- logger.error('Failed to process delayed answerCall event', err);
57
- });
58
- } else if (eventName === 'endCall') {
59
- logger.debug(`endCall delayed event callId: ${params?.callId}`);
60
- onEndCall(pushConfig)(params).catch(err => {
61
- logger.error('Failed to process delayed endCall event', err);
62
- });
63
- } else if (eventName === 'didActivateAudioSession') {
64
- onDidActivateAudioSession();
65
- } else if (eventName === 'didDeactivateAudioSession') {
66
- onDidDeactivateAudioSession();
67
- }
68
- });
69
- (0, _pushLogoutCallback.setPushLogoutCallback)(async () => {
70
- removeAnswerCall();
71
- removeEndCall();
72
- removeDidActivateAudioSession();
73
- removeDidDeactivateAudioSession();
74
- });
75
- }
76
- const onDidActivateAudioSession = () => {
77
- logger.debug('callingExpDidActivateAudioSession');
78
- (0, _audioSessionPromise.resolvePendingAudioSession)();
79
- };
80
- const onDidDeactivateAudioSession = () => {
81
- logger.debug('callingExpDidDeactivateAudioSession');
82
- };
83
- const onAcceptCall = pushConfig => async ({
84
- callId: call_cid,
85
- source
86
- }) => {
87
- logger.debug(`onAcceptCall event callId: ${call_cid} source: ${source}`);
88
- if (source === 'app' || !call_cid) {
89
- //we only need to process the call if the call was answered from the system
90
- return;
91
- }
92
- (0, _utils.clearPushWSEventSubscriptions)(call_cid);
93
- // to process the call in the app
94
- await (0, _utils.processCallFromPushInBackground)(pushConfig, call_cid, 'accept');
95
- };
96
- const onEndCall = pushConfig => async ({
97
- callId: call_cid,
98
- source
99
- }) => {
100
- logger.debug(`onEndCall event callId: ${call_cid} source: ${source}`);
101
- if (source === 'app' || !call_cid) {
102
- //we only need to process the call if the call was rejected from the system
103
- return;
104
- }
105
- (0, _utils.clearPushWSEventSubscriptions)(call_cid);
106
- await (0, _utils.processCallFromPushInBackground)(pushConfig, call_cid, 'decline');
107
- };
108
- //# sourceMappingURL=setupCallingExpEvents.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_videoClient","require","_utils","_pushLogoutCallback","_audioSessionPromise","_callingx","_reactNative","logger","videoLoggerSystem","getLogger","setupCallingExpEvents","pushConfig","hasPushProvider","Platform","OS","android","pushProviderName","ios","callingx","getCallingxLib","remove","removeAnswerCall","addEventListener","params","onAcceptCall","catch","err","error","removeEndCall","onEndCall","removeDidActivateAudioSession","onDidActivateAudioSession","removeDidDeactivateAudioSession","onDidDeactivateAudioSession","events","getInitialEvents","forEach","event","eventName","debug","callId","setPushLogoutCallback","resolvePendingAudioSession","call_cid","source","clearPushWSEventSubscriptions","processCallFromPushInBackground"],"sourceRoot":"../../../../src","sources":["utils/push/setupCallingExpEvents.ts"],"mappings":"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","ignoreList":[]}
@@ -1,114 +0,0 @@
1
- import { videoLoggerSystem } from '@stream-io/video-client';
2
- import { useCall, useCallStateHooks } from '@stream-io/video-react-bindings';
3
- import { useEffect, useMemo } from 'react';
4
- import { getCallDisplayName } from '../../utils/internal/callingx/callingx';
5
- import { getCallingxLibIfAvailable } from '../../utils/push/libs/callingx';
6
- const logger = videoLoggerSystem.getLogger('callingx');
7
-
8
- /**
9
- * This hook is used to inform sync call state with CallKit/Telecom (i.e. start call, end call, mute/unmute call).
10
- */
11
- export const useCallingExpWithCallingStateEffect = () => {
12
- const {
13
- useMicrophoneState,
14
- useParticipants,
15
- useCallMembers
16
- } = useCallStateHooks();
17
- const activeCall = useCall();
18
- const {
19
- isMute,
20
- microphone
21
- } = useMicrophoneState();
22
- const callMembers = useCallMembers();
23
- const participants = useParticipants();
24
- const activeCallCid = activeCall?.cid;
25
- const currentUserId = activeCall?.currentUserId;
26
- const callDisplayName = useMemo(() => getCallDisplayName(callMembers, participants, currentUserId), [callMembers, participants, currentUserId]);
27
- useEffect(() => {
28
- return () => {
29
- const callingx = getCallingxLibIfAvailable();
30
- if (!callingx?.isSetup || !activeCallCid) {
31
- return;
32
- }
33
- const isCallTracked = callingx.isCallTracked(activeCallCid);
34
- if (!isCallTracked) {
35
- logger.debug(`useCallingExpWithCallingStateEffect:No active call cid to end in calling exp: ${activeCallCid} isCallTracked: ${isCallTracked}`);
36
- return;
37
- }
38
- //if incoming stream call was unmounted, we need to end the call in CallKit/Telecom
39
- logger.debug(`useCallingExpWithCallingStateEffect: Ending call in callingx: ${activeCallCid}`);
40
- callingx.endCallWithReason(activeCallCid, 'local').catch(error => {
41
- logger.error(`useCallingExpWithCallingStateEffect: Error ending call in callingx: ${activeCallCid}`, error);
42
- });
43
- };
44
- }, [activeCallCid]);
45
- useEffect(() => {
46
- const callingx = getCallingxLibIfAvailable();
47
- if (!callingx?.isSetup || !activeCallCid) {
48
- return;
49
- }
50
- const isCallTracked = callingx.isCallTracked(activeCallCid);
51
- if (!isCallTracked) {
52
- logger.debug(`useCallingExpWithCallingStateEffect:No active call cid to update callingx: ${activeCallCid} isCallTracked: ${isCallTracked}`);
53
- return;
54
- }
55
- callingx.updateDisplay(activeCallCid, activeCallCid, callDisplayName);
56
- }, [activeCallCid, callDisplayName]);
57
-
58
- // Sync microphone mute state from app → CallKit
59
- useEffect(() => {
60
- const callingx = getCallingxLibIfAvailable();
61
- if (!callingx?.isSetup || !activeCallCid) {
62
- return;
63
- }
64
- const isCallTracked = callingx.isCallTracked(activeCallCid);
65
- if (!isCallTracked) {
66
- logger.debug(`useCallingExpWithCallingStateEffect: No active call cid to set muted in calling exp: ${activeCallCid} isCallTracked: ${isCallTracked}`);
67
- return;
68
- }
69
- callingx.setMutedCall(activeCallCid, isMute);
70
- }, [activeCallCid, isMute]);
71
-
72
- // Sync mute state from CallKit → app (only for system-initiated mute actions)
73
- useEffect(() => {
74
- const callingx = getCallingxLibIfAvailable();
75
- if (!callingx?.isSetup || !activeCallCid) {
76
- logger.debug(`useCallingExpWithCallingStateEffect: No active call cid to set muted in calling exp: ${activeCallCid} callingx isSetup: ${callingx?.isSetup}`);
77
- return;
78
- }
79
-
80
- // Listen to mic toggle events from CallKit/Telecom and update stream call microphone state.
81
- // Only system-initiated mute actions (e.g. user tapped mute on the native CallKit UI)
82
- // are sent here — app-initiated actions are filtered out on the native side to prevent
83
- // the feedback loop: app mutes mic → setMutedCall → CallKit delegate → event to JS → loop.
84
- const subscription = callingx.addEventListener('didPerformSetMutedCallAction', async event => {
85
- const {
86
- callId,
87
- muted
88
- } = event;
89
- const isCallTracked = callingx.isCallTracked(activeCallCid);
90
- if (!isCallTracked || callId !== activeCallCid) {
91
- logger.debug(`useCallingExpWithCallingStateEffect: No active call cid to set muted in calling exp: ${activeCallCid} isCallTracked: ${isCallTracked} callId: ${callId}`);
92
- return;
93
- }
94
- const isCurrentlyMuted = microphone.state.status === 'disabled';
95
- if (isCurrentlyMuted === muted) {
96
- logger.debug(`useCallingExpWithCallingStateEffect: Mic toggle is already in the desired state: ${muted} for call: ${activeCallCid}`);
97
- return;
98
- }
99
- try {
100
- if (muted) {
101
- await microphone.disable();
102
- } else {
103
- await microphone.enable();
104
- }
105
- } catch (error) {
106
- logger.error(`useCallingExpWithCallingStateEffect: Error toggling mic in calling exp: ${activeCallCid}`, error);
107
- }
108
- });
109
- return () => {
110
- subscription.remove();
111
- };
112
- }, [activeCallCid, microphone]);
113
- };
114
- //# sourceMappingURL=useCallingExpWithCallingStateEffect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["videoLoggerSystem","useCall","useCallStateHooks","useEffect","useMemo","getCallDisplayName","getCallingxLibIfAvailable","logger","getLogger","useCallingExpWithCallingStateEffect","useMicrophoneState","useParticipants","useCallMembers","activeCall","isMute","microphone","callMembers","participants","activeCallCid","cid","currentUserId","callDisplayName","callingx","isSetup","isCallTracked","debug","endCallWithReason","catch","error","updateDisplay","setMutedCall","subscription","addEventListener","event","callId","muted","isCurrentlyMuted","state","status","disable","enable","remove"],"sourceRoot":"../../../../src","sources":["hooks/push/useCallingExpWithCallingStateEffect.ts"],"mappings":"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","ignoreList":[]}
@@ -1,19 +0,0 @@
1
- import { useEffect, useState } from 'react';
2
-
3
- /**
4
- * this is a custom hook that takes a value and a delay and returns a debounced value
5
- * @param {T} value
6
- * @param {number} delay
7
- * @returns {T}
8
- */
9
- export function useDebouncedValue(value, delay) {
10
- const [debouncedValue, setDebouncedValue] = useState(value);
11
- useEffect(() => {
12
- const timer = setTimeout(() => setDebouncedValue(value), delay);
13
- return () => {
14
- clearTimeout(timer);
15
- };
16
- }, [value, delay]);
17
- return debouncedValue;
18
- }
19
- //# sourceMappingURL=useDebouncedValue.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useEffect","useState","useDebouncedValue","value","delay","debouncedValue","setDebouncedValue","timer","setTimeout","clearTimeout"],"sourceRoot":"../../../../src","sources":["utils/hooks/useDebouncedValue.ts"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAAIC,KAAQ,EAAEC,KAAa,EAAK;EAC/D,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAGL,QAAQ,CAAIE,KAAK,CAAC;EAE9DH,SAAS,CAAC,MAAM;IACd,MAAMO,KAAK,GAAGC,UAAU,CAAC,MAAMF,iBAAiB,CAACH,KAAK,CAAC,EAAEC,KAAK,CAAC;IAE/D,OAAO,MAAM;MACXK,YAAY,CAACF,KAAK,CAAC;IACrB,CAAC;EACH,CAAC,EAAE,CAACJ,KAAK,EAAEC,KAAK,CAAC,CAAC;EAElB,OAAOC,cAAc;AACvB","ignoreList":[]}
@@ -1,51 +0,0 @@
1
- /**
2
- * Module to manage pending promise for audio session activation.
3
- * Used to wait for iOS CallKit's didActivateAudioSession event after starting a call.
4
- */
5
-
6
- let pendingResolve = null;
7
- let pendingTimeout = null;
8
- /**
9
- * Flag to check if the audio session is already activated.
10
- * This solves race condition for a cold start case, when the audio session is activated before the promise is created.
11
- */
12
- let isAudioSessionAlreadyActivated = false;
13
- const AUDIO_SESSION_TIMEOUT_MS = 5000;
14
-
15
- /**
16
- * Creates a promise that resolves when the audio session is activated,
17
- * or after a timeout to prevent hanging indefinitely.
18
- * @returns Promise that resolves when audio session is activated or timeout occurs
19
- */
20
- export function waitForAudioSessionActivation() {
21
- if (isAudioSessionAlreadyActivated) {
22
- isAudioSessionAlreadyActivated = false;
23
- return Promise.resolve();
24
- }
25
- return new Promise(resolve => {
26
- pendingResolve = resolve;
27
- pendingTimeout = setTimeout(() => {
28
- // Resolve on timeout to prevent hanging
29
- resolvePendingAudioSession();
30
- }, AUDIO_SESSION_TIMEOUT_MS);
31
- });
32
- }
33
-
34
- /**
35
- * Resolves the pending audio session activation promise.
36
- * Called when the didActivateAudioSession event fires or on timeout.
37
- */
38
- export function resolvePendingAudioSession() {
39
- if (pendingTimeout) {
40
- clearTimeout(pendingTimeout);
41
- pendingTimeout = null;
42
- }
43
- if (pendingResolve) {
44
- pendingResolve();
45
- pendingResolve = null;
46
- isAudioSessionAlreadyActivated = false;
47
- } else {
48
- isAudioSessionAlreadyActivated = true;
49
- }
50
- }
51
- //# sourceMappingURL=audioSessionPromise.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["pendingResolve","pendingTimeout","isAudioSessionAlreadyActivated","AUDIO_SESSION_TIMEOUT_MS","waitForAudioSessionActivation","Promise","resolve","setTimeout","resolvePendingAudioSession","clearTimeout"],"sourceRoot":"../../../../../src","sources":["utils/internal/callingx/audioSessionPromise.ts"],"mappings":"AAAA;AACA;AACA;AACA;;AAEA,IAAIA,cAAmC,GAAG,IAAI;AAC9C,IAAIC,cAAoD,GAAG,IAAI;AAC/D;AACA;AACA;AACA;AACA,IAAIC,8BAA8B,GAAG,KAAK;AAE1C,MAAMC,wBAAwB,GAAG,IAAI;;AAErC;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,6BAA6BA,CAAA,EAAkB;EAC7D,IAAIF,8BAA8B,EAAE;IAClCA,8BAA8B,GAAG,KAAK;IACtC,OAAOG,OAAO,CAACC,OAAO,CAAC,CAAC;EAC1B;EAEA,OAAO,IAAID,OAAO,CAAEC,OAAO,IAAK;IAC9BN,cAAc,GAAGM,OAAO;IACxBL,cAAc,GAAGM,UAAU,CAAC,MAAM;MAChC;MACAC,0BAA0B,CAAC,CAAC;IAC9B,CAAC,EAAEL,wBAAwB,CAAC;EAC9B,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASK,0BAA0BA,CAAA,EAAS;EACjD,IAAIP,cAAc,EAAE;IAClBQ,YAAY,CAACR,cAAc,CAAC;IAC5BA,cAAc,GAAG,IAAI;EACvB;EAEA,IAAID,cAAc,EAAE;IAClBA,cAAc,CAAC,CAAC;IAChBA,cAAc,GAAG,IAAI;IACrBE,8BAA8B,GAAG,KAAK;EACxC,CAAC,MAAM;IACLA,8BAA8B,GAAG,IAAI;EACvC;AACF","ignoreList":[]}
@@ -1,100 +0,0 @@
1
- /***
2
- * Internal utils for callingx library usage from video-client.
3
- * See @./registerSDKGlobals.ts for more usage details.
4
- */
5
- import { Platform } from 'react-native';
6
- import { getCallingxLibIfAvailable } from '../../push/libs/callingx';
7
- import { waitForAudioSessionActivation } from './audioSessionPromise';
8
- import { videoLoggerSystem } from '@stream-io/video-client';
9
- const CallingxModule = getCallingxLibIfAvailable();
10
-
11
- /**
12
- * Gets the call display name. To be used for display in native call screen.
13
- */
14
- export function getCallDisplayName(callMembers, participants, currentUserId) {
15
- if (!callMembers || !participants || !currentUserId) {
16
- return 'Call';
17
- }
18
- let names = [];
19
- if (callMembers.length > 0) {
20
- // for ringing calls, members array contains all call members from the very early state and participants array is empty in the beginning
21
- names = callMembers.filter(member => member.user.id !== currentUserId).map(member => member.user.name).filter(name => name !== undefined);
22
- } else if (participants.length > 0) {
23
- // for non-ringing calls, members array is empty and we rely on participants array there
24
- names = participants.filter(participant => participant.userId !== currentUserId).map(participant => participant.name).filter(Boolean);
25
- }
26
-
27
- // if no names are found, we use the name of the current user
28
- if (names.length === 0) {
29
- names = [participants.find(participant => participant.userId === currentUserId)?.name ?? 'Call'];
30
- }
31
- return names.sort().join(', ');
32
- }
33
-
34
- /**
35
- * Starts the call in the callingx library.
36
- * Must be called for all outgoing calls
37
- * and optionally for non-ringing calls when ongoing calls are enabled.
38
- */
39
- export async function startCallingxCall(call) {
40
- if (!CallingxModule || !CallingxModule.isSetup) {
41
- return;
42
- }
43
- const logger = videoLoggerSystem.getLogger('callingx');
44
- const isOutcomingCall = call.ringing && call.isCreatedByMe;
45
- const isIncomingCall = call.ringing && !call.isCreatedByMe;
46
- const callDisplayName = getCallDisplayName(call.state.members, call.state.participants, call.currentUserId);
47
- if (!CallingxModule.isCallTracked(call.cid) && (isOutcomingCall || !call.ringing && CallingxModule.isOngoingCallsEnabled)) {
48
- try {
49
- await CallingxModule.startCall(call.cid,
50
- // unique id for call
51
- call.id,
52
- // phone number for display in dialer (we use call id as phone number)
53
- callDisplayName,
54
- // display name for display in call screen
55
- call.state.settings?.video?.enabled ?? false // is video call?
56
- );
57
-
58
- // Wait for audio session activation on iOS only
59
- if (Platform.OS === 'ios') {
60
- await waitForAudioSessionActivation();
61
- }
62
-
63
- // TODO: this must be done after join call is complete
64
- CallingxModule.setCurrentCallActive(call.cid);
65
- } catch (error) {
66
- logger.error(`startCallingxCall: Error starting call in callingx: ${call.cid}`, error);
67
- }
68
- } else if (isIncomingCall) {
69
- try {
70
- // Awaits native CallKit/Telecom registration before answering.
71
- // Safe to call even if the call is already registered (e.g. from VoIP push) --
72
- // iOS early-returns with no error, Android sends the registered broadcast.
73
- await CallingxModule.displayIncomingCall(call.cid,
74
- // unique id for call
75
- call.id,
76
- // phone number for display in dialer (we use call id as phone number)
77
- callDisplayName,
78
- // display name for display in call screen
79
- call.state.settings?.video?.enabled ?? false // is video call?
80
- );
81
- await CallingxModule.answerIncomingCall(call.cid);
82
- if (Platform.OS === 'ios') {
83
- await waitForAudioSessionActivation();
84
- }
85
- } catch (error) {
86
- logger.error(`Error displaying incoming call in callingx: ${call.cid}`, error);
87
- }
88
- }
89
- }
90
- export async function endCallingxCall(call, reason) {
91
- if (!CallingxModule || !CallingxModule.isSetup || !CallingxModule.isCallTracked(call.cid)) {
92
- return;
93
- }
94
- try {
95
- await CallingxModule.endCallWithReason(call.cid, reason ?? 'local');
96
- } catch (error) {
97
- videoLoggerSystem.getLogger('callingx').error(`endCallingxCall: Error ending call in callingx: ${call.cid}`, error);
98
- }
99
- }
100
- //# sourceMappingURL=callingx.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["Platform","getCallingxLibIfAvailable","waitForAudioSessionActivation","videoLoggerSystem","CallingxModule","getCallDisplayName","callMembers","participants","currentUserId","names","length","filter","member","user","id","map","name","undefined","participant","userId","Boolean","find","sort","join","startCallingxCall","call","isSetup","logger","getLogger","isOutcomingCall","ringing","isCreatedByMe","isIncomingCall","callDisplayName","state","members","isCallTracked","cid","isOngoingCallsEnabled","startCall","settings","video","enabled","OS","setCurrentCallActive","error","displayIncomingCall","answerIncomingCall","endCallingxCall","reason","endCallWithReason"],"sourceRoot":"../../../../../src","sources":["utils/internal/callingx/callingx.ts"],"mappings":"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","ignoreList":[]}
@@ -1,42 +0,0 @@
1
- import { AppRegistry, Platform } from 'react-native';
2
- import { videoLoggerSystem } from '@stream-io/video-client';
3
- import { StreamVideoRN } from './StreamVideoRN';
4
- export const KEEP_CALL_ALIVE_HEADLESS_TASK_NAME = 'StreamVideoKeepCallAlive';
5
-
6
- /**
7
- * The keep-alive headless task needs access to the active `Call` instance.
8
- * The keep-alive hook will set this reference before starting the native service.
9
- */
10
- export const keepCallAliveCallRef = {
11
- current: undefined
12
- };
13
- function registerKeepCallAliveHeadlessTaskOnce() {
14
- if (Platform.OS !== 'android') return;
15
- AppRegistry.registerHeadlessTask(KEEP_CALL_ALIVE_HEADLESS_TASK_NAME, () => async data => {
16
- const logger = videoLoggerSystem.getLogger('KEEP_CALL_ALIVE_HEADLESS_TASK');
17
- const callCid = data?.callCid;
18
- const call = keepCallAliveCallRef.current;
19
- if (!call) {
20
- logger.warn('No active call instance available for keep-alive task; skipping.', {
21
- callCid
22
- });
23
- return;
24
- }
25
- if (callCid && call.cid && call.cid !== callCid) {
26
- logger.warn('Keep-alive task callCid does not match active call; skipping.', {
27
- callCid,
28
- activeCallCid: call.cid
29
- });
30
- return;
31
- }
32
- const config = StreamVideoRN.getConfig();
33
- const taskToRun = config.foregroundService.android.taskToRun;
34
- try {
35
- await taskToRun(call);
36
- } catch (e) {
37
- logger.error('Keep-alive headless task failed', e);
38
- }
39
- });
40
- }
41
- registerKeepCallAliveHeadlessTaskOnce();
42
- //# sourceMappingURL=keepCallAliveHeadlessTask.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["AppRegistry","Platform","videoLoggerSystem","StreamVideoRN","KEEP_CALL_ALIVE_HEADLESS_TASK_NAME","keepCallAliveCallRef","current","undefined","registerKeepCallAliveHeadlessTaskOnce","OS","registerHeadlessTask","data","logger","getLogger","callCid","call","warn","cid","activeCallCid","config","getConfig","taskToRun","foregroundService","android","e","error"],"sourceRoot":"../../../src","sources":["utils/keepCallAliveHeadlessTask.ts"],"mappings":"AAAA,SAASA,WAAW,EAAEC,QAAQ,QAAQ,cAAc;AAEpD,SAASC,iBAAiB,QAAQ,yBAAyB;AAC3D,SAASC,aAAa,QAAQ,iBAAiB;AAE/C,OAAO,MAAMC,kCAAkC,GAAG,0BAA0B;;AAE5E;AACA;AACA;AACA;AACA,OAAO,MAAMC,oBAAmD,GAAG;EACjEC,OAAO,EAAEC;AACX,CAAC;AAED,SAASC,qCAAqCA,CAAA,EAAG;EAC/C,IAAIP,QAAQ,CAACQ,EAAE,KAAK,SAAS,EAAE;EAE/BT,WAAW,CAACU,oBAAoB,CAC9BN,kCAAkC,EAClC,MAAM,MAAOO,IAAsC,IAAK;IACtD,MAAMC,MAAM,GAAGV,iBAAiB,CAACW,SAAS,CACxC,+BACF,CAAC;IACD,MAAMC,OAAO,GAAGH,IAAI,EAAEG,OAAO;IAE7B,MAAMC,IAAI,GAAGV,oBAAoB,CAACC,OAAO;IACzC,IAAI,CAACS,IAAI,EAAE;MACTH,MAAM,CAACI,IAAI,CACT,kEAAkE,EAClE;QAAEF;MAAQ,CACZ,CAAC;MACD;IACF;IACA,IAAIA,OAAO,IAAIC,IAAI,CAACE,GAAG,IAAIF,IAAI,CAACE,GAAG,KAAKH,OAAO,EAAE;MAC/CF,MAAM,CAACI,IAAI,CACT,+DAA+D,EAC/D;QAAEF,OAAO;QAAEI,aAAa,EAAEH,IAAI,CAACE;MAAI,CACrC,CAAC;MACD;IACF;IAEA,MAAME,MAAM,GAAGhB,aAAa,CAACiB,SAAS,CAAC,CAAC;IACxC,MAAMC,SAAS,GAAGF,MAAM,CAACG,iBAAiB,CAACC,OAAO,CAACF,SAAS;IAC5D,IAAI;MACF,MAAMA,SAAS,CAACN,IAAI,CAAC;IACvB,CAAC,CAAC,OAAOS,CAAC,EAAE;MACVZ,MAAM,CAACa,KAAK,CAAC,iCAAiC,EAAED,CAAC,CAAC;IACpD;EACF,CACF,CAAC;AACH;AAEAhB,qCAAqC,CAAC,CAAC","ignoreList":[]}
@@ -1,67 +0,0 @@
1
- let callingx;
2
- try {
3
- callingx = require('@stream-io/react-native-callingx').CallingxModule;
4
- } catch {}
5
- export function getCallingxLib() {
6
- if (!callingx) {
7
- throw Error('react-native-callingx library is not installed.');
8
- }
9
- return callingx;
10
- }
11
- export function getCallingxLibIfAvailable() {
12
- return callingx ?? undefined;
13
- }
14
- export function extractCallingExpOptions(config) {
15
- const {
16
- push: pushConfig,
17
- foregroundService: foregroundServiceConfig
18
- } = config;
19
- const callingExpOptions = {};
20
- if (pushConfig?.ios) {
21
- const iosOptions = {};
22
- if (pushConfig.ios.supportsVideo !== undefined) {
23
- iosOptions.supportsVideo = pushConfig.ios.supportsVideo;
24
- }
25
- if (pushConfig.ios.sound !== undefined) {
26
- iosOptions.sound = pushConfig.ios.sound;
27
- }
28
- if (pushConfig.ios.imageName !== undefined) {
29
- iosOptions.imageName = pushConfig.ios.imageName;
30
- }
31
- if (pushConfig.ios.callsHistory !== undefined) {
32
- iosOptions.callsHistory = pushConfig.ios.callsHistory;
33
- }
34
- if (pushConfig.ios.displayCallTimeout !== undefined) {
35
- iosOptions.displayCallTimeout = pushConfig.ios.displayCallTimeout;
36
- }
37
- if (Object.keys(iosOptions).length > 0) {
38
- callingExpOptions.ios = iosOptions;
39
- }
40
- }
41
- const androidOptions = {};
42
- if (pushConfig?.android) {
43
- if (pushConfig.android.incomingChannel) {
44
- androidOptions.incomingChannel = pushConfig.android.incomingChannel;
45
- }
46
- if (pushConfig.android.titleTransformer) {
47
- androidOptions.titleTransformer = pushConfig.android.titleTransformer;
48
- }
49
- if (pushConfig.android.subtitleTransformer) {
50
- androidOptions.subtitleTransformer = pushConfig.android.subtitleTransformer;
51
- }
52
- }
53
- if (foregroundServiceConfig.android.channel) {
54
- androidOptions.ongoingChannel = foregroundServiceConfig.android.channel;
55
- }
56
- if (Object.keys(androidOptions).length > 0) {
57
- callingExpOptions.android = androidOptions;
58
- }
59
- if (pushConfig?.shouldRejectCallWhenBusy !== undefined) {
60
- callingExpOptions.shouldRejectCallWhenBusy = pushConfig.shouldRejectCallWhenBusy;
61
- }
62
- if (pushConfig?.enableOngoingCalls !== undefined) {
63
- callingExpOptions.enableOngoingCalls = pushConfig?.enableOngoingCalls;
64
- }
65
- return callingExpOptions;
66
- }
67
- //# sourceMappingURL=callingx.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["callingx","require","CallingxModule","getCallingxLib","Error","getCallingxLibIfAvailable","undefined","extractCallingExpOptions","config","push","pushConfig","foregroundService","foregroundServiceConfig","callingExpOptions","ios","iosOptions","supportsVideo","sound","imageName","callsHistory","displayCallTimeout","Object","keys","length","androidOptions","android","incomingChannel","titleTransformer","subtitleTransformer","channel","ongoingChannel","shouldRejectCallWhenBusy","enableOngoingCalls"],"sourceRoot":"../../../../../src","sources":["utils/push/libs/callingx.ts"],"mappings":"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","ignoreList":[]}