mediasfu-shared 1.0.6 → 1.1.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 +113 -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/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-D9ChmEqq.js +15265 -0
- package/dist/getParticipantMedia-D9ChmEqq.js.map +1 -0
- package/dist/getParticipantMedia-DWvIhPPY.cjs +15281 -0
- package/dist/getParticipantMedia-DWvIhPPY.cjs.map +1 -0
- package/dist/index.cjs +2677 -13249
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +191 -11233
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2668 -13222
- package/dist/index.js.map +1 -1
- package/dist/index.native.cjs +346 -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 +346 -0
- package/dist/index.native.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.d.ts +66 -0
- package/dist/methods/index.d.ts.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/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/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/package.json +106 -99
- package/src/consumers/connectSendTransportScreen.ts +4 -1
- package/src/consumers/createSendTransport.ts +33 -28
- package/src/consumers/streamSuccessVideo.ts +34 -5
- package/src/index.native.ts +24 -1
- package/src/index.ts +5 -0
- package/src/methods/exit/confirmExit.ts +11 -4
- 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 +265 -0
- package/src/methods/utils/resolveMediaSFURoomApi.ts +2 -2
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { HeadlessOptions } from './headlessTypes';
|
|
2
|
+
import { HeadlessActionResult } from './roomActions';
|
|
3
|
+
export type RecordingStatus = 'unavailable' | 'idle' | 'recording' | 'paused' | 'stopped';
|
|
4
|
+
export interface RecordingState {
|
|
5
|
+
status: RecordingStatus;
|
|
6
|
+
/** True while frames are being captured right now. */
|
|
7
|
+
active: boolean;
|
|
8
|
+
/** The local user may start/stop recording. */
|
|
9
|
+
canRecord: boolean;
|
|
10
|
+
/** 'video' | 'audio' — what the room is configured to capture. */
|
|
11
|
+
mediaOptions: string;
|
|
12
|
+
/** Seconds elapsed, as reported by the SDK. */
|
|
13
|
+
elapsedSeconds: number;
|
|
14
|
+
}
|
|
15
|
+
export type GetRecordingStateType = (options: HeadlessOptions) => RecordingState;
|
|
16
|
+
/**
|
|
17
|
+
* Collapse MediaSFU's four recording booleans into one status.
|
|
18
|
+
*
|
|
19
|
+
* The SDK tracks `recordStarted`, `recordPaused`, `recordResumed` and
|
|
20
|
+
* `recordStopped` independently, and they overlap — after a pause/resume cycle
|
|
21
|
+
* `recordStarted` and `recordResumed` are both true. Deriving "is it recording?"
|
|
22
|
+
* from any single flag gives the wrong answer at least once per session.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* const recording = getRecordingState({ parameters });
|
|
27
|
+
* if (recording.status === 'paused') showResumeButton();
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare function getRecordingState({ parameters }: HeadlessOptions): RecordingState;
|
|
31
|
+
export type RecordingActionType = (options: HeadlessOptions) => Promise<HeadlessActionResult>;
|
|
32
|
+
/**
|
|
33
|
+
* Start recording.
|
|
34
|
+
*
|
|
35
|
+
* MediaSFU requires `confirmRecording` before `startRecording` — it validates
|
|
36
|
+
* the room's recording settings against the current layout and populates the
|
|
37
|
+
* state `startRecording` then reads. Calling `startRecording` alone appears to
|
|
38
|
+
* do nothing. This runs both steps in order.
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```ts
|
|
42
|
+
* import { startRoomRecording } from 'mediasfu-shared';
|
|
43
|
+
*
|
|
44
|
+
* const result = await startRoomRecording({ parameters });
|
|
45
|
+
* if (!result.ok) setNotice(result.error);
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export declare function startRoomRecording({ parameters, }: HeadlessOptions): Promise<HeadlessActionResult>;
|
|
49
|
+
/** Pause an active recording. */
|
|
50
|
+
export declare function pauseRoomRecording({ parameters, }: HeadlessOptions): Promise<HeadlessActionResult>;
|
|
51
|
+
/** Resume a paused recording. */
|
|
52
|
+
export declare function resumeRoomRecording({ parameters, }: HeadlessOptions): Promise<HeadlessActionResult>;
|
|
53
|
+
/** Stop recording. The file becomes available through the MediaSFU API. */
|
|
54
|
+
export declare function stopRoomRecording({ parameters, }: HeadlessOptions): Promise<HeadlessActionResult>;
|
|
55
|
+
export interface WhiteboardState {
|
|
56
|
+
/** True while a whiteboard session is running. */
|
|
57
|
+
active: boolean;
|
|
58
|
+
/** The local user may start one. */
|
|
59
|
+
canStart: boolean;
|
|
60
|
+
/** Participants granted drawing rights. */
|
|
61
|
+
users: any[];
|
|
62
|
+
/** Maximum participants the room's plan allows on a whiteboard. */
|
|
63
|
+
limit: number;
|
|
64
|
+
/** The live canvas element, when the SDK has created one. */
|
|
65
|
+
canvas: HTMLCanvasElement | null;
|
|
66
|
+
}
|
|
67
|
+
export type GetWhiteboardStateType = (options: HeadlessOptions) => WhiteboardState;
|
|
68
|
+
/**
|
|
69
|
+
* Current whiteboard session state.
|
|
70
|
+
*
|
|
71
|
+
* `whiteboardStarted` alone is not enough — the SDK leaves it true after a
|
|
72
|
+
* session ends and sets `whiteboardEnded` alongside it, so "active" is
|
|
73
|
+
* `started && !ended`.
|
|
74
|
+
*/
|
|
75
|
+
export declare function getWhiteboardState({ parameters }: HeadlessOptions): WhiteboardState;
|
|
76
|
+
export interface StartWhiteboardOptions extends HeadlessOptions {
|
|
77
|
+
/** Participants allowed to draw. Defaults to the room's current selection. */
|
|
78
|
+
users?: any[];
|
|
79
|
+
}
|
|
80
|
+
export type StartWhiteboardType = (options: StartWhiteboardOptions) => Promise<HeadlessActionResult>;
|
|
81
|
+
/**
|
|
82
|
+
* Start (or reconfigure) the shared whiteboard.
|
|
83
|
+
*
|
|
84
|
+
* Emits `startWhiteboard` for a new session and `updateWhiteboard` when one is
|
|
85
|
+
* already running, matching the SDK's own modal. Breakout rooms and the
|
|
86
|
+
* whiteboard are mutually exclusive, which is checked here.
|
|
87
|
+
*
|
|
88
|
+
* This applies the session state only. Layout follow-up (`onScreenChanges`,
|
|
89
|
+
* `prepopulateUserMedia`, main-pane sizing) is deliberately left to you, since a
|
|
90
|
+
* headless surface owns its own layout.
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* ```ts
|
|
94
|
+
* await startWhiteboard({ parameters, users: [{ name: 'Paul' }] });
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
export declare function startWhiteboard({ parameters, users, }: StartWhiteboardOptions): Promise<HeadlessActionResult>;
|
|
98
|
+
export type StopWhiteboardType = (options: HeadlessOptions) => Promise<HeadlessActionResult>;
|
|
99
|
+
/** End the shared whiteboard session. */
|
|
100
|
+
export declare function stopWhiteboard({ parameters, }: HeadlessOptions): Promise<HeadlessActionResult>;
|
|
101
|
+
export interface PollState {
|
|
102
|
+
/** Every poll the room has seen. */
|
|
103
|
+
polls: any[];
|
|
104
|
+
/** The poll currently open for voting, if any. */
|
|
105
|
+
active: any | null;
|
|
106
|
+
}
|
|
107
|
+
export type GetPollStateType = (options: HeadlessOptions) => PollState;
|
|
108
|
+
/** Polls in the room, plus whichever one is currently open. */
|
|
109
|
+
export declare function getPollState({ parameters }: HeadlessOptions): PollState;
|
|
110
|
+
export interface CreatePollOptions extends HeadlessOptions {
|
|
111
|
+
question: string;
|
|
112
|
+
options: string[];
|
|
113
|
+
/** Defaults to 'custom'. */
|
|
114
|
+
type?: string;
|
|
115
|
+
}
|
|
116
|
+
export type CreateRoomPollType = (options: CreatePollOptions) => Promise<HeadlessActionResult>;
|
|
117
|
+
/**
|
|
118
|
+
* Open a poll.
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* ```ts
|
|
122
|
+
* await createRoomPoll({
|
|
123
|
+
* parameters,
|
|
124
|
+
* question: 'Ship on Friday?',
|
|
125
|
+
* options: ['Yes', 'No'],
|
|
126
|
+
* });
|
|
127
|
+
* ```
|
|
128
|
+
*/
|
|
129
|
+
export declare function createRoomPoll({ parameters, question, options, type, }: CreatePollOptions): Promise<HeadlessActionResult>;
|
|
130
|
+
export interface VotePollOptions extends HeadlessOptions {
|
|
131
|
+
pollId: string;
|
|
132
|
+
optionIndex: number;
|
|
133
|
+
}
|
|
134
|
+
/** Cast a vote in an open poll. */
|
|
135
|
+
export declare function voteInRoomPoll({ parameters, pollId, optionIndex, }: VotePollOptions): Promise<HeadlessActionResult>;
|
|
136
|
+
export interface EndPollOptions extends HeadlessOptions {
|
|
137
|
+
pollId: string;
|
|
138
|
+
}
|
|
139
|
+
/** Close a poll. Host only. */
|
|
140
|
+
export declare function endRoomPoll({ parameters, pollId, }: EndPollOptions): Promise<HeadlessActionResult>;
|
|
141
|
+
export interface BreakoutState {
|
|
142
|
+
/** True while breakout rooms are running. */
|
|
143
|
+
active: boolean;
|
|
144
|
+
/** The local user may start them. */
|
|
145
|
+
canStart: boolean;
|
|
146
|
+
/** Room composition as the SDK holds it. */
|
|
147
|
+
rooms: any[];
|
|
148
|
+
/** The breakout room the local user is in, or -1. */
|
|
149
|
+
currentRoom: number;
|
|
150
|
+
}
|
|
151
|
+
export type GetBreakoutStateType = (options: HeadlessOptions) => BreakoutState;
|
|
152
|
+
/**
|
|
153
|
+
* Breakout-room state.
|
|
154
|
+
*
|
|
155
|
+
* Same `started && !ended` shape as the whiteboard, and the two are mutually
|
|
156
|
+
* exclusive — check this before offering a whiteboard control.
|
|
157
|
+
*/
|
|
158
|
+
export declare function getBreakoutState({ parameters }: HeadlessOptions): BreakoutState;
|
|
159
|
+
//# sourceMappingURL=sessionFeatures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionFeatures.d.ts","sourceRoot":"","sources":["../../../../src/methods/utils/headless/sessionFeatures.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Viewers who are part of a session without joining the room.
|
|
3
|
+
*
|
|
4
|
+
* **Why this exists.** Joining a MediaSFU room auto-consumes WebRTC: the SDK
|
|
5
|
+
* creates consumers from the server's `newProducer` events, unconditionally —
|
|
6
|
+
* there is no receive-nothing mode. For a large passive audience watching over
|
|
7
|
+
* HLS that is pure waste: transports, consumers and layout churn for media they
|
|
8
|
+
* will never render. Joining and then pausing the consumers is worse than it
|
|
9
|
+
* looks, because the layout pass keeps resuming them.
|
|
10
|
+
*
|
|
11
|
+
* So an HLS viewer does not join at all. They hold a *viewer session* instead —
|
|
12
|
+
* enough to be counted, to raise a hand, and to be told when the host approves —
|
|
13
|
+
* and they only perform a real SDK join at the moment they reach the floor.
|
|
14
|
+
*
|
|
15
|
+
* How that session is stored is deliberately not decided here. The transport,
|
|
16
|
+
* lifecycle and state machine are the SDK's business; issuing playback URLs and
|
|
17
|
+
* tracking presence belong to whatever backend you run. You supply a
|
|
18
|
+
* `ViewerSessionProvider`; this drives it. Same reasoning as `hlsFactory`: the
|
|
19
|
+
* SDK owns the mechanism, the app owns the dependency.
|
|
20
|
+
*/
|
|
21
|
+
export type ViewerSessionPhase = 'idle' | 'joining' | 'watching' | 'requested' | 'approved' | 'left' | 'error';
|
|
22
|
+
export interface ViewerSessionIdentity {
|
|
23
|
+
/** Opaque id for this viewer, issued by the provider. */
|
|
24
|
+
viewerId: string;
|
|
25
|
+
/** The room being watched. */
|
|
26
|
+
roomName: string;
|
|
27
|
+
/** Where to play from. Absent until the provider issues one. */
|
|
28
|
+
playbackUrl?: string;
|
|
29
|
+
/** 'hls' or 'whep'; inferred from the URL when omitted. */
|
|
30
|
+
protocol?: 'hls' | 'whep';
|
|
31
|
+
/** Anything the provider needs handed back on later calls. */
|
|
32
|
+
token?: string;
|
|
33
|
+
[key: string]: any;
|
|
34
|
+
}
|
|
35
|
+
export interface ViewerSessionStatus {
|
|
36
|
+
/** True once the host has approved this viewer for the floor. */
|
|
37
|
+
approved: boolean;
|
|
38
|
+
/** True while a request is outstanding. */
|
|
39
|
+
pending?: boolean;
|
|
40
|
+
/** Free-text reason when a request was refused. */
|
|
41
|
+
reason?: string;
|
|
42
|
+
/** Provider may refresh the playback URL (signed URLs expire). */
|
|
43
|
+
playbackUrl?: string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* What your backend has to do. Only `join` is required — a provider that just
|
|
47
|
+
* hands back a playback URL is a valid provider, it simply cannot support
|
|
48
|
+
* promotion.
|
|
49
|
+
*/
|
|
50
|
+
export interface ViewerSessionProvider {
|
|
51
|
+
join(options: {
|
|
52
|
+
roomName: string;
|
|
53
|
+
displayName?: string;
|
|
54
|
+
signal?: AbortSignal;
|
|
55
|
+
}): Promise<ViewerSessionIdentity>;
|
|
56
|
+
/** Keep the viewer counted as present. */
|
|
57
|
+
heartbeat?(options: {
|
|
58
|
+
session: ViewerSessionIdentity;
|
|
59
|
+
signal?: AbortSignal;
|
|
60
|
+
}): Promise<void>;
|
|
61
|
+
/** Raise a hand for the floor. */
|
|
62
|
+
requestPromotion?(options: {
|
|
63
|
+
session: ViewerSessionIdentity;
|
|
64
|
+
signal?: AbortSignal;
|
|
65
|
+
}): Promise<void>;
|
|
66
|
+
/** Has the host decided yet? */
|
|
67
|
+
poll?(options: {
|
|
68
|
+
session: ViewerSessionIdentity;
|
|
69
|
+
signal?: AbortSignal;
|
|
70
|
+
}): Promise<ViewerSessionStatus>;
|
|
71
|
+
/** Release the session. */
|
|
72
|
+
leave?(options: {
|
|
73
|
+
session: ViewerSessionIdentity;
|
|
74
|
+
}): Promise<void>;
|
|
75
|
+
}
|
|
76
|
+
export interface ViewerSessionSnapshot {
|
|
77
|
+
phase: ViewerSessionPhase;
|
|
78
|
+
session: ViewerSessionIdentity | null;
|
|
79
|
+
status: ViewerSessionStatus | null;
|
|
80
|
+
error: string;
|
|
81
|
+
/** True when the provider can accept a promotion request at all. */
|
|
82
|
+
canRequestPromotion: boolean;
|
|
83
|
+
}
|
|
84
|
+
export interface CreateViewerSessionOptions {
|
|
85
|
+
provider: ViewerSessionProvider;
|
|
86
|
+
roomName: string;
|
|
87
|
+
displayName?: string;
|
|
88
|
+
/** Poll interval for approval, ms. Defaults to 5000. */
|
|
89
|
+
pollIntervalMs?: number;
|
|
90
|
+
/** Heartbeat interval, ms. Defaults to 30000. Ignored without a heartbeat. */
|
|
91
|
+
heartbeatIntervalMs?: number;
|
|
92
|
+
/** Called on every state change. */
|
|
93
|
+
onChange?: (snapshot: ViewerSessionSnapshot) => void;
|
|
94
|
+
}
|
|
95
|
+
export interface ViewerSessionHandle {
|
|
96
|
+
/** Current state, readable at any time. */
|
|
97
|
+
getSnapshot: () => ViewerSessionSnapshot;
|
|
98
|
+
/** Register with the provider and begin watching. */
|
|
99
|
+
start: () => Promise<ViewerSessionSnapshot>;
|
|
100
|
+
/** Raise a hand for the floor. */
|
|
101
|
+
requestPromotion: () => Promise<ViewerSessionSnapshot>;
|
|
102
|
+
/** Stop everything and release the session. */
|
|
103
|
+
stop: () => Promise<void>;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Drive a viewer session.
|
|
107
|
+
*
|
|
108
|
+
* Deliberately framework-agnostic — no hooks, no observables — so the same
|
|
109
|
+
* implementation serves React, Vue and Angular. Wrap it in whatever your
|
|
110
|
+
* framework prefers.
|
|
111
|
+
*
|
|
112
|
+
* @example
|
|
113
|
+
* ```ts
|
|
114
|
+
* const viewer = createViewerSession({
|
|
115
|
+
* provider: myProvider,
|
|
116
|
+
* roomName,
|
|
117
|
+
* onChange: (snapshot) => setState(snapshot),
|
|
118
|
+
* });
|
|
119
|
+
* await viewer.start(); // watching over HLS, never joined
|
|
120
|
+
* await viewer.requestPromotion(); // hand raised
|
|
121
|
+
* // when snapshot.phase === 'approved', perform a real SDK join.
|
|
122
|
+
* ```
|
|
123
|
+
*/
|
|
124
|
+
export declare function createViewerSession({ provider, roomName, displayName, pollIntervalMs, heartbeatIntervalMs, onChange, }: CreateViewerSessionOptions): ViewerSessionHandle;
|
|
125
|
+
//# sourceMappingURL=viewerSession.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewerSession.d.ts","sourceRoot":"","sources":["../../../../src/methods/utils/headless/viewerSession.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { HeadlessOptions } from './headlessTypes';
|
|
2
|
+
import { HeadlessActionResult } from './roomActions';
|
|
3
|
+
export interface ApplyVirtualBackgroundOptions extends HeadlessOptions {
|
|
4
|
+
/**
|
|
5
|
+
* Background image URL, or a ready `HTMLImageElement` / `HTMLCanvasElement`.
|
|
6
|
+
* Pass `null` to segment the person onto a transparent background.
|
|
7
|
+
*/
|
|
8
|
+
image: string | HTMLImageElement | HTMLCanvasElement | null;
|
|
9
|
+
/** Capture frame rate for the processed stream. Defaults to 30. */
|
|
10
|
+
frameRate?: number;
|
|
11
|
+
/** MediaPipe model: 0 = general, 1 = landscape (faster). Defaults to 1. */
|
|
12
|
+
modelSelection?: 0 | 1;
|
|
13
|
+
/**
|
|
14
|
+
* Replace the live producer's track so remote viewers see the background
|
|
15
|
+
* immediately. Defaults to true; set false to preview locally first.
|
|
16
|
+
*/
|
|
17
|
+
publish?: boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Where to load the MediaPipe model and wasm from. Defaults to the jsDelivr
|
|
20
|
+
* CDN. Point this at a self-hosted copy of
|
|
21
|
+
* `node_modules/@mediapipe/selfie_segmentation` for offline or air-gapped
|
|
22
|
+
* deployments, or where a Content-Security-Policy forbids the CDN.
|
|
23
|
+
* A trailing slash is added if missing.
|
|
24
|
+
*/
|
|
25
|
+
assetPath?: string;
|
|
26
|
+
}
|
|
27
|
+
export type ApplyVirtualBackgroundType = (options: ApplyVirtualBackgroundOptions) => Promise<HeadlessActionResult & {
|
|
28
|
+
stream: MediaStream | null;
|
|
29
|
+
}>;
|
|
30
|
+
/**
|
|
31
|
+
* Apply a virtual background headlessly — no modal, no DOM of your own.
|
|
32
|
+
*
|
|
33
|
+
* The SDK's own background support lives inside `BackgroundModal`, whose apply
|
|
34
|
+
* path is bound to that component's refs (a preview `<video>` and a `<canvas>`)
|
|
35
|
+
* and is driven by `autoClickBackground` / `isBackgroundModalVisible`. A
|
|
36
|
+
* `returnUI={false}` surface therefore had no way to turn a background on
|
|
37
|
+
* without mounting the modal off-screen and simulating a click.
|
|
38
|
+
*
|
|
39
|
+
* This runs the same MediaPipe pipeline the modal uses — identical compositing:
|
|
40
|
+
* draw the segmentation mask, `source-out` fill with the background pattern,
|
|
41
|
+
* then `destination-atop` the camera frame — against an offscreen video and
|
|
42
|
+
* canvas it creates and owns.
|
|
43
|
+
*
|
|
44
|
+
* It also keeps the SDK's own state honest (`virtualStream`, `processedStream`,
|
|
45
|
+
* `keepBackground`), so `getLocalVideoStream` keeps returning the right
|
|
46
|
+
* self-view without the caller choosing. Callers should not select the
|
|
47
|
+
* processed stream themselves.
|
|
48
|
+
*
|
|
49
|
+
* The camera must already be on: this processes `localStreamVideo`, it does not
|
|
50
|
+
* acquire one.
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```ts
|
|
54
|
+
* await applyVirtualBackground({ parameters, image: '/backgrounds/office.jpg' });
|
|
55
|
+
* await clearVirtualBackground({ parameters });
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export declare function applyVirtualBackground({ parameters, image, frameRate, modelSelection, publish, assetPath, }: ApplyVirtualBackgroundOptions): Promise<HeadlessActionResult & {
|
|
59
|
+
stream: MediaStream | null;
|
|
60
|
+
}>;
|
|
61
|
+
export type ClearVirtualBackgroundType = (options: HeadlessOptions) => Promise<HeadlessActionResult>;
|
|
62
|
+
/**
|
|
63
|
+
* Remove the virtual background and go back to the raw camera.
|
|
64
|
+
*
|
|
65
|
+
* Restores the original camera track on the live producer before tearing the
|
|
66
|
+
* pipeline down, so viewers transition straight from processed to raw rather
|
|
67
|
+
* than through a frozen or black frame.
|
|
68
|
+
*/
|
|
69
|
+
export declare function clearVirtualBackground({ parameters, }: HeadlessOptions): Promise<HeadlessActionResult>;
|
|
70
|
+
/** True while a headless background pipeline is running in this tab. */
|
|
71
|
+
export declare function isVirtualBackgroundRunning(): boolean;
|
|
72
|
+
//# sourceMappingURL=virtualBackground.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"virtualBackground.d.ts","sourceRoot":"","sources":["../../../../src/methods/utils/headless/virtualBackground.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAGlD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AA8BrD,MAAM,WAAW,6BAA8B,SAAQ,eAAe;IACpE;;;OAGG;IACH,KAAK,EAAE,MAAM,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,IAAI,CAAC;IAC5D,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,2EAA2E;IAC3E,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACvB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,0BAA0B,GAAG,CACvC,OAAO,EAAE,6BAA6B,KACnC,OAAO,CAAC,oBAAoB,GAAG;IAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAAA;CAAE,CAAC,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAsB,sBAAsB,CAAC,EAC3C,UAAU,EACV,KAAK,EACL,SAAc,EACd,cAAkB,EAClB,OAAc,EACd,SAAyB,GAC1B,EAAE,6BAA6B,GAAG,OAAO,CAAC,oBAAoB,GAAG;IAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAAA;CAAE,CAAC,CA2HhG;AAED,MAAM,MAAM,0BAA0B,GAAG,CACvC,OAAO,EAAE,eAAe,KACrB,OAAO,CAAC,oBAAoB,CAAC,CAAC;AAEnC;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAAC,EAC3C,UAAU,GACX,EAAE,eAAe,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAuBjD;AAED,wEAAwE;AACxE,wBAAgB,0BAA0B,IAAI,OAAO,CAEpD"}
|