@kaleyra/video-react-native-module 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (271) hide show
  1. package/LICENSE +165 -0
  2. package/README.md +292 -0
  3. package/android/build.gradle +100 -0
  4. package/android/gradle.properties +9 -0
  5. package/android/settings.gradle +6 -0
  6. package/android/src/main/AndroidManifest.xml +1 -0
  7. package/android/src/main/assets/kaleyra_video_wrapper_info.txt +1 -0
  8. package/android/src/main/java/com/kaleyra/video_react_native_module/ReactNativeAccessTokenProvider.kt +22 -0
  9. package/android/src/main/java/com/kaleyra/video_react_native_module/ReactNativeContextContainer.kt +9 -0
  10. package/android/src/main/java/com/kaleyra/video_react_native_module/ReactNativeVideoHybridBridge.kt +30 -0
  11. package/android/src/main/java/com/kaleyra/video_react_native_module/VideoNativeEmitter.kt +45 -0
  12. package/android/src/main/java/com/kaleyra/video_react_native_module/VideoNativeModule.kt +109 -0
  13. package/android/src/main/java/com/kaleyra/video_react_native_module/VideoReactPackage.kt +20 -0
  14. package/index.ts +47 -0
  15. package/ios/PluginInfo/_KaleyraVideoHybridVersionInfo.swift +31 -0
  16. package/ios/ReactEvents/ReactNativeEventEmitter.swift +31 -0
  17. package/ios/ReactEvents/VideoNativeEmitter.m +17 -0
  18. package/ios/ReactEvents/VideoNativeEmitter.swift +42 -0
  19. package/ios/ReactNativePlugin-Bridging-Header.h +5 -0
  20. package/ios/ReactNativePlugin.xcodeproj/project.pbxproj +301 -0
  21. package/ios/VideoNativeModule.m +45 -0
  22. package/ios/VideoNativeModule.swift +154 -0
  23. package/lib/commonjs/index.js +12 -0
  24. package/lib/commonjs/native-bridge/TypeScript/Environments.js +41 -0
  25. package/lib/commonjs/native-bridge/TypeScript/Events.js +46 -0
  26. package/lib/commonjs/native-bridge/TypeScript/Regions.js +47 -0
  27. package/lib/commonjs/native-bridge/TypeScript/UserDetailsFormatValidator.js +32 -0
  28. package/lib/commonjs/native-bridge/TypeScript/errors/IllegalArgumentError.js +12 -0
  29. package/lib/commonjs/native-bridge/TypeScript/types/AccessTokenRequest.js +4 -0
  30. package/lib/commonjs/native-bridge/TypeScript/types/AccessTokenResponse.js +36 -0
  31. package/lib/commonjs/native-bridge/TypeScript/types/AudioCallOptions.js +4 -0
  32. package/lib/commonjs/native-bridge/TypeScript/types/AudioCallType.js +19 -0
  33. package/lib/commonjs/native-bridge/TypeScript/types/CallDisplayMode.js +23 -0
  34. package/lib/commonjs/native-bridge/TypeScript/types/CallKitConfiguration.js +4 -0
  35. package/lib/commonjs/native-bridge/TypeScript/types/CallOptions.js +4 -0
  36. package/lib/commonjs/native-bridge/TypeScript/types/CallType.js +23 -0
  37. package/lib/commonjs/native-bridge/TypeScript/types/ChatToolConfiguration.js +4 -0
  38. package/lib/commonjs/native-bridge/TypeScript/types/CreateCallOptions.js +4 -0
  39. package/lib/commonjs/native-bridge/TypeScript/types/Environment.js +4 -0
  40. package/lib/commonjs/native-bridge/TypeScript/types/IosConfiguration.js +4 -0
  41. package/lib/commonjs/native-bridge/TypeScript/types/KaleyraVideoConfiguration.js +4 -0
  42. package/lib/commonjs/native-bridge/TypeScript/types/RecordingType.js +23 -0
  43. package/lib/commonjs/native-bridge/TypeScript/types/Region.js +4 -0
  44. package/lib/commonjs/native-bridge/TypeScript/types/ScreenShareToolConfiguration.js +4 -0
  45. package/lib/commonjs/native-bridge/TypeScript/types/Session.js +4 -0
  46. package/lib/commonjs/native-bridge/TypeScript/types/Tools.js +4 -0
  47. package/lib/commonjs/native-bridge/TypeScript/types/UserDetails.js +4 -0
  48. package/lib/commonjs/native-bridge/TypeScript/types/UserDetailsFormat.js +4 -0
  49. package/lib/commonjs/native-bridge/TypeScript/types/VoipHandlingStrategy.js +19 -0
  50. package/lib/commonjs/src/KaleyraVideo.js +259 -0
  51. package/lib/commonjs/src/ReactNativeEventEmitter.js +40 -0
  52. package/lib/commonjs/src/events/Events.js +4 -0
  53. package/lib/module/index.js +2 -0
  54. package/lib/module/native-bridge/TypeScript/Environments.js +37 -0
  55. package/lib/module/native-bridge/TypeScript/Events.js +43 -0
  56. package/lib/module/native-bridge/TypeScript/Regions.js +43 -0
  57. package/lib/module/native-bridge/TypeScript/UserDetailsFormatValidator.js +28 -0
  58. package/lib/module/native-bridge/TypeScript/errors/IllegalArgumentError.js +8 -0
  59. package/lib/module/native-bridge/TypeScript/types/AccessTokenRequest.js +3 -0
  60. package/lib/module/native-bridge/TypeScript/types/AccessTokenResponse.js +32 -0
  61. package/lib/module/native-bridge/TypeScript/types/AudioCallOptions.js +3 -0
  62. package/lib/module/native-bridge/TypeScript/types/AudioCallType.js +16 -0
  63. package/lib/module/native-bridge/TypeScript/types/CallDisplayMode.js +20 -0
  64. package/lib/module/native-bridge/TypeScript/types/CallKitConfiguration.js +3 -0
  65. package/lib/module/native-bridge/TypeScript/types/CallOptions.js +3 -0
  66. package/lib/module/native-bridge/TypeScript/types/CallType.js +20 -0
  67. package/lib/module/native-bridge/TypeScript/types/ChatToolConfiguration.js +3 -0
  68. package/lib/module/native-bridge/TypeScript/types/CreateCallOptions.js +3 -0
  69. package/lib/module/native-bridge/TypeScript/types/Environment.js +3 -0
  70. package/lib/module/native-bridge/TypeScript/types/IosConfiguration.js +3 -0
  71. package/lib/module/native-bridge/TypeScript/types/KaleyraVideoConfiguration.js +3 -0
  72. package/lib/module/native-bridge/TypeScript/types/RecordingType.js +20 -0
  73. package/lib/module/native-bridge/TypeScript/types/Region.js +3 -0
  74. package/lib/module/native-bridge/TypeScript/types/ScreenShareToolConfiguration.js +3 -0
  75. package/lib/module/native-bridge/TypeScript/types/Session.js +3 -0
  76. package/lib/module/native-bridge/TypeScript/types/Tools.js +3 -0
  77. package/lib/module/native-bridge/TypeScript/types/UserDetails.js +3 -0
  78. package/lib/module/native-bridge/TypeScript/types/UserDetailsFormat.js +3 -0
  79. package/lib/module/native-bridge/TypeScript/types/VoipHandlingStrategy.js +16 -0
  80. package/lib/module/src/KaleyraVideo.js +249 -0
  81. package/lib/module/src/ReactNativeEventEmitter.js +36 -0
  82. package/lib/module/src/events/Events.js +3 -0
  83. package/lib/typescript/index.d.ts +2 -0
  84. package/lib/typescript/native-bridge/TypeScript/Environments.d.ts +28 -0
  85. package/lib/typescript/native-bridge/TypeScript/Events.d.ts +40 -0
  86. package/lib/typescript/native-bridge/TypeScript/Regions.d.ts +32 -0
  87. package/lib/typescript/native-bridge/TypeScript/UserDetailsFormatValidator.d.ts +4 -0
  88. package/lib/typescript/native-bridge/TypeScript/errors/IllegalArgumentError.d.ts +6 -0
  89. package/lib/typescript/native-bridge/TypeScript/types/AccessTokenRequest.d.ts +4 -0
  90. package/lib/typescript/native-bridge/TypeScript/types/AccessTokenResponse.d.ts +12 -0
  91. package/lib/typescript/native-bridge/TypeScript/types/AudioCallOptions.d.ts +11 -0
  92. package/lib/typescript/native-bridge/TypeScript/types/AudioCallType.d.ts +13 -0
  93. package/lib/typescript/native-bridge/TypeScript/types/CallDisplayMode.d.ts +17 -0
  94. package/lib/typescript/native-bridge/TypeScript/types/CallKitConfiguration.d.ts +26 -0
  95. package/lib/typescript/native-bridge/TypeScript/types/CallOptions.d.ts +13 -0
  96. package/lib/typescript/native-bridge/TypeScript/types/CallType.d.ts +17 -0
  97. package/lib/typescript/native-bridge/TypeScript/types/ChatToolConfiguration.d.ts +15 -0
  98. package/lib/typescript/native-bridge/TypeScript/types/CreateCallOptions.d.ts +15 -0
  99. package/lib/typescript/native-bridge/TypeScript/types/Environment.d.ts +9 -0
  100. package/lib/typescript/native-bridge/TypeScript/types/IosConfiguration.d.ts +23 -0
  101. package/lib/typescript/native-bridge/TypeScript/types/KaleyraVideoConfiguration.d.ts +33 -0
  102. package/lib/typescript/native-bridge/TypeScript/types/RecordingType.d.ts +17 -0
  103. package/lib/typescript/native-bridge/TypeScript/types/Region.d.ts +9 -0
  104. package/lib/typescript/native-bridge/TypeScript/types/ScreenShareToolConfiguration.d.ts +19 -0
  105. package/lib/typescript/native-bridge/TypeScript/types/Session.d.ts +16 -0
  106. package/lib/typescript/native-bridge/TypeScript/types/Tools.d.ts +42 -0
  107. package/lib/typescript/native-bridge/TypeScript/types/UserDetails.d.ts +29 -0
  108. package/lib/typescript/native-bridge/TypeScript/types/UserDetailsFormat.d.ts +19 -0
  109. package/lib/typescript/native-bridge/TypeScript/types/VoipHandlingStrategy.d.ts +13 -0
  110. package/lib/typescript/src/KaleyraVideo.d.ts +125 -0
  111. package/lib/typescript/src/ReactNativeEventEmitter.d.ts +15 -0
  112. package/lib/typescript/src/events/Events.d.ts +37 -0
  113. package/native-bridge/LICENSE +165 -0
  114. package/native-bridge/TypeScript/Environments.ts +44 -0
  115. package/native-bridge/TypeScript/Events.ts +43 -0
  116. package/native-bridge/TypeScript/Regions.ts +51 -0
  117. package/native-bridge/TypeScript/UserDetailsFormatValidator.ts +35 -0
  118. package/native-bridge/TypeScript/errors/IllegalArgumentError.ts +9 -0
  119. package/native-bridge/TypeScript/types/AccessTokenRequest.ts +7 -0
  120. package/native-bridge/TypeScript/types/AccessTokenResponse.ts +41 -0
  121. package/native-bridge/TypeScript/types/AudioCallOptions.ts +15 -0
  122. package/native-bridge/TypeScript/types/AudioCallType.ts +17 -0
  123. package/native-bridge/TypeScript/types/CallDisplayMode.ts +22 -0
  124. package/native-bridge/TypeScript/types/CallKitConfiguration.ts +32 -0
  125. package/native-bridge/TypeScript/types/CallOptions.ts +18 -0
  126. package/native-bridge/TypeScript/types/CallType.ts +22 -0
  127. package/native-bridge/TypeScript/types/ChatToolConfiguration.ts +21 -0
  128. package/native-bridge/TypeScript/types/CreateCallOptions.ts +20 -0
  129. package/native-bridge/TypeScript/types/Environment.ts +12 -0
  130. package/native-bridge/TypeScript/types/IosConfiguration.ts +29 -0
  131. package/native-bridge/TypeScript/types/KaleyraVideoConfiguration.ts +42 -0
  132. package/native-bridge/TypeScript/types/RecordingType.ts +22 -0
  133. package/native-bridge/TypeScript/types/Region.ts +12 -0
  134. package/native-bridge/TypeScript/types/ScreenShareToolConfiguration.ts +24 -0
  135. package/native-bridge/TypeScript/types/Session.ts +20 -0
  136. package/native-bridge/TypeScript/types/Tools.ts +50 -0
  137. package/native-bridge/TypeScript/types/UserDetails.ts +37 -0
  138. package/native-bridge/TypeScript/types/UserDetailsFormat.ts +23 -0
  139. package/native-bridge/TypeScript/types/VoipHandlingStrategy.ts +17 -0
  140. package/native-bridge/android/build.gradle +72 -0
  141. package/native-bridge/android/gradle/wrapper/gradle-wrapper.jar +0 -0
  142. package/native-bridge/android/gradle/wrapper/gradle-wrapper.properties +5 -0
  143. package/native-bridge/android/gradle.properties +22 -0
  144. package/native-bridge/android/gradlew +234 -0
  145. package/native-bridge/android/gradlew.bat +89 -0
  146. package/native-bridge/android/settings.gradle +1 -0
  147. package/native-bridge/android/src/main/AndroidManifest.xml +1 -0
  148. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/AccessTokenProvider.kt +8 -0
  149. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/CallOptionsProxy.kt +9 -0
  150. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/ContextContainer.kt +10 -0
  151. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/DTOs.kt +407 -0
  152. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/SDKAccessTokenProviderProxy.kt +16 -0
  153. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/VideoHybridBridge.kt +21 -0
  154. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/VideoSDKHybridBridge.kt +64 -0
  155. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/configurator/CachedSDKConfigurator.kt +15 -0
  156. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/configurator/VideoSDKConfigurator.kt +46 -0
  157. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/connector/CachedUserConnector.kt +15 -0
  158. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/connector/VideoSDKCachedUserConnector.kt +60 -0
  159. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/events/Events.kt +29 -0
  160. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/events/EventsEmitter.kt +8 -0
  161. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/events/EventsReporter.kt +9 -0
  162. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/events/reporter/CallEventsReporter.kt +54 -0
  163. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/events/reporter/ChatEventsReporter.kt +43 -0
  164. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/events/reporter/CrossPlatformModuleStatus.kt +29 -0
  165. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/events/reporter/ModuleEventsReporter.kt +34 -0
  166. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/events/reporter/SDKEventsReporter.kt +63 -0
  167. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/extensions/CallDisplayExtension.kt +15 -0
  168. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/extensions/ConfigurationExtension.kt +39 -0
  169. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/extensions/EnvironmentExtension.kt +12 -0
  170. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/extensions/RecordingTypeExtension.kt +15 -0
  171. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/extensions/RegionExtension.kt +13 -0
  172. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/extensions/ScreenShareToolConfigurationExtension.kt +15 -0
  173. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/extensions/ToolsExtension.kt +95 -0
  174. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/extensions/UserExtensions.kt +35 -0
  175. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/notifications/KaleyraVideoNotificationReceiver.kt +139 -0
  176. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/notifications/KaleyraVideoNotificationService.kt +85 -0
  177. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/repository/ConfigurationEntity.kt +27 -0
  178. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/repository/ConnectedUserEntity.kt +30 -0
  179. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/repository/Converters.kt +25 -0
  180. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/repository/UserDetailsDao.kt +21 -0
  181. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/repository/UserDetailsEntity.kt +22 -0
  182. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/repository/VideoHybridBridgeRepository.kt +39 -0
  183. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/ui/SDKUserInterfacePresenter.kt +49 -0
  184. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/ui/UserInterfacePresenter.kt +14 -0
  185. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/user_details/CachedUserDetails.kt +18 -0
  186. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/user_details/CachedUserDetailsFormatter.kt +59 -0
  187. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/user_details/SDKCachedUserDetails.kt +74 -0
  188. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/utils/CaseInsensitiveEnumTypeAdapterFactory.kt +48 -0
  189. package/native-bridge/android/src/main/java/com/kaleyra/video_hybrid_native_bridge/utils/TLSSocketFactoryCompat.kt +76 -0
  190. package/native-bridge/iOS/KaleyraVideoHybridNativeBridge.xcodeproj/project.pbxproj +1399 -0
  191. package/native-bridge/iOS/KaleyraVideoHybridNativeBridge.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  192. package/native-bridge/iOS/KaleyraVideoHybridNativeBridge.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  193. package/native-bridge/iOS/KaleyraVideoHybridNativeBridge.xcodeproj/xcshareddata/IDETemplateMacros.plist +9 -0
  194. package/native-bridge/iOS/KaleyraVideoHybridNativeBridge.xcodeproj/xcshareddata/xcschemes/KaleyraVideoHybridNativeBridge.xcscheme +79 -0
  195. package/native-bridge/iOS/KaleyraVideoHybridNativeBridge.xcworkspace/contents.xcworkspacedata +10 -0
  196. package/native-bridge/iOS/KaleyraVideoHybridNativeBridge.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  197. package/native-bridge/iOS/Podfile +28 -0
  198. package/native-bridge/iOS/Podfile.lock +20 -0
  199. package/native-bridge/iOS/Source/Abstractions/BandyerSDKProtocol.swift +24 -0
  200. package/native-bridge/iOS/Source/Abstractions/CallWindowProtocol.swift +18 -0
  201. package/native-bridge/iOS/Source/AccessToken/AccessTokenRequester.swift +9 -0
  202. package/native-bridge/iOS/Source/AccessToken/TokenProvider.swift +78 -0
  203. package/native-bridge/iOS/Source/Broadcast/BroadcastConfigurationPlistReader.swift +49 -0
  204. package/native-bridge/iOS/Source/Concurrency/DispatchQueue+isMain.swift +19 -0
  205. package/native-bridge/iOS/Source/Concurrency/Lock.swift +21 -0
  206. package/native-bridge/iOS/Source/Concurrency/MainQueueDispatcher.swift +23 -0
  207. package/native-bridge/iOS/Source/Concurrency/MainQueueRelay.swift +18 -0
  208. package/native-bridge/iOS/Source/DTOs/AccessTokenRequest+Encodable.swift +27 -0
  209. package/native-bridge/iOS/Source/DTOs/AccessTokenResponse+Decodable.swift +24 -0
  210. package/native-bridge/iOS/Source/DTOs/Array+JSON.swift +6 -0
  211. package/native-bridge/iOS/Source/DTOs/AudioCallOptions+Bandyer.swift +14 -0
  212. package/native-bridge/iOS/Source/DTOs/AudioCallOptions+Decodable.swift +18 -0
  213. package/native-bridge/iOS/Source/DTOs/AudioCallOptions+Equatable.swift +12 -0
  214. package/native-bridge/iOS/Source/DTOs/AudioCallType+Bandyer.swift +18 -0
  215. package/native-bridge/iOS/Source/DTOs/AudioCallType+Decodable.swift +25 -0
  216. package/native-bridge/iOS/Source/DTOs/CallKitConfiguration+Decodable.swift +20 -0
  217. package/native-bridge/iOS/Source/DTOs/CallOptions+Bandyer.swift +14 -0
  218. package/native-bridge/iOS/Source/DTOs/CallOptions+Decodable.swift +16 -0
  219. package/native-bridge/iOS/Source/DTOs/CallOptions+Equatable.swift +12 -0
  220. package/native-bridge/iOS/Source/DTOs/CallType+Bandyer.swift +20 -0
  221. package/native-bridge/iOS/Source/DTOs/CallType+Decodable.swift +27 -0
  222. package/native-bridge/iOS/Source/DTOs/ChatToolConfiguration+Decodable.swift +18 -0
  223. package/native-bridge/iOS/Source/DTOs/CreateCallOptions+Decodable.swift +22 -0
  224. package/native-bridge/iOS/Source/DTOs/CreateCallOptions+Equatable.swift +13 -0
  225. package/native-bridge/iOS/Source/DTOs/CreateCallOptions+Intent.swift +17 -0
  226. package/native-bridge/iOS/Source/DTOs/DTOs.swift +314 -0
  227. package/native-bridge/iOS/Source/DTOs/Environment+Bandyer.swift +20 -0
  228. package/native-bridge/iOS/Source/DTOs/Environment+Decodable.swift +16 -0
  229. package/native-bridge/iOS/Source/DTOs/IosConfiguration+Decodable.swift +18 -0
  230. package/native-bridge/iOS/Source/DTOs/JSONDecodable.swift +27 -0
  231. package/native-bridge/iOS/Source/DTOs/KaleyraVideoConfiguration+Bandyer.swift +158 -0
  232. package/native-bridge/iOS/Source/DTOs/KaleyraVideoConfiguration+Decodable.swift +28 -0
  233. package/native-bridge/iOS/Source/DTOs/KaleyraVideoConfiguration+UserInterfacePresenterConfiguration.swift +29 -0
  234. package/native-bridge/iOS/Source/DTOs/RecordingType+Bandyer.swift +33 -0
  235. package/native-bridge/iOS/Source/DTOs/RecordingType+Decodable.swift +27 -0
  236. package/native-bridge/iOS/Source/DTOs/Region+Bandyer.swift +22 -0
  237. package/native-bridge/iOS/Source/DTOs/Region+Decodable.swift +16 -0
  238. package/native-bridge/iOS/Source/DTOs/ScreenShareToolConfiguration+Decodable.swift +18 -0
  239. package/native-bridge/iOS/Source/DTOs/Tools+Decodable.swift +24 -0
  240. package/native-bridge/iOS/Source/DTOs/UserDetails+Bandyer.swift +18 -0
  241. package/native-bridge/iOS/Source/DTOs/UserDetails+Decodable.swift +28 -0
  242. package/native-bridge/iOS/Source/DTOs/UserDetailsFormat+Decodable.swift +19 -0
  243. package/native-bridge/iOS/Source/DTOs/VoipHandlingStrategy+Decodable.swift +25 -0
  244. package/native-bridge/iOS/Source/Events/Emitter/EventEmitter.swift +8 -0
  245. package/native-bridge/iOS/Source/Events/Events+CaseIterable.swift +18 -0
  246. package/native-bridge/iOS/Source/Events/Events+Description.swift +28 -0
  247. package/native-bridge/iOS/Source/Events/Events.swift +21 -0
  248. package/native-bridge/iOS/Source/Events/Reporters/CallClientEventsReporter.swift +46 -0
  249. package/native-bridge/iOS/Source/Events/Reporters/ChatClientEventsReporter.swift +46 -0
  250. package/native-bridge/iOS/Source/Events/Reporters/ClientState.swift +61 -0
  251. package/native-bridge/iOS/Source/Events/Reporters/EventsReporter.swift +69 -0
  252. package/native-bridge/iOS/Source/Events/Reporters/PushTokenEventsReporter.swift +34 -0
  253. package/native-bridge/iOS/Source/Extensions/URL+FromString.swift +26 -0
  254. package/native-bridge/iOS/Source/KaleyraVideoHybridNativeBridge.h +14 -0
  255. package/native-bridge/iOS/Source/NativeHybridBridge/VideoHybridNativeBridge.swift +173 -0
  256. package/native-bridge/iOS/Source/NativeHybridBridge/VideoHybridNativeBridgeError.swift +33 -0
  257. package/native-bridge/iOS/Source/UI/KaleyraVideoSDKUserInterfacePresenter.swift +249 -0
  258. package/native-bridge/iOS/Source/UI/Presenters/PresentingViewControllerViewControllerPresenter.swift +44 -0
  259. package/native-bridge/iOS/Source/UI/Presenters/ViewControllerPresenter.swift +17 -0
  260. package/native-bridge/iOS/Source/UI/Presenters/WindowViewControllerPresenter.swift +111 -0
  261. package/native-bridge/iOS/Source/UI/UserInterfacePresenter+MainQueueRelay.swift +30 -0
  262. package/native-bridge/iOS/Source/UI/UserInterfacePresenter.swift +14 -0
  263. package/native-bridge/iOS/Source/User Details/Cache/UsersDetailsCache.swift +36 -0
  264. package/native-bridge/iOS/Source/User Details/Formatter/FormatterProxy.swift +47 -0
  265. package/native-bridge/iOS/Source/User Details/Formatter/UserDetailsFormatter.swift +83 -0
  266. package/native-bridge/iOS/Source/User Details/Providers/UsersDetailsProvider.swift +39 -0
  267. package/package.json +147 -0
  268. package/src/KaleyraVideo.ts +343 -0
  269. package/src/ReactNativeEventEmitter.ts +51 -0
  270. package/src/events/Events.ts +46 -0
  271. package/video-react-native-module.podspec +36 -0
