mediasfu-shared 1.0.6 → 1.2.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 (558) hide show
  1. package/HEADLESS_GUIDE.md +156 -0
  2. package/README.md +130 -62
  3. package/dist/ProducerClient/producerClientEmits/createDeviceClient.d.ts +23 -0
  4. package/dist/ProducerClient/producerClientEmits/createDeviceClient.d.ts.map +1 -0
  5. package/dist/ProducerClient/producerClientEmits/joinRoomClient.d.ts +22 -0
  6. package/dist/ProducerClient/producerClientEmits/joinRoomClient.d.ts.map +1 -0
  7. package/dist/ProducerClient/producerClientEmits/updateRoomParametersClient.d.ts +85 -0
  8. package/dist/ProducerClient/producerClientEmits/updateRoomParametersClient.d.ts.map +1 -0
  9. package/dist/consumers/addVideosGrid.d.ts +10 -0
  10. package/dist/consumers/addVideosGrid.d.ts.map +1 -0
  11. package/dist/consumers/autoAdjust.d.ts +41 -0
  12. package/dist/consumers/autoAdjust.d.ts.map +1 -0
  13. package/dist/consumers/calculateRowsAndColumns.d.ts +24 -0
  14. package/dist/consumers/calculateRowsAndColumns.d.ts.map +1 -0
  15. package/dist/consumers/changeVids.d.ts +252 -0
  16. package/dist/consumers/changeVids.d.ts.map +1 -0
  17. package/dist/consumers/checkGrid.d.ts +42 -0
  18. package/dist/consumers/checkGrid.d.ts.map +1 -0
  19. package/dist/consumers/checkPermission.d.ts +42 -0
  20. package/dist/consumers/checkPermission.d.ts.map +1 -0
  21. package/dist/consumers/checkScreenShare.d.ts +59 -0
  22. package/dist/consumers/checkScreenShare.d.ts.map +1 -0
  23. package/dist/consumers/closeAndResize.d.ts +157 -0
  24. package/dist/consumers/closeAndResize.d.ts.map +1 -0
  25. package/dist/consumers/compareActiveNames.d.ts +50 -0
  26. package/dist/consumers/compareActiveNames.d.ts.map +1 -0
  27. package/dist/consumers/compareScreenStates.d.ts +55 -0
  28. package/dist/consumers/compareScreenStates.d.ts.map +1 -0
  29. package/dist/consumers/connectIps.d.ts +66 -0
  30. package/dist/consumers/connectIps.d.ts.map +1 -0
  31. package/dist/consumers/connectLocalIps.d.ts +52 -0
  32. package/dist/consumers/connectLocalIps.d.ts.map +1 -0
  33. package/dist/consumers/connectRecvTransport.d.ts +64 -0
  34. package/dist/consumers/connectRecvTransport.d.ts.map +1 -0
  35. package/dist/consumers/connectSendTransport.d.ts +75 -0
  36. package/dist/consumers/connectSendTransport.d.ts.map +1 -0
  37. package/dist/consumers/connectSendTransportAudio.d.ts +62 -0
  38. package/dist/consumers/connectSendTransportAudio.d.ts.map +1 -0
  39. package/dist/consumers/connectSendTransportScreen.d.ts +72 -0
  40. package/dist/consumers/connectSendTransportScreen.d.ts.map +1 -0
  41. package/dist/consumers/connectSendTransportVideo.d.ts +75 -0
  42. package/dist/consumers/connectSendTransportVideo.d.ts.map +1 -0
  43. package/dist/consumers/consumerResume.d.ts +16 -0
  44. package/dist/consumers/consumerResume.d.ts.map +1 -0
  45. package/dist/consumers/controlMedia.d.ts +61 -0
  46. package/dist/consumers/controlMedia.d.ts.map +1 -0
  47. package/dist/consumers/createSendTransport.d.ts +80 -0
  48. package/dist/consumers/createSendTransport.d.ts.map +1 -0
  49. package/dist/consumers/disconnectSendTransportAudio.d.ts +79 -0
  50. package/dist/consumers/disconnectSendTransportAudio.d.ts.map +1 -0
  51. package/dist/consumers/disconnectSendTransportScreen.d.ts +61 -0
  52. package/dist/consumers/disconnectSendTransportScreen.d.ts.map +1 -0
  53. package/dist/consumers/disconnectSendTransportVideo.d.ts +72 -0
  54. package/dist/consumers/disconnectSendTransportVideo.d.ts.map +1 -0
  55. package/dist/consumers/dispStreams.d.ts +189 -0
  56. package/dist/consumers/dispStreams.d.ts.map +1 -0
  57. package/dist/consumers/frameworkConsumerContract.d.ts +2 -0
  58. package/dist/consumers/frameworkConsumerContract.d.ts.map +1 -0
  59. package/dist/consumers/generatePageContent.d.ts +68 -0
  60. package/dist/consumers/generatePageContent.d.ts.map +1 -0
  61. package/dist/consumers/getEstimate.d.ts +62 -0
  62. package/dist/consumers/getEstimate.d.ts.map +1 -0
  63. package/dist/consumers/getPipedProducersAlt.d.ts +62 -0
  64. package/dist/consumers/getPipedProducersAlt.d.ts.map +1 -0
  65. package/dist/consumers/getProducersPiped.d.ts +49 -0
  66. package/dist/consumers/getProducersPiped.d.ts.map +1 -0
  67. package/dist/consumers/getVideos.d.ts +49 -0
  68. package/dist/consumers/getVideos.d.ts.map +1 -0
  69. package/dist/consumers/gridLayout/addVideosGrid.engine.d.ts +19 -0
  70. package/dist/consumers/gridLayout/addVideosGrid.engine.d.ts.map +1 -0
  71. package/dist/consumers/gridLayout/prepopulateUserMedia.engine.d.ts +138 -0
  72. package/dist/consumers/gridLayout/prepopulateUserMedia.engine.d.ts.map +1 -0
  73. package/dist/consumers/index.cjs +80 -0
  74. package/dist/consumers/index.cjs.map +1 -0
  75. package/dist/consumers/index.d.ts +62 -0
  76. package/dist/consumers/index.d.ts.map +1 -0
  77. package/dist/consumers/index.js +80 -0
  78. package/dist/consumers/index.js.map +1 -0
  79. package/dist/consumers/mixStreams.d.ts +37 -0
  80. package/dist/consumers/mixStreams.d.ts.map +1 -0
  81. package/dist/consumers/onScreenChanges.d.ts +62 -0
  82. package/dist/consumers/onScreenChanges.d.ts.map +1 -0
  83. package/dist/consumers/prepopulateUserMedia.d.ts +10 -0
  84. package/dist/consumers/prepopulateUserMedia.d.ts.map +1 -0
  85. package/dist/consumers/processConsumerTransports.d.ts +73 -0
  86. package/dist/consumers/processConsumerTransports.d.ts.map +1 -0
  87. package/dist/consumers/processConsumerTransportsAudio.d.ts +57 -0
  88. package/dist/consumers/processConsumerTransportsAudio.d.ts.map +1 -0
  89. package/dist/consumers/rePort.d.ts +63 -0
  90. package/dist/consumers/rePort.d.ts.map +1 -0
  91. package/dist/consumers/reUpdateInter.d.ts +142 -0
  92. package/dist/consumers/reUpdateInter.d.ts.map +1 -0
  93. package/dist/consumers/readjust.d.ts +68 -0
  94. package/dist/consumers/readjust.d.ts.map +1 -0
  95. package/dist/consumers/receiveAllPipedTransports.d.ts +44 -0
  96. package/dist/consumers/receiveAllPipedTransports.d.ts.map +1 -0
  97. package/dist/consumers/receiveRoomMessages.d.ts +31 -0
  98. package/dist/consumers/receiveRoomMessages.d.ts.map +1 -0
  99. package/dist/consumers/reorderStreams.d.ts +98 -0
  100. package/dist/consumers/reorderStreams.d.ts.map +1 -0
  101. package/dist/consumers/requestScreenShare.d.ts +47 -0
  102. package/dist/consumers/requestScreenShare.d.ts.map +1 -0
  103. package/dist/consumers/resumePauseAudioStreams.d.ts +85 -0
  104. package/dist/consumers/resumePauseAudioStreams.d.ts.map +1 -0
  105. package/dist/consumers/resumePauseStreams.d.ts +68 -0
  106. package/dist/consumers/resumePauseStreams.d.ts.map +1 -0
  107. package/dist/consumers/resumeSendTransportAudio.d.ts +65 -0
  108. package/dist/consumers/resumeSendTransportAudio.d.ts.map +1 -0
  109. package/dist/consumers/signalNewConsumerTransport.d.ts +59 -0
  110. package/dist/consumers/signalNewConsumerTransport.d.ts.map +1 -0
  111. package/dist/consumers/socketReceiveMethods/joinConsumeRoom.d.ts +76 -0
  112. package/dist/consumers/socketReceiveMethods/joinConsumeRoom.d.ts.map +1 -0
  113. package/dist/consumers/socketReceiveMethods/newPipeProducer.d.ts +119 -0
  114. package/dist/consumers/socketReceiveMethods/newPipeProducer.d.ts.map +1 -0
  115. package/dist/consumers/socketReceiveMethods/producerClosed.d.ts +53 -0
  116. package/dist/consumers/socketReceiveMethods/producerClosed.d.ts.map +1 -0
  117. package/dist/consumers/startShareScreen.d.ts +58 -0
  118. package/dist/consumers/startShareScreen.d.ts.map +1 -0
  119. package/dist/consumers/stopShareScreen.d.ts +127 -0
  120. package/dist/consumers/stopShareScreen.d.ts.map +1 -0
  121. package/dist/consumers/streamSuccessAudio.d.ts +149 -0
  122. package/dist/consumers/streamSuccessAudio.d.ts.map +1 -0
  123. package/dist/consumers/streamSuccessAudioSwitch.d.ts +131 -0
  124. package/dist/consumers/streamSuccessAudioSwitch.d.ts.map +1 -0
  125. package/dist/consumers/streamSuccessScreen.d.ts +109 -0
  126. package/dist/consumers/streamSuccessScreen.d.ts.map +1 -0
  127. package/dist/consumers/streamSuccessVideo.d.ts +160 -0
  128. package/dist/consumers/streamSuccessVideo.d.ts.map +1 -0
  129. package/dist/consumers/switchUserAudio.d.ts +56 -0
  130. package/dist/consumers/switchUserAudio.d.ts.map +1 -0
  131. package/dist/consumers/switchUserVideo.d.ts +77 -0
  132. package/dist/consumers/switchUserVideo.d.ts.map +1 -0
  133. package/dist/consumers/switchUserVideoAlt.d.ts +69 -0
  134. package/dist/consumers/switchUserVideoAlt.d.ts.map +1 -0
  135. package/dist/consumers/translationConsumerSwitch.d.ts +67 -0
  136. package/dist/consumers/translationConsumerSwitch.d.ts.map +1 -0
  137. package/dist/consumers/trigger.d.ts +71 -0
  138. package/dist/consumers/trigger.d.ts.map +1 -0
  139. package/dist/consumers/updateMiniCardsGrid.d.ts +65 -0
  140. package/dist/consumers/updateMiniCardsGrid.d.ts.map +1 -0
  141. package/dist/consumers/updateParticipantAudioDecibels.d.ts +31 -0
  142. package/dist/consumers/updateParticipantAudioDecibels.d.ts.map +1 -0
  143. package/dist/getParticipantMedia-B0JS6d2b.js +3555 -0
  144. package/dist/getParticipantMedia-B0JS6d2b.js.map +1 -0
  145. package/dist/getParticipantMedia-CdcYqcbD.cjs +3554 -0
  146. package/dist/getParticipantMedia-CdcYqcbD.cjs.map +1 -0
  147. package/dist/index.cjs +2727 -13252
  148. package/dist/index.cjs.map +1 -1
  149. package/dist/index.d.ts +192 -11233
  150. package/dist/index.d.ts.map +1 -0
  151. package/dist/index.js +2636 -13143
  152. package/dist/index.js.map +1 -1
  153. package/dist/index.native.cjs +352 -0
  154. package/dist/index.native.cjs.map +1 -0
  155. package/dist/index.native.d.ts +204 -0
  156. package/dist/index.native.d.ts.map +1 -0
  157. package/dist/index.native.js +352 -0
  158. package/dist/index.native.js.map +1 -0
  159. package/dist/joinLocalRoom-BdM1msQt.cjs +673 -0
  160. package/dist/joinLocalRoom-BdM1msQt.cjs.map +1 -0
  161. package/dist/joinLocalRoom-CvteNe4R.js +657 -0
  162. package/dist/joinLocalRoom-CvteNe4R.js.map +1 -0
  163. package/dist/joinRoomOnMediaSFU-CC8RVJgr.cjs +1222 -0
  164. package/dist/joinRoomOnMediaSFU-CC8RVJgr.cjs.map +1 -0
  165. package/dist/joinRoomOnMediaSFU-y6vJ1OBo.js +1223 -0
  166. package/dist/joinRoomOnMediaSFU-y6vJ1OBo.js.map +1 -0
  167. package/dist/methods/background/launchBackground.d.ts +10 -0
  168. package/dist/methods/background/launchBackground.d.ts.map +1 -0
  169. package/dist/methods/breakoutRooms/breakoutRoomUpdated.d.ts +67 -0
  170. package/dist/methods/breakoutRooms/breakoutRoomUpdated.d.ts.map +1 -0
  171. package/dist/methods/breakoutRooms/handleStartBreakout.d.ts +42 -0
  172. package/dist/methods/breakoutRooms/handleStartBreakout.d.ts.map +1 -0
  173. package/dist/methods/breakoutRooms/handleStopBreakout.d.ts +33 -0
  174. package/dist/methods/breakoutRooms/handleStopBreakout.d.ts.map +1 -0
  175. package/dist/methods/breakoutRooms/index.d.ts +5 -0
  176. package/dist/methods/breakoutRooms/index.d.ts.map +1 -0
  177. package/dist/methods/breakoutRooms/launchBreakoutRooms.d.ts +25 -0
  178. package/dist/methods/breakoutRooms/launchBreakoutRooms.d.ts.map +1 -0
  179. package/dist/methods/coHost/launchCoHost.d.ts +25 -0
  180. package/dist/methods/coHost/launchCoHost.d.ts.map +1 -0
  181. package/dist/methods/coHostMethods/index.d.ts +3 -0
  182. package/dist/methods/coHostMethods/index.d.ts.map +1 -0
  183. package/dist/methods/coHostMethods/modifyCoHostSettings.d.ts +49 -0
  184. package/dist/methods/coHostMethods/modifyCoHostSettings.d.ts.map +1 -0
  185. package/dist/methods/displaySettings/index.d.ts +2 -0
  186. package/dist/methods/displaySettings/index.d.ts.map +1 -0
  187. package/dist/methods/displaySettings/launchDisplaySettings.d.ts +25 -0
  188. package/dist/methods/displaySettings/launchDisplaySettings.d.ts.map +1 -0
  189. package/dist/methods/displaySettings/modifyDisplaySettings.d.ts +106 -0
  190. package/dist/methods/displaySettings/modifyDisplaySettings.d.ts.map +1 -0
  191. package/dist/methods/exit/confirmExit.d.ts +38 -0
  192. package/dist/methods/exit/confirmExit.d.ts.map +1 -0
  193. package/dist/methods/exit/index.d.ts +3 -0
  194. package/dist/methods/exit/index.d.ts.map +1 -0
  195. package/dist/methods/exit/launchConfirmExit.d.ts +23 -0
  196. package/dist/methods/exit/launchConfirmExit.d.ts.map +1 -0
  197. package/dist/methods/index.cjs +3975 -0
  198. package/dist/methods/index.cjs.map +1 -0
  199. package/dist/methods/index.d.ts +66 -0
  200. package/dist/methods/index.d.ts.map +1 -0
  201. package/dist/methods/index.js +3976 -0
  202. package/dist/methods/index.js.map +1 -0
  203. package/dist/methods/mediaSettings/launchMediaSettings.d.ts +38 -0
  204. package/dist/methods/mediaSettings/launchMediaSettings.d.ts.map +1 -0
  205. package/dist/methods/menu/launchMenuModal.d.ts +22 -0
  206. package/dist/methods/menu/launchMenuModal.d.ts.map +1 -0
  207. package/dist/methods/message/index.d.ts +2 -0
  208. package/dist/methods/message/index.d.ts.map +1 -0
  209. package/dist/methods/message/launchMessages.d.ts +24 -0
  210. package/dist/methods/message/launchMessages.d.ts.map +1 -0
  211. package/dist/methods/message/sendMessage.d.ts +63 -0
  212. package/dist/methods/message/sendMessage.d.ts.map +1 -0
  213. package/dist/methods/panelists/focusPanelists.d.ts +24 -0
  214. package/dist/methods/panelists/focusPanelists.d.ts.map +1 -0
  215. package/dist/methods/panelists/index.d.ts +4 -0
  216. package/dist/methods/panelists/index.d.ts.map +1 -0
  217. package/dist/methods/panelists/launchPanelists.d.ts +7 -0
  218. package/dist/methods/panelists/launchPanelists.d.ts.map +1 -0
  219. package/dist/methods/panelists/updatePanelists.d.ts +35 -0
  220. package/dist/methods/panelists/updatePanelists.d.ts.map +1 -0
  221. package/dist/methods/participants/index.d.ts +4 -0
  222. package/dist/methods/participants/index.d.ts.map +1 -0
  223. package/dist/methods/participants/launchParticipants.d.ts +22 -0
  224. package/dist/methods/participants/launchParticipants.d.ts.map +1 -0
  225. package/dist/methods/participants/messageParticipants.d.ts +43 -0
  226. package/dist/methods/participants/messageParticipants.d.ts.map +1 -0
  227. package/dist/methods/participants/muteParticipants.d.ts +41 -0
  228. package/dist/methods/participants/muteParticipants.d.ts.map +1 -0
  229. package/dist/methods/participants/removeParticipants.d.ts +47 -0
  230. package/dist/methods/participants/removeParticipants.d.ts.map +1 -0
  231. package/dist/methods/permissions/index.d.ts +4 -0
  232. package/dist/methods/permissions/index.d.ts.map +1 -0
  233. package/dist/methods/permissions/launchPermissions.d.ts +7 -0
  234. package/dist/methods/permissions/launchPermissions.d.ts.map +1 -0
  235. package/dist/methods/permissions/updateParticipantPermission.d.ts +25 -0
  236. package/dist/methods/permissions/updateParticipantPermission.d.ts.map +1 -0
  237. package/dist/methods/permissions/updatePermissionConfig.d.ts +22 -0
  238. package/dist/methods/permissions/updatePermissionConfig.d.ts.map +1 -0
  239. package/dist/methods/polls/handleCreatePoll.d.ts +39 -0
  240. package/dist/methods/polls/handleCreatePoll.d.ts.map +1 -0
  241. package/dist/methods/polls/handleEndPoll.d.ts +34 -0
  242. package/dist/methods/polls/handleEndPoll.d.ts.map +1 -0
  243. package/dist/methods/polls/handleVotePoll.d.ts +39 -0
  244. package/dist/methods/polls/handleVotePoll.d.ts.map +1 -0
  245. package/dist/methods/polls/index.d.ts +4 -0
  246. package/dist/methods/polls/index.d.ts.map +1 -0
  247. package/dist/methods/polls/launchPoll.d.ts +22 -0
  248. package/dist/methods/polls/launchPoll.d.ts.map +1 -0
  249. package/dist/methods/polls/pollUpdated.d.ts +38 -0
  250. package/dist/methods/polls/pollUpdated.d.ts.map +1 -0
  251. package/dist/methods/prejoin/handleCreateRoom.d.ts +77 -0
  252. package/dist/methods/prejoin/handleCreateRoom.d.ts.map +1 -0
  253. package/dist/methods/prejoin/handleJoinRoom.d.ts +56 -0
  254. package/dist/methods/prejoin/handleJoinRoom.d.ts.map +1 -0
  255. package/dist/methods/prejoin/index.d.ts +5 -0
  256. package/dist/methods/prejoin/index.d.ts.map +1 -0
  257. package/dist/methods/recording/checkPauseState.d.ts +34 -0
  258. package/dist/methods/recording/checkPauseState.d.ts.map +1 -0
  259. package/dist/methods/recording/checkResumeState.d.ts +30 -0
  260. package/dist/methods/recording/checkResumeState.d.ts.map +1 -0
  261. package/dist/methods/recording/confirmRecording.d.ts +46 -0
  262. package/dist/methods/recording/confirmRecording.d.ts.map +1 -0
  263. package/dist/methods/recording/launchRecording.d.ts +56 -0
  264. package/dist/methods/recording/launchRecording.d.ts.map +1 -0
  265. package/dist/methods/recording/recordPauseTimer.d.ts +31 -0
  266. package/dist/methods/recording/recordPauseTimer.d.ts.map +1 -0
  267. package/dist/methods/recording/recordResumeTimer.d.ts +29 -0
  268. package/dist/methods/recording/recordResumeTimer.d.ts.map +1 -0
  269. package/dist/methods/recording/recordStartTimer.d.ts +45 -0
  270. package/dist/methods/recording/recordStartTimer.d.ts.map +1 -0
  271. package/dist/methods/recording/recordUpdateTimer.d.ts +29 -0
  272. package/dist/methods/recording/recordUpdateTimer.d.ts.map +1 -0
  273. package/dist/methods/recording/startRecording.d.ts +122 -0
  274. package/dist/methods/recording/startRecording.d.ts.map +1 -0
  275. package/dist/methods/recording/stopRecording.d.ts +36 -0
  276. package/dist/methods/recording/stopRecording.d.ts.map +1 -0
  277. package/dist/methods/recording/timeLeftRecording.d.ts +13 -0
  278. package/dist/methods/recording/timeLeftRecording.d.ts.map +1 -0
  279. package/dist/methods/recording/updateRecording.d.ts +49 -0
  280. package/dist/methods/recording/updateRecording.d.ts.map +1 -0
  281. package/dist/methods/requests/hostRequestResponse.d.ts +33 -0
  282. package/dist/methods/requests/hostRequestResponse.d.ts.map +1 -0
  283. package/dist/methods/requests/index.d.ts +2 -0
  284. package/dist/methods/requests/index.d.ts.map +1 -0
  285. package/dist/methods/requests/launchRequests.d.ts +22 -0
  286. package/dist/methods/requests/launchRequests.d.ts.map +1 -0
  287. package/dist/methods/requests/respondToRequests.d.ts +38 -0
  288. package/dist/methods/requests/respondToRequests.d.ts.map +1 -0
  289. package/dist/methods/settings/index.d.ts +3 -0
  290. package/dist/methods/settings/index.d.ts.map +1 -0
  291. package/dist/methods/settings/launchSettings.d.ts +22 -0
  292. package/dist/methods/settings/launchSettings.d.ts.map +1 -0
  293. package/dist/methods/settings/modifySettings.d.ts +45 -0
  294. package/dist/methods/settings/modifySettings.d.ts.map +1 -0
  295. package/dist/methods/socketReceive/allMembers.d.ts +117 -0
  296. package/dist/methods/socketReceive/allMembers.d.ts.map +1 -0
  297. package/dist/methods/socketReceive/allMembersRest.d.ts +122 -0
  298. package/dist/methods/socketReceive/allMembersRest.d.ts.map +1 -0
  299. package/dist/methods/socketReceive/allWaitingRoomMembers.d.ts +24 -0
  300. package/dist/methods/socketReceive/allWaitingRoomMembers.d.ts.map +1 -0
  301. package/dist/methods/socketReceive/banParticipant.d.ts +44 -0
  302. package/dist/methods/socketReceive/banParticipant.d.ts.map +1 -0
  303. package/dist/methods/socketReceive/controlMediaHost.d.ts +62 -0
  304. package/dist/methods/socketReceive/controlMediaHost.d.ts.map +1 -0
  305. package/dist/methods/socketReceive/disconnect.d.ts +24 -0
  306. package/dist/methods/socketReceive/disconnect.d.ts.map +1 -0
  307. package/dist/methods/socketReceive/disconnectUserSelf.d.ts +29 -0
  308. package/dist/methods/socketReceive/disconnectUserSelf.d.ts.map +1 -0
  309. package/dist/methods/socketReceive/getDomains.d.ts +48 -0
  310. package/dist/methods/socketReceive/getDomains.d.ts.map +1 -0
  311. package/dist/methods/socketReceive/meetingEnded.d.ts +27 -0
  312. package/dist/methods/socketReceive/meetingEnded.d.ts.map +1 -0
  313. package/dist/methods/socketReceive/meetingStillThere.d.ts +19 -0
  314. package/dist/methods/socketReceive/meetingStillThere.d.ts.map +1 -0
  315. package/dist/methods/socketReceive/panelistReceiveMethods.d.ts +66 -0
  316. package/dist/methods/socketReceive/panelistReceiveMethods.d.ts.map +1 -0
  317. package/dist/methods/socketReceive/participantRequested.d.ts +28 -0
  318. package/dist/methods/socketReceive/participantRequested.d.ts.map +1 -0
  319. package/dist/methods/socketReceive/permissionReceiveMethods.d.ts +23 -0
  320. package/dist/methods/socketReceive/permissionReceiveMethods.d.ts.map +1 -0
  321. package/dist/methods/socketReceive/personJoined.d.ts +24 -0
  322. package/dist/methods/socketReceive/personJoined.d.ts.map +1 -0
  323. package/dist/methods/socketReceive/producerMediaClosed.d.ts +66 -0
  324. package/dist/methods/socketReceive/producerMediaClosed.d.ts.map +1 -0
  325. package/dist/methods/socketReceive/producerMediaPaused.d.ts +70 -0
  326. package/dist/methods/socketReceive/producerMediaPaused.d.ts.map +1 -0
  327. package/dist/methods/socketReceive/producerMediaResumed.d.ts +53 -0
  328. package/dist/methods/socketReceive/producerMediaResumed.d.ts.map +1 -0
  329. package/dist/methods/socketReceive/reInitiateRecording.d.ts +33 -0
  330. package/dist/methods/socketReceive/reInitiateRecording.d.ts.map +1 -0
  331. package/dist/methods/socketReceive/receiveMessage.d.ts +36 -0
  332. package/dist/methods/socketReceive/receiveMessage.d.ts.map +1 -0
  333. package/dist/methods/socketReceive/recordingNotice.d.ts +98 -0
  334. package/dist/methods/socketReceive/recordingNotice.d.ts.map +1 -0
  335. package/dist/methods/socketReceive/roomRecordParams.d.ts +60 -0
  336. package/dist/methods/socketReceive/roomRecordParams.d.ts.map +1 -0
  337. package/dist/methods/socketReceive/screenProducerId.d.ts +36 -0
  338. package/dist/methods/socketReceive/screenProducerId.d.ts.map +1 -0
  339. package/dist/methods/socketReceive/startRecords.d.ts +31 -0
  340. package/dist/methods/socketReceive/startRecords.d.ts.map +1 -0
  341. package/dist/methods/socketReceive/stoppedRecording.d.ts +24 -0
  342. package/dist/methods/socketReceive/stoppedRecording.d.ts.map +1 -0
  343. package/dist/methods/socketReceive/translationReceiveMethods.d.ts +227 -0
  344. package/dist/methods/socketReceive/translationReceiveMethods.d.ts.map +1 -0
  345. package/dist/methods/socketReceive/updateConsumingDomains.d.ts +60 -0
  346. package/dist/methods/socketReceive/updateConsumingDomains.d.ts.map +1 -0
  347. package/dist/methods/socketReceive/updateMediaSettings.d.ts +28 -0
  348. package/dist/methods/socketReceive/updateMediaSettings.d.ts.map +1 -0
  349. package/dist/methods/socketReceive/updatedCoHost.d.ts +38 -0
  350. package/dist/methods/socketReceive/updatedCoHost.d.ts.map +1 -0
  351. package/dist/methods/socketReceive/userWaiting.d.ts +30 -0
  352. package/dist/methods/socketReceive/userWaiting.d.ts.map +1 -0
  353. package/dist/methods/stream/clickAudio.d.ts +71 -0
  354. package/dist/methods/stream/clickAudio.d.ts.map +1 -0
  355. package/dist/methods/stream/clickChat.d.ts +11 -0
  356. package/dist/methods/stream/clickChat.d.ts.map +1 -0
  357. package/dist/methods/stream/clickScreenShare.d.ts +45 -0
  358. package/dist/methods/stream/clickScreenShare.d.ts.map +1 -0
  359. package/dist/methods/stream/clickVideo.d.ts +101 -0
  360. package/dist/methods/stream/clickVideo.d.ts.map +1 -0
  361. package/dist/methods/stream/index.d.ts +5 -0
  362. package/dist/methods/stream/index.d.ts.map +1 -0
  363. package/dist/methods/stream/switchAudio.d.ts +40 -0
  364. package/dist/methods/stream/switchAudio.d.ts.map +1 -0
  365. package/dist/methods/stream/switchVideo.d.ts +56 -0
  366. package/dist/methods/stream/switchVideo.d.ts.map +1 -0
  367. package/dist/methods/stream/switchVideoAlt.d.ts +55 -0
  368. package/dist/methods/stream/switchVideoAlt.d.ts.map +1 -0
  369. package/dist/methods/utils/SoundPlayer.d.ts +19 -0
  370. package/dist/methods/utils/SoundPlayer.d.ts.map +1 -0
  371. package/dist/methods/utils/checkLimitsAndMakeRequest.d.ts +30 -0
  372. package/dist/methods/utils/checkLimitsAndMakeRequest.d.ts.map +1 -0
  373. package/dist/methods/utils/createResponseJoinRoom.d.ts +24 -0
  374. package/dist/methods/utils/createResponseJoinRoom.d.ts.map +1 -0
  375. package/dist/methods/utils/createRoomOnMediaSFU.d.ts +28 -0
  376. package/dist/methods/utils/createRoomOnMediaSFU.d.ts.map +1 -0
  377. package/dist/methods/utils/formatNumber.d.ts +21 -0
  378. package/dist/methods/utils/formatNumber.d.ts.map +1 -0
  379. package/dist/methods/utils/generateRandomMessages.d.ts +11 -0
  380. package/dist/methods/utils/generateRandomMessages.d.ts.map +1 -0
  381. package/dist/methods/utils/generateRandomParticipants.d.ts +10 -0
  382. package/dist/methods/utils/generateRandomParticipants.d.ts.map +1 -0
  383. package/dist/methods/utils/generateRandomPolls.d.ts +7 -0
  384. package/dist/methods/utils/generateRandomPolls.d.ts.map +1 -0
  385. package/dist/methods/utils/generateRandomRequestList.d.ts +10 -0
  386. package/dist/methods/utils/generateRandomRequestList.d.ts.map +1 -0
  387. package/dist/methods/utils/generateRandomWaitingRoomList.d.ts +4 -0
  388. package/dist/methods/utils/generateRandomWaitingRoomList.d.ts.map +1 -0
  389. package/dist/methods/utils/getModalPosition.d.ts +7 -0
  390. package/dist/methods/utils/getModalPosition.d.ts.map +1 -0
  391. package/dist/methods/utils/getOverlayPosition.d.ts +22 -0
  392. package/dist/methods/utils/getOverlayPosition.d.ts.map +1 -0
  393. package/dist/methods/utils/getParticipantMedia.d.ts +55 -0
  394. package/dist/methods/utils/getParticipantMedia.d.ts.map +1 -0
  395. package/dist/methods/utils/headless/getCurrentParams.d.ts +27 -0
  396. package/dist/methods/utils/headless/getCurrentParams.d.ts.map +1 -0
  397. package/dist/methods/utils/headless/getMediaStreams.d.ts +96 -0
  398. package/dist/methods/utils/headless/getMediaStreams.d.ts.map +1 -0
  399. package/dist/methods/utils/headless/getRoomReadiness.d.ts +25 -0
  400. package/dist/methods/utils/headless/getRoomReadiness.d.ts.map +1 -0
  401. package/dist/methods/utils/headless/headlessTypes.d.ts +89 -0
  402. package/dist/methods/utils/headless/headlessTypes.d.ts.map +1 -0
  403. package/dist/methods/utils/headless/index.d.ts +29 -0
  404. package/dist/methods/utils/headless/index.d.ts.map +1 -0
  405. package/dist/methods/utils/headless/mediaPermissions.d.ts +53 -0
  406. package/dist/methods/utils/headless/mediaPermissions.d.ts.map +1 -0
  407. package/dist/methods/utils/headless/mediaProduction.d.ts +177 -0
  408. package/dist/methods/utils/headless/mediaProduction.d.ts.map +1 -0
  409. package/dist/methods/utils/headless/moderation.d.ts +157 -0
  410. package/dist/methods/utils/headless/moderation.d.ts.map +1 -0
  411. package/dist/methods/utils/headless/participantState.d.ts +128 -0
  412. package/dist/methods/utils/headless/participantState.d.ts.map +1 -0
  413. package/dist/methods/utils/headless/playback.d.ts +106 -0
  414. package/dist/methods/utils/headless/playback.d.ts.map +1 -0
  415. package/dist/methods/utils/headless/roomActions.d.ts +88 -0
  416. package/dist/methods/utils/headless/roomActions.d.ts.map +1 -0
  417. package/dist/methods/utils/headless/sessionControls.d.ts +159 -0
  418. package/dist/methods/utils/headless/sessionControls.d.ts.map +1 -0
  419. package/dist/methods/utils/headless/sessionExtras.d.ts +291 -0
  420. package/dist/methods/utils/headless/sessionExtras.d.ts.map +1 -0
  421. package/dist/methods/utils/headless/sessionFeatures.d.ts +159 -0
  422. package/dist/methods/utils/headless/sessionFeatures.d.ts.map +1 -0
  423. package/dist/methods/utils/headless/viewerSession.d.ts +125 -0
  424. package/dist/methods/utils/headless/viewerSession.d.ts.map +1 -0
  425. package/dist/methods/utils/headless/virtualBackground.d.ts +72 -0
  426. package/dist/methods/utils/headless/virtualBackground.d.ts.map +1 -0
  427. package/dist/methods/utils/initialValuesState.d.ts +388 -0
  428. package/dist/methods/utils/initialValuesState.d.ts.map +1 -0
  429. package/dist/methods/utils/joinRoomOnMediaSFU.d.ts +56 -0
  430. package/dist/methods/utils/joinRoomOnMediaSFU.d.ts.map +1 -0
  431. package/dist/methods/utils/liveSubtitle.d.ts +36 -0
  432. package/dist/methods/utils/liveSubtitle.d.ts.map +1 -0
  433. package/dist/methods/utils/meetingTimeRemaining.d.ts +15 -0
  434. package/dist/methods/utils/meetingTimeRemaining.d.ts.map +1 -0
  435. package/dist/methods/utils/meetingTimer/startMeetingProgressTimer.d.ts +35 -0
  436. package/dist/methods/utils/meetingTimer/startMeetingProgressTimer.d.ts.map +1 -0
  437. package/dist/methods/utils/producer/aParams.d.ts +3 -0
  438. package/dist/methods/utils/producer/aParams.d.ts.map +1 -0
  439. package/dist/methods/utils/producer/hParams.d.ts +3 -0
  440. package/dist/methods/utils/producer/hParams.d.ts.map +1 -0
  441. package/dist/methods/utils/producer/screenParams.d.ts +3 -0
  442. package/dist/methods/utils/producer/screenParams.d.ts.map +1 -0
  443. package/dist/methods/utils/producer/vParams.d.ts +3 -0
  444. package/dist/methods/utils/producer/vParams.d.ts.map +1 -0
  445. package/dist/methods/utils/producer/videoCaptureConstraints.d.ts +145 -0
  446. package/dist/methods/utils/producer/videoCaptureConstraints.d.ts.map +1 -0
  447. package/dist/methods/utils/resolveMediaSFURoomApi.d.ts +4 -0
  448. package/dist/methods/utils/resolveMediaSFURoomApi.d.ts.map +1 -0
  449. package/dist/methods/utils/sleep.d.ts +21 -0
  450. package/dist/methods/utils/sleep.d.ts.map +1 -0
  451. package/dist/methods/utils/translationLanguages.d.ts +100 -0
  452. package/dist/methods/utils/translationLanguages.d.ts.map +1 -0
  453. package/dist/methods/utils/validateAlphanumeric.d.ts +21 -0
  454. package/dist/methods/utils/validateAlphanumeric.d.ts.map +1 -0
  455. package/dist/methods/utils/virtualBackgroundCompositor.d.ts +21 -0
  456. package/dist/methods/utils/virtualBackgroundCompositor.d.ts.map +1 -0
  457. package/dist/methods/utils/webrtc.d.ts +18 -0
  458. package/dist/methods/utils/webrtc.d.ts.map +1 -0
  459. package/dist/methods/waiting/index.d.ts +2 -0
  460. package/dist/methods/waiting/index.d.ts.map +1 -0
  461. package/dist/methods/waiting/launchWaiting.d.ts +23 -0
  462. package/dist/methods/waiting/launchWaiting.d.ts.map +1 -0
  463. package/dist/methods/waiting/respondToWaiting.d.ts +40 -0
  464. package/dist/methods/waiting/respondToWaiting.d.ts.map +1 -0
  465. package/dist/methods/welcome/handleWelcomeRequest.d.ts +47 -0
  466. package/dist/methods/welcome/handleWelcomeRequest.d.ts.map +1 -0
  467. package/dist/methods/welcome/index.d.ts +3 -0
  468. package/dist/methods/welcome/index.d.ts.map +1 -0
  469. package/dist/methods/whiteboard/captureCanvasStream.d.ts +38 -0
  470. package/dist/methods/whiteboard/captureCanvasStream.d.ts.map +1 -0
  471. package/dist/methods/whiteboard/handleStartWhiteboard.d.ts +31 -0
  472. package/dist/methods/whiteboard/handleStartWhiteboard.d.ts.map +1 -0
  473. package/dist/methods/whiteboard/handleStopWhiteboard.d.ts +25 -0
  474. package/dist/methods/whiteboard/handleStopWhiteboard.d.ts.map +1 -0
  475. package/dist/methods/whiteboard/index.d.ts +5 -0
  476. package/dist/methods/whiteboard/index.d.ts.map +1 -0
  477. package/dist/methods/whiteboard/launchConfigureWhiteboard.d.ts +23 -0
  478. package/dist/methods/whiteboard/launchConfigureWhiteboard.d.ts.map +1 -0
  479. package/dist/producers/producerEmits/joinConRoom.d.ts +54 -0
  480. package/dist/producers/producerEmits/joinConRoom.d.ts.map +1 -0
  481. package/dist/producers/producerEmits/joinLocalRoom.d.ts +30 -0
  482. package/dist/producers/producerEmits/joinLocalRoom.d.ts.map +1 -0
  483. package/dist/producers/producerEmits/joinRoom.d.ts +35 -0
  484. package/dist/producers/producerEmits/joinRoom.d.ts.map +1 -0
  485. package/dist/readme/mediasfu-platform-capabilities.webp +0 -0
  486. package/dist/sockets/SocketManager.d.ts +102 -0
  487. package/dist/sockets/SocketManager.d.ts.map +1 -0
  488. package/dist/translationConsumerSwitch-C20MfNNq.cjs +509 -0
  489. package/dist/translationConsumerSwitch-C20MfNNq.cjs.map +1 -0
  490. package/dist/translationConsumerSwitch-zKuS5wgH.js +510 -0
  491. package/dist/translationConsumerSwitch-zKuS5wgH.js.map +1 -0
  492. package/dist/types/index.cjs +85 -0
  493. package/dist/types/index.cjs.map +1 -0
  494. package/dist/types/index.d.ts +2 -0
  495. package/dist/types/index.d.ts.map +1 -0
  496. package/dist/types/index.js +85 -0
  497. package/dist/types/index.js.map +1 -0
  498. package/dist/types/shared-base-types.d.ts +656 -0
  499. package/dist/types/shared-base-types.d.ts.map +1 -0
  500. package/dist/types/types.d.ts +124 -0
  501. package/dist/types/types.d.ts.map +1 -0
  502. package/dist/updateParticipantAudioDecibels-DLd8Y-Fh.js +5392 -0
  503. package/dist/updateParticipantAudioDecibels-DLd8Y-Fh.js.map +1 -0
  504. package/dist/updateParticipantAudioDecibels-DPmHiy3K.cjs +5391 -0
  505. package/dist/updateParticipantAudioDecibels-DPmHiy3K.cjs.map +1 -0
  506. package/dist/validateAlphanumeric-DKn5BsUP.cjs +15 -0
  507. package/dist/validateAlphanumeric-DKn5BsUP.cjs.map +1 -0
  508. package/dist/validateAlphanumeric-Dk1JB80W.js +16 -0
  509. package/dist/validateAlphanumeric-Dk1JB80W.js.map +1 -0
  510. package/package.json +106 -99
  511. package/src/ProducerClient/producerClientEmits/createDeviceClient.ts +1 -2
  512. package/src/ProducerClient/producerClientEmits/updateRoomParametersClient.ts +1 -1
  513. package/src/consumers/connectIps.ts +1 -1
  514. package/src/consumers/connectRecvTransport.ts +1 -1
  515. package/src/consumers/connectSendTransport.ts +1 -1
  516. package/src/consumers/connectSendTransportAudio.ts +1 -1
  517. package/src/consumers/connectSendTransportScreen.ts +5 -2
  518. package/src/consumers/connectSendTransportVideo.ts +1 -1
  519. package/src/consumers/createSendTransport.ts +34 -29
  520. package/src/consumers/disconnectSendTransportAudio.ts +1 -1
  521. package/src/consumers/disconnectSendTransportScreen.ts +1 -1
  522. package/src/consumers/disconnectSendTransportVideo.ts +1 -1
  523. package/src/consumers/index.ts +61 -0
  524. package/src/consumers/resumeSendTransportAudio.ts +1 -1
  525. package/src/consumers/signalNewConsumerTransport.ts +1 -2
  526. package/src/consumers/socketReceiveMethods/joinConsumeRoom.ts +1 -1
  527. package/src/consumers/socketReceiveMethods/newPipeProducer.ts +1 -1
  528. package/src/consumers/streamSuccessAudio.ts +1 -2
  529. package/src/consumers/streamSuccessAudioSwitch.ts +1 -2
  530. package/src/consumers/streamSuccessVideo.ts +35 -6
  531. package/src/index.native.ts +24 -1
  532. package/src/index.ts +7 -0
  533. package/src/methods/exit/confirmExit.ts +11 -4
  534. package/src/methods/socketReceive/getDomains.ts +1 -1
  535. package/src/methods/utils/getParticipantMedia.ts +112 -0
  536. package/src/methods/utils/headless/getCurrentParams.ts +44 -0
  537. package/src/methods/utils/headless/getMediaStreams.ts +256 -0
  538. package/src/methods/utils/headless/getRoomReadiness.ts +49 -0
  539. package/src/methods/utils/headless/headlessTypes.ts +102 -0
  540. package/src/methods/utils/headless/index.ts +28 -0
  541. package/src/methods/utils/headless/mediaPermissions.ts +124 -0
  542. package/src/methods/utils/headless/mediaProduction.ts +505 -0
  543. package/src/methods/utils/headless/moderation.ts +455 -0
  544. package/src/methods/utils/headless/participantState.ts +254 -0
  545. package/src/methods/utils/headless/playback.ts +336 -0
  546. package/src/methods/utils/headless/roomActions.ts +230 -0
  547. package/src/methods/utils/headless/sessionControls.ts +335 -0
  548. package/src/methods/utils/headless/sessionExtras.ts +593 -0
  549. package/src/methods/utils/headless/sessionFeatures.ts +480 -0
  550. package/src/methods/utils/headless/viewerSession.ts +246 -0
  551. package/src/methods/utils/headless/virtualBackground.ts +280 -0
  552. package/src/methods/utils/resolveMediaSFURoomApi.ts +2 -2
  553. package/src/methods/utils/virtualBackgroundCompositor.ts +53 -0
  554. package/src/methods/whiteboard/captureCanvasStream.ts +2 -2
  555. package/src/producers/producerEmits/joinConRoom.ts +1 -1
  556. package/src/producers/producerEmits/joinRoom.ts +1 -1
  557. package/src/types/index.ts +1 -0
  558. package/src/types/shared-base-types.ts +2 -3
