@videosdk.live/react-sdk 0.1.89 → 0.1.90

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.modern.js","sources":["../src/utils.js","../src/meeting/meetingProviderContextDef.js","../src/meeting/MeetingProvider.js","../src/participant/useParticipant.js","../src/connection/useConnection.js","../src/pubSub/usePubSub.js","../src/upload/useFile.js","../src/useMediaDevice.js","../src/transcription/transcription.js","../src/index.js"],"sourcesContent":["import EventEmitter from 'events';\n\nconst eventPrifix = 'videosdk-live-react-sdk';\n\nconst events = {\n 'participant-joined': `${eventPrifix}-participant-joined`,\n 'participant-left': `${eventPrifix}-participant-left`,\n 'speaker-changed': `${eventPrifix}-speaker-changed`,\n 'presenter-changed': `${eventPrifix}-presenter-changed`,\n 'main-participant-changed': `${eventPrifix}-main-participant-changed`,\n 'entry-requested': `${eventPrifix}-entry-requested`,\n 'entry-responded': `${eventPrifix}-entry-responded`,\n 'recording-started': `${eventPrifix}-recording-started`,\n 'recording-stopped': `${eventPrifix}-recording-stopped`,\n 'chat-message': `${eventPrifix}-chat-message`,\n 'meeting-joined': `${eventPrifix}-meeting-joined`,\n 'meeting-left': `${eventPrifix}-meeting-left`,\n 'live-stream-started': `${eventPrifix}-live-stream-started`,\n 'live-stream-stopped': `${eventPrifix}-live-stream-stopped`,\n 'video-state-changed': `${eventPrifix}-video-state-changed`,\n 'video-seeked': `${eventPrifix}-video-seeked`,\n 'webcam-requested': `${eventPrifix}-webcam-requested`,\n 'mic-requested': `${eventPrifix}-mic-requested`,\n 'pin-state-changed': `${eventPrifix}-pin-state-changed`,\n 'connection-open': `${eventPrifix}-connection-open`,\n 'connection-close': `${eventPrifix}-connection-close`,\n 'switch-meeting': `${eventPrifix}-switch-meeting`,\n error: `${eventPrifix}-error`,\n 'hls-started': `${eventPrifix}-hls-started`,\n 'hls-stopped': `${eventPrifix}-hls-stopped`,\n 'hls-state-changed': `${eventPrifix}-hls-state-changed`,\n 'hls-playable-state-changed': `${eventPrifix}-hls-playable-state-changed`,\n 'recording-state-changed': `${eventPrifix}-recording-state-changed`,\n 'livestream-state-changed': `${eventPrifix}-livestream-state-changed`,\n 'meeting-state-changed': `${eventPrifix}-meeting-state-changed`,\n 'participant-mode-changed': `${eventPrifix}-participant-mode-changed`,\n 'transcription-state-changed': `${eventPrifix}-transcript-state-changed`,\n 'transcription-text': `${eventPrifix}-transcription-text`\n};\n\nconst eventEmitter = new EventEmitter();\neventEmitter.setMaxListeners(9999);\n\nexport { eventEmitter, events };\n","import React from 'react';\nimport { useContext, createContext, useEffect } from 'react';\nimport { eventEmitter, events } from '../utils';\nexport const MeetingProviderContex = createContext();\n\n/**\n *\n * @param {{\n * onParticipantJoined?: (participant: Participant) => void,\n * onParticipantLeft?: (participant: Participant) => void,\n * onSpeakerChanged?: (activeSpeakerId: string?) => void,\n * onPresenterChanged?: (presenterId: string?) => void,\n * onMainParticipantChanged?: Function,\n * onEntryRequested?: ({\n * participantId,\n * name,\n * allow,\n * deny\n * }:{\n * participantId: string,\n * name: string,\n * allow: Function,\n * deny: Function\n * }) => void,\n * onEntryResponded?: ({\n * participantId,\n * decision\n * }:{\n * participantId: string,\n * decision: string\n * }) => void,\n * onRecordingStarted?: Function,\n * onRecordingStopped?: Function,\n * onChatMessage?: Function,\n * onMeetingJoined?: Function,\n * onMeetingLeft?: Function,\n * onLiveStreamStarted?: Function,\n * onLiveStreamStopped?: Function,\n * onVideoStateChanged?: Function,\n * onVideoSeeked?: Function,\n * onWebcamRequested?: ({\n * participantId,\n * accept,\n * reject\n * }:{\n * participantId: string,\n * accept: Function,\n * reject: Function\n * }) => void,\n * onMicRequested?: ({\n * participantId,\n * accept,\n * reject\n * }:{\n * participantId: string,\n * accept: Function,\n * reject: Function\n * }) => void,\n * onPinStateChanged?: Function,\n * onConnectionOpen?: Function,\n * onConnetionClose?: Function,\n * onSwitchMeeting?: Function,\n * onError?: ({\n * code,\n * message\n * }:{\n * code: string,\n * message: string\n * }) => void,\n * onHlsStarted?: ({\n * downstreamUrl,\n * }:{\n * downstreamUrl: string,\n * }) => void,\n * onHlsStopped?: Function,\n * onHlsStateChanged?: ({\n * status,\n * downstreamUrl,\n * playbackHlsUrl,\n * livestreamUrl\n * }:{\n * status: \"HLS_STARTING\" | \"HLS_STARTED\" | \"HLS_PLAYABLE\" | \"HLS_STOPPING\" | \"HLS_STOPPING\",\n * downstreamUrl: string,\n * playbackHlsUrl: string,\n * livestreamUrl: string\n * }) => void,\n * onRecordingStateChanged?: ({\n * status\n * }:{\n * status: \"RECORDING_STARTING\" | \"RECORDING_STARTED\" | \"RECORDING_STOPPING\" | \"RECORDING_STOPPING\",\n * }) => void,\n * onLivestreamStateChanged?: ({\n * status: \"LIVESTREAM_STARTING\" | \"LIVESTREAM_STARTED\" | \"LIVESTREAM_STOPPING\" | \"LIVESTREAM_STOPPING\",\n * }:{\n * status: string\n * }) => void,\n * onMeetingStateChanged?: ({\n * state\n * }:{\n * state: string\n * }) => void,\n *}}\n * @returns {{\n * meetingId: string,\n * meeting: Meeting,\n * localParticipant: Participant,\n * activeSpeakerId: string,\n * participants: Map<string, Participant>,\n * pinnedParticipants: Map<string, {cam:boolean, share:boolean}>,\n * presenterId?: string,\n * localMicOn: boolean,\n * localWebcamOn: boolean,\n * isRecording: boolean,\n * recordingState: string,\n * livestreamState: string,\n * hlsState: string,\n * hlsUrls: {\n * downstreamUrl: string,\n * playbackHlsUrl: string,\n * livestreamUrl: string\n * },\n * localScreenShareOn: boolean,\n * connections: Map<string, Connection>,\n * join: () => void\n * leave: () => void\n * end: () => void\n * unmuteMic: (customAudioTrack?: MediaStream | undefined) => void\n * muteMic: () => void\n * toggleMic: (customAudioTrack?: MediaStream | undefined) => void\n * enableWebcam: (customVideoTrack?: MediaStream | undefined) => void\n * disableWebcam: () => void\n * toggleWebcam: (customVideoTrack?: MediaStream | undefined) => void\n * enableScreenShare: (customScreenShareTrack?: MediaStream | undefined) => void\n * disableScreenShare: () => void\n * toggleScreenShare: (customScreenShareTrack?: MediaStream | undefined) => void\n * startRecording: (webhookUrl?: string, awsDirPath?: string, config?: {\n * layout: {\n * type: \"GRID\" | \"SPOTLIGHT\" | \"SIDEBAR\";\n * priority: \"SPEAKER\" | \"PIN\";\n * gridSize: number;\n * },\n * orientation: \"landscape\" | \"portrait\",\n * theme: \"DEFAULT\" | \"DARK\" | \"LIGHT\",\n * quality: \"low\" | \"med\" | \"high\",\n * mode: \"video-and-audio\" | \"audio\",\n * },\n * transcription?: {\n * enabled: boolean,\n * summary?: {\n * enabled: boolean,\n * prompt?: string\n * }\n * }) => void\n * stopRecording: () => void\n * startLiveStream: (outputs: Array<{\n * url: string;\n * streamKey: string;\n * }>,\n * config?: {\n * layout: {\n * type: \"GRID\" | \"SPOTLIGHT\" | \"SIDEBAR\";\n * priority: \"SPEAKER\" | \"PIN\";\n * gridSize: number;\n * },\n * theme: \"DEFAULT\" | \"DARK\" | \"LIGHT\",\n * }) => void\n * stopLiveStream: () => void\n * startHls: (config?: {\n * layout: {\n * type: \"GRID\" | \"SPOTLIGHT\" | \"SIDEBAR\";\n * priority: \"SPEAKER\" | \"PIN\";\n * gridSize: number;\n * },\n * orientation: \"landscape\" | \"portrait\",\n * theme: \"DEFAULT\" | \"DARK\" | \"LIGHT\",\n * quality: \"low\" | \"med\" | \"high\",\n * mode: \"video-and-audio\" | \"audio\",\n * },\n * transcription?: {\n * enabled: boolean,\n * summary?: {\n * enabled: boolean,\n * prompt?: string\n * }\n * }) => void\n * stopHls: () => void\n * getMics: () => Promise<{\n * deviceId: string;\n * label: string;\n * }[]>void\n * getWebcams: () => Promise<{\n * deviceId: string;\n * label: string;\n * facingMode: \"environment\" | \"front\"\n * }[]>void\n * changeMic: (object: string | MediaStream) => void\n * changeMode(mode: 'CONFERENCE' | 'VIEWER'): void;\n * changeWebcam: (object: string | MediaStream) => void\n * startVideo: ({ link }: {\n * link: string;\n * }) => void\n * stopVideo: () => void\n * pauseVideo: ({ currentTime }: {\n * currentTime: number;\n * }) => void\n * resumeVideo: () => void\n * seekVideo: ({ currentTime }: {\n * currentTime: number;\n * }) => void\n * connectTo: ({ meetingId, payload }: {\n * meetingId: string;\n * payload: string;\n * }) => void\n *\n * }}\n */\nexport const useMeeting = ({\n onParticipantJoined = () => {},\n onParticipantLeft = () => {},\n onSpeakerChanged = () => {},\n onPresenterChanged = () => {},\n onMainParticipantChanged = () => {},\n onEntryRequested = () => {},\n onEntryResponded = () => {},\n onRecordingStarted = () => {},\n onRecordingStopped = () => {},\n onChatMessage = () => {},\n onMeetingJoined = () => {},\n onMeetingLeft = () => {},\n onLiveStreamStarted = () => {},\n onLiveStreamStopped = () => {},\n onVideoStateChanged = () => {},\n onVideoSeeked = () => {},\n onWebcamRequested = () => {},\n onMicRequested = () => {},\n onPinStateChanged = () => {},\n onConnectionOpen = () => {},\n onConnetionClose = () => {},\n onSwitchMeeting = () => {},\n onError = () => {},\n onHlsStarted = () => {},\n onHlsStopped = () => {},\n onHlsStateChanged = () => {},\n onRecordingStateChanged = () => {},\n onLivestreamStateChanged = () => {},\n onMeetingStateChanged = () => {},\n onParticipantModeChanged = () => {}\n} = {}) => {\n useEffect(() => {\n eventEmitter.on(events['participant-joined'], onParticipantJoined);\n eventEmitter.on(events['participant-left'], onParticipantLeft);\n eventEmitter.on(events['speaker-changed'], onSpeakerChanged);\n eventEmitter.on(events['presenter-changed'], onPresenterChanged);\n eventEmitter.on(\n events['main-participant-changed'],\n onMainParticipantChanged\n );\n eventEmitter.on(events['entry-requested'], onEntryRequested);\n eventEmitter.on(events['entry-responded'], onEntryResponded);\n eventEmitter.on(events['recording-started'], onRecordingStarted);\n eventEmitter.on(events['recording-stopped'], onRecordingStopped);\n eventEmitter.on(events['chat-message'], onChatMessage);\n eventEmitter.on(events['meeting-joined'], onMeetingJoined);\n eventEmitter.on(events['meeting-left'], onMeetingLeft);\n eventEmitter.on(events['live-stream-started'], onLiveStreamStarted);\n eventEmitter.on(events['live-stream-stopped'], onLiveStreamStopped);\n eventEmitter.on(events['video-state-changed'], onVideoStateChanged);\n eventEmitter.on(events['video-seeked'], onVideoSeeked);\n eventEmitter.on(events['webcam-requested'], onWebcamRequested);\n eventEmitter.on(events['mic-requested'], onMicRequested);\n eventEmitter.on(events['pin-state-changed'], onPinStateChanged);\n eventEmitter.on(events['connection-open'], onConnectionOpen);\n eventEmitter.on(events['connection-close'], onConnetionClose);\n eventEmitter.on(events['switch-meeting'], onSwitchMeeting);\n eventEmitter.on(events['error'], onError);\n eventEmitter.on(events['hls-started'], onHlsStarted);\n eventEmitter.on(events['hls-stopped'], onHlsStopped);\n eventEmitter.on(events['hls-state-changed'], onHlsStateChanged);\n eventEmitter.on(events['recording-state-changed'], onRecordingStateChanged);\n eventEmitter.on(\n events['livestream-state-changed'],\n onLivestreamStateChanged\n );\n eventEmitter.on(events['meeting-state-changed'], onMeetingStateChanged);\n eventEmitter.on(\n events['participant-mode-changed'],\n onParticipantModeChanged\n );\n\n return () => {\n eventEmitter.off(events['meeting-state-changed'], onMeetingStateChanged);\n eventEmitter.off(events['participant-joined'], onParticipantJoined);\n eventEmitter.off(events['participant-left'], onParticipantLeft);\n eventEmitter.off(events['speaker-changed'], onSpeakerChanged);\n eventEmitter.off(events['presenter-changed'], onPresenterChanged);\n eventEmitter.off(\n events['main-participant-changed'],\n onMainParticipantChanged\n );\n eventEmitter.off(events['entry-requested'], onEntryRequested);\n eventEmitter.off(events['entry-responded'], onEntryResponded);\n eventEmitter.off(events['recording-started'], onRecordingStarted);\n eventEmitter.off(events['recording-stopped'], onRecordingStopped);\n eventEmitter.off(events['chat-message'], onChatMessage);\n eventEmitter.off(events['meeting-joined'], onMeetingJoined);\n eventEmitter.off(events['meeting-left'], onMeetingLeft);\n eventEmitter.off(events['live-stream-started'], onLiveStreamStarted);\n eventEmitter.off(events['live-stream-stopped'], onLiveStreamStopped);\n eventEmitter.off(events['video-state-changed'], onVideoStateChanged);\n eventEmitter.off(events['video-seeked'], onVideoSeeked);\n eventEmitter.off(events['webcam-requested'], onWebcamRequested);\n eventEmitter.off(events['mic-requested'], onMicRequested);\n eventEmitter.off(events['pin-state-changed'], onPinStateChanged);\n eventEmitter.off(events['connection-open'], onConnectionOpen);\n eventEmitter.off(events['connection-close'], onConnetionClose);\n eventEmitter.off(events['switch-meeting'], onSwitchMeeting);\n eventEmitter.off(events['error'], onError);\n eventEmitter.off(events['hls-started'], onHlsStarted);\n eventEmitter.off(events['hls-stopped'], onHlsStopped);\n eventEmitter.off(events['hls-state-changed'], onHlsStateChanged);\n eventEmitter.off(\n events['recording-state-changed'],\n onRecordingStateChanged\n );\n eventEmitter.off(\n events['livestream-state-changed'],\n onLivestreamStateChanged\n );\n eventEmitter.off(\n events['participant-mode-changed'],\n onParticipantModeChanged\n );\n };\n }, []);\n return useContext(MeetingProviderContex);\n};\n\nexport const MeetingConsumer = ({\n children,\n onParticipantJoined = () => {},\n onParticipantLeft = () => {},\n onSpeakerChanged = () => {},\n onPresenterChanged = () => {},\n onMainParticipantChanged = () => {},\n onEntryRequested = () => {},\n onEntryResponded = () => {},\n onRecordingStarted = () => {},\n onRecordingStopped = () => {},\n onChatMessage = () => {},\n onMeetingJoined = () => {},\n onMeetingLeft = () => {},\n onLiveStreamStarted = () => {},\n onLiveStreamStopped = () => {},\n onVideoStateChanged = () => {},\n onVideoSeeked = () => {},\n onWebcamRequested = () => {},\n onMicRequested = () => {},\n onPinStateChanged = () => {},\n onConnectionOpen = () => {},\n onConnetionClose = () => {},\n onSwitchMeeting = () => {},\n onError = () => {},\n onHlsStarted = () => {},\n onHlsStopped = () => {},\n onHlsStateChanged = () => {},\n onRecordingStateChanged = () => {},\n onLivestreamStateChanged = () => {},\n onMeetingStateChanged = () => {},\n onParticipantModeChanged = () => {}\n}) => {\n useEffect(() => {\n eventEmitter.on(events['meeting-state-changed'], onMeetingStateChanged);\n eventEmitter.on(events['participant-joined'], onParticipantJoined);\n eventEmitter.on(events['participant-left'], onParticipantLeft);\n eventEmitter.on(events['speaker-changed'], onSpeakerChanged);\n eventEmitter.on(events['presenter-changed'], onPresenterChanged);\n eventEmitter.on(\n events['main-participant-changed'],\n onMainParticipantChanged\n );\n eventEmitter.on(events['entry-requested'], onEntryRequested);\n eventEmitter.on(events['entry-responded'], onEntryResponded);\n eventEmitter.on(events['recording-started'], onRecordingStarted);\n eventEmitter.on(events['recording-stopped'], onRecordingStopped);\n eventEmitter.on(events['chat-message'], onChatMessage);\n eventEmitter.on(events['meeting-joined'], onMeetingJoined);\n eventEmitter.on(events['meeting-left'], onMeetingLeft);\n eventEmitter.on(events['live-stream-enabled'], onLiveStreamStarted);\n eventEmitter.on(events['live-stream-disabled'], onLiveStreamStopped);\n eventEmitter.on(events['video-state-changed'], onVideoStateChanged);\n eventEmitter.on(events['video-seeked'], onVideoSeeked);\n eventEmitter.on(events['webcam-requested'], onWebcamRequested);\n eventEmitter.on(events['mic-requested'], onMicRequested);\n eventEmitter.on(events['pin-state-changed'], onPinStateChanged);\n eventEmitter.on(events['connection-open'], onConnectionOpen);\n eventEmitter.on(events['connection-close'], onConnetionClose);\n eventEmitter.on(events['switch-meeting'], onSwitchMeeting);\n eventEmitter.on(events['error'], onError);\n eventEmitter.on(events['hls-started'], onHlsStarted);\n eventEmitter.on(events['hls-stopped'], onHlsStopped);\n eventEmitter.on(events['hls-state-changed'], onHlsStateChanged);\n eventEmitter.on(events['recording-state-changed'], onRecordingStateChanged);\n eventEmitter.on(\n events['livestream-state-changed'],\n onLivestreamStateChanged\n );\n eventEmitter.on(\n events['participant-mode-changed'],\n onParticipantModeChanged\n );\n\n return () => {\n eventEmitter.off(events['meeting-state-changed'], onMeetingStateChanged);\n eventEmitter.off(events['participant-joined'], onParticipantJoined);\n eventEmitter.off(events['participant-left'], onParticipantLeft);\n eventEmitter.off(events['speaker-changed'], onSpeakerChanged);\n eventEmitter.off(events['presenter-changed'], onPresenterChanged);\n eventEmitter.off(\n events['main-participant-changed'],\n onMainParticipantChanged\n );\n eventEmitter.off(events['entry-requested'], onEntryRequested);\n eventEmitter.off(events['entry-responded'], onEntryResponded);\n eventEmitter.off(events['recording-started'], onRecordingStarted);\n eventEmitter.off(events['recording-stopped'], onRecordingStopped);\n eventEmitter.off(events['chat-message'], onChatMessage);\n eventEmitter.off(events['meeting-joined'], onMeetingJoined);\n eventEmitter.off(events['meeting-left'], onMeetingLeft);\n eventEmitter.off(events['live-stream-enabled'], onLiveStreamStarted);\n eventEmitter.off(events['live-stream-disabled'], onLiveStreamStopped);\n eventEmitter.off(events['video-state-changed'], onVideoStateChanged);\n eventEmitter.off(events['video-seeked'], onVideoSeeked);\n eventEmitter.off(events['webcam-requested'], onWebcamRequested);\n eventEmitter.off(events['mic-requested'], onMicRequested);\n eventEmitter.off(events['pin-state-changed'], onPinStateChanged);\n eventEmitter.off(events['connection-open'], onConnectionOpen);\n eventEmitter.off(events['connection-close'], onConnetionClose);\n eventEmitter.off(events['switch-meeting'], onSwitchMeeting);\n eventEmitter.off(events['error'], onError);\n eventEmitter.off(events['hls-started'], onHlsStarted);\n eventEmitter.off(events['hls-stopped'], onHlsStopped);\n eventEmitter.off(events['hls-state-changed'], onHlsStateChanged);\n eventEmitter.off(\n events['recording-state-changed'],\n onRecordingStateChanged\n );\n eventEmitter.off(\n events['livestream-state-changed'],\n onLivestreamStateChanged\n );\n eventEmitter.off(\n events['participant-mode-changed'],\n onParticipantModeChanged\n );\n };\n }, []);\n\n return (\n <React.Fragment>\n <MeetingProviderContex.Consumer>\n {children}\n </MeetingProviderContex.Consumer>\n </React.Fragment>\n );\n};\n","import { MeetingProviderContex } from './meetingProviderContextDef';\nimport React, { useEffect, useRef, useState, useMemo } from 'react';\nimport { eventEmitter, events } from '../utils';\nimport { VideoSDK } from '@videosdk.live/js-sdk';\nimport { version as reactSDKVersion } from '../../package.json';\n\n/**\n *\n * @param {{\n * children:any,\n * config:{\n * meetingId: string,\n * autoConsume?: boolean,\n * preferredProtocol?:\"UDP_ONLY\" | \"UDP_OVER_TCP\",\n * participantId?:string | undefined,\n * name:string,\n * micEnabled:boolean,\n * webcamEnabled:boolean,\n * maxResolution?:\"hd\" | \"sd\",\n * customCameraVideoTrack?: MediaStream | undefined\n * customMicrophoneAudioTrack?: MediaStream | undefined,\n * multiStream?: boolean,\n * mode?: \"CONFERENCE\" | \"VIEWER\",\n * metaData?: object,\n * defaultCamera?: 'front' | 'back',\n * debugMode: boolean,\n * },\n * token: string,\n * joinWithoutUserInteraction?: boolean,\n * reinitialiseMeetingOnConfigChange?: boolean,\n * deviceInfo?: object\n * }}\n *\n */\nconst MeetingProvider = ({\n children,\n config,\n token,\n joinWithoutUserInteraction,\n reinitialiseMeetingOnConfigChange: _reinitialiseMeetingOnConfigChange,\n deviceInfo\n}) => {\n const [meeting, setMeeting] = useState(null);\n const [localParticipant, setLocalParticipant] = useState(null);\n const [mainParticipant, setMainParticipant] = useState(null);\n const [activeSpeakerId, setActiveSpeakerId] = useState(null);\n const [presenterId, setPresenterId] = useState(null);\n const [localMicOn, setLocalMicOn] = useState(false);\n const [localWebcamOn, setLocalWebcamOn] = useState(false);\n const [localScreenShareOn, setLocalScreenShareOn] = useState(false);\n const [isRecording, setIsRecording] = useState(false);\n const [messages, setMessages] = useState([]);\n const [participants, setParticipants] = useState(new Map());\n const [pinnedParticipants, setPinnedParticipants] = useState(new Map());\n const [isLiveStreaming, setIsLiveStreaming] = useState(false);\n const [connections, setConnections] = useState(new Map());\n const [isMeetingJoined, setIsMeetingJoined] = useState(false);\n const [isHls, setIsHls] = useState(false);\n const [recordingState, setRecordingState] = useState('RECORDING_STOPPED');\n const [livestreamState, setLivestreamState] = useState('LIVESTREAM_STOPPED');\n const [hlsState, setHlsState] = useState('HLS_STOPPED');\n const [hlsUrls, setHlsUrls] = useState({\n downstreamUrl: null,\n playbackHlsUrl: null,\n livestreamUrl: null\n });\n const [transcriptionState, setTranscriptionState] = useState(\n 'TRANSCRIPTION_STOPPED'\n );\n\n const meetingRef = useRef();\n const localMicOnRef = useRef();\n const localWebcamOnRef = useRef();\n const localScreenShareOnRef = useRef();\n const isRecordingRef = useRef();\n const configRef = useRef(config);\n const tokenRef = useRef(token);\n const joinedOnFirstRender = useRef(false);\n const isHlsRef = useRef();\n\n const reinitialiseMeetingOnConfigChange = useMemo(\n () => _reinitialiseMeetingOnConfigChange,\n []\n );\n\n useEffect(() => {\n meetingRef.current = meeting;\n }, [meeting]);\n useEffect(() => {\n localMicOnRef.current = localMicOn;\n }, [localMicOn]);\n useEffect(() => {\n localWebcamOnRef.current = localWebcamOn;\n }, [localWebcamOn]);\n useEffect(() => {\n localScreenShareOnRef.current = localScreenShareOn;\n }, [localScreenShareOn]);\n useEffect(() => {\n isRecordingRef.current = isRecording;\n }, [isRecording]);\n useEffect(() => {\n configRef.current = config;\n }, [config]);\n useEffect(() => {\n tokenRef.current = token;\n }, [token]);\n useEffect(() => {\n isHlsRef.current = isHls;\n }, [isHls]);\n\n const resetStates = () => {\n setMeeting(null);\n setLocalParticipant(null);\n setMainParticipant(null);\n setActiveSpeakerId(null);\n setPresenterId(null);\n setLocalMicOn(false);\n setLocalWebcamOn(false);\n setLocalScreenShareOn(false);\n setIsRecording(false);\n setMessages([]);\n setIsLiveStreaming(false);\n setParticipants(new Map());\n setPinnedParticipants(new Map());\n setConnections(new Map());\n setIsMeetingJoined(false);\n setIsHls(false);\n setRecordingState('RECORDING_STOPPED');\n setLivestreamState('LIVESTREAM_STOPPED');\n setHlsState('HLS_STOPPED');\n setHlsUrls({\n downstreamUrl: null,\n playbackHlsUrl: null,\n livestreamUrl: null\n });\n };\n\n const _handle_participant_joined = participant => {\n setParticipants(participants => {\n participants.set(participant.id, participant);\n const participantsToSet = new Map(participants);\n return participantsToSet;\n });\n eventEmitter.emit(events['participant-joined'], participant);\n };\n const _handle_participant_left = participant => {\n setParticipants(participants => {\n participants.delete(participant.id);\n\n const newParticipants = new Map(participants);\n return newParticipants;\n });\n eventEmitter.emit(events['participant-left'], participant);\n };\n const _handle_presenter_changed = presenterId => {\n setPresenterId(presenterId);\n setLocalScreenShareOn(\n presenterId === meetingRef?.current?.localParticipant?.id\n );\n eventEmitter.emit(events['presenter-changed'], presenterId);\n };\n const _handle_main_participant_changed = participant => {\n setMainParticipant(participant);\n eventEmitter.emit(events['main-participant-changed'], participant);\n };\n const _handle_speaker_changed = activeSpeakerId => {\n setActiveSpeakerId(activeSpeakerId);\n eventEmitter.emit(events['speaker-changed'], activeSpeakerId);\n };\n const _handle_chat_message = data => {\n setMessages(s => [...s, data]);\n\n eventEmitter.emit(events['chat-message'], data);\n };\n const _handle_entry_requested = data => {\n eventEmitter.emit(events['entry-requested'], data);\n };\n const _handle_entry_responded = (participantId, decision) => {\n eventEmitter.emit(events['entry-responded'], participantId, decision);\n };\n const _handle_recording_started = () => {\n setIsRecording(true);\n eventEmitter.emit(events['recording-started']);\n };\n const _handle_recording_stopped = () => {\n setIsRecording(false);\n eventEmitter.emit(events['recording-stopped']);\n };\n\n const _handle_localParticipant_stream_enabled = stream => {\n if (stream.track.readyState === 'live') {\n if (stream.kind === 'video') {\n setLocalWebcamOn(true);\n } else if (stream.kind === 'audio') {\n setLocalMicOn(true);\n }\n }\n };\n const _handle_localParticipant_stream_disabled = stream => {\n if (stream.kind === 'video') {\n setLocalWebcamOn(false);\n } else if (stream.kind === 'audio') {\n setLocalMicOn(false);\n }\n };\n\n const _handle_live_stream_started = data => {\n setIsLiveStreaming(true);\n eventEmitter.emit(events['live-stream-started'], data);\n };\n const _handle_live_stream_stopped = () => {\n setIsLiveStreaming(false);\n eventEmitter.emit(events['live-stream-stopped']);\n };\n const _handle_hls_started = data => {\n setIsHls(true);\n eventEmitter.emit(events['hls-started'], data);\n };\n const _handle_hls_stopped = () => {\n setIsHls(false);\n eventEmitter.emit(events['hls-stopped']);\n };\n const _handle_video_state_changed = data => {\n eventEmitter.emit(events['video-state-changed'], data);\n };\n const _handle_video_seeked = data => {\n eventEmitter.emit(events['video-seeked'], data);\n };\n\n const _handle_webcam_requested = data => {\n eventEmitter.emit(events['webcam-requested'], data);\n };\n\n const _handle_mic_requested = data => {\n eventEmitter.emit(events['mic-requested'], data);\n };\n\n const _handle_meeting_joined = data => {\n joinedOnFirstRender.current = true;\n setMessages(s => [...s, ...data.messages]);\n eventEmitter.emit(events['meeting-joined'], data);\n setIsMeetingJoined(true);\n };\n\n const _handle_meeting_left = () => {\n eventEmitter.emit(events['meeting-left']);\n\n const meeting = meetingRef.current;\n\n if (meeting) {\n if (typeof meeting?.off === 'function') {\n meeting.off('meeting-state-changed', _handle_meeting_state_changed);\n meeting.off('participant-joined', _handle_participant_joined);\n meeting.off('participant-left', _handle_participant_left);\n meeting.off('presenter-changed', _handle_presenter_changed);\n meeting.off(\n 'main-participant-changed',\n _handle_main_participant_changed\n );\n meeting.off('speaker-changed', _handle_speaker_changed);\n meeting.off('entry-requested', _handle_entry_requested);\n meeting.off('entry-responded', _handle_entry_responded);\n meeting.off('chat-message', _handle_chat_message);\n meeting.off('recording-started', _handle_recording_started);\n meeting.off('recording-stopped', _handle_recording_stopped);\n meeting.off('meeting-joined', _handle_meeting_joined);\n meeting.off('meeting-left', _handle_meeting_left);\n meeting.off('livestream-started', _handle_live_stream_started);\n meeting.off('livestream-stopped', _handle_live_stream_stopped);\n meeting.off('video-state-changed', _handle_video_state_changed);\n meeting.off('video-seeked', _handle_video_seeked);\n meeting.off('webcam-requested', _handle_webcam_requested);\n meeting.off('mic-requested', _handle_mic_requested);\n meeting.off('pin-state-changed', _handle_pin_state_changed);\n meeting.off('connection-open', _handle_connection_open);\n meeting.off('connection-close', _handle_connection_close);\n meeting.off('switch-meeting', _handle_switch_meeting);\n meeting.off('error', _handle_error);\n meeting.off('hls-started', _handle_hls_started);\n meeting.off('hls-stopped', _handle_hls_stopped);\n meeting.off('recording-state-changed', _handle_recording_state_changed);\n meeting.off(\n 'livestream-state-changed',\n _handle_livestream_state_changed\n );\n meeting.off('hls-state-changed', _handle_hls_state_changed);\n meeting.off(\n 'participant-mode-changed',\n _handel_participant_mode_changed\n );\n }\n\n if (typeof meeting?.localParticipant?.off === 'function') {\n meeting.localParticipant.off(\n 'stream-enabled',\n _handle_localParticipant_stream_enabled\n );\n\n meeting.localParticipant.off(\n 'stream-disabled',\n _handle_localParticipant_stream_disabled\n );\n }\n\n resetStates();\n }\n };\n\n const _handle_pin_state_changed = ({ participantId, state, pinnedBy }) => {\n setPinnedParticipants(pinnedParticipants => {\n if (!state.cam && !state.share) {\n pinnedParticipants.delete(participantId);\n } else {\n pinnedParticipants.set(participantId, state);\n }\n\n const pinnedParticipantsToSet = new Map(pinnedParticipants);\n\n return pinnedParticipantsToSet;\n });\n\n eventEmitter.emit(events['pin-state-changed'], {\n participantId,\n state,\n pinnedBy\n });\n };\n\n const _handle_connection_open = connection => {\n setConnections(s => {\n s.set(connection.id, connection);\n const connectionsToSet = new Map(s);\n return connectionsToSet;\n });\n eventEmitter.emit(events['connection-open'], connection);\n };\n\n const _handle_connection_close = connectionId => {\n setConnections(s => {\n s.delete(connectionId);\n const newConnections = new Map(s);\n return newConnections;\n });\n eventEmitter.emit(events['connection-close'], connectionId);\n };\n\n const _handle_switch_meeting = d => {\n eventEmitter.emit(events['switch-meeting'], d);\n };\n const _handle_error = data => {\n eventEmitter.emit(events['error'], data);\n };\n\n const _handle_recording_state_changed = data => {\n setRecordingState(data?.status);\n eventEmitter.emit(events['recording-state-changed'], data);\n };\n const _handle_livestream_state_changed = data => {\n setLivestreamState(data?.status);\n eventEmitter.emit(events['livestream-state-changed'], data);\n };\n const _handle_hls_state_changed = data => {\n setHlsState(data?.status);\n if (data?.status == 'HLS_PLAYABLE') {\n setHlsUrls({\n downstreamUrl: data?.downstreamUrl,\n playbackHlsUrl: data?.playbackHlsUrl,\n livestreamUrl: data?.livestreamUrl\n });\n } else if (data?.status == 'HLS_STOPPED') {\n setHlsUrls({\n downstreamUrl: null,\n playbackHlsUrl: null,\n livestreamUrl: null\n });\n }\n eventEmitter.emit(events['hls-state-changed'], data);\n };\n\n const _handle_meeting_state_changed = data => {\n eventEmitter.emit(events['meeting-state-changed'], data);\n };\n\n const _handle_transcription_state_changed = data => {\n setTranscriptionState(data?.status);\n eventEmitter.emit(events['transcription-state-changed'], data);\n };\n\n const _handle_transcription_text = data => {\n eventEmitter.emit(events['transcription-text'], data);\n };\n\n const _handel_participant_mode_changed = data => {\n setParticipants(participants => {\n const part = participants.get(data.participantId);\n part.mode = data.mode;\n participants.set(part.id, part);\n const participantsToSet = new Map(participants);\n return participantsToSet;\n });\n\n // Update Local Participant Object\n if (data.participantId === meetingRef?.current?.localParticipant?.id) {\n setLocalParticipant(participant => {\n participant.mode = data.mode;\n return participant;\n });\n }\n\n eventEmitter.emit(events['participant-mode-changed'], data);\n };\n\n const join = () => {\n const meeting = VideoSDK && VideoSDK.initMeeting(configRef.current);\n setMeeting(meeting);\n const { localParticipant, participants } = meeting;\n participants.set(localParticipant.id, localParticipant);\n setParticipants(participants);\n setLocalParticipant(localParticipant);\n meeting.on('meeting-state-changed', _handle_meeting_state_changed);\n meeting.on('participant-joined', _handle_participant_joined);\n meeting.on('participant-left', _handle_participant_left);\n meeting.on('presenter-changed', _handle_presenter_changed);\n meeting.on('main-participant-changed', _handle_main_participant_changed);\n meeting.on('speaker-changed', _handle_speaker_changed);\n meeting.on('entry-requested', _handle_entry_requested);\n meeting.on('entry-responded', _handle_entry_responded);\n meeting.on('chat-message', _handle_chat_message);\n meeting.on('recording-started', _handle_recording_started);\n meeting.on('recording-stopped', _handle_recording_stopped);\n meeting.on('meeting-joined', _handle_meeting_joined);\n meeting.on('meeting-left', _handle_meeting_left);\n meeting.on('livestream-started', _handle_live_stream_started);\n meeting.on('livestream-stopped', _handle_live_stream_stopped);\n meeting.on('video-state-changed', _handle_video_state_changed);\n meeting.on('video-seeked', _handle_video_seeked);\n meeting.on('webcam-requested', _handle_webcam_requested);\n meeting.on('mic-requested', _handle_mic_requested);\n meeting.on('pin-state-changed', _handle_pin_state_changed);\n\n meeting.on('connection-open', _handle_connection_open);\n meeting.on('connection-close', _handle_connection_close);\n meeting.on('switch-meeting', _handle_switch_meeting);\n meeting.on('error', _handle_error);\n meeting.on('hls-started', _handle_hls_started);\n meeting.on('hls-stopped', _handle_hls_stopped);\n meeting.on('recording-state-changed', _handle_recording_state_changed);\n meeting.on('livestream-state-changed', _handle_livestream_state_changed);\n meeting.on('hls-state-changed', _handle_hls_state_changed);\n meeting.on('participant-mode-changed', _handel_participant_mode_changed);\n meeting.on(\n 'transcription-state-changed',\n _handle_transcription_state_changed\n );\n meeting.on('transcription-text', _handle_transcription_text);\n\n meeting.localParticipant.on(\n 'stream-enabled',\n _handle_localParticipant_stream_enabled\n );\n meeting.localParticipant.on(\n 'stream-disabled',\n _handle_localParticipant_stream_disabled\n );\n meeting.join();\n };\n\n const leave = () => {\n const meeting = meetingRef.current;\n\n if (meeting) {\n meeting.leave();\n }\n };\n\n const end = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.end();\n }\n };\n const startRecording = (webhookUrl, awsDirPath, config, transcription) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.startRecording(webhookUrl, awsDirPath, config, transcription);\n }\n };\n const stopRecording = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n const isRecording = isRecordingRef.current;\n if (isRecording) {\n meeting.stopRecording();\n }\n }\n };\n const unmuteMic = (customAudioTrack = undefined) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.unmuteMic(customAudioTrack);\n }\n };\n const muteMic = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.muteMic();\n }\n };\n const toggleMic = (customAudioTrack = undefined) => {\n const localMicOn = localMicOnRef.current;\n\n if (localMicOn) {\n muteMic();\n } else {\n unmuteMic(customAudioTrack);\n }\n };\n const disableWebcam = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.disableWebcam();\n }\n };\n const enableWebcam = (customVideoTrack = undefined) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.enableWebcam(customVideoTrack);\n }\n };\n const toggleWebcam = (customVideoTrack = undefined) => {\n const localWebcamOn = localWebcamOnRef.current;\n\n if (localWebcamOn) {\n disableWebcam();\n } else {\n enableWebcam(customVideoTrack);\n }\n };\n const disableScreenShare = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.disableScreenShare();\n }\n };\n const enableScreenShare = (customScreenShareTrack = undefined) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.enableScreenShare(customScreenShareTrack);\n }\n };\n\n const toggleScreenShare = (customScreenShareTrack = undefined) => {\n const localScreenShareOn = localScreenShareOnRef.current;\n\n if (localScreenShareOn) {\n disableScreenShare();\n } else {\n enableScreenShare(customScreenShareTrack);\n }\n };\n\n const changeMode = mode => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.changeMode(mode);\n }\n };\n\n const sendChatMessage = text => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.sendChatMessage(text);\n }\n };\n const respondEntry = (participantId, decision) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.respondEntry(participantId, decision);\n }\n };\n const getMics = async () => {\n const meeting = meetingRef.current;\n if (meeting) {\n return await meeting.getMics();\n }\n };\n const getWebcams = async () => {\n const meeting = meetingRef.current;\n if (meeting) {\n return await meeting.getWebcams();\n }\n };\n const changeWebcam = obj => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.changeWebcam(obj);\n }\n };\n const replaceWebcamStream = stream => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.replaceWebcamStream(stream);\n }\n };\n const changeMic = obj => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.changeMic(obj);\n }\n };\n const startVideo = ({ link }) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.startVideo({ link });\n }\n };\n\n const stopVideo = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.stopVideo();\n }\n };\n\n const resumeVideo = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.resumeVideo();\n }\n };\n\n const pauseVideo = ({ currentTime }) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.pauseVideo({ currentTime });\n }\n };\n\n const seekVideo = ({ currentTime }) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.seekVideo({ currentTime });\n }\n };\n\n const startLivestream = (streamInfo, config) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.startLivestream(streamInfo, config);\n }\n };\n\n const stopLivestream = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.stopLivestream();\n }\n };\n\n const connectTo = async ({ meetingId, payload }) => {\n const meeting = meetingRef.current;\n if (meeting) {\n await meeting.connectTo({ meetingId, payload });\n }\n };\n\n const startHls = (config, transcription) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.startHls(config, transcription);\n }\n };\n\n const stopHls = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.stopHls();\n }\n };\n\n const initSDK = () => {\n VideoSDK.config(tokenRef.current);\n\n if (deviceInfo) {\n VideoSDK.analytics(deviceInfo);\n } else {\n VideoSDK.analytics({\n sdkType: 'react-web',\n sdkVersion: reactSDKVersion\n });\n }\n\n if (joinWithoutUserInteraction) {\n join();\n }\n };\n\n useEffect(() => {\n initSDK();\n }, []);\n\n useEffect(() => {\n if (reinitialiseMeetingOnConfigChange && joinedOnFirstRender.current) {\n leave();\n initSDK();\n !joinWithoutUserInteraction && join();\n }\n }, [config.meetingId, token, reinitialiseMeetingOnConfigChange]);\n\n return (\n <MeetingProviderContex.Provider\n value={{\n meetingId: meeting?.id,\n meeting,\n baseUrl: meeting?.baseUrl,\n localParticipant,\n mainParticipant,\n activeSpeakerId,\n participants,\n presenterId,\n localMicOn,\n localWebcamOn,\n localScreenShareOn,\n messages,\n isRecording,\n isLiveStreaming,\n pinnedParticipants,\n connections,\n isHls,\n recordingState,\n livestreamState,\n hlsState,\n hlsUrls,\n transcriptionState,\n isMeetingJoined,\n selectedCameraDevice: meeting?.selectedCameraDevice,\n selectedMicrophoneDevice: meeting?.selectedMicrophoneDevice,\n //\n join,\n leave,\n end,\n //\n startRecording,\n stopRecording,\n //\n sendChatMessage,\n respondEntry,\n //\n muteMic,\n unmuteMic,\n toggleMic,\n //\n disableWebcam,\n enableWebcam,\n toggleWebcam,\n //\n disableScreenShare,\n enableScreenShare,\n toggleScreenShare,\n //\n getMics,\n getWebcams,\n changeWebcam,\n replaceWebcamStream,\n changeMic,\n changeMode,\n startVideo,\n stopVideo,\n resumeVideo,\n pauseVideo,\n seekVideo,\n startLivestream,\n stopLivestream,\n connectTo,\n\n startHls,\n stopHls\n }}\n >\n {children}\n </MeetingProviderContex.Provider>\n );\n};\n\nexport default MeetingProvider;\n","import { useEffect, useState, useMemo } from 'react';\nimport { useMeeting } from '../meeting/meetingProviderContextDef';\nimport { eventEmitter, events } from '../utils';\n\n/**\n *\n * @param {string} participantId\n * @param {{\n * onStreamDisabled?: Function,\n * onStreamEnabled?: Function,\n * onMediaStatusChanged?: Function,\n * onVideoQualityChanged?: Function,\n * }} options\n *\n * @returns {{\n * displayName: string;\n * participant: Participant;\n * webcamStream: Stream;\n * micStream: Stream;\n * screenShareStream: Stream;\n * screenShareAudioStream: Stream;\n * webcamOn: boolean;\n * micOn: boolean;\n * screenShareOn: boolean;\n * isLocal: boolean;\n * isActiveSpeaker: boolean;\n * isMainParticipant: boolean;\n * pinState: any;\n * mode: \"CONFERENCE\" | \"VIEWER\";\n * metaData: object;\n * consumeMicStreams: () => void;\n * consumeWebcamStreams: () => void;\n * stopConsumingMicStreams: () => void;\n * stopConsumingWebcamStreams: () => void;\n * setQuality: (quality: \"low\" | \"med\" | 'high') => void;\n * setViewPort: (width: number, height: number) => void;\n * enableMic: () => void;\n * disableMic: () => void;\n * enableWebcam: () => void;\n * disableWebcam: () => void;\n * remove: () => void;\n * captureImage: ({height,width}) => Promise<string | null>;\n * pin: (data: \"SHARE_AND_CAM\" | \"CAM\" | \"SHARE\") => void;\n * unpin: (data: \"SHARE_AND_CAM\" | \"CAM\" | \"SHARE\") => void;\n * switchTo: ({ meetingId, payload, token }: {\n * meetingId: string;\n * payload: string;\n * token: string;\n * }) => Promise<void>;\n * getAudioStats: () => Promise<[{\n * bitrate: number,\n * rtt: number,\n * network:String,\n * codec: String,\n * jitter: number,\n * limitation: Object,\n * totalPackets: number,\n * packetsLost: number,\n * concealmentEvents: number,\n * insertedSamplesForDecelaration: number,\n * removedSamplesForAccelaration: number,\n * size:Object\n * }]>;\n * getVideoStats: () => Promise<[{\n * bitrate: number,\n * rtt: number,\n * network:String,\n * codec: String,\n * jitter: number,\n * limitation: Object,\n * totalPackets: number,\n * packetsLost: number,\n * concealmentEvents: number,\n * insertedSamplesForDecelaration: number,\n * removedSamplesForAccelaration: number,\n * size:Object,\n * currentSpatialLayer: number,\n * currentTemporalLayer: number,\n * preferredSpatialLayer: number,\n * preferredTemporalLayer: number\n * }]>;\n * getShareStats: () => Promise<[{\n * bitrate: number,\n * rtt: number,\n * network:String,\n * codec: String,\n * jitter: number,\n * limitation: Object,\n * totalPackets: number,\n * packetsLost: number,\n * concealmentEvents: number,\n * insertedSamplesForDecelaration: number,\n * removedSamplesForAccelaration: number,\n * size:Object,\n * currentSpatialLayer: number,\n * currentTemporalLayer: number,\n * preferredSpatialLayer: number,\n * preferredTemporalLayer: number\n * }]>;\n *}}\n *\n */\nconst useParticipant = (\n participantId,\n {\n onStreamEnabled = () => {},\n onStreamDisabled = () => {},\n onMediaStatusChanged = () => {},\n onVideoQualityChanged = () => {}\n } = {}\n) => {\n const [webcamStream, setwebcamStream] = useState(null);\n const [micStream, setMicStream] = useState(null);\n const [screenShareStream, setScreenShareStream] = useState(null);\n const [screenShareAudioStream, setScreenShareAudioStream] = useState(null);\n\n const meeting = useMeeting();\n\n const {\n participants,\n localParticipant,\n activeSpeakerId,\n mainParticipant,\n pinState\n } = useMemo(() => {\n const participants = meeting?.participants;\n const localParticipant = meeting?.localParticipant;\n const activeSpeakerId = meeting?.activeSpeakerId;\n const mainParticipant = meeting?.mainParticipant;\n const pinState = meeting?.pinnedParticipants?.get(participantId) || {\n cam: false,\n share: false\n };\n\n // const micOn = meeting?.participants?.get(participantId).micOn || false;\n // const webcamOn = meeting?.participants?.get(participantId).webcamOn || false;\n\n return {\n participants,\n localParticipant,\n activeSpeakerId,\n mainParticipant,\n pinState\n };\n }, [meeting]);\n\n /**\n * @type {Participant}\n */\n const participant = participants?.get(participantId);\n\n const [webcamOn, setWebcamOn] = useState(participant?.webcamOn);\n const [micOn, setMicOn] = useState(participant?.micOn);\n const [mode, setMode] = useState(participant?.mode);\n\n const setTrack = stream => {\n if (stream.track.readyState === 'live') {\n switch (stream.kind) {\n case 'video':\n if (webcamStream != null) {\n setwebcamStream(null);\n }\n setwebcamStream(stream);\n break;\n case 'audio':\n if (micStream != null) {\n setMicStream(null);\n }\n setMicStream(stream);\n break;\n case 'share':\n if (screenShareStream != null) {\n setScreenShareStream(null);\n }\n setScreenShareStream(stream);\n break;\n case 'shareAudio':\n if (screenShareAudioStream != null) {\n setScreenShareAudioStream(null);\n }\n setScreenShareAudioStream(stream);\n break;\n default:\n break;\n }\n }\n };\n\n const unSetTrack = stream => {\n switch (stream.kind) {\n case 'video':\n setwebcamStream(null);\n break;\n case 'audio':\n setMicStream(null);\n break;\n case 'share':\n setScreenShareStream(null);\n break;\n case 'shareAudio':\n setScreenShareAudioStream(null);\n break;\n default:\n break;\n }\n };\n\n const _handleStreamEnabled = stream => {\n setTrack(stream);\n onStreamEnabled(stream);\n };\n\n const _handleParticipantModeChanged = data => {\n if (participantId === data.participantId) {\n setMode(data.mode);\n }\n };\n\n const _handleStreamDisabled = stream => {\n unSetTrack(stream);\n onStreamDisabled(stream);\n };\n\n const _handleVideoQualityChanged = data => {\n const { peerId, prevQuality, currentQuality } = data;\n onVideoQualityChanged({ peerId, prevQuality, currentQuality });\n };\n\n const _handleMediaStatusChanged = data => {\n const { kind, peerId, newStatus } = data;\n if (kind == 'audio') {\n setMicOn(newStatus);\n } else if (kind == 'video') {\n setWebcamOn(newStatus);\n }\n onMediaStatusChanged({ kind, peerId, newStatus });\n };\n\n const setQuality = quality => {\n participant?.setQuality(quality);\n };\n\n const setViewPort = (width, height) => {\n participant?.setViewPort(width, height);\n };\n\n const enableMic = () => {\n participant?.enableMic();\n };\n const disableMic = () => {\n participant?.disableMic();\n };\n const enableWebcam = () => {\n participant?.enableWebcam();\n };\n const disableWebcam = () => {\n participant?.disableWebcam();\n };\n const pin = data => {\n participant?.pin(data);\n };\n const unpin = data => {\n participant?.unpin(data);\n };\n const remove = () => {\n participant?.remove();\n };\n const captureImage = async ({ height, width } = {}) => {\n const base64Data = await participant?.captureImage({ height, width });\n return base64Data;\n };\n const getAudioStats = async () => {\n return participant?.getAudioStats();\n };\n const getVideoStats = async () => {\n return participant?.getVideoStats();\n };\n const getShareStats = async () => {\n return participant?.getShareStats();\n };\n\n const consumeWebcamStreams = () => {\n participant?.consumeWebcamStreams();\n };\n const consumeMicStreams = () => {\n participant?.consumeMicStreams();\n };\n const stopConsumingWebcamStreams = () => {\n participant?.stopConsumingWebcamStreams();\n };\n const stopConsumingMicStreams = () => {\n participant?.stopConsumingMicStreams();\n };\n const switchTo = async data => {\n await participant?.switchTo(data);\n };\n\n useEffect(() => {\n const streams = participant?.streams;\n\n if (streams) {\n streams.forEach(stream => {\n setTrack(stream);\n });\n }\n\n if (participant?.micOn) {\n setMicOn(micOn);\n }\n\n if (participant?.webcamOn) {\n setWebcamOn(webcamOn);\n }\n\n participant?.on('stream-enabled', _handleStreamEnabled);\n\n participant?.on('stream-disabled', _handleStreamDisabled);\n\n participant?.on('media-status-changed', _handleMediaStatusChanged);\n\n participant?.on('video-quality-changed', _handleVideoQualityChanged);\n\n eventEmitter.on(\n events['participant-mode-changed'],\n _handleParticipantModeChanged\n );\n\n return () => {\n participant?.off('stream-enabled', _handleStreamEnabled);\n\n participant?.off('stream-disabled', _handleStreamDisabled);\n\n participant?.off('media-status-changed', _handleMediaStatusChanged);\n\n participant?.off('video-quality-changed', _handleVideoQualityChanged);\n\n eventEmitter.off(\n events['participant-mode-changed'],\n _handleParticipantModeChanged\n );\n };\n }, [participant]);\n\n return {\n displayName: participant?.displayName,\n participant,\n webcamStream,\n micStream,\n screenShareStream,\n screenShareAudioStream,\n webcamOn: webcamOn || !!webcamStream,\n micOn: micOn || !!micStream,\n mode: mode,\n metaData: participant?.metaData,\n\n screenShareOn: !!screenShareStream,\n isLocal: localParticipant?.id === participantId,\n isActiveSpeaker: activeSpeakerId === participantId,\n isMainParticipant: mainParticipant?.id === participantId,\n pinState,\n\n //\n consumeMicStreams,\n consumeWebcamStreams,\n stopConsumingMicStreams,\n stopConsumingWebcamStreams,\n setQuality,\n setViewPort,\n enableMic,\n disableMic,\n enableWebcam,\n disableWebcam,\n captureImage,\n pin,\n unpin,\n remove,\n switchTo,\n getAudioStats,\n getVideoStats,\n getShareStats\n };\n};\n\nexport default useParticipant;\n","import { useEffect, useState, useMemo } from 'react';\nimport { useMeeting } from '../meeting/meetingProviderContextDef';\n/**\n *\n * @param {string} connectionId\n * @param {{onMeeting:{\n * onParticipantJoined?: Function,\n * onParticipantLeft?: Function,\n * onChatMessage?: Function\n * }}}\n * @returns {{\n * connection: {\n * id: string;\n * close: Function;\n * payload: string;\n * meeting: {\n * id: string;\n * sendChatMessage: Function;\n * end: Function;\n * participants: Array<ConnectionParticipant>;\n * };\n * }}}\n */\nconst useConnection = (\n connectionId,\n { onMeeting } = {\n onMeeting: {\n onParticipantJoined: () => {},\n onParticipantLeft: () => {},\n onChatMessage: () => {}\n }\n }\n) => {\n const onParticipantJoined = onMeeting?.onParticipantJoined;\n const onParticipantLeft = onMeeting?.onParticipantLeft;\n const onChatMessage = onMeeting?.onChatMessage;\n\n const meeting = useMeeting();\n\n const { connection, connectionParticipants } = useMemo(() => {\n const connection = meeting?.connections.get(connectionId);\n\n if (!connection) {\n throw new Error('connectionId not found');\n }\n\n const connectionParticipants = new Map(connection.meeting.participants);\n\n return {\n connection,\n connectionParticipants\n };\n }, [meeting]);\n\n const [_connectionParticipants, setConnectionParticipants] = useState(\n new Map(connectionParticipants)\n );\n\n const _handleParticipantJoined = participant => {\n setConnectionParticipants(s => {\n s.set(participant.id, participant);\n const participantsToSet = new Map(s);\n return participantsToSet;\n });\n onParticipantJoined(participant);\n };\n const _handleParticipantLeft = participantId => {\n setConnectionParticipants(s => {\n s.delete(participantId);\n const newParticipants = new Map(s);\n return newParticipants;\n });\n onParticipantLeft(participantId);\n };\n\n const _handleChatMessage = data => {\n onChatMessage(data);\n };\n\n useEffect(() => {\n connection?.meeting.on('participant-joined', _handleParticipantJoined);\n connection?.meeting.on('participant-left', _handleParticipantLeft);\n connection?.meeting.on('chat-message', _handleChatMessage);\n\n return () => {\n connection?.meeting.off('participant-joined', _handleParticipantJoined);\n connection?.meeting.off('participant-left', _handleParticipantLeft);\n connection?.meeting.off('chat-message', _handleChatMessage);\n };\n }, [connection]);\n\n return {\n connection: {\n id: connection.id,\n close: connection.close,\n payload: connection.payload,\n meeting: {\n id: connection.meeting.id,\n sendChatMessage: connection.meeting.sendChatMessage,\n end: connection.meeting.end,\n participants: _connectionParticipants\n }\n }\n };\n};\n\nexport default useConnection;\n","import { useEffect, useRef, useState } from 'react';\nimport { useMeeting } from '../meeting/meetingProviderContextDef';\n\n/**\n *\n * @param {string} topic\n * @param {{\n * onMessageReceived?: Function,\n * onOldMessagesReceived?: Function,\n * }} options\n * @returns {{\n * publish: (message: string,{persist: boolean, sendOnly: Array<String>}, payload: object) => void\n * messages: Array<{\n * id: string,\n * message: string,\n * senderId: string,\n * senderName: string,\n * timestamp: string,\n * topic: string,\n * payload: object,\n * }>\n * }}\n */\nconst usePubSub = (\n topic,\n { onMessageReceived = () => {}, onOldMessagesReceived = () => {} } = {}\n) => {\n const { meeting, isMeetingJoined } = useMeeting();\n const [messages, setMessages] = useState([]);\n const isSubscribed = useRef(false);\n\n /**\n *\n * @param {string} message\n * @param {{persist: boolean}} options\n * @param {object} payload\n * @param {Array<String>} sendOnly\n */\n const publish = (message, options, payload) => {\n if (meeting) {\n meeting.pubSub.publish(topic, message, options, payload);\n }\n };\n\n const _handlePubSub = data => {\n setMessages(s => [...s, data]);\n onMessageReceived(data);\n };\n\n const subscribeToPubsub = async meeting => {\n const data = await meeting?.pubSub?.subscribe(topic, _handlePubSub);\n if (data) {\n onOldMessagesReceived(data.messages);\n setMessages(data.messages);\n }\n };\n\n useEffect(() => {\n if (meeting && !isSubscribed.current && isMeetingJoined) {\n isSubscribed.current = true;\n subscribeToPubsub(meeting);\n\n return () => {\n meeting?.pubSub?.unsubscribe(topic, _handlePubSub);\n };\n }\n }, [meeting, isMeetingJoined]);\n\n return { publish, messages };\n};\n\nexport default usePubSub;\n","import { useMeeting } from '../meeting/meetingProviderContextDef';\n\nconst useFile = () => {\n const mMeeting = useMeeting();\n\n const uploadBase64File = async ({ base64Data, token, fileName }) => {\n return await mMeeting.meeting.uploadBase64File({\n base64Data,\n token,\n fileName\n });\n };\n\n const fetchBase64File = async ({ url, token }) => {\n return await mMeeting.meeting.fetchBase64File({ url, token });\n };\n\n return { uploadBase64File, fetchBase64File };\n};\n\nexport default useFile;\n","import { VideoSDK } from '@videosdk.live/js-sdk';\nimport { useEffect } from 'react';\n\n/**\n *\n * @param {{\n * onDeviceChanged?: Function | undefined,\n * }}\n *\n * @returns {{\n * getDevices: () => Promise<Array<DeviceInfo>>;\n * getCameras: () => Promise<Array<CameraDeviceInfo>>;\n * getMicrophones: () => Promise<Array<MicrophoneDeviceInfo>>;\n * getPlaybackDevices: () => Promise<Array<PlaybackDeviceInfo>>;\n * checkPermissions: (permissions? : Permission) => Promise<Map<string, boolean>>;\n * requestPermission: (permissions? : Permission) => Promise<Map<string, boolean>>;\n * }}\n *\n */\n\nconst useMediaDevice = ({ onDeviceChanged = () => {} } = {}) => {\n /**\n *\n * @returns {Promise<Array<DeviceInfo>>}\n */\n const getDevices = async () => {\n return await VideoSDK.getDevices();\n };\n\n /**\n *\n * @returns {Promise<Array<CameraDeviceInfo>>}\n */\n const getCameras = async () => {\n return await VideoSDK.getCameras();\n };\n\n /**\n *\n * @returns {Promise<Array<MicrophoneDeviceInfo>>}\n */\n const getMicrophones = async () => {\n return await VideoSDK.getMicrophones();\n };\n\n /**\n *\n * @returns {Promise<Array<PlaybackDeviceInfo>>}\n */\n const getPlaybackDevices = async () => {\n return await VideoSDK.getPlaybackDevices();\n };\n\n /**\n *\n * @param {permissions?: Permission}\n * @returns {Promise<Map<string, boolean>>}\n */\n const checkPermissions = async (permissions = undefined) => {\n return await VideoSDK.checkPermissions(permissions);\n };\n\n /**\n *\n * @param {permission? : Permission}\n * @returns {Promise<Map<string, boolean>>}\n */\n const requestPermission = async (permissions = undefined) => {\n return await VideoSDK.requestPermission(permissions);\n };\n\n useEffect(() => {\n VideoSDK.on('device-changed', onDeviceChanged);\n\n return () => {\n VideoSDK.off('device-changed', onDeviceChanged);\n };\n }, []);\n\n return {\n getDevices,\n getCameras,\n getMicrophones,\n getPlaybackDevices,\n requestPermission,\n checkPermissions\n };\n};\n\nexport default useMediaDevice;\n","import { useMeeting } from '../meeting/meetingProviderContextDef';\nimport { useEffect } from 'react';\nimport { eventEmitter, events } from '../utils';\n\n/**\n *\n * @param {{\n * onTranscriptionStateChanged?: Function,\n * onTranscriptionText?: Function,\n * }} options\n * @returns {{\n * startTranscription: ( data: Object ) => void\n * stopTranscription: () => void\n * }}\n */\nconst useTranscription = ({\n onTranscriptionStateChanged = () => {},\n onTranscriptionText = () => {}\n} = {}) => {\n const mMeeting = useMeeting();\n\n useEffect(() => {\n // on event listeners\n eventEmitter.on(\n events['transcription-state-changed'],\n onTranscriptionStateChanged\n );\n\n eventEmitter.on(events['transcription-text'], onTranscriptionText);\n\n // off event listeners\n return () => {\n eventEmitter.off(\n events['transcription-state-changed'],\n onTranscriptionStateChanged\n );\n eventEmitter.off(events['transcription-text'], onTranscriptionText);\n };\n }, []);\n\n /**\n * @param {{webhookUrl?:string, modelConfig?:any}} config?\n */\n const startTranscription = async config => {\n return await mMeeting.meeting.startTranscription(config);\n };\n\n const stopTranscription = async () => {\n return await mMeeting.meeting.stopTranscription();\n };\n\n return { startTranscription, stopTranscription };\n};\n\nexport default useTranscription;\n","import MeetingProvider from './meeting/MeetingProvider';\nimport {\n MeetingConsumer,\n useMeeting\n} from './meeting/meetingProviderContextDef';\nimport useParticipant from './participant/useParticipant';\nimport useConnection from './connection/useConnection';\nimport usePubSub from './pubSub/usePubSub';\nimport useFile from './upload/useFile';\nimport useMediaDevice from './useMediaDevice';\nimport useTranscription from './transcription/transcription';\nimport {\n VideoSDK,\n CameraDeviceInfo,\n MicrophoneDeviceInfo,\n DeviceInfo\n} from '@videosdk.live/js-sdk';\n\nconst Constants = VideoSDK.Constants;\n\n/**\n * @param {{\n * cameraId?: string | undefined,\n * encoderConfig?: \"h90p_w160p\" | \"h180p_w320p\" | \"h216p_w384p\"\n * | \"h360p_w640p\" | \"h540p_w960p\" | \"h720p_w1280p\" | \"h1080p_w1920p\"\n * | \"h1440p_w2560p\" | \"h2160p_w3840p\" | \"h120p_w160p\" | \"h180p_w240p\"\n * | \"h240p_w320p\" | \"h360p_w480p\" | \"h480p_w640p\" | \"h540p_w720p\"\n * | \"h720p_w960p\" | \"h1080p_w1440p\" | \"h1440p_w1920p\" | undefined,\n * facingMode?: \"front\" | \"environment\" | undefined,\n * optimizationMode?: \"text\"| \"motion\" | \"detail\" | undefined\n * multiStream?: boolean\n * }}\n */\nconst createCameraVideoTrack = async ({\n cameraId = undefined,\n encoderConfig = undefined,\n facingMode = undefined,\n optimizationMode = undefined,\n multiStream = true\n}) => {\n return await VideoSDK.createCameraVideoTrack({\n cameraId,\n encoderConfig,\n facingMode,\n optimizationMode,\n multiStream\n });\n};\n\n/**\n * @param {{\n * encoderConfig?: \"h360p_30fps\" | \"h720p_5fps\" | \"h720p_15fps\"\n * | \"h1080p_15fps\" | \"h1080p_30fps\" | undefined,\n * optimizationMode?: \"text\"| \"motion\" | \"detail\" | undefined,\n * withAudio?:\"enable\" | \"disable\"\n * }}\n */\nconst createScreenShareVideoTrack = async ({\n encoderConfig = undefined,\n optimizationMode = undefined,\n withAudio = 'enable'\n}) => {\n return await VideoSDK.createScreenShareVideoTrack({\n encoderConfig,\n optimizationMode,\n withAudio\n });\n};\n\n/**\n * @param {{\n * noiseConfig?: {\n * echoCancellation: boolean,\n * autoGainControl: boolean,\n * noiseSuppression: boolean\n * } | undefined,\n * encoderConfig?: \"speech_low_quality\"\n * | \"speech_standard\" | \"music_standard\"\n * | \"standard_stereo\" | \"high_quality\"\n * | \"high_quality_stereo\" | undefined\n * microphoneId?: string | undefined\n * }}\n */\nconst createMicrophoneAudioTrack = async ({\n noiseConfig = undefined,\n encoderConfig = undefined,\n microphoneId = undefined\n}) => {\n return await VideoSDK.createMicrophoneAudioTrack({\n noiseConfig,\n encoderConfig,\n microphoneId\n });\n};\n\n/**\n * @param {{\n * timeoutDuration?: number | undefined,\n * }}\n * @returns {Promise<{downloadSpeed: number,uploadSpeed: number}> }\n */\nconst getNetworkStats = async ({ timeoutDuration } = {}) => {\n return await VideoSDK.getNetworkStats({ timeoutDuration });\n};\n\nexport {\n MeetingProvider,\n useMeeting,\n useTranscription,\n useParticipant,\n usePubSub,\n useFile,\n MeetingConsumer,\n useConnection,\n Constants,\n createCameraVideoTrack,\n createMicrophoneAudioTrack,\n createScreenShareVideoTrack,\n useMediaDevice,\n getNetworkStats,\n CameraDeviceInfo,\n MicrophoneDeviceInfo,\n DeviceInfo\n};\n"],"names":["eventPrifix","events","error","eventEmitter","EventEmitter","setMaxListeners","MeetingProviderContex","createContext","useMeeting","_temp","_ref","_ref$onParticipantJoi","onParticipantJoined","_ref$onParticipantLef","onParticipantLeft","_ref$onSpeakerChanged","onSpeakerChanged","_ref$onPresenterChang","onPresenterChanged","_ref$onMainParticipan","onMainParticipantChanged","_ref$onEntryRequested","onEntryRequested","_ref$onEntryResponded","onEntryResponded","_ref$onRecordingStart","onRecordingStarted","_ref$onRecordingStopp","onRecordingStopped","_ref$onChatMessage","onChatMessage","_ref$onMeetingJoined","onMeetingJoined","_ref$onMeetingLeft","onMeetingLeft","_ref$onLiveStreamStar","onLiveStreamStarted","_ref$onLiveStreamStop","onLiveStreamStopped","_ref$onVideoStateChan","onVideoStateChanged","_ref$onVideoSeeked","onVideoSeeked","_ref$onWebcamRequeste","onWebcamRequested","_ref$onMicRequested","onMicRequested","_ref$onPinStateChange","onPinStateChanged","_ref$onConnectionOpen","onConnectionOpen","_ref$onConnetionClose","onConnetionClose","_ref$onSwitchMeeting","onSwitchMeeting","_ref$onError","onError","_ref$onHlsStarted","onHlsStarted","_ref$onHlsStopped","onHlsStopped","_ref$onHlsStateChange","onHlsStateChanged","_ref$onRecordingState","onRecordingStateChanged","_ref$onLivestreamStat","onLivestreamStateChanged","_ref$onMeetingStateCh","onMeetingStateChanged","_ref$onParticipantMod","onParticipantModeChanged","useEffect","on","off","useContext","MeetingConsumer","_ref2","children","_ref2$onParticipantJo","_ref2$onParticipantLe","_ref2$onSpeakerChange","_ref2$onPresenterChan","_ref2$onMainParticipa","_ref2$onEntryRequeste","_ref2$onEntryResponde","_ref2$onRecordingStar","_ref2$onRecordingStop","_ref2$onChatMessage","_ref2$onMeetingJoined","_ref2$onMeetingLeft","_ref2$onLiveStreamSta","_ref2$onLiveStreamSto","_ref2$onVideoStateCha","_ref2$onVideoSeeked","_ref2$onWebcamRequest","_ref2$onMicRequested","_ref2$onPinStateChang","_ref2$onConnectionOpe","_ref2$onConnetionClos","_ref2$onSwitchMeeting","_ref2$onError","_ref2$onHlsStarted","_ref2$onHlsStopped","_ref2$onHlsStateChang","_ref2$onRecordingStat","_ref2$onLivestreamSta","_ref2$onMeetingStateC","_ref2$onParticipantMo","React","createElement","Fragment","Consumer","MeetingProvider","config","token","joinWithoutUserInteraction","_reinitialiseMeetingOnConfigChange","reinitialiseMeetingOnConfigChange","deviceInfo","_useState","useState","meeting","setMeeting","_useState2","localParticipant","setLocalParticipant","_useState3","mainParticipant","setMainParticipant","_useState4","activeSpeakerId","setActiveSpeakerId","_useState5","presenterId","setPresenterId","_useState6","localMicOn","setLocalMicOn","_useState7","localWebcamOn","setLocalWebcamOn","_useState8","localScreenShareOn","setLocalScreenShareOn","_useState9","isRecording","setIsRecording","_useState10","messages","setMessages","_useState11","Map","participants","setParticipants","_useState12","pinnedParticipants","setPinnedParticipants","_useState13","isLiveStreaming","setIsLiveStreaming","_useState14","connections","setConnections","_useState15","isMeetingJoined","setIsMeetingJoined","_useState16","isHls","setIsHls","_useState17","recordingState","setRecordingState","_useState18","livestreamState","setLivestreamState","_useState19","hlsState","setHlsState","_useState20","downstreamUrl","playbackHlsUrl","livestreamUrl","hlsUrls","setHlsUrls","_useState21","transcriptionState","setTranscriptionState","meetingRef","useRef","localMicOnRef","localWebcamOnRef","localScreenShareOnRef","isRecordingRef","configRef","tokenRef","joinedOnFirstRender","isHlsRef","useMemo","current","resetStates","_handle_participant_joined","participant","set","id","participantsToSet","emit","_handle_participant_left","newParticipants","_handle_presenter_changed","_meetingRef$current","_meetingRef$current$l","_handle_main_participant_changed","_handle_speaker_changed","_handle_chat_message","data","s","concat","_handle_entry_requested","_handle_entry_responded","participantId","decision","_handle_recording_started","_handle_recording_stopped","_handle_localParticipant_stream_enabled","stream","track","readyState","kind","_handle_localParticipant_stream_disabled","_handle_live_stream_started","_handle_live_stream_stopped","_handle_hls_started","_handle_hls_stopped","_handle_video_state_changed","_handle_video_seeked","_handle_webcam_requested","_handle_mic_requested","_handle_meeting_joined","_handle_meeting_left","_meeting$localPartici","_handle_meeting_state_changed","_handle_pin_state_changed","_handle_connection_open","_handle_connection_close","_handle_switch_meeting","_handle_error","_handle_recording_state_changed","_handle_livestream_state_changed","_handle_hls_state_changed","_handel_participant_mode_changed","state","pinnedBy","cam","share","pinnedParticipantsToSet","connection","connectionsToSet","connectionId","newConnections","d","status","_handle_transcription_state_changed","_handle_transcription_text","_meetingRef$current2","_meetingRef$current2$","part","get","mode","join","VideoSDK","initMeeting","leave","end","startRecording","webhookUrl","awsDirPath","transcription","stopRecording","unmuteMic","customAudioTrack","undefined","muteMic","toggleMic","disableWebcam","enableWebcam","customVideoTrack","toggleWebcam","disableScreenShare","enableScreenShare","customScreenShareTrack","toggleScreenShare","changeMode","sendChatMessage","text","respondEntry","getMics","Promise","resolve","e","reject","getWebcams","changeWebcam","obj","replaceWebcamStream","changeMic","startVideo","_ref3","link","stopVideo","resumeVideo","pauseVideo","_ref4","currentTime","seekVideo","_ref5","startLivestream","streamInfo","stopLivestream","connectTo","_ref6","meetingId","payload","then","startHls","stopHls","initSDK","analytics","sdkType","sdkVersion","reactSDKVersion","Provider","value","baseUrl","selectedCameraDevice","selectedMicrophoneDevice","useParticipant","_ref$onStreamEnabled","onStreamEnabled","_ref$onStreamDisabled","onStreamDisabled","_ref$onMediaStatusCha","onMediaStatusChanged","_ref$onVideoQualityCh","onVideoQualityChanged","webcamStream","setwebcamStream","micStream","setMicStream","screenShareStream","setScreenShareStream","screenShareAudioStream","setScreenShareAudioStream","_useMemo","_meeting$pinnedPartic","pinState","webcamOn","setWebcamOn","micOn","setMicOn","setMode","setTrack","unSetTrack","_handleStreamEnabled","_handleParticipantModeChanged","_handleStreamDisabled","_handleVideoQualityChanged","peerId","prevQuality","currentQuality","_handleMediaStatusChanged","newStatus","setQuality","quality","setViewPort","width","height","enableMic","disableMic","pin","unpin","remove","captureImage","_temp2","getAudioStats","getVideoStats","getShareStats","consumeWebcamStreams","consumeMicStreams","stopConsumingWebcamStreams","stopConsumingMicStreams","switchTo","streams","forEach","displayName","metaData","screenShareOn","isLocal","isActiveSpeaker","isMainParticipant","useConnection","onMeeting","Error","connectionParticipants","_connectionParticipants","setConnectionParticipants","_handleParticipantJoined","_handleParticipantLeft","_handleChatMessage","close","usePubSub","topic","_ref$onMessageReceive","onMessageReceived","_ref$onOldMessagesRec","onOldMessagesReceived","_useMeeting","isSubscribed","publish","message","options","pubSub","_handlePubSub","subscribeToPubsub","_meeting$pubSub","subscribe","_meeting$pubSub2","unsubscribe","useFile","mMeeting","uploadBase64File","base64Data","fileName","fetchBase64File","url","useMediaDevice","_ref$onDeviceChanged","onDeviceChanged","getDevices","getCameras","getMicrophones","getPlaybackDevices","checkPermissions","permissions","requestPermission","useTranscription","_ref$onTranscriptionS","onTranscriptionStateChanged","_ref$onTranscriptionT","onTranscriptionText","startTranscription","stopTranscription","Constants","createCameraVideoTrack","_ref$cameraId","cameraId","_ref$encoderConfig","encoderConfig","_ref$facingMode","facingMode","_ref$optimizationMode","optimizationMode","_ref$multiStream","multiStream","createScreenShareVideoTrack","_ref2$encoderConfig","_ref2$optimizationMod","_ref2$withAudio","withAudio","createMicrophoneAudioTrack","_ref3$noiseConfig","noiseConfig","_ref3$encoderConfig","_ref3$microphoneId","microphoneId","getNetworkStats","timeoutDuration"],"mappings":"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"}
1
+ {"version":3,"file":"index.modern.js","sources":["../src/utils.js","../src/meeting/meetingProviderContextDef.js","../src/meeting/MeetingProvider.js","../src/participant/useParticipant.js","../src/connection/useConnection.js","../src/pubSub/usePubSub.js","../src/upload/useFile.js","../src/useMediaDevice.js","../src/transcription/transcription.js","../src/index.js"],"sourcesContent":["import EventEmitter from 'events';\n\nconst eventPrifix = 'videosdk-live-react-sdk';\n\nconst events = {\n 'participant-joined': `${eventPrifix}-participant-joined`,\n 'participant-left': `${eventPrifix}-participant-left`,\n 'speaker-changed': `${eventPrifix}-speaker-changed`,\n 'presenter-changed': `${eventPrifix}-presenter-changed`,\n 'main-participant-changed': `${eventPrifix}-main-participant-changed`,\n 'entry-requested': `${eventPrifix}-entry-requested`,\n 'entry-responded': `${eventPrifix}-entry-responded`,\n 'recording-started': `${eventPrifix}-recording-started`,\n 'recording-stopped': `${eventPrifix}-recording-stopped`,\n 'chat-message': `${eventPrifix}-chat-message`,\n 'meeting-joined': `${eventPrifix}-meeting-joined`,\n 'meeting-left': `${eventPrifix}-meeting-left`,\n 'live-stream-started': `${eventPrifix}-live-stream-started`,\n 'live-stream-stopped': `${eventPrifix}-live-stream-stopped`,\n 'video-state-changed': `${eventPrifix}-video-state-changed`,\n 'video-seeked': `${eventPrifix}-video-seeked`,\n 'webcam-requested': `${eventPrifix}-webcam-requested`,\n 'mic-requested': `${eventPrifix}-mic-requested`,\n 'pin-state-changed': `${eventPrifix}-pin-state-changed`,\n 'connection-open': `${eventPrifix}-connection-open`,\n 'connection-close': `${eventPrifix}-connection-close`,\n 'switch-meeting': `${eventPrifix}-switch-meeting`,\n error: `${eventPrifix}-error`,\n 'hls-started': `${eventPrifix}-hls-started`,\n 'hls-stopped': `${eventPrifix}-hls-stopped`,\n 'hls-state-changed': `${eventPrifix}-hls-state-changed`,\n 'hls-playable-state-changed': `${eventPrifix}-hls-playable-state-changed`,\n 'recording-state-changed': `${eventPrifix}-recording-state-changed`,\n 'livestream-state-changed': `${eventPrifix}-livestream-state-changed`,\n 'meeting-state-changed': `${eventPrifix}-meeting-state-changed`,\n 'participant-mode-changed': `${eventPrifix}-participant-mode-changed`,\n 'transcription-state-changed': `${eventPrifix}-transcription-state-changed`,\n 'transcription-text': `${eventPrifix}-transcription-text`\n};\n\nconst eventEmitter = new EventEmitter();\neventEmitter.setMaxListeners(9999);\n\nexport { eventEmitter, events };\n","import React from 'react';\nimport { useContext, createContext, useEffect } from 'react';\nimport { eventEmitter, events } from '../utils';\nexport const MeetingProviderContex = createContext();\n\n/**\n *\n * @param {{\n * onParticipantJoined?: (participant: Participant) => void,\n * onParticipantLeft?: (participant: Participant) => void,\n * onSpeakerChanged?: (activeSpeakerId: string?) => void,\n * onPresenterChanged?: (presenterId: string?) => void,\n * onMainParticipantChanged?: Function,\n * onEntryRequested?: ({\n * participantId,\n * name,\n * allow,\n * deny\n * }:{\n * participantId: string,\n * name: string,\n * allow: Function,\n * deny: Function\n * }) => void,\n * onEntryResponded?: ({\n * participantId,\n * decision\n * }:{\n * participantId: string,\n * decision: string\n * }) => void,\n * onRecordingStarted?: Function,\n * onRecordingStopped?: Function,\n * onChatMessage?: Function,\n * onMeetingJoined?: Function,\n * onMeetingLeft?: Function,\n * onLiveStreamStarted?: Function,\n * onLiveStreamStopped?: Function,\n * onVideoStateChanged?: Function,\n * onVideoSeeked?: Function,\n * onWebcamRequested?: ({\n * participantId,\n * accept,\n * reject\n * }:{\n * participantId: string,\n * accept: Function,\n * reject: Function\n * }) => void,\n * onMicRequested?: ({\n * participantId,\n * accept,\n * reject\n * }:{\n * participantId: string,\n * accept: Function,\n * reject: Function\n * }) => void,\n * onPinStateChanged?: Function,\n * onConnectionOpen?: Function,\n * onConnetionClose?: Function,\n * onSwitchMeeting?: Function,\n * onError?: ({\n * code,\n * message\n * }:{\n * code: string,\n * message: string\n * }) => void,\n * onHlsStarted?: ({\n * downstreamUrl,\n * }:{\n * downstreamUrl: string,\n * }) => void,\n * onHlsStopped?: Function,\n * onHlsStateChanged?: ({\n * status,\n * downstreamUrl,\n * playbackHlsUrl,\n * livestreamUrl\n * }:{\n * status: \"HLS_STARTING\" | \"HLS_STARTED\" | \"HLS_PLAYABLE\" | \"HLS_STOPPING\" | \"HLS_STOPPING\",\n * downstreamUrl: string,\n * playbackHlsUrl: string,\n * livestreamUrl: string\n * }) => void,\n * onRecordingStateChanged?: ({\n * status\n * }:{\n * status: \"RECORDING_STARTING\" | \"RECORDING_STARTED\" | \"RECORDING_STOPPING\" | \"RECORDING_STOPPING\",\n * }) => void,\n * onLivestreamStateChanged?: ({\n * status: \"LIVESTREAM_STARTING\" | \"LIVESTREAM_STARTED\" | \"LIVESTREAM_STOPPING\" | \"LIVESTREAM_STOPPING\",\n * }:{\n * status: string\n * }) => void,\n * onMeetingStateChanged?: ({\n * state\n * }:{\n * state: string\n * }) => void,\n *}}\n * @returns {{\n * meetingId: string,\n * meeting: Meeting,\n * localParticipant: Participant,\n * activeSpeakerId: string,\n * participants: Map<string, Participant>,\n * pinnedParticipants: Map<string, {cam:boolean, share:boolean}>,\n * presenterId?: string,\n * localMicOn: boolean,\n * localWebcamOn: boolean,\n * isRecording: boolean,\n * recordingState: string,\n * livestreamState: string,\n * hlsState: string,\n * hlsUrls: {\n * downstreamUrl: string,\n * playbackHlsUrl: string,\n * livestreamUrl: string\n * },\n * localScreenShareOn: boolean,\n * connections: Map<string, Connection>,\n * join: () => void\n * leave: () => void\n * end: () => void\n * unmuteMic: (customAudioTrack?: MediaStream | undefined) => void\n * muteMic: () => void\n * toggleMic: (customAudioTrack?: MediaStream | undefined) => void\n * enableWebcam: (customVideoTrack?: MediaStream | undefined) => void\n * disableWebcam: () => void\n * toggleWebcam: (customVideoTrack?: MediaStream | undefined) => void\n * enableScreenShare: (customScreenShareTrack?: MediaStream | undefined) => void\n * disableScreenShare: () => void\n * toggleScreenShare: (customScreenShareTrack?: MediaStream | undefined) => void\n * startRecording: (webhookUrl?: string, awsDirPath?: string, config?: {\n * layout: {\n * type: \"GRID\" | \"SPOTLIGHT\" | \"SIDEBAR\";\n * priority: \"SPEAKER\" | \"PIN\";\n * gridSize: number;\n * },\n * orientation: \"landscape\" | \"portrait\",\n * theme: \"DEFAULT\" | \"DARK\" | \"LIGHT\",\n * quality: \"low\" | \"med\" | \"high\",\n * mode: \"video-and-audio\" | \"audio\",\n * },\n * transcription?: {\n * enabled: boolean,\n * summary?: {\n * enabled: boolean,\n * prompt?: string\n * }\n * }) => void\n * stopRecording: () => void\n * startLiveStream: (outputs: Array<{\n * url: string;\n * streamKey: string;\n * }>,\n * config?: {\n * layout: {\n * type: \"GRID\" | \"SPOTLIGHT\" | \"SIDEBAR\";\n * priority: \"SPEAKER\" | \"PIN\";\n * gridSize: number;\n * },\n * theme: \"DEFAULT\" | \"DARK\" | \"LIGHT\",\n * }) => void\n * stopLiveStream: () => void\n * startHls: (config?: {\n * layout: {\n * type: \"GRID\" | \"SPOTLIGHT\" | \"SIDEBAR\";\n * priority: \"SPEAKER\" | \"PIN\";\n * gridSize: number;\n * },\n * orientation: \"landscape\" | \"portrait\",\n * theme: \"DEFAULT\" | \"DARK\" | \"LIGHT\",\n * quality: \"low\" | \"med\" | \"high\",\n * mode: \"video-and-audio\" | \"audio\",\n * },\n * transcription?: {\n * enabled: boolean,\n * summary?: {\n * enabled: boolean,\n * prompt?: string\n * }\n * }) => void\n * stopHls: () => void\n * getMics: () => Promise<{\n * deviceId: string;\n * label: string;\n * }[]>void\n * getWebcams: () => Promise<{\n * deviceId: string;\n * label: string;\n * facingMode: \"environment\" | \"front\"\n * }[]>void\n * changeMic: (object: string | MediaStream) => void\n * changeMode(mode: 'CONFERENCE' | 'VIEWER'): void;\n * changeWebcam: (object: string | MediaStream) => void\n * startVideo: ({ link }: {\n * link: string;\n * }) => void\n * stopVideo: () => void\n * pauseVideo: ({ currentTime }: {\n * currentTime: number;\n * }) => void\n * resumeVideo: () => void\n * seekVideo: ({ currentTime }: {\n * currentTime: number;\n * }) => void\n * connectTo: ({ meetingId, payload }: {\n * meetingId: string;\n * payload: string;\n * }) => void\n *\n * }}\n */\nexport const useMeeting = ({\n onParticipantJoined = () => {},\n onParticipantLeft = () => {},\n onSpeakerChanged = () => {},\n onPresenterChanged = () => {},\n onMainParticipantChanged = () => {},\n onEntryRequested = () => {},\n onEntryResponded = () => {},\n onRecordingStarted = () => {},\n onRecordingStopped = () => {},\n onChatMessage = () => {},\n onMeetingJoined = () => {},\n onMeetingLeft = () => {},\n onLiveStreamStarted = () => {},\n onLiveStreamStopped = () => {},\n onVideoStateChanged = () => {},\n onVideoSeeked = () => {},\n onWebcamRequested = () => {},\n onMicRequested = () => {},\n onPinStateChanged = () => {},\n onConnectionOpen = () => {},\n onConnetionClose = () => {},\n onSwitchMeeting = () => {},\n onError = () => {},\n onHlsStarted = () => {},\n onHlsStopped = () => {},\n onHlsStateChanged = () => {},\n onRecordingStateChanged = () => {},\n onLivestreamStateChanged = () => {},\n onMeetingStateChanged = () => {},\n onParticipantModeChanged = () => {}\n} = {}) => {\n useEffect(() => {\n eventEmitter.on(events['participant-joined'], onParticipantJoined);\n eventEmitter.on(events['participant-left'], onParticipantLeft);\n eventEmitter.on(events['speaker-changed'], onSpeakerChanged);\n eventEmitter.on(events['presenter-changed'], onPresenterChanged);\n eventEmitter.on(\n events['main-participant-changed'],\n onMainParticipantChanged\n );\n eventEmitter.on(events['entry-requested'], onEntryRequested);\n eventEmitter.on(events['entry-responded'], onEntryResponded);\n eventEmitter.on(events['recording-started'], onRecordingStarted);\n eventEmitter.on(events['recording-stopped'], onRecordingStopped);\n eventEmitter.on(events['chat-message'], onChatMessage);\n eventEmitter.on(events['meeting-joined'], onMeetingJoined);\n eventEmitter.on(events['meeting-left'], onMeetingLeft);\n eventEmitter.on(events['live-stream-started'], onLiveStreamStarted);\n eventEmitter.on(events['live-stream-stopped'], onLiveStreamStopped);\n eventEmitter.on(events['video-state-changed'], onVideoStateChanged);\n eventEmitter.on(events['video-seeked'], onVideoSeeked);\n eventEmitter.on(events['webcam-requested'], onWebcamRequested);\n eventEmitter.on(events['mic-requested'], onMicRequested);\n eventEmitter.on(events['pin-state-changed'], onPinStateChanged);\n eventEmitter.on(events['connection-open'], onConnectionOpen);\n eventEmitter.on(events['connection-close'], onConnetionClose);\n eventEmitter.on(events['switch-meeting'], onSwitchMeeting);\n eventEmitter.on(events['error'], onError);\n eventEmitter.on(events['hls-started'], onHlsStarted);\n eventEmitter.on(events['hls-stopped'], onHlsStopped);\n eventEmitter.on(events['hls-state-changed'], onHlsStateChanged);\n eventEmitter.on(events['recording-state-changed'], onRecordingStateChanged);\n eventEmitter.on(\n events['livestream-state-changed'],\n onLivestreamStateChanged\n );\n eventEmitter.on(events['meeting-state-changed'], onMeetingStateChanged);\n eventEmitter.on(\n events['participant-mode-changed'],\n onParticipantModeChanged\n );\n\n return () => {\n eventEmitter.off(events['meeting-state-changed'], onMeetingStateChanged);\n eventEmitter.off(events['participant-joined'], onParticipantJoined);\n eventEmitter.off(events['participant-left'], onParticipantLeft);\n eventEmitter.off(events['speaker-changed'], onSpeakerChanged);\n eventEmitter.off(events['presenter-changed'], onPresenterChanged);\n eventEmitter.off(\n events['main-participant-changed'],\n onMainParticipantChanged\n );\n eventEmitter.off(events['entry-requested'], onEntryRequested);\n eventEmitter.off(events['entry-responded'], onEntryResponded);\n eventEmitter.off(events['recording-started'], onRecordingStarted);\n eventEmitter.off(events['recording-stopped'], onRecordingStopped);\n eventEmitter.off(events['chat-message'], onChatMessage);\n eventEmitter.off(events['meeting-joined'], onMeetingJoined);\n eventEmitter.off(events['meeting-left'], onMeetingLeft);\n eventEmitter.off(events['live-stream-started'], onLiveStreamStarted);\n eventEmitter.off(events['live-stream-stopped'], onLiveStreamStopped);\n eventEmitter.off(events['video-state-changed'], onVideoStateChanged);\n eventEmitter.off(events['video-seeked'], onVideoSeeked);\n eventEmitter.off(events['webcam-requested'], onWebcamRequested);\n eventEmitter.off(events['mic-requested'], onMicRequested);\n eventEmitter.off(events['pin-state-changed'], onPinStateChanged);\n eventEmitter.off(events['connection-open'], onConnectionOpen);\n eventEmitter.off(events['connection-close'], onConnetionClose);\n eventEmitter.off(events['switch-meeting'], onSwitchMeeting);\n eventEmitter.off(events['error'], onError);\n eventEmitter.off(events['hls-started'], onHlsStarted);\n eventEmitter.off(events['hls-stopped'], onHlsStopped);\n eventEmitter.off(events['hls-state-changed'], onHlsStateChanged);\n eventEmitter.off(\n events['recording-state-changed'],\n onRecordingStateChanged\n );\n eventEmitter.off(\n events['livestream-state-changed'],\n onLivestreamStateChanged\n );\n eventEmitter.off(\n events['participant-mode-changed'],\n onParticipantModeChanged\n );\n };\n }, []);\n return useContext(MeetingProviderContex);\n};\n\nexport const MeetingConsumer = ({\n children,\n onParticipantJoined = () => {},\n onParticipantLeft = () => {},\n onSpeakerChanged = () => {},\n onPresenterChanged = () => {},\n onMainParticipantChanged = () => {},\n onEntryRequested = () => {},\n onEntryResponded = () => {},\n onRecordingStarted = () => {},\n onRecordingStopped = () => {},\n onChatMessage = () => {},\n onMeetingJoined = () => {},\n onMeetingLeft = () => {},\n onLiveStreamStarted = () => {},\n onLiveStreamStopped = () => {},\n onVideoStateChanged = () => {},\n onVideoSeeked = () => {},\n onWebcamRequested = () => {},\n onMicRequested = () => {},\n onPinStateChanged = () => {},\n onConnectionOpen = () => {},\n onConnetionClose = () => {},\n onSwitchMeeting = () => {},\n onError = () => {},\n onHlsStarted = () => {},\n onHlsStopped = () => {},\n onHlsStateChanged = () => {},\n onRecordingStateChanged = () => {},\n onLivestreamStateChanged = () => {},\n onMeetingStateChanged = () => {},\n onParticipantModeChanged = () => {}\n}) => {\n useEffect(() => {\n eventEmitter.on(events['meeting-state-changed'], onMeetingStateChanged);\n eventEmitter.on(events['participant-joined'], onParticipantJoined);\n eventEmitter.on(events['participant-left'], onParticipantLeft);\n eventEmitter.on(events['speaker-changed'], onSpeakerChanged);\n eventEmitter.on(events['presenter-changed'], onPresenterChanged);\n eventEmitter.on(\n events['main-participant-changed'],\n onMainParticipantChanged\n );\n eventEmitter.on(events['entry-requested'], onEntryRequested);\n eventEmitter.on(events['entry-responded'], onEntryResponded);\n eventEmitter.on(events['recording-started'], onRecordingStarted);\n eventEmitter.on(events['recording-stopped'], onRecordingStopped);\n eventEmitter.on(events['chat-message'], onChatMessage);\n eventEmitter.on(events['meeting-joined'], onMeetingJoined);\n eventEmitter.on(events['meeting-left'], onMeetingLeft);\n eventEmitter.on(events['live-stream-enabled'], onLiveStreamStarted);\n eventEmitter.on(events['live-stream-disabled'], onLiveStreamStopped);\n eventEmitter.on(events['video-state-changed'], onVideoStateChanged);\n eventEmitter.on(events['video-seeked'], onVideoSeeked);\n eventEmitter.on(events['webcam-requested'], onWebcamRequested);\n eventEmitter.on(events['mic-requested'], onMicRequested);\n eventEmitter.on(events['pin-state-changed'], onPinStateChanged);\n eventEmitter.on(events['connection-open'], onConnectionOpen);\n eventEmitter.on(events['connection-close'], onConnetionClose);\n eventEmitter.on(events['switch-meeting'], onSwitchMeeting);\n eventEmitter.on(events['error'], onError);\n eventEmitter.on(events['hls-started'], onHlsStarted);\n eventEmitter.on(events['hls-stopped'], onHlsStopped);\n eventEmitter.on(events['hls-state-changed'], onHlsStateChanged);\n eventEmitter.on(events['recording-state-changed'], onRecordingStateChanged);\n eventEmitter.on(\n events['livestream-state-changed'],\n onLivestreamStateChanged\n );\n eventEmitter.on(\n events['participant-mode-changed'],\n onParticipantModeChanged\n );\n\n return () => {\n eventEmitter.off(events['meeting-state-changed'], onMeetingStateChanged);\n eventEmitter.off(events['participant-joined'], onParticipantJoined);\n eventEmitter.off(events['participant-left'], onParticipantLeft);\n eventEmitter.off(events['speaker-changed'], onSpeakerChanged);\n eventEmitter.off(events['presenter-changed'], onPresenterChanged);\n eventEmitter.off(\n events['main-participant-changed'],\n onMainParticipantChanged\n );\n eventEmitter.off(events['entry-requested'], onEntryRequested);\n eventEmitter.off(events['entry-responded'], onEntryResponded);\n eventEmitter.off(events['recording-started'], onRecordingStarted);\n eventEmitter.off(events['recording-stopped'], onRecordingStopped);\n eventEmitter.off(events['chat-message'], onChatMessage);\n eventEmitter.off(events['meeting-joined'], onMeetingJoined);\n eventEmitter.off(events['meeting-left'], onMeetingLeft);\n eventEmitter.off(events['live-stream-enabled'], onLiveStreamStarted);\n eventEmitter.off(events['live-stream-disabled'], onLiveStreamStopped);\n eventEmitter.off(events['video-state-changed'], onVideoStateChanged);\n eventEmitter.off(events['video-seeked'], onVideoSeeked);\n eventEmitter.off(events['webcam-requested'], onWebcamRequested);\n eventEmitter.off(events['mic-requested'], onMicRequested);\n eventEmitter.off(events['pin-state-changed'], onPinStateChanged);\n eventEmitter.off(events['connection-open'], onConnectionOpen);\n eventEmitter.off(events['connection-close'], onConnetionClose);\n eventEmitter.off(events['switch-meeting'], onSwitchMeeting);\n eventEmitter.off(events['error'], onError);\n eventEmitter.off(events['hls-started'], onHlsStarted);\n eventEmitter.off(events['hls-stopped'], onHlsStopped);\n eventEmitter.off(events['hls-state-changed'], onHlsStateChanged);\n eventEmitter.off(\n events['recording-state-changed'],\n onRecordingStateChanged\n );\n eventEmitter.off(\n events['livestream-state-changed'],\n onLivestreamStateChanged\n );\n eventEmitter.off(\n events['participant-mode-changed'],\n onParticipantModeChanged\n );\n };\n }, []);\n\n return (\n <React.Fragment>\n <MeetingProviderContex.Consumer>\n {children}\n </MeetingProviderContex.Consumer>\n </React.Fragment>\n );\n};\n","import { MeetingProviderContex } from './meetingProviderContextDef';\nimport React, { useEffect, useRef, useState, useMemo } from 'react';\nimport { eventEmitter, events } from '../utils';\nimport { VideoSDK } from '@videosdk.live/js-sdk';\nimport { version as reactSDKVersion } from '../../package.json';\n\n/**\n *\n * @param {{\n * children:any,\n * config:{\n * meetingId: string,\n * autoConsume?: boolean,\n * preferredProtocol?:\"UDP_ONLY\" | \"UDP_OVER_TCP\",\n * participantId?:string | undefined,\n * name:string,\n * micEnabled:boolean,\n * webcamEnabled:boolean,\n * maxResolution?:\"hd\" | \"sd\",\n * customCameraVideoTrack?: MediaStream | undefined\n * customMicrophoneAudioTrack?: MediaStream | undefined,\n * multiStream?: boolean,\n * mode?: \"CONFERENCE\" | \"VIEWER\",\n * metaData?: object,\n * defaultCamera?: 'front' | 'back',\n * debugMode: boolean,\n * },\n * token: string,\n * joinWithoutUserInteraction?: boolean,\n * reinitialiseMeetingOnConfigChange?: boolean,\n * deviceInfo?: object\n * }}\n *\n */\nconst MeetingProvider = ({\n children,\n config,\n token,\n joinWithoutUserInteraction,\n reinitialiseMeetingOnConfigChange: _reinitialiseMeetingOnConfigChange,\n deviceInfo\n}) => {\n const [meeting, setMeeting] = useState(null);\n const [localParticipant, setLocalParticipant] = useState(null);\n const [mainParticipant, setMainParticipant] = useState(null);\n const [activeSpeakerId, setActiveSpeakerId] = useState(null);\n const [presenterId, setPresenterId] = useState(null);\n const [localMicOn, setLocalMicOn] = useState(false);\n const [localWebcamOn, setLocalWebcamOn] = useState(false);\n const [localScreenShareOn, setLocalScreenShareOn] = useState(false);\n const [isRecording, setIsRecording] = useState(false);\n const [messages, setMessages] = useState([]);\n const [participants, setParticipants] = useState(new Map());\n const [pinnedParticipants, setPinnedParticipants] = useState(new Map());\n const [isLiveStreaming, setIsLiveStreaming] = useState(false);\n const [connections, setConnections] = useState(new Map());\n const [isMeetingJoined, setIsMeetingJoined] = useState(false);\n const [isHls, setIsHls] = useState(false);\n const [recordingState, setRecordingState] = useState('RECORDING_STOPPED');\n const [livestreamState, setLivestreamState] = useState('LIVESTREAM_STOPPED');\n const [hlsState, setHlsState] = useState('HLS_STOPPED');\n const [hlsUrls, setHlsUrls] = useState({\n downstreamUrl: null,\n playbackHlsUrl: null,\n livestreamUrl: null\n });\n const [transcriptionState, setTranscriptionState] = useState(\n 'TRANSCRIPTION_STOPPED'\n );\n\n const meetingRef = useRef();\n const localMicOnRef = useRef();\n const localWebcamOnRef = useRef();\n const localScreenShareOnRef = useRef();\n const isRecordingRef = useRef();\n const configRef = useRef(config);\n const tokenRef = useRef(token);\n const joinedOnFirstRender = useRef(false);\n const isHlsRef = useRef();\n\n const reinitialiseMeetingOnConfigChange = useMemo(\n () => _reinitialiseMeetingOnConfigChange,\n []\n );\n\n useEffect(() => {\n meetingRef.current = meeting;\n }, [meeting]);\n useEffect(() => {\n localMicOnRef.current = localMicOn;\n }, [localMicOn]);\n useEffect(() => {\n localWebcamOnRef.current = localWebcamOn;\n }, [localWebcamOn]);\n useEffect(() => {\n localScreenShareOnRef.current = localScreenShareOn;\n }, [localScreenShareOn]);\n useEffect(() => {\n isRecordingRef.current = isRecording;\n }, [isRecording]);\n useEffect(() => {\n configRef.current = config;\n }, [config]);\n useEffect(() => {\n tokenRef.current = token;\n }, [token]);\n useEffect(() => {\n isHlsRef.current = isHls;\n }, [isHls]);\n\n const resetStates = () => {\n setMeeting(null);\n setLocalParticipant(null);\n setMainParticipant(null);\n setActiveSpeakerId(null);\n setPresenterId(null);\n setLocalMicOn(false);\n setLocalWebcamOn(false);\n setLocalScreenShareOn(false);\n setIsRecording(false);\n setMessages([]);\n setIsLiveStreaming(false);\n setParticipants(new Map());\n setPinnedParticipants(new Map());\n setConnections(new Map());\n setIsMeetingJoined(false);\n setIsHls(false);\n setRecordingState('RECORDING_STOPPED');\n setLivestreamState('LIVESTREAM_STOPPED');\n setHlsState('HLS_STOPPED');\n setTranscriptionState('TRANSCRIPTION_STOPPED');\n setHlsUrls({\n downstreamUrl: null,\n playbackHlsUrl: null,\n livestreamUrl: null\n });\n };\n\n const _handle_participant_joined = participant => {\n setParticipants(participants => {\n participants.set(participant.id, participant);\n const participantsToSet = new Map(participants);\n return participantsToSet;\n });\n eventEmitter.emit(events['participant-joined'], participant);\n };\n const _handle_participant_left = participant => {\n setParticipants(participants => {\n participants.delete(participant.id);\n\n const newParticipants = new Map(participants);\n return newParticipants;\n });\n eventEmitter.emit(events['participant-left'], participant);\n };\n const _handle_presenter_changed = presenterId => {\n setPresenterId(presenterId);\n setLocalScreenShareOn(\n presenterId === meetingRef?.current?.localParticipant?.id\n );\n eventEmitter.emit(events['presenter-changed'], presenterId);\n };\n const _handle_main_participant_changed = participant => {\n setMainParticipant(participant);\n eventEmitter.emit(events['main-participant-changed'], participant);\n };\n const _handle_speaker_changed = activeSpeakerId => {\n setActiveSpeakerId(activeSpeakerId);\n eventEmitter.emit(events['speaker-changed'], activeSpeakerId);\n };\n const _handle_chat_message = data => {\n setMessages(s => [...s, data]);\n\n eventEmitter.emit(events['chat-message'], data);\n };\n const _handle_entry_requested = data => {\n eventEmitter.emit(events['entry-requested'], data);\n };\n const _handle_entry_responded = (participantId, decision) => {\n eventEmitter.emit(events['entry-responded'], participantId, decision);\n };\n const _handle_recording_started = () => {\n setIsRecording(true);\n eventEmitter.emit(events['recording-started']);\n };\n const _handle_recording_stopped = () => {\n setIsRecording(false);\n eventEmitter.emit(events['recording-stopped']);\n };\n\n const _handle_localParticipant_stream_enabled = stream => {\n if (stream.track.readyState === 'live') {\n if (stream.kind === 'video') {\n setLocalWebcamOn(true);\n } else if (stream.kind === 'audio') {\n setLocalMicOn(true);\n }\n }\n };\n const _handle_localParticipant_stream_disabled = stream => {\n if (stream.kind === 'video') {\n setLocalWebcamOn(false);\n } else if (stream.kind === 'audio') {\n setLocalMicOn(false);\n }\n };\n\n const _handle_live_stream_started = data => {\n setIsLiveStreaming(true);\n eventEmitter.emit(events['live-stream-started'], data);\n };\n const _handle_live_stream_stopped = () => {\n setIsLiveStreaming(false);\n eventEmitter.emit(events['live-stream-stopped']);\n };\n const _handle_hls_started = data => {\n setIsHls(true);\n eventEmitter.emit(events['hls-started'], data);\n };\n const _handle_hls_stopped = () => {\n setIsHls(false);\n eventEmitter.emit(events['hls-stopped']);\n };\n const _handle_video_state_changed = data => {\n eventEmitter.emit(events['video-state-changed'], data);\n };\n const _handle_video_seeked = data => {\n eventEmitter.emit(events['video-seeked'], data);\n };\n\n const _handle_webcam_requested = data => {\n eventEmitter.emit(events['webcam-requested'], data);\n };\n\n const _handle_mic_requested = data => {\n eventEmitter.emit(events['mic-requested'], data);\n };\n\n const _handle_meeting_joined = data => {\n joinedOnFirstRender.current = true;\n setMessages(s => [...s, ...data.messages]);\n eventEmitter.emit(events['meeting-joined'], data);\n setIsMeetingJoined(true);\n };\n\n const _handle_meeting_left = () => {\n eventEmitter.emit(events['meeting-left']);\n\n const meeting = meetingRef.current;\n\n if (meeting) {\n if (typeof meeting?.off === 'function') {\n meeting.off('meeting-state-changed', _handle_meeting_state_changed);\n meeting.off('participant-joined', _handle_participant_joined);\n meeting.off('participant-left', _handle_participant_left);\n meeting.off('presenter-changed', _handle_presenter_changed);\n meeting.off(\n 'main-participant-changed',\n _handle_main_participant_changed\n );\n meeting.off('speaker-changed', _handle_speaker_changed);\n meeting.off('entry-requested', _handle_entry_requested);\n meeting.off('entry-responded', _handle_entry_responded);\n meeting.off('chat-message', _handle_chat_message);\n meeting.off('recording-started', _handle_recording_started);\n meeting.off('recording-stopped', _handle_recording_stopped);\n meeting.off('meeting-joined', _handle_meeting_joined);\n meeting.off('meeting-left', _handle_meeting_left);\n meeting.off('livestream-started', _handle_live_stream_started);\n meeting.off('livestream-stopped', _handle_live_stream_stopped);\n meeting.off('video-state-changed', _handle_video_state_changed);\n meeting.off('video-seeked', _handle_video_seeked);\n meeting.off('webcam-requested', _handle_webcam_requested);\n meeting.off('mic-requested', _handle_mic_requested);\n meeting.off('pin-state-changed', _handle_pin_state_changed);\n meeting.off('connection-open', _handle_connection_open);\n meeting.off('connection-close', _handle_connection_close);\n meeting.off('switch-meeting', _handle_switch_meeting);\n meeting.off('error', _handle_error);\n meeting.off('hls-started', _handle_hls_started);\n meeting.off('hls-stopped', _handle_hls_stopped);\n meeting.off('recording-state-changed', _handle_recording_state_changed);\n meeting.off(\n 'livestream-state-changed',\n _handle_livestream_state_changed\n );\n meeting.off('hls-state-changed', _handle_hls_state_changed);\n meeting.off(\n 'participant-mode-changed',\n _handel_participant_mode_changed\n );\n meeting.off(\n 'transcription-state-changed',\n _handle_transcription_state_changed\n );\n }\n\n if (typeof meeting?.localParticipant?.off === 'function') {\n meeting.localParticipant.off(\n 'stream-enabled',\n _handle_localParticipant_stream_enabled\n );\n\n meeting.localParticipant.off(\n 'stream-disabled',\n _handle_localParticipant_stream_disabled\n );\n }\n\n resetStates();\n }\n };\n\n const _handle_pin_state_changed = ({ participantId, state, pinnedBy }) => {\n setPinnedParticipants(pinnedParticipants => {\n if (!state.cam && !state.share) {\n pinnedParticipants.delete(participantId);\n } else {\n pinnedParticipants.set(participantId, state);\n }\n\n const pinnedParticipantsToSet = new Map(pinnedParticipants);\n\n return pinnedParticipantsToSet;\n });\n\n eventEmitter.emit(events['pin-state-changed'], {\n participantId,\n state,\n pinnedBy\n });\n };\n\n const _handle_connection_open = connection => {\n setConnections(s => {\n s.set(connection.id, connection);\n const connectionsToSet = new Map(s);\n return connectionsToSet;\n });\n eventEmitter.emit(events['connection-open'], connection);\n };\n\n const _handle_connection_close = connectionId => {\n setConnections(s => {\n s.delete(connectionId);\n const newConnections = new Map(s);\n return newConnections;\n });\n eventEmitter.emit(events['connection-close'], connectionId);\n };\n\n const _handle_switch_meeting = d => {\n eventEmitter.emit(events['switch-meeting'], d);\n };\n const _handle_error = data => {\n eventEmitter.emit(events['error'], data);\n };\n\n const _handle_recording_state_changed = data => {\n setRecordingState(data?.status);\n eventEmitter.emit(events['recording-state-changed'], data);\n };\n const _handle_livestream_state_changed = data => {\n setLivestreamState(data?.status);\n eventEmitter.emit(events['livestream-state-changed'], data);\n };\n const _handle_hls_state_changed = data => {\n setHlsState(data?.status);\n if (data?.status == 'HLS_PLAYABLE') {\n setHlsUrls({\n downstreamUrl: data?.downstreamUrl,\n playbackHlsUrl: data?.playbackHlsUrl,\n livestreamUrl: data?.livestreamUrl\n });\n } else if (data?.status == 'HLS_STOPPED') {\n setHlsUrls({\n downstreamUrl: null,\n playbackHlsUrl: null,\n livestreamUrl: null\n });\n }\n eventEmitter.emit(events['hls-state-changed'], data);\n };\n\n const _handle_meeting_state_changed = data => {\n eventEmitter.emit(events['meeting-state-changed'], data);\n };\n\n const _handle_transcription_state_changed = data => {\n setTranscriptionState(data?.status);\n eventEmitter.emit(events['transcription-state-changed'], data);\n };\n\n const _handle_transcription_text = data => {\n eventEmitter.emit(events['transcription-text'], data);\n };\n\n const _handel_participant_mode_changed = data => {\n setParticipants(participants => {\n const part = participants.get(data.participantId);\n part.mode = data.mode;\n participants.set(part.id, part);\n const participantsToSet = new Map(participants);\n return participantsToSet;\n });\n\n // Update Local Participant Object\n if (data.participantId === meetingRef?.current?.localParticipant?.id) {\n setLocalParticipant(participant => {\n participant.mode = data.mode;\n return participant;\n });\n }\n\n eventEmitter.emit(events['participant-mode-changed'], data);\n };\n\n const join = () => {\n const meeting = VideoSDK && VideoSDK.initMeeting(configRef.current);\n setMeeting(meeting);\n const { localParticipant, participants } = meeting;\n participants.set(localParticipant.id, localParticipant);\n setParticipants(participants);\n setLocalParticipant(localParticipant);\n meeting.on('meeting-state-changed', _handle_meeting_state_changed);\n meeting.on('participant-joined', _handle_participant_joined);\n meeting.on('participant-left', _handle_participant_left);\n meeting.on('presenter-changed', _handle_presenter_changed);\n meeting.on('main-participant-changed', _handle_main_participant_changed);\n meeting.on('speaker-changed', _handle_speaker_changed);\n meeting.on('entry-requested', _handle_entry_requested);\n meeting.on('entry-responded', _handle_entry_responded);\n meeting.on('chat-message', _handle_chat_message);\n meeting.on('recording-started', _handle_recording_started);\n meeting.on('recording-stopped', _handle_recording_stopped);\n meeting.on('meeting-joined', _handle_meeting_joined);\n meeting.on('meeting-left', _handle_meeting_left);\n meeting.on('livestream-started', _handle_live_stream_started);\n meeting.on('livestream-stopped', _handle_live_stream_stopped);\n meeting.on('video-state-changed', _handle_video_state_changed);\n meeting.on('video-seeked', _handle_video_seeked);\n meeting.on('webcam-requested', _handle_webcam_requested);\n meeting.on('mic-requested', _handle_mic_requested);\n meeting.on('pin-state-changed', _handle_pin_state_changed);\n\n meeting.on('connection-open', _handle_connection_open);\n meeting.on('connection-close', _handle_connection_close);\n meeting.on('switch-meeting', _handle_switch_meeting);\n meeting.on('error', _handle_error);\n meeting.on('hls-started', _handle_hls_started);\n meeting.on('hls-stopped', _handle_hls_stopped);\n meeting.on('recording-state-changed', _handle_recording_state_changed);\n meeting.on('livestream-state-changed', _handle_livestream_state_changed);\n meeting.on('hls-state-changed', _handle_hls_state_changed);\n meeting.on('participant-mode-changed', _handel_participant_mode_changed);\n meeting.on(\n 'transcription-state-changed',\n _handle_transcription_state_changed\n );\n meeting.on('transcription-text', _handle_transcription_text);\n\n meeting.localParticipant.on(\n 'stream-enabled',\n _handle_localParticipant_stream_enabled\n );\n meeting.localParticipant.on(\n 'stream-disabled',\n _handle_localParticipant_stream_disabled\n );\n meeting.join();\n };\n\n const leave = () => {\n const meeting = meetingRef.current;\n\n if (meeting) {\n meeting.leave();\n }\n };\n\n const end = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.end();\n }\n };\n const startRecording = (webhookUrl, awsDirPath, config, transcription) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.startRecording(webhookUrl, awsDirPath, config, transcription);\n }\n };\n const stopRecording = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n const isRecording = isRecordingRef.current;\n if (isRecording) {\n meeting.stopRecording();\n }\n }\n };\n const unmuteMic = (customAudioTrack = undefined) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.unmuteMic(customAudioTrack);\n }\n };\n const muteMic = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.muteMic();\n }\n };\n const toggleMic = (customAudioTrack = undefined) => {\n const localMicOn = localMicOnRef.current;\n\n if (localMicOn) {\n muteMic();\n } else {\n unmuteMic(customAudioTrack);\n }\n };\n const disableWebcam = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.disableWebcam();\n }\n };\n const enableWebcam = (customVideoTrack = undefined) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.enableWebcam(customVideoTrack);\n }\n };\n const toggleWebcam = (customVideoTrack = undefined) => {\n const localWebcamOn = localWebcamOnRef.current;\n\n if (localWebcamOn) {\n disableWebcam();\n } else {\n enableWebcam(customVideoTrack);\n }\n };\n const disableScreenShare = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.disableScreenShare();\n }\n };\n const enableScreenShare = (customScreenShareTrack = undefined) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.enableScreenShare(customScreenShareTrack);\n }\n };\n\n const toggleScreenShare = (customScreenShareTrack = undefined) => {\n const localScreenShareOn = localScreenShareOnRef.current;\n\n if (localScreenShareOn) {\n disableScreenShare();\n } else {\n enableScreenShare(customScreenShareTrack);\n }\n };\n\n const changeMode = mode => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.changeMode(mode);\n }\n };\n\n const sendChatMessage = text => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.sendChatMessage(text);\n }\n };\n const respondEntry = (participantId, decision) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.respondEntry(participantId, decision);\n }\n };\n const getMics = async () => {\n const meeting = meetingRef.current;\n if (meeting) {\n return await meeting.getMics();\n }\n };\n const getWebcams = async () => {\n const meeting = meetingRef.current;\n if (meeting) {\n return await meeting.getWebcams();\n }\n };\n const changeWebcam = obj => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.changeWebcam(obj);\n }\n };\n const replaceWebcamStream = stream => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.replaceWebcamStream(stream);\n }\n };\n const changeMic = obj => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.changeMic(obj);\n }\n };\n const startVideo = ({ link }) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.startVideo({ link });\n }\n };\n\n const stopVideo = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.stopVideo();\n }\n };\n\n const resumeVideo = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.resumeVideo();\n }\n };\n\n const pauseVideo = ({ currentTime }) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.pauseVideo({ currentTime });\n }\n };\n\n const seekVideo = ({ currentTime }) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.seekVideo({ currentTime });\n }\n };\n\n const startLivestream = (streamInfo, config) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.startLivestream(streamInfo, config);\n }\n };\n\n const stopLivestream = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.stopLivestream();\n }\n };\n\n const connectTo = async ({ meetingId, payload }) => {\n const meeting = meetingRef.current;\n if (meeting) {\n await meeting.connectTo({ meetingId, payload });\n }\n };\n\n const startHls = (config, transcription) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.startHls(config, transcription);\n }\n };\n\n const stopHls = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.stopHls();\n }\n };\n\n const initSDK = () => {\n VideoSDK.config(tokenRef.current);\n\n if (deviceInfo) {\n VideoSDK.analytics(deviceInfo);\n } else {\n VideoSDK.analytics({\n sdkType: 'react-web',\n sdkVersion: reactSDKVersion\n });\n }\n\n if (joinWithoutUserInteraction) {\n join();\n }\n };\n\n useEffect(() => {\n initSDK();\n }, []);\n\n useEffect(() => {\n if (reinitialiseMeetingOnConfigChange && joinedOnFirstRender.current) {\n leave();\n initSDK();\n !joinWithoutUserInteraction && join();\n }\n }, [config.meetingId, token, reinitialiseMeetingOnConfigChange]);\n\n return (\n <MeetingProviderContex.Provider\n value={{\n meetingId: meeting?.id,\n meeting,\n baseUrl: meeting?.baseUrl,\n localParticipant,\n mainParticipant,\n activeSpeakerId,\n participants,\n presenterId,\n localMicOn,\n localWebcamOn,\n localScreenShareOn,\n messages,\n isRecording,\n isLiveStreaming,\n pinnedParticipants,\n connections,\n isHls,\n recordingState,\n livestreamState,\n hlsState,\n hlsUrls,\n transcriptionState,\n isMeetingJoined,\n selectedCameraDevice: meeting?.selectedCameraDevice,\n selectedMicrophoneDevice: meeting?.selectedMicrophoneDevice,\n //\n join,\n leave,\n end,\n //\n startRecording,\n stopRecording,\n //\n sendChatMessage,\n respondEntry,\n //\n muteMic,\n unmuteMic,\n toggleMic,\n //\n disableWebcam,\n enableWebcam,\n toggleWebcam,\n //\n disableScreenShare,\n enableScreenShare,\n toggleScreenShare,\n //\n getMics,\n getWebcams,\n changeWebcam,\n replaceWebcamStream,\n changeMic,\n changeMode,\n startVideo,\n stopVideo,\n resumeVideo,\n pauseVideo,\n seekVideo,\n startLivestream,\n stopLivestream,\n connectTo,\n\n startHls,\n stopHls\n }}\n >\n {children}\n </MeetingProviderContex.Provider>\n );\n};\n\nexport default MeetingProvider;\n","import { useEffect, useState, useMemo } from 'react';\nimport { useMeeting } from '../meeting/meetingProviderContextDef';\nimport { eventEmitter, events } from '../utils';\n\n/**\n *\n * @param {string} participantId\n * @param {{\n * onStreamDisabled?: Function,\n * onStreamEnabled?: Function,\n * onMediaStatusChanged?: Function,\n * onVideoQualityChanged?: Function,\n * }} options\n *\n * @returns {{\n * displayName: string;\n * participant: Participant;\n * webcamStream: Stream;\n * micStream: Stream;\n * screenShareStream: Stream;\n * screenShareAudioStream: Stream;\n * webcamOn: boolean;\n * micOn: boolean;\n * screenShareOn: boolean;\n * isLocal: boolean;\n * isActiveSpeaker: boolean;\n * isMainParticipant: boolean;\n * pinState: any;\n * mode: \"CONFERENCE\" | \"VIEWER\";\n * metaData: object;\n * consumeMicStreams: () => void;\n * consumeWebcamStreams: () => void;\n * stopConsumingMicStreams: () => void;\n * stopConsumingWebcamStreams: () => void;\n * setQuality: (quality: \"low\" | \"med\" | 'high') => void;\n * setViewPort: (width: number, height: number) => void;\n * enableMic: () => void;\n * disableMic: () => void;\n * enableWebcam: () => void;\n * disableWebcam: () => void;\n * remove: () => void;\n * captureImage: ({height,width}) => Promise<string | null>;\n * pin: (data: \"SHARE_AND_CAM\" | \"CAM\" | \"SHARE\") => void;\n * unpin: (data: \"SHARE_AND_CAM\" | \"CAM\" | \"SHARE\") => void;\n * switchTo: ({ meetingId, payload, token }: {\n * meetingId: string;\n * payload: string;\n * token: string;\n * }) => Promise<void>;\n * getAudioStats: () => Promise<[{\n * bitrate: number,\n * rtt: number,\n * network:String,\n * codec: String,\n * jitter: number,\n * limitation: Object,\n * totalPackets: number,\n * packetsLost: number,\n * concealmentEvents: number,\n * insertedSamplesForDecelaration: number,\n * removedSamplesForAccelaration: number,\n * size:Object\n * }]>;\n * getVideoStats: () => Promise<[{\n * bitrate: number,\n * rtt: number,\n * network:String,\n * codec: String,\n * jitter: number,\n * limitation: Object,\n * totalPackets: number,\n * packetsLost: number,\n * concealmentEvents: number,\n * insertedSamplesForDecelaration: number,\n * removedSamplesForAccelaration: number,\n * size:Object,\n * currentSpatialLayer: number,\n * currentTemporalLayer: number,\n * preferredSpatialLayer: number,\n * preferredTemporalLayer: number\n * }]>;\n * getShareStats: () => Promise<[{\n * bitrate: number,\n * rtt: number,\n * network:String,\n * codec: String,\n * jitter: number,\n * limitation: Object,\n * totalPackets: number,\n * packetsLost: number,\n * concealmentEvents: number,\n * insertedSamplesForDecelaration: number,\n * removedSamplesForAccelaration: number,\n * size:Object,\n * currentSpatialLayer: number,\n * currentTemporalLayer: number,\n * preferredSpatialLayer: number,\n * preferredTemporalLayer: number\n * }]>;\n *}}\n *\n */\nconst useParticipant = (\n participantId,\n {\n onStreamEnabled = () => {},\n onStreamDisabled = () => {},\n onMediaStatusChanged = () => {},\n onVideoQualityChanged = () => {}\n } = {}\n) => {\n const [webcamStream, setwebcamStream] = useState(null);\n const [micStream, setMicStream] = useState(null);\n const [screenShareStream, setScreenShareStream] = useState(null);\n const [screenShareAudioStream, setScreenShareAudioStream] = useState(null);\n\n const meeting = useMeeting();\n\n const {\n participants,\n localParticipant,\n activeSpeakerId,\n mainParticipant,\n pinState\n } = useMemo(() => {\n const participants = meeting?.participants;\n const localParticipant = meeting?.localParticipant;\n const activeSpeakerId = meeting?.activeSpeakerId;\n const mainParticipant = meeting?.mainParticipant;\n const pinState = meeting?.pinnedParticipants?.get(participantId) || {\n cam: false,\n share: false\n };\n\n // const micOn = meeting?.participants?.get(participantId).micOn || false;\n // const webcamOn = meeting?.participants?.get(participantId).webcamOn || false;\n\n return {\n participants,\n localParticipant,\n activeSpeakerId,\n mainParticipant,\n pinState\n };\n }, [meeting]);\n\n /**\n * @type {Participant}\n */\n const participant = participants?.get(participantId);\n\n const [webcamOn, setWebcamOn] = useState(participant?.webcamOn);\n const [micOn, setMicOn] = useState(participant?.micOn);\n const [mode, setMode] = useState(participant?.mode);\n\n const setTrack = stream => {\n if (stream.track.readyState === 'live') {\n switch (stream.kind) {\n case 'video':\n if (webcamStream != null) {\n setwebcamStream(null);\n }\n setwebcamStream(stream);\n break;\n case 'audio':\n if (micStream != null) {\n setMicStream(null);\n }\n setMicStream(stream);\n break;\n case 'share':\n if (screenShareStream != null) {\n setScreenShareStream(null);\n }\n setScreenShareStream(stream);\n break;\n case 'shareAudio':\n if (screenShareAudioStream != null) {\n setScreenShareAudioStream(null);\n }\n setScreenShareAudioStream(stream);\n break;\n default:\n break;\n }\n }\n };\n\n const unSetTrack = stream => {\n switch (stream.kind) {\n case 'video':\n setwebcamStream(null);\n break;\n case 'audio':\n setMicStream(null);\n break;\n case 'share':\n setScreenShareStream(null);\n break;\n case 'shareAudio':\n setScreenShareAudioStream(null);\n break;\n default:\n break;\n }\n };\n\n const _handleStreamEnabled = stream => {\n setTrack(stream);\n onStreamEnabled(stream);\n };\n\n const _handleParticipantModeChanged = data => {\n if (participantId === data.participantId) {\n setMode(data.mode);\n }\n };\n\n const _handleStreamDisabled = stream => {\n unSetTrack(stream);\n onStreamDisabled(stream);\n };\n\n const _handleVideoQualityChanged = data => {\n const { peerId, prevQuality, currentQuality } = data;\n onVideoQualityChanged({ peerId, prevQuality, currentQuality });\n };\n\n const _handleMediaStatusChanged = data => {\n const { kind, peerId, newStatus } = data;\n if (kind == 'audio') {\n setMicOn(newStatus);\n } else if (kind == 'video') {\n setWebcamOn(newStatus);\n }\n onMediaStatusChanged({ kind, peerId, newStatus });\n };\n\n const setQuality = quality => {\n participant?.setQuality(quality);\n };\n\n const setViewPort = (width, height) => {\n participant?.setViewPort(width, height);\n };\n\n const enableMic = () => {\n participant?.enableMic();\n };\n const disableMic = () => {\n participant?.disableMic();\n };\n const enableWebcam = () => {\n participant?.enableWebcam();\n };\n const disableWebcam = () => {\n participant?.disableWebcam();\n };\n const pin = data => {\n participant?.pin(data);\n };\n const unpin = data => {\n participant?.unpin(data);\n };\n const remove = () => {\n participant?.remove();\n };\n const captureImage = async ({ height, width } = {}) => {\n const base64Data = await participant?.captureImage({ height, width });\n return base64Data;\n };\n const getAudioStats = async () => {\n return participant?.getAudioStats();\n };\n const getVideoStats = async () => {\n return participant?.getVideoStats();\n };\n const getShareStats = async () => {\n return participant?.getShareStats();\n };\n\n const consumeWebcamStreams = () => {\n participant?.consumeWebcamStreams();\n };\n const consumeMicStreams = () => {\n participant?.consumeMicStreams();\n };\n const stopConsumingWebcamStreams = () => {\n participant?.stopConsumingWebcamStreams();\n };\n const stopConsumingMicStreams = () => {\n participant?.stopConsumingMicStreams();\n };\n const switchTo = async data => {\n await participant?.switchTo(data);\n };\n\n useEffect(() => {\n const streams = participant?.streams;\n\n if (streams) {\n streams.forEach(stream => {\n setTrack(stream);\n });\n }\n\n if (participant?.micOn) {\n setMicOn(micOn);\n }\n\n if (participant?.webcamOn) {\n setWebcamOn(webcamOn);\n }\n\n participant?.on('stream-enabled', _handleStreamEnabled);\n\n participant?.on('stream-disabled', _handleStreamDisabled);\n\n participant?.on('media-status-changed', _handleMediaStatusChanged);\n\n participant?.on('video-quality-changed', _handleVideoQualityChanged);\n\n eventEmitter.on(\n events['participant-mode-changed'],\n _handleParticipantModeChanged\n );\n\n return () => {\n participant?.off('stream-enabled', _handleStreamEnabled);\n\n participant?.off('stream-disabled', _handleStreamDisabled);\n\n participant?.off('media-status-changed', _handleMediaStatusChanged);\n\n participant?.off('video-quality-changed', _handleVideoQualityChanged);\n\n eventEmitter.off(\n events['participant-mode-changed'],\n _handleParticipantModeChanged\n );\n };\n }, [participant]);\n\n return {\n displayName: participant?.displayName,\n participant,\n webcamStream,\n micStream,\n screenShareStream,\n screenShareAudioStream,\n webcamOn: webcamOn || !!webcamStream,\n micOn: micOn || !!micStream,\n mode: mode,\n metaData: participant?.metaData,\n\n screenShareOn: !!screenShareStream,\n isLocal: localParticipant?.id === participantId,\n isActiveSpeaker: activeSpeakerId === participantId,\n isMainParticipant: mainParticipant?.id === participantId,\n pinState,\n\n //\n consumeMicStreams,\n consumeWebcamStreams,\n stopConsumingMicStreams,\n stopConsumingWebcamStreams,\n setQuality,\n setViewPort,\n enableMic,\n disableMic,\n enableWebcam,\n disableWebcam,\n captureImage,\n pin,\n unpin,\n remove,\n switchTo,\n getAudioStats,\n getVideoStats,\n getShareStats\n };\n};\n\nexport default useParticipant;\n","import { useEffect, useState, useMemo } from 'react';\nimport { useMeeting } from '../meeting/meetingProviderContextDef';\n/**\n *\n * @param {string} connectionId\n * @param {{onMeeting:{\n * onParticipantJoined?: Function,\n * onParticipantLeft?: Function,\n * onChatMessage?: Function\n * }}}\n * @returns {{\n * connection: {\n * id: string;\n * close: Function;\n * payload: string;\n * meeting: {\n * id: string;\n * sendChatMessage: Function;\n * end: Function;\n * participants: Array<ConnectionParticipant>;\n * };\n * }}}\n */\nconst useConnection = (\n connectionId,\n { onMeeting } = {\n onMeeting: {\n onParticipantJoined: () => {},\n onParticipantLeft: () => {},\n onChatMessage: () => {}\n }\n }\n) => {\n const onParticipantJoined = onMeeting?.onParticipantJoined;\n const onParticipantLeft = onMeeting?.onParticipantLeft;\n const onChatMessage = onMeeting?.onChatMessage;\n\n const meeting = useMeeting();\n\n const { connection, connectionParticipants } = useMemo(() => {\n const connection = meeting?.connections.get(connectionId);\n\n if (!connection) {\n throw new Error('connectionId not found');\n }\n\n const connectionParticipants = new Map(connection.meeting.participants);\n\n return {\n connection,\n connectionParticipants\n };\n }, [meeting]);\n\n const [_connectionParticipants, setConnectionParticipants] = useState(\n new Map(connectionParticipants)\n );\n\n const _handleParticipantJoined = participant => {\n setConnectionParticipants(s => {\n s.set(participant.id, participant);\n const participantsToSet = new Map(s);\n return participantsToSet;\n });\n onParticipantJoined(participant);\n };\n const _handleParticipantLeft = participantId => {\n setConnectionParticipants(s => {\n s.delete(participantId);\n const newParticipants = new Map(s);\n return newParticipants;\n });\n onParticipantLeft(participantId);\n };\n\n const _handleChatMessage = data => {\n onChatMessage(data);\n };\n\n useEffect(() => {\n connection?.meeting.on('participant-joined', _handleParticipantJoined);\n connection?.meeting.on('participant-left', _handleParticipantLeft);\n connection?.meeting.on('chat-message', _handleChatMessage);\n\n return () => {\n connection?.meeting.off('participant-joined', _handleParticipantJoined);\n connection?.meeting.off('participant-left', _handleParticipantLeft);\n connection?.meeting.off('chat-message', _handleChatMessage);\n };\n }, [connection]);\n\n return {\n connection: {\n id: connection.id,\n close: connection.close,\n payload: connection.payload,\n meeting: {\n id: connection.meeting.id,\n sendChatMessage: connection.meeting.sendChatMessage,\n end: connection.meeting.end,\n participants: _connectionParticipants\n }\n }\n };\n};\n\nexport default useConnection;\n","import { useEffect, useRef, useState } from 'react';\nimport { useMeeting } from '../meeting/meetingProviderContextDef';\n\n/**\n *\n * @param {string} topic\n * @param {{\n * onMessageReceived?: Function,\n * onOldMessagesReceived?: Function,\n * }} options\n * @returns {{\n * publish: (message: string,{persist: boolean, sendOnly: Array<String>}, payload: object) => void\n * messages: Array<{\n * id: string,\n * message: string,\n * senderId: string,\n * senderName: string,\n * timestamp: string,\n * topic: string,\n * payload: object,\n * }>\n * }}\n */\nconst usePubSub = (\n topic,\n { onMessageReceived = () => {}, onOldMessagesReceived = () => {} } = {}\n) => {\n const { meeting, isMeetingJoined } = useMeeting();\n const [messages, setMessages] = useState([]);\n const isSubscribed = useRef(false);\n\n /**\n *\n * @param {string} message\n * @param {{persist: boolean}} options\n * @param {object} payload\n * @param {Array<String>} sendOnly\n */\n const publish = (message, options, payload) => {\n if (meeting) {\n meeting.pubSub.publish(topic, message, options, payload);\n }\n };\n\n const _handlePubSub = data => {\n setMessages(s => [...s, data]);\n onMessageReceived(data);\n };\n\n const subscribeToPubsub = async meeting => {\n const data = await meeting?.pubSub?.subscribe(topic, _handlePubSub);\n if (data) {\n onOldMessagesReceived(data.messages);\n setMessages(data.messages);\n }\n };\n\n useEffect(() => {\n if (meeting && !isSubscribed.current && isMeetingJoined) {\n isSubscribed.current = true;\n subscribeToPubsub(meeting);\n\n return () => {\n meeting?.pubSub?.unsubscribe(topic, _handlePubSub);\n };\n }\n }, [meeting, isMeetingJoined]);\n\n return { publish, messages };\n};\n\nexport default usePubSub;\n","import { useMeeting } from '../meeting/meetingProviderContextDef';\n\nconst useFile = () => {\n const mMeeting = useMeeting();\n\n const uploadBase64File = async ({ base64Data, token, fileName }) => {\n return await mMeeting.meeting.uploadBase64File({\n base64Data,\n token,\n fileName\n });\n };\n\n const fetchBase64File = async ({ url, token }) => {\n return await mMeeting.meeting.fetchBase64File({ url, token });\n };\n\n return { uploadBase64File, fetchBase64File };\n};\n\nexport default useFile;\n","import { VideoSDK } from '@videosdk.live/js-sdk';\nimport { useEffect } from 'react';\n\n/**\n *\n * @param {{\n * onDeviceChanged?: Function | undefined,\n * }}\n *\n * @returns {{\n * getDevices: () => Promise<Array<DeviceInfo>>;\n * getCameras: () => Promise<Array<CameraDeviceInfo>>;\n * getMicrophones: () => Promise<Array<MicrophoneDeviceInfo>>;\n * getPlaybackDevices: () => Promise<Array<PlaybackDeviceInfo>>;\n * checkPermissions: (permissions? : Permission) => Promise<Map<string, boolean>>;\n * requestPermission: (permissions? : Permission) => Promise<Map<string, boolean>>;\n * }}\n *\n */\n\nconst useMediaDevice = ({ onDeviceChanged = () => {} } = {}) => {\n /**\n *\n * @returns {Promise<Array<DeviceInfo>>}\n */\n const getDevices = async () => {\n return await VideoSDK.getDevices();\n };\n\n /**\n *\n * @returns {Promise<Array<CameraDeviceInfo>>}\n */\n const getCameras = async () => {\n return await VideoSDK.getCameras();\n };\n\n /**\n *\n * @returns {Promise<Array<MicrophoneDeviceInfo>>}\n */\n const getMicrophones = async () => {\n return await VideoSDK.getMicrophones();\n };\n\n /**\n *\n * @returns {Promise<Array<PlaybackDeviceInfo>>}\n */\n const getPlaybackDevices = async () => {\n return await VideoSDK.getPlaybackDevices();\n };\n\n /**\n *\n * @param {permissions?: Permission}\n * @returns {Promise<Map<string, boolean>>}\n */\n const checkPermissions = async (permissions = undefined) => {\n return await VideoSDK.checkPermissions(permissions);\n };\n\n /**\n *\n * @param {permission? : Permission}\n * @returns {Promise<Map<string, boolean>>}\n */\n const requestPermission = async (permissions = undefined) => {\n return await VideoSDK.requestPermission(permissions);\n };\n\n useEffect(() => {\n VideoSDK.on('device-changed', onDeviceChanged);\n\n return () => {\n VideoSDK.off('device-changed', onDeviceChanged);\n };\n }, []);\n\n return {\n getDevices,\n getCameras,\n getMicrophones,\n getPlaybackDevices,\n requestPermission,\n checkPermissions\n };\n};\n\nexport default useMediaDevice;\n","import { useMeeting } from '../meeting/meetingProviderContextDef';\nimport { useEffect } from 'react';\nimport { eventEmitter, events } from '../utils';\n\n/**\n *\n * @param {{\n * onTranscriptionStateChanged?: Function,\n * onTranscriptionText?: Function,\n * }} options\n * @returns {{\n * startTranscription: ( data: Object ) => void\n * stopTranscription: () => void\n * }}\n */\nconst useTranscription = ({\n onTranscriptionStateChanged = () => {},\n onTranscriptionText = () => {}\n} = {}) => {\n const mMeeting = useMeeting();\n\n useEffect(() => {\n // on event listeners\n eventEmitter.on(\n events['transcription-state-changed'],\n onTranscriptionStateChanged\n );\n\n eventEmitter.on(events['transcription-text'], onTranscriptionText);\n\n // off event listeners\n return () => {\n eventEmitter.off(\n events['transcription-state-changed'],\n onTranscriptionStateChanged\n );\n eventEmitter.off(events['transcription-text'], onTranscriptionText);\n };\n }, []);\n\n /**\n * @param {{webhookUrl?:string, modelConfig?:any}} config?\n */\n const startTranscription = async config => {\n return await mMeeting.meeting.startTranscription(config);\n };\n\n const stopTranscription = async () => {\n return await mMeeting.meeting.stopTranscription();\n };\n\n return { startTranscription, stopTranscription };\n};\n\nexport default useTranscription;\n","import MeetingProvider from './meeting/MeetingProvider';\nimport {\n MeetingConsumer,\n useMeeting\n} from './meeting/meetingProviderContextDef';\nimport useParticipant from './participant/useParticipant';\nimport useConnection from './connection/useConnection';\nimport usePubSub from './pubSub/usePubSub';\nimport useFile from './upload/useFile';\nimport useMediaDevice from './useMediaDevice';\nimport useTranscription from './transcription/transcription';\nimport {\n VideoSDK,\n CameraDeviceInfo,\n MicrophoneDeviceInfo,\n DeviceInfo\n} from '@videosdk.live/js-sdk';\n\nconst Constants = VideoSDK.Constants;\n\n/**\n * @param {{\n * cameraId?: string | undefined,\n * encoderConfig?: \"h90p_w160p\" | \"h180p_w320p\" | \"h216p_w384p\"\n * | \"h360p_w640p\" | \"h540p_w960p\" | \"h720p_w1280p\" | \"h1080p_w1920p\"\n * | \"h1440p_w2560p\" | \"h2160p_w3840p\" | \"h120p_w160p\" | \"h180p_w240p\"\n * | \"h240p_w320p\" | \"h360p_w480p\" | \"h480p_w640p\" | \"h540p_w720p\"\n * | \"h720p_w960p\" | \"h1080p_w1440p\" | \"h1440p_w1920p\" | undefined,\n * facingMode?: \"front\" | \"environment\" | undefined,\n * optimizationMode?: \"text\"| \"motion\" | \"detail\" | undefined\n * multiStream?: boolean\n * }}\n */\nconst createCameraVideoTrack = async ({\n cameraId = undefined,\n encoderConfig = undefined,\n facingMode = undefined,\n optimizationMode = undefined,\n multiStream = true\n}) => {\n return await VideoSDK.createCameraVideoTrack({\n cameraId,\n encoderConfig,\n facingMode,\n optimizationMode,\n multiStream\n });\n};\n\n/**\n * @param {{\n * encoderConfig?: \"h360p_30fps\" | \"h720p_5fps\" | \"h720p_15fps\"\n * | \"h1080p_15fps\" | \"h1080p_30fps\" | undefined,\n * optimizationMode?: \"text\"| \"motion\" | \"detail\" | undefined,\n * withAudio?:\"enable\" | \"disable\"\n * }}\n */\nconst createScreenShareVideoTrack = async ({\n encoderConfig = undefined,\n optimizationMode = undefined,\n withAudio = 'enable'\n}) => {\n return await VideoSDK.createScreenShareVideoTrack({\n encoderConfig,\n optimizationMode,\n withAudio\n });\n};\n\n/**\n * @param {{\n * noiseConfig?: {\n * echoCancellation: boolean,\n * autoGainControl: boolean,\n * noiseSuppression: boolean\n * } | undefined,\n * encoderConfig?: \"speech_low_quality\"\n * | \"speech_standard\" | \"music_standard\"\n * | \"standard_stereo\" | \"high_quality\"\n * | \"high_quality_stereo\" | undefined\n * microphoneId?: string | undefined\n * }}\n */\nconst createMicrophoneAudioTrack = async ({\n noiseConfig = undefined,\n encoderConfig = undefined,\n microphoneId = undefined\n}) => {\n return await VideoSDK.createMicrophoneAudioTrack({\n noiseConfig,\n encoderConfig,\n microphoneId\n });\n};\n\n/**\n * @param {{\n * timeoutDuration?: number | undefined,\n * }}\n * @returns {Promise<{downloadSpeed: number,uploadSpeed: number}> }\n */\nconst getNetworkStats = async ({ timeoutDuration } = {}) => {\n return await VideoSDK.getNetworkStats({ timeoutDuration });\n};\n\nexport {\n MeetingProvider,\n useMeeting,\n useTranscription,\n useParticipant,\n usePubSub,\n useFile,\n MeetingConsumer,\n useConnection,\n Constants,\n createCameraVideoTrack,\n createMicrophoneAudioTrack,\n createScreenShareVideoTrack,\n useMediaDevice,\n getNetworkStats,\n CameraDeviceInfo,\n MicrophoneDeviceInfo,\n DeviceInfo\n};\n"],"names":["eventPrifix","events","error","eventEmitter","EventEmitter","setMaxListeners","MeetingProviderContex","createContext","useMeeting","_temp","_ref","_ref$onParticipantJoi","onParticipantJoined","_ref$onParticipantLef","onParticipantLeft","_ref$onSpeakerChanged","onSpeakerChanged","_ref$onPresenterChang","onPresenterChanged","_ref$onMainParticipan","onMainParticipantChanged","_ref$onEntryRequested","onEntryRequested","_ref$onEntryResponded","onEntryResponded","_ref$onRecordingStart","onRecordingStarted","_ref$onRecordingStopp","onRecordingStopped","_ref$onChatMessage","onChatMessage","_ref$onMeetingJoined","onMeetingJoined","_ref$onMeetingLeft","onMeetingLeft","_ref$onLiveStreamStar","onLiveStreamStarted","_ref$onLiveStreamStop","onLiveStreamStopped","_ref$onVideoStateChan","onVideoStateChanged","_ref$onVideoSeeked","onVideoSeeked","_ref$onWebcamRequeste","onWebcamRequested","_ref$onMicRequested","onMicRequested","_ref$onPinStateChange","onPinStateChanged","_ref$onConnectionOpen","onConnectionOpen","_ref$onConnetionClose","onConnetionClose","_ref$onSwitchMeeting","onSwitchMeeting","_ref$onError","onError","_ref$onHlsStarted","onHlsStarted","_ref$onHlsStopped","onHlsStopped","_ref$onHlsStateChange","onHlsStateChanged","_ref$onRecordingState","onRecordingStateChanged","_ref$onLivestreamStat","onLivestreamStateChanged","_ref$onMeetingStateCh","onMeetingStateChanged","_ref$onParticipantMod","onParticipantModeChanged","useEffect","on","off","useContext","MeetingConsumer","_ref2","children","_ref2$onParticipantJo","_ref2$onParticipantLe","_ref2$onSpeakerChange","_ref2$onPresenterChan","_ref2$onMainParticipa","_ref2$onEntryRequeste","_ref2$onEntryResponde","_ref2$onRecordingStar","_ref2$onRecordingStop","_ref2$onChatMessage","_ref2$onMeetingJoined","_ref2$onMeetingLeft","_ref2$onLiveStreamSta","_ref2$onLiveStreamSto","_ref2$onVideoStateCha","_ref2$onVideoSeeked","_ref2$onWebcamRequest","_ref2$onMicRequested","_ref2$onPinStateChang","_ref2$onConnectionOpe","_ref2$onConnetionClos","_ref2$onSwitchMeeting","_ref2$onError","_ref2$onHlsStarted","_ref2$onHlsStopped","_ref2$onHlsStateChang","_ref2$onRecordingStat","_ref2$onLivestreamSta","_ref2$onMeetingStateC","_ref2$onParticipantMo","React","createElement","Fragment","Consumer","MeetingProvider","config","token","joinWithoutUserInteraction","_reinitialiseMeetingOnConfigChange","reinitialiseMeetingOnConfigChange","deviceInfo","_useState","useState","meeting","setMeeting","_useState2","localParticipant","setLocalParticipant","_useState3","mainParticipant","setMainParticipant","_useState4","activeSpeakerId","setActiveSpeakerId","_useState5","presenterId","setPresenterId","_useState6","localMicOn","setLocalMicOn","_useState7","localWebcamOn","setLocalWebcamOn","_useState8","localScreenShareOn","setLocalScreenShareOn","_useState9","isRecording","setIsRecording","_useState10","messages","setMessages","_useState11","Map","participants","setParticipants","_useState12","pinnedParticipants","setPinnedParticipants","_useState13","isLiveStreaming","setIsLiveStreaming","_useState14","connections","setConnections","_useState15","isMeetingJoined","setIsMeetingJoined","_useState16","isHls","setIsHls","_useState17","recordingState","setRecordingState","_useState18","livestreamState","setLivestreamState","_useState19","hlsState","setHlsState","_useState20","downstreamUrl","playbackHlsUrl","livestreamUrl","hlsUrls","setHlsUrls","_useState21","transcriptionState","setTranscriptionState","meetingRef","useRef","localMicOnRef","localWebcamOnRef","localScreenShareOnRef","isRecordingRef","configRef","tokenRef","joinedOnFirstRender","isHlsRef","useMemo","current","resetStates","_handle_participant_joined","participant","set","id","participantsToSet","emit","_handle_participant_left","newParticipants","_handle_presenter_changed","_meetingRef$current","_meetingRef$current$l","_handle_main_participant_changed","_handle_speaker_changed","_handle_chat_message","data","s","concat","_handle_entry_requested","_handle_entry_responded","participantId","decision","_handle_recording_started","_handle_recording_stopped","_handle_localParticipant_stream_enabled","stream","track","readyState","kind","_handle_localParticipant_stream_disabled","_handle_live_stream_started","_handle_live_stream_stopped","_handle_hls_started","_handle_hls_stopped","_handle_video_state_changed","_handle_video_seeked","_handle_webcam_requested","_handle_mic_requested","_handle_meeting_joined","_handle_meeting_left","_meeting$localPartici","_handle_meeting_state_changed","_handle_pin_state_changed","_handle_connection_open","_handle_connection_close","_handle_switch_meeting","_handle_error","_handle_recording_state_changed","_handle_livestream_state_changed","_handle_hls_state_changed","_handel_participant_mode_changed","_handle_transcription_state_changed","state","pinnedBy","cam","share","pinnedParticipantsToSet","connection","connectionsToSet","connectionId","newConnections","d","status","_handle_transcription_text","_meetingRef$current2","_meetingRef$current2$","part","get","mode","join","VideoSDK","initMeeting","leave","end","startRecording","webhookUrl","awsDirPath","transcription","stopRecording","unmuteMic","customAudioTrack","undefined","muteMic","toggleMic","disableWebcam","enableWebcam","customVideoTrack","toggleWebcam","disableScreenShare","enableScreenShare","customScreenShareTrack","toggleScreenShare","changeMode","sendChatMessage","text","respondEntry","getMics","Promise","resolve","e","reject","getWebcams","changeWebcam","obj","replaceWebcamStream","changeMic","startVideo","_ref3","link","stopVideo","resumeVideo","pauseVideo","_ref4","currentTime","seekVideo","_ref5","startLivestream","streamInfo","stopLivestream","connectTo","_ref6","meetingId","payload","then","startHls","stopHls","initSDK","analytics","sdkType","sdkVersion","reactSDKVersion","Provider","value","baseUrl","selectedCameraDevice","selectedMicrophoneDevice","useParticipant","_ref$onStreamEnabled","onStreamEnabled","_ref$onStreamDisabled","onStreamDisabled","_ref$onMediaStatusCha","onMediaStatusChanged","_ref$onVideoQualityCh","onVideoQualityChanged","webcamStream","setwebcamStream","micStream","setMicStream","screenShareStream","setScreenShareStream","screenShareAudioStream","setScreenShareAudioStream","_useMemo","_meeting$pinnedPartic","pinState","webcamOn","setWebcamOn","micOn","setMicOn","setMode","setTrack","unSetTrack","_handleStreamEnabled","_handleParticipantModeChanged","_handleStreamDisabled","_handleVideoQualityChanged","peerId","prevQuality","currentQuality","_handleMediaStatusChanged","newStatus","setQuality","quality","setViewPort","width","height","enableMic","disableMic","pin","unpin","remove","captureImage","_temp2","getAudioStats","getVideoStats","getShareStats","consumeWebcamStreams","consumeMicStreams","stopConsumingWebcamStreams","stopConsumingMicStreams","switchTo","streams","forEach","displayName","metaData","screenShareOn","isLocal","isActiveSpeaker","isMainParticipant","useConnection","onMeeting","Error","connectionParticipants","_connectionParticipants","setConnectionParticipants","_handleParticipantJoined","_handleParticipantLeft","_handleChatMessage","close","usePubSub","topic","_ref$onMessageReceive","onMessageReceived","_ref$onOldMessagesRec","onOldMessagesReceived","_useMeeting","isSubscribed","publish","message","options","pubSub","_handlePubSub","subscribeToPubsub","_meeting$pubSub","subscribe","_meeting$pubSub2","unsubscribe","useFile","mMeeting","uploadBase64File","base64Data","fileName","fetchBase64File","url","useMediaDevice","_ref$onDeviceChanged","onDeviceChanged","getDevices","getCameras","getMicrophones","getPlaybackDevices","checkPermissions","permissions","requestPermission","useTranscription","_ref$onTranscriptionS","onTranscriptionStateChanged","_ref$onTranscriptionT","onTranscriptionText","startTranscription","stopTranscription","Constants","createCameraVideoTrack","_ref$cameraId","cameraId","_ref$encoderConfig","encoderConfig","_ref$facingMode","facingMode","_ref$optimizationMode","optimizationMode","_ref$multiStream","multiStream","createScreenShareVideoTrack","_ref2$encoderConfig","_ref2$optimizationMod","_ref2$withAudio","withAudio","createMicrophoneAudioTrack","_ref3$noiseConfig","noiseConfig","_ref3$encoderConfig","_ref3$microphoneId","microphoneId","getNetworkStats","timeoutDuration"],"mappings":"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"}