@@ -0,0 +1,9 @@
1
+ // Copyright © 2018-2023 Kaleyra S.p.a. All Rights Reserved.
2
+ // See LICENSE for licensing information
3
+
4
+ /**
5
+ * This error will be thrown when arguments given to a function are not of the expected type
6
+ */
7
+ export class IllegalArgumentError extends Error {
8
+ name = 'IllegalArgumentError';
9
+ }
@@ -0,0 +1,7 @@
1
+ // Copyright © 2018-2023 Kaleyra S.p.a. All Rights Reserved.
2
+ // See LICENSE for licensing information
3
+
4
+ export interface AccessTokenRequest {
5
+ requestID: string;
6
+ userID: string;
7
+ }
@@ -0,0 +1,41 @@
1
+ // Copyright © 2018-2023 Kaleyra S.p.a. All Rights Reserved.
2
+ // See LICENSE for licensing information
3
+
4
+ /**
5
+ * @ignore
6
+ */
7
+ export class AccessTokenResponse {
8
+ constructor(
9
+ requestID: string,
10
+ success: boolean,
11
+ data: string,
12
+ error: string
13
+ ) {
14
+ this.requestID = requestID;
15
+ this.success = success;
16
+ this.data = data;
17
+ this.error = error;
18
+ }
19
+
20
+ static failed(requestID: string, reason?: string): AccessTokenResponse {
21
+ return {
22
+ requestID,
23
+ success: false,
24
+ data: '',
25
+ error: reason,
26
+ };
27
+ }
28
+
29
+ static success(requestID: string, token: string): AccessTokenResponse {
30
+ return {
31
+ requestID,
32
+ success: true,
33
+ data: token,
34
+ };
35
+ }
36
+
37
+ requestID: string;
38
+ success: boolean;
39
+ data: string;
40
+ error?: string;
41
+ }
@@ -0,0 +1,15 @@
1
+ // Copyright © 2018-2023 Kaleyra S.p.a. All Rights Reserved.
2
+ // See LICENSE for licensing information
3
+
4
+ import {CallOptions} from "./CallOptions";
5
+ import {AudioCallType} from "./AudioCallType";
6
+
7
+ /**
8
+ * Audio call options used for chat
9
+ */
10
+ export interface AudioCallOptions extends CallOptions {
11
+ /**
12
+ * Type of audioCall to launch when an option of the chat is tapped.
13
+ */
14
+ type: AudioCallType;
15
+ }
@@ -0,0 +1,17 @@
1
+ // Copyright © 2018-2023 Kaleyra S.p.a. All Rights Reserved.
2
+ // See LICENSE for licensing information
3
+
4
+ /**
5
+ * This class defines the types of audio calls supported.
6
+ */
7
+ export enum AudioCallType {
8
+ /**
9
+ * Audio only is a call that will only use the microphone
10
+ */
11
+ AUDIO = 'audio',
12
+
13
+ /**
14
+ * Audio Upgradable is a call a type of call that starts in audio only and may be upgraded to audio&video type
15
+ */
16
+ AUDIO_UPGRADABLE = 'audioUpgradable',
17
+ }
@@ -0,0 +1,22 @@
1
+ // Copyright © 2018-2023 Kaleyra S.p.a. All Rights Reserved.
2
+ // See LICENSE for licensing information
3
+
4
+ /**
5
+ * This class defines the display modes supported per call.
6
+ */
7
+ export enum CallDisplayMode {
8
+ /**
9
+ * The call UI fits completely the available window.
10
+ */
11
+ FOREGROUND = 'FOREGROUND',
12
+
13
+ /**
14
+ * If the device has picture in picture feature the call UI is floating on the screen's device.
15
+ */
16
+ FOREGROUND_PICTURE_IN_PICTURE = 'FOREGROUND_PICTURE_IN_PICTURE',
17
+
18
+ /**
19
+ * The call UI is not visible to the user.
20
+ */
21
+ BACKGROUND = 'BACKGROUND',
22
+ }
@@ -0,0 +1,32 @@
1
+ // Copyright © 2018-2023 Kaleyra S.p.a. All Rights Reserved.
2
+ // See LICENSE for licensing information
3
+
4
+ /**
5
+ * Configuration for callkit
6
+ */
7
+ export interface CallKitConfiguration {
8
+
9
+ /**
10
+ * Set to false to disable
11
+ * <br/>
12
+ * <br/>
13
+ * <b><font color="blue">default</font>: true</b>
14
+ */
15
+ enabled?: boolean;
16
+
17
+ /**
18
+ * The icon resource name to be used in the callkit UI to represent the app
19
+ * <br/>
20
+ * <br/>
21
+ * <b><font color="blue">default</font>: null</b>
22
+ */
23
+ appIconName?: string;
24
+
25
+ /**
26
+ * The ringtone resource name to be used when callkit is launched
27
+ * <br/>
28
+ * <br/>
29
+ * <b><font color="blue">default</font>: system</b>
30
+ */
31
+ ringtoneSoundName?: string;
32
+ }
@@ -0,0 +1,18 @@
1
+ // Copyright © 2018-2023 Kaleyra S.p.a. All Rights Reserved.
2
+ // See LICENSE for licensing information
3
+
4
+ import {RecordingType} from "./RecordingType";
5
+
6
+ /**
7
+ * Options available for a call
8
+ */
9
+ export interface CallOptions {
10
+
11
+ /**
12
+ * May have three different values, NONE, AUTOMATIC, MANUAL
13
+ * <br/>
14
+ * <br/>
15
+ * <b><font color="blue">default</font>: none</b>
16
+ */
17
+ recordingType?: RecordingType;
18
+ }
@@ -0,0 +1,22 @@
1
+ // Copyright © 2018-2023 Kaleyra S.p.a. All Rights Reserved.
2
+ // See LICENSE for licensing information
3
+
4
+ /**
5
+ * This class defines the types of calls supported.
6
+ */
7
+ export enum CallType {
8
+ /**
9
+ * Audio only is a call that will only use the microphone
10
+ */
11
+ AUDIO = 'audio',
12
+
13
+ /**
14
+ * Audio Upgradable is a call a type of call that starts in audio only and may be upgraded to audio&video type
15
+ */
16
+ AUDIO_UPGRADABLE = 'audioUpgradable',
17
+
18
+ /**
19
+ * Audio Video is a call that will use both the camera and the microphone
20
+ */
21
+ AUDIO_VIDEO = 'audioVideo',
22
+ }
@@ -0,0 +1,21 @@
1
+ // Copyright © 2018-2023 Kaleyra S.p.a. All Rights Reserved.
2
+ // See LICENSE for licensing information
3
+
4
+ import {CallOptions} from "./CallOptions";
5
+ import {AudioCallOptions} from "./AudioCallOptions";
6
+
7
+ /**
8
+ * Chat tool configuration
9
+ */
10
+ export interface ChatToolConfiguration {
11
+
12
+ /**
13
+ * Defining this object will enable an option to start an audio call from chat UI
14
+ */
15
+ audioCallOption?: AudioCallOptions;
16
+
17
+ /**
18
+ * Defining this object will enable an option to start an audio&video call from chat UI
19
+ */
20
+ videoCallOption?: CallOptions;
21
+ }
@@ -0,0 +1,20 @@
1
+ // Copyright © 2018-2023 Kaleyra S.p.a. All Rights Reserved.
2
+ // See LICENSE for licensing information
3
+
4
+ import { CallType } from './CallType';
5
+ import { CallOptions } from './CallOptions';
6
+
7
+ /**
8
+ * Options to be used when creating a call
9
+ */
10
+ export interface CreateCallOptions extends CallOptions {
11
+ /**
12
+ * Array of callees identifiers to call.
13
+ */
14
+ callees: string[];
15
+
16
+ /**
17
+ * Type of call to create
18
+ */
19
+ callType: CallType;
20
+ }
@@ -0,0 +1,12 @@
1
+ // Copyright © 2018-2023 Kaleyra S.p.a. All Rights Reserved.
2
+ // See LICENSE for licensing information
3
+
4
+ /**
5
+ * An environment where your integration will run
6
+ */
7
+ export interface Environment {
8
+ /**
9
+ * name of the environment
10
+ */
11
+ name: string;
12
+ }
@@ -0,0 +1,29 @@
1
+ // Copyright © 2018-2023 Kaleyra S.p.a. All Rights Reserved.
2
+ // See LICENSE for licensing information
3
+
4
+ import {CallKitConfiguration} from "./CallKitConfiguration";
5
+ import {VoipHandlingStrategy} from "./VoipHandlingStrategy";
6
+
7
+ /**
8
+ * Configuration for iOS platform
9
+ */
10
+ export interface IosConfiguration {
11
+
12
+ /**
13
+ * Specify the callkit configuration to enable the usage and it's behaviour
14
+ * <br/>
15
+ * <br/>
16
+ * <b><font color="blue">default</font>: enabled</b>
17
+ */
18
+ callkit?: CallKitConfiguration;
19
+
20
+ /**
21
+ * Specify the voip handling strategy.
22
+ * <br/>
23
+ * This allows you to disable or leave the plugin behaviour for handling the voip notifications.
24
+ * <br/>
25
+ * <br/>
26
+ * <b><font color="blue">default</font>: VoipHandlingStrategy.AUTOMATIC </b>
27
+ */
28
+ voipHandlingStrategy?: VoipHandlingStrategy;
29
+ }
@@ -0,0 +1,42 @@
1
+ // Copyright © 2018-2023 Kaleyra S.p.a. All Rights Reserved.
2
+ // See LICENSE for licensing information
3
+
4
+ import { IosConfiguration } from "./IosConfiguration";
5
+ import { Tools } from "./Tools";
6
+ import { Environment } from "./Environment";
7
+ import { Region } from "./Region";
8
+
9
+ /**
10
+ * Generic configuration used for setup
11
+ */
12
+ export interface KaleyraVideoConfiguration {
13
+ /**
14
+ * This key will be provided to you by us.
15
+ */
16
+ appID: string;
17
+
18
+ /**
19
+ * This variable defines the environment where you will be sandbox or production.
20
+ */
21
+ environment: Environment;
22
+
23
+ /**
24
+ * This variable defines the region where you will be europe, india or us.
25
+ */
26
+ region: Region;
27
+
28
+ /**
29
+ * Set to true to enable log, default value is false
30
+ */
31
+ logEnabled?: boolean;
32
+
33
+ /**
34
+ * Define the tools to use
35
+ */
36
+ tools?: Tools;
37
+
38
+ /**
39
+ * Define to customize the iOS configuration
40
+ */
41
+ iosConfig?: IosConfiguration;
42
+ }
@@ -0,0 +1,22 @@
1
+ // Copyright © 2018-2023 Kaleyra S.p.a. All Rights Reserved.
2
+ // See LICENSE for licensing information
3
+
4
+ /**
5
+ * Recording type of the call
6
+ */
7
+ export enum RecordingType {
8
+ /**
9
+ * The call will be recorded on demand
10
+ */
11
+ MANUAL = 'manual',
12
+
13
+ /**
14
+ * The call will be recorded as soon it starts
15
+ */
16
+ AUTOMATIC = 'automatic',
17
+
18
+ /**
19
+ * The call will not be recorded
20
+ */
21
+ NONE = 'none',
22
+ }
@@ -0,0 +1,12 @@
1
+ // Copyright © 2018-2023 Kaleyra S.p.a. All Rights Reserved.
2
+ // See LICENSE for licensing information
3
+
4
+ /**
5
+ * A region where your integration will run
6
+ */
7
+ export interface Region {
8
+ /**
9
+ * name of the region
10
+ */
11
+ name: string;
12
+ }
@@ -0,0 +1,24 @@
1
+ // Copyright © 2018-2023 Kaleyra S.p.a. All Rights Reserved.
2
+ // See LICENSE for licensing information
3
+
4
+ /**
5
+ * Screen Share tool configuration
6
+ */
7
+ export interface ScreenShareToolConfiguration {
8
+
9
+ /**
10
+ * Set to true to enable the in app screen share
11
+ * <br/>
12
+ * <br/>
13
+ * <b><font color="blue">default</font>: false</b>
14
+ */
15
+ inApp?: boolean;
16
+
17
+ /**
18
+ * Set to true to enable the whole device screen share
19
+ * <br/>
20
+ * <br/>
21
+ * <b><font color="blue">default</font>: false</b>
22
+ */
23
+ wholeDevice?: boolean;
24
+ }
@@ -0,0 +1,20 @@
1
+ // Copyright © 2018-2023 Kaleyra S.p.a. All Rights Reserved.
2
+ // See LICENSE for licensing information
3
+
4
+ /**
5
+ * Session
6
+ */
7
+ export interface Session {
8
+ /**
9
+ * The user id you want to connect
10
+ */
11
+ userID: string;
12
+
13
+ /**
14
+ * The Kaleyra Video SDK adopts a strong authentication mechanism based on JWT access tokens.
15
+ * Whenever the SDK needs an access token for a particular user, this component will be asked to provide an access token for a particular user.
16
+ * @param userId the user which requires a token refresh
17
+ * @returns a promise containing the access token if completed successfully.
18
+ */
19
+ accessTokenProvider(userId: string): Promise<string>;
20
+ }
@@ -0,0 +1,50 @@
1
+ // Copyright © 2018-2023 Kaleyra S.p.a. All Rights Reserved.
2
+ // See LICENSE for licensing information
3
+
4
+ import {ScreenShareToolConfiguration} from "./ScreenShareToolConfiguration";
5
+ import {ChatToolConfiguration} from "./ChatToolConfiguration";
6
+
7
+ /**
8
+ * Video Module Tools
9
+ */
10
+ export interface Tools {
11
+ /**
12
+ * Set to true to enable the file sharing feature
13
+ * <br/>
14
+ * <br/>
15
+ * <b><font color="blue">default</font>: false</b>
16
+ */
17
+ fileShare?: boolean;
18
+
19
+ /**
20
+ * Set to enable the screen sharing feature
21
+ * <br/>
22
+ * <br/>
23
+ * <b><font color="blue">default</font>: no screen share</b>
24
+ */
25
+ screenShare?: ScreenShareToolConfiguration;
26
+
27
+ /**
28
+ * Set to enable the chat feature
29
+ * <br/>
30
+ * <br/>
31
+ * <b><font color="blue">default</font>: no chat</b>
32
+ */
33
+ chat?: ChatToolConfiguration;
34
+
35
+ /**
36
+ * Set to true to enable the whiteboard feature
37
+ * <br/>
38
+ * <br/>
39
+ * <b><font color="blue">default</font>: false</b>
40
+ */
41
+ whiteboard?: boolean;
42
+
43
+ /**
44
+ * Set to true to enable the feedback request after a call ends.
45
+ * <br/>
46
+ * <br/>
47
+ * <b><font color="blue">default</font>: false</b>
48
+ */
49
+ feedback?: boolean;
50
+ }
@@ -0,0 +1,37 @@
1
+ // Copyright © 2018-2023 Kaleyra S.p.a. All Rights Reserved.
2
+ // See LICENSE for licensing information
3
+
4
+ /**
5
+ * This is used to define the user details in the call/chat UI
6
+ */
7
+ export interface UserDetails {
8
+ /**
9
+ * User identifier
10
+ */
11
+ userID: string;
12
+
13
+ /**
14
+ * Nickname for the user
15
+ */
16
+ nickName?: string;
17
+
18
+ /**
19
+ * First name of the user
20
+ */
21
+ firstName?: string;
22
+
23
+ /**
24
+ * Last name of the user
25
+ */
26
+ lastName?: string;
27
+
28
+ /**
29
+ * Email of the user
30
+ */
31
+ email?: string;
32
+
33
+ /**
34
+ * Image url to use as placeholder for the user.
35
+ */
36
+ profileImageUrl?: string;
37
+ }
@@ -0,0 +1,23 @@
1
+ // Copyright © 2018-2023 Kaleyra S.p.a. All Rights Reserved.
2
+ // See LICENSE for licensing information
3
+
4
+ /**
5
+ * This is used to display the user details in the call/chat UI
6
+ */
7
+ export interface UserDetailsFormat {
8
+ /**
9
+ * Format to be used to display a user details on the call/chat UI
10
+ * <br/>
11
+ * <br/>
12
+ * <b><font color="blue">default</font>: ${userAlias}</b>
13
+ */
14
+ default: string;
15
+
16
+ /**
17
+ * Format to be used when displaying an android notification
18
+ * <br/>
19
+ * <br/>
20
+ * <b><font color="blue">default</font>: equals to UserDetailsFormatter.default</b>
21
+ */
22
+ androidNotification?: string;
23
+ }
@@ -0,0 +1,17 @@
1
+ // Copyright © 2018-2023 Kaleyra S.p.a. All Rights Reserved.
2
+ // See LICENSE for licensing information
3
+
4
+ /**
5
+ * This class defines the voip notification strategy per call.
6
+ */
7
+ export enum VoipHandlingStrategy {
8
+ /**
9
+ * The voip notifications will not be handled
10
+ */
11
+ DISABLED = 'disabled',
12
+
13
+ /**
14
+ * The voip notifications will be handled automatically from the plugin
15
+ */
16
+ AUTOMATIC = 'automatic',
17
+ }
@@ -0,0 +1,72 @@
1
+ buildscript {
2
+ ext.kotlin_version = '1.6.10'
3
+ repositories {
4
+ google()
5
+ mavenLocal()
6
+ mavenCentral()
7
+ maven { url 'https://maven.bandyer.com/releases' }
8
+ maven { url 'https://jitpack.io' }
9
+ }
10
+
11
+ dependencies {
12
+ classpath 'com.android.tools.build:gradle:7.1.2'
13
+ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
14
+ }
15
+ }
16
+
17
+ allprojects {
18
+ repositories {
19
+ google()
20
+ mavenLocal()
21
+ mavenCentral()
22
+ maven { url 'https://maven.bandyer.com/releases' }
23
+ maven { url 'https://jitpack.io' }
24
+ }
25
+ }
26
+
27
+ apply plugin: 'kotlin-android'
28
+ apply plugin: 'kotlin-kapt'
29
+
30
+ android {
31
+ compileSdkVersion 31
32
+
33
+ defaultConfig {
34
+ minSdkVersion 21
35
+ testInstrumentationRunner "com.kaleyra.video_hybrid_native_bridge.utils.RandomRunner"
36
+ }
37
+
38
+ compileOptions {
39
+ sourceCompatibility JavaVersion.VERSION_1_8
40
+ targetCompatibility JavaVersion.VERSION_1_8
41
+ }
42
+
43
+ kotlinOptions {
44
+ jvmTarget = '1.8'
45
+ }
46
+
47
+ sourceSets {
48
+ main.java.srcDirs += 'src/main/kotlin'
49
+ }
50
+
51
+ testOptions {
52
+ unitTests.returnDefaultValues = true
53
+ }
54
+
55
+ }
56
+
57
+ dependencies {
58
+ implementation 'com.google.code.gson:gson:2.9.1'
59
+ implementation "com.kaleyra:collaboration-suite-utils:3.0.3"
60
+ implementation "com.bandyer:bandyer-android-sdk:3.6.1"
61
+ implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version"
62
+ compileOnly "org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.1"
63
+ implementation "androidx.room:room-runtime:2.4.2"
64
+ kapt "androidx.room:room-compiler:2.4.2"
65
+
66
+ /*** Testing ***/
67
+ testImplementation 'junit:junit:4.13.2'
68
+ testImplementation 'io.mockk:mockk:1.13.2'
69
+ testImplementation "org.json:json:20180813"
70
+ testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4'
71
+ testImplementation "com.github.ologe:flow-test-observer:1.5.1"
72
+ }
@@ -0,0 +1,5 @@
1
+ distributionBase=GRADLE_USER_HOME
2
+ distributionPath=wrapper/dists
3
+ distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
4
+ zipStoreBase=GRADLE_USER_HOME
5
+ zipStorePath=wrapper/dists
@@ -0,0 +1,22 @@
1
+ # Copyright © 2018-2023 Kaleyra S.p.a. All Rights Reserved.
2
+ # See LICENSE for licensing information
3
+
4
+ # Project-wide Gradle settings.
5
+
6
+ # IDE (e.g. Android Studio) users:
7
+ # Gradle settings configured through the IDE *will override*
8
+ # any settings specified in this file.
9
+
10
+ # For more details on how to configure your build environment visit
11
+ # http://www.gradle.org/docs/current/userguide/build_environment.html
12
+
13
+ # Specifies the JVM arguments used for the daemon process.
14
+ # The setting is particularly useful for tweaking memory settings.
15
+ android.enableJetifier=true
16
+ android.useAndroidX=true
17
+ org.gradle.jvmargs=-Xmx1536m
18
+
19
+ # When configured, Gradle will run in incubating parallel mode.
20
+ # This option should only be used with decoupled projects. More details, visit
21
+ # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
22
+ # org.gradle.parallel=true