@@ -0,0 +1,156 @@
1
+ # Building a Headless MediaSFU Wrapper with mediasfu-shared
2
+
3
+ `mediasfu-shared` is the lowest-level public TypeScript package in the MediaSFU SDK family. It supplies room, socket, producer, consumer, grid, state, and utility primitives. It does not supply a visible room, `ModernMediasfuGeneric`, a custom-component system, or a framework headless controller.
4
+
5
+ Choose this layer only when you are building a framework adapter or a product whose runtime ownership cannot be expressed through a higher-level SDK.
6
+
7
+ ## Prefer the highest useful layer
8
+
9
+ | Need | Recommended layer |
10
+ | --- | --- |
11
+ | Complete polished room | Framework SDK and `ModernMediasfuGeneric` where available |
12
+ | Replace selected cards, controls, or modals | Framework SDK custom components or `uiOverrides` |
13
+ | App owns the full workspace but SDK owns runtime publication | Framework SDK with `returnUI=false` |
14
+ | Build or maintain the framework/runtime adapter itself | `mediasfu-shared` |
15
+
16
+ ## Runtime ownership
17
+
18
+ ```text
19
+ Your framework store and lifecycle
20
+ | current parameter object
21
+ v
22
+ mediasfu-shared room / socket / producer / consumer functions
23
+ | state updates and media events
24
+ v
25
+ Your adapter publishes new immutable framework state
26
+ | resolved video + every remote audio source
27
+ v
28
+ Your application UI
29
+ ```
30
+
31
+ Your adapter must define clear ownership for the socket, mediasoup device, send/receive transports, producers, consumers, participant state, render state, and teardown.
32
+
33
+ ## 1. Make reads pure
34
+
35
+ Create one pure read for your current parameter bag and separate it from publication:
36
+
37
+ ```ts
38
+ let currentParameters: Record<string, any> = {};
39
+
40
+ export function getCurrentParameters() {
41
+ return currentParameters;
42
+ }
43
+
44
+ export function publishParameters(next: Record<string, any>) {
45
+ currentParameters = next;
46
+ subscribers.forEach((subscriber) => subscriber(next));
47
+ }
48
+ ```
49
+
50
+ Do not call a publisher from render, computed state, pagination, polling, or media-card reads. A read must not notify subscribers.
51
+
52
+ The names above belong to your adapter; `mediasfu-shared` does not currently export a dedicated parameter-store controller.
53
+
54
+ ## 2. Secure create and join
55
+
56
+ Keep MediaSFU credentials on your backend. The public client sends an authenticated create/join intent to your app server. The server validates it, adds credentials from environment variables, and forwards it to MediaSFU Cloud or your MediaSFU Open rooms endpoint.
57
+
58
+ Normalize the response into your adapter's session state. Never log secrets or retain raw room responses in screenshots. Follow the [secure proxy guide](https://mediasfu.com/docs/usage/secure-backend-proxy/).
59
+
60
+ For local-only experimentation, short-lived credentials can live in ignored environment configuration. Remove them before committing, publishing, or building public artifacts.
61
+
62
+ ## 3. Connect room and socket state
63
+
64
+ The package exports room helpers, `connectSocket`, `SocketManager`, producer-client flows, socket-receive methods, and TypeScript contracts. Build the smallest happy path first:
65
+
66
+ 1. create or join securely
67
+ 2. connect the socket with returned session data
68
+ 3. create the mediasoup device
69
+ 4. join the assigned room
70
+ 5. register socket event handlers
71
+ 6. publish current room state to the framework
72
+
73
+ Do not mix UI customization into this acceptance step.
74
+
75
+ ## 4. Produce local media
76
+
77
+ The shared package exports `clickAudio`, `clickVideo`, `clickScreenShare`, stream-success helpers, and send-transport helpers. Always invoke them with the newest parameter object from your pure store.
78
+
79
+ Your adapter must surface permission pending, permission denied, producer connecting, live, paused, ended, and failed states so the UI does not guess from button color alone.
80
+
81
+ ## 5. Consume remote media
82
+
83
+ Consumer helpers cover receive transport creation, signaling, consumer resume, producer-close events, piped producers, grid planning, and audio processing. Treat a signaled producer and a renderable live track as different milestones.
84
+
85
+ For every consumer, retain stable identifiers for:
86
+
87
+ - participant
88
+ - producer
89
+ - consumer
90
+ - stream/track
91
+ - media kind
92
+ - screen-share versus camera source
93
+
94
+ Use those identifiers for reconciliation and cleanup rather than array position or visible page.
95
+
96
+ ## 6. Resolve visual media deterministically
97
+
98
+ A reliable wrapper should define a consistent visual priority:
99
+
100
+ 1. active screen share
101
+ 2. selected or pinned remote camera
102
+ 3. local camera preview
103
+ 4. avatar or audio-only fallback
104
+
105
+ Recompute when participants, streams, producer IDs, screen-share state, or track readiness changes. The package exports pure grid/render planning engines such as the `prepopulateUserMedia` and `addVideosGrid` engine helpers; use the generated API reference for exact signatures.
106
+
107
+ ## 7. Render every audio source
108
+
109
+ Audio consumption is independent of video layout and pagination.
110
+
111
+ - Keep a dedicated audio-render collection keyed by stable producer ID.
112
+ - Add an audio target when a live remote audio consumer arrives.
113
+ - Keep it active when the participant is off-page or not selected.
114
+ - Remove it on producer close, participant leave, breakout exclusion, or teardown.
115
+ - Handle browser autoplay or native audio-session restrictions in the framework adapter.
116
+
117
+ ## 8. Publish outside framework render/build phases
118
+
119
+ Socket and transport callbacks may arrive while a framework is rendering. Coalesce publication onto that framework's safe post-render scheduler. Avoid notifying consumers synchronously from React render, Vue computed evaluation, Angular change detection, or another framework's build phase.
120
+
121
+ ## 9. Teardown and late callbacks
122
+
123
+ Teardown can race socket acknowledgements. Guard disposed devices, sockets, and transports in every late callback. Make cleanup idempotent:
124
+
125
+ - unregister socket handlers
126
+ - close consumers and receive transports
127
+ - close producers and send transports
128
+ - stop app-owned tracks
129
+ - detach render targets
130
+ - clear timers, queues, and pending promises where possible
131
+ - publish a final disconnected state once
132
+
133
+ ## 10. Verification matrix
134
+
135
+ Before publishing a wrapper or application, install the released `mediasfu-shared` version from npm and repeat the build and media acceptance checks against that clean dependency.
136
+
137
+ | Path | Minimum proof |
138
+ | --- | --- |
139
+ | Secure create/join | Backend request succeeds and no client artifact contains credentials |
140
+ | Produce | Remote participant receives microphone, camera, and screen tracks |
141
+ | Consume | Local app renders remote camera/screen and plays remote audio |
142
+ | Pagination | Off-page participant remains audible |
143
+ | Resolution | Screen-to-camera-to-fallback transitions without stale frames |
144
+ | Reconnect | Producers/consumers recover without duplicates |
145
+ | Teardown | Late callbacks do not throw and no tracks/listeners remain |
146
+
147
+ Use a real two-participant room for media acceptance. Seeded or mocked UI proves layout only.
148
+
149
+ ## References
150
+
151
+ - [Package README](README.md)
152
+ - [Shared SDK guide](https://mediasfu.com/docs/sdks/shared/)
153
+ - [Generated API references](https://mediasfu.com/docs/api-reference/)
154
+ - [Secure backend proxy](https://mediasfu.com/docs/usage/secure-backend-proxy/)
155
+ - [MediaSFU Open](https://github.com/MediaSFU/MediaSFUOpen)
156
+ - [MediaSFU Sandbox](https://mediasfu.com/sandbox)
package/README.md CHANGED
@@ -1,8 +1,14 @@
1
- # mediasfu-shared · [mediasfu-shared on npm](https://www.npmjs.com/package/mediasfu-shared)
2
-
3
- **mediasfu-shared** is the framework-agnostic WebRTC runtime at the core of the MediaSFU SDK family. It provides shared room helpers, mediasoup signaling, socket management, media state utilities, and TypeScript types for React, Vue, Angular, Svelte, and plain TypeScript. Install with `npm install mediasfu-shared`.
4
-
5
- `mediasfu-shared` is the framework-agnostic MediaSFU runtime package. It exposes the shared room helpers, mediasoup/socket flows, state utilities, and TypeScript types used by the MediaSFU SDK family.
1
+ # mediasfu-shared — framework-neutral MediaSFU engine
2
+
3
+ **mediasfu-shared** is the framework-agnostic WebRTC runtime at the core of the MediaSFU SDK family. It provides shared room helpers, mediasoup signaling, socket management, media state utilities, and TypeScript types for React, Vue, Angular, Svelte, and plain TypeScript. Install with `npm install mediasfu-shared`.
4
+
5
+ <p align="center">
6
+ <a href="https://www.mediasfu.com/quick-usage">
7
+ <img src="https://raw.githubusercontent.com/MediaSFU/MediaSFU-Shared/main/public/readme/mediasfu-platform-capabilities.webp" width="1100" alt="MediaSFU real-time product capabilities including meetings, live broadcasts, classrooms, calling, recording, agents, and live commerce" />
8
+ </a>
9
+ </p>
10
+
11
+ This package exposes framework-neutral room, media, participant, playback, and headless helpers. It does not render a room or provide a framework state controller. Choose a framework SDK when you want prebuilt UI, `ModernMediasfuGeneric`, UI overrides, or a framework-native headless hook or service.
6
12
 
7
13
  ## When To Use This Package
8
14
 
@@ -20,55 +26,104 @@ npm install mediasfu-shared mediasoup-client socket.io-client
20
26
 
21
27
  `mediasoup-client` and `socket.io-client` are peer dependencies, so install them in the host app.
22
28
 
23
- ## Backend Requirement
24
-
25
- The cloud room helpers in this package target `https://mediasfu.com/v1/rooms/` by default.
26
-
27
- - Use MediaSFU Cloud when you want managed room creation, signaling, and media routing. Pass `apiUserName` and `apiKey`.
28
- - Use MediaSFU Open / Community Edition when you self-host. Pass a non-MediaSFU `localLink` such as `http://localhost:3000`.
29
-
30
- ## Quick Example
31
-
32
- ```ts
33
- import {
34
- SocketManager,
35
- connectSocket,
36
- createRoomOnMediaSFU,
37
- joinRoomOnMediaSFU,
38
- } from 'mediasfu-shared';
39
-
40
- const createResult = await createRoomOnMediaSFU({
41
- payload: {
42
- action: 'create',
43
- userName: 'Ada',
44
- duration: 60,
45
- capacity: 10,
46
- },
47
- apiUserName: 'your-api-username',
48
- apiKey: 'your-64-character-api-key',
49
- });
50
-
51
- const joinResult = await joinRoomOnMediaSFU({
52
- payload: {
53
- action: 'join',
54
- meetingID: 'room123',
55
- userName: 'Ben',
56
- },
57
- apiUserName: 'your-api-username',
58
- apiKey: 'your-64-character-api-key',
59
- });
60
-
61
- const socket = await connectSocket({
62
- apiUserName: 'your-api-username',
63
- apiKey: 'your-64-character-api-key',
64
- apiToken: 'your-api-token',
65
- link: 'https://mediasfu.com/socket',
66
- });
67
-
68
- const socketManager = new SocketManager({ socket });
69
-
70
- console.log(createResult.success, joinResult.success, socketManager.socket.connected);
71
- ```
29
+ ## Backend requirement and credential boundary
30
+
31
+ The Cloud room helpers target `https://mediasfu.com/v1/rooms/` by default.
32
+
33
+ - Use **MediaSFU Cloud** when you want managed room creation, signaling, and media routing.
34
+ - Use **MediaSFU Open** when you want your own locally or privately running MediaSFU media server. You install and operate [MediaSFU Open](https://github.com/MediaSFU/MediaSFUOpen), then configure its reachable URL.
35
+
36
+ In production, create and join rooms through your authenticated backend so the MediaSFU API username and key never enter a browser or mobile bundle. Direct credentials are suitable only for an ignored, private local-development environment.
37
+
38
+ ## Server-side room bootstrap
39
+
40
+ The following shape belongs in a trusted server process. Validate and authorize the caller, load credentials from server-side environment configuration, and return only the client-safe room/session fields your application needs.
41
+
42
+ ```ts
43
+ import {
44
+ createRoomOnMediaSFU,
45
+ } from 'mediasfu-shared';
46
+
47
+ export async function createRoomForAuthenticatedUser(userName: string) {
48
+ return createRoomOnMediaSFU({
49
+ payload: {
50
+ action: 'create',
51
+ userName,
52
+ duration: 60,
53
+ capacity: 10,
54
+ },
55
+ apiUserName: process.env.MEDIASFU_API_USERNAME ?? '',
56
+ apiKey: process.env.MEDIASFU_API_KEY ?? '',
57
+ });
58
+ }
59
+ ```
60
+
61
+ ## Headless state and actions
62
+
63
+ `mediasfu-shared` exports the framework-independent headless helpers used by the
64
+ React Native, Expo, Vue, and Angular adapters. The package does not mount a room
65
+ component by itself: pass it the newest parameter bag published by your chosen
66
+ framework SDK.
67
+
68
+ ```ts
69
+ import {
70
+ getCurrentParams,
71
+ getRoomReadiness,
72
+ getLocalVideoStream,
73
+ listParticipantMediaStates,
74
+ runMediaControl,
75
+ type HeadlessParameters,
76
+ } from 'mediasfu-shared';
77
+
78
+ let parameters: HeadlessParameters = {};
79
+
80
+ export function acceptPublishedParameters(next: HeadlessParameters) {
81
+ parameters = next;
82
+ }
83
+
84
+ export function readRoom() {
85
+ const current = getCurrentParams({ parameters });
86
+ return {
87
+ readiness: getRoomReadiness({ parameters: current }),
88
+ localVideo: getLocalVideoStream({ parameters: current }),
89
+ participants: listParticipantMediaStates({ parameters: current }),
90
+ };
91
+ }
92
+
93
+ export async function toggleMicrophone() {
94
+ return runMediaControl({ parameters, control: 'clickAudio' });
95
+ }
96
+ ```
97
+
98
+ Always replace the stored bag when the framework publishes a new one. Do not
99
+ hold an earlier snapshot: the SDK reassigns fields as room state changes.
100
+ `getCurrentParams()` is a pure read. `getUpdatedAllParams()` republishes and
101
+ must not be used by render functions, computed values, or polling timers.
102
+
103
+ The headless barrel also exports media-stream resolution, participant state,
104
+ permissions, moderation, recording/polls/whiteboard/breakout controls, session
105
+ extras, playback/viewer capabilities, and media-production helpers. The native
106
+ entry omits the DOM-only virtual-background pipeline; use the native SDK's
107
+ platform implementation instead.
108
+
109
+ ### Browser virtual backgrounds
110
+
111
+ For a browser headless wrapper, apply a background after the camera is live and
112
+ keep rendering the stream returned by the SDK's current parameter bag:
113
+
114
+ ```ts
115
+ import { applyVirtualBackground, clearVirtualBackground } from 'mediasfu-shared';
116
+
117
+ await applyVirtualBackground({ parameters, image: '/backgrounds/studio.jpg' });
118
+ // On removal, the producer is restored to the raw camera track.
119
+ await clearVirtualBackground({ parameters });
120
+ ```
121
+
122
+ The helper uses the same segmentation/compositing contract as the React modal,
123
+ isolates processing tracks, and updates `virtualStream`/`processedStream` for
124
+ the self-view. Native builds intentionally omit this browser-only pipeline.
125
+
126
+ For lifecycle ownership, media resolution, independent audio rendering, publication scheduling, and teardown guidance, read [Building a Headless MediaSFU Wrapper](HEADLESS_GUIDE.md).
72
127
 
73
128
  ## Import Paths
74
129
 
@@ -77,11 +132,13 @@ console.log(createResult.success, joinResult.success, socketManager.socket.conne
77
132
  - `mediasfu-shared/methods` is useful when you want action utilities and room helpers.
78
133
  - `mediasfu-shared/types` is useful when you only need TypeScript contracts.
79
134
 
80
- ## Documentation
81
-
82
- - Main docs: [https://mediasfu.com/documentation](https://mediasfu.com/documentation)
83
- - User guide: [https://mediasfu.com/user-guide](https://mediasfu.com/user-guide)
84
- - MediaSFU Open / CE: [https://github.com/MediaSFU/MediaSFUOpen](https://github.com/MediaSFU/MediaSFUOpen)
135
+ ## Documentation
136
+
137
+ - Shared/headless guide: [HEADLESS_GUIDE.md](HEADLESS_GUIDE.md)
138
+ - Main developer docs: [https://mediasfu.com/documentation](https://mediasfu.com/documentation)
139
+ - API Sandbox: [https://mediasfu.com/sandbox](https://mediasfu.com/sandbox)
140
+ - Secure backend proxy guide: [https://mediasfu.com/docs/usage/secure-backend-proxy/](https://mediasfu.com/docs/usage/secure-backend-proxy/)
141
+ - MediaSFU Open / CE: [https://github.com/MediaSFU/MediaSFUOpen](https://github.com/MediaSFU/MediaSFUOpen)
85
142
 
86
143
  Generate package-local API docs with:
87
144
 
@@ -103,6 +160,17 @@ npm run build-docs
103
160
  - GitHub issues: [https://github.com/MediaSFU/MediaSFU-Shared/issues](https://github.com/MediaSFU/MediaSFU-Shared/issues)
104
161
  - Email: info@mediasfu.com
105
162
 
106
- ## License
107
-
108
- MIT. See [LICENSE](LICENSE).
163
+ ## Host leave and rejoin
164
+
165
+ Host exits still end the room by default. To leave while keeping the room, timer, and other participants active, pass `endRoomOnHostExit: false`:
166
+
167
+ ```ts
168
+ await confirmExit({ socket, member, roomName, endRoomOnHostExit: false });
169
+ await leaveRoom({ parameters, endRoomOnHostExit: false });
170
+ ```
171
+
172
+ The host can later rejoin with the normal room credentials. Never expose production API credentials in a client application; use your backend room proxy outside local development.
173
+
174
+ ## License
175
+
176
+ MIT. See [LICENSE](LICENSE).
@@ -0,0 +1,23 @@
1
+ import { RtpCapabilities, Device } from 'mediasoup-client/types';
2
+ export interface CreateDeviceClientOptions {
3
+ rtpCapabilities: RtpCapabilities | null;
4
+ }
5
+ export type CreateDeviceClientType = (options: CreateDeviceClientOptions) => Promise<Device | null>;
6
+ /**
7
+ * Creates a mediasoup client device with the provided RTP capabilities.
8
+ *
9
+ * @param {CreateDeviceClientOptions} options - The options for creating the device client.
10
+ * @param {RTPCapabilities} options.rtpCapabilities - The RTP capabilities required for the device.
11
+ * @returns {Promise<Device | null>} A promise that resolves to the created Device or null if creation fails.
12
+ * @throws {Error} Throws an error if the required parameters are not provided or if device creation is not supported.
13
+ *
14
+ * @example
15
+ * const device = await createDeviceClient({ rtpCapabilities });
16
+ * if (device) {
17
+ * console.log("Device created successfully");
18
+ * } else {
19
+ * console.log("Failed to create device");
20
+ * }
21
+ */
22
+ export declare const createDeviceClient: ({ rtpCapabilities }: CreateDeviceClientOptions) => Promise<Device | null>;
23
+ //# sourceMappingURL=createDeviceClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createDeviceClient.d.ts","sourceRoot":"","sources":["../../../src/ProducerClient/producerClientEmits/createDeviceClient.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEtE,MAAM,WAAW,yBAAyB;IACxC,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;CACzC;AAID,MAAM,MAAM,sBAAsB,GAAG,CAAC,OAAO,EAAE,yBAAyB,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAGpG;;;;;;;;;;;;;;;GAeG;AAEH,eAAO,MAAM,kBAAkB,GAAU,qBAEtC,yBAAyB,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAiCnD,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { Socket } from 'socket.io-client';
2
+ import { JoinRoomResponse } from '../../producers/producerEmits/joinRoom';
3
+ import { JoinConRoomResponse } from '../../producers/producerEmits/joinConRoom';
4
+ export interface JoinRoomClientOptions {
5
+ socket: Socket;
6
+ roomName: string;
7
+ islevel: string;
8
+ member: string;
9
+ sec: string;
10
+ apiUserName: string;
11
+ consume?: boolean;
12
+ }
13
+ export type JoinRoomClientResponse = JoinRoomResponse | JoinConRoomResponse;
14
+ export type JoinRoomClientType = (options: JoinRoomClientOptions) => Promise<JoinRoomClientResponse>;
15
+ /**
16
+ * Joins a room by delegating to the producer or consumer join emit based on the consume flag.
17
+ *
18
+ * @param {JoinRoomClientOptions} options - The options for joining the room.
19
+ * @returns {Promise<JoinRoomClientResponse>} The response returned from the server.
20
+ */
21
+ export declare const joinRoomClient: ({ socket, roomName, islevel, member, sec, apiUserName, consume, }: JoinRoomClientOptions) => Promise<JoinRoomClientResponse>;
22
+ //# sourceMappingURL=joinRoomClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"joinRoomClient.d.ts","sourceRoot":"","sources":["../../../src/ProducerClient/producerClientEmits/joinRoomClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAY,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AACpF,OAAO,EAAe,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAE7F,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,GAAG,mBAAmB,CAAC;AAC5E,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE,qBAAqB,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;AAErG;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAU,mEAQlC,qBAAqB,KAAG,OAAO,CAAC,sBAAsB,CAyBxD,CAAC"}
@@ -0,0 +1,85 @@
1
+ import { RtpCapabilities } from 'mediasoup-client/types';
2
+ import { HParamsType, VParamsType, ScreenParamsType, AParamsType, MeetingRoomParams, VidCons, ShowAlert, ResponseJoinRoom, EventType } from '../../types/shared-base-types';
3
+ export interface UpdateRoomParametersClientParameters {
4
+ rtpCapabilities: RtpCapabilities | null;
5
+ roomRecvIPs: string[];
6
+ meetingRoomParams: MeetingRoomParams | null;
7
+ itemPageLimit: number;
8
+ audioOnlyRoom: boolean;
9
+ addForBasic: boolean;
10
+ screenPageLimit: number;
11
+ shareScreenStarted: boolean;
12
+ shared: boolean;
13
+ targetOrientation: string;
14
+ vidCons: VidCons;
15
+ recordingVideoSupport: boolean;
16
+ frameRate: number;
17
+ adminPasscode: string;
18
+ eventType: EventType;
19
+ youAreCoHost: boolean;
20
+ autoWave: boolean;
21
+ forceFullDisplay: boolean;
22
+ chatSetting: string;
23
+ meetingDisplayType: string;
24
+ audioSetting: string;
25
+ videoSetting: string;
26
+ screenshareSetting: string;
27
+ hParams: HParamsType;
28
+ vParams: VParamsType;
29
+ screenParams: ScreenParamsType;
30
+ aParams: AParamsType;
31
+ islevel: string;
32
+ showAlert?: ShowAlert;
33
+ data: ResponseJoinRoom;
34
+ updateRtpCapabilities: (rtpCapabilities: RtpCapabilities | null) => void;
35
+ updateRoomRecvIPs: (roomRecvIPs: string[]) => void;
36
+ updateMeetingRoomParams: (meetingRoomParams: MeetingRoomParams | null) => void;
37
+ updateItemPageLimit: (limit: number) => void;
38
+ updateAudioOnlyRoom: (isAudioOnly: boolean) => void;
39
+ updateAddForBasic: (addForBasic: boolean) => void;
40
+ updateScreenPageLimit: (limit: number) => void;
41
+ updateVidCons: (cons: VidCons) => void;
42
+ updateFrameRate: (frameRate: number) => void;
43
+ updateAdminPasscode: (passcode: string) => void;
44
+ updateEventType: (eventType: EventType) => void;
45
+ updateYouAreCoHost: (coHost: boolean) => void;
46
+ updateAutoWave: (autoWave: boolean) => void;
47
+ updateForceFullDisplay: (forceFull: boolean) => void;
48
+ updateChatSetting: (setting: string) => void;
49
+ updateMeetingDisplayType: (type: string) => void;
50
+ updateAudioSetting: (setting: string) => void;
51
+ updateVideoSetting: (setting: string) => void;
52
+ updateScreenshareSetting: (setting: string) => void;
53
+ updateHParams: (params: HParamsType) => void;
54
+ updateVParams: (params: VParamsType) => void;
55
+ updateScreenParams: (params: ScreenParamsType) => void;
56
+ updateAParams: (params: AParamsType) => void;
57
+ updateMainHeightWidth: (heightWidth: number) => void;
58
+ updateTargetResolution: (resolution: string) => void;
59
+ updateTargetResolutionHost: (resolution: string) => void;
60
+ updateRecordingAudioPausesLimit: (limit: number) => void;
61
+ updateRecordingAudioPausesCount: (count: number) => void;
62
+ updateRecordingAudioSupport: (support: boolean) => void;
63
+ updateRecordingAudioPeopleLimit: (limit: number) => void;
64
+ updateRecordingAudioParticipantsTimeLimit: (limit: number) => void;
65
+ updateRecordingVideoPausesCount: (count: number) => void;
66
+ updateRecordingVideoPausesLimit: (limit: number) => void;
67
+ updateRecordingVideoSupport: (support: boolean) => void;
68
+ updateRecordingVideoPeopleLimit: (limit: number) => void;
69
+ updateRecordingVideoParticipantsTimeLimit: (limit: number) => void;
70
+ updateRecordingAllParticipantsSupport: (support: boolean) => void;
71
+ updateRecordingVideoParticipantsSupport: (support: boolean) => void;
72
+ updateRecordingAllParticipantsFullRoomSupport: (support: boolean) => void;
73
+ updateRecordingVideoParticipantsFullRoomSupport: (support: boolean) => void;
74
+ updateRecordingPreferredOrientation: (orientation: string) => void;
75
+ updateRecordingSupportForOtherOrientation: (support: boolean) => void;
76
+ updateRecordingMultiFormatsSupport: (support: boolean) => void;
77
+ updateRecordingVideoOptions: (options: string) => void;
78
+ updateRecordingAudioOptions: (options: string) => void;
79
+ }
80
+ export type UpdateRoomParametersClientOptions = {
81
+ parameters: UpdateRoomParametersClientParameters;
82
+ };
83
+ export type UpdateRoomParametersClientType = (options: UpdateRoomParametersClientOptions) => void;
84
+ export declare const updateRoomParametersClient: ({ parameters }: UpdateRoomParametersClientOptions) => void;
85
+ //# sourceMappingURL=updateRoomParametersClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateRoomParametersClient.d.ts","sourceRoot":"","sources":["../../../src/ProducerClient/producerClientEmits/updateRoomParametersClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export interface AddVideosGridParameters {
2
+ [key: string]: any;
3
+ }
4
+ export interface AddVideosGridOptions {
5
+ parameters: AddVideosGridParameters;
6
+ [key: string]: any;
7
+ }
8
+ export type AddVideosGridType = (options: AddVideosGridOptions) => Promise<void>;
9
+ export declare const addVideosGrid: AddVideosGridType;
10
+ //# sourceMappingURL=addVideosGrid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addVideosGrid.d.ts","sourceRoot":"","sources":["../../src/consumers/addVideosGrid.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,uBAAuB;IACtC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,uBAAuB,CAAC;IACpC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEjF,eAAO,MAAM,aAAa,EAAE,iBAE3B,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { EventType } from '../types/types';
2
+ export interface AutoAdjustOptions {
3
+ n: number;
4
+ eventType: EventType;
5
+ shareScreenStarted: boolean;
6
+ shared: boolean;
7
+ }
8
+ export type AutoAdjustType = (options: AutoAdjustOptions) => Promise<number[]>;
9
+ /**
10
+ * Adjusts values based on the provided options and the number of participants.
11
+ *
12
+ * @function
13
+ * @async
14
+ * @param {AutoAdjustOptions} options - The options for auto adjustment.
15
+ * @param {number} options.n - The number of participants.
16
+ * @param {string} options.eventType - The type of event (e.g., 'broadcast', 'chat', 'conference').
17
+ * @param {boolean} options.shareScreenStarted - Indicates if screen sharing has started.
18
+ * @param {boolean} options.shared - Indicates if something is shared.
19
+ *
20
+ * @returns {Promise<number[]>} A promise that resolves to an array containing the adjusted values.
21
+ *
22
+ * @example
23
+ * import { autoAdjust } from 'mediasfu-reactjs';
24
+ *
25
+ * const options = {
26
+ * n: 10,
27
+ * eventType: 'conference',
28
+ * shareScreenStarted: false,
29
+ * shared: false,
30
+ * };
31
+ *
32
+ * autoAdjust(options)
33
+ * .then(values => {
34
+ * console.log('Adjusted values:', values);
35
+ * })
36
+ * .catch(error => {
37
+ * console.error('Error adjusting values:', error);
38
+ * });
39
+ */
40
+ export declare function autoAdjust({ n, eventType, shareScreenStarted, shared }: AutoAdjustOptions): Promise<number[]>;
41
+ //# sourceMappingURL=autoAdjust.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autoAdjust.d.ts","sourceRoot":"","sources":["../../src/consumers/autoAdjust.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,WAAW,iBAAiB;IAChC,CAAC,EAAE,MAAM,CAAC;IACV,SAAS,EAAE,SAAS,CAAC;IACrB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AAG/E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,wBAAsB,UAAU,CAAC,EAC/B,CAAC,EACD,SAAS,EAAE,kBAAkB,EAAE,MAAM,EACtC,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAoDvC"}
@@ -0,0 +1,24 @@
1
+ export interface CalculateRowsAndColumnsOptions {
2
+ n: number;
3
+ }
4
+ export type CalculateRowsAndColumnsType = (options: CalculateRowsAndColumnsOptions) => [number, number];
5
+ /**
6
+ * Calculates the number of rows and columns needed to display a given number of items in a grid.
7
+ *
8
+ * @function
9
+ * @param {CalculateRowsAndColumnsOptions} options - The options for calculating rows and columns.
10
+ * @param {number} options.n - The number of items to display.
11
+ * @returns {[number, number]} A tuple containing the number of rows and columns.
12
+ *
13
+ * @example
14
+ * import { calculateRowsAndColumns } from 'mediasfu-reactjs';
15
+ *
16
+ * const options = {
17
+ * n: 10,
18
+ * };
19
+ *
20
+ * const [rows, cols] = calculateRowsAndColumns(options);
21
+ * console.log(`Rows: ${rows}, Columns: ${cols}`); // Outputs: Rows: 4, Columns: 3
22
+ */
23
+ export declare function calculateRowsAndColumns({ n }: CalculateRowsAndColumnsOptions): [number, number];
24
+ //# sourceMappingURL=calculateRowsAndColumns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculateRowsAndColumns.d.ts","sourceRoot":"","sources":["../../src/consumers/calculateRowsAndColumns.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,8BAA8B;IAC7C,CAAC,EAAE,MAAM,CAAC;CACX;AAGD,MAAM,MAAM,2BAA2B,GAAG,CAAC,OAAO,EAAE,8BAA8B,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAExG;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,uBAAuB,CAAC,EAAE,CAAC,EAAE,EAAE,8BAA8B,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAyB/F"}