@ethora/chat-component-rn 26.10.10 → 26.10.11

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 (483) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +125 -0
  3. package/lib/commonjs/booking/index.js +44 -0
  4. package/lib/commonjs/booking/index.js.map +1 -0
  5. package/lib/commonjs/booking/pendingScheduledCall.js +275 -0
  6. package/lib/commonjs/booking/pendingScheduledCall.js.map +1 -0
  7. package/lib/commonjs/booking/scheduleForm.js +91 -0
  8. package/lib/commonjs/booking/scheduleForm.js.map +1 -0
  9. package/lib/commonjs/booking/scheduledCall.js +141 -0
  10. package/lib/commonjs/booking/scheduledCall.js.map +1 -0
  11. package/lib/commonjs/booking/scheduledCallActions.js +128 -0
  12. package/lib/commonjs/booking/scheduledCallActions.js.map +1 -0
  13. package/lib/commonjs/booking/scheduledCallLink.js +143 -0
  14. package/lib/commonjs/booking/scheduledCallLink.js.map +1 -0
  15. package/lib/commonjs/booking/scheduledCallStore.js +64 -0
  16. package/lib/commonjs/booking/scheduledCallStore.js.map +1 -0
  17. package/lib/commonjs/booking/startRoomCall.js +84 -0
  18. package/lib/commonjs/booking/startRoomCall.js.map +1 -0
  19. package/lib/commonjs/calls/callBusy.js +18 -0
  20. package/lib/commonjs/calls/callBusy.js.map +1 -0
  21. package/lib/commonjs/calls/callDisplay.js +73 -0
  22. package/lib/commonjs/calls/callDisplay.js.map +1 -0
  23. package/lib/commonjs/calls/callMode.js +175 -0
  24. package/lib/commonjs/calls/callMode.js.map +1 -0
  25. package/lib/commonjs/calls/declineReport.js +20 -0
  26. package/lib/commonjs/calls/declineReport.js.map +1 -0
  27. package/lib/commonjs/calls/p2p/P2PCallController.js +724 -0
  28. package/lib/commonjs/calls/p2p/P2PCallController.js.map +1 -0
  29. package/lib/commonjs/calls/p2p/icePolicy.js +107 -0
  30. package/lib/commonjs/calls/p2p/icePolicy.js.map +1 -0
  31. package/lib/commonjs/calls/p2p/negotiator.js +202 -0
  32. package/lib/commonjs/calls/p2p/negotiator.js.map +1 -0
  33. package/lib/commonjs/calls/p2p/p2pRuntime.js +147 -0
  34. package/lib/commonjs/calls/p2p/p2pRuntime.js.map +1 -0
  35. package/lib/commonjs/calls/p2p/signalInbox.js +98 -0
  36. package/lib/commonjs/calls/p2p/signalInbox.js.map +1 -0
  37. package/lib/commonjs/calls/p2p/signalStanza.js +141 -0
  38. package/lib/commonjs/calls/p2p/signalStanza.js.map +1 -0
  39. package/lib/commonjs/calls/p2p/webrtcRuntime.js +53 -0
  40. package/lib/commonjs/calls/p2p/webrtcRuntime.js.map +1 -0
  41. package/lib/commonjs/calls/senderTrust.js +43 -0
  42. package/lib/commonjs/calls/senderTrust.js.map +1 -0
  43. package/lib/commonjs/calls/startCall.js +51 -0
  44. package/lib/commonjs/calls/startCall.js.map +1 -0
  45. package/lib/commonjs/components/Booking/BookingIcons.js +55 -0
  46. package/lib/commonjs/components/Booking/BookingIcons.js.map +1 -0
  47. package/lib/commonjs/components/Booking/ScheduleCallButton.js +64 -0
  48. package/lib/commonjs/components/Booking/ScheduleCallButton.js.map +1 -0
  49. package/lib/commonjs/components/Booking/ScheduleCallSheet.js +351 -0
  50. package/lib/commonjs/components/Booking/ScheduleCallSheet.js.map +1 -0
  51. package/lib/commonjs/components/Booking/ScheduledCallCard.js +203 -0
  52. package/lib/commonjs/components/Booking/ScheduledCallCard.js.map +1 -0
  53. package/lib/commonjs/components/Booking/ScheduledCallHost.js +23 -0
  54. package/lib/commonjs/components/Booking/ScheduledCallHost.js.map +1 -0
  55. package/lib/commonjs/components/Booking/ScheduledCallMessage.js +55 -0
  56. package/lib/commonjs/components/Booking/ScheduledCallMessage.js.map +1 -0
  57. package/lib/commonjs/components/Booking/ScheduledCallPreJoin.js +235 -0
  58. package/lib/commonjs/components/Booking/ScheduledCallPreJoin.js.map +1 -0
  59. package/lib/commonjs/components/Booking/bookingShared.js +305 -0
  60. package/lib/commonjs/components/Booking/bookingShared.js.map +1 -0
  61. package/lib/commonjs/components/MainComponents/ChatHeader.js +2 -1
  62. package/lib/commonjs/components/MainComponents/ChatHeader.js.map +1 -1
  63. package/lib/commonjs/components/MainComponents/LanguageSelectorButton.js +5 -2
  64. package/lib/commonjs/components/MainComponents/LanguageSelectorButton.js.map +1 -1
  65. package/lib/commonjs/components/MainComponents/LanguageSelectorModal.js +6 -3
  66. package/lib/commonjs/components/MainComponents/LanguageSelectorModal.js.map +1 -1
  67. package/lib/commonjs/components/MainComponents/MessageContainer.js +13 -0
  68. package/lib/commonjs/components/MainComponents/MessageContainer.js.map +1 -1
  69. package/lib/commonjs/components/MainComponents/ReduxWrapper.js +10 -0
  70. package/lib/commonjs/components/MainComponents/ReduxWrapper.js.map +1 -1
  71. package/lib/commonjs/components/Modals/ChatProfileModal/ReportChatModal.js +19 -15
  72. package/lib/commonjs/components/Modals/ChatProfileModal/ReportChatModal.js.map +1 -1
  73. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js +15 -8
  74. package/lib/commonjs/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  75. package/lib/commonjs/components/Modals/UserSettingsModal/LanguageCard.js +1 -1
  76. package/lib/commonjs/components/Modals/UserSettingsModal/LanguageCard.js.map +1 -1
  77. package/lib/commonjs/components/VideoCalls/ActiveCallBar.js +3 -2
  78. package/lib/commonjs/components/VideoCalls/ActiveCallBar.js.map +1 -1
  79. package/lib/commonjs/components/VideoCalls/CallButtons.js +19 -11
  80. package/lib/commonjs/components/VideoCalls/CallButtons.js.map +1 -1
  81. package/lib/commonjs/components/VideoCalls/CallControlBar.js +119 -0
  82. package/lib/commonjs/components/VideoCalls/CallControlBar.js.map +1 -0
  83. package/lib/commonjs/components/VideoCalls/CallVideo.js +49 -0
  84. package/lib/commonjs/components/VideoCalls/CallVideo.js.map +1 -0
  85. package/lib/commonjs/components/VideoCalls/GroupCallView.js +281 -0
  86. package/lib/commonjs/components/VideoCalls/GroupCallView.js.map +1 -0
  87. package/lib/commonjs/components/VideoCalls/P2PCallRunner.js +151 -0
  88. package/lib/commonjs/components/VideoCalls/P2PCallRunner.js.map +1 -0
  89. package/lib/commonjs/components/VideoCalls/VideoCallOverlay.js +38 -14
  90. package/lib/commonjs/components/VideoCalls/VideoCallOverlay.js.map +1 -1
  91. package/lib/commonjs/components/VideoCalls/VideoCallSession.js +57 -128
  92. package/lib/commonjs/components/VideoCalls/VideoCallSession.js.map +1 -1
  93. package/lib/commonjs/components/VideoCalls/callActions.js +3 -0
  94. package/lib/commonjs/components/VideoCalls/callActions.js.map +1 -1
  95. package/lib/commonjs/components/VideoCalls/callElapsed.js +38 -0
  96. package/lib/commonjs/components/VideoCalls/callElapsed.js.map +1 -0
  97. package/lib/commonjs/components/VideoCalls/callLive.js +15 -0
  98. package/lib/commonjs/components/VideoCalls/callLive.js.map +1 -0
  99. package/lib/commonjs/components/VideoCalls/callSessionController.js +81 -24
  100. package/lib/commonjs/components/VideoCalls/callSessionController.js.map +1 -1
  101. package/lib/commonjs/components/VideoCalls/callSessionTypes.js +41 -0
  102. package/lib/commonjs/components/VideoCalls/callSessionTypes.js.map +1 -0
  103. package/lib/commonjs/components/VideoCalls/groupLayout.js +43 -0
  104. package/lib/commonjs/components/VideoCalls/groupLayout.js.map +1 -0
  105. package/lib/commonjs/components/VideoCalls/p2pCallSession.js +272 -0
  106. package/lib/commonjs/components/VideoCalls/p2pCallSession.js.map +1 -0
  107. package/lib/commonjs/components/VideoCalls/useCallKeep.js +7 -2
  108. package/lib/commonjs/components/VideoCalls/useCallKeep.js.map +1 -1
  109. package/lib/commonjs/components/VideoCalls/useOngoingCallNotification.js +2 -1
  110. package/lib/commonjs/components/VideoCalls/useOngoingCallNotification.js.map +1 -1
  111. package/lib/commonjs/context/xmppProvider.js +2 -1
  112. package/lib/commonjs/context/xmppProvider.js.map +1 -1
  113. package/lib/commonjs/helpers/callPush.js +3 -1
  114. package/lib/commonjs/helpers/callPush.js.map +1 -1
  115. package/lib/commonjs/helpers/incomingCallFromPush.js +63 -7
  116. package/lib/commonjs/helpers/incomingCallFromPush.js.map +1 -1
  117. package/lib/commonjs/helpers/pushPayload.js +5 -0
  118. package/lib/commonjs/helpers/pushPayload.js.map +1 -1
  119. package/lib/commonjs/helpers/reportRoom.js +76 -0
  120. package/lib/commonjs/helpers/reportRoom.js.map +1 -0
  121. package/lib/commonjs/i18n/strings.js +444 -0
  122. package/lib/commonjs/i18n/strings.js.map +1 -1
  123. package/lib/commonjs/main.js +93 -0
  124. package/lib/commonjs/main.js.map +1 -1
  125. package/lib/commonjs/networking/api-requests/callState.api.js +75 -0
  126. package/lib/commonjs/networking/api-requests/callState.api.js.map +1 -0
  127. package/lib/commonjs/networking/api-requests/push.api.js +29 -6
  128. package/lib/commonjs/networking/api-requests/push.api.js.map +1 -1
  129. package/lib/commonjs/networking/api-requests/rooms.api.js +8 -2
  130. package/lib/commonjs/networking/api-requests/rooms.api.js.map +1 -1
  131. package/lib/commonjs/networking/api-requests/scheduledCalls.api.js +141 -0
  132. package/lib/commonjs/networking/api-requests/scheduledCalls.api.js.map +1 -0
  133. package/lib/commonjs/networking/callTokenStanza.js +210 -50
  134. package/lib/commonjs/networking/callTokenStanza.js.map +1 -1
  135. package/lib/commonjs/roomStore/callSlice.js +59 -4
  136. package/lib/commonjs/roomStore/callSlice.js.map +1 -1
  137. package/lib/commonjs/services/appBadge.js +80 -0
  138. package/lib/commonjs/services/appBadge.js.map +1 -0
  139. package/lib/commonjs/services/languageSettings.js +47 -15
  140. package/lib/commonjs/services/languageSettings.js.map +1 -1
  141. package/lib/commonjs/services/pushRegistration.js +21 -5
  142. package/lib/commonjs/services/pushRegistration.js.map +1 -1
  143. package/lib/commonjs/version.js +1 -1
  144. package/lib/module/booking/index.js +5 -0
  145. package/lib/module/booking/index.js.map +1 -0
  146. package/lib/module/booking/pendingScheduledCall.js +261 -0
  147. package/lib/module/booking/pendingScheduledCall.js.map +1 -0
  148. package/lib/module/booking/scheduleForm.js +79 -0
  149. package/lib/module/booking/scheduleForm.js.map +1 -0
  150. package/lib/module/booking/scheduledCall.js +129 -0
  151. package/lib/module/booking/scheduledCall.js.map +1 -0
  152. package/lib/module/booking/scheduledCallActions.js +118 -0
  153. package/lib/module/booking/scheduledCallActions.js.map +1 -0
  154. package/lib/module/booking/scheduledCallLink.js +136 -0
  155. package/lib/module/booking/scheduledCallLink.js.map +1 -0
  156. package/lib/module/booking/scheduledCallStore.js +60 -0
  157. package/lib/module/booking/scheduledCallStore.js.map +1 -0
  158. package/lib/module/booking/startRoomCall.js +80 -0
  159. package/lib/module/booking/startRoomCall.js.map +1 -0
  160. package/lib/module/calls/callBusy.js +13 -0
  161. package/lib/module/calls/callBusy.js.map +1 -0
  162. package/lib/module/calls/callDisplay.js +65 -0
  163. package/lib/module/calls/callDisplay.js.map +1 -0
  164. package/lib/module/calls/callMode.js +168 -0
  165. package/lib/module/calls/callMode.js.map +1 -0
  166. package/lib/module/calls/declineReport.js +16 -0
  167. package/lib/module/calls/declineReport.js.map +1 -0
  168. package/lib/module/calls/p2p/P2PCallController.js +718 -0
  169. package/lib/module/calls/p2p/P2PCallController.js.map +1 -0
  170. package/lib/module/calls/p2p/icePolicy.js +102 -0
  171. package/lib/module/calls/p2p/icePolicy.js.map +1 -0
  172. package/lib/module/calls/p2p/negotiator.js +197 -0
  173. package/lib/module/calls/p2p/negotiator.js.map +1 -0
  174. package/lib/module/calls/p2p/p2pRuntime.js +137 -0
  175. package/lib/module/calls/p2p/p2pRuntime.js.map +1 -0
  176. package/lib/module/calls/p2p/signalInbox.js +93 -0
  177. package/lib/module/calls/p2p/signalInbox.js.map +1 -0
  178. package/lib/module/calls/p2p/signalStanza.js +135 -0
  179. package/lib/module/calls/p2p/signalStanza.js.map +1 -0
  180. package/lib/module/calls/p2p/webrtcRuntime.js +46 -0
  181. package/lib/module/calls/p2p/webrtcRuntime.js.map +1 -0
  182. package/lib/module/calls/senderTrust.js +38 -0
  183. package/lib/module/calls/senderTrust.js.map +1 -0
  184. package/lib/module/calls/startCall.js +47 -0
  185. package/lib/module/calls/startCall.js.map +1 -0
  186. package/lib/module/components/Booking/BookingIcons.js +48 -0
  187. package/lib/module/components/Booking/BookingIcons.js.map +1 -0
  188. package/lib/module/components/Booking/ScheduleCallButton.js +59 -0
  189. package/lib/module/components/Booking/ScheduleCallButton.js.map +1 -0
  190. package/lib/module/components/Booking/ScheduleCallSheet.js +345 -0
  191. package/lib/module/components/Booking/ScheduleCallSheet.js.map +1 -0
  192. package/lib/module/components/Booking/ScheduledCallCard.js +197 -0
  193. package/lib/module/components/Booking/ScheduledCallCard.js.map +1 -0
  194. package/lib/module/components/Booking/ScheduledCallHost.js +18 -0
  195. package/lib/module/components/Booking/ScheduledCallHost.js.map +1 -0
  196. package/lib/module/components/Booking/ScheduledCallMessage.js +48 -0
  197. package/lib/module/components/Booking/ScheduledCallMessage.js.map +1 -0
  198. package/lib/module/components/Booking/ScheduledCallPreJoin.js +229 -0
  199. package/lib/module/components/Booking/ScheduledCallPreJoin.js.map +1 -0
  200. package/lib/module/components/Booking/bookingShared.js +291 -0
  201. package/lib/module/components/Booking/bookingShared.js.map +1 -0
  202. package/lib/module/components/MainComponents/ChatHeader.js +2 -1
  203. package/lib/module/components/MainComponents/ChatHeader.js.map +1 -1
  204. package/lib/module/components/MainComponents/LanguageSelectorButton.js +5 -2
  205. package/lib/module/components/MainComponents/LanguageSelectorButton.js.map +1 -1
  206. package/lib/module/components/MainComponents/LanguageSelectorModal.js +7 -4
  207. package/lib/module/components/MainComponents/LanguageSelectorModal.js.map +1 -1
  208. package/lib/module/components/MainComponents/MessageContainer.js +13 -0
  209. package/lib/module/components/MainComponents/MessageContainer.js.map +1 -1
  210. package/lib/module/components/MainComponents/ReduxWrapper.js +10 -0
  211. package/lib/module/components/MainComponents/ReduxWrapper.js.map +1 -1
  212. package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js +21 -15
  213. package/lib/module/components/Modals/ChatProfileModal/ReportChatModal.js.map +1 -1
  214. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js +17 -10
  215. package/lib/module/components/Modals/UserProfileModal/UserProfileModal.js.map +1 -1
  216. package/lib/module/components/Modals/UserSettingsModal/LanguageCard.js +1 -1
  217. package/lib/module/components/Modals/UserSettingsModal/LanguageCard.js.map +1 -1
  218. package/lib/module/components/VideoCalls/ActiveCallBar.js +3 -2
  219. package/lib/module/components/VideoCalls/ActiveCallBar.js.map +1 -1
  220. package/lib/module/components/VideoCalls/CallButtons.js +19 -11
  221. package/lib/module/components/VideoCalls/CallButtons.js.map +1 -1
  222. package/lib/module/components/VideoCalls/CallControlBar.js +113 -0
  223. package/lib/module/components/VideoCalls/CallControlBar.js.map +1 -0
  224. package/lib/module/components/VideoCalls/CallVideo.js +43 -0
  225. package/lib/module/components/VideoCalls/CallVideo.js.map +1 -0
  226. package/lib/module/components/VideoCalls/GroupCallView.js +275 -0
  227. package/lib/module/components/VideoCalls/GroupCallView.js.map +1 -0
  228. package/lib/module/components/VideoCalls/P2PCallRunner.js +147 -0
  229. package/lib/module/components/VideoCalls/P2PCallRunner.js.map +1 -0
  230. package/lib/module/components/VideoCalls/VideoCallOverlay.js +38 -14
  231. package/lib/module/components/VideoCalls/VideoCallOverlay.js.map +1 -1
  232. package/lib/module/components/VideoCalls/VideoCallSession.js +46 -127
  233. package/lib/module/components/VideoCalls/VideoCallSession.js.map +1 -1
  234. package/lib/module/components/VideoCalls/callActions.js +3 -0
  235. package/lib/module/components/VideoCalls/callActions.js.map +1 -1
  236. package/lib/module/components/VideoCalls/callElapsed.js +33 -0
  237. package/lib/module/components/VideoCalls/callElapsed.js.map +1 -0
  238. package/lib/module/components/VideoCalls/callLive.js +10 -0
  239. package/lib/module/components/VideoCalls/callLive.js.map +1 -0
  240. package/lib/module/components/VideoCalls/callSessionController.js +80 -24
  241. package/lib/module/components/VideoCalls/callSessionController.js.map +1 -1
  242. package/lib/module/components/VideoCalls/callSessionTypes.js +37 -0
  243. package/lib/module/components/VideoCalls/callSessionTypes.js.map +1 -0
  244. package/lib/module/components/VideoCalls/groupLayout.js +36 -0
  245. package/lib/module/components/VideoCalls/groupLayout.js.map +1 -0
  246. package/lib/module/components/VideoCalls/p2pCallSession.js +256 -0
  247. package/lib/module/components/VideoCalls/p2pCallSession.js.map +1 -0
  248. package/lib/module/components/VideoCalls/useCallKeep.js +8 -2
  249. package/lib/module/components/VideoCalls/useCallKeep.js.map +1 -1
  250. package/lib/module/components/VideoCalls/useOngoingCallNotification.js +2 -1
  251. package/lib/module/components/VideoCalls/useOngoingCallNotification.js.map +1 -1
  252. package/lib/module/context/xmppProvider.js +2 -1
  253. package/lib/module/context/xmppProvider.js.map +1 -1
  254. package/lib/module/helpers/callPush.js +3 -1
  255. package/lib/module/helpers/callPush.js.map +1 -1
  256. package/lib/module/helpers/incomingCallFromPush.js +63 -7
  257. package/lib/module/helpers/incomingCallFromPush.js.map +1 -1
  258. package/lib/module/helpers/pushPayload.js +5 -0
  259. package/lib/module/helpers/pushPayload.js.map +1 -1
  260. package/lib/module/helpers/reportRoom.js +70 -0
  261. package/lib/module/helpers/reportRoom.js.map +1 -0
  262. package/lib/module/i18n/strings.js +444 -0
  263. package/lib/module/i18n/strings.js.map +1 -1
  264. package/lib/module/main.js +5 -0
  265. package/lib/module/main.js.map +1 -1
  266. package/lib/module/networking/api-requests/callState.api.js +66 -0
  267. package/lib/module/networking/api-requests/callState.api.js.map +1 -0
  268. package/lib/module/networking/api-requests/push.api.js +29 -6
  269. package/lib/module/networking/api-requests/push.api.js.map +1 -1
  270. package/lib/module/networking/api-requests/rooms.api.js +8 -2
  271. package/lib/module/networking/api-requests/rooms.api.js.map +1 -1
  272. package/lib/module/networking/api-requests/scheduledCalls.api.js +130 -0
  273. package/lib/module/networking/api-requests/scheduledCalls.api.js.map +1 -0
  274. package/lib/module/networking/callTokenStanza.js +210 -50
  275. package/lib/module/networking/callTokenStanza.js.map +1 -1
  276. package/lib/module/roomStore/callSlice.js +57 -3
  277. package/lib/module/roomStore/callSlice.js.map +1 -1
  278. package/lib/module/services/appBadge.js +74 -0
  279. package/lib/module/services/appBadge.js.map +1 -0
  280. package/lib/module/services/languageSettings.js +44 -13
  281. package/lib/module/services/languageSettings.js.map +1 -1
  282. package/lib/module/services/pushRegistration.js +21 -5
  283. package/lib/module/services/pushRegistration.js.map +1 -1
  284. package/lib/module/version.js +1 -1
  285. package/lib/typescript/booking/index.d.ts +3 -0
  286. package/lib/typescript/booking/index.d.ts.map +1 -0
  287. package/lib/typescript/booking/pendingScheduledCall.d.ts +80 -0
  288. package/lib/typescript/booking/pendingScheduledCall.d.ts.map +1 -0
  289. package/lib/typescript/booking/scheduleForm.d.ts +28 -0
  290. package/lib/typescript/booking/scheduleForm.d.ts.map +1 -0
  291. package/lib/typescript/booking/scheduledCall.d.ts +52 -0
  292. package/lib/typescript/booking/scheduledCall.d.ts.map +1 -0
  293. package/lib/typescript/booking/scheduledCallActions.d.ts +22 -0
  294. package/lib/typescript/booking/scheduledCallActions.d.ts.map +1 -0
  295. package/lib/typescript/booking/scheduledCallLink.d.ts +37 -0
  296. package/lib/typescript/booking/scheduledCallLink.d.ts.map +1 -0
  297. package/lib/typescript/booking/scheduledCallStore.d.ts +47 -0
  298. package/lib/typescript/booking/scheduledCallStore.d.ts.map +1 -0
  299. package/lib/typescript/booking/startRoomCall.d.ts +12 -0
  300. package/lib/typescript/booking/startRoomCall.d.ts.map +1 -0
  301. package/lib/typescript/calls/callBusy.d.ts +9 -0
  302. package/lib/typescript/calls/callBusy.d.ts.map +1 -0
  303. package/lib/typescript/calls/callDisplay.d.ts +23 -0
  304. package/lib/typescript/calls/callDisplay.d.ts.map +1 -0
  305. package/lib/typescript/calls/callMode.d.ts +106 -0
  306. package/lib/typescript/calls/callMode.d.ts.map +1 -0
  307. package/lib/typescript/calls/declineReport.d.ts +11 -0
  308. package/lib/typescript/calls/declineReport.d.ts.map +1 -0
  309. package/lib/typescript/calls/p2p/P2PCallController.d.ts +150 -0
  310. package/lib/typescript/calls/p2p/P2PCallController.d.ts.map +1 -0
  311. package/lib/typescript/calls/p2p/icePolicy.d.ts +37 -0
  312. package/lib/typescript/calls/p2p/icePolicy.d.ts.map +1 -0
  313. package/lib/typescript/calls/p2p/negotiator.d.ts +57 -0
  314. package/lib/typescript/calls/p2p/negotiator.d.ts.map +1 -0
  315. package/lib/typescript/calls/p2p/p2pRuntime.d.ts +41 -0
  316. package/lib/typescript/calls/p2p/p2pRuntime.d.ts.map +1 -0
  317. package/lib/typescript/calls/p2p/signalInbox.d.ts +35 -0
  318. package/lib/typescript/calls/p2p/signalInbox.d.ts.map +1 -0
  319. package/lib/typescript/calls/p2p/signalStanza.d.ts +52 -0
  320. package/lib/typescript/calls/p2p/signalStanza.d.ts.map +1 -0
  321. package/lib/typescript/calls/p2p/webrtcRuntime.d.ts +32 -0
  322. package/lib/typescript/calls/p2p/webrtcRuntime.d.ts.map +1 -0
  323. package/lib/typescript/calls/senderTrust.d.ts +8 -0
  324. package/lib/typescript/calls/senderTrust.d.ts.map +1 -0
  325. package/lib/typescript/calls/startCall.d.ts +17 -0
  326. package/lib/typescript/calls/startCall.d.ts.map +1 -0
  327. package/lib/typescript/components/Booking/BookingIcons.d.ts +9 -0
  328. package/lib/typescript/components/Booking/BookingIcons.d.ts.map +1 -0
  329. package/lib/typescript/components/Booking/ScheduleCallButton.d.ts +11 -0
  330. package/lib/typescript/components/Booking/ScheduleCallButton.d.ts.map +1 -0
  331. package/lib/typescript/components/Booking/ScheduleCallSheet.d.ts +4 -0
  332. package/lib/typescript/components/Booking/ScheduleCallSheet.d.ts.map +1 -0
  333. package/lib/typescript/components/Booking/ScheduledCallCard.d.ts +14 -0
  334. package/lib/typescript/components/Booking/ScheduledCallCard.d.ts.map +1 -0
  335. package/lib/typescript/components/Booking/ScheduledCallHost.d.ts +10 -0
  336. package/lib/typescript/components/Booking/ScheduledCallHost.d.ts.map +1 -0
  337. package/lib/typescript/components/Booking/ScheduledCallMessage.d.ts +20 -0
  338. package/lib/typescript/components/Booking/ScheduledCallMessage.d.ts.map +1 -0
  339. package/lib/typescript/components/Booking/ScheduledCallPreJoin.d.ts +8 -0
  340. package/lib/typescript/components/Booking/ScheduledCallPreJoin.d.ts.map +1 -0
  341. package/lib/typescript/components/Booking/bookingShared.d.ts +199 -0
  342. package/lib/typescript/components/Booking/bookingShared.d.ts.map +1 -0
  343. package/lib/typescript/components/MainComponents/ChatHeader.d.ts.map +1 -1
  344. package/lib/typescript/components/MainComponents/LanguageSelectorButton.d.ts +3 -1
  345. package/lib/typescript/components/MainComponents/LanguageSelectorButton.d.ts.map +1 -1
  346. package/lib/typescript/components/MainComponents/LanguageSelectorModal.d.ts.map +1 -1
  347. package/lib/typescript/components/MainComponents/MessageContainer.d.ts.map +1 -1
  348. package/lib/typescript/components/MainComponents/ReduxWrapper.d.ts.map +1 -1
  349. package/lib/typescript/components/Modals/ChatProfileModal/ReportChatModal.d.ts.map +1 -1
  350. package/lib/typescript/components/Modals/UserProfileModal/UserProfileModal.d.ts.map +1 -1
  351. package/lib/typescript/components/Modals/UserSettingsModal/LanguageCard.d.ts.map +1 -1
  352. package/lib/typescript/components/VideoCalls/ActiveCallBar.d.ts.map +1 -1
  353. package/lib/typescript/components/VideoCalls/CallButtons.d.ts +2 -1
  354. package/lib/typescript/components/VideoCalls/CallButtons.d.ts.map +1 -1
  355. package/lib/typescript/components/VideoCalls/CallControlBar.d.ts +17 -0
  356. package/lib/typescript/components/VideoCalls/CallControlBar.d.ts.map +1 -0
  357. package/lib/typescript/components/VideoCalls/CallVideo.d.ts +23 -0
  358. package/lib/typescript/components/VideoCalls/CallVideo.d.ts.map +1 -0
  359. package/lib/typescript/components/VideoCalls/GroupCallView.d.ts +22 -0
  360. package/lib/typescript/components/VideoCalls/GroupCallView.d.ts.map +1 -0
  361. package/lib/typescript/components/VideoCalls/P2PCallRunner.d.ts +2 -0
  362. package/lib/typescript/components/VideoCalls/P2PCallRunner.d.ts.map +1 -0
  363. package/lib/typescript/components/VideoCalls/VideoCallOverlay.d.ts.map +1 -1
  364. package/lib/typescript/components/VideoCalls/VideoCallSession.d.ts +10 -12
  365. package/lib/typescript/components/VideoCalls/VideoCallSession.d.ts.map +1 -1
  366. package/lib/typescript/components/VideoCalls/callActions.d.ts.map +1 -1
  367. package/lib/typescript/components/VideoCalls/callElapsed.d.ts +8 -0
  368. package/lib/typescript/components/VideoCalls/callElapsed.d.ts.map +1 -0
  369. package/lib/typescript/components/VideoCalls/callLive.d.ts +9 -0
  370. package/lib/typescript/components/VideoCalls/callLive.d.ts.map +1 -0
  371. package/lib/typescript/components/VideoCalls/callSessionController.d.ts +10 -31
  372. package/lib/typescript/components/VideoCalls/callSessionController.d.ts.map +1 -1
  373. package/lib/typescript/components/VideoCalls/callSessionTypes.d.ts +60 -0
  374. package/lib/typescript/components/VideoCalls/callSessionTypes.d.ts.map +1 -0
  375. package/lib/typescript/components/VideoCalls/groupLayout.d.ts +23 -0
  376. package/lib/typescript/components/VideoCalls/groupLayout.d.ts.map +1 -0
  377. package/lib/typescript/components/VideoCalls/p2pCallSession.d.ts +31 -0
  378. package/lib/typescript/components/VideoCalls/p2pCallSession.d.ts.map +1 -0
  379. package/lib/typescript/components/VideoCalls/useCallKeep.d.ts.map +1 -1
  380. package/lib/typescript/components/VideoCalls/useOngoingCallNotification.d.ts.map +1 -1
  381. package/lib/typescript/context/xmppProvider.d.ts.map +1 -1
  382. package/lib/typescript/helpers/callPush.d.ts +11 -1
  383. package/lib/typescript/helpers/callPush.d.ts.map +1 -1
  384. package/lib/typescript/helpers/incomingCallFromPush.d.ts.map +1 -1
  385. package/lib/typescript/helpers/pushPayload.d.ts +1 -1
  386. package/lib/typescript/helpers/pushPayload.d.ts.map +1 -1
  387. package/lib/typescript/helpers/reportRoom.d.ts +19 -0
  388. package/lib/typescript/helpers/reportRoom.d.ts.map +1 -0
  389. package/lib/typescript/i18n/strings.d.ts.map +1 -1
  390. package/lib/typescript/main.d.ts +6 -1
  391. package/lib/typescript/main.d.ts.map +1 -1
  392. package/lib/typescript/networking/api-requests/callState.api.d.ts +25 -0
  393. package/lib/typescript/networking/api-requests/callState.api.d.ts.map +1 -0
  394. package/lib/typescript/networking/api-requests/push.api.d.ts +9 -2
  395. package/lib/typescript/networking/api-requests/push.api.d.ts.map +1 -1
  396. package/lib/typescript/networking/api-requests/rooms.api.d.ts +2 -1
  397. package/lib/typescript/networking/api-requests/rooms.api.d.ts.map +1 -1
  398. package/lib/typescript/networking/api-requests/scheduledCalls.api.d.ts +86 -0
  399. package/lib/typescript/networking/api-requests/scheduledCalls.api.d.ts.map +1 -0
  400. package/lib/typescript/networking/callTokenStanza.d.ts.map +1 -1
  401. package/lib/typescript/roomStore/callSlice.d.ts +23 -1
  402. package/lib/typescript/roomStore/callSlice.d.ts.map +1 -1
  403. package/lib/typescript/services/appBadge.d.ts +3 -0
  404. package/lib/typescript/services/appBadge.d.ts.map +1 -0
  405. package/lib/typescript/services/languageSettings.d.ts +7 -0
  406. package/lib/typescript/services/languageSettings.d.ts.map +1 -1
  407. package/lib/typescript/services/pushRegistration.d.ts.map +1 -1
  408. package/lib/typescript/types/types.d.ts +67 -4
  409. package/lib/typescript/types/types.d.ts.map +1 -1
  410. package/lib/typescript/version.d.ts +1 -1
  411. package/package.json +1 -1
  412. package/src/booking/index.ts +10 -0
  413. package/src/booking/pendingScheduledCall.ts +272 -0
  414. package/src/booking/scheduleForm.ts +84 -0
  415. package/src/booking/scheduledCall.ts +163 -0
  416. package/src/booking/scheduledCallActions.ts +141 -0
  417. package/src/booking/scheduledCallLink.ts +145 -0
  418. package/src/booking/scheduledCallStore.ts +69 -0
  419. package/src/booking/startRoomCall.ts +103 -0
  420. package/src/calls/callBusy.ts +10 -0
  421. package/src/calls/callDisplay.ts +74 -0
  422. package/src/calls/callMode.ts +286 -0
  423. package/src/calls/declineReport.ts +16 -0
  424. package/src/calls/p2p/P2PCallController.ts +813 -0
  425. package/src/calls/p2p/icePolicy.ts +99 -0
  426. package/src/calls/p2p/negotiator.ts +186 -0
  427. package/src/calls/p2p/p2pRuntime.ts +164 -0
  428. package/src/calls/p2p/signalInbox.ts +117 -0
  429. package/src/calls/p2p/signalStanza.ts +205 -0
  430. package/src/calls/p2p/webrtcRuntime.ts +60 -0
  431. package/src/calls/senderTrust.ts +40 -0
  432. package/src/calls/startCall.ts +56 -0
  433. package/src/components/Booking/BookingIcons.tsx +44 -0
  434. package/src/components/Booking/ScheduleCallButton.tsx +66 -0
  435. package/src/components/Booking/ScheduleCallSheet.tsx +380 -0
  436. package/src/components/Booking/ScheduledCallCard.tsx +216 -0
  437. package/src/components/Booking/ScheduledCallHost.tsx +18 -0
  438. package/src/components/Booking/ScheduledCallMessage.tsx +62 -0
  439. package/src/components/Booking/ScheduledCallPreJoin.tsx +230 -0
  440. package/src/components/Booking/bookingShared.tsx +295 -0
  441. package/src/components/MainComponents/ChatHeader.tsx +2 -0
  442. package/src/components/MainComponents/LanguageSelectorButton.tsx +9 -2
  443. package/src/components/MainComponents/LanguageSelectorModal.tsx +10 -6
  444. package/src/components/MainComponents/MessageContainer.tsx +15 -0
  445. package/src/components/MainComponents/ReduxWrapper.tsx +10 -0
  446. package/src/components/Modals/ChatProfileModal/ReportChatModal.tsx +22 -22
  447. package/src/components/Modals/UserProfileModal/UserProfileModal.tsx +28 -9
  448. package/src/components/Modals/UserSettingsModal/LanguageCard.tsx +9 -7
  449. package/src/components/VideoCalls/ActiveCallBar.tsx +6 -5
  450. package/src/components/VideoCalls/CallButtons.tsx +23 -12
  451. package/src/components/VideoCalls/CallControlBar.tsx +131 -0
  452. package/src/components/VideoCalls/CallVideo.tsx +59 -0
  453. package/src/components/VideoCalls/GroupCallView.tsx +324 -0
  454. package/src/components/VideoCalls/P2PCallRunner.tsx +192 -0
  455. package/src/components/VideoCalls/VideoCallOverlay.tsx +62 -17
  456. package/src/components/VideoCalls/VideoCallSession.tsx +55 -133
  457. package/src/components/VideoCalls/callActions.ts +3 -0
  458. package/src/components/VideoCalls/callElapsed.ts +27 -0
  459. package/src/components/VideoCalls/callLive.ts +13 -0
  460. package/src/components/VideoCalls/callSessionController.ts +130 -55
  461. package/src/components/VideoCalls/callSessionTypes.ts +80 -0
  462. package/src/components/VideoCalls/groupLayout.ts +48 -0
  463. package/src/components/VideoCalls/p2pCallSession.ts +291 -0
  464. package/src/components/VideoCalls/useCallKeep.ts +9 -2
  465. package/src/components/VideoCalls/useOngoingCallNotification.ts +2 -2
  466. package/src/context/xmppProvider.tsx +3 -0
  467. package/src/helpers/callPush.ts +13 -1
  468. package/src/helpers/incomingCallFromPush.ts +65 -7
  469. package/src/helpers/pushPayload.ts +9 -1
  470. package/src/helpers/reportRoom.ts +93 -0
  471. package/src/i18n/strings.ts +444 -0
  472. package/src/main.ts +33 -0
  473. package/src/networking/api-requests/callState.api.ts +83 -0
  474. package/src/networking/api-requests/push.api.ts +28 -3
  475. package/src/networking/api-requests/rooms.api.ts +12 -3
  476. package/src/networking/api-requests/scheduledCalls.api.ts +232 -0
  477. package/src/networking/callTokenStanza.ts +247 -50
  478. package/src/roomStore/callSlice.ts +86 -2
  479. package/src/services/appBadge.ts +85 -0
  480. package/src/services/languageSettings.ts +43 -8
  481. package/src/services/pushRegistration.ts +34 -3
  482. package/src/types/types.ts +70 -4
  483. package/src/version.ts +1 -1
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.sanitizeXmppUsername = exports.sanitizeCallName = exports.safeCallName = exports.looksLikeRawRoomName = exports.NEUTRAL_INCOMING_CALL_LABEL = void 0;
7
+ // Display-name hygiene for the call UI. Names reach the ring screen from
8
+ // several places (a call-token attribute, a JWT claim, a room title, a push
9
+ // payload); this keeps raw identifiers and hostile text from ever being shown
10
+ // as a person's name.
11
+
12
+ /** Shown on the ring screen when no human-readable name is known. */
13
+ const NEUTRAL_INCOMING_CALL_LABEL = exports.NEUTRAL_INCOMING_CALL_LABEL = 'Incoming call';
14
+ const MAX_CALL_NAME_LENGTH = 80;
15
+ const HEX24 = '[0-9a-fA-F]{24}';
16
+ // A user JID local part: <appId>_<userId>, optionally with an @domain.
17
+ const USER_ID = `${HEX24}_${HEX24}(?:@[A-Za-z0-9.]+)?`;
18
+
19
+ // A 1:1 chat is named "<jidA>-<jidB>" (two user ids joined by a hyphen).
20
+ const ONE_TO_ONE_ROOM = new RegExp(`^${USER_ID}(?:-${USER_ID})*$`);
21
+ // A group chat is named "<appId>_<uuid>".
22
+ const GROUP_ROOM = new RegExp(`^${HEX24}_[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$`);
23
+ // Anything long that is nothing but hex, underscores and hyphens is an id.
24
+ const OPAQUE_ID = /^[0-9a-f_-]{16,}$/i;
25
+
26
+ /**
27
+ * True for strings that are a chat's internal name or an id rather than
28
+ * something a person would be called: two user JIDs joined (the private chat
29
+ * name), a lone user id, an `<appId>_<uuid>` group name, or any long run of
30
+ * hex / underscore / hyphen.
31
+ */
32
+ const looksLikeRawRoomName = value => {
33
+ const text = typeof value === 'string' ? value.trim() : '';
34
+ if (!text) return false;
35
+ return ONE_TO_ONE_ROOM.test(text) || GROUP_ROOM.test(text) || OPAQUE_ID.test(text);
36
+ };
37
+
38
+ // C0/C1 controls, bidi overrides/isolates and zero-width characters: none of
39
+ // them belong in a name, and the bidi ones can make text read backwards.
40
+ // eslint-disable-next-line no-control-regex
41
+ exports.looksLikeRawRoomName = looksLikeRawRoomName;
42
+ const UNWANTED_CHARS = /[\u0000-\u001F\u007F-\u009F​-‏‪-‮⁠-⁤⁦-⁩]/g;
43
+
44
+ /**
45
+ * Plain-text, display-safe version of a name: control characters stripped,
46
+ * whitespace collapsed and trimmed, capped at about 80 characters. Returns ''
47
+ * when nothing usable is left or the value is a raw chat name / id.
48
+ */
49
+ const sanitizeCallName = value => {
50
+ if (typeof value !== 'string') return '';
51
+ const cleaned = value.replace(UNWANTED_CHARS, ' ').replace(/\s+/g, ' ').trim();
52
+ if (!cleaned) return '';
53
+ // Cap by code point so a surrogate pair is never cut in half.
54
+ const capped = Array.from(cleaned).slice(0, MAX_CALL_NAME_LENGTH).join('').trim();
55
+ return looksLikeRawRoomName(capped) ? '' : capped;
56
+ };
57
+
58
+ /** sanitizeCallName with null instead of '' (state-friendly). */
59
+ exports.sanitizeCallName = sanitizeCallName;
60
+ const safeCallName = value => sanitizeCallName(value) || null;
61
+
62
+ /**
63
+ * An xmppUsername from a stanza attribute, or null when it is not shaped like
64
+ * one (it is only ever used for lookups and routing, never shown).
65
+ */
66
+ exports.safeCallName = safeCallName;
67
+ const sanitizeXmppUsername = value => {
68
+ const text = typeof value === 'string' ? value.trim() : '';
69
+ const local = text.split('/')[0];
70
+ return /^[A-Za-z0-9_-]{1,128}(?:@[A-Za-z0-9.-]+)?$/.test(local) ? local : null;
71
+ };
72
+ exports.sanitizeXmppUsername = sanitizeXmppUsername;
73
+ //# sourceMappingURL=callDisplay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["NEUTRAL_INCOMING_CALL_LABEL","exports","MAX_CALL_NAME_LENGTH","HEX24","USER_ID","ONE_TO_ONE_ROOM","RegExp","GROUP_ROOM","OPAQUE_ID","looksLikeRawRoomName","value","text","trim","test","UNWANTED_CHARS","sanitizeCallName","cleaned","replace","capped","Array","from","slice","join","safeCallName","sanitizeXmppUsername","local","split"],"sourceRoot":"../../../src","sources":["calls/callDisplay.ts"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;;AAEA;AACO,MAAMA,2BAA2B,GAAAC,OAAA,CAAAD,2BAAA,GAAG,eAAe;AAE1D,MAAME,oBAAoB,GAAG,EAAE;AAE/B,MAAMC,KAAK,GAAG,iBAAiB;AAC/B;AACA,MAAMC,OAAO,GAAG,GAAGD,KAAK,IAAIA,KAAK,qBAAqB;;AAEtD;AACA,MAAME,eAAe,GAAG,IAAIC,MAAM,CAAC,IAAIF,OAAO,OAAOA,OAAO,KAAK,CAAC;AAClE;AACA,MAAMG,UAAU,GAAG,IAAID,MAAM,CAC3B,IAAIH,KAAK,+EACX,CAAC;AACD;AACA,MAAMK,SAAS,GAAG,oBAAoB;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,oBAAoB,GAAIC,KAAc,IAAc;EAC/D,MAAMC,IAAI,GAAG,OAAOD,KAAK,KAAK,QAAQ,GAAGA,KAAK,CAACE,IAAI,CAAC,CAAC,GAAG,EAAE;EAC1D,IAAI,CAACD,IAAI,EAAE,OAAO,KAAK;EACvB,OACEN,eAAe,CAACQ,IAAI,CAACF,IAAI,CAAC,IAC1BJ,UAAU,CAACM,IAAI,CAACF,IAAI,CAAC,IACrBH,SAAS,CAACK,IAAI,CAACF,IAAI,CAAC;AAExB,CAAC;;AAED;AACA;AACA;AAAAV,OAAA,CAAAQ,oBAAA,GAAAA,oBAAA;AACA,MAAMK,cAAc,GAAG,4CAA4C;;AAEnE;AACA;AACA;AACA;AACA;AACO,MAAMC,gBAAgB,GAAIL,KAAc,IAAa;EAC1D,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE,OAAO,EAAE;EACxC,MAAMM,OAAO,GAAGN,KAAK,CAClBO,OAAO,CAACH,cAAc,EAAE,GAAG,CAAC,CAC5BG,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CACpBL,IAAI,CAAC,CAAC;EACT,IAAI,CAACI,OAAO,EAAE,OAAO,EAAE;EACvB;EACA,MAAME,MAAM,GAAGC,KAAK,CAACC,IAAI,CAACJ,OAAO,CAAC,CAACK,KAAK,CAAC,CAAC,EAAEnB,oBAAoB,CAAC,CAACoB,IAAI,CAAC,EAAE,CAAC,CAACV,IAAI,CAAC,CAAC;EACjF,OAAOH,oBAAoB,CAACS,MAAM,CAAC,GAAG,EAAE,GAAGA,MAAM;AACnD,CAAC;;AAED;AAAAjB,OAAA,CAAAc,gBAAA,GAAAA,gBAAA;AACO,MAAMQ,YAAY,GAAIb,KAAc,IACzCK,gBAAgB,CAACL,KAAK,CAAC,IAAI,IAAI;;AAEjC;AACA;AACA;AACA;AAHAT,OAAA,CAAAsB,YAAA,GAAAA,YAAA;AAIO,MAAMC,oBAAoB,GAAId,KAAc,IAAoB;EACrE,MAAMC,IAAI,GAAG,OAAOD,KAAK,KAAK,QAAQ,GAAGA,KAAK,CAACE,IAAI,CAAC,CAAC,GAAG,EAAE;EAC1D,MAAMa,KAAK,GAAGd,IAAI,CAACe,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EAChC,OAAO,4CAA4C,CAACb,IAAI,CAACY,KAAK,CAAC,GAAGA,KAAK,GAAG,IAAI;AAChF,CAAC;AAACxB,OAAA,CAAAuB,oBAAA,GAAAA,oBAAA","ignoreList":[]}
@@ -0,0 +1,175 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.parseCallTokenAttrs = exports.parseCallCreateResponse = exports.normalizeLivekitUrl = exports.normalizeIceServers = exports.isCallRoomTypeAllowed = exports.decideIncomingWhileBusy = exports.DEFAULT_CALL_ROOM_TYPES = void 0;
7
+ var _callDisplay = require("./callDisplay");
8
+ // Pure helpers that decide HOW a call is carried, shared by the dialer
9
+ // (ChatHeader), the stanza handler (callTokenStanza) and the overlay.
10
+ //
11
+ // Three kinds of call exist:
12
+ // - 1:1 over our own WebRTC peer connection ("p2p"): chosen by the server,
13
+ // only for private chats and only when the install has P2P enabled;
14
+ // - 1:1 over LiveKit: the fallback when the server answers `livekit`;
15
+ // - group over LiveKit: any non-private chat, always `livekit`.
16
+ // The client never picks the transport, it follows the server's `mode`.
17
+
18
+ /** Serializable subset of RTCIceServer (kept free of DOM types for redux). */
19
+
20
+ const ICE_URL_RE = /^(stun|stuns|turn|turns):/i;
21
+
22
+ /**
23
+ * Accepts an array, an `{ iceServers }` envelope or a JSON string of either
24
+ * (the call-token stanza carries the list as a JSON attribute) and returns
25
+ * only well formed stun/turn entries. Anything else is dropped, never thrown.
26
+ */
27
+ const normalizeIceServers = raw => {
28
+ let value = raw;
29
+ if (typeof value === 'string') {
30
+ const text = value.trim();
31
+ if (!text) return [];
32
+ try {
33
+ value = JSON.parse(text);
34
+ } catch {
35
+ return [];
36
+ }
37
+ }
38
+ if (value && !Array.isArray(value) && typeof value === 'object' && Array.isArray(value.iceServers)) {
39
+ value = value.iceServers;
40
+ }
41
+ if (!Array.isArray(value)) return [];
42
+ const out = [];
43
+ for (const entry of value) {
44
+ if (!entry || typeof entry !== 'object') continue;
45
+ const e = entry;
46
+ const rawUrls = e.urls ?? e.url;
47
+ const candidates = Array.isArray(rawUrls) ? rawUrls : [rawUrls];
48
+ const list = candidates.filter(u => typeof u === 'string').map(u => u.trim()).filter(u => ICE_URL_RE.test(u));
49
+ if (list.length === 0) continue;
50
+ const server = {
51
+ urls: typeof rawUrls === 'string' ? list[0] : list
52
+ };
53
+ if (typeof e.username === 'string' && e.username) {
54
+ server.username = e.username;
55
+ }
56
+ if (typeof e.credential === 'string' && e.credential) {
57
+ server.credential = e.credential;
58
+ }
59
+ out.push(server);
60
+ }
61
+ return out;
62
+ };
63
+
64
+ /**
65
+ * A LiveKit server URL as the backend publishes it. Only websocket / http(s)
66
+ * URLs are accepted: the value ends up as the connect target of the media
67
+ * session, so anything else (javascript:, data:, garbage) is treated as unset.
68
+ */
69
+ exports.normalizeIceServers = normalizeIceServers;
70
+ const normalizeLivekitUrl = raw => {
71
+ const text = typeof raw === 'string' ? raw.trim() : '';
72
+ return /^(wss?|https?):\/\/[^\s]+$/i.test(text) ? text : null;
73
+ };
74
+ exports.normalizeLivekitUrl = normalizeLivekitUrl;
75
+ const isTrueish = value => {
76
+ const text = String(value ?? '').trim().toLowerCase();
77
+ return text === 'true' || text === '1';
78
+ };
79
+
80
+ /** Attributes of a `<data type="call-token">` element, defensively read. */
81
+
82
+ /**
83
+ * Tolerant reader for the call-token stanza. A server that sends neither
84
+ * `mode` nor `group` (every server before P2P / group calls) yields
85
+ * `mode: 'livekit'`, `group: false`, i.e. exactly the legacy behaviour.
86
+ */
87
+ const parseCallTokenAttrs = attrs => {
88
+ const a = attrs || {};
89
+ const kindRaw = String(a.kind || '').trim().toLowerCase();
90
+ const mode = String(a.mode || '').trim().toLowerCase() === 'p2p' ? 'p2p' : 'livekit';
91
+ const iceList = mode === 'p2p' ? normalizeIceServers(a.ice) : [];
92
+ return {
93
+ token: String(a.token || '').trim(),
94
+ room: String(a.room || '').trim(),
95
+ callId: String(a.callId || a.callid || '').trim() || null,
96
+ kind: kindRaw === 'audio' || kindRaw === 'video' ? kindRaw : null,
97
+ mode,
98
+ // A p2p call is 1:1 by construction; never let a stray attribute flip it.
99
+ group: mode === 'livekit' && isTrueish(a.group),
100
+ iceServers: mode === 'p2p' && iceList.length > 0 ? iceList : null,
101
+ livekitUrl: mode === 'livekit' ? normalizeLivekitUrl(a.livekitUrl) : null,
102
+ callerName: (0, _callDisplay.sanitizeCallName)(a.callerName),
103
+ caller: (0, _callDisplay.sanitizeXmppUsername)(a.caller)
104
+ };
105
+ };
106
+
107
+ /** Normalised `POST /v1/chats/call/create/:chatName` response. */
108
+ exports.parseCallTokenAttrs = parseCallTokenAttrs;
109
+ /**
110
+ * Reads the create response. Old servers answer with no `mode`, which maps to
111
+ * `livekit` (the caller then waits for its own call-token as before). A p2p
112
+ * answer without a callId is unusable (no way to correlate signalling) and
113
+ * throws.
114
+ */
115
+ const parseCallCreateResponse = (data, fallbackKind) => {
116
+ const root = data && typeof data === 'object' ? data : {};
117
+ const d = root.result && typeof root.result === 'object' && !root.mode ? root.result : root;
118
+ const mode = String(d.mode || '').trim().toLowerCase() === 'p2p' ? 'p2p' : 'livekit';
119
+ const kindRaw = String(d.kind || '').trim().toLowerCase();
120
+ const callId = String(d.callId || d.callid || '').trim() || null;
121
+ if (mode === 'p2p' && !callId) {
122
+ throw new Error('Call response is missing callId');
123
+ }
124
+ const ttl = Number(d.ttlSeconds);
125
+ const livekitUrl = normalizeLivekitUrl(d.livekitUrl);
126
+ return {
127
+ callId,
128
+ mode,
129
+ kind: kindRaw === 'audio' || kindRaw === 'video' ? kindRaw : fallbackKind,
130
+ group: typeof d.group === 'boolean' ? d.group : null,
131
+ livekitUrl,
132
+ iceServers: mode === 'p2p' ? normalizeIceServers(d.iceServers) : [],
133
+ ttlSeconds: Number.isFinite(ttl) && ttl > 0 ? ttl : null
134
+ };
135
+ };
136
+
137
+ /**
138
+ * Which room types may start / receive calls. Hosts that never set
139
+ * `allowedRoomTypes` get 1:1 and group chats; an explicit list is respected
140
+ * as written (so `['private']` keeps a host on 1:1 only).
141
+ */
142
+ exports.parseCallCreateResponse = parseCallCreateResponse;
143
+ const DEFAULT_CALL_ROOM_TYPES = exports.DEFAULT_CALL_ROOM_TYPES = ['private', 'group'];
144
+ const isCallRoomTypeAllowed = (roomType, allowedRoomTypes) => {
145
+ if (roomType !== 'private' && roomType !== 'group') return false;
146
+ const allowed = allowedRoomTypes || DEFAULT_CALL_ROOM_TYPES;
147
+ return allowed.includes(roomType);
148
+ };
149
+
150
+ /**
151
+ * What to do with an incoming call-token while another call may be active.
152
+ * - accept: nothing active, ring.
153
+ * - duplicate: same callId as the active call (server re-delivery), ignore.
154
+ * - replace: legacy LiveKit behaviour (a new token overwrites the old
155
+ * call), kept exactly for livekit-vs-livekit.
156
+ * - glare-yield: both sides dialled each other; the lexicographically smaller
157
+ * callId wins on BOTH ends, and this is the loser: drop our
158
+ * outgoing call and ring for theirs.
159
+ * - glare-keep: same race, we hold the winning callId, ignore theirs (the
160
+ * other side yields).
161
+ * - busy: a different call is in progress, decline the newcomer.
162
+ */
163
+ exports.isCallRoomTypeAllowed = isCallRoomTypeAllowed;
164
+ const decideIncomingWhileBusy = (current, incoming) => {
165
+ if (current.phase === 'idle') return 'accept';
166
+ if (incoming.callId && current.callId === incoming.callId) return 'duplicate';
167
+ if (current.mode !== 'p2p' && incoming.mode !== 'p2p') return 'replace';
168
+ const sameRoom = !!incoming.roomBareName && current.roomBareName === incoming.roomBareName;
169
+ if (sameRoom && current.direction === 'outgoing' && current.phase === 'requesting' && incoming.mode === 'p2p' && current.mode === 'p2p' && current.callId && incoming.callId) {
170
+ return incoming.callId < current.callId ? 'glare-yield' : 'glare-keep';
171
+ }
172
+ return 'busy';
173
+ };
174
+ exports.decideIncomingWhileBusy = decideIncomingWhileBusy;
175
+ //# sourceMappingURL=callMode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_callDisplay","require","ICE_URL_RE","normalizeIceServers","raw","value","text","trim","JSON","parse","Array","isArray","iceServers","out","entry","e","rawUrls","urls","url","candidates","list","filter","u","map","test","length","server","username","credential","push","exports","normalizeLivekitUrl","isTrueish","String","toLowerCase","parseCallTokenAttrs","attrs","a","kindRaw","kind","mode","iceList","ice","token","room","callId","callid","group","livekitUrl","callerName","sanitizeCallName","caller","sanitizeXmppUsername","parseCallCreateResponse","data","fallbackKind","root","d","result","Error","ttl","Number","ttlSeconds","isFinite","DEFAULT_CALL_ROOM_TYPES","isCallRoomTypeAllowed","roomType","allowedRoomTypes","allowed","includes","decideIncomingWhileBusy","current","incoming","phase","sameRoom","roomBareName","direction"],"sourceRoot":"../../../src","sources":["calls/callMode.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.reportDeclineIfP2P = void 0;
7
+ var _callState = require("../networking/api-requests/callState.api");
8
+ /**
9
+ * A peer to peer call has no LiveKit webhook, so the server learns that the
10
+ * callee rejected it (and relays that to the caller) only from this report.
11
+ * Never sent for a LiveKit call, where a REST decline would act on the
12
+ * LiveKit room. REST needs no socket, so it can go out at once.
13
+ */
14
+ const reportDeclineIfP2P = call => {
15
+ if (call.mode === 'p2p') {
16
+ (0, _callState.reportCallDeclined)(call.callId);
17
+ }
18
+ };
19
+ exports.reportDeclineIfP2P = reportDeclineIfP2P;
20
+ //# sourceMappingURL=declineReport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_callState","require","reportDeclineIfP2P","call","mode","reportCallDeclined","callId","exports"],"sourceRoot":"../../../src","sources":["calls/declineReport.ts"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,kBAAkB,GAAIC,IAGlC,IAAW;EACV,IAAIA,IAAI,CAACC,IAAI,KAAK,KAAK,EAAE;IACvB,IAAAC,6BAAkB,EAACF,IAAI,CAACG,MAAM,CAAC;EACjC;AACF,CAAC;AAACC,OAAA,CAAAL,kBAAA,GAAAA,kBAAA","ignoreList":[]}