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.
- package/HEADLESS_GUIDE.md +156 -0
- package/README.md +130 -62
- package/dist/ProducerClient/producerClientEmits/createDeviceClient.d.ts +23 -0
- package/dist/ProducerClient/producerClientEmits/createDeviceClient.d.ts.map +1 -0
- package/dist/ProducerClient/producerClientEmits/joinRoomClient.d.ts +22 -0
- package/dist/ProducerClient/producerClientEmits/joinRoomClient.d.ts.map +1 -0
- package/dist/ProducerClient/producerClientEmits/updateRoomParametersClient.d.ts +85 -0
- package/dist/ProducerClient/producerClientEmits/updateRoomParametersClient.d.ts.map +1 -0
- package/dist/consumers/addVideosGrid.d.ts +10 -0
- package/dist/consumers/addVideosGrid.d.ts.map +1 -0
- package/dist/consumers/autoAdjust.d.ts +41 -0
- package/dist/consumers/autoAdjust.d.ts.map +1 -0
- package/dist/consumers/calculateRowsAndColumns.d.ts +24 -0
- package/dist/consumers/calculateRowsAndColumns.d.ts.map +1 -0
- package/dist/consumers/changeVids.d.ts +252 -0
- package/dist/consumers/changeVids.d.ts.map +1 -0
- package/dist/consumers/checkGrid.d.ts +42 -0
- package/dist/consumers/checkGrid.d.ts.map +1 -0
- package/dist/consumers/checkPermission.d.ts +42 -0
- package/dist/consumers/checkPermission.d.ts.map +1 -0
- package/dist/consumers/checkScreenShare.d.ts +59 -0
- package/dist/consumers/checkScreenShare.d.ts.map +1 -0
- package/dist/consumers/closeAndResize.d.ts +157 -0
- package/dist/consumers/closeAndResize.d.ts.map +1 -0
- package/dist/consumers/compareActiveNames.d.ts +50 -0
- package/dist/consumers/compareActiveNames.d.ts.map +1 -0
- package/dist/consumers/compareScreenStates.d.ts +55 -0
- package/dist/consumers/compareScreenStates.d.ts.map +1 -0
- package/dist/consumers/connectIps.d.ts +66 -0
- package/dist/consumers/connectIps.d.ts.map +1 -0
- package/dist/consumers/connectLocalIps.d.ts +52 -0
- package/dist/consumers/connectLocalIps.d.ts.map +1 -0
- package/dist/consumers/connectRecvTransport.d.ts +64 -0
- package/dist/consumers/connectRecvTransport.d.ts.map +1 -0
- package/dist/consumers/connectSendTransport.d.ts +75 -0
- package/dist/consumers/connectSendTransport.d.ts.map +1 -0
- package/dist/consumers/connectSendTransportAudio.d.ts +62 -0
- package/dist/consumers/connectSendTransportAudio.d.ts.map +1 -0
- package/dist/consumers/connectSendTransportScreen.d.ts +72 -0
- package/dist/consumers/connectSendTransportScreen.d.ts.map +1 -0
- package/dist/consumers/connectSendTransportVideo.d.ts +75 -0
- package/dist/consumers/connectSendTransportVideo.d.ts.map +1 -0
- package/dist/consumers/consumerResume.d.ts +16 -0
- package/dist/consumers/consumerResume.d.ts.map +1 -0
- package/dist/consumers/controlMedia.d.ts +61 -0
- package/dist/consumers/controlMedia.d.ts.map +1 -0
- package/dist/consumers/createSendTransport.d.ts +80 -0
- package/dist/consumers/createSendTransport.d.ts.map +1 -0
- package/dist/consumers/disconnectSendTransportAudio.d.ts +79 -0
- package/dist/consumers/disconnectSendTransportAudio.d.ts.map +1 -0
- package/dist/consumers/disconnectSendTransportScreen.d.ts +61 -0
- package/dist/consumers/disconnectSendTransportScreen.d.ts.map +1 -0
- package/dist/consumers/disconnectSendTransportVideo.d.ts +72 -0
- package/dist/consumers/disconnectSendTransportVideo.d.ts.map +1 -0
- package/dist/consumers/dispStreams.d.ts +189 -0
- package/dist/consumers/dispStreams.d.ts.map +1 -0
- package/dist/consumers/frameworkConsumerContract.d.ts +2 -0
- package/dist/consumers/frameworkConsumerContract.d.ts.map +1 -0
- package/dist/consumers/generatePageContent.d.ts +68 -0
- package/dist/consumers/generatePageContent.d.ts.map +1 -0
- package/dist/consumers/getEstimate.d.ts +62 -0
- package/dist/consumers/getEstimate.d.ts.map +1 -0
- package/dist/consumers/getPipedProducersAlt.d.ts +62 -0
- package/dist/consumers/getPipedProducersAlt.d.ts.map +1 -0
- package/dist/consumers/getProducersPiped.d.ts +49 -0
- package/dist/consumers/getProducersPiped.d.ts.map +1 -0
- package/dist/consumers/getVideos.d.ts +49 -0
- package/dist/consumers/getVideos.d.ts.map +1 -0
- package/dist/consumers/gridLayout/addVideosGrid.engine.d.ts +19 -0
- package/dist/consumers/gridLayout/addVideosGrid.engine.d.ts.map +1 -0
- package/dist/consumers/gridLayout/prepopulateUserMedia.engine.d.ts +138 -0
- package/dist/consumers/gridLayout/prepopulateUserMedia.engine.d.ts.map +1 -0
- package/dist/consumers/index.cjs +80 -0
- package/dist/consumers/index.cjs.map +1 -0
- package/dist/consumers/index.d.ts +62 -0
- package/dist/consumers/index.d.ts.map +1 -0
- package/dist/consumers/index.js +80 -0
- package/dist/consumers/index.js.map +1 -0
- package/dist/consumers/mixStreams.d.ts +37 -0
- package/dist/consumers/mixStreams.d.ts.map +1 -0
- package/dist/consumers/onScreenChanges.d.ts +62 -0
- package/dist/consumers/onScreenChanges.d.ts.map +1 -0
- package/dist/consumers/prepopulateUserMedia.d.ts +10 -0
- package/dist/consumers/prepopulateUserMedia.d.ts.map +1 -0
- package/dist/consumers/processConsumerTransports.d.ts +73 -0
- package/dist/consumers/processConsumerTransports.d.ts.map +1 -0
- package/dist/consumers/processConsumerTransportsAudio.d.ts +57 -0
- package/dist/consumers/processConsumerTransportsAudio.d.ts.map +1 -0
- package/dist/consumers/rePort.d.ts +63 -0
- package/dist/consumers/rePort.d.ts.map +1 -0
- package/dist/consumers/reUpdateInter.d.ts +142 -0
- package/dist/consumers/reUpdateInter.d.ts.map +1 -0
- package/dist/consumers/readjust.d.ts +68 -0
- package/dist/consumers/readjust.d.ts.map +1 -0
- package/dist/consumers/receiveAllPipedTransports.d.ts +44 -0
- package/dist/consumers/receiveAllPipedTransports.d.ts.map +1 -0
- package/dist/consumers/receiveRoomMessages.d.ts +31 -0
- package/dist/consumers/receiveRoomMessages.d.ts.map +1 -0
- package/dist/consumers/reorderStreams.d.ts +98 -0
- package/dist/consumers/reorderStreams.d.ts.map +1 -0
- package/dist/consumers/requestScreenShare.d.ts +47 -0
- package/dist/consumers/requestScreenShare.d.ts.map +1 -0
- package/dist/consumers/resumePauseAudioStreams.d.ts +85 -0
- package/dist/consumers/resumePauseAudioStreams.d.ts.map +1 -0
- package/dist/consumers/resumePauseStreams.d.ts +68 -0
- package/dist/consumers/resumePauseStreams.d.ts.map +1 -0
- package/dist/consumers/resumeSendTransportAudio.d.ts +65 -0
- package/dist/consumers/resumeSendTransportAudio.d.ts.map +1 -0
- package/dist/consumers/signalNewConsumerTransport.d.ts +59 -0
- package/dist/consumers/signalNewConsumerTransport.d.ts.map +1 -0
- package/dist/consumers/socketReceiveMethods/joinConsumeRoom.d.ts +76 -0
- package/dist/consumers/socketReceiveMethods/joinConsumeRoom.d.ts.map +1 -0
- package/dist/consumers/socketReceiveMethods/newPipeProducer.d.ts +119 -0
- package/dist/consumers/socketReceiveMethods/newPipeProducer.d.ts.map +1 -0
- package/dist/consumers/socketReceiveMethods/producerClosed.d.ts +53 -0
- package/dist/consumers/socketReceiveMethods/producerClosed.d.ts.map +1 -0
- package/dist/consumers/startShareScreen.d.ts +58 -0
- package/dist/consumers/startShareScreen.d.ts.map +1 -0
- package/dist/consumers/stopShareScreen.d.ts +127 -0
- package/dist/consumers/stopShareScreen.d.ts.map +1 -0
- package/dist/consumers/streamSuccessAudio.d.ts +149 -0
- package/dist/consumers/streamSuccessAudio.d.ts.map +1 -0
- package/dist/consumers/streamSuccessAudioSwitch.d.ts +131 -0
- package/dist/consumers/streamSuccessAudioSwitch.d.ts.map +1 -0
- package/dist/consumers/streamSuccessScreen.d.ts +109 -0
- package/dist/consumers/streamSuccessScreen.d.ts.map +1 -0
- package/dist/consumers/streamSuccessVideo.d.ts +160 -0
- package/dist/consumers/streamSuccessVideo.d.ts.map +1 -0
- package/dist/consumers/switchUserAudio.d.ts +56 -0
- package/dist/consumers/switchUserAudio.d.ts.map +1 -0
- package/dist/consumers/switchUserVideo.d.ts +77 -0
- package/dist/consumers/switchUserVideo.d.ts.map +1 -0
- package/dist/consumers/switchUserVideoAlt.d.ts +69 -0
- package/dist/consumers/switchUserVideoAlt.d.ts.map +1 -0
- package/dist/consumers/translationConsumerSwitch.d.ts +67 -0
- package/dist/consumers/translationConsumerSwitch.d.ts.map +1 -0
- package/dist/consumers/trigger.d.ts +71 -0
- package/dist/consumers/trigger.d.ts.map +1 -0
- package/dist/consumers/updateMiniCardsGrid.d.ts +65 -0
- package/dist/consumers/updateMiniCardsGrid.d.ts.map +1 -0
- package/dist/consumers/updateParticipantAudioDecibels.d.ts +31 -0
- package/dist/consumers/updateParticipantAudioDecibels.d.ts.map +1 -0
- package/dist/getParticipantMedia-B0JS6d2b.js +3555 -0
- package/dist/getParticipantMedia-B0JS6d2b.js.map +1 -0
- package/dist/getParticipantMedia-CdcYqcbD.cjs +3554 -0
- package/dist/getParticipantMedia-CdcYqcbD.cjs.map +1 -0
- package/dist/index.cjs +2727 -13252
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +192 -11233
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2636 -13143
- package/dist/index.js.map +1 -1
- package/dist/index.native.cjs +352 -0
- package/dist/index.native.cjs.map +1 -0
- package/dist/index.native.d.ts +204 -0
- package/dist/index.native.d.ts.map +1 -0
- package/dist/index.native.js +352 -0
- package/dist/index.native.js.map +1 -0
- package/dist/joinLocalRoom-BdM1msQt.cjs +673 -0
- package/dist/joinLocalRoom-BdM1msQt.cjs.map +1 -0
- package/dist/joinLocalRoom-CvteNe4R.js +657 -0
- package/dist/joinLocalRoom-CvteNe4R.js.map +1 -0
- package/dist/joinRoomOnMediaSFU-CC8RVJgr.cjs +1222 -0
- package/dist/joinRoomOnMediaSFU-CC8RVJgr.cjs.map +1 -0
- package/dist/joinRoomOnMediaSFU-y6vJ1OBo.js +1223 -0
- package/dist/joinRoomOnMediaSFU-y6vJ1OBo.js.map +1 -0
- package/dist/methods/background/launchBackground.d.ts +10 -0
- package/dist/methods/background/launchBackground.d.ts.map +1 -0
- package/dist/methods/breakoutRooms/breakoutRoomUpdated.d.ts +67 -0
- package/dist/methods/breakoutRooms/breakoutRoomUpdated.d.ts.map +1 -0
- package/dist/methods/breakoutRooms/handleStartBreakout.d.ts +42 -0
- package/dist/methods/breakoutRooms/handleStartBreakout.d.ts.map +1 -0
- package/dist/methods/breakoutRooms/handleStopBreakout.d.ts +33 -0
- package/dist/methods/breakoutRooms/handleStopBreakout.d.ts.map +1 -0
- package/dist/methods/breakoutRooms/index.d.ts +5 -0
- package/dist/methods/breakoutRooms/index.d.ts.map +1 -0
- package/dist/methods/breakoutRooms/launchBreakoutRooms.d.ts +25 -0
- package/dist/methods/breakoutRooms/launchBreakoutRooms.d.ts.map +1 -0
- package/dist/methods/coHost/launchCoHost.d.ts +25 -0
- package/dist/methods/coHost/launchCoHost.d.ts.map +1 -0
- package/dist/methods/coHostMethods/index.d.ts +3 -0
- package/dist/methods/coHostMethods/index.d.ts.map +1 -0
- package/dist/methods/coHostMethods/modifyCoHostSettings.d.ts +49 -0
- package/dist/methods/coHostMethods/modifyCoHostSettings.d.ts.map +1 -0
- package/dist/methods/displaySettings/index.d.ts +2 -0
- package/dist/methods/displaySettings/index.d.ts.map +1 -0
- package/dist/methods/displaySettings/launchDisplaySettings.d.ts +25 -0
- package/dist/methods/displaySettings/launchDisplaySettings.d.ts.map +1 -0
- package/dist/methods/displaySettings/modifyDisplaySettings.d.ts +106 -0
- package/dist/methods/displaySettings/modifyDisplaySettings.d.ts.map +1 -0
- package/dist/methods/exit/confirmExit.d.ts +38 -0
- package/dist/methods/exit/confirmExit.d.ts.map +1 -0
- package/dist/methods/exit/index.d.ts +3 -0
- package/dist/methods/exit/index.d.ts.map +1 -0
- package/dist/methods/exit/launchConfirmExit.d.ts +23 -0
- package/dist/methods/exit/launchConfirmExit.d.ts.map +1 -0
- package/dist/methods/index.cjs +3975 -0
- package/dist/methods/index.cjs.map +1 -0
- package/dist/methods/index.d.ts +66 -0
- package/dist/methods/index.d.ts.map +1 -0
- package/dist/methods/index.js +3976 -0
- package/dist/methods/index.js.map +1 -0
- package/dist/methods/mediaSettings/launchMediaSettings.d.ts +38 -0
- package/dist/methods/mediaSettings/launchMediaSettings.d.ts.map +1 -0
- package/dist/methods/menu/launchMenuModal.d.ts +22 -0
- package/dist/methods/menu/launchMenuModal.d.ts.map +1 -0
- package/dist/methods/message/index.d.ts +2 -0
- package/dist/methods/message/index.d.ts.map +1 -0
- package/dist/methods/message/launchMessages.d.ts +24 -0
- package/dist/methods/message/launchMessages.d.ts.map +1 -0
- package/dist/methods/message/sendMessage.d.ts +63 -0
- package/dist/methods/message/sendMessage.d.ts.map +1 -0
- package/dist/methods/panelists/focusPanelists.d.ts +24 -0
- package/dist/methods/panelists/focusPanelists.d.ts.map +1 -0
- package/dist/methods/panelists/index.d.ts +4 -0
- package/dist/methods/panelists/index.d.ts.map +1 -0
- package/dist/methods/panelists/launchPanelists.d.ts +7 -0
- package/dist/methods/panelists/launchPanelists.d.ts.map +1 -0
- package/dist/methods/panelists/updatePanelists.d.ts +35 -0
- package/dist/methods/panelists/updatePanelists.d.ts.map +1 -0
- package/dist/methods/participants/index.d.ts +4 -0
- package/dist/methods/participants/index.d.ts.map +1 -0
- package/dist/methods/participants/launchParticipants.d.ts +22 -0
- package/dist/methods/participants/launchParticipants.d.ts.map +1 -0
- package/dist/methods/participants/messageParticipants.d.ts +43 -0
- package/dist/methods/participants/messageParticipants.d.ts.map +1 -0
- package/dist/methods/participants/muteParticipants.d.ts +41 -0
- package/dist/methods/participants/muteParticipants.d.ts.map +1 -0
- package/dist/methods/participants/removeParticipants.d.ts +47 -0
- package/dist/methods/participants/removeParticipants.d.ts.map +1 -0
- package/dist/methods/permissions/index.d.ts +4 -0
- package/dist/methods/permissions/index.d.ts.map +1 -0
- package/dist/methods/permissions/launchPermissions.d.ts +7 -0
- package/dist/methods/permissions/launchPermissions.d.ts.map +1 -0
- package/dist/methods/permissions/updateParticipantPermission.d.ts +25 -0
- package/dist/methods/permissions/updateParticipantPermission.d.ts.map +1 -0
- package/dist/methods/permissions/updatePermissionConfig.d.ts +22 -0
- package/dist/methods/permissions/updatePermissionConfig.d.ts.map +1 -0
- package/dist/methods/polls/handleCreatePoll.d.ts +39 -0
- package/dist/methods/polls/handleCreatePoll.d.ts.map +1 -0
- package/dist/methods/polls/handleEndPoll.d.ts +34 -0
- package/dist/methods/polls/handleEndPoll.d.ts.map +1 -0
- package/dist/methods/polls/handleVotePoll.d.ts +39 -0
- package/dist/methods/polls/handleVotePoll.d.ts.map +1 -0
- package/dist/methods/polls/index.d.ts +4 -0
- package/dist/methods/polls/index.d.ts.map +1 -0
- package/dist/methods/polls/launchPoll.d.ts +22 -0
- package/dist/methods/polls/launchPoll.d.ts.map +1 -0
- package/dist/methods/polls/pollUpdated.d.ts +38 -0
- package/dist/methods/polls/pollUpdated.d.ts.map +1 -0
- package/dist/methods/prejoin/handleCreateRoom.d.ts +77 -0
- package/dist/methods/prejoin/handleCreateRoom.d.ts.map +1 -0
- package/dist/methods/prejoin/handleJoinRoom.d.ts +56 -0
- package/dist/methods/prejoin/handleJoinRoom.d.ts.map +1 -0
- package/dist/methods/prejoin/index.d.ts +5 -0
- package/dist/methods/prejoin/index.d.ts.map +1 -0
- package/dist/methods/recording/checkPauseState.d.ts +34 -0
- package/dist/methods/recording/checkPauseState.d.ts.map +1 -0
- package/dist/methods/recording/checkResumeState.d.ts +30 -0
- package/dist/methods/recording/checkResumeState.d.ts.map +1 -0
- package/dist/methods/recording/confirmRecording.d.ts +46 -0
- package/dist/methods/recording/confirmRecording.d.ts.map +1 -0
- package/dist/methods/recording/launchRecording.d.ts +56 -0
- package/dist/methods/recording/launchRecording.d.ts.map +1 -0
- package/dist/methods/recording/recordPauseTimer.d.ts +31 -0
- package/dist/methods/recording/recordPauseTimer.d.ts.map +1 -0
- package/dist/methods/recording/recordResumeTimer.d.ts +29 -0
- package/dist/methods/recording/recordResumeTimer.d.ts.map +1 -0
- package/dist/methods/recording/recordStartTimer.d.ts +45 -0
- package/dist/methods/recording/recordStartTimer.d.ts.map +1 -0
- package/dist/methods/recording/recordUpdateTimer.d.ts +29 -0
- package/dist/methods/recording/recordUpdateTimer.d.ts.map +1 -0
- package/dist/methods/recording/startRecording.d.ts +122 -0
- package/dist/methods/recording/startRecording.d.ts.map +1 -0
- package/dist/methods/recording/stopRecording.d.ts +36 -0
- package/dist/methods/recording/stopRecording.d.ts.map +1 -0
- package/dist/methods/recording/timeLeftRecording.d.ts +13 -0
- package/dist/methods/recording/timeLeftRecording.d.ts.map +1 -0
- package/dist/methods/recording/updateRecording.d.ts +49 -0
- package/dist/methods/recording/updateRecording.d.ts.map +1 -0
- package/dist/methods/requests/hostRequestResponse.d.ts +33 -0
- package/dist/methods/requests/hostRequestResponse.d.ts.map +1 -0
- package/dist/methods/requests/index.d.ts +2 -0
- package/dist/methods/requests/index.d.ts.map +1 -0
- package/dist/methods/requests/launchRequests.d.ts +22 -0
- package/dist/methods/requests/launchRequests.d.ts.map +1 -0
- package/dist/methods/requests/respondToRequests.d.ts +38 -0
- package/dist/methods/requests/respondToRequests.d.ts.map +1 -0
- package/dist/methods/settings/index.d.ts +3 -0
- package/dist/methods/settings/index.d.ts.map +1 -0
- package/dist/methods/settings/launchSettings.d.ts +22 -0
- package/dist/methods/settings/launchSettings.d.ts.map +1 -0
- package/dist/methods/settings/modifySettings.d.ts +45 -0
- package/dist/methods/settings/modifySettings.d.ts.map +1 -0
- package/dist/methods/socketReceive/allMembers.d.ts +117 -0
- package/dist/methods/socketReceive/allMembers.d.ts.map +1 -0
- package/dist/methods/socketReceive/allMembersRest.d.ts +122 -0
- package/dist/methods/socketReceive/allMembersRest.d.ts.map +1 -0
- package/dist/methods/socketReceive/allWaitingRoomMembers.d.ts +24 -0
- package/dist/methods/socketReceive/allWaitingRoomMembers.d.ts.map +1 -0
- package/dist/methods/socketReceive/banParticipant.d.ts +44 -0
- package/dist/methods/socketReceive/banParticipant.d.ts.map +1 -0
- package/dist/methods/socketReceive/controlMediaHost.d.ts +62 -0
- package/dist/methods/socketReceive/controlMediaHost.d.ts.map +1 -0
- package/dist/methods/socketReceive/disconnect.d.ts +24 -0
- package/dist/methods/socketReceive/disconnect.d.ts.map +1 -0
- package/dist/methods/socketReceive/disconnectUserSelf.d.ts +29 -0
- package/dist/methods/socketReceive/disconnectUserSelf.d.ts.map +1 -0
- package/dist/methods/socketReceive/getDomains.d.ts +48 -0
- package/dist/methods/socketReceive/getDomains.d.ts.map +1 -0
- package/dist/methods/socketReceive/meetingEnded.d.ts +27 -0
- package/dist/methods/socketReceive/meetingEnded.d.ts.map +1 -0
- package/dist/methods/socketReceive/meetingStillThere.d.ts +19 -0
- package/dist/methods/socketReceive/meetingStillThere.d.ts.map +1 -0
- package/dist/methods/socketReceive/panelistReceiveMethods.d.ts +66 -0
- package/dist/methods/socketReceive/panelistReceiveMethods.d.ts.map +1 -0
- package/dist/methods/socketReceive/participantRequested.d.ts +28 -0
- package/dist/methods/socketReceive/participantRequested.d.ts.map +1 -0
- package/dist/methods/socketReceive/permissionReceiveMethods.d.ts +23 -0
- package/dist/methods/socketReceive/permissionReceiveMethods.d.ts.map +1 -0
- package/dist/methods/socketReceive/personJoined.d.ts +24 -0
- package/dist/methods/socketReceive/personJoined.d.ts.map +1 -0
- package/dist/methods/socketReceive/producerMediaClosed.d.ts +66 -0
- package/dist/methods/socketReceive/producerMediaClosed.d.ts.map +1 -0
- package/dist/methods/socketReceive/producerMediaPaused.d.ts +70 -0
- package/dist/methods/socketReceive/producerMediaPaused.d.ts.map +1 -0
- package/dist/methods/socketReceive/producerMediaResumed.d.ts +53 -0
- package/dist/methods/socketReceive/producerMediaResumed.d.ts.map +1 -0
- package/dist/methods/socketReceive/reInitiateRecording.d.ts +33 -0
- package/dist/methods/socketReceive/reInitiateRecording.d.ts.map +1 -0
- package/dist/methods/socketReceive/receiveMessage.d.ts +36 -0
- package/dist/methods/socketReceive/receiveMessage.d.ts.map +1 -0
- package/dist/methods/socketReceive/recordingNotice.d.ts +98 -0
- package/dist/methods/socketReceive/recordingNotice.d.ts.map +1 -0
- package/dist/methods/socketReceive/roomRecordParams.d.ts +60 -0
- package/dist/methods/socketReceive/roomRecordParams.d.ts.map +1 -0
- package/dist/methods/socketReceive/screenProducerId.d.ts +36 -0
- package/dist/methods/socketReceive/screenProducerId.d.ts.map +1 -0
- package/dist/methods/socketReceive/startRecords.d.ts +31 -0
- package/dist/methods/socketReceive/startRecords.d.ts.map +1 -0
- package/dist/methods/socketReceive/stoppedRecording.d.ts +24 -0
- package/dist/methods/socketReceive/stoppedRecording.d.ts.map +1 -0
- package/dist/methods/socketReceive/translationReceiveMethods.d.ts +227 -0
- package/dist/methods/socketReceive/translationReceiveMethods.d.ts.map +1 -0
- package/dist/methods/socketReceive/updateConsumingDomains.d.ts +60 -0
- package/dist/methods/socketReceive/updateConsumingDomains.d.ts.map +1 -0
- package/dist/methods/socketReceive/updateMediaSettings.d.ts +28 -0
- package/dist/methods/socketReceive/updateMediaSettings.d.ts.map +1 -0
- package/dist/methods/socketReceive/updatedCoHost.d.ts +38 -0
- package/dist/methods/socketReceive/updatedCoHost.d.ts.map +1 -0
- package/dist/methods/socketReceive/userWaiting.d.ts +30 -0
- package/dist/methods/socketReceive/userWaiting.d.ts.map +1 -0
- package/dist/methods/stream/clickAudio.d.ts +71 -0
- package/dist/methods/stream/clickAudio.d.ts.map +1 -0
- package/dist/methods/stream/clickChat.d.ts +11 -0
- package/dist/methods/stream/clickChat.d.ts.map +1 -0
- package/dist/methods/stream/clickScreenShare.d.ts +45 -0
- package/dist/methods/stream/clickScreenShare.d.ts.map +1 -0
- package/dist/methods/stream/clickVideo.d.ts +101 -0
- package/dist/methods/stream/clickVideo.d.ts.map +1 -0
- package/dist/methods/stream/index.d.ts +5 -0
- package/dist/methods/stream/index.d.ts.map +1 -0
- package/dist/methods/stream/switchAudio.d.ts +40 -0
- package/dist/methods/stream/switchAudio.d.ts.map +1 -0
- package/dist/methods/stream/switchVideo.d.ts +56 -0
- package/dist/methods/stream/switchVideo.d.ts.map +1 -0
- package/dist/methods/stream/switchVideoAlt.d.ts +55 -0
- package/dist/methods/stream/switchVideoAlt.d.ts.map +1 -0
- package/dist/methods/utils/SoundPlayer.d.ts +19 -0
- package/dist/methods/utils/SoundPlayer.d.ts.map +1 -0
- package/dist/methods/utils/checkLimitsAndMakeRequest.d.ts +30 -0
- package/dist/methods/utils/checkLimitsAndMakeRequest.d.ts.map +1 -0
- package/dist/methods/utils/createResponseJoinRoom.d.ts +24 -0
- package/dist/methods/utils/createResponseJoinRoom.d.ts.map +1 -0
- package/dist/methods/utils/createRoomOnMediaSFU.d.ts +28 -0
- package/dist/methods/utils/createRoomOnMediaSFU.d.ts.map +1 -0
- package/dist/methods/utils/formatNumber.d.ts +21 -0
- package/dist/methods/utils/formatNumber.d.ts.map +1 -0
- package/dist/methods/utils/generateRandomMessages.d.ts +11 -0
- package/dist/methods/utils/generateRandomMessages.d.ts.map +1 -0
- package/dist/methods/utils/generateRandomParticipants.d.ts +10 -0
- package/dist/methods/utils/generateRandomParticipants.d.ts.map +1 -0
- package/dist/methods/utils/generateRandomPolls.d.ts +7 -0
- package/dist/methods/utils/generateRandomPolls.d.ts.map +1 -0
- package/dist/methods/utils/generateRandomRequestList.d.ts +10 -0
- package/dist/methods/utils/generateRandomRequestList.d.ts.map +1 -0
- package/dist/methods/utils/generateRandomWaitingRoomList.d.ts +4 -0
- package/dist/methods/utils/generateRandomWaitingRoomList.d.ts.map +1 -0
- package/dist/methods/utils/getModalPosition.d.ts +7 -0
- package/dist/methods/utils/getModalPosition.d.ts.map +1 -0
- package/dist/methods/utils/getOverlayPosition.d.ts +22 -0
- package/dist/methods/utils/getOverlayPosition.d.ts.map +1 -0
- package/dist/methods/utils/getParticipantMedia.d.ts +55 -0
- package/dist/methods/utils/getParticipantMedia.d.ts.map +1 -0
- package/dist/methods/utils/headless/getCurrentParams.d.ts +27 -0
- package/dist/methods/utils/headless/getCurrentParams.d.ts.map +1 -0
- package/dist/methods/utils/headless/getMediaStreams.d.ts +96 -0
- package/dist/methods/utils/headless/getMediaStreams.d.ts.map +1 -0
- package/dist/methods/utils/headless/getRoomReadiness.d.ts +25 -0
- package/dist/methods/utils/headless/getRoomReadiness.d.ts.map +1 -0
- package/dist/methods/utils/headless/headlessTypes.d.ts +89 -0
- package/dist/methods/utils/headless/headlessTypes.d.ts.map +1 -0
- package/dist/methods/utils/headless/index.d.ts +29 -0
- package/dist/methods/utils/headless/index.d.ts.map +1 -0
- package/dist/methods/utils/headless/mediaPermissions.d.ts +53 -0
- package/dist/methods/utils/headless/mediaPermissions.d.ts.map +1 -0
- package/dist/methods/utils/headless/mediaProduction.d.ts +177 -0
- package/dist/methods/utils/headless/mediaProduction.d.ts.map +1 -0
- package/dist/methods/utils/headless/moderation.d.ts +157 -0
- package/dist/methods/utils/headless/moderation.d.ts.map +1 -0
- package/dist/methods/utils/headless/participantState.d.ts +128 -0
- package/dist/methods/utils/headless/participantState.d.ts.map +1 -0
- package/dist/methods/utils/headless/playback.d.ts +106 -0
- package/dist/methods/utils/headless/playback.d.ts.map +1 -0
- package/dist/methods/utils/headless/roomActions.d.ts +88 -0
- package/dist/methods/utils/headless/roomActions.d.ts.map +1 -0
- package/dist/methods/utils/headless/sessionControls.d.ts +159 -0
- package/dist/methods/utils/headless/sessionControls.d.ts.map +1 -0
- package/dist/methods/utils/headless/sessionExtras.d.ts +291 -0
- package/dist/methods/utils/headless/sessionExtras.d.ts.map +1 -0
- package/dist/methods/utils/headless/sessionFeatures.d.ts +159 -0
- package/dist/methods/utils/headless/sessionFeatures.d.ts.map +1 -0
- package/dist/methods/utils/headless/viewerSession.d.ts +125 -0
- package/dist/methods/utils/headless/viewerSession.d.ts.map +1 -0
- package/dist/methods/utils/headless/virtualBackground.d.ts +72 -0
- package/dist/methods/utils/headless/virtualBackground.d.ts.map +1 -0
- package/dist/methods/utils/initialValuesState.d.ts +388 -0
- package/dist/methods/utils/initialValuesState.d.ts.map +1 -0
- package/dist/methods/utils/joinRoomOnMediaSFU.d.ts +56 -0
- package/dist/methods/utils/joinRoomOnMediaSFU.d.ts.map +1 -0
- package/dist/methods/utils/liveSubtitle.d.ts +36 -0
- package/dist/methods/utils/liveSubtitle.d.ts.map +1 -0
- package/dist/methods/utils/meetingTimeRemaining.d.ts +15 -0
- package/dist/methods/utils/meetingTimeRemaining.d.ts.map +1 -0
- package/dist/methods/utils/meetingTimer/startMeetingProgressTimer.d.ts +35 -0
- package/dist/methods/utils/meetingTimer/startMeetingProgressTimer.d.ts.map +1 -0
- package/dist/methods/utils/producer/aParams.d.ts +3 -0
- package/dist/methods/utils/producer/aParams.d.ts.map +1 -0
- package/dist/methods/utils/producer/hParams.d.ts +3 -0
- package/dist/methods/utils/producer/hParams.d.ts.map +1 -0
- package/dist/methods/utils/producer/screenParams.d.ts +3 -0
- package/dist/methods/utils/producer/screenParams.d.ts.map +1 -0
- package/dist/methods/utils/producer/vParams.d.ts +3 -0
- package/dist/methods/utils/producer/vParams.d.ts.map +1 -0
- package/dist/methods/utils/producer/videoCaptureConstraints.d.ts +145 -0
- package/dist/methods/utils/producer/videoCaptureConstraints.d.ts.map +1 -0
- package/dist/methods/utils/resolveMediaSFURoomApi.d.ts +4 -0
- package/dist/methods/utils/resolveMediaSFURoomApi.d.ts.map +1 -0
- package/dist/methods/utils/sleep.d.ts +21 -0
- package/dist/methods/utils/sleep.d.ts.map +1 -0
- package/dist/methods/utils/translationLanguages.d.ts +100 -0
- package/dist/methods/utils/translationLanguages.d.ts.map +1 -0
- package/dist/methods/utils/validateAlphanumeric.d.ts +21 -0
- package/dist/methods/utils/validateAlphanumeric.d.ts.map +1 -0
- package/dist/methods/utils/virtualBackgroundCompositor.d.ts +21 -0
- package/dist/methods/utils/virtualBackgroundCompositor.d.ts.map +1 -0
- package/dist/methods/utils/webrtc.d.ts +18 -0
- package/dist/methods/utils/webrtc.d.ts.map +1 -0
- package/dist/methods/waiting/index.d.ts +2 -0
- package/dist/methods/waiting/index.d.ts.map +1 -0
- package/dist/methods/waiting/launchWaiting.d.ts +23 -0
- package/dist/methods/waiting/launchWaiting.d.ts.map +1 -0
- package/dist/methods/waiting/respondToWaiting.d.ts +40 -0
- package/dist/methods/waiting/respondToWaiting.d.ts.map +1 -0
- package/dist/methods/welcome/handleWelcomeRequest.d.ts +47 -0
- package/dist/methods/welcome/handleWelcomeRequest.d.ts.map +1 -0
- package/dist/methods/welcome/index.d.ts +3 -0
- package/dist/methods/welcome/index.d.ts.map +1 -0
- package/dist/methods/whiteboard/captureCanvasStream.d.ts +38 -0
- package/dist/methods/whiteboard/captureCanvasStream.d.ts.map +1 -0
- package/dist/methods/whiteboard/handleStartWhiteboard.d.ts +31 -0
- package/dist/methods/whiteboard/handleStartWhiteboard.d.ts.map +1 -0
- package/dist/methods/whiteboard/handleStopWhiteboard.d.ts +25 -0
- package/dist/methods/whiteboard/handleStopWhiteboard.d.ts.map +1 -0
- package/dist/methods/whiteboard/index.d.ts +5 -0
- package/dist/methods/whiteboard/index.d.ts.map +1 -0
- package/dist/methods/whiteboard/launchConfigureWhiteboard.d.ts +23 -0
- package/dist/methods/whiteboard/launchConfigureWhiteboard.d.ts.map +1 -0
- package/dist/producers/producerEmits/joinConRoom.d.ts +54 -0
- package/dist/producers/producerEmits/joinConRoom.d.ts.map +1 -0
- package/dist/producers/producerEmits/joinLocalRoom.d.ts +30 -0
- package/dist/producers/producerEmits/joinLocalRoom.d.ts.map +1 -0
- package/dist/producers/producerEmits/joinRoom.d.ts +35 -0
- package/dist/producers/producerEmits/joinRoom.d.ts.map +1 -0
- package/dist/readme/mediasfu-platform-capabilities.webp +0 -0
- package/dist/sockets/SocketManager.d.ts +102 -0
- package/dist/sockets/SocketManager.d.ts.map +1 -0
- package/dist/translationConsumerSwitch-C20MfNNq.cjs +509 -0
- package/dist/translationConsumerSwitch-C20MfNNq.cjs.map +1 -0
- package/dist/translationConsumerSwitch-zKuS5wgH.js +510 -0
- package/dist/translationConsumerSwitch-zKuS5wgH.js.map +1 -0
- package/dist/types/index.cjs +85 -0
- package/dist/types/index.cjs.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +85 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/shared-base-types.d.ts +656 -0
- package/dist/types/shared-base-types.d.ts.map +1 -0
- package/dist/types/types.d.ts +124 -0
- package/dist/types/types.d.ts.map +1 -0
- package/dist/updateParticipantAudioDecibels-DLd8Y-Fh.js +5392 -0
- package/dist/updateParticipantAudioDecibels-DLd8Y-Fh.js.map +1 -0
- package/dist/updateParticipantAudioDecibels-DPmHiy3K.cjs +5391 -0
- package/dist/updateParticipantAudioDecibels-DPmHiy3K.cjs.map +1 -0
- package/dist/validateAlphanumeric-DKn5BsUP.cjs +15 -0
- package/dist/validateAlphanumeric-DKn5BsUP.cjs.map +1 -0
- package/dist/validateAlphanumeric-Dk1JB80W.js +16 -0
- package/dist/validateAlphanumeric-Dk1JB80W.js.map +1 -0
- package/package.json +106 -99
- package/src/ProducerClient/producerClientEmits/createDeviceClient.ts +1 -2
- package/src/ProducerClient/producerClientEmits/updateRoomParametersClient.ts +1 -1
- package/src/consumers/connectIps.ts +1 -1
- package/src/consumers/connectRecvTransport.ts +1 -1
- package/src/consumers/connectSendTransport.ts +1 -1
- package/src/consumers/connectSendTransportAudio.ts +1 -1
- package/src/consumers/connectSendTransportScreen.ts +5 -2
- package/src/consumers/connectSendTransportVideo.ts +1 -1
- package/src/consumers/createSendTransport.ts +34 -29
- package/src/consumers/disconnectSendTransportAudio.ts +1 -1
- package/src/consumers/disconnectSendTransportScreen.ts +1 -1
- package/src/consumers/disconnectSendTransportVideo.ts +1 -1
- package/src/consumers/index.ts +61 -0
- package/src/consumers/resumeSendTransportAudio.ts +1 -1
- package/src/consumers/signalNewConsumerTransport.ts +1 -2
- package/src/consumers/socketReceiveMethods/joinConsumeRoom.ts +1 -1
- package/src/consumers/socketReceiveMethods/newPipeProducer.ts +1 -1
- package/src/consumers/streamSuccessAudio.ts +1 -2
- package/src/consumers/streamSuccessAudioSwitch.ts +1 -2
- package/src/consumers/streamSuccessVideo.ts +35 -6
- package/src/index.native.ts +24 -1
- package/src/index.ts +7 -0
- package/src/methods/exit/confirmExit.ts +11 -4
- package/src/methods/socketReceive/getDomains.ts +1 -1
- package/src/methods/utils/getParticipantMedia.ts +112 -0
- package/src/methods/utils/headless/getCurrentParams.ts +44 -0
- package/src/methods/utils/headless/getMediaStreams.ts +256 -0
- package/src/methods/utils/headless/getRoomReadiness.ts +49 -0
- package/src/methods/utils/headless/headlessTypes.ts +102 -0
- package/src/methods/utils/headless/index.ts +28 -0
- package/src/methods/utils/headless/mediaPermissions.ts +124 -0
- package/src/methods/utils/headless/mediaProduction.ts +505 -0
- package/src/methods/utils/headless/moderation.ts +455 -0
- package/src/methods/utils/headless/participantState.ts +254 -0
- package/src/methods/utils/headless/playback.ts +336 -0
- package/src/methods/utils/headless/roomActions.ts +230 -0
- package/src/methods/utils/headless/sessionControls.ts +335 -0
- package/src/methods/utils/headless/sessionExtras.ts +593 -0
- package/src/methods/utils/headless/sessionFeatures.ts +480 -0
- package/src/methods/utils/headless/viewerSession.ts +246 -0
- package/src/methods/utils/headless/virtualBackground.ts +280 -0
- package/src/methods/utils/resolveMediaSFURoomApi.ts +2 -2
- package/src/methods/utils/virtualBackgroundCompositor.ts +53 -0
- package/src/methods/whiteboard/captureCanvasStream.ts +2 -2
- package/src/producers/producerEmits/joinConRoom.ts +1 -1
- package/src/producers/producerEmits/joinRoom.ts +1 -1
- package/src/types/index.ts +1 -0
- package/src/types/shared-base-types.ts +2 -3
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { HeadlessOptions, ResolvedMedia } from './headlessTypes';
|
|
2
|
+
export type GetRemoteVideoStreamsType = (options: HeadlessOptions) => ResolvedMedia[];
|
|
3
|
+
/**
|
|
4
|
+
* Every remote camera in the room, in render order.
|
|
5
|
+
*
|
|
6
|
+
* Two details make this hard to get right by hand, and both are why headless
|
|
7
|
+
* integrations lose the host's video:
|
|
8
|
+
*
|
|
9
|
+
* - **`oldAllStreams` matters.** During normal conference layout processing the
|
|
10
|
+
* SDK moves a stream out of `allVideoStreams` into `oldAllStreams`. Reading
|
|
11
|
+
* only `allVideoStreams` makes the host disappear mid-call.
|
|
12
|
+
* - **The self marker must go.** `allVideoStreams` is seeded with a
|
|
13
|
+
* `producerId: 'youyou'` placeholder for the local user.
|
|
14
|
+
*
|
|
15
|
+
* Entries are de-duplicated by `producerId`, falling back to the stream id, so a
|
|
16
|
+
* stream present in both collections is returned once.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* import { getRemoteVideoStreams } from 'mediasfu-shared';
|
|
21
|
+
*
|
|
22
|
+
* const remotes = getRemoteVideoStreams({ parameters });
|
|
23
|
+
* const primary = remotes[0]?.stream ?? null;
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare function getRemoteVideoStreams({ parameters, }: HeadlessOptions): ResolvedMedia[];
|
|
27
|
+
export type GetRemoteAudioStreamsType = (options: HeadlessOptions) => ResolvedMedia[];
|
|
28
|
+
/**
|
|
29
|
+
* Every remote audio producer in the room.
|
|
30
|
+
*
|
|
31
|
+
* Note that for *hearing* participants you normally want
|
|
32
|
+
* {@link getAudioGridComponents} instead — MediaSFU prepares its own audio
|
|
33
|
+
* elements and mounting those is what actually plays sound. This helper is for
|
|
34
|
+
* cases where you need the raw `MediaStream` (recording, analysis, metering).
|
|
35
|
+
*/
|
|
36
|
+
export declare function getRemoteAudioStreams({ parameters, }: HeadlessOptions): ResolvedMedia[];
|
|
37
|
+
export type GetLocalVideoStreamType = (options: HeadlessOptions) => MediaStream | null;
|
|
38
|
+
/**
|
|
39
|
+
* The local camera stream to render as the self-view.
|
|
40
|
+
*
|
|
41
|
+
* The virtual-background case is the one everyone misses: when `keepBackground`
|
|
42
|
+
* is on, the stream that carries the processed frames is `virtualStream`, and
|
|
43
|
+
* `localStreamVideo` still holds the raw camera. Rendering the wrong one shows
|
|
44
|
+
* the user their unprocessed background. This mirrors the SDK's own grid rule.
|
|
45
|
+
*
|
|
46
|
+
* Returns `null` when the camera is off, so a falsy result is a truthful
|
|
47
|
+
* "no self-view" rather than something to paint black.
|
|
48
|
+
*
|
|
49
|
+
* Note: transport state such as `videoParams` or `videoProducer` is **not**
|
|
50
|
+
* renderable media and is deliberately never consulted here.
|
|
51
|
+
*/
|
|
52
|
+
export declare function getLocalVideoStream({ parameters, }: HeadlessOptions): MediaStream | null;
|
|
53
|
+
export type GetLocalAudioStreamType = (options: HeadlessOptions) => MediaStream | null;
|
|
54
|
+
/** The local microphone stream, or `null` when the mic is off. */
|
|
55
|
+
export declare function getLocalAudioStream({ parameters, }: HeadlessOptions): MediaStream | null;
|
|
56
|
+
export interface ScreenShareState {
|
|
57
|
+
/** The stream to render, local or remote, or `null` when nobody is sharing. */
|
|
58
|
+
stream: MediaStream | null;
|
|
59
|
+
/** True when the stream is this user's own screen. */
|
|
60
|
+
isLocal: boolean;
|
|
61
|
+
/** True when any screen share is active in the room. */
|
|
62
|
+
active: boolean;
|
|
63
|
+
}
|
|
64
|
+
export type GetScreenShareStreamType = (options: HeadlessOptions) => ScreenShareState;
|
|
65
|
+
/**
|
|
66
|
+
* The active screen share, remote first.
|
|
67
|
+
*
|
|
68
|
+
* `remoteScreenStream` is an array in some SDK paths and a bare object in
|
|
69
|
+
* others; both shapes are handled here so callers do not have to guess.
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```ts
|
|
73
|
+
* const share = getScreenShareStream({ parameters });
|
|
74
|
+
* const primary = share.stream ?? remotes[0]?.stream ?? localVideo;
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
export declare function getScreenShareStream({ parameters, }: HeadlessOptions): ScreenShareState;
|
|
78
|
+
export type GetAudioGridComponentsType = (options: HeadlessOptions) => any[];
|
|
79
|
+
/**
|
|
80
|
+
* The prepared audio elements to mount so participants are actually audible.
|
|
81
|
+
*
|
|
82
|
+
* Mount **all** of them. Truncating this list to the participants you happen to
|
|
83
|
+
* draw on screen silently mutes everyone else — audio playback is decoupled from
|
|
84
|
+
* your video layout. The usual pattern is a visually hidden container:
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```tsx
|
|
88
|
+
* import { getAudioGridComponents } from 'mediasfu-shared';
|
|
89
|
+
*
|
|
90
|
+
* <div style={{ position: 'absolute', width: 1, height: 1, opacity: 0 }}>
|
|
91
|
+
* <AudioGrid componentsToRender={getAudioGridComponents({ parameters })} />
|
|
92
|
+
* </div>
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
export declare function getAudioGridComponents({ parameters }: HeadlessOptions): any[];
|
|
96
|
+
//# sourceMappingURL=getMediaStreams.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getMediaStreams.d.ts","sourceRoot":"","sources":["../../../../src/methods/utils/headless/getMediaStreams.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAsB,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAyErF,MAAM,MAAM,yBAAyB,GAAG,CACtC,OAAO,EAAE,eAAe,KACrB,aAAa,EAAE,CAAC;AAErB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,UAAU,GACX,EAAE,eAAe,GAAG,aAAa,EAAE,CAMnC;AAED,MAAM,MAAM,yBAAyB,GAAG,CACtC,OAAO,EAAE,eAAe,KACrB,aAAa,EAAE,CAAC;AAErB;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,EACpC,UAAU,GACX,EAAE,eAAe,GAAG,aAAa,EAAE,CAGnC;AAED,MAAM,MAAM,uBAAuB,GAAG,CACpC,OAAO,EAAE,eAAe,KACrB,WAAW,GAAG,IAAI,CAAC;AAExB;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,UAAU,GACX,EAAE,eAAe,GAAG,WAAW,GAAG,IAAI,CAUtC;AAED,MAAM,MAAM,uBAAuB,GAAG,CACpC,OAAO,EAAE,eAAe,KACrB,WAAW,GAAG,IAAI,CAAC;AAExB,kEAAkE;AAClE,wBAAgB,mBAAmB,CAAC,EAClC,UAAU,GACX,EAAE,eAAe,GAAG,WAAW,GAAG,IAAI,CAMtC;AAED,MAAM,WAAW,gBAAgB;IAC/B,+EAA+E;IAC/E,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,sDAAsD;IACtD,OAAO,EAAE,OAAO,CAAC;IACjB,wDAAwD;IACxD,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,wBAAwB,GAAG,CACrC,OAAO,EAAE,eAAe,KACrB,gBAAgB,CAAC;AAEtB;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,UAAU,GACX,EAAE,eAAe,GAAG,gBAAgB,CAyBpC;AAED,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,EAAE,eAAe,KAAK,GAAG,EAAE,CAAC;AAE7E;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,UAAU,EAAE,EAAE,eAAe,GAAG,GAAG,EAAE,CAM7E"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { HeadlessOptions, RoomReadiness } from './headlessTypes';
|
|
2
|
+
export type GetRoomReadinessType = (options: HeadlessOptions) => RoomReadiness;
|
|
3
|
+
/**
|
|
4
|
+
* Is the room actually usable yet?
|
|
5
|
+
*
|
|
6
|
+
* Headless consumers repeatedly re-derive this same predicate and each one picks
|
|
7
|
+
* a slightly different subset, so a control fires before the transport exists
|
|
8
|
+
* and fails silently. The five conditions below are the real gate: a room name,
|
|
9
|
+
* a member identity, server-side validation, a connected emittable socket, and a
|
|
10
|
+
* loaded mediasoup device.
|
|
11
|
+
*
|
|
12
|
+
* `reason` is safe to show a user — it names what is still pending, never an
|
|
13
|
+
* endpoint, credential, or internal identifier.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```ts
|
|
17
|
+
* import { getRoomReadiness } from 'mediasfu-shared';
|
|
18
|
+
*
|
|
19
|
+
* const { ready, reason } = getRoomReadiness({ parameters });
|
|
20
|
+
* if (!ready) return <p>{reason}</p>;
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export declare function getRoomReadiness({ parameters }: HeadlessOptions): RoomReadiness;
|
|
24
|
+
export default getRoomReadiness;
|
|
25
|
+
//# sourceMappingURL=getRoomReadiness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getRoomReadiness.d.ts","sourceRoot":"","sources":["../../../../src/methods/utils/headless/getRoomReadiness.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEjE,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,eAAe,KAAK,aAAa,CAAC;AAE/E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,UAAU,EAAE,EAAE,eAAe,GAAG,aAAa,CAsB/E;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { Participant, Stream } from '../../../types/types';
|
|
2
|
+
/**
|
|
3
|
+
* The MediaSFU parameter bag.
|
|
4
|
+
*
|
|
5
|
+
* This is the object handed to `updateSourceParameters`. Every field on it is a
|
|
6
|
+
* snapshot of an internal ref (`allVideoStreams.current`, `localStreamVideo.current`,
|
|
7
|
+
* …) taken at publish time, and the SDK **reassigns** those refs rather than
|
|
8
|
+
* mutating them — so a bag you hold onto goes stale as soon as a producer or
|
|
9
|
+
* consumer changes. Always read from the most recent publication.
|
|
10
|
+
*/
|
|
11
|
+
export interface HeadlessParameters {
|
|
12
|
+
roomName?: string;
|
|
13
|
+
member?: string;
|
|
14
|
+
islevel?: string;
|
|
15
|
+
validated?: boolean;
|
|
16
|
+
socket?: any;
|
|
17
|
+
localSocket?: any;
|
|
18
|
+
device?: {
|
|
19
|
+
loaded?: boolean;
|
|
20
|
+
[key: string]: any;
|
|
21
|
+
};
|
|
22
|
+
participants?: Participant[];
|
|
23
|
+
participantsAll?: Participant[];
|
|
24
|
+
allVideoStreams?: (Participant | Stream)[];
|
|
25
|
+
allAudioStreams?: (Participant | Stream)[];
|
|
26
|
+
oldAllStreams?: (Participant | Stream)[];
|
|
27
|
+
audioOnlyStreams?: any[];
|
|
28
|
+
translationStreams?: any[];
|
|
29
|
+
localStream?: MediaStream | null;
|
|
30
|
+
localStreamVideo?: MediaStream | null;
|
|
31
|
+
localStreamAudio?: MediaStream | null;
|
|
32
|
+
localStreamScreen?: MediaStream | null;
|
|
33
|
+
virtualStream?: MediaStream | null;
|
|
34
|
+
keepBackground?: boolean;
|
|
35
|
+
audioAlreadyOn?: boolean;
|
|
36
|
+
videoAlreadyOn?: boolean;
|
|
37
|
+
remoteScreenStream?: (Participant | Stream)[] | {
|
|
38
|
+
stream?: MediaStream;
|
|
39
|
+
} | null;
|
|
40
|
+
shareScreenStarted?: boolean;
|
|
41
|
+
shared?: boolean;
|
|
42
|
+
messages?: any[];
|
|
43
|
+
coHost?: string;
|
|
44
|
+
coHostResponsibility?: any[];
|
|
45
|
+
chatSetting?: string;
|
|
46
|
+
showAlert?: (options: any) => void;
|
|
47
|
+
audioLevel?: number;
|
|
48
|
+
audioDecibels?: {
|
|
49
|
+
name: string;
|
|
50
|
+
averageLoudness: number;
|
|
51
|
+
}[];
|
|
52
|
+
/** Republishes as a side effect — prefer `getCurrentParams`. */
|
|
53
|
+
getUpdatedAllParams?: () => any;
|
|
54
|
+
/** Pure read of the current bag. No republish. */
|
|
55
|
+
getCurrentParams?: () => any;
|
|
56
|
+
getParticipantMedia?: (...args: any[]) => Promise<MediaStream | null>;
|
|
57
|
+
getMediaDevicesList?: (kind: 'videoinput' | 'audioinput') => Promise<MediaDeviceInfo[]>;
|
|
58
|
+
updateAutoWave?: (value: boolean) => void;
|
|
59
|
+
/**
|
|
60
|
+
* Server-provided playback URLs, when the room has them provisioned.
|
|
61
|
+
*
|
|
62
|
+
* Unlike WebRTC media these are never consumed automatically — see
|
|
63
|
+
* getPlaybackSources/attachPlayback. Absence means the room has no HLS or
|
|
64
|
+
* WHEP egress, not an error.
|
|
65
|
+
*/
|
|
66
|
+
hlsUrl?: string;
|
|
67
|
+
hlsPlaybackUrl?: string;
|
|
68
|
+
playbackUrl?: string;
|
|
69
|
+
whepUrl?: string;
|
|
70
|
+
whepPlaybackUrl?: string;
|
|
71
|
+
[key: string]: any;
|
|
72
|
+
}
|
|
73
|
+
export interface HeadlessOptions {
|
|
74
|
+
/** The most recent parameter bag from `updateSourceParameters`. */
|
|
75
|
+
parameters: HeadlessParameters;
|
|
76
|
+
}
|
|
77
|
+
/** A resolved media entry with the producer reference that identifies it. */
|
|
78
|
+
export interface ResolvedMedia {
|
|
79
|
+
stream: MediaStream;
|
|
80
|
+
producerId: string;
|
|
81
|
+
/** Participant display name when the SDK exposes one for this producer. */
|
|
82
|
+
name: string;
|
|
83
|
+
}
|
|
84
|
+
export interface RoomReadiness {
|
|
85
|
+
ready: boolean;
|
|
86
|
+
/** Empty when ready; otherwise a short, user-safe explanation. */
|
|
87
|
+
reason: string;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=headlessTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"headlessTypes.d.ts","sourceRoot":"","sources":["../../../../src/methods/utils/headless/headlessTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Headless helpers for `returnUI={false}` integrations.
|
|
3
|
+
*
|
|
4
|
+
* These exist because every headless consumer was re-deriving the same handful
|
|
5
|
+
* of rules from the raw parameter bag, and getting them subtly wrong in ways
|
|
6
|
+
* that only show up on a live call: a host whose video vanishes when the SDK
|
|
7
|
+
* moves their stream to `oldAllStreams`, participants who are silently
|
|
8
|
+
* inaudible because the audio element list was truncated, a self-view showing
|
|
9
|
+
* the unprocessed camera when a virtual background is on, or a tab that locks
|
|
10
|
+
* because `getUpdatedAllParams()` was called from a click handler.
|
|
11
|
+
*
|
|
12
|
+
* Import the individual helpers when your adapter needs finer control.
|
|
13
|
+
*/
|
|
14
|
+
export * from './headlessTypes';
|
|
15
|
+
export * from './getRoomReadiness';
|
|
16
|
+
export * from './getMediaStreams';
|
|
17
|
+
export * from './getCurrentParams';
|
|
18
|
+
export * from './roomActions';
|
|
19
|
+
export * from './participantState';
|
|
20
|
+
export * from './mediaPermissions';
|
|
21
|
+
export * from './moderation';
|
|
22
|
+
export * from './sessionFeatures';
|
|
23
|
+
export * from './sessionExtras';
|
|
24
|
+
export * from './virtualBackground';
|
|
25
|
+
export * from './sessionControls';
|
|
26
|
+
export * from './playback';
|
|
27
|
+
export * from './viewerSession';
|
|
28
|
+
export * from './mediaProduction';
|
|
29
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/methods/utils/headless/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { HeadlessOptions } from './headlessTypes';
|
|
2
|
+
export interface MediaPermission {
|
|
3
|
+
/** True when turning this media ON would be accepted right now. */
|
|
4
|
+
allowed: boolean;
|
|
5
|
+
/** Empty when allowed; otherwise the reason, phrased for a user. */
|
|
6
|
+
reason: string;
|
|
7
|
+
/**
|
|
8
|
+
* True when enabling is possible but needs the host to approve first
|
|
9
|
+
* (`audioSetting`/`videoSetting` of 'approval'). The control still works —
|
|
10
|
+
* it raises a request rather than turning media on immediately.
|
|
11
|
+
*/
|
|
12
|
+
needsApproval: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface MediaPermissions {
|
|
15
|
+
microphone: MediaPermission;
|
|
16
|
+
camera: MediaPermission;
|
|
17
|
+
screenShare: MediaPermission;
|
|
18
|
+
/** True when the local user is a host (islevel '2') and bypasses most gates. */
|
|
19
|
+
isHost: boolean;
|
|
20
|
+
/** True when focus mode is on and the local user is not a panelist. */
|
|
21
|
+
focusModeBlocked: boolean;
|
|
22
|
+
}
|
|
23
|
+
export type GetMediaPermissionsType = (options: HeadlessOptions) => MediaPermissions;
|
|
24
|
+
/**
|
|
25
|
+
* Can this user turn their mic, camera or screen share on *right now*?
|
|
26
|
+
*
|
|
27
|
+
* MediaSFU decides this inside `clickAudio` / `clickVideo` / `clickScreenShare`,
|
|
28
|
+
* which return `void` and report a refusal only through `showAlert`. That means
|
|
29
|
+
* a headless surface finds out a control was blocked *after* the user pressed
|
|
30
|
+
* it — the button looks broken. This evaluates the same gates up front so you
|
|
31
|
+
* can disable the control and say why instead.
|
|
32
|
+
*
|
|
33
|
+
* The branches mirror the SDK's own order: audio-only rooms, host recording
|
|
34
|
+
* locks, `adminRestrictSetting`, focus-mode panelist restrictions, and the
|
|
35
|
+
* `allow` / `approval` / `disallow` settings. Host (`islevel === '2'`) bypasses
|
|
36
|
+
* the participant-level gates, exactly as the controls do.
|
|
37
|
+
*
|
|
38
|
+
* Note this cannot predict two cases: room capacity checks, which the SDK
|
|
39
|
+
* resolves by asking the server (`checkProduce`), and OS-level device
|
|
40
|
+
* permission, which only surfaces when capture is attempted. Treat a `false`
|
|
41
|
+
* here as authoritative and a `true` as "nothing known blocks it".
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```tsx
|
|
45
|
+
* const perms = getMediaPermissions({ parameters });
|
|
46
|
+
* <button disabled={!perms.microphone.allowed} title={perms.microphone.reason}>
|
|
47
|
+
* {perms.microphone.needsApproval ? 'Ask to unmute' : 'Unmute'}
|
|
48
|
+
* </button>
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export declare function getMediaPermissions({ parameters }: HeadlessOptions): MediaPermissions;
|
|
52
|
+
export default getMediaPermissions;
|
|
53
|
+
//# sourceMappingURL=mediaPermissions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mediaPermissions.d.ts","sourceRoot":"","sources":["../../../../src/methods/utils/headless/mediaPermissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAsB,MAAM,iBAAiB,CAAC;AAEtE,MAAM,WAAW,eAAe;IAC9B,mEAAmE;IACnE,OAAO,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,eAAe,CAAC;IAC5B,MAAM,EAAE,eAAe,CAAC;IACxB,WAAW,EAAE,eAAe,CAAC;IAC7B,gFAAgF;IAChF,MAAM,EAAE,OAAO,CAAC;IAChB,uEAAuE;IACvE,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,MAAM,uBAAuB,GAAG,CACpC,OAAO,EAAE,eAAe,KACrB,gBAAgB,CAAC;AAOtB;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,UAAU,EAAE,EAAE,eAAe,GAAG,gBAAgB,CA4DrF;AAED,eAAe,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import { HeadlessOptions } from './headlessTypes';
|
|
2
|
+
import { HeadlessActionResult } from './roomActions';
|
|
3
|
+
export type ProducerKind = 'video' | 'audio' | 'screen';
|
|
4
|
+
export interface CaptureLimits {
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
frameRate: number;
|
|
8
|
+
}
|
|
9
|
+
export interface GetCaptureLimitsOptions extends HeadlessOptions {
|
|
10
|
+
/** Camera and screen share have separate ceilings. Defaults to camera. */
|
|
11
|
+
kind?: ProducerKind;
|
|
12
|
+
}
|
|
13
|
+
export type GetCaptureLimitsType = (options: GetCaptureLimitsOptions) => CaptureLimits;
|
|
14
|
+
/**
|
|
15
|
+
* The room's allowed capture ceiling — the same `vidCons` / `frameRate` that
|
|
16
|
+
* `clickVideo` feeds to `getUserMedia`. Zero means "no ceiling published".
|
|
17
|
+
*/
|
|
18
|
+
export declare function getCaptureLimits({ parameters, kind }: GetCaptureLimitsOptions): CaptureLimits;
|
|
19
|
+
export interface ProduceMediaOptions extends HeadlessOptions {
|
|
20
|
+
/** The stream to publish. Must carry at least one live track of the right kind. */
|
|
21
|
+
stream: MediaStream;
|
|
22
|
+
/** What to publish it as. */
|
|
23
|
+
kind: ProducerKind;
|
|
24
|
+
/**
|
|
25
|
+
* Publish even when the source exceeds the room's `vidCons`/`frameRate`
|
|
26
|
+
* ceiling and cannot be clamped. Off by default: the ceiling is a room
|
|
27
|
+
* entitlement, so bypassing it must be a deliberate, visible choice.
|
|
28
|
+
*/
|
|
29
|
+
allowUnconstrained?: boolean;
|
|
30
|
+
}
|
|
31
|
+
export type ProduceMediaType = (options: ProduceMediaOptions) => Promise<HeadlessActionResult>;
|
|
32
|
+
/**
|
|
33
|
+
* Publish **any** MediaStream to the room — not just the camera or microphone.
|
|
34
|
+
*
|
|
35
|
+
* `clickVideo` / `clickAudio` call `getUserMedia` internally, so they can only
|
|
36
|
+
* ever publish a real device. Anything else — a `<canvas>` capture, a `<video>`
|
|
37
|
+
* element playing a file, a Web Audio destination, a processed or synthesised
|
|
38
|
+
* track, a virtual camera — previously required monkey-patching
|
|
39
|
+
* `navigator.mediaDevices.getUserMedia` around the call, which is racy and
|
|
40
|
+
* leaks if the control throws. This publishes your stream directly.
|
|
41
|
+
*
|
|
42
|
+
* The stream stays yours: stop its tracks when you are done, or call
|
|
43
|
+
* {@link stopProducing} to tear the producer down first.
|
|
44
|
+
*
|
|
45
|
+
* @example Publish a canvas as your camera
|
|
46
|
+
* ```ts
|
|
47
|
+
* import { produceMedia } from 'mediasfu-shared';
|
|
48
|
+
*
|
|
49
|
+
* const canvas = document.querySelector('canvas')!;
|
|
50
|
+
* const stream = canvas.captureStream(30);
|
|
51
|
+
* await produceMedia({ parameters, stream, kind: 'video' });
|
|
52
|
+
* ```
|
|
53
|
+
*
|
|
54
|
+
* @example Publish a video file's audio and video
|
|
55
|
+
* ```ts
|
|
56
|
+
* const el = document.querySelector('video')!;
|
|
57
|
+
* const stream = (el as any).captureStream();
|
|
58
|
+
* await produceMedia({ parameters, stream, kind: 'video' });
|
|
59
|
+
* await produceMedia({ parameters, stream, kind: 'audio' });
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export declare function produceMedia({ parameters, stream, kind, allowUnconstrained, }: ProduceMediaOptions): Promise<HeadlessActionResult>;
|
|
63
|
+
export interface StopProducingOptions extends HeadlessOptions {
|
|
64
|
+
kind: ProducerKind;
|
|
65
|
+
}
|
|
66
|
+
export type StopProducingType = (options: StopProducingOptions) => Promise<HeadlessActionResult>;
|
|
67
|
+
/**
|
|
68
|
+
* Tear down one of your producers without touching the others.
|
|
69
|
+
*
|
|
70
|
+
* `clickVideo`/`clickAudio` toggle capture *and* transport together. When you
|
|
71
|
+
* published a custom stream you usually want to stop only the transport and
|
|
72
|
+
* keep owning the stream (to swap sources without a visible gap, for example).
|
|
73
|
+
*
|
|
74
|
+
* @example Swap the published camera for a canvas without dropping the call
|
|
75
|
+
* ```ts
|
|
76
|
+
* await stopProducing({ parameters, kind: 'video' });
|
|
77
|
+
* await produceMedia({ parameters, stream: canvasStream, kind: 'video' });
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
export declare function stopProducing({ parameters, kind, }: StopProducingOptions): Promise<HeadlessActionResult>;
|
|
81
|
+
export interface ProduceCanvasOptions extends HeadlessOptions {
|
|
82
|
+
canvas: HTMLCanvasElement;
|
|
83
|
+
/** Capture frame rate. Defaults to 30. */
|
|
84
|
+
frameRate?: number;
|
|
85
|
+
/** Publish as the camera (default) or as a screen share. */
|
|
86
|
+
as?: 'video' | 'screen';
|
|
87
|
+
}
|
|
88
|
+
export type ProduceCanvasType = (options: ProduceCanvasOptions) => Promise<HeadlessActionResult & {
|
|
89
|
+
stream: MediaStream | null;
|
|
90
|
+
}>;
|
|
91
|
+
/**
|
|
92
|
+
* Publish a `<canvas>` as video — slides, a whiteboard, a game, a generated
|
|
93
|
+
* overlay, a test pattern.
|
|
94
|
+
*
|
|
95
|
+
* Returns the captured stream so you can stop its tracks when finished.
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
* ```ts
|
|
99
|
+
* const { ok, stream } = await produceCanvas({ parameters, canvas, frameRate: 15 });
|
|
100
|
+
* // later
|
|
101
|
+
* stream?.getTracks().forEach((track) => track.stop());
|
|
102
|
+
* ```
|
|
103
|
+
*/
|
|
104
|
+
export declare function produceCanvas({ parameters, canvas, frameRate, as, }: ProduceCanvasOptions): Promise<HeadlessActionResult & {
|
|
105
|
+
stream: MediaStream | null;
|
|
106
|
+
}>;
|
|
107
|
+
export interface ProduceElementOptions extends HeadlessOptions {
|
|
108
|
+
/** A playing `<video>` or `<audio>` element. */
|
|
109
|
+
element: HTMLMediaElement;
|
|
110
|
+
/** Publish the video track. Defaults to true for `<video>`. */
|
|
111
|
+
withVideo?: boolean;
|
|
112
|
+
/** Publish the audio track. Defaults to true. */
|
|
113
|
+
withAudio?: boolean;
|
|
114
|
+
}
|
|
115
|
+
export type ProduceElementType = (options: ProduceElementOptions) => Promise<HeadlessActionResult & {
|
|
116
|
+
stream: MediaStream | null;
|
|
117
|
+
}>;
|
|
118
|
+
/**
|
|
119
|
+
* Publish a playing `<video>` or `<audio>` element — media co-watching, a
|
|
120
|
+
* pre-recorded intro, background music, an HLS or MP4 source.
|
|
121
|
+
*
|
|
122
|
+
* The element must actually be playing: a paused element captures no frames, and
|
|
123
|
+
* browsers block autoplay with audio until the user has interacted with the page.
|
|
124
|
+
*
|
|
125
|
+
* @example
|
|
126
|
+
* ```ts
|
|
127
|
+
* const el = document.querySelector('video')!;
|
|
128
|
+
* await el.play();
|
|
129
|
+
* await produceElement({ parameters, element: el });
|
|
130
|
+
* ```
|
|
131
|
+
*/
|
|
132
|
+
export declare function produceElement({ parameters, element, withVideo, withAudio, }: ProduceElementOptions): Promise<HeadlessActionResult & {
|
|
133
|
+
stream: MediaStream | null;
|
|
134
|
+
}>;
|
|
135
|
+
export interface ProduceDisplayOptions extends HeadlessOptions {
|
|
136
|
+
/** Passed to `getDisplayMedia`. Defaults to `{ video: true }`. */
|
|
137
|
+
constraints?: DisplayMediaStreamOptions;
|
|
138
|
+
/** Also publish the captured system/tab audio when the user shares it. */
|
|
139
|
+
withAudio?: boolean;
|
|
140
|
+
}
|
|
141
|
+
export type ProduceDisplayType = (options: ProduceDisplayOptions) => Promise<HeadlessActionResult & {
|
|
142
|
+
stream: MediaStream | null;
|
|
143
|
+
}>;
|
|
144
|
+
/**
|
|
145
|
+
* Start a screen share from a headless surface.
|
|
146
|
+
*
|
|
147
|
+
* `getDisplayMedia` must be called from a user gesture, so invoke this directly
|
|
148
|
+
* in a click handler — not after an `await`.
|
|
149
|
+
*
|
|
150
|
+
* @example
|
|
151
|
+
* ```tsx
|
|
152
|
+
* <button onClick={() => produceDisplay({ parameters })}>Share screen</button>
|
|
153
|
+
* ```
|
|
154
|
+
*/
|
|
155
|
+
export declare function produceDisplay({ parameters, constraints, withAudio, }: ProduceDisplayOptions): Promise<HeadlessActionResult & {
|
|
156
|
+
stream: MediaStream | null;
|
|
157
|
+
}>;
|
|
158
|
+
export interface ReplaceProducerTrackOptions extends HeadlessOptions {
|
|
159
|
+
/** The replacement track. Its kind decides which producer is swapped. */
|
|
160
|
+
track: MediaStreamTrack;
|
|
161
|
+
}
|
|
162
|
+
export type ReplaceProducerTrackType = (options: ReplaceProducerTrackOptions) => Promise<HeadlessActionResult>;
|
|
163
|
+
/**
|
|
164
|
+
* Swap the track on a live producer without renegotiating.
|
|
165
|
+
*
|
|
166
|
+
* This is the seamless path for switching camera, applying or removing a
|
|
167
|
+
* background effect, or moving between media sources: remote participants see
|
|
168
|
+
* no interruption, because the producer and its transport stay up.
|
|
169
|
+
*
|
|
170
|
+
* @example
|
|
171
|
+
* ```ts
|
|
172
|
+
* const processed = applyBackgroundBlur(cameraTrack);
|
|
173
|
+
* await replaceProducerTrack({ parameters, track: processed });
|
|
174
|
+
* ```
|
|
175
|
+
*/
|
|
176
|
+
export declare function replaceProducerTrack({ parameters, track, }: ReplaceProducerTrackOptions): Promise<HeadlessActionResult>;
|
|
177
|
+
//# sourceMappingURL=mediaProduction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mediaProduction.d.ts","sourceRoot":"","sources":["../../../../src/methods/utils/headless/mediaProduction.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { HeadlessOptions } from './headlessTypes';
|
|
2
|
+
import { HeadlessActionResult } from './roomActions';
|
|
3
|
+
/** The co-host responsibility keys MediaSFU recognises. */
|
|
4
|
+
export type ModerationArea = 'media' | 'participants' | 'chat' | 'waiting';
|
|
5
|
+
export interface ModerationPermissions {
|
|
6
|
+
/** True when the local user is the host (islevel '2'). */
|
|
7
|
+
isHost: boolean;
|
|
8
|
+
/** True when the local user is the room's co-host. */
|
|
9
|
+
isCoHost: boolean;
|
|
10
|
+
/** Turn other participants' camera/mic/screen off. */
|
|
11
|
+
canControlMedia: boolean;
|
|
12
|
+
/** Remove or ban participants. */
|
|
13
|
+
canManageParticipants: boolean;
|
|
14
|
+
/** Moderate chat. */
|
|
15
|
+
canManageChat: boolean;
|
|
16
|
+
/** Admit or deny people in the waiting room. */
|
|
17
|
+
canManageWaitingRoom: boolean;
|
|
18
|
+
}
|
|
19
|
+
export type GetModerationPermissionsType = (options: HeadlessOptions) => ModerationPermissions;
|
|
20
|
+
/**
|
|
21
|
+
* What the local user is allowed to moderate.
|
|
22
|
+
*
|
|
23
|
+
* MediaSFU's rule is `islevel === '2' || (coHost === member && <area>.value)`,
|
|
24
|
+
* and it is enforced *inside* each action — an unauthorised call is swallowed
|
|
25
|
+
* with an alert rather than returning an error. That makes it very easy to ship
|
|
26
|
+
* a moderation button that silently does nothing for co-hosts. Gate your UI on
|
|
27
|
+
* this instead.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* import { getModerationPermissions } from 'mediasfu-shared';
|
|
32
|
+
*
|
|
33
|
+
* const perms = getModerationPermissions({ parameters });
|
|
34
|
+
* <button disabled={!perms.canControlMedia}>Mute everyone</button>
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare function getModerationPermissions({ parameters, }: HeadlessOptions): ModerationPermissions;
|
|
38
|
+
export interface SetParticipantMediaOptions extends HeadlessOptions {
|
|
39
|
+
/** Participant display name. */
|
|
40
|
+
name?: string;
|
|
41
|
+
/** Participant id. Takes precedence over `name`. */
|
|
42
|
+
id?: string;
|
|
43
|
+
/** Which media to switch off. */
|
|
44
|
+
kind: 'audio' | 'video' | 'screenshare' | 'all';
|
|
45
|
+
}
|
|
46
|
+
export type SetParticipantMediaType = (options: SetParticipantMediaOptions) => Promise<HeadlessActionResult>;
|
|
47
|
+
/**
|
|
48
|
+
* Turn a participant's media off as host or authorised co-host.
|
|
49
|
+
*
|
|
50
|
+
* This is one-directional by design: MediaSFU lets a moderator *stop* someone's
|
|
51
|
+
* camera, microphone or screen share, but cannot start it on their behalf — the
|
|
52
|
+
* participant must re-enable it themselves.
|
|
53
|
+
*
|
|
54
|
+
* The SDK's own `controlMedia` consumer only emits for `type: 'audio'` and
|
|
55
|
+
* `type: 'video'`; `'all'` and `'screenshare'` fall through its guard and do
|
|
56
|
+
* nothing. This helper emits the `controlMedia` event directly with the same
|
|
57
|
+
* permission and self-protection checks applied uniformly, so every kind works.
|
|
58
|
+
* Hosts (`islevel === '2'`) cannot be muted by anyone, including other hosts.
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```ts
|
|
62
|
+
* import { setParticipantMedia } from 'mediasfu-shared';
|
|
63
|
+
*
|
|
64
|
+
* await setParticipantMedia({ parameters, name: 'Paul', kind: 'video' });
|
|
65
|
+
* await setParticipantMedia({ parameters, name: 'Paul', kind: 'all' });
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
export declare function setParticipantMedia({ parameters, name, id, kind, }: SetParticipantMediaOptions): Promise<HeadlessActionResult>;
|
|
69
|
+
export interface ModerateParticipantOptions extends HeadlessOptions {
|
|
70
|
+
name?: string;
|
|
71
|
+
id?: string;
|
|
72
|
+
}
|
|
73
|
+
/** Mute a participant's microphone. See {@link setParticipantMedia}. */
|
|
74
|
+
export declare function muteParticipant(options: ModerateParticipantOptions): Promise<HeadlessActionResult>;
|
|
75
|
+
/** Turn a participant's camera off. See {@link setParticipantMedia}. */
|
|
76
|
+
export declare function disableParticipantVideo(options: ModerateParticipantOptions): Promise<HeadlessActionResult>;
|
|
77
|
+
/** Stop a participant's screen share. See {@link setParticipantMedia}. */
|
|
78
|
+
export declare function stopParticipantScreenShare(options: ModerateParticipantOptions): Promise<HeadlessActionResult>;
|
|
79
|
+
export interface MuteEveryoneOptions extends HeadlessOptions {
|
|
80
|
+
/** Which media to switch off for everyone. Defaults to `audio`. */
|
|
81
|
+
kind?: 'audio' | 'video' | 'screenshare' | 'all';
|
|
82
|
+
}
|
|
83
|
+
export type MuteEveryoneType = (options: MuteEveryoneOptions) => Promise<HeadlessActionResult>;
|
|
84
|
+
/**
|
|
85
|
+
* Turn media off for every non-host participant.
|
|
86
|
+
*
|
|
87
|
+
* MediaSFU has no bulk primitive, so this fans out per participant. Hosts and
|
|
88
|
+
* the local user are skipped. Succeeds if at least one participant was
|
|
89
|
+
* actioned; reports the failure otherwise.
|
|
90
|
+
*/
|
|
91
|
+
export declare function muteEveryone({ parameters, kind, }: MuteEveryoneOptions): Promise<HeadlessActionResult>;
|
|
92
|
+
export type RemoveParticipantType = (options: ModerateParticipantOptions) => Promise<HeadlessActionResult>;
|
|
93
|
+
/**
|
|
94
|
+
* Remove a participant from the room.
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* ```ts
|
|
98
|
+
* await removeParticipant({ parameters, name: 'Paul' });
|
|
99
|
+
* ```
|
|
100
|
+
*/
|
|
101
|
+
export declare function removeParticipant({ parameters, name, id, }: ModerateParticipantOptions): Promise<HeadlessActionResult>;
|
|
102
|
+
export interface RespondToWaitingParticipantOptions extends HeadlessOptions {
|
|
103
|
+
name?: string;
|
|
104
|
+
id?: string;
|
|
105
|
+
/** True to admit, false to deny. */
|
|
106
|
+
admit: boolean;
|
|
107
|
+
}
|
|
108
|
+
export type RespondToWaitingParticipantType = (options: RespondToWaitingParticipantOptions) => Promise<HeadlessActionResult>;
|
|
109
|
+
/**
|
|
110
|
+
* Admit or deny somebody waiting to join.
|
|
111
|
+
*
|
|
112
|
+
* Reads `waitingRoomList` off the bag, so you only supply the person's name or
|
|
113
|
+
* id and whether to let them in.
|
|
114
|
+
*
|
|
115
|
+
* @example
|
|
116
|
+
* ```ts
|
|
117
|
+
* for (const person of parameters.waitingRoomList ?? []) {
|
|
118
|
+
* await respondToWaitingParticipant({ parameters, id: person.id, admit: true });
|
|
119
|
+
* }
|
|
120
|
+
* ```
|
|
121
|
+
*/
|
|
122
|
+
export declare function respondToWaitingParticipant({ parameters, name, id, admit, }: RespondToWaitingParticipantOptions): Promise<HeadlessActionResult>;
|
|
123
|
+
export interface RespondToParticipantRequestOptions extends HeadlessOptions {
|
|
124
|
+
/** The request id from `parameters.requestList`. */
|
|
125
|
+
requestId?: string;
|
|
126
|
+
/** Or match by requester name. */
|
|
127
|
+
name?: string;
|
|
128
|
+
/** True to approve, false to reject. */
|
|
129
|
+
approve: boolean;
|
|
130
|
+
}
|
|
131
|
+
export type RespondToParticipantRequestType = (options: RespondToParticipantRequestOptions) => Promise<HeadlessActionResult>;
|
|
132
|
+
/**
|
|
133
|
+
* Approve or reject a participant request (raise hand, ask to share, ask to
|
|
134
|
+
* speak). Requests live on `parameters.requestList`; each carries an `icon`
|
|
135
|
+
* naming the capability being asked for.
|
|
136
|
+
*/
|
|
137
|
+
export declare function respondToParticipantRequest({ parameters, requestId, name, approve, }: RespondToParticipantRequestOptions): Promise<HeadlessActionResult>;
|
|
138
|
+
export interface SetCoHostOptions extends HeadlessOptions {
|
|
139
|
+
/** Participant to promote. Pass '' to clear the current co-host. */
|
|
140
|
+
name: string;
|
|
141
|
+
/** Areas the co-host may moderate. Defaults to media + participants. */
|
|
142
|
+
areas?: ModerationArea[];
|
|
143
|
+
}
|
|
144
|
+
export type SetCoHostType = (options: SetCoHostOptions) => Promise<HeadlessActionResult>;
|
|
145
|
+
/**
|
|
146
|
+
* Promote a participant to co-host and choose what they may moderate.
|
|
147
|
+
*
|
|
148
|
+
* Only the host may do this. Areas not listed are explicitly disabled, so this
|
|
149
|
+
* sets the complete responsibility set rather than merging with the previous one.
|
|
150
|
+
*
|
|
151
|
+
* @example
|
|
152
|
+
* ```ts
|
|
153
|
+
* await setCoHost({ parameters, name: 'Paul', areas: ['media', 'waiting'] });
|
|
154
|
+
* ```
|
|
155
|
+
*/
|
|
156
|
+
export declare function setCoHost({ parameters, name, areas, }: SetCoHostOptions): Promise<HeadlessActionResult>;
|
|
157
|
+
//# sourceMappingURL=moderation.d.ts.map
|