@videosdk.live/react-sdk 0.6.0 → 0.6.1

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/stream/useStream.js","../src/connection/useConnection.js","../src/pubSub/usePubSub.js","../src/realtimeStore/useRealtimeStore.js","../src/upload/useFile.js","../src/useMediaDevice.js","../src/transcription/transcription.js","../src/translation/translation.js","../src/character/useCharacter.js","../node_modules/babel-plugin-transform-async-to-promises/helpers.mjs","../src/whiteboard/useWhiteboard.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 data: `${eventPrifix}-data`,\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 'translation-state-changed': `${eventPrifix}-translation-state-changed`,\n 'translation-language-changed': `${eventPrifix}-translation-language-changed`,\n 'translation-text': `${eventPrifix}-translation-text`,\n 'character-joined': `${eventPrifix}-character-joined`,\n 'character-left': `${eventPrifix}-character-left`,\n 'whiteboard-started': `${eventPrifix}-whiteboard-started`,\n 'whiteboard-stopped': `${eventPrifix}-whiteboard-stopped`,\n 'paused-all-streams': `${eventPrifix}-paused-all-streams`,\n 'resumed-all-streams': `${eventPrifix}-resumed-all-streams`,\n 'media-relay-started': `${eventPrifix}-media-relay-started`,\n 'media-relay-stopped': `${eventPrifix}-media-relay-stopped`,\n 'media-relay-error': `${eventPrifix}-media-relay-error`,\n 'media-relay-request-response': `${eventPrifix}-media-relay-request-response`,\n 'media-relay-request-received': `${eventPrifix}-media-relay-request-received`,\n 'quality-limitation': `${eventPrifix}-quality-limitation`\n};\n\nconst eventEmitter = new EventEmitter();\neventEmitter.setMaxListeners(9999);\n\nfunction debounce(func, delay) {\n let timeout;\n return function(...args) {\n clearTimeout(timeout);\n timeout = setTimeout(() => func.apply(this, args), delay);\n };\n}\n\nexport { eventEmitter, events, debounce };\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 * onPausedAllStreams?: ({\n * kind,\n * }:{\n * kind: \"audio\" | \"video\" | \"share\" | \"shareAudio\" | \"all\",\n * }) => void,\n * onResumedAllStreams?: ({\n * kind,\n * }:{\n * kind: \"audio\" | \"video\" | \"share\" | \"shareAudio\" | \"all\",\n * }) => void,\n * onRecordingStarted?: Function,\n * onRecordingStopped?: Function,\n * onData?: 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 * onMediaRelayStarted?: ({\n * meetingId\n * }: {\n * meetingId: string\n * }) => void,\n * onMediaRelayStopped?: ({\n * meetingId,\n * reason\n * }: {\n * meetingId: string,\n * reason: string\n * }) => void,\n * onMediaRelayError?: ({\n * meetingId,\n * error\n * }: {\n * meetingId: string,\n * error: string\n * }) => void,\n * onMediaRelayRequestResponse?: ({\n * decision,\n * decidedBy,\n * meetingId\n * }: {\n * decision: \"accepted\" | \"rejected\",\n * decidedBy: string,\n * meetingId: string\n * }) => void,\n * onMediaRelayRequestReceived?: ({\n * participantId,\n * meetingId,\n * displayName,\n * accept,\n * reject\n * }: {\n * participantId: string,\n * meetingId: string,\n * displayName: string,\n * accept: () => void,\n * reject: () => void\n * }) => void,\n * onQualityLimitation?: ({\n * type,\n * state,\n * timestamp,\n * }: {\n * type: \"congestion\" | \"bandwidth\" | \"cpu\",\n * state: \"detected\" | \"resolved\",\n * timestamp: number,\n * }) => void,\n *}}\n * @returns {{\n * meetingId: string,\n * meeting: Meeting,\n * localParticipant: Participant,\n * activeSpeakerId: string,\n * participants: Map<string, Participant>,\n * characters: Map<string, Character>;\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 * send: (payload: string | Blob | ArrayBuffer | ArrayBufferView,options?: {reliability?: \"RELIABLE\" | \"UNRELIABLE\"}) => Promise<boolean>\n * toggleWebcam: (customVideoTrack?: MediaStream | undefined) => void\n * enableScreenShare: (customScreenShareTrack?: MediaStream | undefined) => void\n * disableScreenShare: () => void\n * toggleScreenShare: (customScreenShareTrack?: MediaStream | undefined) => void\n * pauseAllStreams: (kind : \"audio\" | \"video\" | \"share\" | \"shareAudio\" | \"all\" | undefined) => void\n * resumeAllStreams: (kind: \"audio\" | \"video\" | \"share\" | \"shareAudio\" | \"all\" | 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 * switchTo: ({\n * meetingId,\n * token\n * }: {\n * meetingId: string;\n * token?: string;\n * }) => 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: 'SEND_AND_RECV' | 'SIGNALLING_ONLY' | 'RECV_ONLY'): 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 onPausedAllStreams = () => {},\n onResumedAllStreams = () => {},\n onRecordingStarted = () => {},\n onRecordingStopped = () => {},\n onData = () => {},\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 onCharacterJoined = () => {},\n onCharacterLeft = () => {},\n onMediaRelayStarted = () => {},\n onMediaRelayStopped = () => {},\n onMediaRelayError = () => {},\n onMediaRelayRequestResponse = () => {},\n onMediaRelayRequestReceived = () => {},\n onQualityLimitation = () => {}\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['paused-all-streams'], onPausedAllStreams);\n eventEmitter.on(events['resumed-all-streams'], onResumedAllStreams);\n eventEmitter.on(events['recording-started'], onRecordingStarted);\n eventEmitter.on(events['recording-stopped'], onRecordingStopped);\n eventEmitter.on(events['data'], onData);\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 eventEmitter.on(events['character-joined'], onCharacterJoined);\n eventEmitter.on(events['character-left'], onCharacterLeft);\n eventEmitter.on(events['media-relay-started'], onMediaRelayStarted);\n eventEmitter.on(events['media-relay-stopped'], onMediaRelayStopped);\n eventEmitter.on(events['media-relay-error'], onMediaRelayError);\n eventEmitter.on(\n events['media-relay-request-response'],\n onMediaRelayRequestResponse\n );\n eventEmitter.on(\n events['media-relay-request-received'],\n onMediaRelayRequestReceived\n );\n eventEmitter.on(events['quality-limitation'], onQualityLimitation);\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['paused-all-streams'], onPausedAllStreams);\n eventEmitter.off(events['resumed-all-streams'], onResumedAllStreams);\n eventEmitter.off(events['recording-started'], onRecordingStarted);\n eventEmitter.off(events['recording-stopped'], onRecordingStopped);\n eventEmitter.off(events['data'], onData);\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 eventEmitter.off(events['character-joined'], onCharacterJoined);\n eventEmitter.off(events['character-left'], onCharacterLeft);\n eventEmitter.off(events['media-relay-started'], onMediaRelayStarted);\n eventEmitter.off(events['media-relay-stopped'], onMediaRelayStopped);\n eventEmitter.off(events['media-relay-error'], onMediaRelayError);\n eventEmitter.off(\n events['media-relay-request-response'],\n onMediaRelayRequestResponse\n );\n eventEmitter.off(\n events['media-relay-request-received'],\n onMediaRelayRequestReceived\n );\n eventEmitter.off(events['quality-limitation'], onQualityLimitation);\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 onPausedAllStreams = () => {},\n onResumedAllStreams = () => {},\n onRecordingStarted = () => {},\n onRecordingStopped = () => {},\n onData = () => {},\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 onCharacterJoined = () => {},\n onCharacterLeft = () => {},\n onMediaRelayStarted = () => {},\n onMediaRelayStopped = () => {},\n onMediaRelayError = () => {},\n onMediaRelayRequestResponse = () => {},\n onMediaRelayRequestReceived = () => {},\n onQualityLimitation = () => {}\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['paused-all-streams'], onPausedAllStreams);\n eventEmitter.on(events['resumed-all-streams'], onResumedAllStreams);\n eventEmitter.on(events['recording-started'], onRecordingStarted);\n eventEmitter.on(events['recording-stopped'], onRecordingStopped);\n eventEmitter.on(events['data'], onData);\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 eventEmitter.on(events['character-joined'], onCharacterJoined);\n eventEmitter.on(events['character-left'], onCharacterLeft);\n eventEmitter.on(events['media-relay-started'], onMediaRelayStarted);\n eventEmitter.on(events['media-relay-stopped'], onMediaRelayStopped);\n eventEmitter.on(events['media-relay-error'], onMediaRelayError);\n eventEmitter.on(\n events['media-relay-request-response'],\n onMediaRelayRequestResponse\n );\n eventEmitter.on(\n events['media-relay-request-received'],\n onMediaRelayRequestReceived\n );\n eventEmitter.on(events['quality-limitation'], onQualityLimitation);\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['paused-all-streams'], onPausedAllStreams);\n eventEmitter.off(events['resumed-all-streams'], onResumedAllStreams);\n eventEmitter.off(events['recording-started'], onRecordingStarted);\n eventEmitter.off(events['recording-stopped'], onRecordingStopped);\n eventEmitter.off(events['data'], onData);\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 eventEmitter.off(events['character-joined'], onCharacterJoined);\n eventEmitter.off(events['character-left'], onCharacterLeft);\n eventEmitter.off(events['media-relay-started'], onMediaRelayStarted);\n eventEmitter.off(events['media-relay-stopped'], onMediaRelayStopped);\n eventEmitter.off(events['media-relay-error'], onMediaRelayError);\n eventEmitter.off(\n events['media-relay-request-response'],\n onMediaRelayRequestResponse\n );\n eventEmitter.off(\n events['media-relay-request-received'],\n onMediaRelayRequestReceived\n );\n eventEmitter.off(events['quality-limitation'], onQualityLimitation);\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\" | \"TCP_ONLY\",\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?: \"SEND_AND_RECV\" | \"SIGNALLING_ONLY\" | \"RECV_ONLY\",\n * metaData?: object,\n * defaultCamera?: 'front' | 'back',\n * debugMode: boolean,\n * translationLanguage?: string\n * speakingLanguage?: string\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 keyProvider\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 [characters, setCharacters] = 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 [translationState, setTranslationState] = useState(\n 'TRANSLATION_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 keyProviderRef = useRef(keyProvider);\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 setCharacters(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 setTranslationState('TRANSLATION_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, reason) => {\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, reason);\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['data'], 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 if (data.switchRoomId) {\n setMessages(s => [...s, ...data.messages]);\n eventEmitter.emit(events['meeting-joined'], data);\n } else {\n joinedOnFirstRender.current = true;\n setMessages(s => [...s, ...data.messages]);\n eventEmitter.emit(events['meeting-joined'], data);\n setIsMeetingJoined(true);\n }\n };\n\n const _handle_meeting_left = data => {\n eventEmitter.emit(events['meeting-left'], data);\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('data', _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('paused-all-streams', _handle_streams_paused);\n meeting.off('resumed-all-streams', _handle_streams_resumed);\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('whiteboard-stopped', _handle_whiteboard_stopped);\n meeting.off('whiteboard-started', _handle_whiteboard_started);\n meeting.off(\n 'transcription-state-changed',\n _handle_transcription_state_changed\n );\n meeting.off('transcription-text', _handle_transcription_text);\n meeting.off(\n 'translation-state-changed',\n _handle_translation_state_changed\n );\n meeting.off('translation-text', _handle_translation_text);\n meeting.off(\n 'translation-language-changed',\n _handle_translation_language_changed\n );\n meeting.off('character-joined', _handle_character_joined);\n meeting.off('character-left', _handle_character_left);\n meeting.off('media-relay-started', _handle_media_relay_started);\n meeting.off('media-relay-stopped', _handle_media_relay_stopped);\n meeting.off('media-relay-error', _handle_media_relay_error);\n meeting.off(\n 'media-relay-request-response',\n _handle_media_relay_request_response\n );\n meeting.off(\n 'media-relay-request-received',\n _handle_media_relay_request_received\n );\n meeting.off('quality-limitation', _handle_quality_limitation_received);\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_streams_paused = ({ kind }) => {\n eventEmitter.emit(events['paused-all-streams'], {\n kind\n });\n };\n\n const _handle_streams_resumed = ({ kind }) => {\n eventEmitter.emit(events['resumed-all-streams'], {\n kind\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 _handle_translation_state_changed = data => {\n setTranslationState(data?.status);\n eventEmitter.emit(events['translation-state-changed'], data);\n };\n\n const _handle_translation_text = data => {\n eventEmitter.emit(events['translation-text'], data);\n };\n\n const _handle_translation_language_changed = data => {\n eventEmitter.emit(events['translation-language-changed'], data);\n };\n\n const _handle_whiteboard_started = data => {\n eventEmitter.emit(events['whiteboard-started'], data);\n };\n\n const _handle_whiteboard_stopped = data => {\n eventEmitter.emit(events['whiteboard-stopped'], data);\n };\n\n const _handle_character_joined = character => {\n setCharacters(characters => {\n characters.set(character.id, character);\n const charactersToSet = new Map(characters);\n return charactersToSet;\n });\n eventEmitter.emit(events['character-joined'], character);\n };\n\n const _handle_character_left = character => {\n setCharacters(characters => {\n characters.delete(character.id);\n\n const newCharacters = new Map(characters);\n return newCharacters;\n });\n eventEmitter.emit(events['character-left'], character);\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 _handle_media_relay_started = data => {\n eventEmitter.emit(events['media-relay-started'], data);\n };\n const _handle_media_relay_stopped = data => {\n eventEmitter.emit(events['media-relay-stopped'], data);\n };\n const _handle_media_relay_error = data => {\n eventEmitter.emit(events['media-relay-error'], data);\n };\n const _handle_media_relay_request_response = data => {\n eventEmitter.emit(events['media-relay-request-response'], data);\n };\n const _handle_media_relay_request_received = data => {\n eventEmitter.emit(events['media-relay-request-received'], data);\n };\n const _handle_quality_limitation_received = data => {\n eventEmitter.emit(events['quality-limitation'], data);\n };\n\n const join = () => {\n const meeting = VideoSDK && VideoSDK.initMeeting(configRef.current);\n setMeeting(meeting);\n const { localParticipant, participants, characters } = meeting;\n participants.set(localParticipant.id, localParticipant);\n setParticipants(participants);\n setCharacters(characters);\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('data', _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 meeting.on('paused-all-streams', _handle_streams_paused);\n meeting.on('resumed-all-streams', _handle_streams_resumed);\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 meeting.on('translation-state-changed', _handle_translation_state_changed);\n meeting.on('translation-text', _handle_translation_text);\n meeting.on(\n 'translation-language-changed',\n _handle_translation_language_changed\n );\n meeting.on('whiteboard-started', _handle_whiteboard_started);\n meeting.on('whiteboard-stopped', _handle_whiteboard_stopped);\n meeting.on('character-joined', _handle_character_joined);\n meeting.on('character-left', _handle_character_left);\n\n meeting.on('media-relay-started', _handle_media_relay_started);\n meeting.on('media-relay-stopped', _handle_media_relay_stopped);\n meeting.on('media-relay-error', _handle_media_relay_error);\n meeting.on(\n 'media-relay-request-response',\n _handle_media_relay_request_response\n );\n meeting.on(\n 'media-relay-request-received',\n _handle_media_relay_request_received\n );\n meeting.on('quality-limitation', _handle_quality_limitation_received);\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\n const pauseAllStreams = kind => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.pauseAllStreams(kind);\n }\n };\n\n const resumeAllStreams = kind => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.resumeAllStreams(kind);\n }\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\n const switchTo = ({ meetingId, token }) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.switchTo({ meetingId, token });\n }\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 send = async (payload, options = { reliability: 'RELIABLE' }) => {\n const meeting = meetingRef.current;\n if (meeting) {\n return await meeting.send(payload, options);\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 enableAdaptiveSubscription = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.enableAdaptiveSubscription();\n }\n };\n\n const disableAdaptiveSubscription = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.disableAdaptiveSubscription();\n }\n };\n\n const requestMediaRelay = ({ destinationMeetingId, token, kinds }) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.requestMediaRelay({ destinationMeetingId, token, kinds });\n }\n };\n\n const stopMediaRelay = destinationMeetingId => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.stopMediaRelay(destinationMeetingId);\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 keyProviderRef.current && VideoSDK.setKeyProvider(keyProviderRef.current);\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 characters,\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 translationState,\n isMeetingJoined,\n selectedCameraDevice: meeting?.selectedCameraDevice,\n selectedMicrophoneDevice: meeting?.selectedMicrophoneDevice,\n //\n join,\n leave,\n end,\n //\n pauseAllStreams,\n resumeAllStreams,\n //\n startRecording,\n stopRecording,\n //\n send,\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\n switchTo,\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 enableAdaptiveSubscription,\n disableAdaptiveSubscription,\n\n requestMediaRelay,\n stopMediaRelay\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 * onStreamPaused?: Function,\n * onStreamResumed?: Function,\n * onProducerAdded?: Function,\n * onProducerRemoved?: Function,\n * onConsumerAdded?: Function,\n * onConsumerRemoved?: 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: \"SEND_AND_RECV\" | \"SIGNALLING_ONLY\" | \"RECV_ONLY\";\n * metaData: object;\n * consumeMicStreams: () => void;\n * consumeWebcamStreams: () => void;\n * stopConsumingMicStreams: () => void;\n * stopConsumingWebcamStreams: () => void;\n * setQuality: (quality: \"low\" | \"med\" | 'high') => void;\n * setScreenShareQuality: (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 * getShareAudioStats: () => 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 * 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 onStreamPaused = () => {},\n onStreamResumed = () => {},\n onProducerAdded = () => {},\n onProducerRemoved = () => {},\n onConsumerAdded = () => {},\n onConsumerRemoved = () => {}\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 _handleStreamPaused = data => {\n onStreamPaused(data);\n };\n\n const _handleStreamResumed = data => {\n onStreamResumed(data);\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 _handleProducerAdded = data => {\n onProducerAdded(data);\n };\n\n const _handleProducerRemoved = data => {\n onProducerRemoved(data);\n };\n\n const _handleConsumerAdded = data => {\n onConsumerAdded(data);\n };\n\n const _handleConsumerRemoved = data => {\n onConsumerRemoved(data);\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 setScreenShareQuality = quality => {\n participant?.setScreenShareQuality(quality);\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 getShareAudioStats = async () => {\n return participant?.getShareAudioStats();\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\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('stream-paused', _handleStreamPaused);\n\n participant?.on('stream-resumed', _handleStreamResumed);\n\n participant?.on('media-status-changed', _handleMediaStatusChanged);\n\n participant?.on('video-quality-changed', _handleVideoQualityChanged);\n\n participant?.on('producer-added', _handleProducerAdded);\n\n participant?.on('producer-removed', _handleProducerRemoved);\n\n participant?.on('consumer-added', _handleConsumerAdded);\n\n participant?.on('consumer-removed', _handleConsumerRemoved);\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('stream-paused', _handleStreamPaused);\n\n participant?.off('stream-resumed', _handleStreamResumed);\n\n participant?.off('media-status-changed', _handleMediaStatusChanged);\n\n participant?.off('video-quality-changed', _handleVideoQualityChanged);\n\n participant?.off('producer-added', _handleProducerAdded);\n\n participant?.off('producer-removed', _handleProducerRemoved);\n\n participant?.off('consumer-added', _handleConsumerAdded);\n\n participant?.off('consumer-removed', _handleConsumerRemoved);\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 setScreenShareQuality,\n setViewPort,\n enableMic,\n disableMic,\n enableWebcam,\n disableWebcam,\n captureImage,\n pin,\n unpin,\n remove,\n getAudioStats,\n getVideoStats,\n getShareStats,\n getShareAudioStats\n };\n};\n\nexport default useParticipant;\n","import { useState, useEffect, useMemo } from 'react';\nimport { useMeeting } from '../meeting/meetingProviderContextDef';\nimport { Stream } from '@videosdk.live/js-sdk';\n\n/**\n * Hook to get a Stream by ID and access its methods.\n * @param {string} streamId\n * @param {{\n * onStreamStateChanged?: Function,\n * }} options\n * @returns {{\n * kind: 'audio' | 'video' | 'share' | 'shareAudio'\n * stream: Stream;\n * codec: string;\n * track: MediaStreamTrack;\n * paused: boolean;\n * pause: () => void,\n * resume: () => void,\n * }}\n */\nconst useStream = (streamId, { onStreamStateChanged = () => {} } = {}) => {\n const [stream, setStream] = useState(null);\n\n const meeting = useMeeting();\n\n const { participants } = useMemo(() => {\n const participants = meeting?.participants;\n return {\n participants\n };\n }, [meeting]);\n\n const _handleStreamStateChanged = data => {\n onStreamStateChanged(data);\n };\n\n useEffect(() => {\n if (!meeting) return;\n if (!streamId) return;\n\n // Iterate over all participants' streams to find the stream\n const findStream = () => {\n for (let participant of participants.values()) {\n const stream = participant.streams.get(streamId);\n if (stream != null) {\n return stream;\n }\n }\n return null;\n };\n\n const s = findStream();\n if (!s) return;\n setStream(s);\n\n s?.on('state', _handleStreamStateChanged);\n\n return () => {\n s?.off('state', _handleStreamStateChanged);\n };\n }, [streamId]);\n\n const pause = () => {\n if (stream) {\n stream.pause();\n }\n };\n\n const resume = () => {\n if (stream) {\n stream.resume();\n }\n };\n\n return {\n kind: stream?.kind,\n codec: stream?.codec,\n track: stream?.track,\n paused: stream?.paused,\n stream,\n pause,\n resume\n };\n};\n\nexport default useStream;\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 * onData?: 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 onData: () => {}\n }\n }\n) => {\n const onParticipantJoined = onMeeting?.onParticipantJoined;\n const onParticipantLeft = onMeeting?.onParticipantLeft;\n const onData = onMeeting?.onData;\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 onData(data);\n };\n\n useEffect(() => {\n connection?.meeting.on('participant-joined', _handleParticipantJoined);\n connection?.meeting.on('participant-left', _handleParticipantLeft);\n connection?.meeting.on('data', _handleChatMessage);\n\n return () => {\n connection?.meeting.off('participant-joined', _handleParticipantJoined);\n connection?.meeting.off('participant-left', _handleParticipantLeft);\n connection?.meeting.off('data', _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 return 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 { useEffect, useRef, useState } from 'react';\nimport { useMeeting } from '../meeting/meetingProviderContextDef';\n\n/**\n *\n * @param {string} key\n * @param {{\n * onValueChanged?: Function,\n * }} options\n * @returns {{\n * setValue: (value : string) => void\n * getValue: () => string\n * }}\n */\nconst useRealtimeStore = (key, { onValueChanged = () => {} } = {}) => {\n const observerIdRef = useRef(null);\n const { meeting, isMeetingJoined } = useMeeting();\n const isObserving = useRef(false);\n\n /**\n * Set or update a key-value pair in the RealtimeStore.\n *\n * @async\n * @param {String|null} value - The value to set (string only). Pass `null` to delete the key.\n * @returns {Promise<void>}\n *\n * @throws {Error} If value is not a string or exceeds 1 KB.\n * @throws {Error} If request fails.\n */\n const setValue = async value => {\n if (meeting) {\n return await meeting.realtimeStore.setValue(key, value);\n }\n };\n\n /**\n * Retrieve the value associated with a key from the RealtimeStore.\n *\n * @async\n * @returns {Promise<String|null>} - Returns the stored value from the RealtimeStore..\n *\n * @throws {Error} If key doesn’t exist or request fails.\n */\n const getValue = async () => {\n if (meeting) {\n return await meeting.realtimeStore.getValue(key);\n }\n };\n\n const _handleRealtimeStore = data => {\n onValueChanged(data);\n };\n\n const subscribeToKey = async meeting => {\n const observer = await meeting?.realtimeStore?.observe(\n key,\n _handleRealtimeStore\n );\n if (observer) {\n observerIdRef.current = observer;\n }\n };\n\n useEffect(() => {\n if (meeting && !isObserving.current && isMeetingJoined && onValueChanged) {\n isObserving.current = true;\n subscribeToKey(meeting);\n\n return () => {\n if (observerIdRef.current) {\n meeting?.realtimeStore?.stopObserving(observerIdRef.current);\n observerIdRef.current = null;\n }\n isObserving.current = false;\n };\n }\n }, [meeting, isMeetingJoined]);\n\n return { setValue, getValue };\n};\n\nexport default useRealtimeStore;\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 { useMeeting } from '../meeting/meetingProviderContextDef';\nimport { useEffect } from 'react';\nimport { eventEmitter, events } from '../utils';\n\n/**\n *\n * @param {{\n * onTranslationStateChanged?: Function,\n * onTranslationLanguageChanged?: Function,\n * onTranslationText?: Function,\n * }} options\n * @returns {{\n * startTranslation: ( data: Object ) => Promise<void>\n * changeTranslationLanguage: ( data: String ) => Promise<void>\n * stopTranslation: () => Promise<void>\n * }}\n */\nconst useTranslation = ({\n onTranslationStateChanged = async () => {},\n onTranslationLanguageChanged = async () => {},\n onTranslationText = async () => {}\n} = {}) => {\n const mMeeting = useMeeting();\n\n useEffect(() => {\n eventEmitter.on(\n events['translation-state-changed'],\n onTranslationStateChanged\n );\n\n eventEmitter.on(\n events['translation-language-changed'],\n onTranslationLanguageChanged\n );\n\n eventEmitter.on(events['translation-text'], onTranslationText);\n\n // off event listeners\n return () => {\n eventEmitter.off(\n events['translation-state-changed'],\n onTranslationStateChanged\n );\n eventEmitter.off(\n events['translation-language-changed'],\n onTranslationLanguageChanged\n );\n eventEmitter.off(events['translation-text'], onTranslationText);\n };\n }, []);\n\n /**\n * @param {{webhookUrl?:string, modelConfig?:any}} config?\n */\n const startTranslation = async config => {\n return mMeeting.meeting.startTranslation(config);\n };\n\n const changeTranslationLanguage = async language => {\n return mMeeting.meeting.changeTranslationLanguage(language);\n };\n\n const stopTranslation = async () => {\n return mMeeting.meeting.stopTranslation();\n };\n\n return { startTranslation, changeTranslationLanguage, stopTranslation };\n};\n\nexport default useTranslation;\n","import { useEffect, useState, useMemo } from 'react';\nimport { useMeeting } from '../meeting/meetingProviderContextDef';\n\n/**\n *\n * @param {\n * {\n * interactionId?: string,\n * id?: string,\n * displayName?: string,\n * characterRole?: string,\n * characterMode?: \"text\" | \"co_pilot\" | \"auto_pilot\" | \"vision_pilot\",\n * knowledgeBases?: string[],\n * language?: string,\n * },\n * {\n * onCharacterMessage?: Function,\n * onData?: Function,\n * onError?: Function,\n * onUserMessage?: Function,\n * onStreamDisabled?: Function,\n * onStreamEnabled?: Function,\n * onMediaStatusChanged?: Function,\n * onVideoQualityChanged?: Function,\n * }} options\n *\n * @returns {\n *\n * displayName: string,\n * webcamStream: Stream,\n * micStream: Stream,\n * webcamOn: boolean,\n * micOn: boolean,\n * isActiveSpeaker: string,\n *\n * enableMic: Function,\n * disableMic: Function,\n * enableWebcam: Function,\n * disableWebcam: Function,\n *\n * join: Function,\n * leave: Function,\n * sendMessage: Function\n * interrupt: Function\n *\n *}\n *\n */\nconst useCharacter = (\n {\n interactionId,\n // OR\n id,\n characterMode,\n displayName,\n characterRole,\n knowledgeBases,\n language,\n metaData\n },\n {\n onCharacterStateChanged = () => {},\n onCharacterMessage = () => {},\n onUserMessage = () => {},\n onData = () => {},\n onError = () => {},\n\n onCharacterJoined = () => {},\n\n onCharacterLeft = () => {},\n onStreamEnabled = () => {},\n onStreamDisabled = () => {},\n onMediaStatusChanged = () => {},\n onVideoQualityChanged = () => {}\n } = {}\n) => {\n const [webcamStream, setwebcamStream] = useState(null);\n const [micStream, setMicStream] = useState(null);\n\n const mMeeting = useMeeting();\n\n /**\n * @type {Character}\n */\n const { character, activeSpeakerId } = useMemo(() => {\n let chars = Array.from(mMeeting.characters.values());\n const activeSpeakerId = mMeeting?.activeSpeakerId;\n\n return {\n character:\n chars.find(chars => chars.interactionId == interactionId) ||\n mMeeting.characters.get(id) ||\n mMeeting.meeting.createCharacter({\n interactionId,\n // OR\n displayName,\n id,\n characterRole,\n characterMode,\n knowledgeBases,\n language,\n metaData\n }),\n activeSpeakerId\n };\n }, [\n mMeeting.characters,\n interactionId,\n id,\n characterMode,\n displayName,\n characterRole,\n knowledgeBases,\n language,\n metaData\n ]);\n\n const [webcamOn, setWebcamOn] = useState(character?.webcamOn);\n const [micOn, setMicOn] = useState(character?.micOn);\n const [characterState, setCharacterState] = useState(null);\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 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 default:\n break;\n }\n };\n\n const _handleCharacterStateChanged = d => {\n const { status } = d;\n setCharacterState(status);\n onCharacterStateChanged(d);\n };\n\n const _handleCharacterMessage = d => {\n onCharacterMessage(d);\n };\n\n const _handleUserMessage = d => {\n onUserMessage(d);\n };\n\n const _handleOnData = (topic, d) => {\n onData(topic, d);\n };\n\n const _handleOnError = d => {\n onError(d);\n };\n\n const _handleCharacterJoined = () => {\n onCharacterJoined();\n };\n\n const _handleCharacterLeft = () => {\n onCharacterLeft();\n };\n\n const _handleStreamEnabled = stream => {\n setTrack(stream);\n onStreamEnabled(stream);\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 enableMic = () => {\n character?.enableMic();\n };\n const disableMic = () => {\n character?.disableMic();\n };\n const enableWebcam = () => {\n character?.enableWebcam();\n };\n const disableWebcam = () => {\n character?.disableWebcam();\n };\n const join = async () => {\n await character?.join();\n };\n const sendMessage = async d => {\n await character?.sendMessage(d);\n };\n const interrupt = async () => {\n await character?.interrupt();\n };\n const leave = async () => {\n await character?.leave();\n };\n\n useEffect(() => {\n const streams = character?.streams;\n\n if (streams) {\n streams.forEach(stream => {\n setTrack(stream);\n });\n }\n\n if (character?.micOn) {\n setMicOn(micOn);\n }\n\n if (character?.webcamOn) {\n setWebcamOn(webcamOn);\n }\n\n character?.on('character-state-changed', _handleCharacterStateChanged);\n\n character?.on('character-message', _handleCharacterMessage);\n\n character?.on('user-message', _handleUserMessage);\n\n character?.on('data', _handleOnData);\n\n character?.on('error', _handleOnError);\n\n character?.on('stream-enabled', _handleStreamEnabled);\n\n character?.on('stream-disabled', _handleStreamDisabled);\n\n character?.on('media-status-changed', _handleMediaStatusChanged);\n\n character?.on('video-quality-changed', _handleVideoQualityChanged);\n\n character?.on('character-joined', _handleCharacterJoined);\n\n character?.on('character-left', _handleCharacterLeft);\n\n return () => {\n character?.off('character-state-changed', _handleCharacterStateChanged);\n\n character?.off('character-message', _handleCharacterMessage);\n\n character?.off('user-message', _handleUserMessage);\n\n character?.off('data', _handleOnData);\n\n character?.off('error', _handleOnError);\n\n character?.off('stream-enabled', _handleStreamEnabled);\n\n character?.off('stream-disabled', _handleStreamDisabled);\n\n character?.off('media-status-changed', _handleMediaStatusChanged);\n\n character?.off('video-quality-changed', _handleVideoQualityChanged);\n\n character?.off('character-joined', _handleCharacterJoined);\n\n character?.off('character-left', _handleCharacterLeft);\n };\n }, [character]);\n\n return {\n displayName: character?.displayName,\n webcamStream,\n micStream,\n webcamOn: webcamOn || !!webcamStream,\n micOn: micOn || !!micStream,\n isActiveSpeaker: activeSpeakerId === id,\n\n interactionId: character?.interactionId,\n id: character?.id,\n characterMode: character?.characterMode,\n characterState: characterState || character?.characterState,\n knowledgeBases: character?.knowledgeBases,\n language: character?.language,\n\n enableMic,\n disableMic,\n enableWebcam,\n disableWebcam,\n\n join,\n leave,\n sendMessage,\n interrupt\n };\n};\n\nexport default useCharacter;\n","// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","import { useEffect, useState } from 'react';\nimport { useMeeting } from '../meeting/meetingProviderContextDef';\nimport { eventEmitter, events } from '../utils';\n\n/**\n *\n * @returns {{\n * startWhiteboard: () => Promise<void>,\n * stopWhiteboard: () => Promise<void>,\n * whiteboardUrl: string | null\n * }}\n */\n\nconst useWhiteboard = () => {\n const { meeting, isMeetingJoined } = useMeeting();\n const [whiteboardUrl, setWhiteboardUrl] = useState(null);\n\n useEffect(() => {\n if (!isMeetingJoined || !meeting) return;\n\n const handleWhiteboardStarted = data => {\n if (data?.url) {\n setWhiteboardUrl(data.url);\n }\n };\n\n const handleWhiteboardStopped = () => setWhiteboardUrl(null);\n\n eventEmitter.on(events['whiteboard-started'], handleWhiteboardStarted);\n eventEmitter.on(events['whiteboard-stopped'], handleWhiteboardStopped);\n\n return () => {\n eventEmitter.off(events['whiteboard-started'], handleWhiteboardStarted);\n eventEmitter.off(events['whiteboard-stopped'], handleWhiteboardStopped);\n };\n }, [meeting, isMeetingJoined]);\n\n const startWhiteboard = async () => {\n if (!isMeetingJoined || !meeting) {\n return;\n }\n\n try {\n await meeting.startWhiteboard();\n } catch (error) {\n console.error('Error starting whiteboard:', error);\n }\n };\n\n const stopWhiteboard = async () => {\n if (!isMeetingJoined || !meeting) {\n return;\n }\n\n try {\n await meeting.stopWhiteboard();\n } catch (error) {\n console.error('Error stopping whiteboard:', error);\n }\n };\n\n return {\n whiteboardUrl,\n startWhiteboard,\n stopWhiteboard\n };\n};\n\nexport default useWhiteboard;\n","import MeetingProvider from './meeting/MeetingProvider';\nimport {\n MeetingConsumer,\n useMeeting\n} from './meeting/meetingProviderContextDef';\nimport useParticipant from './participant/useParticipant';\nimport useStream from './stream/useStream';\nimport useConnection from './connection/useConnection';\nimport usePubSub from './pubSub/usePubSub';\nimport useRealtimeStore from './realtimeStore/useRealtimeStore';\nimport useFile from './upload/useFile';\nimport useMediaDevice from './useMediaDevice';\nimport useTranscription from './transcription/transcription';\nimport useTranslation from './translation/translation';\nimport useCharacter from './character/useCharacter';\nimport useWhiteboard from './whiteboard/useWhiteboard';\nimport {\n VideoSDK,\n CameraDeviceInfo,\n MicrophoneDeviceInfo,\n DeviceInfo,\n ExternalE2EEKeyProvider\n} from '@videosdk.live/js-sdk';\nimport React, { useEffect, useRef, forwardRef, useMemo } from 'react';\nimport { debounce } from './utils';\n\nconst Constants = VideoSDK.Constants;\n\n/**\n * @param {{\n * cameraId?: string | undefined,\n * encoderConfig?: \"h90p_w160p\" | \"h180p_w320p\" | \"h216p_w384p\"\n * | \"h360p_w640p\" | \"h360p_w640p_150kbps\" | 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 * bitrateMode?: \"bandwidth_optimized\" | \"balanced\" | \"high_quality\" | undefined,\n * maxLayer?: 2 | 3 | undefined\n * }}\n */\nconst createCameraVideoTrack = async ({\n cameraId = undefined,\n encoderConfig = undefined,\n facingMode = undefined,\n optimizationMode = undefined,\n multiStream = true,\n bitrateMode = Constants.BitrateMode.BALANCED,\n maxLayer = 3\n}) => {\n return await VideoSDK.createCameraVideoTrack({\n cameraId,\n encoderConfig,\n facingMode,\n optimizationMode,\n multiStream,\n bitrateMode,\n maxLayer\n });\n};\n\n/**\n * @param {{\n * encoderConfig?: \"h360p_30fps\" | \"h480p_15fps\" | \"h480p_30fps\"\n * | \"h720p_5fps\" | \"h720p_15fps\" | \"h720p_30fps\" | \"h1080p_15fps\" | \"h1080p_30fps | undefined,\n * optimizationMode?: \"text\"| \"motion\" | \"detail\" | undefined,\n * withAudio?:\"enable\" | \"disable\"\n * multiStream?: boolean\n * }}\n */\nconst createScreenShareVideoTrack = async ({\n encoderConfig = undefined,\n optimizationMode = undefined,\n withAudio = 'enable',\n multiStream = false\n}) => {\n return await VideoSDK.createScreenShareVideoTrack({\n encoderConfig,\n optimizationMode,\n withAudio,\n multiStream\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 * @deprecated\n * @param {{\n * timeoutDuration?: number | undefined,\n * baseUrl?: string | undefined,\n * }}\n * @returns {Promise<{downloadSpeed: number,uploadSpeed: number}> }\n */\nconst getNetworkStats = async ({ timeoutDuration, baseUrl } = {}) => {\n return await VideoSDK.getNetworkStats({ timeoutDuration, baseUrl });\n};\n\n/**\n * Wraps a video player component with IntersectionObserver and ResizeObserver\n * to pause/resume video streams and update viewport dimensions based on visibility and size.\n *\n * @param VideoPlayerComponent - The React component to wrap.\n *\n * @returns A new React functional component with adaptive logic.\n */\nconst withAdaptiveObservers = VideoPlayerComponent => {\n const intersectionObserverOptions = {\n root: null,\n rootMargin: '0px',\n threshold: 0\n };\n const debounceDelay = 400;\n\n return props => {\n const { participantId, type } = props;\n const ref = useRef(null);\n const observerRef = useRef(null);\n const resizeObserverRef = useRef(null);\n const { participant } = useParticipant(participantId);\n const { localParticipant } = useMeeting();\n useEffect(() => {\n // Skip observer setup for \"share\" type and local participant\n if (\n type === 'share' ||\n !ref.current ||\n !participant ||\n participantId === localParticipant.id\n )\n return;\n\n const element = ref.current;\n if (!element || !participant) return;\n\n // Disconnect previous observer before creating a new one\n if (observerRef.current) observerRef.current.disconnect();\n\n // Debounced intersection handler\n const handleIntersectionChange = debounce(entries => {\n if (!Array.isArray(entries) || entries.length === 0) return;\n\n const entry = entries[entries.length - 1];\n if (entry.intersectionRatio > 0) {\n // Element is visible, resume video streams\n for (const stream of participant.streams.values()) {\n if (stream.kind === 'video' && stream.pausedBy !== 'SUB_MANAGER') {\n stream.resume();\n }\n }\n } else {\n // Element is not visible, pause video streams\n for (const stream of participant.streams.values()) {\n if (stream.kind === 'video') {\n stream.pause();\n }\n }\n }\n }, debounceDelay);\n\n observerRef.current = new IntersectionObserver(\n handleIntersectionChange,\n intersectionObserverOptions\n );\n\n // Debounced resize handler\n const processResize = (width, height) => {\n if (width > 0 && height > 0) {\n participant.setViewPort(width, height);\n }\n };\n\n const handleResize = debounce(entries => {\n const {\n contentRect: { width, height }\n } = entries[0];\n processResize(width, height);\n }, debounceDelay);\n\n resizeObserverRef.current = new ResizeObserver(handleResize);\n\n resizeObserverRef.current.observe(element);\n observerRef.current.observe(element);\n\n return () => {\n if (observerRef.current) {\n observerRef.current.disconnect();\n }\n if (resizeObserverRef.current) {\n resizeObserverRef.current.disconnect();\n }\n };\n }, []);\n\n return <VideoPlayerComponent ref={ref} {...props} />;\n };\n};\n\n/**\n * Renders a video player for a participant. Handles attaching media stream\n * to video element and mirroring for local participant.\n *\n * @param participantId - ID of the participant.(Mandatory)\n * @param type - Type of stream (e.g., 'video' or 'share').\n * @param containerStyle - Optional CSS style for the outer container.\n * @param className - Optional CSS class for the container.\n * @param classNameVideo - Optional CSS class for the video element.\n * @param videoStyle - Optional CSS style for the video element.\n * @param videoRef - Optional ref to the underlying <video> element.\n */\n\nconst VideoSDKPlayer = forwardRef(\n (\n {\n participantId,\n type = 'video',\n containerStyle = {},\n className = '',\n classNameVideo = '',\n videoStyle = {},\n videoRef\n },\n ref\n ) => {\n const {\n webcamOn,\n webcamStream,\n isLocal,\n screenShareStream,\n screenShareOn\n } = useParticipant(participantId);\n const internalRef = useRef(null);\n const finalVideoRef = videoRef || internalRef;\n\n useEffect(() => {\n const stream = type === 'share' ? screenShareStream : webcamStream;\n const isOn = type === 'share' ? screenShareOn : webcamOn;\n if (finalVideoRef.current) {\n if (isOn && stream) {\n const mediaStream = new MediaStream();\n mediaStream.addTrack(stream.track);\n finalVideoRef.current.setAttribute('muted', '');\n finalVideoRef.current.srcObject = mediaStream;\n finalVideoRef.current.setAttribute('playsinline', '');\n finalVideoRef.current.setAttribute('x5-playsinline', '');\n finalVideoRef.current.setAttribute('webkit-playsinline', '');\n finalVideoRef.current\n .play()\n .catch(error =>\n console.error('finalVideoRef.current.play() failed', error)\n );\n } else {\n finalVideoRef.current.srcObject = null;\n }\n }\n }, [\n type,\n ...(type === 'share'\n ? [screenShareOn, screenShareStream]\n : type === 'video'\n ? [webcamOn, webcamStream]\n : [])\n ]);\n\n return (\n <div\n ref={ref}\n className={`video-container participant-video-${participantId} ${className ||\n ''}`}\n style={{\n objectFit: type === 'share' ? 'contain' : 'none',\n height: '100%',\n ...containerStyle\n }}\n >\n <video\n width=\"100%\"\n height=\"100%\"\n ref={finalVideoRef}\n autoPlay\n className={classNameVideo}\n muted\n style={\n isLocal && type !== 'share'\n ? {\n transform: 'scaleX(-1)',\n WebkitTransform: 'scaleX(-1)',\n ...videoStyle\n }\n : videoStyle\n }\n />\n </div>\n );\n }\n);\n\n/**\n * Renders a video player for a participant. Handles attaching media stream\n * to video element and mirroring for local participant.\n *\n * @param participantId - ID of the participant.(Mandatory)\n * @param type - Type of stream (e.g., 'video' or 'share').\n * @param containerStyle - Optional CSS style for the outer container.\n * @param className - Optional CSS class for the container.\n * @param classNameVideo - Optional CSS class for the video element.\n * @param videoStyle - Optional CSS style for the video element.\n * @param videoRef - Optional ref to the underlying <video> element.\n */\n\nconst VideoPlayer = ({ participantId, type, ...props }) => {\n // Memoize the wrapped component to prevent unnecessary re-renders\n const VideoPlayerComponent = useMemo(() => {\n return type === 'share'\n ? VideoSDKPlayer\n : withAdaptiveObservers(VideoSDKPlayer);\n }, [type, participantId]);\n\n return (\n <VideoPlayerComponent\n participantId={participantId}\n type={type}\n {...props}\n />\n );\n};\n\n/**\n * Renders an audio player for a participant's mic or screen share audio.\n *\n * @param participantId - ID of the participant.(Mandatory)\n * @param type - Type of audio stream ('mic' or 'shareAudio').\n * @returns A HTML audio element with the stream attached.\n */\n\nconst AudioPlayer = ({ participantId, type }) => {\n // Getting participant properties\n const { micStream, isLocal, screenShareAudioStream } = useParticipant(\n participantId\n );\n\n const micRef = useRef(null);\n\n useEffect(() => {\n if (micRef.current) {\n const audioStream =\n type === 'shareAudio' ? screenShareAudioStream : micStream;\n\n if (audioStream) {\n const mediaStream = new MediaStream();\n mediaStream.addTrack(audioStream.track);\n\n micRef.current.srcObject = mediaStream;\n micRef.current\n .play()\n .catch(error => console.error('micRef.current.play() failed', error));\n } else {\n micRef.current.srcObject = null;\n }\n }\n }, [micStream, screenShareAudioStream, type]);\n\n return <audio ref={micRef} autoPlay playsInline muted={isLocal} />;\n};\n\nexport {\n VideoPlayer,\n AudioPlayer,\n withAdaptiveObservers,\n MeetingProvider,\n useMeeting,\n useTranscription,\n useTranslation,\n useWhiteboard,\n useCharacter,\n useParticipant,\n useStream,\n usePubSub,\n useRealtimeStore,\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 ExternalE2EEKeyProvider\n};\n"],"names":["eventPrifix","events","data","error","eventEmitter","EventEmitter","setMaxListeners","debounce","func","delay","timeout","_this","_len","arguments","length","args","Array","_key","clearTimeout","setTimeout","apply","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$onPausedAllStrea","onPausedAllStreams","_ref$onResumedAllStre","onResumedAllStreams","_ref$onRecordingStart","onRecordingStarted","_ref$onRecordingStopp","onRecordingStopped","_ref$onData","onData","_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","_ref$onCharacterJoine","onCharacterJoined","_ref$onCharacterLeft","onCharacterLeft","_ref$onMediaRelayStar","onMediaRelayStarted","_ref$onMediaRelayStop","onMediaRelayStopped","_ref$onMediaRelayErro","onMediaRelayError","_ref$onMediaRelayRequ","onMediaRelayRequestResponse","_ref$onMediaRelayRequ2","onMediaRelayRequestReceived","_ref$onQualityLimitat","onQualityLimitation","useEffect","on","off","useContext","MeetingConsumer","_ref2","children","_ref2$onParticipantJo","_ref2$onParticipantLe","_ref2$onSpeakerChange","_ref2$onPresenterChan","_ref2$onMainParticipa","_ref2$onEntryRequeste","_ref2$onEntryResponde","_ref2$onPausedAllStre","_ref2$onResumedAllStr","_ref2$onRecordingStar","_ref2$onRecordingStop","_ref2$onData","_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","_ref2$onCharacterJoin","_ref2$onCharacterLeft","_ref2$onMediaRelaySta","_ref2$onMediaRelaySto","_ref2$onMediaRelayErr","_ref2$onMediaRelayReq","_ref2$onMediaRelayReq2","_ref2$onQualityLimita","React","createElement","Fragment","Consumer","MeetingProvider","config","token","joinWithoutUserInteraction","_reinitialiseMeetingOnConfigChange","reinitialiseMeetingOnConfigChange","deviceInfo","keyProvider","_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","_useState0","messages","setMessages","_useState1","Map","participants","setParticipants","_useState10","characters","setCharacters","_useState11","pinnedParticipants","setPinnedParticipants","_useState12","isLiveStreaming","setIsLiveStreaming","_useState13","connections","setConnections","_useState14","isMeetingJoined","setIsMeetingJoined","_useState15","isHls","setIsHls","_useState16","recordingState","setRecordingState","_useState17","livestreamState","setLivestreamState","_useState18","hlsState","setHlsState","_useState19","downstreamUrl","playbackHlsUrl","livestreamUrl","hlsUrls","setHlsUrls","_useState20","transcriptionState","setTranscriptionState","_useState21","translationState","setTranslationState","meetingRef","useRef","localMicOnRef","localWebcamOnRef","localScreenShareOnRef","isRecordingRef","keyProviderRef","configRef","tokenRef","joinedOnFirstRender","isHlsRef","useMemo","current","resetStates","_handle_participant_joined","participant","set","id","participantsToSet","emit","_handle_participant_left","reason","newParticipants","_handle_presenter_changed","_meetingRef$current","_meetingRef$current$l","_handle_main_participant_changed","_handle_speaker_changed","_handle_chat_message","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","switchRoomId","_handle_meeting_left","_meeting$localPartici","_handle_meeting_state_changed","_handle_pin_state_changed","_handle_streams_paused","_handle_streams_resumed","_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_whiteboard_stopped","_handle_whiteboard_started","_handle_transcription_state_changed","_handle_transcription_text","_handle_translation_state_changed","_handle_translation_text","_handle_translation_language_changed","_handle_character_joined","_handle_character_left","_handle_media_relay_started","_handle_media_relay_stopped","_handle_media_relay_error","_handle_media_relay_request_response","_handle_media_relay_request_received","_handle_quality_limitation_received","state","pinnedBy","cam","share","pinnedParticipantsToSet","_ref3","_ref4","connection","connectionsToSet","connectionId","newConnections","d","status","character","charactersToSet","newCharacters","_meetingRef$current2","_meetingRef$current2$","part","get","mode","join","VideoSDK","initMeeting","leave","end","pauseAllStreams","resumeAllStreams","startRecording","webhookUrl","awsDirPath","transcription","stopRecording","unmuteMic","customAudioTrack","undefined","muteMic","toggleMic","disableWebcam","enableWebcam","customVideoTrack","toggleWebcam","switchTo","_ref5","meetingId","disableScreenShare","enableScreenShare","customScreenShareTrack","toggleScreenShare","changeMode","send","payload","options","reliability","Promise","resolve","e","reject","respondEntry","getMics","getWebcams","changeWebcam","obj","replaceWebcamStream","changeMic","startVideo","_ref6","link","stopVideo","resumeVideo","pauseVideo","_ref7","currentTime","enableAdaptiveSubscription","disableAdaptiveSubscription","requestMediaRelay","_ref8","destinationMeetingId","kinds","stopMediaRelay","seekVideo","_ref9","startLivestream","streamInfo","stopLivestream","connectTo","_ref0","then","startHls","stopHls","initSDK","setKeyProvider","analytics","sdkType","sdkVersion","reactSDKVersion","Provider","value","baseUrl","selectedCameraDevice","selectedMicrophoneDevice","useParticipant","_ref$onStreamEnabled","onStreamEnabled","_ref$onStreamDisabled","onStreamDisabled","_ref$onMediaStatusCha","onMediaStatusChanged","_ref$onVideoQualityCh","onVideoQualityChanged","_ref$onStreamPaused","onStreamPaused","_ref$onStreamResumed","onStreamResumed","_ref$onProducerAdded","onProducerAdded","_ref$onProducerRemove","onProducerRemoved","_ref$onConsumerAdded","onConsumerAdded","_ref$onConsumerRemove","onConsumerRemoved","webcamStream","setwebcamStream","micStream","setMicStream","screenShareStream","setScreenShareStream","screenShareAudioStream","setScreenShareAudioStream","_useMemo","_meeting$pinnedPartic","pinState","webcamOn","setWebcamOn","micOn","setMicOn","setMode","setTrack","unSetTrack","_handleStreamEnabled","_handleStreamPaused","_handleStreamResumed","_handleParticipantModeChanged","_handleStreamDisabled","_handleVideoQualityChanged","peerId","prevQuality","currentQuality","_handleMediaStatusChanged","newStatus","_handleProducerAdded","_handleProducerRemoved","_handleConsumerAdded","_handleConsumerRemoved","setQuality","quality","setViewPort","width","height","setScreenShareQuality","enableMic","disableMic","pin","unpin","remove","captureImage","_temp2","getAudioStats","getVideoStats","getShareStats","getShareAudioStats","consumeWebcamStreams","consumeMicStreams","stopConsumingWebcamStreams","stopConsumingMicStreams","streams","forEach","displayName","metaData","screenShareOn","isLocal","isActiveSpeaker","isMainParticipant","useStream","streamId","_ref$onStreamStateCha","onStreamStateChanged","setStream","_handleStreamStateChanged","findStream","_iterator","_createForOfIteratorHelperLoose","values","_step","done","pause","resume","codec","paused","useConnection","onMeeting","Error","connectionParticipants","_connectionParticipants","setConnectionParticipants","_handleParticipantJoined","_handleParticipantLeft","_handleChatMessage","close","sendChatMessage","usePubSub","topic","_ref$onMessageReceive","onMessageReceived","_ref$onOldMessagesRec","onOldMessagesReceived","_useMeeting","isSubscribed","publish","message","pubSub","_handlePubSub","subscribeToPubsub","_meeting$pubSub","subscribe","_meeting$pubSub2","unsubscribe","useRealtimeStore","key","_ref$onValueChanged","onValueChanged","observerIdRef","isObserving","setValue","realtimeStore","getValue","_handleRealtimeStore","subscribeToKey","_meeting$realtimeStor3","observe","observer","_meeting$realtimeStor4","stopObserving","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","useTranslation","_ref$onTranslationSta","onTranslationStateChanged","_ref$onTranslationLan","onTranslationLanguageChanged","_ref$onTranslationTex","onTranslationText","startTranslation","changeTranslationLanguage","language","stopTranslation","useCharacter","interactionId","characterMode","characterRole","knowledgeBases","_ref2$onCharacterStat","onCharacterStateChanged","_ref2$onCharacterMess","onCharacterMessage","_ref2$onUserMessage","onUserMessage","_ref2$onStreamEnabled","_ref2$onStreamDisable","_ref2$onMediaStatusCh","_ref2$onVideoQualityC","chars","from","find","createCharacter","characterState","setCharacterState","_handleCharacterStateChanged","_handleCharacterMessage","_handleUserMessage","_handleOnData","_handleOnError","_handleCharacterJoined","_handleCharacterLeft","sendMessage","interrupt","useWhiteboard","whiteboardUrl","setWhiteboardUrl","handleWhiteboardStarted","handleWhiteboardStopped","startWhiteboard","_catch","console","stopWhiteboard","Constants","createCameraVideoTrack","_ref$cameraId","cameraId","_ref$encoderConfig","encoderConfig","_ref$facingMode","facingMode","_ref$optimizationMode","optimizationMode","_ref$multiStream","multiStream","_ref$bitrateMode","bitrateMode","BitrateMode","BALANCED","_ref$maxLayer","maxLayer","createScreenShareVideoTrack","_ref2$encoderConfig","_ref2$optimizationMod","_ref2$withAudio","withAudio","_ref2$multiStream","createMicrophoneAudioTrack","_ref3$noiseConfig","noiseConfig","_ref3$encoderConfig","_ref3$microphoneId","microphoneId","getNetworkStats","timeoutDuration","withAdaptiveObservers","VideoPlayerComponent","intersectionObserverOptions","root","rootMargin","threshold","debounceDelay","props","type","ref","observerRef","resizeObserverRef","_useParticipant","element","disconnect","handleIntersectionChange","entries","isArray","entry","intersectionRatio","pausedBy","_iterator2","_step2","IntersectionObserver","processResize","handleResize","_entries$0$contentRec","contentRect","ResizeObserver","_extends","VideoSDKPlayer","forwardRef","_ref5$type","_ref5$containerStyle","containerStyle","_ref5$className","className","_ref5$classNameVideo","classNameVideo","_ref5$videoStyle","videoStyle","videoRef","_useParticipant2","internalRef","finalVideoRef","isOn","mediaStream","MediaStream","addTrack","setAttribute","srcObject","play","style","objectFit","autoPlay","muted","transform","WebkitTransform","VideoPlayer","_objectWithoutPropertiesLoose","_excluded","AudioPlayer","_useParticipant3","micRef","audioStream","playsInline"],"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/stream/useStream.js","../src/connection/useConnection.js","../src/pubSub/usePubSub.js","../src/realtimeStore/useRealtimeStore.js","../src/upload/useFile.js","../src/useMediaDevice.js","../src/transcription/transcription.js","../src/translation/translation.js","../src/character/useCharacter.js","../node_modules/babel-plugin-transform-async-to-promises/helpers.mjs","../src/whiteboard/useWhiteboard.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 data: `${eventPrifix}-data`,\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 'translation-state-changed': `${eventPrifix}-translation-state-changed`,\n 'translation-language-changed': `${eventPrifix}-translation-language-changed`,\n 'translation-text': `${eventPrifix}-translation-text`,\n 'character-joined': `${eventPrifix}-character-joined`,\n 'character-left': `${eventPrifix}-character-left`,\n 'whiteboard-started': `${eventPrifix}-whiteboard-started`,\n 'whiteboard-stopped': `${eventPrifix}-whiteboard-stopped`,\n 'paused-all-streams': `${eventPrifix}-paused-all-streams`,\n 'resumed-all-streams': `${eventPrifix}-resumed-all-streams`,\n 'media-relay-started': `${eventPrifix}-media-relay-started`,\n 'media-relay-stopped': `${eventPrifix}-media-relay-stopped`,\n 'media-relay-error': `${eventPrifix}-media-relay-error`,\n 'media-relay-request-response': `${eventPrifix}-media-relay-request-response`,\n 'media-relay-request-received': `${eventPrifix}-media-relay-request-received`,\n 'quality-limitation': `${eventPrifix}-quality-limitation`\n};\n\nconst eventEmitter = new EventEmitter();\neventEmitter.setMaxListeners(9999);\n\nfunction debounce(func, delay) {\n let timeout;\n return function(...args) {\n clearTimeout(timeout);\n timeout = setTimeout(() => func.apply(this, args), delay);\n };\n}\n\nexport { eventEmitter, events, debounce };\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 * onPausedAllStreams?: ({\n * kind,\n * }:{\n * kind: \"audio\" | \"video\" | \"share\" | \"shareAudio\" | \"all\",\n * }) => void,\n * onResumedAllStreams?: ({\n * kind,\n * }:{\n * kind: \"audio\" | \"video\" | \"share\" | \"shareAudio\" | \"all\",\n * }) => void,\n * onRecordingStarted?: Function,\n * onRecordingStopped?: Function,\n * onData?: 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 * onMediaRelayStarted?: ({\n * meetingId\n * }: {\n * meetingId: string\n * }) => void,\n * onMediaRelayStopped?: ({\n * meetingId,\n * reason\n * }: {\n * meetingId: string,\n * reason: string\n * }) => void,\n * onMediaRelayError?: ({\n * meetingId,\n * error\n * }: {\n * meetingId: string,\n * error: string\n * }) => void,\n * onMediaRelayRequestResponse?: ({\n * decision,\n * decidedBy,\n * meetingId\n * }: {\n * decision: \"accepted\" | \"rejected\",\n * decidedBy: string,\n * meetingId: string\n * }) => void,\n * onMediaRelayRequestReceived?: ({\n * participantId,\n * meetingId,\n * displayName,\n * accept,\n * reject\n * }: {\n * participantId: string,\n * meetingId: string,\n * displayName: string,\n * accept: () => void,\n * reject: () => void\n * }) => void,\n * onQualityLimitation?: ({\n * type,\n * state,\n * timestamp,\n * }: {\n * type: \"congestion\" | \"bandwidth\" | \"cpu\",\n * state: \"detected\" | \"resolved\",\n * timestamp: number,\n * }) => void,\n *}}\n * @returns {{\n * meetingId: string,\n * meeting: Meeting,\n * localParticipant: Participant,\n * activeSpeakerId: string,\n * participants: Map<string, Participant>,\n * characters: Map<string, Character>;\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 * send: (payload: string | Blob | ArrayBuffer | ArrayBufferView,options?: {reliability?: \"RELIABLE\" | \"UNRELIABLE\"}) => Promise<boolean>\n * toggleWebcam: (customVideoTrack?: MediaStream | undefined) => void\n * enableScreenShare: (customScreenShareTrack?: MediaStream | undefined) => void\n * disableScreenShare: () => void\n * toggleScreenShare: (customScreenShareTrack?: MediaStream | undefined) => void\n * pauseAllStreams: (kind : \"audio\" | \"video\" | \"share\" | \"shareAudio\" | \"all\" | undefined) => void\n * resumeAllStreams: (kind: \"audio\" | \"video\" | \"share\" | \"shareAudio\" | \"all\" | 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 * switchTo: ({\n * meetingId,\n * token\n * }: {\n * meetingId: string;\n * token?: string;\n * }) => 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: 'SEND_AND_RECV' | 'SIGNALLING_ONLY' | 'RECV_ONLY'): 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 onPausedAllStreams = () => {},\n onResumedAllStreams = () => {},\n onRecordingStarted = () => {},\n onRecordingStopped = () => {},\n onData = () => {},\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 onCharacterJoined = () => {},\n onCharacterLeft = () => {},\n onMediaRelayStarted = () => {},\n onMediaRelayStopped = () => {},\n onMediaRelayError = () => {},\n onMediaRelayRequestResponse = () => {},\n onMediaRelayRequestReceived = () => {},\n onQualityLimitation = () => {}\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['paused-all-streams'], onPausedAllStreams);\n eventEmitter.on(events['resumed-all-streams'], onResumedAllStreams);\n eventEmitter.on(events['recording-started'], onRecordingStarted);\n eventEmitter.on(events['recording-stopped'], onRecordingStopped);\n eventEmitter.on(events['data'], onData);\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 eventEmitter.on(events['character-joined'], onCharacterJoined);\n eventEmitter.on(events['character-left'], onCharacterLeft);\n eventEmitter.on(events['media-relay-started'], onMediaRelayStarted);\n eventEmitter.on(events['media-relay-stopped'], onMediaRelayStopped);\n eventEmitter.on(events['media-relay-error'], onMediaRelayError);\n eventEmitter.on(\n events['media-relay-request-response'],\n onMediaRelayRequestResponse\n );\n eventEmitter.on(\n events['media-relay-request-received'],\n onMediaRelayRequestReceived\n );\n eventEmitter.on(events['quality-limitation'], onQualityLimitation);\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['paused-all-streams'], onPausedAllStreams);\n eventEmitter.off(events['resumed-all-streams'], onResumedAllStreams);\n eventEmitter.off(events['recording-started'], onRecordingStarted);\n eventEmitter.off(events['recording-stopped'], onRecordingStopped);\n eventEmitter.off(events['data'], onData);\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 eventEmitter.off(events['character-joined'], onCharacterJoined);\n eventEmitter.off(events['character-left'], onCharacterLeft);\n eventEmitter.off(events['media-relay-started'], onMediaRelayStarted);\n eventEmitter.off(events['media-relay-stopped'], onMediaRelayStopped);\n eventEmitter.off(events['media-relay-error'], onMediaRelayError);\n eventEmitter.off(\n events['media-relay-request-response'],\n onMediaRelayRequestResponse\n );\n eventEmitter.off(\n events['media-relay-request-received'],\n onMediaRelayRequestReceived\n );\n eventEmitter.off(events['quality-limitation'], onQualityLimitation);\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 onPausedAllStreams = () => {},\n onResumedAllStreams = () => {},\n onRecordingStarted = () => {},\n onRecordingStopped = () => {},\n onData = () => {},\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 onCharacterJoined = () => {},\n onCharacterLeft = () => {},\n onMediaRelayStarted = () => {},\n onMediaRelayStopped = () => {},\n onMediaRelayError = () => {},\n onMediaRelayRequestResponse = () => {},\n onMediaRelayRequestReceived = () => {},\n onQualityLimitation = () => {}\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['paused-all-streams'], onPausedAllStreams);\n eventEmitter.on(events['resumed-all-streams'], onResumedAllStreams);\n eventEmitter.on(events['recording-started'], onRecordingStarted);\n eventEmitter.on(events['recording-stopped'], onRecordingStopped);\n eventEmitter.on(events['data'], onData);\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 eventEmitter.on(events['character-joined'], onCharacterJoined);\n eventEmitter.on(events['character-left'], onCharacterLeft);\n eventEmitter.on(events['media-relay-started'], onMediaRelayStarted);\n eventEmitter.on(events['media-relay-stopped'], onMediaRelayStopped);\n eventEmitter.on(events['media-relay-error'], onMediaRelayError);\n eventEmitter.on(\n events['media-relay-request-response'],\n onMediaRelayRequestResponse\n );\n eventEmitter.on(\n events['media-relay-request-received'],\n onMediaRelayRequestReceived\n );\n eventEmitter.on(events['quality-limitation'], onQualityLimitation);\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['paused-all-streams'], onPausedAllStreams);\n eventEmitter.off(events['resumed-all-streams'], onResumedAllStreams);\n eventEmitter.off(events['recording-started'], onRecordingStarted);\n eventEmitter.off(events['recording-stopped'], onRecordingStopped);\n eventEmitter.off(events['data'], onData);\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 eventEmitter.off(events['character-joined'], onCharacterJoined);\n eventEmitter.off(events['character-left'], onCharacterLeft);\n eventEmitter.off(events['media-relay-started'], onMediaRelayStarted);\n eventEmitter.off(events['media-relay-stopped'], onMediaRelayStopped);\n eventEmitter.off(events['media-relay-error'], onMediaRelayError);\n eventEmitter.off(\n events['media-relay-request-response'],\n onMediaRelayRequestResponse\n );\n eventEmitter.off(\n events['media-relay-request-received'],\n onMediaRelayRequestReceived\n );\n eventEmitter.off(events['quality-limitation'], onQualityLimitation);\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\" | \"TCP_ONLY\",\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 * signalingBaseUrl?: string | undefined;\n * multiStream?: boolean,\n * mode?: \"SEND_AND_RECV\" | \"SIGNALLING_ONLY\" | \"RECV_ONLY\",\n * metaData?: object,\n * defaultCamera?: 'front' | 'back',\n * debugMode: boolean,\n * translationLanguage?: string\n * speakingLanguage?: string\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 keyProvider\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 [characters, setCharacters] = 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 [translationState, setTranslationState] = useState(\n 'TRANSLATION_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 keyProviderRef = useRef(keyProvider);\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 setCharacters(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 setTranslationState('TRANSLATION_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, reason) => {\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, reason);\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['data'], 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 if (data.switchRoomId) {\n setMessages(s => [...s, ...data.messages]);\n eventEmitter.emit(events['meeting-joined'], data);\n } else {\n joinedOnFirstRender.current = true;\n setMessages(s => [...s, ...data.messages]);\n eventEmitter.emit(events['meeting-joined'], data);\n setIsMeetingJoined(true);\n }\n };\n\n const _handle_meeting_left = data => {\n eventEmitter.emit(events['meeting-left'], data);\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('data', _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('paused-all-streams', _handle_streams_paused);\n meeting.off('resumed-all-streams', _handle_streams_resumed);\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('whiteboard-stopped', _handle_whiteboard_stopped);\n meeting.off('whiteboard-started', _handle_whiteboard_started);\n meeting.off(\n 'transcription-state-changed',\n _handle_transcription_state_changed\n );\n meeting.off('transcription-text', _handle_transcription_text);\n meeting.off(\n 'translation-state-changed',\n _handle_translation_state_changed\n );\n meeting.off('translation-text', _handle_translation_text);\n meeting.off(\n 'translation-language-changed',\n _handle_translation_language_changed\n );\n meeting.off('character-joined', _handle_character_joined);\n meeting.off('character-left', _handle_character_left);\n meeting.off('media-relay-started', _handle_media_relay_started);\n meeting.off('media-relay-stopped', _handle_media_relay_stopped);\n meeting.off('media-relay-error', _handle_media_relay_error);\n meeting.off(\n 'media-relay-request-response',\n _handle_media_relay_request_response\n );\n meeting.off(\n 'media-relay-request-received',\n _handle_media_relay_request_received\n );\n meeting.off('quality-limitation', _handle_quality_limitation_received);\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_streams_paused = ({ kind }) => {\n eventEmitter.emit(events['paused-all-streams'], {\n kind\n });\n };\n\n const _handle_streams_resumed = ({ kind }) => {\n eventEmitter.emit(events['resumed-all-streams'], {\n kind\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 _handle_translation_state_changed = data => {\n setTranslationState(data?.status);\n eventEmitter.emit(events['translation-state-changed'], data);\n };\n\n const _handle_translation_text = data => {\n eventEmitter.emit(events['translation-text'], data);\n };\n\n const _handle_translation_language_changed = data => {\n eventEmitter.emit(events['translation-language-changed'], data);\n };\n\n const _handle_whiteboard_started = data => {\n eventEmitter.emit(events['whiteboard-started'], data);\n };\n\n const _handle_whiteboard_stopped = data => {\n eventEmitter.emit(events['whiteboard-stopped'], data);\n };\n\n const _handle_character_joined = character => {\n setCharacters(characters => {\n characters.set(character.id, character);\n const charactersToSet = new Map(characters);\n return charactersToSet;\n });\n eventEmitter.emit(events['character-joined'], character);\n };\n\n const _handle_character_left = character => {\n setCharacters(characters => {\n characters.delete(character.id);\n\n const newCharacters = new Map(characters);\n return newCharacters;\n });\n eventEmitter.emit(events['character-left'], character);\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 _handle_media_relay_started = data => {\n eventEmitter.emit(events['media-relay-started'], data);\n };\n const _handle_media_relay_stopped = data => {\n eventEmitter.emit(events['media-relay-stopped'], data);\n };\n const _handle_media_relay_error = data => {\n eventEmitter.emit(events['media-relay-error'], data);\n };\n const _handle_media_relay_request_response = data => {\n eventEmitter.emit(events['media-relay-request-response'], data);\n };\n const _handle_media_relay_request_received = data => {\n eventEmitter.emit(events['media-relay-request-received'], data);\n };\n const _handle_quality_limitation_received = data => {\n eventEmitter.emit(events['quality-limitation'], data);\n };\n\n const join = () => {\n const meeting = VideoSDK && VideoSDK.initMeeting(configRef.current);\n setMeeting(meeting);\n const { localParticipant, participants, characters } = meeting;\n participants.set(localParticipant.id, localParticipant);\n setParticipants(participants);\n setCharacters(characters);\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('data', _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 meeting.on('paused-all-streams', _handle_streams_paused);\n meeting.on('resumed-all-streams', _handle_streams_resumed);\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 meeting.on('translation-state-changed', _handle_translation_state_changed);\n meeting.on('translation-text', _handle_translation_text);\n meeting.on(\n 'translation-language-changed',\n _handle_translation_language_changed\n );\n meeting.on('whiteboard-started', _handle_whiteboard_started);\n meeting.on('whiteboard-stopped', _handle_whiteboard_stopped);\n meeting.on('character-joined', _handle_character_joined);\n meeting.on('character-left', _handle_character_left);\n\n meeting.on('media-relay-started', _handle_media_relay_started);\n meeting.on('media-relay-stopped', _handle_media_relay_stopped);\n meeting.on('media-relay-error', _handle_media_relay_error);\n meeting.on(\n 'media-relay-request-response',\n _handle_media_relay_request_response\n );\n meeting.on(\n 'media-relay-request-received',\n _handle_media_relay_request_received\n );\n meeting.on('quality-limitation', _handle_quality_limitation_received);\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\n const pauseAllStreams = kind => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.pauseAllStreams(kind);\n }\n };\n\n const resumeAllStreams = kind => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.resumeAllStreams(kind);\n }\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\n const switchTo = ({ meetingId, token }) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.switchTo({ meetingId, token });\n }\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 send = async (payload, options = { reliability: 'RELIABLE' }) => {\n const meeting = meetingRef.current;\n if (meeting) {\n return await meeting.send(payload, options);\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 enableAdaptiveSubscription = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.enableAdaptiveSubscription();\n }\n };\n\n const disableAdaptiveSubscription = () => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.disableAdaptiveSubscription();\n }\n };\n\n const requestMediaRelay = ({ destinationMeetingId, token, kinds }) => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.requestMediaRelay({ destinationMeetingId, token, kinds });\n }\n };\n\n const stopMediaRelay = destinationMeetingId => {\n const meeting = meetingRef.current;\n if (meeting) {\n meeting.stopMediaRelay(destinationMeetingId);\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 keyProviderRef.current && VideoSDK.setKeyProvider(keyProviderRef.current);\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 characters,\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 translationState,\n isMeetingJoined,\n selectedCameraDevice: meeting?.selectedCameraDevice,\n selectedMicrophoneDevice: meeting?.selectedMicrophoneDevice,\n //\n join,\n leave,\n end,\n //\n pauseAllStreams,\n resumeAllStreams,\n //\n startRecording,\n stopRecording,\n //\n send,\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\n switchTo,\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 enableAdaptiveSubscription,\n disableAdaptiveSubscription,\n\n requestMediaRelay,\n stopMediaRelay\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 * onStreamPaused?: Function,\n * onStreamResumed?: Function,\n * onProducerAdded?: Function,\n * onProducerRemoved?: Function,\n * onConsumerAdded?: Function,\n * onConsumerRemoved?: 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: \"SEND_AND_RECV\" | \"SIGNALLING_ONLY\" | \"RECV_ONLY\";\n * metaData: object;\n * consumeMicStreams: () => void;\n * consumeWebcamStreams: () => void;\n * stopConsumingMicStreams: () => void;\n * stopConsumingWebcamStreams: () => void;\n * setQuality: (quality: \"low\" | \"med\" | 'high') => void;\n * setScreenShareQuality: (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 * getShareAudioStats: () => 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 * 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 onStreamPaused = () => {},\n onStreamResumed = () => {},\n onProducerAdded = () => {},\n onProducerRemoved = () => {},\n onConsumerAdded = () => {},\n onConsumerRemoved = () => {}\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 _handleStreamPaused = data => {\n onStreamPaused(data);\n };\n\n const _handleStreamResumed = data => {\n onStreamResumed(data);\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 _handleProducerAdded = data => {\n onProducerAdded(data);\n };\n\n const _handleProducerRemoved = data => {\n onProducerRemoved(data);\n };\n\n const _handleConsumerAdded = data => {\n onConsumerAdded(data);\n };\n\n const _handleConsumerRemoved = data => {\n onConsumerRemoved(data);\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 setScreenShareQuality = quality => {\n participant?.setScreenShareQuality(quality);\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 getShareAudioStats = async () => {\n return participant?.getShareAudioStats();\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\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('stream-paused', _handleStreamPaused);\n\n participant?.on('stream-resumed', _handleStreamResumed);\n\n participant?.on('media-status-changed', _handleMediaStatusChanged);\n\n participant?.on('video-quality-changed', _handleVideoQualityChanged);\n\n participant?.on('producer-added', _handleProducerAdded);\n\n participant?.on('producer-removed', _handleProducerRemoved);\n\n participant?.on('consumer-added', _handleConsumerAdded);\n\n participant?.on('consumer-removed', _handleConsumerRemoved);\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('stream-paused', _handleStreamPaused);\n\n participant?.off('stream-resumed', _handleStreamResumed);\n\n participant?.off('media-status-changed', _handleMediaStatusChanged);\n\n participant?.off('video-quality-changed', _handleVideoQualityChanged);\n\n participant?.off('producer-added', _handleProducerAdded);\n\n participant?.off('producer-removed', _handleProducerRemoved);\n\n participant?.off('consumer-added', _handleConsumerAdded);\n\n participant?.off('consumer-removed', _handleConsumerRemoved);\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 setScreenShareQuality,\n setViewPort,\n enableMic,\n disableMic,\n enableWebcam,\n disableWebcam,\n captureImage,\n pin,\n unpin,\n remove,\n getAudioStats,\n getVideoStats,\n getShareStats,\n getShareAudioStats\n };\n};\n\nexport default useParticipant;\n","import { useState, useEffect, useMemo } from 'react';\nimport { useMeeting } from '../meeting/meetingProviderContextDef';\nimport { Stream } from '@videosdk.live/js-sdk';\n\n/**\n * Hook to get a Stream by ID and access its methods.\n * @param {string} streamId\n * @param {{\n * onStreamStateChanged?: Function,\n * }} options\n * @returns {{\n * kind: 'audio' | 'video' | 'share' | 'shareAudio'\n * stream: Stream;\n * codec: string;\n * track: MediaStreamTrack;\n * paused: boolean;\n * pause: () => void,\n * resume: () => void,\n * }}\n */\nconst useStream = (streamId, { onStreamStateChanged = () => {} } = {}) => {\n const [stream, setStream] = useState(null);\n\n const meeting = useMeeting();\n\n const { participants } = useMemo(() => {\n const participants = meeting?.participants;\n return {\n participants\n };\n }, [meeting]);\n\n const _handleStreamStateChanged = data => {\n onStreamStateChanged(data);\n };\n\n useEffect(() => {\n if (!meeting) return;\n if (!streamId) return;\n\n // Iterate over all participants' streams to find the stream\n const findStream = () => {\n for (let participant of participants.values()) {\n const stream = participant.streams.get(streamId);\n if (stream != null) {\n return stream;\n }\n }\n return null;\n };\n\n const s = findStream();\n if (!s) return;\n setStream(s);\n\n s?.on('state', _handleStreamStateChanged);\n\n return () => {\n s?.off('state', _handleStreamStateChanged);\n };\n }, [streamId]);\n\n const pause = () => {\n if (stream) {\n stream.pause();\n }\n };\n\n const resume = () => {\n if (stream) {\n stream.resume();\n }\n };\n\n return {\n kind: stream?.kind,\n codec: stream?.codec,\n track: stream?.track,\n paused: stream?.paused,\n stream,\n pause,\n resume\n };\n};\n\nexport default useStream;\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 * onData?: 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 onData: () => {}\n }\n }\n) => {\n const onParticipantJoined = onMeeting?.onParticipantJoined;\n const onParticipantLeft = onMeeting?.onParticipantLeft;\n const onData = onMeeting?.onData;\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 onData(data);\n };\n\n useEffect(() => {\n connection?.meeting.on('participant-joined', _handleParticipantJoined);\n connection?.meeting.on('participant-left', _handleParticipantLeft);\n connection?.meeting.on('data', _handleChatMessage);\n\n return () => {\n connection?.meeting.off('participant-joined', _handleParticipantJoined);\n connection?.meeting.off('participant-left', _handleParticipantLeft);\n connection?.meeting.off('data', _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 return 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 { useEffect, useRef, useState } from 'react';\nimport { useMeeting } from '../meeting/meetingProviderContextDef';\n\n/**\n *\n * @param {string} key\n * @param {{\n * onValueChanged?: Function,\n * }} options\n * @returns {{\n * setValue: (value : string) => void\n * getValue: () => string\n * }}\n */\nconst useRealtimeStore = (key, { onValueChanged = () => {} } = {}) => {\n const observerIdRef = useRef(null);\n const { meeting, isMeetingJoined } = useMeeting();\n const isObserving = useRef(false);\n\n /**\n * Set or update a key-value pair in the RealtimeStore.\n *\n * @async\n * @param {String|null} value - The value to set (string only). Pass `null` to delete the key.\n * @returns {Promise<void>}\n *\n * @throws {Error} If value is not a string or exceeds 1 KB.\n * @throws {Error} If request fails.\n */\n const setValue = async value => {\n if (meeting) {\n return await meeting.realtimeStore.setValue(key, value);\n }\n };\n\n /**\n * Retrieve the value associated with a key from the RealtimeStore.\n *\n * @async\n * @returns {Promise<String|null>} - Returns the stored value from the RealtimeStore..\n *\n * @throws {Error} If key doesn’t exist or request fails.\n */\n const getValue = async () => {\n if (meeting) {\n return await meeting.realtimeStore.getValue(key);\n }\n };\n\n const _handleRealtimeStore = data => {\n onValueChanged(data);\n };\n\n const subscribeToKey = async meeting => {\n const observer = await meeting?.realtimeStore?.observe(\n key,\n _handleRealtimeStore\n );\n if (observer) {\n observerIdRef.current = observer;\n }\n };\n\n useEffect(() => {\n if (meeting && !isObserving.current && isMeetingJoined && onValueChanged) {\n isObserving.current = true;\n subscribeToKey(meeting);\n\n return () => {\n if (observerIdRef.current) {\n meeting?.realtimeStore?.stopObserving(observerIdRef.current);\n observerIdRef.current = null;\n }\n isObserving.current = false;\n };\n }\n }, [meeting, isMeetingJoined]);\n\n return { setValue, getValue };\n};\n\nexport default useRealtimeStore;\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 { useMeeting } from '../meeting/meetingProviderContextDef';\nimport { useEffect } from 'react';\nimport { eventEmitter, events } from '../utils';\n\n/**\n *\n * @param {{\n * onTranslationStateChanged?: Function,\n * onTranslationLanguageChanged?: Function,\n * onTranslationText?: Function,\n * }} options\n * @returns {{\n * startTranslation: ( data: Object ) => Promise<void>\n * changeTranslationLanguage: ( data: String ) => Promise<void>\n * stopTranslation: () => Promise<void>\n * }}\n */\nconst useTranslation = ({\n onTranslationStateChanged = async () => {},\n onTranslationLanguageChanged = async () => {},\n onTranslationText = async () => {}\n} = {}) => {\n const mMeeting = useMeeting();\n\n useEffect(() => {\n eventEmitter.on(\n events['translation-state-changed'],\n onTranslationStateChanged\n );\n\n eventEmitter.on(\n events['translation-language-changed'],\n onTranslationLanguageChanged\n );\n\n eventEmitter.on(events['translation-text'], onTranslationText);\n\n // off event listeners\n return () => {\n eventEmitter.off(\n events['translation-state-changed'],\n onTranslationStateChanged\n );\n eventEmitter.off(\n events['translation-language-changed'],\n onTranslationLanguageChanged\n );\n eventEmitter.off(events['translation-text'], onTranslationText);\n };\n }, []);\n\n /**\n * @param {{webhookUrl?:string, modelConfig?:any}} config?\n */\n const startTranslation = async config => {\n return mMeeting.meeting.startTranslation(config);\n };\n\n const changeTranslationLanguage = async language => {\n return mMeeting.meeting.changeTranslationLanguage(language);\n };\n\n const stopTranslation = async () => {\n return mMeeting.meeting.stopTranslation();\n };\n\n return { startTranslation, changeTranslationLanguage, stopTranslation };\n};\n\nexport default useTranslation;\n","import { useEffect, useState, useMemo } from 'react';\nimport { useMeeting } from '../meeting/meetingProviderContextDef';\n\n/**\n *\n * @param {\n * {\n * interactionId?: string,\n * id?: string,\n * displayName?: string,\n * characterRole?: string,\n * characterMode?: \"text\" | \"co_pilot\" | \"auto_pilot\" | \"vision_pilot\",\n * knowledgeBases?: string[],\n * language?: string,\n * },\n * {\n * onCharacterMessage?: Function,\n * onData?: Function,\n * onError?: Function,\n * onUserMessage?: Function,\n * onStreamDisabled?: Function,\n * onStreamEnabled?: Function,\n * onMediaStatusChanged?: Function,\n * onVideoQualityChanged?: Function,\n * }} options\n *\n * @returns {\n *\n * displayName: string,\n * webcamStream: Stream,\n * micStream: Stream,\n * webcamOn: boolean,\n * micOn: boolean,\n * isActiveSpeaker: string,\n *\n * enableMic: Function,\n * disableMic: Function,\n * enableWebcam: Function,\n * disableWebcam: Function,\n *\n * join: Function,\n * leave: Function,\n * sendMessage: Function\n * interrupt: Function\n *\n *}\n *\n */\nconst useCharacter = (\n {\n interactionId,\n // OR\n id,\n characterMode,\n displayName,\n characterRole,\n knowledgeBases,\n language,\n metaData\n },\n {\n onCharacterStateChanged = () => {},\n onCharacterMessage = () => {},\n onUserMessage = () => {},\n onData = () => {},\n onError = () => {},\n\n onCharacterJoined = () => {},\n\n onCharacterLeft = () => {},\n onStreamEnabled = () => {},\n onStreamDisabled = () => {},\n onMediaStatusChanged = () => {},\n onVideoQualityChanged = () => {}\n } = {}\n) => {\n const [webcamStream, setwebcamStream] = useState(null);\n const [micStream, setMicStream] = useState(null);\n\n const mMeeting = useMeeting();\n\n /**\n * @type {Character}\n */\n const { character, activeSpeakerId } = useMemo(() => {\n let chars = Array.from(mMeeting.characters.values());\n const activeSpeakerId = mMeeting?.activeSpeakerId;\n\n return {\n character:\n chars.find(chars => chars.interactionId == interactionId) ||\n mMeeting.characters.get(id) ||\n mMeeting.meeting.createCharacter({\n interactionId,\n // OR\n displayName,\n id,\n characterRole,\n characterMode,\n knowledgeBases,\n language,\n metaData\n }),\n activeSpeakerId\n };\n }, [\n mMeeting.characters,\n interactionId,\n id,\n characterMode,\n displayName,\n characterRole,\n knowledgeBases,\n language,\n metaData\n ]);\n\n const [webcamOn, setWebcamOn] = useState(character?.webcamOn);\n const [micOn, setMicOn] = useState(character?.micOn);\n const [characterState, setCharacterState] = useState(null);\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 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 default:\n break;\n }\n };\n\n const _handleCharacterStateChanged = d => {\n const { status } = d;\n setCharacterState(status);\n onCharacterStateChanged(d);\n };\n\n const _handleCharacterMessage = d => {\n onCharacterMessage(d);\n };\n\n const _handleUserMessage = d => {\n onUserMessage(d);\n };\n\n const _handleOnData = (topic, d) => {\n onData(topic, d);\n };\n\n const _handleOnError = d => {\n onError(d);\n };\n\n const _handleCharacterJoined = () => {\n onCharacterJoined();\n };\n\n const _handleCharacterLeft = () => {\n onCharacterLeft();\n };\n\n const _handleStreamEnabled = stream => {\n setTrack(stream);\n onStreamEnabled(stream);\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 enableMic = () => {\n character?.enableMic();\n };\n const disableMic = () => {\n character?.disableMic();\n };\n const enableWebcam = () => {\n character?.enableWebcam();\n };\n const disableWebcam = () => {\n character?.disableWebcam();\n };\n const join = async () => {\n await character?.join();\n };\n const sendMessage = async d => {\n await character?.sendMessage(d);\n };\n const interrupt = async () => {\n await character?.interrupt();\n };\n const leave = async () => {\n await character?.leave();\n };\n\n useEffect(() => {\n const streams = character?.streams;\n\n if (streams) {\n streams.forEach(stream => {\n setTrack(stream);\n });\n }\n\n if (character?.micOn) {\n setMicOn(micOn);\n }\n\n if (character?.webcamOn) {\n setWebcamOn(webcamOn);\n }\n\n character?.on('character-state-changed', _handleCharacterStateChanged);\n\n character?.on('character-message', _handleCharacterMessage);\n\n character?.on('user-message', _handleUserMessage);\n\n character?.on('data', _handleOnData);\n\n character?.on('error', _handleOnError);\n\n character?.on('stream-enabled', _handleStreamEnabled);\n\n character?.on('stream-disabled', _handleStreamDisabled);\n\n character?.on('media-status-changed', _handleMediaStatusChanged);\n\n character?.on('video-quality-changed', _handleVideoQualityChanged);\n\n character?.on('character-joined', _handleCharacterJoined);\n\n character?.on('character-left', _handleCharacterLeft);\n\n return () => {\n character?.off('character-state-changed', _handleCharacterStateChanged);\n\n character?.off('character-message', _handleCharacterMessage);\n\n character?.off('user-message', _handleUserMessage);\n\n character?.off('data', _handleOnData);\n\n character?.off('error', _handleOnError);\n\n character?.off('stream-enabled', _handleStreamEnabled);\n\n character?.off('stream-disabled', _handleStreamDisabled);\n\n character?.off('media-status-changed', _handleMediaStatusChanged);\n\n character?.off('video-quality-changed', _handleVideoQualityChanged);\n\n character?.off('character-joined', _handleCharacterJoined);\n\n character?.off('character-left', _handleCharacterLeft);\n };\n }, [character]);\n\n return {\n displayName: character?.displayName,\n webcamStream,\n micStream,\n webcamOn: webcamOn || !!webcamStream,\n micOn: micOn || !!micStream,\n isActiveSpeaker: activeSpeakerId === id,\n\n interactionId: character?.interactionId,\n id: character?.id,\n characterMode: character?.characterMode,\n characterState: characterState || character?.characterState,\n knowledgeBases: character?.knowledgeBases,\n language: character?.language,\n\n enableMic,\n disableMic,\n enableWebcam,\n disableWebcam,\n\n join,\n leave,\n sendMessage,\n interrupt\n };\n};\n\nexport default useCharacter;\n","// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","import { useEffect, useState } from 'react';\nimport { useMeeting } from '../meeting/meetingProviderContextDef';\nimport { eventEmitter, events } from '../utils';\n\n/**\n *\n * @returns {{\n * startWhiteboard: () => Promise<void>,\n * stopWhiteboard: () => Promise<void>,\n * whiteboardUrl: string | null\n * }}\n */\n\nconst useWhiteboard = () => {\n const { meeting, isMeetingJoined } = useMeeting();\n const [whiteboardUrl, setWhiteboardUrl] = useState(null);\n\n useEffect(() => {\n if (!isMeetingJoined || !meeting) return;\n\n const handleWhiteboardStarted = data => {\n if (data?.url) {\n setWhiteboardUrl(data.url);\n }\n };\n\n const handleWhiteboardStopped = () => setWhiteboardUrl(null);\n\n eventEmitter.on(events['whiteboard-started'], handleWhiteboardStarted);\n eventEmitter.on(events['whiteboard-stopped'], handleWhiteboardStopped);\n\n return () => {\n eventEmitter.off(events['whiteboard-started'], handleWhiteboardStarted);\n eventEmitter.off(events['whiteboard-stopped'], handleWhiteboardStopped);\n };\n }, [meeting, isMeetingJoined]);\n\n const startWhiteboard = async () => {\n if (!isMeetingJoined || !meeting) {\n return;\n }\n\n try {\n await meeting.startWhiteboard();\n } catch (error) {\n console.error('Error starting whiteboard:', error);\n }\n };\n\n const stopWhiteboard = async () => {\n if (!isMeetingJoined || !meeting) {\n return;\n }\n\n try {\n await meeting.stopWhiteboard();\n } catch (error) {\n console.error('Error stopping whiteboard:', error);\n }\n };\n\n return {\n whiteboardUrl,\n startWhiteboard,\n stopWhiteboard\n };\n};\n\nexport default useWhiteboard;\n","import MeetingProvider from './meeting/MeetingProvider';\nimport {\n MeetingConsumer,\n useMeeting\n} from './meeting/meetingProviderContextDef';\nimport useParticipant from './participant/useParticipant';\nimport useStream from './stream/useStream';\nimport useConnection from './connection/useConnection';\nimport usePubSub from './pubSub/usePubSub';\nimport useRealtimeStore from './realtimeStore/useRealtimeStore';\nimport useFile from './upload/useFile';\nimport useMediaDevice from './useMediaDevice';\nimport useTranscription from './transcription/transcription';\nimport useTranslation from './translation/translation';\nimport useCharacter from './character/useCharacter';\nimport useWhiteboard from './whiteboard/useWhiteboard';\nimport {\n VideoSDK,\n CameraDeviceInfo,\n MicrophoneDeviceInfo,\n DeviceInfo,\n ExternalE2EEKeyProvider\n} from '@videosdk.live/js-sdk';\nimport React, { useEffect, useRef, forwardRef, useMemo } from 'react';\nimport { debounce } from './utils';\n\nconst Constants = VideoSDK.Constants;\n\n/**\n * @param {{\n * cameraId?: string | undefined,\n * encoderConfig?: \"h90p_w160p\" | \"h180p_w320p\" | \"h216p_w384p\"\n * | \"h360p_w640p\" | \"h360p_w640p_150kbps\" | 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 * bitrateMode?: \"bandwidth_optimized\" | \"balanced\" | \"high_quality\" | undefined,\n * maxLayer?: 2 | 3 | undefined\n * }}\n */\nconst createCameraVideoTrack = async ({\n cameraId = undefined,\n encoderConfig = undefined,\n facingMode = undefined,\n optimizationMode = undefined,\n multiStream = true,\n bitrateMode = Constants.BitrateMode.BALANCED,\n maxLayer = 3\n}) => {\n return await VideoSDK.createCameraVideoTrack({\n cameraId,\n encoderConfig,\n facingMode,\n optimizationMode,\n multiStream,\n bitrateMode,\n maxLayer\n });\n};\n\n/**\n * @param {{\n * encoderConfig?: \"h360p_30fps\" | \"h480p_15fps\" | \"h480p_30fps\"\n * | \"h720p_5fps\" | \"h720p_15fps\" | \"h720p_30fps\" | \"h1080p_15fps\" | \"h1080p_30fps | undefined,\n * optimizationMode?: \"text\"| \"motion\" | \"detail\" | undefined,\n * withAudio?:\"enable\" | \"disable\"\n * multiStream?: boolean\n * }}\n */\nconst createScreenShareVideoTrack = async ({\n encoderConfig = undefined,\n optimizationMode = undefined,\n withAudio = 'enable',\n multiStream = false\n}) => {\n return await VideoSDK.createScreenShareVideoTrack({\n encoderConfig,\n optimizationMode,\n withAudio,\n multiStream\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 * @deprecated\n * @param {{\n * timeoutDuration?: number | undefined,\n * baseUrl?: string | undefined,\n * }}\n * @returns {Promise<{downloadSpeed: number,uploadSpeed: number}> }\n */\nconst getNetworkStats = async ({ timeoutDuration, baseUrl } = {}) => {\n return await VideoSDK.getNetworkStats({ timeoutDuration, baseUrl });\n};\n\n/**\n * Wraps a video player component with IntersectionObserver and ResizeObserver\n * to pause/resume video streams and update viewport dimensions based on visibility and size.\n *\n * @param VideoPlayerComponent - The React component to wrap.\n *\n * @returns A new React functional component with adaptive logic.\n */\nconst withAdaptiveObservers = VideoPlayerComponent => {\n const intersectionObserverOptions = {\n root: null,\n rootMargin: '0px',\n threshold: 0\n };\n const debounceDelay = 400;\n\n return props => {\n const { participantId, type } = props;\n const ref = useRef(null);\n const observerRef = useRef(null);\n const resizeObserverRef = useRef(null);\n const { participant } = useParticipant(participantId);\n const { localParticipant } = useMeeting();\n useEffect(() => {\n // Skip observer setup for \"share\" type and local participant\n if (\n type === 'share' ||\n !ref.current ||\n !participant ||\n participantId === localParticipant.id\n )\n return;\n\n const element = ref.current;\n if (!element || !participant) return;\n\n // Disconnect previous observer before creating a new one\n if (observerRef.current) observerRef.current.disconnect();\n\n // Debounced intersection handler\n const handleIntersectionChange = debounce(entries => {\n if (!Array.isArray(entries) || entries.length === 0) return;\n\n const entry = entries[entries.length - 1];\n if (entry.intersectionRatio > 0) {\n // Element is visible, resume video streams\n for (const stream of participant.streams.values()) {\n if (stream.kind === 'video' && stream.pausedBy !== 'SUB_MANAGER') {\n stream.resume();\n }\n }\n } else {\n // Element is not visible, pause video streams\n for (const stream of participant.streams.values()) {\n if (stream.kind === 'video') {\n stream.pause();\n }\n }\n }\n }, debounceDelay);\n\n observerRef.current = new IntersectionObserver(\n handleIntersectionChange,\n intersectionObserverOptions\n );\n\n // Debounced resize handler\n const processResize = (width, height) => {\n if (width > 0 && height > 0) {\n participant.setViewPort(width, height);\n }\n };\n\n const handleResize = debounce(entries => {\n const {\n contentRect: { width, height }\n } = entries[0];\n processResize(width, height);\n }, debounceDelay);\n\n resizeObserverRef.current = new ResizeObserver(handleResize);\n\n resizeObserverRef.current.observe(element);\n observerRef.current.observe(element);\n\n return () => {\n if (observerRef.current) {\n observerRef.current.disconnect();\n }\n if (resizeObserverRef.current) {\n resizeObserverRef.current.disconnect();\n }\n };\n }, []);\n\n return <VideoPlayerComponent ref={ref} {...props} />;\n };\n};\n\n/**\n * Renders a video player for a participant. Handles attaching media stream\n * to video element and mirroring for local participant.\n *\n * @param participantId - ID of the participant.(Mandatory)\n * @param type - Type of stream (e.g., 'video' or 'share').\n * @param containerStyle - Optional CSS style for the outer container.\n * @param className - Optional CSS class for the container.\n * @param classNameVideo - Optional CSS class for the video element.\n * @param videoStyle - Optional CSS style for the video element.\n * @param videoRef - Optional ref to the underlying <video> element.\n */\n\nconst VideoSDKPlayer = forwardRef(\n (\n {\n participantId,\n type = 'video',\n containerStyle = {},\n className = '',\n classNameVideo = '',\n videoStyle = {},\n videoRef\n },\n ref\n ) => {\n const {\n webcamOn,\n webcamStream,\n isLocal,\n screenShareStream,\n screenShareOn\n } = useParticipant(participantId);\n const internalRef = useRef(null);\n const finalVideoRef = videoRef || internalRef;\n\n useEffect(() => {\n const stream = type === 'share' ? screenShareStream : webcamStream;\n const isOn = type === 'share' ? screenShareOn : webcamOn;\n if (finalVideoRef.current) {\n if (isOn && stream) {\n const mediaStream = new MediaStream();\n mediaStream.addTrack(stream.track);\n finalVideoRef.current.setAttribute('muted', '');\n finalVideoRef.current.srcObject = mediaStream;\n finalVideoRef.current.setAttribute('playsinline', '');\n finalVideoRef.current.setAttribute('x5-playsinline', '');\n finalVideoRef.current.setAttribute('webkit-playsinline', '');\n finalVideoRef.current\n .play()\n .catch(error =>\n console.error('finalVideoRef.current.play() failed', error)\n );\n } else {\n finalVideoRef.current.srcObject = null;\n }\n }\n }, [\n type,\n ...(type === 'share'\n ? [screenShareOn, screenShareStream]\n : type === 'video'\n ? [webcamOn, webcamStream]\n : [])\n ]);\n\n return (\n <div\n ref={ref}\n className={`video-container participant-video-${participantId} ${className ||\n ''}`}\n style={{\n objectFit: type === 'share' ? 'contain' : 'none',\n height: '100%',\n ...containerStyle\n }}\n >\n <video\n width=\"100%\"\n height=\"100%\"\n ref={finalVideoRef}\n autoPlay\n className={classNameVideo}\n muted\n style={\n isLocal && type !== 'share'\n ? {\n transform: 'scaleX(-1)',\n WebkitTransform: 'scaleX(-1)',\n ...videoStyle\n }\n : videoStyle\n }\n />\n </div>\n );\n }\n);\n\n/**\n * Renders a video player for a participant. Handles attaching media stream\n * to video element and mirroring for local participant.\n *\n * @param participantId - ID of the participant.(Mandatory)\n * @param type - Type of stream (e.g., 'video' or 'share').\n * @param containerStyle - Optional CSS style for the outer container.\n * @param className - Optional CSS class for the container.\n * @param classNameVideo - Optional CSS class for the video element.\n * @param videoStyle - Optional CSS style for the video element.\n * @param videoRef - Optional ref to the underlying <video> element.\n */\n\nconst VideoPlayer = ({ participantId, type, ...props }) => {\n // Memoize the wrapped component to prevent unnecessary re-renders\n const VideoPlayerComponent = useMemo(() => {\n return type === 'share'\n ? VideoSDKPlayer\n : withAdaptiveObservers(VideoSDKPlayer);\n }, [type, participantId]);\n\n return (\n <VideoPlayerComponent\n participantId={participantId}\n type={type}\n {...props}\n />\n );\n};\n\n/**\n * Renders an audio player for a participant's mic or screen share audio.\n *\n * @param participantId - ID of the participant.(Mandatory)\n * @param type - Type of audio stream ('mic' or 'shareAudio').\n * @returns A HTML audio element with the stream attached.\n */\n\nconst AudioPlayer = ({ participantId, type }) => {\n // Getting participant properties\n const { micStream, isLocal, screenShareAudioStream } = useParticipant(\n participantId\n );\n\n const micRef = useRef(null);\n\n useEffect(() => {\n if (micRef.current) {\n const audioStream =\n type === 'shareAudio' ? screenShareAudioStream : micStream;\n\n if (audioStream) {\n const mediaStream = new MediaStream();\n mediaStream.addTrack(audioStream.track);\n\n micRef.current.srcObject = mediaStream;\n micRef.current\n .play()\n .catch(error => console.error('micRef.current.play() failed', error));\n } else {\n micRef.current.srcObject = null;\n }\n }\n }, [micStream, screenShareAudioStream, type]);\n\n return <audio ref={micRef} autoPlay playsInline muted={isLocal} />;\n};\n\nexport {\n VideoPlayer,\n AudioPlayer,\n withAdaptiveObservers,\n MeetingProvider,\n useMeeting,\n useTranscription,\n useTranslation,\n useWhiteboard,\n useCharacter,\n useParticipant,\n useStream,\n usePubSub,\n useRealtimeStore,\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 ExternalE2EEKeyProvider\n};\n"],"names":["eventPrifix","events","data","error","eventEmitter","EventEmitter","setMaxListeners","debounce","func","delay","timeout","_this","_len","arguments","length","args","Array","_key","clearTimeout","setTimeout","apply","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$onPausedAllStrea","onPausedAllStreams","_ref$onResumedAllStre","onResumedAllStreams","_ref$onRecordingStart","onRecordingStarted","_ref$onRecordingStopp","onRecordingStopped","_ref$onData","onData","_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","_ref$onCharacterJoine","onCharacterJoined","_ref$onCharacterLeft","onCharacterLeft","_ref$onMediaRelayStar","onMediaRelayStarted","_ref$onMediaRelayStop","onMediaRelayStopped","_ref$onMediaRelayErro","onMediaRelayError","_ref$onMediaRelayRequ","onMediaRelayRequestResponse","_ref$onMediaRelayRequ2","onMediaRelayRequestReceived","_ref$onQualityLimitat","onQualityLimitation","useEffect","on","off","useContext","MeetingConsumer","_ref2","children","_ref2$onParticipantJo","_ref2$onParticipantLe","_ref2$onSpeakerChange","_ref2$onPresenterChan","_ref2$onMainParticipa","_ref2$onEntryRequeste","_ref2$onEntryResponde","_ref2$onPausedAllStre","_ref2$onResumedAllStr","_ref2$onRecordingStar","_ref2$onRecordingStop","_ref2$onData","_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","_ref2$onCharacterJoin","_ref2$onCharacterLeft","_ref2$onMediaRelaySta","_ref2$onMediaRelaySto","_ref2$onMediaRelayErr","_ref2$onMediaRelayReq","_ref2$onMediaRelayReq2","_ref2$onQualityLimita","React","createElement","Fragment","Consumer","MeetingProvider","config","token","joinWithoutUserInteraction","_reinitialiseMeetingOnConfigChange","reinitialiseMeetingOnConfigChange","deviceInfo","keyProvider","_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","_useState0","messages","setMessages","_useState1","Map","participants","setParticipants","_useState10","characters","setCharacters","_useState11","pinnedParticipants","setPinnedParticipants","_useState12","isLiveStreaming","setIsLiveStreaming","_useState13","connections","setConnections","_useState14","isMeetingJoined","setIsMeetingJoined","_useState15","isHls","setIsHls","_useState16","recordingState","setRecordingState","_useState17","livestreamState","setLivestreamState","_useState18","hlsState","setHlsState","_useState19","downstreamUrl","playbackHlsUrl","livestreamUrl","hlsUrls","setHlsUrls","_useState20","transcriptionState","setTranscriptionState","_useState21","translationState","setTranslationState","meetingRef","useRef","localMicOnRef","localWebcamOnRef","localScreenShareOnRef","isRecordingRef","keyProviderRef","configRef","tokenRef","joinedOnFirstRender","isHlsRef","useMemo","current","resetStates","_handle_participant_joined","participant","set","id","participantsToSet","emit","_handle_participant_left","reason","newParticipants","_handle_presenter_changed","_meetingRef$current","_meetingRef$current$l","_handle_main_participant_changed","_handle_speaker_changed","_handle_chat_message","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","switchRoomId","_handle_meeting_left","_meeting$localPartici","_handle_meeting_state_changed","_handle_pin_state_changed","_handle_streams_paused","_handle_streams_resumed","_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_whiteboard_stopped","_handle_whiteboard_started","_handle_transcription_state_changed","_handle_transcription_text","_handle_translation_state_changed","_handle_translation_text","_handle_translation_language_changed","_handle_character_joined","_handle_character_left","_handle_media_relay_started","_handle_media_relay_stopped","_handle_media_relay_error","_handle_media_relay_request_response","_handle_media_relay_request_received","_handle_quality_limitation_received","state","pinnedBy","cam","share","pinnedParticipantsToSet","_ref3","_ref4","connection","connectionsToSet","connectionId","newConnections","d","status","character","charactersToSet","newCharacters","_meetingRef$current2","_meetingRef$current2$","part","get","mode","join","VideoSDK","initMeeting","leave","end","pauseAllStreams","resumeAllStreams","startRecording","webhookUrl","awsDirPath","transcription","stopRecording","unmuteMic","customAudioTrack","undefined","muteMic","toggleMic","disableWebcam","enableWebcam","customVideoTrack","toggleWebcam","switchTo","_ref5","meetingId","disableScreenShare","enableScreenShare","customScreenShareTrack","toggleScreenShare","changeMode","send","payload","options","reliability","Promise","resolve","e","reject","respondEntry","getMics","getWebcams","changeWebcam","obj","replaceWebcamStream","changeMic","startVideo","_ref6","link","stopVideo","resumeVideo","pauseVideo","_ref7","currentTime","enableAdaptiveSubscription","disableAdaptiveSubscription","requestMediaRelay","_ref8","destinationMeetingId","kinds","stopMediaRelay","seekVideo","_ref9","startLivestream","streamInfo","stopLivestream","connectTo","_ref0","then","startHls","stopHls","initSDK","setKeyProvider","analytics","sdkType","sdkVersion","reactSDKVersion","Provider","value","baseUrl","selectedCameraDevice","selectedMicrophoneDevice","useParticipant","_ref$onStreamEnabled","onStreamEnabled","_ref$onStreamDisabled","onStreamDisabled","_ref$onMediaStatusCha","onMediaStatusChanged","_ref$onVideoQualityCh","onVideoQualityChanged","_ref$onStreamPaused","onStreamPaused","_ref$onStreamResumed","onStreamResumed","_ref$onProducerAdded","onProducerAdded","_ref$onProducerRemove","onProducerRemoved","_ref$onConsumerAdded","onConsumerAdded","_ref$onConsumerRemove","onConsumerRemoved","webcamStream","setwebcamStream","micStream","setMicStream","screenShareStream","setScreenShareStream","screenShareAudioStream","setScreenShareAudioStream","_useMemo","_meeting$pinnedPartic","pinState","webcamOn","setWebcamOn","micOn","setMicOn","setMode","setTrack","unSetTrack","_handleStreamEnabled","_handleStreamPaused","_handleStreamResumed","_handleParticipantModeChanged","_handleStreamDisabled","_handleVideoQualityChanged","peerId","prevQuality","currentQuality","_handleMediaStatusChanged","newStatus","_handleProducerAdded","_handleProducerRemoved","_handleConsumerAdded","_handleConsumerRemoved","setQuality","quality","setViewPort","width","height","setScreenShareQuality","enableMic","disableMic","pin","unpin","remove","captureImage","_temp2","getAudioStats","getVideoStats","getShareStats","getShareAudioStats","consumeWebcamStreams","consumeMicStreams","stopConsumingWebcamStreams","stopConsumingMicStreams","streams","forEach","displayName","metaData","screenShareOn","isLocal","isActiveSpeaker","isMainParticipant","useStream","streamId","_ref$onStreamStateCha","onStreamStateChanged","setStream","_handleStreamStateChanged","findStream","_iterator","_createForOfIteratorHelperLoose","values","_step","done","pause","resume","codec","paused","useConnection","onMeeting","Error","connectionParticipants","_connectionParticipants","setConnectionParticipants","_handleParticipantJoined","_handleParticipantLeft","_handleChatMessage","close","sendChatMessage","usePubSub","topic","_ref$onMessageReceive","onMessageReceived","_ref$onOldMessagesRec","onOldMessagesReceived","_useMeeting","isSubscribed","publish","message","pubSub","_handlePubSub","subscribeToPubsub","_meeting$pubSub","subscribe","_meeting$pubSub2","unsubscribe","useRealtimeStore","key","_ref$onValueChanged","onValueChanged","observerIdRef","isObserving","setValue","realtimeStore","getValue","_handleRealtimeStore","subscribeToKey","_meeting$realtimeStor3","observe","observer","_meeting$realtimeStor4","stopObserving","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","useTranslation","_ref$onTranslationSta","onTranslationStateChanged","_ref$onTranslationLan","onTranslationLanguageChanged","_ref$onTranslationTex","onTranslationText","startTranslation","changeTranslationLanguage","language","stopTranslation","useCharacter","interactionId","characterMode","characterRole","knowledgeBases","_ref2$onCharacterStat","onCharacterStateChanged","_ref2$onCharacterMess","onCharacterMessage","_ref2$onUserMessage","onUserMessage","_ref2$onStreamEnabled","_ref2$onStreamDisable","_ref2$onMediaStatusCh","_ref2$onVideoQualityC","chars","from","find","createCharacter","characterState","setCharacterState","_handleCharacterStateChanged","_handleCharacterMessage","_handleUserMessage","_handleOnData","_handleOnError","_handleCharacterJoined","_handleCharacterLeft","sendMessage","interrupt","useWhiteboard","whiteboardUrl","setWhiteboardUrl","handleWhiteboardStarted","handleWhiteboardStopped","startWhiteboard","_catch","console","stopWhiteboard","Constants","createCameraVideoTrack","_ref$cameraId","cameraId","_ref$encoderConfig","encoderConfig","_ref$facingMode","facingMode","_ref$optimizationMode","optimizationMode","_ref$multiStream","multiStream","_ref$bitrateMode","bitrateMode","BitrateMode","BALANCED","_ref$maxLayer","maxLayer","createScreenShareVideoTrack","_ref2$encoderConfig","_ref2$optimizationMod","_ref2$withAudio","withAudio","_ref2$multiStream","createMicrophoneAudioTrack","_ref3$noiseConfig","noiseConfig","_ref3$encoderConfig","_ref3$microphoneId","microphoneId","getNetworkStats","timeoutDuration","withAdaptiveObservers","VideoPlayerComponent","intersectionObserverOptions","root","rootMargin","threshold","debounceDelay","props","type","ref","observerRef","resizeObserverRef","_useParticipant","element","disconnect","handleIntersectionChange","entries","isArray","entry","intersectionRatio","pausedBy","_iterator2","_step2","IntersectionObserver","processResize","handleResize","_entries$0$contentRec","contentRect","ResizeObserver","_extends","VideoSDKPlayer","forwardRef","_ref5$type","_ref5$containerStyle","containerStyle","_ref5$className","className","_ref5$classNameVideo","classNameVideo","_ref5$videoStyle","videoStyle","videoRef","_useParticipant2","internalRef","finalVideoRef","isOn","mediaStream","MediaStream","addTrack","setAttribute","srcObject","play","style","objectFit","autoPlay","muted","transform","WebkitTransform","VideoPlayer","_objectWithoutPropertiesLoose","_excluded","AudioPlayer","_useParticipant3","micRef","audioStream","playsInline"],"mappings":"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"}