@100mslive/hms-video-store 0.2.91-alpha.1 → 0.2.91-alpha.2
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,4 +1,4 @@
|
|
|
1
|
-
import { HMSConfig, HMSSimulcastLayer, HMSAudioTrackSettings, HMSVideoTrackSettings, HMSLogLevel, HMSVideoPlugin, HMSAudioPlugin } from '@100mslive/hms-video';
|
|
1
|
+
import { HMSConfig, HMSSimulcastLayer, HMSAudioTrackSettings, HMSVideoTrackSettings, HMSLogLevel, HMSVideoPlugin, HMSAudioPlugin, HMSPluginSupportResult } from '@100mslive/hms-video';
|
|
2
2
|
import { HMSMessageID, HMSPeerID, HMSRoleName, HMSTrackID, HMSTrackSource, IHMSPlaylistActions, HMSChangeMultiTrackStateParams } from './schema';
|
|
3
3
|
import { HMSRoleChangeRequest } from './selectors';
|
|
4
4
|
import { RTMPRecordingConfig, HLSConfig } from './hmsSDKStore/sdkTypes';
|
|
@@ -155,22 +155,28 @@ export interface IHMSActions {
|
|
|
155
155
|
* Add or remove a video plugin from/to the local peer video track. Eg. Virtual Background, Face Filters etc.
|
|
156
156
|
* Video plugins can be added/removed at any time after the join is successful.
|
|
157
157
|
* pluginFrameRate is the rate at which the output plugin will do processing
|
|
158
|
+
* @param plugin HMSVideoPlugin
|
|
159
|
+
* @param pluginFrameRate number
|
|
158
160
|
* @see HMSVideoPlugin
|
|
159
161
|
*/
|
|
160
162
|
addPluginToVideoTrack(plugin: HMSVideoPlugin, pluginFrameRate?: number): Promise<void>;
|
|
161
163
|
/**
|
|
162
164
|
* Add or remove a audio plugin from/to the local peer audio track. Eg. gain filter, noise suppression etc.
|
|
163
165
|
* Audio plugins can be added/removed at any time after the join is successful.
|
|
166
|
+
* @param plugin HMSAudioPlugin
|
|
164
167
|
* @see HMSAudioPlugin
|
|
165
168
|
*/
|
|
166
169
|
addPluginToAudioTrack(plugin: HMSAudioPlugin): Promise<void>;
|
|
167
170
|
/**
|
|
168
|
-
*
|
|
171
|
+
* To check the support of the plugin, based on browser, os and audio devices
|
|
172
|
+
* @param plugin HMSAudioPlugin
|
|
173
|
+
* @see HMSPluginSupportResult
|
|
169
174
|
*/
|
|
170
|
-
|
|
175
|
+
validateAudioPluginSupport(plugin: HMSAudioPlugin): HMSPluginSupportResult;
|
|
171
176
|
/**
|
|
172
|
-
* @see
|
|
177
|
+
* @see addPluginToVideoTrack
|
|
173
178
|
*/
|
|
179
|
+
removePluginFromVideoTrack(plugin: HMSVideoPlugin): Promise<void>;
|
|
174
180
|
removePluginFromAudioTrack(plugin: HMSAudioPlugin): Promise<void>;
|
|
175
181
|
/**
|
|
176
182
|
* Request for a role change of a remote peer. Can be forced.
|
|
@@ -2,7 +2,7 @@ import { HMSMessage, HMSTrackID, HMSTrackSource, HMSChangeMultiTrackStateParams,
|
|
|
2
2
|
import { IHMSActions } from '../IHMSActions';
|
|
3
3
|
import * as sdkTypes from './sdkTypes';
|
|
4
4
|
import { HMSRoleChangeRequest } from '../selectors';
|
|
5
|
-
import { HMSAudioPlugin, HMSException as SDKHMSException, HMSLogLevel, HMSChangeTrackStateRequest as SDKHMSChangeTrackStateRequest, HMSChangeMultiTrackStateRequest as SDKHMSChangeMultiTrackStateRequest, HMSSdk, HMSSimulcastLayer, HMSTrack as SDKHMSTrack, HMSVideoPlugin } from '@100mslive/hms-video';
|
|
5
|
+
import { HMSAudioPlugin, HMSException as SDKHMSException, HMSLogLevel, HMSChangeTrackStateRequest as SDKHMSChangeTrackStateRequest, HMSChangeMultiTrackStateRequest as SDKHMSChangeMultiTrackStateRequest, HMSSdk, HMSSimulcastLayer, HMSTrack as SDKHMSTrack, HMSVideoPlugin, HMSPluginSupportResult } from '@100mslive/hms-video';
|
|
6
6
|
import { IHMSStore } from '../IHMSStore';
|
|
7
7
|
import { HMSNotifications } from './HMSNotifications';
|
|
8
8
|
/**
|
|
@@ -61,6 +61,7 @@ export declare class HMSSDKActions implements IHMSActions {
|
|
|
61
61
|
detachVideo(trackID: string, videoElement: HTMLVideoElement): Promise<void>;
|
|
62
62
|
addPluginToVideoTrack(plugin: HMSVideoPlugin, pluginFrameRate?: number): Promise<void>;
|
|
63
63
|
addPluginToAudioTrack(plugin: HMSAudioPlugin): Promise<void>;
|
|
64
|
+
validateAudioPluginSupport(plugin: HMSAudioPlugin): HMSPluginSupportResult;
|
|
64
65
|
removePluginFromVideoTrack(plugin: HMSVideoPlugin): Promise<void>;
|
|
65
66
|
removePluginFromAudioTrack(plugin: HMSAudioPlugin): Promise<void>;
|
|
66
67
|
changeRole(forPeerId: string, toRole: string, force?: boolean): Promise<void>;
|
package/dist/index.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var Lt=Object.create;var Q=Object.defineProperty,xt=Object.defineProperties,Ot=Object.getOwnPropertyDescriptor,Nt=Object.getOwnPropertyDescriptors,wt=Object.getOwnPropertyNames,Je=Object.getOwnPropertySymbols,Ut=Object.getPrototypeOf,Ye=Object.prototype.hasOwnProperty,_t=Object.prototype.propertyIsEnumerable;var Qe=(s,e,t)=>e in s?Q(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,w=(s,e)=>{for(var t in e||(e={}))Ye.call(e,t)&&Qe(s,t,e[t]);if(Je)for(var t of Je(e))_t.call(e,t)&&Qe(s,t,e[t]);return s},F=(s,e)=>xt(s,Nt(e)),Xe=s=>Q(s,"__esModule",{value:!0});var Kt=(s,e)=>{Xe(s);for(var t in e)Q(s,t,{get:e[t],enumerable:!0})},Vt=(s,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of wt(e))!Ye.call(s,r)&&r!=="default"&&Q(s,r,{get:()=>e[r],enumerable:!(t=Ot(e,r))||t.enumerable});return s},I=s=>Vt(Xe(Q(s!=null?Lt(Ut(s)):{},"default",s&&s.__esModule&&"default"in s?{get:()=>s.default,enumerable:!0}:{value:s,enumerable:!0})),s);var l=(s,e,t)=>new Promise((r,i)=>{var o=p=>{try{c(t.next(p))}catch(R){i(R)}},a=p=>{try{c(t.throw(p))}catch(R){i(R)}},c=p=>p.done?r(p.value):Promise.resolve(p.value).then(o,a);c((t=t.apply(s,e)).next())});Kt(exports,{HMSAudioPluginType:()=>n.HMSAudioPluginType,HMSLogLevel:()=>n.HMSLogLevel,HMSMessageType:()=>Te,HMSNotificationSeverity:()=>P,HMSNotificationTypes:()=>h,HMSPlaylistType:()=>M,HMSReactiveStore:()=>x,HMSRoomState:()=>H,HMSStats:()=>ne,HMSVideoPluginType:()=>n.HMSVideoPluginType,createDefaultStatsStore:()=>z,createDefaultStoreState:()=>X,parsedUserAgent:()=>n.parsedUserAgent,selectAudioPlaylist:()=>Oe,selectAudioPlaylistTrackByPeerID:()=>ks,selectAudioTrackByPeerID:()=>Mt,selectAudioTrackVolume:()=>Be,selectAudioVolumeByPeerID:()=>bs,selectAuxiliaryAudioByPeerID:()=>Hs,selectAuxiliaryTracksByPeerID:()=>ms,selectAvailableRoleNames:()=>os,selectBroadcastMessages:()=>Tt,selectBroadcastMessagesUnreadCount:()=>xs,selectCameraStreamByPeerID:()=>Ms,selectDegradedTracks:()=>ss,selectDevices:()=>$t,selectDidIJoinWithin:()=>Xs,selectDominantSpeaker:()=>Yt,selectHLSState:()=>ls,selectHMSMessages:()=>se,selectHMSMessagesCount:()=>Ee,selectHMSStats:()=>bt,selectIsAllowedToPublish:()=>js,selectIsAllowedToSubscribe:()=>as,selectIsAudioLocallyMuted:()=>Ve,selectIsConnectedToRoom:()=>rt,selectIsInPreview:()=>is,selectIsLocalAudioEnabled:()=>Qt,selectIsLocalAudioPluginPresent:()=>Js,selectIsLocalScreenShared:()=>ue,selectIsLocalVideoDisplayEnabled:()=>be,selectIsLocalVideoEnabled:()=>de,selectIsLocalVideoPluginPresent:()=>Gs,selectIsLocallyMutedByPeerID:()=>vs,selectIsPeerAudioEnabled:()=>Rs,selectIsPeerVideoEnabled:()=>Is,selectIsScreenShareLocallyMutedByPeerID:()=>Ds,selectIsSomeoneScreenSharing:()=>Xt,selectLocalAudioTrackID:()=>C,selectLocalMediaSettings:()=>ve,selectLocalPeer:()=>A,selectLocalPeerID:()=>q,selectLocalPeerRole:()=>re,selectLocalTrackIDs:()=>De,selectLocalVideoTrackID:()=>L,selectMessageIDsInOrder:()=>Ie,selectMessagesByPeerID:()=>Os,selectMessagesByRole:()=>Ns,selectMessagesMap:()=>Re,selectMessagesUnreadCountByPeerID:()=>Us,selectMessagesUnreadCountByRole:()=>ws,selectPeerAudioByID:()=>Ts,selectPeerByCondition:()=>Ys,selectPeerByID:()=>O,selectPeerCount:()=>Wt,selectPeerMetadata:()=>Ks,selectPeerNameByID:()=>ps,selectPeerScreenSharing:()=>it,selectPeerSharingAudio:()=>zt,selectPeerSharingAudioPlaylist:()=>ts,selectPeerSharingVideoPlaylist:()=>es,selectPeers:()=>W,selectPeersByCondition:()=>Qs,selectPeersByRole:()=>_s,selectPeersMap:()=>D,selectPeersScreenSharing:()=>Zt,selectPeersWithAudioStatus:()=>Vs,selectPermissions:()=>Ce,selectRTMPState:()=>cs,selectRecordingState:()=>ns,selectRemotePeers:()=>Jt,selectRoleByRoleName:()=>$s,selectRoleChangeRequest:()=>qs,selectRolesMap:()=>K,selectRoom:()=>v,selectRoomID:()=>jt,selectRoomStartTime:()=>ds,selectRoomStarted:()=>Ae,selectRoomState:()=>b,selectScreenShareAudioByPeerID:()=>Ke,selectScreenShareByPeerID:()=>Ps,selectScreenSharesByPeerId:()=>_e,selectScreenshareAudioVolumeByPeerID:()=>Es,selectSessionId:()=>Ss,selectSimulcastLayerByTrack:()=>As,selectSpeakers:()=>st,selectTrackAudioByID:()=>hs,selectTrackByID:()=>oe,selectTracksMap:()=>y,selectUnreadHMSMessagesCount:()=>rs,selectVideoPlaylist:()=>Ne,selectVideoPlaylistAudioTrackByPeerID:()=>fs,selectVideoPlaylistVideoTrackByPeerID:()=>ys,selectVideoTrackByPeerID:()=>pt});var Et=I(require("immer")),At=I(require("zustand/vanilla")),Ct=I(require("zustand/shallow")),ge=I(require("@100mslive/hms-video"));var H;(function(c){c.Disconnected="Disconnected",c.Preview="Preview",c.Connecting="Connecting",c.Connected="Connected",c.Reconnecting="Reconnecting",c.Disconnecting="Disconnecting",c.Failed="Failed"})(H||(H={}));var X=()=>({room:{id:"",isConnected:!1,name:"",peers:[],shareableLink:"",localPeer:"",hasWaitingRoom:!1,roomState:H.Disconnected,recording:{browser:{running:!1},server:{running:!1},hls:{running:!1}},rtmp:{running:!1},hls:{running:!1,variants:[]},sessionId:""},peers:{},tracks:{},playlist:{audio:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1},video:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1}},messages:{byID:{},allIDs:[]},speakers:{},settings:{audioInputDeviceId:"",audioOutputDeviceId:"",videoInputDeviceId:""},devices:{audioInput:[],audioOutput:[],videoInput:[]},roles:{},roleChangeRequests:[],errors:[]}),z=()=>({peerStats:{},trackStats:{},localPeer:{id:""}});var Te;(function(e){e.CHAT="chat"})(Te||(Te={}));var P;(function(r){r.INFO="info",r.ERROR="error",r.CRITICAL="critical"})(P||(P={}));var h;(function(S){S.PEER_JOINED="PEER_JOINED",S.PEER_LEFT="PEER_LEFT",S.PEER_LIST="PEER_LIST",S.NEW_MESSAGE="NEW_MESSAGE",S.ERROR="ERROR",S.RECONNECTING="RECONNECTING",S.RECONNECTED="RECONNECTED",S.TRACK_ADDED="TRACK_ADDED",S.TRACK_REMOVED="TRACK_REMOVED",S.TRACK_MUTED="TRACK_MUTED",S.TRACK_UNMUTED="TRACK_UNMUTED",S.TRACK_DEGRADED="TRACK_DEGRADED",S.TRACK_RESTORED="TRACK_RESTORED",S.ROLE_CHANGE_REQUEST="ROLE_CHANGE_REQUEST",S.ROLE_UPDATED="ROLE_UPDATED",S.CHANGE_TRACK_STATE_REQUEST="CHANGE_TRACK_STATE_REQUEST",S.CHANGE_MULTI_TRACK_STATE_REQUEST="CHANGE_MULTI_TRACK_STATE_REQUEST",S.ROOM_ENDED="ROOM_ENDED",S.REMOVED_FROM_ROOM="REMOVED_FROM_ROOM",S.DEVICE_CHANGE_UPDATE="DEVICE_CHANGE_UPDATE",S.PLAYLIST_TRACK_ENDED="PLAYLIST_TRACK_ENDED",S.NAME_UPDATED="NAME_UPDATED",S.METADATA_UPDATED="METADATA_UPDATED"})(h||(h={}));var M;(function(t){t.audio="audio",t.video="video"})(M||(M={}));var n=I(require("@100mslive/hms-video"));var _=I(require("@100mslive/hms-video"));var ze=(s,e)=>{let t=Pe(Object.keys(s),Object.keys(e));for(let r of t){let i=s[r],o=e[r];ye(i,o)?(U(i.auxiliaryTracks,o.auxiliaryTracks)&&(o.auxiliaryTracks=i.auxiliaryTracks),Object.assign(i,o)):fe(i,o)?delete s[r]:ke(i,o)&&(s[r]=o)}},Ze=(s,e)=>{let t=Pe(Object.keys(s),Object.keys(e));for(let r of t){let i=s[r],o=e[r];ye(i,o)?(Bt(i,o),Object.assign(i,o)):fe(i,o)?delete s[r]:ke(i,o)&&(s[r]=o)}},He=(s,e)=>{let t=Pe(Object.keys(s),Object.keys(e));for(let r of t){let i=s[r],o=e[r];ye(i,o)?Object.assign(i,o):fe(i,o)?delete s[r]:ke(i,o)&&(s[r]=o)}},Bt=(s,e)=>{s.plugins&&U(s.plugins,e.plugins)&&(e.plugins=s.plugins),s.layerDefinitions&&U(s.layerDefinitions,e.layerDefinitions)&&(e.layerDefinitions=s.layerDefinitions)},ye=(s,e)=>s&&e,fe=(s,e)=>s&&!e,ke=(s,e)=>!s&&e,U=(s,e)=>{if(s===e||s.length===0&&(e==null?void 0:e.length)===0)return!0;if(!s||!e||s.length!==e.length)return!1;for(let t=0;t<s.length;t++)if(s[t]!==e[t])return!1;return!0},Pe=(s,e)=>{let t=new Set;for(let r of s)t.add(r);for(let r of e)t.add(r);return Array.from(t)};var g=class{static convertPeer(e){var t,r,i;return{id:e.peerId,name:e.name,roleName:(t=e.role)==null?void 0:t.name,isLocal:e.isLocal,videoTrack:(r=e.videoTrack)==null?void 0:r.trackId,audioTrack:(i=e.audioTrack)==null?void 0:i.trackId,auxiliaryTracks:e.auxiliaryTracks.map(o=>o.trackId),customerUserId:e.customerUserId,customerDescription:e.metadata,metadata:e.metadata}}static convertTrack(e,t){let r={id:e.trackId,source:e.source,type:e.type,enabled:e.enabled,displayEnabled:e.enabled,peerId:e.peerId||t};return this.enrichTrack(r,e),r}static enrichTrack(e,t){let r=t.getMediaTrackSettings();e.source==="screen"&&e.type==="video"&&(e.displaySurface=r.displaySurface),e.height=r.height,e.width=r.width,t instanceof _.HMSRemoteAudioTrack&&(e.volume=t.getVolume()||0),g.updateDeviceID(e,t),g.enrichVideoTrack(e,t),g.enrichPluginsDetails(e,t)}static updateDeviceID(e,t){var r;t instanceof _.HMSLocalVideoTrack||t instanceof _.HMSLocalAudioTrack?e.deviceID=t.settings.deviceId:e.deviceID=(r=t.getMediaTrackSettings())==null?void 0:r.deviceId}static enrichVideoTrack(e,t){t instanceof _.HMSRemoteVideoTrack&&(e.layer=t.getSimulcastLayer(),e.degraded=t.degraded,U(t.getSimulcastDefinitions(),e.layerDefinitions)||(e.layerDefinitions=t.getSimulcastDefinitions()))}static enrichPluginsDetails(e,t){(t instanceof _.HMSLocalVideoTrack||t instanceof _.HMSLocalAudioTrack)&&(U(t.getPlugins(),e.plugins)||(e.plugins=t.getPlugins()))}static convertRoom(e){var o,a;let{recording:t,rtmp:r,hls:i}=g.convertRecordingStreamingState(e==null?void 0:e.recording,e==null?void 0:e.rtmp,e==null?void 0:e.hls);return{id:e.id,name:e.name,localPeer:(a=(o=e.localPeer)==null?void 0:o.peerId)!=null?a:"",hasWaitingRoom:e.hasWaitingRoom,shareableLink:e.shareableLink,recording:t,rtmp:r,hls:i,sessionId:e.sessionId,startedAt:e.startedAt,joinedAt:e.joinedAt,peerCount:e.peerCount}}static convertMessage(e){var t,r,i;return{sender:e.sender.peerId,senderName:e.sender.name,senderRole:(t=e.sender.role)==null?void 0:t.name,senderUserId:e.sender.customerUserId,recipientPeer:(r=e.recipientPeer)==null?void 0:r.peerId,recipientRoles:(i=e.recipientRoles)==null?void 0:i.map(o=>o.name),time:e.time,type:e.type,message:e.message}}static convertRoles(e){let t={};return e&&e.forEach(r=>{t[r.name]=r}),t}static convertRoleChangeRequest(e){var t;return{requestedBy:(t=e.requestedBy)==null?void 0:t.peerId,roleName:e.role.name,token:e.token}}static convertException(e){return{code:e.code,action:e.action,name:e.name,message:e.message,description:e.description,isTerminal:e.isTerminal,nativeError:e.nativeError,timestamp:new Date}}static convertDeviceChangeUpdate(e){let t={devices:e.devices,selection:e.selection,type:e.type};return e.error&&(t.error=this.convertException(e.error)),t}static convertPlaylist(e){let t=this.getConvertedPlaylistType(e,M.audio),r=this.getConvertedPlaylistType(e,M.video);return{audio:t,video:r}}static convertPlaylistItem(e,t){let r=t.type,i=e.getCurrentSelection(r),o=e.isPlaying(r),a=t.url===(i==null?void 0:i.url);return F(w({},t),{type:t.type,selected:a,playing:a&&o})}static getConvertedPlaylistType(e,t){let r={},i=e.getCurrentSelection(t),o=e.getCurrentProgress(t),a=e.getVolume(t),c=e.getList(t),p=e.getCurrentIndex(t);return e.getList(t).forEach(R=>{r[R.id]=g.convertPlaylistItem(e,R)}),{list:r,selection:{id:i==null?void 0:i.id,hasPrevious:p>0,hasNext:p<c.length-1},progress:o,volume:a,currentTime:e.getCurrentTime(t),playbackRate:e.getPlaybackRate(t)}}static convertRecordingStreamingState(e,t,r){var i;return{recording:{browser:w({running:!1},e==null?void 0:e.browser),server:w({running:!1},e==null?void 0:e.server),hls:w({running:!1},e==null?void 0:e.hls)},rtmp:w({running:!1},t),hls:{variants:((i=r==null?void 0:r.variants)==null?void 0:i.map(o=>o))||[],running:!!(r==null?void 0:r.running),error:r==null?void 0:r.error}}}};var d=I(require("reselect"));function $(s,e,t=qt){let r,i;if(e)for(let o of e.auxiliaryTracks){let a=s[o];t(a)&&(i=Z(a)?a:i,r=ee(a)?a:r)}return{video:r,audio:i}}function Z(s){return s&&s.type==="audio"}function ee(s){return s&&s.type==="video"}function qt(s){return s&&s.source==="screen"}function Se(s){return s&&s.source==="audioplaylist"}function te(s){return s&&s.source==="videoplaylist"}function et(s){return Boolean(s==null?void 0:s.degraded)}function G(s,e){return e&&s.tracks[e]?s.tracks[e].enabled:!1}function tt(s,e){return e&&s.tracks[e]?s.tracks[e].displayEnabled:!1}var v=s=>s.room,jt=(0,d.createSelector)(v,s=>s.id),D=s=>s.peers,Re=s=>s.messages.byID,Ie=s=>s.messages.allIDs,y=s=>s.tracks,ve=s=>s.settings,$t=s=>s.devices,st=s=>s.speakers,rt=(0,d.createSelector)([v],s=>s&&s.isConnected),Wt=(0,d.createSelector)([rt,v],(s,e)=>s?e.peerCount||e.peers.length:Math.max(e.peerCount||e.peers.length-1,0)),W=(0,d.createSelector)([v,D],(s,e)=>s.peers.map(t=>e[t])),Ft=(0,d.createSelector)(y,s=>Object.values(s)),A=(0,d.createSelector)(v,D,(s,e)=>e[s.localPeer]),q=(0,d.createSelector)(v,s=>s.localPeer),C=(0,d.createSelector)(A,s=>s==null?void 0:s.audioTrack),L=(0,d.createSelector)(A,s=>s==null?void 0:s.videoTrack),Gt=(0,d.createSelector)(A,s=>s==null?void 0:s.auxiliaryTracks),De=(0,d.createSelector)([C,L,Gt],(s,e,t)=>{let r=[...t];return s&&r.unshift(s),e&&r.unshift(e),r}),Jt=(0,d.createSelector)(W,s=>s.filter(e=>!e.isLocal)),Yt=(0,d.createSelector)(D,st,(s,e)=>{let t=Object.entries(e).sort((r,i)=>{var c,p;let o=((c=r[1])==null?void 0:c.audioLevel)||0;return(((p=i[1])==null?void 0:p.audioLevel)||0)>o?1:-1});if(t.length>0&&t[0][1].audioLevel&&t[0][1].audioLevel>0){let r=t[0][1].peerID;if(r in s)return s[r]}return null}),Qt=s=>{let e=A(s);return G(s,e==null?void 0:e.audioTrack)},de=s=>{let e=A(s);return G(s,e==null?void 0:e.videoTrack)},be=s=>{let e=A(s);return tt(s,e==null?void 0:e.videoTrack)},ue=(0,d.createSelector)(A,y,(s,e)=>{let{video:t,audio:r}=$(e,s);return!!(t||r)}),it=(0,d.createSelector)(D,y,(s,e)=>{let t;for(let r in s){let i=s[r],{video:o,audio:a}=$(e,i);if(o)return i;a&&!t&&(t=i)}return t}),Xt=(0,d.createSelector)(it,s=>!!s),zt=(0,d.createSelector)(D,y,(s,e)=>{for(let t in s){let r=s[t],{audio:i,video:o}=$(e,r);if(!o&&!!i)return r}}),Zt=(0,d.createSelector)(D,y,(s,e)=>{let t=[],r=[];for(let i in s){let o=s[i],{video:a,audio:c}=$(e,o);a?t.push(o):c&&r.push(o)}return t.concat(r)}),es=(0,d.createSelector)(D,y,(s,e)=>{for(let t in e){let r=e[t];if(te(r)&&ee(r)&&r.peerId)return s[r.peerId]}}),ts=(0,d.createSelector)(D,y,(s,e)=>{for(let t in e){let r=e[t];if(Se(r)&&r.peerId)return s[r.peerId]}}),ss=(0,d.createSelector)(Ft,s=>s.filter(et)),Ee=(0,d.createSelector)(Ie,s=>s.length),rs=(0,d.createSelector)(Re,s=>Object.values(s).filter(e=>!e.read).length),se=(0,d.createSelector)(Ie,Re,(s,e)=>{let t=[];return s.forEach(r=>{t.push(e[r])}),t}),b=(0,d.createSelector)([v],s=>s&&s.roomState),is=(0,d.createSelector)(b,s=>s===H.Preview),Ae=(0,d.createSelector)(v,s=>s.roomState!==H.Disconnected),K=s=>s.roles,os=(0,d.createSelector)([K],s=>Object.keys(s)),re=(0,d.createSelector)([A,K],(s,e)=>(s==null?void 0:s.roleName)?e[s.roleName]:null),as=(0,d.createSelector)([re],s=>{var e;return((e=s==null?void 0:s.subscribeParams)==null?void 0:e.subscribeToRoles)?s.subscribeParams.subscribeToRoles.length>0:!1}),Ce=(0,d.createSelector)(re,s=>s==null?void 0:s.permissions),ns=(0,d.createSelector)(v,s=>s.recording),cs=(0,d.createSelector)(v,s=>s.rtmp),ls=(0,d.createSelector)(v,s=>s.hls),Ss=(0,d.createSelector)(v,s=>s.sessionId),ds=(0,d.createSelector)(v,s=>s.startedAt);var Le=I(require("reselect"));var ot=(s=M.audio)=>e=>e.playlist[s].list,xe=(s=M.audio)=>e=>e.playlist[s].selection,at=(s=M.audio)=>e=>e.playlist[s].progress,nt=(s=M.audio)=>e=>e.playlist[s].currentTime,ct=(s=M.audio)=>e=>e.playlist[s].playbackRate,lt=(s=M.audio)=>e=>e.playlist[s].volume,St=(s=M.audio)=>(0,Le.createSelector)(ot(s),e=>Object.values(e)),dt=(s=M.audio)=>(0,Le.createSelector)(ot(s),xe(s),(e,t)=>{if(!!t.id)return e[t.id]}),Oe={selection:xe(M.audio),progress:at(M.audio),currentTime:nt(M.audio),playbackRate:ct(M.audio),volume:lt(M.audio),list:St(M.audio),selectedItem:dt(M.audio)},Ne={selection:xe(M.video),progress:at(M.video),currentTime:nt(M.video),playbackRate:ct(M.video),volume:lt(M.video),list:St(M.video),selectedItem:dt(M.video)};var k=I(require("reselect"));function u(s){return e=>t=>s(t,e)}var ie="HMS-Store:",m=class{static v(e,...t){this.log(n.HMSLogLevel.VERBOSE,e,...t)}static d(...e){this.log(n.HMSLogLevel.DEBUG,...e)}static i(...e){this.log(n.HMSLogLevel.INFO,...e)}static w(...e){this.log(n.HMSLogLevel.WARN,...e)}static e(...e){this.log(n.HMSLogLevel.ERROR,...e)}static time(e){this.log(n.HMSLogLevel.TIME,"[HMSPerformanceTiming]",e)}static timeEnd(e){this.log(n.HMSLogLevel.TIMEEND,"[HMSPerformanceTiming]",e,e)}static cleanUp(){performance.clearMarks(),performance.clearMeasures()}static log(e,...t){if(!(this.level.valueOf()>e.valueOf()))switch(e){case n.HMSLogLevel.VERBOSE:{console.log(ie,...t);break}case n.HMSLogLevel.DEBUG:{console.debug(ie,...t);break}case n.HMSLogLevel.INFO:{console.info(ie,...t);break}case n.HMSLogLevel.WARN:{console.warn(ie,...t);break}case n.HMSLogLevel.ERROR:{console.error(ie,...t);break}case n.HMSLogLevel.TIME:{performance.mark(t[1]);break}case n.HMSLogLevel.TIMEEND:{let r=t[0],i=t[1];try{let o=performance.measure(i,i);this.log(n.HMSLogLevel.DEBUG,r,i,o==null?void 0:o.duration),performance.clearMarks(i),performance.clearMeasures(i)}catch(o){this.log(n.HMSLogLevel.DEBUG,r,i,o)}break}}}};m.level=n.HMSLogLevel.VERBOSE;var we=(s,e)=>e,us=(s,e)=>e,ut=(s,e)=>e,E=(0,k.createSelector)([D,we],(s,e)=>e?s[e]:null),Ue=(0,k.createSelector)([y,us],(s,e)=>e?s[e]:null),O=u(E),ps=u((0,k.createSelector)(E,s=>s==null?void 0:s.name)),oe=u(Ue),pt=u((s,e)=>{let t=E(s,e);if(t&&t.videoTrack&&t.videoTrack!=="")return s.tracks[t.videoTrack]}),Mt=u((s,e)=>{let t=E(s,e);if(t&&t.audioTrack&&t.audioTrack!=="")return s.tracks[t.audioTrack]}),Ms=pt,ms=u((s,e)=>{let t=E(s,e);return(t==null?void 0:t.auxiliaryTracks.map(r=>s.tracks[r]))||[]}),mt=(s,e)=>e?s.speakers[e]:null,hs=u((0,k.createSelector)(mt,s=>(s==null?void 0:s.audioLevel)||0)),gs=(s,e)=>{let t=Mt(e)(s);return mt(s,t==null?void 0:t.id)},Ts=u((0,k.createSelector)(gs,s=>(s==null?void 0:s.audioLevel)||0)),Hs=u((s,e)=>{let t=E(s,e);if(t){let r=t==null?void 0:t.auxiliaryTracks.find(i=>Z(s.tracks[i]));return r?s.tracks[r]:void 0}}),ys=u((0,k.createSelector)(y,E,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let i=s[r];return te(i)&&ee(i)});return t?s[t]:void 0})),fs=u((0,k.createSelector)(y,E,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let i=s[r];return te(i)&&Z(i)});return t?s[t]:void 0})),ks=u((0,k.createSelector)(y,E,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let i=s[r];return Se(i)&&Z(i)});return t?s[t]:void 0})),_e=u((0,k.createSelector)(y,E,(s,e)=>$(s,e))),Ps=s=>(0,k.createSelector)(_e(s),e=>e.video),Ke=s=>(0,k.createSelector)(_e(s),e=>e.audio),Rs=u((s,e)=>{let t=E(s,e);return G(s,t==null?void 0:t.audioTrack)}),Is=u((s,e)=>{let t=E(s,e);return G(s,t==null?void 0:t.videoTrack)}),Ve=u((s,e)=>{if(e&&s.tracks[e])return s.tracks[e].volume===0}),vs=u((s,e)=>{let t=E(s,e);return Ve(t==null?void 0:t.audioTrack)(s)}),Ds=u((s,e)=>{let t=Ke(e)(s);return Ve(t==null?void 0:t.id)(s)}),Be=u((s,e)=>{let t=Ue(s,e);if(t){if(t.type!=="audio"){m.w("Please pass audio track here");return}return t.volume}}),bs=u((s,e)=>{let t=E(s,e);return Be(t==null?void 0:t.audioTrack)(s)}),Es=u((s,e)=>{let t=Ke(e)(s);return Be(t==null?void 0:t.id)(s)}),As=u((s,e)=>{let t=Ue(s,e);if(t){if(t.type!=="video"){m.w("Please pass video track here");return}return t.layer}}),ht=(0,k.createSelector)([se,q,we],(s,e,t)=>{if(!!t)return s.filter(r=>{var i;return!r.recipientPeer&&!((i=r.recipientRoles)==null?void 0:i.length)||![e,t].includes(r.sender)?!1:[e,t].includes(r.recipientPeer)})}),gt=(0,k.createSelector)([se,ut],(s,e)=>{if(!!e)return s.filter(t=>{var r,i;return((r=t.recipientRoles)==null?void 0:r.length)?(i=t.recipientRoles)==null?void 0:i.includes(e):!1})}),Tt=(0,k.createSelector)(se,s=>s.filter(e=>{var t;return!e.recipientPeer&&!((t=e.recipientRoles)==null?void 0:t.length)})),Cs=(0,k.createSelector)([gt,ut],s=>s?s.filter(e=>!e.read).length:0),Ls=(0,k.createSelector)([ht,we],s=>s?s.filter(e=>!e.read).length:0),xs=(0,k.createSelector)(Tt,s=>s.filter(e=>!e.read).length),Os=u(ht),Ns=u(gt),ws=u(Cs),Us=u(Ls),_s=s=>(0,k.createSelector)([W],e=>e.filter(t=>t.roleName===s)),Ks=s=>(0,k.createSelector)(O(s),e=>{try{return(e==null?void 0:e.metadata)&&e.metadata!==""?JSON.parse(e.metadata):{}}catch(t){return console.error("cannot parse peer metadata",t),{}}});var pe=I(require("reselect")),Vs=(0,pe.createSelector)([D,y],(s,e)=>Object.values(s).map(r=>{var i;return{peer:r,isAudioEnabled:r.audioTrack?(i=e[r.audioTrack])==null?void 0:i.enabled:!1}})),Bs=s=>s.roleChangeRequests[0]||null,qs=(0,pe.createSelector)([Bs,D,K],(s,e,t)=>s?{requestedBy:s.requestedBy?e[s.requestedBy]:void 0,role:t[s.roleName],token:s.token}:null),js=(0,pe.createSelector)([re],s=>{var i;let e=!1,t=!1,r=!1;return((i=s==null?void 0:s.publishParams)==null?void 0:i.allowed)&&(e=s.publishParams.allowed.includes("video"),t=s.publishParams.allowed.includes("audio"),r=s.publishParams.allowed.includes("screen")),{video:e,audio:t,screen:r}});var V=I(require("reselect"));var $s=s=>(0,V.createSelector)([K],e=>e[s]),Ws=(0,V.createSelector)([L,y],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),Fs=(0,V.createSelector)([C,y],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),Gs=s=>(0,V.createSelector)([Ws],e=>e.includes(s)),Js=s=>(0,V.createSelector)([Fs],e=>e.includes(s)),Ys=s=>(0,V.createSelector)(W,e=>e.find(s)),Qs=s=>(0,V.createSelector)(W,e=>e.filter(s)),Xs=s=>(0,V.createSelector)(v,e=>e.joinedAt&&Date.now()-e.joinedAt.getTime()<=s);var ae=I(require("@100mslive/hms-video"));var Me=I(require("@100mslive/hms-video"));function Ht(s){return s instanceof Me.HMSRemoteAudioTrack||s instanceof Me.HMSRemoteVideoTrack}var me=class{constructor(e,t,r,i){this.playlistManager=e;this.syncPlaylistState=r;this.store=i;this.type=t}play(e){return l(this,null,function*(){if(!e){m.w("Please pass id to play");return}yield this.playlistManager.setEnabled(!0,{id:e,type:this.type})})}pause(){return l(this,null,function*(){let e=this.type===M.audio?Oe:Ne,t=this.store.getState(e.selection);if(!t.id){m.w("No item is currently playing to pause");return}yield this.playlistManager.setEnabled(!1,{id:t.id,type:this.type})})}playNext(){return l(this,null,function*(){yield this.playlistManager.playNext(this.type)})}playPrevious(){return l(this,null,function*(){yield this.playlistManager.playPrevious(this.type)})}seek(e){this.playlistManager.seek(e,this.type),this.syncPlaylistState(`seekOn${this.type}Playlist`)}seekTo(e){this.playlistManager.seekTo(e,this.type),this.syncPlaylistState(`seekToOn${this.type}Playlist`)}setVolume(e){this.playlistManager.setVolume(e,this.type),this.syncPlaylistState(`setVolumeOn${this.type}Playlist`)}setList(e){this.playlistManager.setList(e),this.syncPlaylistState(`setListOn${this.type}Playlist`)}stop(){return l(this,null,function*(){yield this.playlistManager.stop(this.type),this.syncPlaylistState(`stop${this.type}Playlist`)})}setIsAutoplayOn(e){this.playlistManager.setIsAutoplayOn(this.type,e)}setPlaybackRate(e){this.playlistManager.setPlaybackRate(this.type,e),this.syncPlaylistState(`set${this.type}PlaybackRate`)}};var yt={[n.HMSPeerUpdate.PEER_JOINED]:h.PEER_JOINED,[n.HMSPeerUpdate.PEER_LEFT]:h.PEER_LEFT,[n.HMSPeerUpdate.ROLE_UPDATED]:h.ROLE_UPDATED,[n.HMSPeerUpdate.AUDIO_TOGGLED]:"PEER_AUDIO_UPDATED",[n.HMSPeerUpdate.VIDEO_TOGGLED]:"PEER_VIDEO_UPDATED",[n.HMSPeerUpdate.NAME_UPDATED]:h.NAME_UPDATED,[n.HMSPeerUpdate.METADATA_UPDATED]:h.METADATA_UPDATED},ft={[n.HMSTrackUpdate.TRACK_ADDED]:h.TRACK_ADDED,[n.HMSTrackUpdate.TRACK_REMOVED]:h.TRACK_REMOVED,[n.HMSTrackUpdate.TRACK_MUTED]:h.TRACK_MUTED,[n.HMSTrackUpdate.TRACK_UNMUTED]:h.TRACK_UNMUTED,[n.HMSTrackUpdate.TRACK_DEGRADED]:h.TRACK_DEGRADED,[n.HMSTrackUpdate.TRACK_RESTORED]:h.TRACK_RESTORED},kt={[n.HMSPeerUpdate.PEER_JOINED]:"peerJoined",[n.HMSPeerUpdate.PEER_LEFT]:"peerLeft",[n.HMSPeerUpdate.NAME_UPDATED]:"peerNameUpdated",[n.HMSPeerUpdate.ROLE_UPDATED]:"peerRoleUpdated",[n.HMSPeerUpdate.METADATA_UPDATED]:"peerMetadataUpdated"};var qe=class{constructor(e,t,r){this.hmsSDKTracks={};this.hmsSDKPeers={};this.isRoomJoinCalled=!1;this.ignoredMessageTypes=[];this.setProgress=({type:e,progress:t})=>{this.setState(r=>{r.playlist[e].progress=t,r.playlist[e].currentTime=this.sdk.getPlaylistManager().getCurrentTime(e)},"playlistProgress")};this.syncPlaylistState=e=>{this.setState(t=>{Object.assign(t.playlist,g.convertPlaylist(this.sdk.getPlaylistManager()))},e)};this.sendPeerUpdateNotification=(e,t)=>{let r=this.store.getState(O(t.peerId)),i=kt[e];this.syncRoomState(i),r||(r=this.store.getState(O(t.peerId))),this.hmsNotifications.sendPeerUpdate(e,r)};this.setState=(e,t)=>this.store.namedSetState(e,t);this.store=e,this.sdk=t,this.hmsNotifications=r}unblockAudio(){return l(this,null,function*(){yield this.sdk.getAudioOutput().unblockAutoplay()})}setVolume(e,t){t?this.setTrackVolume(e,t):(this.sdk.getAudioOutput().setVolume(e),this.syncRoomState("setOutputVolume"))}setAudioOutputDevice(e){this.sdk.getAudioOutput().setDevice(e)&&this.setState(r=>{r.settings.audioOutputDeviceId=e},"setAudioOutputDevice")}setPreferredLayer(e,t){let r=this.hmsSDKTracks[e];r?r instanceof ae.HMSRemoteVideoTrack?(r.preferLayer(t),this.updateVideoLayer(e,"setPreferredLayer")):m.w(`track ${e} is not an video track`):this.logPossibleInconsistency(`track ${e} not present, unable to set preffer layer`)}preview(e){return l(this,null,function*(){if(this.isRoomJoinCalled){this.logPossibleInconsistency("attempting to call preview after join was called");return}let t=this.store.getState(b);if(t===H.Preview||t===H.Connecting){this.logPossibleInconsistency("attempting to call preview while room is in preview/connecting");return}try{this.setState(r=>{r.room.roomState=H.Connecting},"connecting"),yield this.sdkPreviewWithListeners(e)}catch(r){throw m.e("Cannot show preview. Failed to connect to room - ",r),r}})}join(e){if(this.isRoomJoinCalled){this.logPossibleInconsistency("room join is called again");return}try{this.sdkJoinWithListeners(e),this.isRoomJoinCalled=!0,this.setState(t=>{t.room.roomState=H.Connecting},"join")}catch(t){throw this.isRoomJoinCalled=!1,m.e("Failed to connect to room - ",t),t}}leave(){return l(this,null,function*(){if(!this.store.getState(Ae)){this.logPossibleInconsistency("room leave is called when no room is connected");return}let t=this.store.getState(b);return this.setState(r=>{r.room.roomState=H.Disconnecting},"leaving"),this.sdk.leave().then(()=>{this.resetState("leave"),m.i("left room")}).catch(r=>{m.e("error in leaving room - ",r),this.setState(i=>{i.room.roomState=t},"revertLeave")})})}setScreenShareEnabled(e,t){return l(this,null,function*(){e?yield this.startScreenShare(t):yield this.stopScreenShare()})}addTrack(e,t="regular"){return l(this,null,function*(){yield this.sdk.addTrack(e,t),this.syncRoomState("addTrack")})}removeTrack(e){return l(this,null,function*(){yield this.sdk.removeTrack(e),this.syncRoomState("removeTrack")})}setLocalAudioEnabled(e){return l(this,null,function*(){let t=this.store.getState(C);t&&(yield this.setEnabledTrack(t,e))})}setLocalVideoEnabled(e){return l(this,null,function*(){let t=this.store.getState(L);t&&(yield this.setEnabledTrack(t,e))})}setEnabledTrack(e,t){return l(this,null,function*(){var o;if(((o=this.store.getState().tracks[e])==null?void 0:o.enabled)===t){this.logPossibleInconsistency(`local track[${e}] enabled state - ${t}`);return}this.setState(a=>{a.tracks[e]?a.tracks[e].displayEnabled=t:this.logPossibleInconsistency("track id not found for setEnabled")},"displayEnabled");try{yield this.setEnabledSDKTrack(e,t),this.syncRoomState("setEnabled")}catch(a){throw this.setState(c=>{c.tracks[e].displayEnabled=!t},"rollbackDisplayEnabled"),this.hmsNotifications.sendError(g.convertException(a)),a}let i=t?n.HMSTrackUpdate.TRACK_UNMUTED:n.HMSTrackUpdate.TRACK_MUTED;this.hmsNotifications.sendTrackUpdate(i,e)})}setAudioSettings(e){return l(this,null,function*(){let t=this.store.getState(C);t&&(yield this.setSDKLocalAudioTrackSettings(t,e),this.syncRoomState("setAudioSettings"))})}setVideoSettings(e){return l(this,null,function*(){let t=this.store.getState(L);t&&(yield this.setSDKLocalVideoTrackSettings(t,e),this.syncRoomState("setVideoSettings"))})}sendMessage(e){this.sendBroadcastMessage(e)}sendBroadcastMessage(e,t){return l(this,null,function*(){let r=yield this.sdk.sendBroadcastMessage(e,t);this.updateMessageInStore(r,{message:e,type:t})})}sendGroupMessage(e,t,r){return l(this,null,function*(){let i=this.store.getState(K),o=t.map(c=>i[c]),a=yield this.sdk.sendGroupMessage(e,o,r);this.updateMessageInStore(a,{message:e,recipientRoles:t,type:r})})}sendDirectMessage(e,t,r){return l(this,null,function*(){let i=this.hmsSDKPeers[t],o=yield this.sdk.sendDirectMessage(e,i,r);this.updateMessageInStore(o,{message:e,recipientPeer:i.peerId,type:r})})}updateMessageInStore(e,t){if(!e)throw m.w("sendMessage","Failed to send message",t),Error(`sendMessage Failed - ${JSON.stringify(t)}`);let r=g.convertMessage(e);return r.read=!0,r.senderName="You",r.ignored=this.ignoredMessageTypes.includes(r.type),this.putMessageInStore(r),r}setMessageRead(e,t){this.setState(r=>{t?r.messages.byID[t]?r.messages.byID[t].read=e:this.logPossibleInconsistency("no message with id is found"):r.messages.allIDs.forEach(i=>{r.messages.byID[i].read=e})},"setMessageRead")}attachVideo(e,t){return l(this,null,function*(){if(this.localAndVideoUnmuting(e))return new Promise(r=>{let i=this.store.subscribe(o=>l(this,null,function*(){o&&(yield this.attachVideoInternal(e,t),i(),r())}),de)});yield this.attachVideoInternal(e,t)})}detachVideo(e,t){return l(this,null,function*(){let r=this.hmsSDKTracks[e];r&&r.type==="video"?(yield r.removeSink(t),this.updateVideoLayer(e,"detachVideo")):this.logPossibleInconsistency("no video track found to remove sink")})}addPluginToVideoTrack(e,t){return l(this,null,function*(){return this.addRemoveVideoPlugin(e,"add",t)})}addPluginToAudioTrack(e){return l(this,null,function*(){return this.addRemoveAudioPlugin(e,"add")})}removePluginFromVideoTrack(e){return l(this,null,function*(){return this.addRemoveVideoPlugin(e,"remove")})}removePluginFromAudioTrack(e){return l(this,null,function*(){return this.addRemoveAudioPlugin(e,"remove")})}changeRole(e,t,r=!1){return l(this,null,function*(){let i=this.hmsSDKPeers[e];if(!i){this.logPossibleInconsistency(`Unknown peer ID given ${e} for changerole`);return}yield this.sdk.changeRole(i,t,r)})}acceptChangeRole(e){return l(this,null,function*(){let t=e.requestedBy?this.hmsSDKPeers[e.requestedBy.id]:void 0;t||m.w(`peer for which role change is requested no longer available - ${e.requestedBy}`);let r={requestedBy:t,role:e.role,token:e.token};yield this.sdk.acceptChangeRole(r),this.removeRoleChangeRequest(e)})}rejectChangeRole(e){this.removeRoleChangeRequest(e)}endRoom(e,t){return l(this,null,function*(){let r=this.store.getState(Ce);if(!(r==null?void 0:r.endRoom)){m.w("You are not allowed to perform this action - endRoom");return}let i=this.store.getState(b);this.setState(o=>{o.room.roomState=H.Disconnecting},"endingRoom");try{yield this.sdk.endRoom(e,t),this.resetState("endRoom")}catch(o){m.e("error in ending room - ",o),this.setState(a=>{a.room.roomState=i},"revertEndRoom")}})}removePeer(e,t){return l(this,null,function*(){let r=this.hmsSDKPeers[e];if(r&&!r.isLocal)yield this.sdk.removePeer(r,t);else{this.logPossibleInconsistency(`No remote peer found for peerID - ${e}`);return}})}startRTMPOrRecording(e){return l(this,null,function*(){yield this.sdk.startRTMPOrRecording(e)})}stopRTMPAndRecording(){return l(this,null,function*(){yield this.sdk.stopRTMPAndRecording()})}startHLSStreaming(e){return l(this,null,function*(){yield this.sdk.startHLSStreaming(e)})}stopHLSStreaming(e){return l(this,null,function*(){yield this.sdk.stopHLSStreaming(e)})}changeName(e){return l(this,null,function*(){yield this.sdk.changeName(e)})}changeMetadata(e){return l(this,null,function*(){typeof e!="string"&&(e=JSON.stringify(e)),yield this.sdk.changeMetadata(e)})}setRemoteTrackEnabled(e,t){return l(this,null,function*(){if(typeof e=="string"){let r=this.hmsSDKTracks[e];r&&Ht(r)?yield this.sdk.changeTrackState(r,t):this.logPossibleInconsistency(`No remote track with ID ${e} found for change track state`)}else Array.isArray(e)&&e.forEach(r=>this.setRemoteTrackEnabled(r,t))})}setRemoteTracksEnabled(e){return l(this,null,function*(){let t={enabled:e.enabled,type:e.type,source:e.source};if(e.roles){let r=this.store.getState(K);t.roles=e.roles.map(i=>r[i])}yield this.sdk.changeMultiTrackState(t)})}setLogLevel(e){m.level=e,this.sdk.setLogLevel(e)}ignoreMessageTypes(e,t=!1){if(t)this.ignoredMessageTypes=e;else for(let r of e)this.ignoredMessageTypes.includes(r)||this.ignoredMessageTypes.push(r)}resetState(e="resetState"){this.setState(t=>{Object.assign(t,X())},e),this.isRoomJoinCalled=!1,this.hmsSDKTracks={},m.cleanUp()}sdkJoinWithListeners(e){this.sdk.join(e,{onJoin:this.onJoin.bind(this),onRoomUpdate:this.onRoomUpdate.bind(this),onPeerUpdate:this.onPeerUpdate.bind(this),onTrackUpdate:this.onTrackUpdate.bind(this),onMessageReceived:this.onMessageReceived.bind(this),onError:this.onError.bind(this),onReconnected:this.onReconnected.bind(this),onReconnecting:this.onReconnecting.bind(this),onRoleChangeRequest:this.onRoleChangeRequest.bind(this),onRoleUpdate:this.onRoleUpdate.bind(this),onDeviceChange:this.onDeviceChange.bind(this),onChangeTrackStateRequest:this.onChangeTrackStateRequest.bind(this),onChangeMultiTrackStateRequest:this.onChangeMultiTrackStateRequest.bind(this),onRemovedFromRoom:this.onRemovedFromRoom.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})}onRemovedFromRoom(e){var i;let t=this.store.getState(O((i=e.requestedBy)==null?void 0:i.peerId));this.hmsNotifications.sendLeaveRoom(F(w({},e),{requestedBy:t||void 0}));let r=e.roomEnded||!t?"roomEnded":"removedFromRoom";m.i(`resetting state after peer removed ${r}`,e),this.resetState(r)}onDeviceChange(e){let t=e.devices;if(!t)return;let r=this.store.getState(A);if(this.setState(i=>{U(i.devices.audioInput,t.audioInput)||(i.devices.audioInput=t.audioInput),U(i.devices.videoInput,t.videoInput)||(i.devices.videoInput=t.videoInput),U(i.devices.audioOutput,t.audioOutput)||(i.devices.audioOutput=t.audioOutput),this.hmsSDKPeers[r==null?void 0:r.id]&&Object.assign(i.settings,this.getMediaSettings(this.hmsSDKPeers[r==null?void 0:r.id]))},"deviceChange"),e.selection){let i=g.convertDeviceChangeUpdate(e);this.hmsNotifications.sendDeviceChange(i)}}sdkPreviewWithListeners(e){return l(this,null,function*(){yield this.sdk.preview(e,{onPreview:this.onPreview.bind(this),onError:this.onError.bind(this),onDeviceChange:this.onDeviceChange.bind(this),onRoomUpdate:this.onRoomUpdate.bind(this),onPeerUpdate:this.onPeerUpdate.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})})}startScreenShare(e){return l(this,null,function*(){this.store.getState(ue)?this.logPossibleInconsistency("start screenshare is called while it's on"):(yield this.sdk.startScreenShare(()=>this.syncRoomState("screenshareStopped"),e),this.syncRoomState("startScreenShare"))})}stopScreenShare(){return l(this,null,function*(){this.store.getState(ue)?(yield this.sdk.stopScreenShare(),this.syncRoomState("stopScreenShare")):this.logPossibleInconsistency("stop screenshare is called while it's not on")})}attachVideoInternal(e,t){return l(this,null,function*(){let r=this.hmsSDKTracks[e];r&&r.type==="video"?(yield r.addSink(t),this.updateVideoLayer(e,"attachVideo")):this.logPossibleInconsistency("no video track found to add sink")})}syncRoomState(e){m.time(`store-sync-${e}`);let t={},r=[],i={},o={},a={},c=this.sdk.getPeers();for(let f of c){let N=g.convertPeer(f);t[N.id]=N,r.push(N.id),this.hmsSDKPeers[N.id]=f;let Y=[f.audioTrack,f.videoTrack,...f.auxiliaryTracks];for(let le of Y){if(!le)continue;let Ge=g.convertTrack(le);i[Ge.id]=Ge,o[le.trackId]=le}N.isLocal&&Object.assign(a,this.getMediaSettings(f))}let p=this.sdk.getRecordingState(),R=this.sdk.getRTMPState(),j=this.sdk.getHLSState();this.setState(f=>{f.room.peers=r;let N=f.peers,Y=f.tracks;ze(N,t),Ze(Y,i),Object.assign(f.settings,a),this.hmsSDKTracks=o,Object.assign(f.roles,g.convertRoles(this.sdk.getRoles())),Object.assign(f.playlist,g.convertPlaylist(this.sdk.getPlaylistManager())),Object.assign(f.room,g.convertRecordingStreamingState(p,R,j))},e),m.timeEnd(`store-sync-${e}`)}onPreview(e){this.setState(t=>{Object.assign(t.room,g.convertRoom(e)),t.room.roomState=H.Preview},"previewStart"),this.syncRoomState("previewSync")}onJoin(e){let t=this.sdk.getPlaylistManager();this.audioPlaylist=new me(t,M.audio,this.syncPlaylistState.bind(this),this.store),this.videoPlaylist=new me(t,M.video,this.syncRoomState.bind(this),this.store),this.syncRoomState("joinSync"),this.setState(r=>{Object.assign(r.room,g.convertRoom(e)),r.room.isConnected=!0,r.room.roomState=H.Connected},"joined"),t.onProgress(this.setProgress),t.onNewTrackStart(r=>{this.syncPlaylistState(`${r.type}PlaylistUpdate`)}),t.onPlaylistEnded(r=>{this.syncPlaylistState(`${r}PlaylistEnded`)}),t.onCurrentTrackEnded(r=>{this.hmsNotifications.sendPlaylistTrackEnded(g.convertPlaylistItem(t,r)),this.syncPlaylistState(`${r.type}PlaylistItemEnded`)})}onRoomUpdate(e,t){this.setState(r=>{Object.assign(r.room,g.convertRoom(t))},"RoomUpdate")}onPeerUpdate(e,t){if(![n.HMSPeerUpdate.BECAME_DOMINANT_SPEAKER,n.HMSPeerUpdate.RESIGNED_DOMINANT_SPEAKER].includes(e)){if(Array.isArray(t)){this.syncRoomState("peersJoined");let r=[];for(let i of t){let o=this.store.getState(O(i.peerId));o&&r.push(o)}this.hmsNotifications.sendPeerList(r);return}this.sendPeerUpdateNotification(e,t)}}onTrackUpdate(e,t,r){if(e===n.HMSTrackUpdate.TRACK_REMOVED)this.hmsNotifications.sendTrackUpdate(e,t.trackId),this.handleTrackRemove(t,r);else{let i=e===n.HMSTrackUpdate.TRACK_ADDED?"trackAdded":"trackUpdate";this.syncRoomState(i),this.hmsNotifications.sendTrackUpdate(e,t.trackId)}}onMessageReceived(e){let t=g.convertMessage(e);t.read=!1,t.ignored=this.ignoredMessageTypes.includes(t.type),this.putMessageInStore(t),this.hmsNotifications.sendMessageReceived(t)}putMessageInStore(e){e.ignored||this.setState(t=>{e.id=String(this.store.getState(Ee)+1),t.messages.byID[e.id]=e,t.messages.allIDs.push(e.id)},"newMessage")}onAudioLevelUpdate(e){this.setState(t=>{let r={};e.forEach(o=>{if(!o.track||!o.peer)return;let a=o.track.trackId;r[a]=o.audioLevel,t.speakers[a]||(t.speakers[a]={audioLevel:o.audioLevel,peerID:o.peer.peerId,trackID:a})});let i=Object.entries(t.speakers);for(let[o,a]of i)a.audioLevel=r[o]||0,a.audioLevel===0&&delete t.speakers[o]},"audioLevel")}onChangeTrackStateRequest(e){var o;let t=this.store.getState(O((o=e.requestedBy)==null?void 0:o.peerId)),r=this.getStoreLocalTrackIDfromSDKTrack(e.track),i=this.store.getState(oe(r));if(!i)return this.logPossibleInconsistency(`Not found track for which track state change was requested, ${e.track}`);e.enabled||this.syncRoomState("changeTrackStateRequest"),this.hmsNotifications.sendChangeTrackStateRequest({requestedBy:t||void 0,track:i,enabled:e.enabled})}onChangeMultiTrackStateRequest(e){var o;let t=this.store.getState(O((o=e.requestedBy)==null?void 0:o.peerId));e.enabled||this.syncRoomState("changeMultiTrackStateRequest");let r=[],i=this.store.getState(y);for(let a of e.tracks){let c=this.getStoreLocalTrackIDfromSDKTrack(a);c&&i[c]&&r.push(i[c])}this.hmsNotifications.sendChangeMultiTrackStateRequest({requestedBy:t||void 0,tracks:r,enabled:e.enabled,type:e.type,source:e.source})}onReconnected(){this.syncRoomState("reconnectedSync"),this.hmsNotifications.sendReconnected(),this.setState(e=>{e.room.roomState=H.Connected},"reconnected")}onReconnecting(e){let t=g.convertException(e);m.e("Reconnection: received error from sdk",t),this.hmsNotifications.sendReconnecting(t),this.setState(r=>{r.room.roomState=H.Reconnecting,r.errors.push(t)},"reconnecting")}onError(e){let t=g.convertException(e);t.isTerminal?(this.leave().then(()=>m.e("error from SDK, left room.")),this.setState(r=>{r.room.roomState=H.Failed,r.errors.push(t)},"errorTerminal")):this.store.getState().errors.length<50&&this.setState(i=>{i.errors.push(t)},"error"),this.hmsNotifications.sendError(t),m.e("received error from sdk",t)}updateVideoLayer(e,t){let r=this.hmsSDKTracks[e];r&&r instanceof ae.HMSRemoteVideoTrack&&this.setState(i=>{i.tracks[e].layer=r.getSimulcastLayer()},t)}handleTrackRemove(e,t){this.setState(r=>{let i=r.peers[t.peerId],o=r.tracks,a=e.trackId;if(this.isSameStoreSDKTrack(a,i==null?void 0:i.audioTrack))i==null||delete i.audioTrack;else if(this.isSameStoreSDKTrack(a,i==null?void 0:i.videoTrack))i==null||delete i.videoTrack;else{let c=i==null?void 0:i.auxiliaryTracks.indexOf(a);c>-1&&this.isSameStoreSDKTrack(a,i==null?void 0:i.auxiliaryTracks[c])&&(i==null||i.auxiliaryTracks.splice(c,1))}delete o[a],delete this.hmsSDKTracks[a]},"trackRemoved")}setEnabledSDKTrack(e,t){return l(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setEnabled(t):this.logPossibleInconsistency(`track ${e} not present, unable to enabled/disable`)})}setSDKLocalVideoTrackSettings(e,t){return l(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}setSDKLocalAudioTrackSettings(e,t){return l(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}getMediaSettings(e){var o;let t=this.store.getState(ve),r=e.audioTrack,i=e.videoTrack;return{audioInputDeviceId:(r==null?void 0:r.settings.deviceId)||t.audioInputDeviceId,videoInputDeviceId:(i==null?void 0:i.settings.deviceId)||t.videoInputDeviceId,audioOutputDeviceId:(o=this.sdk.getAudioOutput().getDevice())==null?void 0:o.deviceId}}setTrackVolume(e,t){let r=this.hmsSDKTracks[t];r?r instanceof ae.HMSAudioTrack?(r.setVolume(e),this.setState(i=>{let o=i.tracks[t];o&&(o.volume=e)},"trackVolume")):m.w(`track ${t} is not an audio track`):this.logPossibleInconsistency(`track ${t} not present, unable to set volume`)}localAndVideoUnmuting(e){if(this.store.getState(A).videoTrack!==e)return!1;let r=this.store.getState(be),i=this.store.getState(de);return r&&!i}logPossibleInconsistency(e){m.w("possible inconsistency detected - ",e)}addRemoveVideoPlugin(e,t,r){return l(this,null,function*(){if(!e){m.w("Invalid plugin received in store");return}let i=this.store.getState(L);if(i){let o=this.hmsSDKTracks[i];o?(t==="add"?yield o.addPlugin(e,r):t==="remove"&&(yield o.removePlugin(e)),this.syncRoomState(`${t}VideoPlugin`)):this.logPossibleInconsistency(`track ${i} not present, unable to remove plugin`)}})}addRemoveAudioPlugin(e,t){return l(this,null,function*(){if(!e){m.w("Invalid plugin received in store");return}let r=this.store.getState(C);if(r){let i=this.hmsSDKTracks[r];i?(t==="add"?yield i.addPlugin(e):t==="remove"&&(yield i.removePlugin(e)),this.syncRoomState(`${t}AudioPlugin`)):this.logPossibleInconsistency(`track ${r} not present, unable to remove plugin`)}})}isSameStoreSDKTrack(e,t){var r;return t?((r=this.hmsSDKTracks[t])==null?void 0:r.trackId)===e:!1}onRoleChangeRequest(e){this.setState(t=>{t.roleChangeRequests.length===0&&t.roleChangeRequests.push(g.convertRoleChangeRequest(e))},"roleChangeRequest")}removeRoleChangeRequest(e){this.setState(t=>{let r=t.roleChangeRequests.findIndex(i=>i.token===e.token);r!==-1&&t.roleChangeRequests.splice(r,1)},"removeRoleChangeRequest")}onRoleUpdate(){this.syncRoomState("roleUpdate")}getStoreLocalTrackIDfromSDKTrack(e){return this.store.getState(De).find(r=>this.hmsSDKTracks[r].trackId===e.trackId)}};var Pt=I(require("eventemitter2"));var je="hmsNotification",$e=class{constructor(e){this.id=0;this.onNotification=(e,t)=>{let r=i=>{if(t){let o;if(Array.isArray(t)?o=t.includes(i.type):o=t===i.type,!o)return}e(i)};return this.eventEmitter.addListener(je,r),()=>{this.eventEmitter.removeListener(je,r)}};this.store=e,this.eventEmitter=new Pt.EventEmitter2}sendPlaylistTrackEnded(e){let t=this.createNotification(h.PLAYLIST_TRACK_ENDED,e,P.INFO);this.emitEvent(t)}sendDeviceChange(e){var r;let t=this.createNotification(h.DEVICE_CHANGE_UPDATE,e,e.error?P.ERROR:P.INFO,`Selected ${e.type} device - ${(r=e.selection)==null?void 0:r.label}`);this.emitEvent(t)}sendLeaveRoom(e){var i;let t=(i=e.requestedBy)==null?void 0:i.name,r=this.createNotification(e.roomEnded||!t?h.ROOM_ENDED:h.REMOVED_FROM_ROOM,e,P.INFO,`${e.roomEnded?"Room ended":"Removed from room"} ${t?`by ${t}`:""}`);this.emitEvent(r)}sendPeerList(e){let t=this.createNotification(h.PEER_LIST,e,P.INFO);this.emitEvent(t)}sendPeerUpdate(e,t){let r=this.store.getState(O(t==null?void 0:t.id))||t,i=yt[e];if(i){let o=this.createNotification(i,r,P.INFO);this.emitEvent(o)}}sendTrackUpdate(e,t){let r=this.store.getState(oe(t)),i=ft[e];if(i){let o=this.createNotification(i,r,P.INFO);this.emitEvent(o)}}sendMessageReceived(e){let t=this.createNotification(h.NEW_MESSAGE,e,P.INFO);this.emitEvent(t)}sendError(e){let t=this.createNotification(h.ERROR,e,P.ERROR);this.emitEvent(t)}sendReconnecting(e){let t=this.createNotification(h.RECONNECTING,e,P.ERROR);this.emitEvent(t)}sendReconnected(){let e=this.createNotification(h.RECONNECTED,null,P.INFO);this.emitEvent(e)}sendChangeTrackStateRequest(e){let t=this.createNotification(h.CHANGE_TRACK_STATE_REQUEST,e,P.INFO);this.emitEvent(t)}sendChangeMultiTrackStateRequest(e){let t=this.createNotification(h.CHANGE_MULTI_TRACK_STATE_REQUEST,e,P.INFO);this.emitEvent(t)}emitEvent(e){this.eventEmitter.emit(je,e)}createNotification(e,t,r,i=""){return this.id++,{id:this.id,type:e,message:i,data:t,severity:r}}};var Rt=I(require("@100mslive/hms-video")),he=s=>Rt.isBrowser?`${s} ${document.title}`:s;var It=(s,e,t)=>{let r;t.getState(b)===H.Connected&&(r=vt(s,e,t)),t.subscribe(i=>{[H.Connected,H.Reconnecting].includes(i)?r||(r=vt(s,e,t)):r&&(er(e),r())},b)},vt=(s,e,t)=>{var o;let r=zs(t,e),i=(o=s.getWebrtcInternals())==null?void 0:o.onStatsChange(a=>Zs(e,a,t));return()=>{r(),i&&i()}},zs=(s,e)=>{let t,r,i;return s.getState(q)?e.namedSetState(o=>{o.localPeer.id=s.getState(q)},"localpeer-id"):t=s.subscribe(o=>{o&&e.namedSetState(a=>{a.localPeer.id=o},"localpeer-id")},q),s.getState(L)?e.namedSetState(o=>{o.localPeer.videoTrack=s.getState(L)},"localpeer-videotrack-id"):r=s.subscribe(o=>{o&&e.namedSetState(a=>{a.localPeer.videoTrack=o},"localpeer-videotrack-id")},L),s.getState(C)?e.namedSetState(o=>{o.localPeer.videoTrack=s.getState(C)},"localpeer-audiotrack-id"):i=s.subscribe(o=>{o&&e.namedSetState(a=>{a.localPeer.videoTrack=o},"localpeer-audiotrack-id")},C),()=>{t==null||t(),r==null||r(),i==null||i()}},Zs=(s,e,t)=>{let r=t.getState(y);s.namedSetState(i=>{let o={},a=Object.keys(r);for(let R of a){let j=e.getTrackStats(R);j&&(o[R]=j)}He(i.trackStats,o);let p={[t.getState(q)]:e.getLocalPeerStats()};He(i.peerStats,p)},"webrtc-stats")},er=(s,e="resetState")=>{s.namedSetState(t=>{Object.assign(t,z())},e)};var ne=class{constructor(e,t){this.hmsStore=e;this.sdk=t;this.store=x.createNewHMSStore(he("HMSStatsStore"),z),this.getState=this.store.getState,this.subscribe=this.store.subscribe,this.getPublishPeerConnection=()=>new Promise(r=>{var i,o;this.hmsStore.getState(b)==="Connected"?r((o=(i=this.sdk)==null?void 0:i.getWebrtcInternals())==null?void 0:o.getPublishPeerConnection()):this.hmsStore.subscribe(a=>{var c,p;a==="Connected"&&r((p=(c=this.sdk)==null?void 0:c.getWebrtcInternals())==null?void 0:p.getPublishPeerConnection())},b)}),this.getSubscribePeerConnection=()=>new Promise(r=>{var i,o;this.hmsStore.getState(b)==="Connected"?r((o=(i=this.sdk)==null?void 0:i.getWebrtcInternals())==null?void 0:o.getSubscribePeerConnection()):this.hmsStore.subscribe(a=>{var c,p;a==="Connected"&&r((p=(c=this.sdk)==null?void 0:c.getWebrtcInternals())==null?void 0:p.getSubscribePeerConnection())},b)}),!!this.sdk&&It(this.sdk,this.store,this.hmsStore)}};var T=I(require("reselect"));var tr=s=>s.localPeer.id,sr=s=>s.localPeer.audioTrack,rr=s=>s.localPeer.videoTrack,ir=(s,e)=>e,or=(s,e)=>e,We=s=>s.trackStats,Dt=s=>s.peerStats,B=(0,T.createSelector)([Dt,tr],(s,e)=>s[e]),ar=(0,T.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.packetsLost}),nr=(0,T.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.jitter}),cr=(0,T.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bitrate}),lr=(0,T.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bitrate}),Sr=(0,T.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.availableOutgoingBitrate}),dr=(0,T.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.availableIncomingBitrate}),ur=(0,T.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bytesSent}),pr=(0,T.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bytesReceived}),Mr=(0,T.createSelector)([Dt,ir],(s,e)=>e?s[e]:void 0),J=(0,T.createSelector)([We,or],(s,e)=>e?s[e]:void 0),mr=u(Mr),hr=u(J),gr=u((0,T.createSelector)(J,s=>s==null?void 0:s.bitrate)),Tr=u((0,T.createSelector)(J,s=>s==null?void 0:s.bytesReceived)),Hr=u((0,T.createSelector)(J,s=>s==null?void 0:s.framesPerSecond)),yr=u((0,T.createSelector)(J,s=>s==null?void 0:s.jitter)),fr=u((0,T.createSelector)(J,s=>s==null?void 0:s.packetsLost)),Fe=(0,T.createSelector)([We,sr],(s,e)=>e?s[e]:void 0),ce=(0,T.createSelector)([We,rr],(s,e)=>e?s[e]:void 0),kr=(0,T.createSelector)(Fe,s=>s==null?void 0:s.bitrate),Pr=(0,T.createSelector)(ce,s=>s==null?void 0:s.bitrate),Rr=(0,T.createSelector)(Fe,s=>s==null?void 0:s.bytesSent),Ir=(0,T.createSelector)(ce,s=>s==null?void 0:s.bytesSent),vr=(0,T.createSelector)(ce,s=>s==null?void 0:s.framesPerSecond),Dr=(0,T.createSelector)(ce,s=>s==null?void 0:s.qualityLimitationReason),bt={localPeerStats:B,packetsLost:ar,jitter:nr,publishBitrate:cr,subscribeBitrate:lr,availablePublishBitrate:Sr,availableSubscribeBitrate:dr,totalBytesSent:ur,totalBytesReceived:pr,peerStatsByID:mr,trackStatsByID:hr,bitrateByTrackID:gr,bytesReceivedByTrackID:Tr,framerateByTrackID:Hr,jitterByTrackID:yr,packetsLostByTrackID:fr,localAudioTrackStats:Fe,localVideoTrackStats:ce,localAudioTrackBitrate:kr,localVideoTrackBitrate:Pr,localAudioTrackBytesSent:Rr,localVideoTrackBytesSent:Ir,localVideoTrackFramerate:vr,localVideoTrackQualityLimitationReason:Dr};var x=class{constructor(e,t,r){this.getStats=()=>(this.stats||(this.stats=new ne(this.store,this.sdk)),this.stats);e?this.store=e:this.store=x.createNewHMSStore(he("HMSStore"),X),r?this.notifications=r:this.notifications=new $e(this.store),t?this.actions=t:(this.sdk=new ge.HMSSdk,this.actions=new qe(this.store,this.sdk,this.notifications)),this.initialTriggerOnSubscribe=!1,ge.isBrowser&&(window.__hms=this)}triggerOnSubscribe(){this.initialTriggerOnSubscribe||(x.makeStoreTriggerOnSubscribe(this.store),this.initialTriggerOnSubscribe=!0)}getStore(){return this.store}getHMSActions(){return this.actions}getActions(){return this.actions}getNotifications(){return{onNotification:this.notifications.onNotification}}static createNewHMSStore(e,t){let r=(0,At.default)(()=>t()),i=r.setState;r.setState=c=>{let p=typeof c=="function"?(0,Et.default)(c):c;i(p)};let o=r.getState;r.getState=c=>{if(c){let p=c.name||"byIDSelector";window.selectorsCount||(window.selectorsCount={}),window.selectorsCount[p]=(window.selectorsCount[p]||0)+1;let R=performance.now(),j=c(o()),f=performance.now()-R;return f>1&&(window.expensiveSelectors=window.expensiveSelectors||new Map,window.expensiveSelectors.set(p,f)),j}return o()},x.compareWithShallowCheckInSubscribe(r);let a=x.setUpDevtools(r,e);return F(w({},r),{namedSetState:a})}static makeStoreTriggerOnSubscribe(e){let t=e.subscribe;e.subscribe=(r,i,o)=>(r(e.getState(i),void 0),t(r,i,o))}static compareWithShallowCheckInSubscribe(e){let t=e.subscribe;e.subscribe=(r,i,o)=>(i||(i=a=>a),o=o||Ct.default,t(r,i,o))}static setUpDevtools(e,t){let r;try{r=window.__REDUX_DEVTOOLS_EXTENSION__||window.top.__REDUX_DEVTOOLS_EXTENSION__}catch(a){}if(!r)return a=>{e.setState(a)};let i=r.connect(x.devtoolsOptions(t));i.prefix=t?`${t} > `:"";let o=e.setState;return e.setState=a=>{o(a),i.send(`${i.prefix}setState`,e.getState())},i.subscribe(x.devtoolsSubscribe(i,e,o)),i.send("setUpStore",e.getState()),(a,c)=>{o(a);let p=c||`${i.prefix}action`;i.send(p,e.getState())}}static devtoolsOptions(e){return{name:e,actionsBlacklist:["audioLevel","playlistProgress"]}}static devtoolsSubscribe(e,t,r){return i=>{var o,a,c,p;if(i.type==="DISPATCH"&&i.state)["JUMP_TO_ACTION","JUMP_TO_STATE"].includes(i.payload.type)?r(JSON.parse(i.state)):t.setState(JSON.parse(i.state));else if(i.type==="DISPATCH"&&((o=i.payload)==null?void 0:o.type)==="COMMIT")e.init(t.getState());else if(i.type==="DISPATCH"&&((a=i.payload)==null?void 0:a.type)==="IMPORT_STATE"){let R=(c=i.payload.nextLiftedState)==null?void 0:c.actionsById;(((p=i.payload.nextLiftedState)==null?void 0:p.computedStates)||[]).forEach(({state:f},N)=>{let Y=R[N]||`${e.prefix}setState`;N===0?e.init(f):(r(f),e.send(Y,t.getState()))})}}}};
|
|
1
|
+
var Lt=Object.create;var Q=Object.defineProperty,xt=Object.defineProperties,Ot=Object.getOwnPropertyDescriptor,Nt=Object.getOwnPropertyDescriptors,wt=Object.getOwnPropertyNames,Je=Object.getOwnPropertySymbols,Ut=Object.getPrototypeOf,Ye=Object.prototype.hasOwnProperty,_t=Object.prototype.propertyIsEnumerable;var Qe=(s,e,t)=>e in s?Q(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,w=(s,e)=>{for(var t in e||(e={}))Ye.call(e,t)&&Qe(s,t,e[t]);if(Je)for(var t of Je(e))_t.call(e,t)&&Qe(s,t,e[t]);return s},F=(s,e)=>xt(s,Nt(e)),Xe=s=>Q(s,"__esModule",{value:!0});var Kt=(s,e)=>{Xe(s);for(var t in e)Q(s,t,{get:e[t],enumerable:!0})},Vt=(s,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of wt(e))!Ye.call(s,r)&&r!=="default"&&Q(s,r,{get:()=>e[r],enumerable:!(t=Ot(e,r))||t.enumerable});return s},I=s=>Vt(Xe(Q(s!=null?Lt(Ut(s)):{},"default",s&&s.__esModule&&"default"in s?{get:()=>s.default,enumerable:!0}:{value:s,enumerable:!0})),s);var l=(s,e,t)=>new Promise((r,i)=>{var o=p=>{try{c(t.next(p))}catch(R){i(R)}},a=p=>{try{c(t.throw(p))}catch(R){i(R)}},c=p=>p.done?r(p.value):Promise.resolve(p.value).then(o,a);c((t=t.apply(s,e)).next())});Kt(exports,{HMSAudioPluginType:()=>n.HMSAudioPluginType,HMSLogLevel:()=>n.HMSLogLevel,HMSMessageType:()=>Te,HMSNotificationSeverity:()=>P,HMSNotificationTypes:()=>g,HMSPlaylistType:()=>M,HMSReactiveStore:()=>x,HMSRoomState:()=>H,HMSStats:()=>ne,HMSVideoPluginType:()=>n.HMSVideoPluginType,createDefaultStatsStore:()=>z,createDefaultStoreState:()=>X,parsedUserAgent:()=>n.parsedUserAgent,selectAudioPlaylist:()=>Oe,selectAudioPlaylistTrackByPeerID:()=>ks,selectAudioTrackByPeerID:()=>Mt,selectAudioTrackVolume:()=>Be,selectAudioVolumeByPeerID:()=>bs,selectAuxiliaryAudioByPeerID:()=>Hs,selectAuxiliaryTracksByPeerID:()=>ms,selectAvailableRoleNames:()=>os,selectBroadcastMessages:()=>Tt,selectBroadcastMessagesUnreadCount:()=>xs,selectCameraStreamByPeerID:()=>Ms,selectDegradedTracks:()=>ss,selectDevices:()=>$t,selectDidIJoinWithin:()=>Xs,selectDominantSpeaker:()=>Yt,selectHLSState:()=>ls,selectHMSMessages:()=>se,selectHMSMessagesCount:()=>Ee,selectHMSStats:()=>bt,selectIsAllowedToPublish:()=>js,selectIsAllowedToSubscribe:()=>as,selectIsAudioLocallyMuted:()=>Ve,selectIsConnectedToRoom:()=>rt,selectIsInPreview:()=>is,selectIsLocalAudioEnabled:()=>Qt,selectIsLocalAudioPluginPresent:()=>Js,selectIsLocalScreenShared:()=>ue,selectIsLocalVideoDisplayEnabled:()=>be,selectIsLocalVideoEnabled:()=>de,selectIsLocalVideoPluginPresent:()=>Gs,selectIsLocallyMutedByPeerID:()=>vs,selectIsPeerAudioEnabled:()=>Rs,selectIsPeerVideoEnabled:()=>Is,selectIsScreenShareLocallyMutedByPeerID:()=>Ds,selectIsSomeoneScreenSharing:()=>Xt,selectLocalAudioTrackID:()=>A,selectLocalMediaSettings:()=>ve,selectLocalPeer:()=>C,selectLocalPeerID:()=>q,selectLocalPeerRole:()=>re,selectLocalTrackIDs:()=>De,selectLocalVideoTrackID:()=>L,selectMessageIDsInOrder:()=>Ie,selectMessagesByPeerID:()=>Os,selectMessagesByRole:()=>Ns,selectMessagesMap:()=>Re,selectMessagesUnreadCountByPeerID:()=>Us,selectMessagesUnreadCountByRole:()=>ws,selectPeerAudioByID:()=>Ts,selectPeerByCondition:()=>Ys,selectPeerByID:()=>O,selectPeerCount:()=>Wt,selectPeerMetadata:()=>Ks,selectPeerNameByID:()=>ps,selectPeerScreenSharing:()=>it,selectPeerSharingAudio:()=>zt,selectPeerSharingAudioPlaylist:()=>ts,selectPeerSharingVideoPlaylist:()=>es,selectPeers:()=>W,selectPeersByCondition:()=>Qs,selectPeersByRole:()=>_s,selectPeersMap:()=>D,selectPeersScreenSharing:()=>Zt,selectPeersWithAudioStatus:()=>Vs,selectPermissions:()=>Ce,selectRTMPState:()=>cs,selectRecordingState:()=>ns,selectRemotePeers:()=>Jt,selectRoleByRoleName:()=>$s,selectRoleChangeRequest:()=>qs,selectRolesMap:()=>K,selectRoom:()=>v,selectRoomID:()=>jt,selectRoomStartTime:()=>ds,selectRoomStarted:()=>Ae,selectRoomState:()=>b,selectScreenShareAudioByPeerID:()=>Ke,selectScreenShareByPeerID:()=>Ps,selectScreenSharesByPeerId:()=>_e,selectScreenshareAudioVolumeByPeerID:()=>Es,selectSessionId:()=>Ss,selectSimulcastLayerByTrack:()=>As,selectSpeakers:()=>st,selectTrackAudioByID:()=>gs,selectTrackByID:()=>oe,selectTracksMap:()=>y,selectUnreadHMSMessagesCount:()=>rs,selectVideoPlaylist:()=>Ne,selectVideoPlaylistAudioTrackByPeerID:()=>fs,selectVideoPlaylistVideoTrackByPeerID:()=>ys,selectVideoTrackByPeerID:()=>pt});var Et=I(require("immer")),At=I(require("zustand/vanilla")),Ct=I(require("zustand/shallow")),he=I(require("@100mslive/hms-video"));var H;(function(c){c.Disconnected="Disconnected",c.Preview="Preview",c.Connecting="Connecting",c.Connected="Connected",c.Reconnecting="Reconnecting",c.Disconnecting="Disconnecting",c.Failed="Failed"})(H||(H={}));var X=()=>({room:{id:"",isConnected:!1,name:"",peers:[],shareableLink:"",localPeer:"",hasWaitingRoom:!1,roomState:H.Disconnected,recording:{browser:{running:!1},server:{running:!1},hls:{running:!1}},rtmp:{running:!1},hls:{running:!1,variants:[]},sessionId:""},peers:{},tracks:{},playlist:{audio:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1},video:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1}},messages:{byID:{},allIDs:[]},speakers:{},settings:{audioInputDeviceId:"",audioOutputDeviceId:"",videoInputDeviceId:""},devices:{audioInput:[],audioOutput:[],videoInput:[]},roles:{},roleChangeRequests:[],errors:[]}),z=()=>({peerStats:{},trackStats:{},localPeer:{id:""}});var Te;(function(e){e.CHAT="chat"})(Te||(Te={}));var P;(function(r){r.INFO="info",r.ERROR="error",r.CRITICAL="critical"})(P||(P={}));var g;(function(S){S.PEER_JOINED="PEER_JOINED",S.PEER_LEFT="PEER_LEFT",S.PEER_LIST="PEER_LIST",S.NEW_MESSAGE="NEW_MESSAGE",S.ERROR="ERROR",S.RECONNECTING="RECONNECTING",S.RECONNECTED="RECONNECTED",S.TRACK_ADDED="TRACK_ADDED",S.TRACK_REMOVED="TRACK_REMOVED",S.TRACK_MUTED="TRACK_MUTED",S.TRACK_UNMUTED="TRACK_UNMUTED",S.TRACK_DEGRADED="TRACK_DEGRADED",S.TRACK_RESTORED="TRACK_RESTORED",S.ROLE_CHANGE_REQUEST="ROLE_CHANGE_REQUEST",S.ROLE_UPDATED="ROLE_UPDATED",S.CHANGE_TRACK_STATE_REQUEST="CHANGE_TRACK_STATE_REQUEST",S.CHANGE_MULTI_TRACK_STATE_REQUEST="CHANGE_MULTI_TRACK_STATE_REQUEST",S.ROOM_ENDED="ROOM_ENDED",S.REMOVED_FROM_ROOM="REMOVED_FROM_ROOM",S.DEVICE_CHANGE_UPDATE="DEVICE_CHANGE_UPDATE",S.PLAYLIST_TRACK_ENDED="PLAYLIST_TRACK_ENDED",S.NAME_UPDATED="NAME_UPDATED",S.METADATA_UPDATED="METADATA_UPDATED"})(g||(g={}));var M;(function(t){t.audio="audio",t.video="video"})(M||(M={}));var n=I(require("@100mslive/hms-video"));var _=I(require("@100mslive/hms-video"));var ze=(s,e)=>{let t=Pe(Object.keys(s),Object.keys(e));for(let r of t){let i=s[r],o=e[r];ye(i,o)?(U(i.auxiliaryTracks,o.auxiliaryTracks)&&(o.auxiliaryTracks=i.auxiliaryTracks),Object.assign(i,o)):fe(i,o)?delete s[r]:ke(i,o)&&(s[r]=o)}},Ze=(s,e)=>{let t=Pe(Object.keys(s),Object.keys(e));for(let r of t){let i=s[r],o=e[r];ye(i,o)?(Bt(i,o),Object.assign(i,o)):fe(i,o)?delete s[r]:ke(i,o)&&(s[r]=o)}},He=(s,e)=>{let t=Pe(Object.keys(s),Object.keys(e));for(let r of t){let i=s[r],o=e[r];ye(i,o)?Object.assign(i,o):fe(i,o)?delete s[r]:ke(i,o)&&(s[r]=o)}},Bt=(s,e)=>{s.plugins&&U(s.plugins,e.plugins)&&(e.plugins=s.plugins),s.layerDefinitions&&U(s.layerDefinitions,e.layerDefinitions)&&(e.layerDefinitions=s.layerDefinitions)},ye=(s,e)=>s&&e,fe=(s,e)=>s&&!e,ke=(s,e)=>!s&&e,U=(s,e)=>{if(s===e||s.length===0&&(e==null?void 0:e.length)===0)return!0;if(!s||!e||s.length!==e.length)return!1;for(let t=0;t<s.length;t++)if(s[t]!==e[t])return!1;return!0},Pe=(s,e)=>{let t=new Set;for(let r of s)t.add(r);for(let r of e)t.add(r);return Array.from(t)};var h=class{static convertPeer(e){var t,r,i;return{id:e.peerId,name:e.name,roleName:(t=e.role)==null?void 0:t.name,isLocal:e.isLocal,videoTrack:(r=e.videoTrack)==null?void 0:r.trackId,audioTrack:(i=e.audioTrack)==null?void 0:i.trackId,auxiliaryTracks:e.auxiliaryTracks.map(o=>o.trackId),customerUserId:e.customerUserId,customerDescription:e.metadata,metadata:e.metadata}}static convertTrack(e,t){let r={id:e.trackId,source:e.source,type:e.type,enabled:e.enabled,displayEnabled:e.enabled,peerId:e.peerId||t};return this.enrichTrack(r,e),r}static enrichTrack(e,t){let r=t.getMediaTrackSettings();e.source==="screen"&&e.type==="video"&&(e.displaySurface=r.displaySurface),e.height=r.height,e.width=r.width,t instanceof _.HMSRemoteAudioTrack&&(e.volume=t.getVolume()||0),h.updateDeviceID(e,t),h.enrichVideoTrack(e,t),h.enrichPluginsDetails(e,t)}static updateDeviceID(e,t){var r;t instanceof _.HMSLocalVideoTrack||t instanceof _.HMSLocalAudioTrack?e.deviceID=t.settings.deviceId:e.deviceID=(r=t.getMediaTrackSettings())==null?void 0:r.deviceId}static enrichVideoTrack(e,t){t instanceof _.HMSRemoteVideoTrack&&(e.layer=t.getSimulcastLayer(),e.degraded=t.degraded,U(t.getSimulcastDefinitions(),e.layerDefinitions)||(e.layerDefinitions=t.getSimulcastDefinitions()))}static enrichPluginsDetails(e,t){(t instanceof _.HMSLocalVideoTrack||t instanceof _.HMSLocalAudioTrack)&&(U(t.getPlugins(),e.plugins)||(e.plugins=t.getPlugins()))}static convertRoom(e){var o,a;let{recording:t,rtmp:r,hls:i}=h.convertRecordingStreamingState(e==null?void 0:e.recording,e==null?void 0:e.rtmp,e==null?void 0:e.hls);return{id:e.id,name:e.name,localPeer:(a=(o=e.localPeer)==null?void 0:o.peerId)!=null?a:"",hasWaitingRoom:e.hasWaitingRoom,shareableLink:e.shareableLink,recording:t,rtmp:r,hls:i,sessionId:e.sessionId,startedAt:e.startedAt,joinedAt:e.joinedAt,peerCount:e.peerCount}}static convertMessage(e){var t,r,i;return{sender:e.sender.peerId,senderName:e.sender.name,senderRole:(t=e.sender.role)==null?void 0:t.name,senderUserId:e.sender.customerUserId,recipientPeer:(r=e.recipientPeer)==null?void 0:r.peerId,recipientRoles:(i=e.recipientRoles)==null?void 0:i.map(o=>o.name),time:e.time,type:e.type,message:e.message}}static convertRoles(e){let t={};return e&&e.forEach(r=>{t[r.name]=r}),t}static convertRoleChangeRequest(e){var t;return{requestedBy:(t=e.requestedBy)==null?void 0:t.peerId,roleName:e.role.name,token:e.token}}static convertException(e){return{code:e.code,action:e.action,name:e.name,message:e.message,description:e.description,isTerminal:e.isTerminal,nativeError:e.nativeError,timestamp:new Date}}static convertDeviceChangeUpdate(e){let t={devices:e.devices,selection:e.selection,type:e.type};return e.error&&(t.error=this.convertException(e.error)),t}static convertPlaylist(e){let t=this.getConvertedPlaylistType(e,M.audio),r=this.getConvertedPlaylistType(e,M.video);return{audio:t,video:r}}static convertPlaylistItem(e,t){let r=t.type,i=e.getCurrentSelection(r),o=e.isPlaying(r),a=t.url===(i==null?void 0:i.url);return F(w({},t),{type:t.type,selected:a,playing:a&&o})}static getConvertedPlaylistType(e,t){let r={},i=e.getCurrentSelection(t),o=e.getCurrentProgress(t),a=e.getVolume(t),c=e.getList(t),p=e.getCurrentIndex(t);return e.getList(t).forEach(R=>{r[R.id]=h.convertPlaylistItem(e,R)}),{list:r,selection:{id:i==null?void 0:i.id,hasPrevious:p>0,hasNext:p<c.length-1},progress:o,volume:a,currentTime:e.getCurrentTime(t),playbackRate:e.getPlaybackRate(t)}}static convertRecordingStreamingState(e,t,r){var i;return{recording:{browser:w({running:!1},e==null?void 0:e.browser),server:w({running:!1},e==null?void 0:e.server),hls:w({running:!1},e==null?void 0:e.hls)},rtmp:w({running:!1},t),hls:{variants:((i=r==null?void 0:r.variants)==null?void 0:i.map(o=>o))||[],running:!!(r==null?void 0:r.running),error:r==null?void 0:r.error}}}};var d=I(require("reselect"));function $(s,e,t=qt){let r,i;if(e)for(let o of e.auxiliaryTracks){let a=s[o];t(a)&&(i=Z(a)?a:i,r=ee(a)?a:r)}return{video:r,audio:i}}function Z(s){return s&&s.type==="audio"}function ee(s){return s&&s.type==="video"}function qt(s){return s&&s.source==="screen"}function Se(s){return s&&s.source==="audioplaylist"}function te(s){return s&&s.source==="videoplaylist"}function et(s){return Boolean(s==null?void 0:s.degraded)}function G(s,e){return e&&s.tracks[e]?s.tracks[e].enabled:!1}function tt(s,e){return e&&s.tracks[e]?s.tracks[e].displayEnabled:!1}var v=s=>s.room,jt=(0,d.createSelector)(v,s=>s.id),D=s=>s.peers,Re=s=>s.messages.byID,Ie=s=>s.messages.allIDs,y=s=>s.tracks,ve=s=>s.settings,$t=s=>s.devices,st=s=>s.speakers,rt=(0,d.createSelector)([v],s=>s&&s.isConnected),Wt=(0,d.createSelector)([rt,v],(s,e)=>s?e.peerCount||e.peers.length:Math.max(e.peerCount||e.peers.length-1,0)),W=(0,d.createSelector)([v,D],(s,e)=>s.peers.map(t=>e[t])),Ft=(0,d.createSelector)(y,s=>Object.values(s)),C=(0,d.createSelector)(v,D,(s,e)=>e[s.localPeer]),q=(0,d.createSelector)(v,s=>s.localPeer),A=(0,d.createSelector)(C,s=>s==null?void 0:s.audioTrack),L=(0,d.createSelector)(C,s=>s==null?void 0:s.videoTrack),Gt=(0,d.createSelector)(C,s=>s==null?void 0:s.auxiliaryTracks),De=(0,d.createSelector)([A,L,Gt],(s,e,t)=>{let r=[...t];return s&&r.unshift(s),e&&r.unshift(e),r}),Jt=(0,d.createSelector)(W,s=>s.filter(e=>!e.isLocal)),Yt=(0,d.createSelector)(D,st,(s,e)=>{let t=Object.entries(e).sort((r,i)=>{var c,p;let o=((c=r[1])==null?void 0:c.audioLevel)||0;return(((p=i[1])==null?void 0:p.audioLevel)||0)>o?1:-1});if(t.length>0&&t[0][1].audioLevel&&t[0][1].audioLevel>0){let r=t[0][1].peerID;if(r in s)return s[r]}return null}),Qt=s=>{let e=C(s);return G(s,e==null?void 0:e.audioTrack)},de=s=>{let e=C(s);return G(s,e==null?void 0:e.videoTrack)},be=s=>{let e=C(s);return tt(s,e==null?void 0:e.videoTrack)},ue=(0,d.createSelector)(C,y,(s,e)=>{let{video:t,audio:r}=$(e,s);return!!(t||r)}),it=(0,d.createSelector)(D,y,(s,e)=>{let t;for(let r in s){let i=s[r],{video:o,audio:a}=$(e,i);if(o)return i;a&&!t&&(t=i)}return t}),Xt=(0,d.createSelector)(it,s=>!!s),zt=(0,d.createSelector)(D,y,(s,e)=>{for(let t in s){let r=s[t],{audio:i,video:o}=$(e,r);if(!o&&!!i)return r}}),Zt=(0,d.createSelector)(D,y,(s,e)=>{let t=[],r=[];for(let i in s){let o=s[i],{video:a,audio:c}=$(e,o);a?t.push(o):c&&r.push(o)}return t.concat(r)}),es=(0,d.createSelector)(D,y,(s,e)=>{for(let t in e){let r=e[t];if(te(r)&&ee(r)&&r.peerId)return s[r.peerId]}}),ts=(0,d.createSelector)(D,y,(s,e)=>{for(let t in e){let r=e[t];if(Se(r)&&r.peerId)return s[r.peerId]}}),ss=(0,d.createSelector)(Ft,s=>s.filter(et)),Ee=(0,d.createSelector)(Ie,s=>s.length),rs=(0,d.createSelector)(Re,s=>Object.values(s).filter(e=>!e.read).length),se=(0,d.createSelector)(Ie,Re,(s,e)=>{let t=[];return s.forEach(r=>{t.push(e[r])}),t}),b=(0,d.createSelector)([v],s=>s&&s.roomState),is=(0,d.createSelector)(b,s=>s===H.Preview),Ae=(0,d.createSelector)(v,s=>s.roomState!==H.Disconnected),K=s=>s.roles,os=(0,d.createSelector)([K],s=>Object.keys(s)),re=(0,d.createSelector)([C,K],(s,e)=>(s==null?void 0:s.roleName)?e[s.roleName]:null),as=(0,d.createSelector)([re],s=>{var e;return((e=s==null?void 0:s.subscribeParams)==null?void 0:e.subscribeToRoles)?s.subscribeParams.subscribeToRoles.length>0:!1}),Ce=(0,d.createSelector)(re,s=>s==null?void 0:s.permissions),ns=(0,d.createSelector)(v,s=>s.recording),cs=(0,d.createSelector)(v,s=>s.rtmp),ls=(0,d.createSelector)(v,s=>s.hls),Ss=(0,d.createSelector)(v,s=>s.sessionId),ds=(0,d.createSelector)(v,s=>s.startedAt);var Le=I(require("reselect"));var ot=(s=M.audio)=>e=>e.playlist[s].list,xe=(s=M.audio)=>e=>e.playlist[s].selection,at=(s=M.audio)=>e=>e.playlist[s].progress,nt=(s=M.audio)=>e=>e.playlist[s].currentTime,ct=(s=M.audio)=>e=>e.playlist[s].playbackRate,lt=(s=M.audio)=>e=>e.playlist[s].volume,St=(s=M.audio)=>(0,Le.createSelector)(ot(s),e=>Object.values(e)),dt=(s=M.audio)=>(0,Le.createSelector)(ot(s),xe(s),(e,t)=>{if(!!t.id)return e[t.id]}),Oe={selection:xe(M.audio),progress:at(M.audio),currentTime:nt(M.audio),playbackRate:ct(M.audio),volume:lt(M.audio),list:St(M.audio),selectedItem:dt(M.audio)},Ne={selection:xe(M.video),progress:at(M.video),currentTime:nt(M.video),playbackRate:ct(M.video),volume:lt(M.video),list:St(M.video),selectedItem:dt(M.video)};var k=I(require("reselect"));function u(s){return e=>t=>s(t,e)}var ie="HMS-Store:",m=class{static v(e,...t){this.log(n.HMSLogLevel.VERBOSE,e,...t)}static d(...e){this.log(n.HMSLogLevel.DEBUG,...e)}static i(...e){this.log(n.HMSLogLevel.INFO,...e)}static w(...e){this.log(n.HMSLogLevel.WARN,...e)}static e(...e){this.log(n.HMSLogLevel.ERROR,...e)}static time(e){this.log(n.HMSLogLevel.TIME,"[HMSPerformanceTiming]",e)}static timeEnd(e){this.log(n.HMSLogLevel.TIMEEND,"[HMSPerformanceTiming]",e,e)}static cleanUp(){performance.clearMarks(),performance.clearMeasures()}static log(e,...t){if(!(this.level.valueOf()>e.valueOf()))switch(e){case n.HMSLogLevel.VERBOSE:{console.log(ie,...t);break}case n.HMSLogLevel.DEBUG:{console.debug(ie,...t);break}case n.HMSLogLevel.INFO:{console.info(ie,...t);break}case n.HMSLogLevel.WARN:{console.warn(ie,...t);break}case n.HMSLogLevel.ERROR:{console.error(ie,...t);break}case n.HMSLogLevel.TIME:{performance.mark(t[1]);break}case n.HMSLogLevel.TIMEEND:{let r=t[0],i=t[1];try{let o=performance.measure(i,i);this.log(n.HMSLogLevel.DEBUG,r,i,o==null?void 0:o.duration),performance.clearMarks(i),performance.clearMeasures(i)}catch(o){this.log(n.HMSLogLevel.DEBUG,r,i,o)}break}}}};m.level=n.HMSLogLevel.VERBOSE;var we=(s,e)=>e,us=(s,e)=>e,ut=(s,e)=>e,E=(0,k.createSelector)([D,we],(s,e)=>e?s[e]:null),Ue=(0,k.createSelector)([y,us],(s,e)=>e?s[e]:null),O=u(E),ps=u((0,k.createSelector)(E,s=>s==null?void 0:s.name)),oe=u(Ue),pt=u((s,e)=>{let t=E(s,e);if(t&&t.videoTrack&&t.videoTrack!=="")return s.tracks[t.videoTrack]}),Mt=u((s,e)=>{let t=E(s,e);if(t&&t.audioTrack&&t.audioTrack!=="")return s.tracks[t.audioTrack]}),Ms=pt,ms=u((s,e)=>{let t=E(s,e);return(t==null?void 0:t.auxiliaryTracks.map(r=>s.tracks[r]))||[]}),mt=(s,e)=>e?s.speakers[e]:null,gs=u((0,k.createSelector)(mt,s=>(s==null?void 0:s.audioLevel)||0)),hs=(s,e)=>{let t=Mt(e)(s);return mt(s,t==null?void 0:t.id)},Ts=u((0,k.createSelector)(hs,s=>(s==null?void 0:s.audioLevel)||0)),Hs=u((s,e)=>{let t=E(s,e);if(t){let r=t==null?void 0:t.auxiliaryTracks.find(i=>Z(s.tracks[i]));return r?s.tracks[r]:void 0}}),ys=u((0,k.createSelector)(y,E,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let i=s[r];return te(i)&&ee(i)});return t?s[t]:void 0})),fs=u((0,k.createSelector)(y,E,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let i=s[r];return te(i)&&Z(i)});return t?s[t]:void 0})),ks=u((0,k.createSelector)(y,E,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let i=s[r];return Se(i)&&Z(i)});return t?s[t]:void 0})),_e=u((0,k.createSelector)(y,E,(s,e)=>$(s,e))),Ps=s=>(0,k.createSelector)(_e(s),e=>e.video),Ke=s=>(0,k.createSelector)(_e(s),e=>e.audio),Rs=u((s,e)=>{let t=E(s,e);return G(s,t==null?void 0:t.audioTrack)}),Is=u((s,e)=>{let t=E(s,e);return G(s,t==null?void 0:t.videoTrack)}),Ve=u((s,e)=>{if(e&&s.tracks[e])return s.tracks[e].volume===0}),vs=u((s,e)=>{let t=E(s,e);return Ve(t==null?void 0:t.audioTrack)(s)}),Ds=u((s,e)=>{let t=Ke(e)(s);return Ve(t==null?void 0:t.id)(s)}),Be=u((s,e)=>{let t=Ue(s,e);if(t){if(t.type!=="audio"){m.w("Please pass audio track here");return}return t.volume}}),bs=u((s,e)=>{let t=E(s,e);return Be(t==null?void 0:t.audioTrack)(s)}),Es=u((s,e)=>{let t=Ke(e)(s);return Be(t==null?void 0:t.id)(s)}),As=u((s,e)=>{let t=Ue(s,e);if(t){if(t.type!=="video"){m.w("Please pass video track here");return}return t.layer}}),gt=(0,k.createSelector)([se,q,we],(s,e,t)=>{if(!!t)return s.filter(r=>{var i;return!r.recipientPeer&&!((i=r.recipientRoles)==null?void 0:i.length)||![e,t].includes(r.sender)?!1:[e,t].includes(r.recipientPeer)})}),ht=(0,k.createSelector)([se,ut],(s,e)=>{if(!!e)return s.filter(t=>{var r,i;return((r=t.recipientRoles)==null?void 0:r.length)?(i=t.recipientRoles)==null?void 0:i.includes(e):!1})}),Tt=(0,k.createSelector)(se,s=>s.filter(e=>{var t;return!e.recipientPeer&&!((t=e.recipientRoles)==null?void 0:t.length)})),Cs=(0,k.createSelector)([ht,ut],s=>s?s.filter(e=>!e.read).length:0),Ls=(0,k.createSelector)([gt,we],s=>s?s.filter(e=>!e.read).length:0),xs=(0,k.createSelector)(Tt,s=>s.filter(e=>!e.read).length),Os=u(gt),Ns=u(ht),ws=u(Cs),Us=u(Ls),_s=s=>(0,k.createSelector)([W],e=>e.filter(t=>t.roleName===s)),Ks=s=>(0,k.createSelector)(O(s),e=>{try{return(e==null?void 0:e.metadata)&&e.metadata!==""?JSON.parse(e.metadata):{}}catch(t){return console.error("cannot parse peer metadata",t),{}}});var pe=I(require("reselect")),Vs=(0,pe.createSelector)([D,y],(s,e)=>Object.values(s).map(r=>{var i;return{peer:r,isAudioEnabled:r.audioTrack?(i=e[r.audioTrack])==null?void 0:i.enabled:!1}})),Bs=s=>s.roleChangeRequests[0]||null,qs=(0,pe.createSelector)([Bs,D,K],(s,e,t)=>s?{requestedBy:s.requestedBy?e[s.requestedBy]:void 0,role:t[s.roleName],token:s.token}:null),js=(0,pe.createSelector)([re],s=>{var i;let e=!1,t=!1,r=!1;return((i=s==null?void 0:s.publishParams)==null?void 0:i.allowed)&&(e=s.publishParams.allowed.includes("video"),t=s.publishParams.allowed.includes("audio"),r=s.publishParams.allowed.includes("screen")),{video:e,audio:t,screen:r}});var V=I(require("reselect"));var $s=s=>(0,V.createSelector)([K],e=>e[s]),Ws=(0,V.createSelector)([L,y],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),Fs=(0,V.createSelector)([A,y],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),Gs=s=>(0,V.createSelector)([Ws],e=>e.includes(s)),Js=s=>(0,V.createSelector)([Fs],e=>e.includes(s)),Ys=s=>(0,V.createSelector)(W,e=>e.find(s)),Qs=s=>(0,V.createSelector)(W,e=>e.filter(s)),Xs=s=>(0,V.createSelector)(v,e=>e.joinedAt&&Date.now()-e.joinedAt.getTime()<=s);var ae=I(require("@100mslive/hms-video"));var Me=I(require("@100mslive/hms-video"));function Ht(s){return s instanceof Me.HMSRemoteAudioTrack||s instanceof Me.HMSRemoteVideoTrack}var me=class{constructor(e,t,r,i){this.playlistManager=e;this.syncPlaylistState=r;this.store=i;this.type=t}play(e){return l(this,null,function*(){if(!e){m.w("Please pass id to play");return}yield this.playlistManager.setEnabled(!0,{id:e,type:this.type})})}pause(){return l(this,null,function*(){let e=this.type===M.audio?Oe:Ne,t=this.store.getState(e.selection);if(!t.id){m.w("No item is currently playing to pause");return}yield this.playlistManager.setEnabled(!1,{id:t.id,type:this.type})})}playNext(){return l(this,null,function*(){yield this.playlistManager.playNext(this.type)})}playPrevious(){return l(this,null,function*(){yield this.playlistManager.playPrevious(this.type)})}seek(e){this.playlistManager.seek(e,this.type),this.syncPlaylistState(`seekOn${this.type}Playlist`)}seekTo(e){this.playlistManager.seekTo(e,this.type),this.syncPlaylistState(`seekToOn${this.type}Playlist`)}setVolume(e){this.playlistManager.setVolume(e,this.type),this.syncPlaylistState(`setVolumeOn${this.type}Playlist`)}setList(e){this.playlistManager.setList(e),this.syncPlaylistState(`setListOn${this.type}Playlist`)}stop(){return l(this,null,function*(){yield this.playlistManager.stop(this.type),this.syncPlaylistState(`stop${this.type}Playlist`)})}setIsAutoplayOn(e){this.playlistManager.setIsAutoplayOn(this.type,e)}setPlaybackRate(e){this.playlistManager.setPlaybackRate(this.type,e),this.syncPlaylistState(`set${this.type}PlaybackRate`)}};var yt={[n.HMSPeerUpdate.PEER_JOINED]:g.PEER_JOINED,[n.HMSPeerUpdate.PEER_LEFT]:g.PEER_LEFT,[n.HMSPeerUpdate.ROLE_UPDATED]:g.ROLE_UPDATED,[n.HMSPeerUpdate.AUDIO_TOGGLED]:"PEER_AUDIO_UPDATED",[n.HMSPeerUpdate.VIDEO_TOGGLED]:"PEER_VIDEO_UPDATED",[n.HMSPeerUpdate.NAME_UPDATED]:g.NAME_UPDATED,[n.HMSPeerUpdate.METADATA_UPDATED]:g.METADATA_UPDATED},ft={[n.HMSTrackUpdate.TRACK_ADDED]:g.TRACK_ADDED,[n.HMSTrackUpdate.TRACK_REMOVED]:g.TRACK_REMOVED,[n.HMSTrackUpdate.TRACK_MUTED]:g.TRACK_MUTED,[n.HMSTrackUpdate.TRACK_UNMUTED]:g.TRACK_UNMUTED,[n.HMSTrackUpdate.TRACK_DEGRADED]:g.TRACK_DEGRADED,[n.HMSTrackUpdate.TRACK_RESTORED]:g.TRACK_RESTORED},kt={[n.HMSPeerUpdate.PEER_JOINED]:"peerJoined",[n.HMSPeerUpdate.PEER_LEFT]:"peerLeft",[n.HMSPeerUpdate.NAME_UPDATED]:"peerNameUpdated",[n.HMSPeerUpdate.ROLE_UPDATED]:"peerRoleUpdated",[n.HMSPeerUpdate.METADATA_UPDATED]:"peerMetadataUpdated"};var qe=class{constructor(e,t,r){this.hmsSDKTracks={};this.hmsSDKPeers={};this.isRoomJoinCalled=!1;this.ignoredMessageTypes=[];this.setProgress=({type:e,progress:t})=>{this.setState(r=>{r.playlist[e].progress=t,r.playlist[e].currentTime=this.sdk.getPlaylistManager().getCurrentTime(e)},"playlistProgress")};this.syncPlaylistState=e=>{this.setState(t=>{Object.assign(t.playlist,h.convertPlaylist(this.sdk.getPlaylistManager()))},e)};this.sendPeerUpdateNotification=(e,t)=>{let r=this.store.getState(O(t.peerId)),i=kt[e];this.syncRoomState(i),r||(r=this.store.getState(O(t.peerId))),this.hmsNotifications.sendPeerUpdate(e,r)};this.setState=(e,t)=>this.store.namedSetState(e,t);this.store=e,this.sdk=t,this.hmsNotifications=r}unblockAudio(){return l(this,null,function*(){yield this.sdk.getAudioOutput().unblockAutoplay()})}setVolume(e,t){t?this.setTrackVolume(e,t):(this.sdk.getAudioOutput().setVolume(e),this.syncRoomState("setOutputVolume"))}setAudioOutputDevice(e){this.sdk.getAudioOutput().setDevice(e)&&this.setState(r=>{r.settings.audioOutputDeviceId=e},"setAudioOutputDevice")}setPreferredLayer(e,t){let r=this.hmsSDKTracks[e];r?r instanceof ae.HMSRemoteVideoTrack?(r.preferLayer(t),this.updateVideoLayer(e,"setPreferredLayer")):m.w(`track ${e} is not an video track`):this.logPossibleInconsistency(`track ${e} not present, unable to set preffer layer`)}preview(e){return l(this,null,function*(){if(this.isRoomJoinCalled){this.logPossibleInconsistency("attempting to call preview after join was called");return}let t=this.store.getState(b);if(t===H.Preview||t===H.Connecting){this.logPossibleInconsistency("attempting to call preview while room is in preview/connecting");return}try{this.setState(r=>{r.room.roomState=H.Connecting},"connecting"),yield this.sdkPreviewWithListeners(e)}catch(r){throw m.e("Cannot show preview. Failed to connect to room - ",r),r}})}join(e){if(this.isRoomJoinCalled){this.logPossibleInconsistency("room join is called again");return}try{this.sdkJoinWithListeners(e),this.isRoomJoinCalled=!0,this.setState(t=>{t.room.roomState=H.Connecting},"join")}catch(t){throw this.isRoomJoinCalled=!1,m.e("Failed to connect to room - ",t),t}}leave(){return l(this,null,function*(){if(!this.store.getState(Ae)){this.logPossibleInconsistency("room leave is called when no room is connected");return}let t=this.store.getState(b);return this.setState(r=>{r.room.roomState=H.Disconnecting},"leaving"),this.sdk.leave().then(()=>{this.resetState("leave"),m.i("left room")}).catch(r=>{m.e("error in leaving room - ",r),this.setState(i=>{i.room.roomState=t},"revertLeave")})})}setScreenShareEnabled(e,t){return l(this,null,function*(){e?yield this.startScreenShare(t):yield this.stopScreenShare()})}addTrack(e,t="regular"){return l(this,null,function*(){yield this.sdk.addTrack(e,t),this.syncRoomState("addTrack")})}removeTrack(e){return l(this,null,function*(){yield this.sdk.removeTrack(e),this.syncRoomState("removeTrack")})}setLocalAudioEnabled(e){return l(this,null,function*(){let t=this.store.getState(A);t&&(yield this.setEnabledTrack(t,e))})}setLocalVideoEnabled(e){return l(this,null,function*(){let t=this.store.getState(L);t&&(yield this.setEnabledTrack(t,e))})}setEnabledTrack(e,t){return l(this,null,function*(){var o;if(((o=this.store.getState().tracks[e])==null?void 0:o.enabled)===t){this.logPossibleInconsistency(`local track[${e}] enabled state - ${t}`);return}this.setState(a=>{a.tracks[e]?a.tracks[e].displayEnabled=t:this.logPossibleInconsistency("track id not found for setEnabled")},"displayEnabled");try{yield this.setEnabledSDKTrack(e,t),this.syncRoomState("setEnabled")}catch(a){throw this.setState(c=>{c.tracks[e].displayEnabled=!t},"rollbackDisplayEnabled"),this.hmsNotifications.sendError(h.convertException(a)),a}let i=t?n.HMSTrackUpdate.TRACK_UNMUTED:n.HMSTrackUpdate.TRACK_MUTED;this.hmsNotifications.sendTrackUpdate(i,e)})}setAudioSettings(e){return l(this,null,function*(){let t=this.store.getState(A);t&&(yield this.setSDKLocalAudioTrackSettings(t,e),this.syncRoomState("setAudioSettings"))})}setVideoSettings(e){return l(this,null,function*(){let t=this.store.getState(L);t&&(yield this.setSDKLocalVideoTrackSettings(t,e),this.syncRoomState("setVideoSettings"))})}sendMessage(e){this.sendBroadcastMessage(e)}sendBroadcastMessage(e,t){return l(this,null,function*(){let r=yield this.sdk.sendBroadcastMessage(e,t);this.updateMessageInStore(r,{message:e,type:t})})}sendGroupMessage(e,t,r){return l(this,null,function*(){let i=this.store.getState(K),o=t.map(c=>i[c]),a=yield this.sdk.sendGroupMessage(e,o,r);this.updateMessageInStore(a,{message:e,recipientRoles:t,type:r})})}sendDirectMessage(e,t,r){return l(this,null,function*(){let i=this.hmsSDKPeers[t],o=yield this.sdk.sendDirectMessage(e,i,r);this.updateMessageInStore(o,{message:e,recipientPeer:i.peerId,type:r})})}updateMessageInStore(e,t){if(!e)throw m.w("sendMessage","Failed to send message",t),Error(`sendMessage Failed - ${JSON.stringify(t)}`);let r=h.convertMessage(e);return r.read=!0,r.senderName="You",r.ignored=this.ignoredMessageTypes.includes(r.type),this.putMessageInStore(r),r}setMessageRead(e,t){this.setState(r=>{t?r.messages.byID[t]?r.messages.byID[t].read=e:this.logPossibleInconsistency("no message with id is found"):r.messages.allIDs.forEach(i=>{r.messages.byID[i].read=e})},"setMessageRead")}attachVideo(e,t){return l(this,null,function*(){if(this.localAndVideoUnmuting(e))return new Promise(r=>{let i=this.store.subscribe(o=>l(this,null,function*(){o&&(yield this.attachVideoInternal(e,t),i(),r())}),de)});yield this.attachVideoInternal(e,t)})}detachVideo(e,t){return l(this,null,function*(){let r=this.hmsSDKTracks[e];r&&r.type==="video"?(yield r.removeSink(t),this.updateVideoLayer(e,"detachVideo")):this.logPossibleInconsistency("no video track found to remove sink")})}addPluginToVideoTrack(e,t){return l(this,null,function*(){return this.addRemoveVideoPlugin(e,"add",t)})}addPluginToAudioTrack(e){return l(this,null,function*(){return this.addRemoveAudioPlugin(e,"add")})}validateAudioPluginSupport(e){let t={};if(!e)return m.w("Invalid plugin received in store"),t.errMsg="trying to add invalid plugin, see docs for details",t;let r=this.store.getState(A);if(r){let i=this.hmsSDKTracks[r];i?t=i.validatePlugin(e):this.logPossibleInconsistency(`track ${r} not present, unable to validate plugin`)}return t}removePluginFromVideoTrack(e){return l(this,null,function*(){return this.addRemoveVideoPlugin(e,"remove")})}removePluginFromAudioTrack(e){return l(this,null,function*(){return this.addRemoveAudioPlugin(e,"remove")})}changeRole(e,t,r=!1){return l(this,null,function*(){let i=this.hmsSDKPeers[e];if(!i){this.logPossibleInconsistency(`Unknown peer ID given ${e} for changerole`);return}yield this.sdk.changeRole(i,t,r)})}acceptChangeRole(e){return l(this,null,function*(){let t=e.requestedBy?this.hmsSDKPeers[e.requestedBy.id]:void 0;t||m.w(`peer for which role change is requested no longer available - ${e.requestedBy}`);let r={requestedBy:t,role:e.role,token:e.token};yield this.sdk.acceptChangeRole(r),this.removeRoleChangeRequest(e)})}rejectChangeRole(e){this.removeRoleChangeRequest(e)}endRoom(e,t){return l(this,null,function*(){let r=this.store.getState(Ce);if(!(r==null?void 0:r.endRoom)){m.w("You are not allowed to perform this action - endRoom");return}let i=this.store.getState(b);this.setState(o=>{o.room.roomState=H.Disconnecting},"endingRoom");try{yield this.sdk.endRoom(e,t),this.resetState("endRoom")}catch(o){m.e("error in ending room - ",o),this.setState(a=>{a.room.roomState=i},"revertEndRoom")}})}removePeer(e,t){return l(this,null,function*(){let r=this.hmsSDKPeers[e];if(r&&!r.isLocal)yield this.sdk.removePeer(r,t);else{this.logPossibleInconsistency(`No remote peer found for peerID - ${e}`);return}})}startRTMPOrRecording(e){return l(this,null,function*(){yield this.sdk.startRTMPOrRecording(e)})}stopRTMPAndRecording(){return l(this,null,function*(){yield this.sdk.stopRTMPAndRecording()})}startHLSStreaming(e){return l(this,null,function*(){yield this.sdk.startHLSStreaming(e)})}stopHLSStreaming(e){return l(this,null,function*(){yield this.sdk.stopHLSStreaming(e)})}changeName(e){return l(this,null,function*(){yield this.sdk.changeName(e)})}changeMetadata(e){return l(this,null,function*(){typeof e!="string"&&(e=JSON.stringify(e)),yield this.sdk.changeMetadata(e)})}setRemoteTrackEnabled(e,t){return l(this,null,function*(){if(typeof e=="string"){let r=this.hmsSDKTracks[e];r&&Ht(r)?yield this.sdk.changeTrackState(r,t):this.logPossibleInconsistency(`No remote track with ID ${e} found for change track state`)}else Array.isArray(e)&&e.forEach(r=>this.setRemoteTrackEnabled(r,t))})}setRemoteTracksEnabled(e){return l(this,null,function*(){let t={enabled:e.enabled,type:e.type,source:e.source};if(e.roles){let r=this.store.getState(K);t.roles=e.roles.map(i=>r[i])}yield this.sdk.changeMultiTrackState(t)})}setLogLevel(e){m.level=e,this.sdk.setLogLevel(e)}ignoreMessageTypes(e,t=!1){if(t)this.ignoredMessageTypes=e;else for(let r of e)this.ignoredMessageTypes.includes(r)||this.ignoredMessageTypes.push(r)}resetState(e="resetState"){this.setState(t=>{Object.assign(t,X())},e),this.isRoomJoinCalled=!1,this.hmsSDKTracks={},m.cleanUp()}sdkJoinWithListeners(e){this.sdk.join(e,{onJoin:this.onJoin.bind(this),onRoomUpdate:this.onRoomUpdate.bind(this),onPeerUpdate:this.onPeerUpdate.bind(this),onTrackUpdate:this.onTrackUpdate.bind(this),onMessageReceived:this.onMessageReceived.bind(this),onError:this.onError.bind(this),onReconnected:this.onReconnected.bind(this),onReconnecting:this.onReconnecting.bind(this),onRoleChangeRequest:this.onRoleChangeRequest.bind(this),onRoleUpdate:this.onRoleUpdate.bind(this),onDeviceChange:this.onDeviceChange.bind(this),onChangeTrackStateRequest:this.onChangeTrackStateRequest.bind(this),onChangeMultiTrackStateRequest:this.onChangeMultiTrackStateRequest.bind(this),onRemovedFromRoom:this.onRemovedFromRoom.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})}onRemovedFromRoom(e){var i;let t=this.store.getState(O((i=e.requestedBy)==null?void 0:i.peerId));this.hmsNotifications.sendLeaveRoom(F(w({},e),{requestedBy:t||void 0}));let r=e.roomEnded||!t?"roomEnded":"removedFromRoom";m.i(`resetting state after peer removed ${r}`,e),this.resetState(r)}onDeviceChange(e){let t=e.devices;if(!t)return;let r=this.store.getState(C);if(this.setState(i=>{U(i.devices.audioInput,t.audioInput)||(i.devices.audioInput=t.audioInput),U(i.devices.videoInput,t.videoInput)||(i.devices.videoInput=t.videoInput),U(i.devices.audioOutput,t.audioOutput)||(i.devices.audioOutput=t.audioOutput),this.hmsSDKPeers[r==null?void 0:r.id]&&Object.assign(i.settings,this.getMediaSettings(this.hmsSDKPeers[r==null?void 0:r.id]))},"deviceChange"),e.selection){let i=h.convertDeviceChangeUpdate(e);this.hmsNotifications.sendDeviceChange(i)}}sdkPreviewWithListeners(e){return l(this,null,function*(){yield this.sdk.preview(e,{onPreview:this.onPreview.bind(this),onError:this.onError.bind(this),onDeviceChange:this.onDeviceChange.bind(this),onRoomUpdate:this.onRoomUpdate.bind(this),onPeerUpdate:this.onPeerUpdate.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})})}startScreenShare(e){return l(this,null,function*(){this.store.getState(ue)?this.logPossibleInconsistency("start screenshare is called while it's on"):(yield this.sdk.startScreenShare(()=>this.syncRoomState("screenshareStopped"),e),this.syncRoomState("startScreenShare"))})}stopScreenShare(){return l(this,null,function*(){this.store.getState(ue)?(yield this.sdk.stopScreenShare(),this.syncRoomState("stopScreenShare")):this.logPossibleInconsistency("stop screenshare is called while it's not on")})}attachVideoInternal(e,t){return l(this,null,function*(){let r=this.hmsSDKTracks[e];r&&r.type==="video"?(yield r.addSink(t),this.updateVideoLayer(e,"attachVideo")):this.logPossibleInconsistency("no video track found to add sink")})}syncRoomState(e){m.time(`store-sync-${e}`);let t={},r=[],i={},o={},a={},c=this.sdk.getPeers();for(let f of c){let N=h.convertPeer(f);t[N.id]=N,r.push(N.id),this.hmsSDKPeers[N.id]=f;let Y=[f.audioTrack,f.videoTrack,...f.auxiliaryTracks];for(let le of Y){if(!le)continue;let Ge=h.convertTrack(le);i[Ge.id]=Ge,o[le.trackId]=le}N.isLocal&&Object.assign(a,this.getMediaSettings(f))}let p=this.sdk.getRecordingState(),R=this.sdk.getRTMPState(),j=this.sdk.getHLSState();this.setState(f=>{f.room.peers=r;let N=f.peers,Y=f.tracks;ze(N,t),Ze(Y,i),Object.assign(f.settings,a),this.hmsSDKTracks=o,Object.assign(f.roles,h.convertRoles(this.sdk.getRoles())),Object.assign(f.playlist,h.convertPlaylist(this.sdk.getPlaylistManager())),Object.assign(f.room,h.convertRecordingStreamingState(p,R,j))},e),m.timeEnd(`store-sync-${e}`)}onPreview(e){this.setState(t=>{Object.assign(t.room,h.convertRoom(e)),t.room.roomState=H.Preview},"previewStart"),this.syncRoomState("previewSync")}onJoin(e){let t=this.sdk.getPlaylistManager();this.audioPlaylist=new me(t,M.audio,this.syncPlaylistState.bind(this),this.store),this.videoPlaylist=new me(t,M.video,this.syncRoomState.bind(this),this.store),this.syncRoomState("joinSync"),this.setState(r=>{Object.assign(r.room,h.convertRoom(e)),r.room.isConnected=!0,r.room.roomState=H.Connected},"joined"),t.onProgress(this.setProgress),t.onNewTrackStart(r=>{this.syncPlaylistState(`${r.type}PlaylistUpdate`)}),t.onPlaylistEnded(r=>{this.syncPlaylistState(`${r}PlaylistEnded`)}),t.onCurrentTrackEnded(r=>{this.hmsNotifications.sendPlaylistTrackEnded(h.convertPlaylistItem(t,r)),this.syncPlaylistState(`${r.type}PlaylistItemEnded`)})}onRoomUpdate(e,t){this.setState(r=>{Object.assign(r.room,h.convertRoom(t))},"RoomUpdate")}onPeerUpdate(e,t){if(![n.HMSPeerUpdate.BECAME_DOMINANT_SPEAKER,n.HMSPeerUpdate.RESIGNED_DOMINANT_SPEAKER].includes(e)){if(Array.isArray(t)){this.syncRoomState("peersJoined");let r=[];for(let i of t){let o=this.store.getState(O(i.peerId));o&&r.push(o)}this.hmsNotifications.sendPeerList(r);return}this.sendPeerUpdateNotification(e,t)}}onTrackUpdate(e,t,r){if(e===n.HMSTrackUpdate.TRACK_REMOVED)this.hmsNotifications.sendTrackUpdate(e,t.trackId),this.handleTrackRemove(t,r);else{let i=e===n.HMSTrackUpdate.TRACK_ADDED?"trackAdded":"trackUpdate";this.syncRoomState(i),this.hmsNotifications.sendTrackUpdate(e,t.trackId)}}onMessageReceived(e){let t=h.convertMessage(e);t.read=!1,t.ignored=this.ignoredMessageTypes.includes(t.type),this.putMessageInStore(t),this.hmsNotifications.sendMessageReceived(t)}putMessageInStore(e){e.ignored||this.setState(t=>{e.id=String(this.store.getState(Ee)+1),t.messages.byID[e.id]=e,t.messages.allIDs.push(e.id)},"newMessage")}onAudioLevelUpdate(e){this.setState(t=>{let r={};e.forEach(o=>{if(!o.track||!o.peer)return;let a=o.track.trackId;r[a]=o.audioLevel,t.speakers[a]||(t.speakers[a]={audioLevel:o.audioLevel,peerID:o.peer.peerId,trackID:a})});let i=Object.entries(t.speakers);for(let[o,a]of i)a.audioLevel=r[o]||0,a.audioLevel===0&&delete t.speakers[o]},"audioLevel")}onChangeTrackStateRequest(e){var o;let t=this.store.getState(O((o=e.requestedBy)==null?void 0:o.peerId)),r=this.getStoreLocalTrackIDfromSDKTrack(e.track),i=this.store.getState(oe(r));if(!i)return this.logPossibleInconsistency(`Not found track for which track state change was requested, ${e.track}`);e.enabled||this.syncRoomState("changeTrackStateRequest"),this.hmsNotifications.sendChangeTrackStateRequest({requestedBy:t||void 0,track:i,enabled:e.enabled})}onChangeMultiTrackStateRequest(e){var o;let t=this.store.getState(O((o=e.requestedBy)==null?void 0:o.peerId));e.enabled||this.syncRoomState("changeMultiTrackStateRequest");let r=[],i=this.store.getState(y);for(let a of e.tracks){let c=this.getStoreLocalTrackIDfromSDKTrack(a);c&&i[c]&&r.push(i[c])}this.hmsNotifications.sendChangeMultiTrackStateRequest({requestedBy:t||void 0,tracks:r,enabled:e.enabled,type:e.type,source:e.source})}onReconnected(){this.syncRoomState("reconnectedSync"),this.hmsNotifications.sendReconnected(),this.setState(e=>{e.room.roomState=H.Connected},"reconnected")}onReconnecting(e){let t=h.convertException(e);m.e("Reconnection: received error from sdk",t),this.hmsNotifications.sendReconnecting(t),this.setState(r=>{r.room.roomState=H.Reconnecting,r.errors.push(t)},"reconnecting")}onError(e){let t=h.convertException(e);t.isTerminal?(this.leave().then(()=>m.e("error from SDK, left room.")),this.setState(r=>{r.room.roomState=H.Failed,r.errors.push(t)},"errorTerminal")):this.store.getState().errors.length<50&&this.setState(i=>{i.errors.push(t)},"error"),this.syncRoomState("errorSync"),this.hmsNotifications.sendError(t),m.e("received error from sdk",t)}updateVideoLayer(e,t){let r=this.hmsSDKTracks[e];r&&r instanceof ae.HMSRemoteVideoTrack&&this.setState(i=>{i.tracks[e].layer=r.getSimulcastLayer()},t)}handleTrackRemove(e,t){this.setState(r=>{let i=r.peers[t.peerId],o=r.tracks,a=e.trackId;if(this.isSameStoreSDKTrack(a,i==null?void 0:i.audioTrack))i==null||delete i.audioTrack;else if(this.isSameStoreSDKTrack(a,i==null?void 0:i.videoTrack))i==null||delete i.videoTrack;else{let c=i==null?void 0:i.auxiliaryTracks.indexOf(a);c>-1&&this.isSameStoreSDKTrack(a,i==null?void 0:i.auxiliaryTracks[c])&&(i==null||i.auxiliaryTracks.splice(c,1))}delete o[a],delete this.hmsSDKTracks[a]},"trackRemoved")}setEnabledSDKTrack(e,t){return l(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setEnabled(t):this.logPossibleInconsistency(`track ${e} not present, unable to enabled/disable`)})}setSDKLocalVideoTrackSettings(e,t){return l(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}setSDKLocalAudioTrackSettings(e,t){return l(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}getMediaSettings(e){var o;let t=this.store.getState(ve),r=e.audioTrack,i=e.videoTrack;return{audioInputDeviceId:(r==null?void 0:r.settings.deviceId)||t.audioInputDeviceId,videoInputDeviceId:(i==null?void 0:i.settings.deviceId)||t.videoInputDeviceId,audioOutputDeviceId:(o=this.sdk.getAudioOutput().getDevice())==null?void 0:o.deviceId}}setTrackVolume(e,t){let r=this.hmsSDKTracks[t];r?r instanceof ae.HMSAudioTrack?(r.setVolume(e),this.setState(i=>{let o=i.tracks[t];o&&(o.volume=e)},"trackVolume")):m.w(`track ${t} is not an audio track`):this.logPossibleInconsistency(`track ${t} not present, unable to set volume`)}localAndVideoUnmuting(e){if(this.store.getState(C).videoTrack!==e)return!1;let r=this.store.getState(be),i=this.store.getState(de);return r&&!i}logPossibleInconsistency(e){m.w("possible inconsistency detected - ",e)}addRemoveVideoPlugin(e,t,r){return l(this,null,function*(){if(!e){m.w("Invalid plugin received in store");return}let i=this.store.getState(L);if(i){let o=this.hmsSDKTracks[i];o?(t==="add"?yield o.addPlugin(e,r):t==="remove"&&(yield o.removePlugin(e)),this.syncRoomState(`${t}VideoPlugin`)):this.logPossibleInconsistency(`track ${i} not present, unable to remove plugin`)}})}addRemoveAudioPlugin(e,t){return l(this,null,function*(){if(!e){m.w("Invalid plugin received in store");return}let r=this.store.getState(A);if(r){let i=this.hmsSDKTracks[r];i?(t==="add"?yield i.addPlugin(e):t==="remove"&&(yield i.removePlugin(e)),this.syncRoomState(`${t}AudioPlugin`)):this.logPossibleInconsistency(`track ${r} not present, unable to remove plugin`)}})}isSameStoreSDKTrack(e,t){var r;return t?((r=this.hmsSDKTracks[t])==null?void 0:r.trackId)===e:!1}onRoleChangeRequest(e){this.setState(t=>{t.roleChangeRequests.length===0&&t.roleChangeRequests.push(h.convertRoleChangeRequest(e))},"roleChangeRequest")}removeRoleChangeRequest(e){this.setState(t=>{let r=t.roleChangeRequests.findIndex(i=>i.token===e.token);r!==-1&&t.roleChangeRequests.splice(r,1)},"removeRoleChangeRequest")}onRoleUpdate(){this.syncRoomState("roleUpdate")}getStoreLocalTrackIDfromSDKTrack(e){return this.store.getState(De).find(r=>this.hmsSDKTracks[r].trackId===e.trackId)}};var Pt=I(require("eventemitter2"));var je="hmsNotification",$e=class{constructor(e){this.id=0;this.onNotification=(e,t)=>{let r=i=>{if(t){let o;if(Array.isArray(t)?o=t.includes(i.type):o=t===i.type,!o)return}e(i)};return this.eventEmitter.addListener(je,r),()=>{this.eventEmitter.removeListener(je,r)}};this.store=e,this.eventEmitter=new Pt.EventEmitter2}sendPlaylistTrackEnded(e){let t=this.createNotification(g.PLAYLIST_TRACK_ENDED,e,P.INFO);this.emitEvent(t)}sendDeviceChange(e){var r;let t=this.createNotification(g.DEVICE_CHANGE_UPDATE,e,e.error?P.ERROR:P.INFO,`Selected ${e.type} device - ${(r=e.selection)==null?void 0:r.label}`);this.emitEvent(t)}sendLeaveRoom(e){var i;let t=(i=e.requestedBy)==null?void 0:i.name,r=this.createNotification(e.roomEnded||!t?g.ROOM_ENDED:g.REMOVED_FROM_ROOM,e,P.INFO,`${e.roomEnded?"Room ended":"Removed from room"} ${t?`by ${t}`:""}`);this.emitEvent(r)}sendPeerList(e){let t=this.createNotification(g.PEER_LIST,e,P.INFO);this.emitEvent(t)}sendPeerUpdate(e,t){let r=this.store.getState(O(t==null?void 0:t.id))||t,i=yt[e];if(i){let o=this.createNotification(i,r,P.INFO);this.emitEvent(o)}}sendTrackUpdate(e,t){let r=this.store.getState(oe(t)),i=ft[e];if(i){let o=this.createNotification(i,r,P.INFO);this.emitEvent(o)}}sendMessageReceived(e){let t=this.createNotification(g.NEW_MESSAGE,e,P.INFO);this.emitEvent(t)}sendError(e){let t=this.createNotification(g.ERROR,e,P.ERROR);this.emitEvent(t)}sendReconnecting(e){let t=this.createNotification(g.RECONNECTING,e,P.ERROR);this.emitEvent(t)}sendReconnected(){let e=this.createNotification(g.RECONNECTED,null,P.INFO);this.emitEvent(e)}sendChangeTrackStateRequest(e){let t=this.createNotification(g.CHANGE_TRACK_STATE_REQUEST,e,P.INFO);this.emitEvent(t)}sendChangeMultiTrackStateRequest(e){let t=this.createNotification(g.CHANGE_MULTI_TRACK_STATE_REQUEST,e,P.INFO);this.emitEvent(t)}emitEvent(e){this.eventEmitter.emit(je,e)}createNotification(e,t,r,i=""){return this.id++,{id:this.id,type:e,message:i,data:t,severity:r}}};var Rt=I(require("@100mslive/hms-video")),ge=s=>Rt.isBrowser?`${s} ${document.title}`:s;var It=(s,e,t)=>{let r;t.getState(b)===H.Connected&&(r=vt(s,e,t)),t.subscribe(i=>{[H.Connected,H.Reconnecting].includes(i)?r||(r=vt(s,e,t)):r&&(er(e),r())},b)},vt=(s,e,t)=>{var o;let r=zs(t,e),i=(o=s.getWebrtcInternals())==null?void 0:o.onStatsChange(a=>Zs(e,a,t));return()=>{r(),i&&i()}},zs=(s,e)=>{let t,r,i;return s.getState(q)?e.namedSetState(o=>{o.localPeer.id=s.getState(q)},"localpeer-id"):t=s.subscribe(o=>{o&&e.namedSetState(a=>{a.localPeer.id=o},"localpeer-id")},q),s.getState(L)?e.namedSetState(o=>{o.localPeer.videoTrack=s.getState(L)},"localpeer-videotrack-id"):r=s.subscribe(o=>{o&&e.namedSetState(a=>{a.localPeer.videoTrack=o},"localpeer-videotrack-id")},L),s.getState(A)?e.namedSetState(o=>{o.localPeer.videoTrack=s.getState(A)},"localpeer-audiotrack-id"):i=s.subscribe(o=>{o&&e.namedSetState(a=>{a.localPeer.videoTrack=o},"localpeer-audiotrack-id")},A),()=>{t==null||t(),r==null||r(),i==null||i()}},Zs=(s,e,t)=>{let r=t.getState(y);s.namedSetState(i=>{let o={},a=Object.keys(r);for(let R of a){let j=e.getTrackStats(R);j&&(o[R]=j)}He(i.trackStats,o);let p={[t.getState(q)]:e.getLocalPeerStats()};He(i.peerStats,p)},"webrtc-stats")},er=(s,e="resetState")=>{s.namedSetState(t=>{Object.assign(t,z())},e)};var ne=class{constructor(e,t){this.hmsStore=e;this.sdk=t;this.store=x.createNewHMSStore(ge("HMSStatsStore"),z),this.getState=this.store.getState,this.subscribe=this.store.subscribe,this.getPublishPeerConnection=()=>new Promise(r=>{var i,o;this.hmsStore.getState(b)==="Connected"?r((o=(i=this.sdk)==null?void 0:i.getWebrtcInternals())==null?void 0:o.getPublishPeerConnection()):this.hmsStore.subscribe(a=>{var c,p;a==="Connected"&&r((p=(c=this.sdk)==null?void 0:c.getWebrtcInternals())==null?void 0:p.getPublishPeerConnection())},b)}),this.getSubscribePeerConnection=()=>new Promise(r=>{var i,o;this.hmsStore.getState(b)==="Connected"?r((o=(i=this.sdk)==null?void 0:i.getWebrtcInternals())==null?void 0:o.getSubscribePeerConnection()):this.hmsStore.subscribe(a=>{var c,p;a==="Connected"&&r((p=(c=this.sdk)==null?void 0:c.getWebrtcInternals())==null?void 0:p.getSubscribePeerConnection())},b)}),!!this.sdk&&It(this.sdk,this.store,this.hmsStore)}};var T=I(require("reselect"));var tr=s=>s.localPeer.id,sr=s=>s.localPeer.audioTrack,rr=s=>s.localPeer.videoTrack,ir=(s,e)=>e,or=(s,e)=>e,We=s=>s.trackStats,Dt=s=>s.peerStats,B=(0,T.createSelector)([Dt,tr],(s,e)=>s[e]),ar=(0,T.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.packetsLost}),nr=(0,T.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.jitter}),cr=(0,T.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bitrate}),lr=(0,T.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bitrate}),Sr=(0,T.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.availableOutgoingBitrate}),dr=(0,T.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.availableIncomingBitrate}),ur=(0,T.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bytesSent}),pr=(0,T.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bytesReceived}),Mr=(0,T.createSelector)([Dt,ir],(s,e)=>e?s[e]:void 0),J=(0,T.createSelector)([We,or],(s,e)=>e?s[e]:void 0),mr=u(Mr),gr=u(J),hr=u((0,T.createSelector)(J,s=>s==null?void 0:s.bitrate)),Tr=u((0,T.createSelector)(J,s=>s==null?void 0:s.bytesReceived)),Hr=u((0,T.createSelector)(J,s=>s==null?void 0:s.framesPerSecond)),yr=u((0,T.createSelector)(J,s=>s==null?void 0:s.jitter)),fr=u((0,T.createSelector)(J,s=>s==null?void 0:s.packetsLost)),Fe=(0,T.createSelector)([We,sr],(s,e)=>e?s[e]:void 0),ce=(0,T.createSelector)([We,rr],(s,e)=>e?s[e]:void 0),kr=(0,T.createSelector)(Fe,s=>s==null?void 0:s.bitrate),Pr=(0,T.createSelector)(ce,s=>s==null?void 0:s.bitrate),Rr=(0,T.createSelector)(Fe,s=>s==null?void 0:s.bytesSent),Ir=(0,T.createSelector)(ce,s=>s==null?void 0:s.bytesSent),vr=(0,T.createSelector)(ce,s=>s==null?void 0:s.framesPerSecond),Dr=(0,T.createSelector)(ce,s=>s==null?void 0:s.qualityLimitationReason),bt={localPeerStats:B,packetsLost:ar,jitter:nr,publishBitrate:cr,subscribeBitrate:lr,availablePublishBitrate:Sr,availableSubscribeBitrate:dr,totalBytesSent:ur,totalBytesReceived:pr,peerStatsByID:mr,trackStatsByID:gr,bitrateByTrackID:hr,bytesReceivedByTrackID:Tr,framerateByTrackID:Hr,jitterByTrackID:yr,packetsLostByTrackID:fr,localAudioTrackStats:Fe,localVideoTrackStats:ce,localAudioTrackBitrate:kr,localVideoTrackBitrate:Pr,localAudioTrackBytesSent:Rr,localVideoTrackBytesSent:Ir,localVideoTrackFramerate:vr,localVideoTrackQualityLimitationReason:Dr};var x=class{constructor(e,t,r){this.getStats=()=>(this.stats||(this.stats=new ne(this.store,this.sdk)),this.stats);e?this.store=e:this.store=x.createNewHMSStore(ge("HMSStore"),X),r?this.notifications=r:this.notifications=new $e(this.store),t?this.actions=t:(this.sdk=new he.HMSSdk,this.actions=new qe(this.store,this.sdk,this.notifications)),this.initialTriggerOnSubscribe=!1,he.isBrowser&&(window.__hms=this)}triggerOnSubscribe(){this.initialTriggerOnSubscribe||(x.makeStoreTriggerOnSubscribe(this.store),this.initialTriggerOnSubscribe=!0)}getStore(){return this.store}getHMSActions(){return this.actions}getActions(){return this.actions}getNotifications(){return{onNotification:this.notifications.onNotification}}static createNewHMSStore(e,t){let r=(0,At.default)(()=>t()),i=r.setState;r.setState=c=>{let p=typeof c=="function"?(0,Et.default)(c):c;i(p)};let o=r.getState;r.getState=c=>{if(c){let p=c.name||"byIDSelector";window.selectorsCount||(window.selectorsCount={}),window.selectorsCount[p]=(window.selectorsCount[p]||0)+1;let R=performance.now(),j=c(o()),f=performance.now()-R;return f>1&&(window.expensiveSelectors=window.expensiveSelectors||new Map,window.expensiveSelectors.set(p,f)),j}return o()},x.compareWithShallowCheckInSubscribe(r);let a=x.setUpDevtools(r,e);return F(w({},r),{namedSetState:a})}static makeStoreTriggerOnSubscribe(e){let t=e.subscribe;e.subscribe=(r,i,o)=>(r(e.getState(i),void 0),t(r,i,o))}static compareWithShallowCheckInSubscribe(e){let t=e.subscribe;e.subscribe=(r,i,o)=>(i||(i=a=>a),o=o||Ct.default,t(r,i,o))}static setUpDevtools(e,t){let r;try{r=window.__REDUX_DEVTOOLS_EXTENSION__||window.top.__REDUX_DEVTOOLS_EXTENSION__}catch(a){}if(!r)return a=>{e.setState(a)};let i=r.connect(x.devtoolsOptions(t));i.prefix=t?`${t} > `:"";let o=e.setState;return e.setState=a=>{o(a),i.send(`${i.prefix}setState`,e.getState())},i.subscribe(x.devtoolsSubscribe(i,e,o)),i.send("setUpStore",e.getState()),(a,c)=>{o(a);let p=c||`${i.prefix}action`;i.send(p,e.getState())}}static devtoolsOptions(e){return{name:e,actionsBlacklist:["audioLevel","playlistProgress"]}}static devtoolsSubscribe(e,t,r){return i=>{var o,a,c,p;if(i.type==="DISPATCH"&&i.state)["JUMP_TO_ACTION","JUMP_TO_STATE"].includes(i.payload.type)?r(JSON.parse(i.state)):t.setState(JSON.parse(i.state));else if(i.type==="DISPATCH"&&((o=i.payload)==null?void 0:o.type)==="COMMIT")e.init(t.getState());else if(i.type==="DISPATCH"&&((a=i.payload)==null?void 0:a.type)==="IMPORT_STATE"){let R=(c=i.payload.nextLiftedState)==null?void 0:c.actionsById;(((p=i.payload.nextLiftedState)==null?void 0:p.computedStates)||[]).forEach(({state:f},N)=>{let Y=R[N]||`${e.prefix}setState`;N===0?e.init(f):(r(f),e.send(Y,t.getState()))})}}}};
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var gt=Object.defineProperty,Tt=Object.defineProperties;var Ht=Object.getOwnPropertyDescriptors;var be=Object.getOwnPropertySymbols;var yt=Object.prototype.hasOwnProperty,ft=Object.prototype.propertyIsEnumerable;var Ee=(s,e,t)=>e in s?gt(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,w=(s,e)=>{for(var t in e||(e={}))yt.call(e,t)&&Ee(s,t,e[t]);if(be)for(var t of be(e))ft.call(e,t)&&Ee(s,t,e[t]);return s},W=(s,e)=>Tt(s,Ht(e));var c=(s,e,t)=>new Promise((r,i)=>{var o=u=>{try{n(t.next(u))}catch(P){i(P)}},a=u=>{try{n(t.throw(u))}catch(P){i(P)}},n=u=>u.done?r(u.value):Promise.resolve(u.value).then(o,a);n((t=t.apply(s,e)).next())});import vs from"immer";import Ds from"zustand/vanilla";import bs from"zustand/shallow";import{HMSSdk as Es,isBrowser as As}from"@100mslive/hms-video";var T;(function(n){n.Disconnected="Disconnected",n.Preview="Preview",n.Connecting="Connecting",n.Connected="Connected",n.Reconnecting="Reconnecting",n.Disconnecting="Disconnecting",n.Failed="Failed"})(T||(T={}));var se=()=>({room:{id:"",isConnected:!1,name:"",peers:[],shareableLink:"",localPeer:"",hasWaitingRoom:!1,roomState:T.Disconnected,recording:{browser:{running:!1},server:{running:!1},hls:{running:!1}},rtmp:{running:!1},hls:{running:!1,variants:[]},sessionId:""},peers:{},tracks:{},playlist:{audio:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1},video:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1}},messages:{byID:{},allIDs:[]},speakers:{},settings:{audioInputDeviceId:"",audioOutputDeviceId:"",videoInputDeviceId:""},devices:{audioInput:[],audioOutput:[],videoInput:[]},roles:{},roleChangeRequests:[],errors:[]}),re=()=>({peerStats:{},trackStats:{},localPeer:{id:""}});var Ae;(function(e){e.CHAT="chat"})(Ae||(Ae={}));var R;(function(r){r.INFO="info",r.ERROR="error",r.CRITICAL="critical"})(R||(R={}));var m;(function(l){l.PEER_JOINED="PEER_JOINED",l.PEER_LEFT="PEER_LEFT",l.PEER_LIST="PEER_LIST",l.NEW_MESSAGE="NEW_MESSAGE",l.ERROR="ERROR",l.RECONNECTING="RECONNECTING",l.RECONNECTED="RECONNECTED",l.TRACK_ADDED="TRACK_ADDED",l.TRACK_REMOVED="TRACK_REMOVED",l.TRACK_MUTED="TRACK_MUTED",l.TRACK_UNMUTED="TRACK_UNMUTED",l.TRACK_DEGRADED="TRACK_DEGRADED",l.TRACK_RESTORED="TRACK_RESTORED",l.ROLE_CHANGE_REQUEST="ROLE_CHANGE_REQUEST",l.ROLE_UPDATED="ROLE_UPDATED",l.CHANGE_TRACK_STATE_REQUEST="CHANGE_TRACK_STATE_REQUEST",l.CHANGE_MULTI_TRACK_STATE_REQUEST="CHANGE_MULTI_TRACK_STATE_REQUEST",l.ROOM_ENDED="ROOM_ENDED",l.REMOVED_FROM_ROOM="REMOVED_FROM_ROOM",l.DEVICE_CHANGE_UPDATE="DEVICE_CHANGE_UPDATE",l.PLAYLIST_TRACK_ENDED="PLAYLIST_TRACK_ENDED",l.NAME_UPDATED="NAME_UPDATED",l.METADATA_UPDATED="METADATA_UPDATED"})(m||(m={}));var p;(function(t){t.audio="audio",t.video="video"})(p||(p={}));import{HMSException as Vs,HMSSimulcastLayer as Bs,HMSPeerUpdate as I,HMSRoomUpdate as qs,HMSTrackUpdate as A,HMSLogLevel as f,HMSAudioPluginType as kt,HMSVideoPluginType as Pt,parsedUserAgent as Rt}from"@100mslive/hms-video";import{HMSLocalAudioTrack as xe,HMSLocalVideoTrack as Oe,HMSRemoteAudioTrack as vt,HMSRemoteVideoTrack as Dt}from"@100mslive/hms-video";var Ce=(s,e)=>{let t=me(Object.keys(s),Object.keys(e));for(let r of t){let i=s[r],o=e[r];ue(i,o)?(U(i.auxiliaryTracks,o.auxiliaryTracks)&&(o.auxiliaryTracks=i.auxiliaryTracks),Object.assign(i,o)):pe(i,o)?delete s[r]:Me(i,o)&&(s[r]=o)}},Le=(s,e)=>{let t=me(Object.keys(s),Object.keys(e));for(let r of t){let i=s[r],o=e[r];ue(i,o)?(It(i,o),Object.assign(i,o)):pe(i,o)?delete s[r]:Me(i,o)&&(s[r]=o)}},de=(s,e)=>{let t=me(Object.keys(s),Object.keys(e));for(let r of t){let i=s[r],o=e[r];ue(i,o)?Object.assign(i,o):pe(i,o)?delete s[r]:Me(i,o)&&(s[r]=o)}},It=(s,e)=>{s.plugins&&U(s.plugins,e.plugins)&&(e.plugins=s.plugins),s.layerDefinitions&&U(s.layerDefinitions,e.layerDefinitions)&&(e.layerDefinitions=s.layerDefinitions)},ue=(s,e)=>s&&e,pe=(s,e)=>s&&!e,Me=(s,e)=>!s&&e,U=(s,e)=>{if(s===e||s.length===0&&(e==null?void 0:e.length)===0)return!0;if(!s||!e||s.length!==e.length)return!1;for(let t=0;t<s.length;t++)if(s[t]!==e[t])return!1;return!0},me=(s,e)=>{let t=new Set;for(let r of s)t.add(r);for(let r of e)t.add(r);return Array.from(t)};var h=class{static convertPeer(e){var t,r,i;return{id:e.peerId,name:e.name,roleName:(t=e.role)==null?void 0:t.name,isLocal:e.isLocal,videoTrack:(r=e.videoTrack)==null?void 0:r.trackId,audioTrack:(i=e.audioTrack)==null?void 0:i.trackId,auxiliaryTracks:e.auxiliaryTracks.map(o=>o.trackId),customerUserId:e.customerUserId,customerDescription:e.metadata,metadata:e.metadata}}static convertTrack(e,t){let r={id:e.trackId,source:e.source,type:e.type,enabled:e.enabled,displayEnabled:e.enabled,peerId:e.peerId||t};return this.enrichTrack(r,e),r}static enrichTrack(e,t){let r=t.getMediaTrackSettings();e.source==="screen"&&e.type==="video"&&(e.displaySurface=r.displaySurface),e.height=r.height,e.width=r.width,t instanceof vt&&(e.volume=t.getVolume()||0),h.updateDeviceID(e,t),h.enrichVideoTrack(e,t),h.enrichPluginsDetails(e,t)}static updateDeviceID(e,t){var r;t instanceof Oe||t instanceof xe?e.deviceID=t.settings.deviceId:e.deviceID=(r=t.getMediaTrackSettings())==null?void 0:r.deviceId}static enrichVideoTrack(e,t){t instanceof Dt&&(e.layer=t.getSimulcastLayer(),e.degraded=t.degraded,U(t.getSimulcastDefinitions(),e.layerDefinitions)||(e.layerDefinitions=t.getSimulcastDefinitions()))}static enrichPluginsDetails(e,t){(t instanceof Oe||t instanceof xe)&&(U(t.getPlugins(),e.plugins)||(e.plugins=t.getPlugins()))}static convertRoom(e){var o,a;let{recording:t,rtmp:r,hls:i}=h.convertRecordingStreamingState(e==null?void 0:e.recording,e==null?void 0:e.rtmp,e==null?void 0:e.hls);return{id:e.id,name:e.name,localPeer:(a=(o=e.localPeer)==null?void 0:o.peerId)!=null?a:"",hasWaitingRoom:e.hasWaitingRoom,shareableLink:e.shareableLink,recording:t,rtmp:r,hls:i,sessionId:e.sessionId,startedAt:e.startedAt,joinedAt:e.joinedAt,peerCount:e.peerCount}}static convertMessage(e){var t,r,i;return{sender:e.sender.peerId,senderName:e.sender.name,senderRole:(t=e.sender.role)==null?void 0:t.name,senderUserId:e.sender.customerUserId,recipientPeer:(r=e.recipientPeer)==null?void 0:r.peerId,recipientRoles:(i=e.recipientRoles)==null?void 0:i.map(o=>o.name),time:e.time,type:e.type,message:e.message}}static convertRoles(e){let t={};return e&&e.forEach(r=>{t[r.name]=r}),t}static convertRoleChangeRequest(e){var t;return{requestedBy:(t=e.requestedBy)==null?void 0:t.peerId,roleName:e.role.name,token:e.token}}static convertException(e){return{code:e.code,action:e.action,name:e.name,message:e.message,description:e.description,isTerminal:e.isTerminal,nativeError:e.nativeError,timestamp:new Date}}static convertDeviceChangeUpdate(e){let t={devices:e.devices,selection:e.selection,type:e.type};return e.error&&(t.error=this.convertException(e.error)),t}static convertPlaylist(e){let t=this.getConvertedPlaylistType(e,p.audio),r=this.getConvertedPlaylistType(e,p.video);return{audio:t,video:r}}static convertPlaylistItem(e,t){let r=t.type,i=e.getCurrentSelection(r),o=e.isPlaying(r),a=t.url===(i==null?void 0:i.url);return W(w({},t),{type:t.type,selected:a,playing:a&&o})}static getConvertedPlaylistType(e,t){let r={},i=e.getCurrentSelection(t),o=e.getCurrentProgress(t),a=e.getVolume(t),n=e.getList(t),u=e.getCurrentIndex(t);return e.getList(t).forEach(P=>{r[P.id]=h.convertPlaylistItem(e,P)}),{list:r,selection:{id:i==null?void 0:i.id,hasPrevious:u>0,hasNext:u<n.length-1},progress:o,volume:a,currentTime:e.getCurrentTime(t),playbackRate:e.getPlaybackRate(t)}}static convertRecordingStreamingState(e,t,r){var i;return{recording:{browser:w({running:!1},e==null?void 0:e.browser),server:w({running:!1},e==null?void 0:e.server),hls:w({running:!1},e==null?void 0:e.hls)},rtmp:w({running:!1},t),hls:{variants:((i=r==null?void 0:r.variants)==null?void 0:i.map(o=>o))||[],running:!!(r==null?void 0:r.running),error:r==null?void 0:r.error}}}};import{createSelector as S}from"reselect";function j(s,e,t=bt){let r,i;if(e)for(let o of e.auxiliaryTracks){let a=s[o];t(a)&&(i=Q(a)?a:i,r=X(a)?a:r)}return{video:r,audio:i}}function Q(s){return s&&s.type==="audio"}function X(s){return s&&s.type==="video"}function bt(s){return s&&s.source==="screen"}function ie(s){return s&&s.source==="audioplaylist"}function z(s){return s&&s.source==="videoplaylist"}function Ne(s){return Boolean(s==null?void 0:s.degraded)}function F(s,e){return e&&s.tracks[e]?s.tracks[e].enabled:!1}function we(s,e){return e&&s.tracks[e]?s.tracks[e].displayEnabled:!1}var v=s=>s.room,Gr=S(v,s=>s.id),b=s=>s.peers,Ue=s=>s.messages.byID,_e=s=>s.messages.allIDs,H=s=>s.tracks,Ke=s=>s.settings,Jr=s=>s.devices,Et=s=>s.speakers,At=S([v],s=>s&&s.isConnected),Yr=S([At,v],(s,e)=>s?e.peerCount||e.peers.length:Math.max(e.peerCount||e.peers.length-1,0)),G=S([v,b],(s,e)=>s.peers.map(t=>e[t])),Ct=S(H,s=>Object.values(s)),C=S(v,b,(s,e)=>e[s.localPeer]),$=S(v,s=>s.localPeer),L=S(C,s=>s==null?void 0:s.audioTrack),x=S(C,s=>s==null?void 0:s.videoTrack),Lt=S(C,s=>s==null?void 0:s.auxiliaryTracks),Ve=S([L,x,Lt],(s,e,t)=>{let r=[...t];return s&&r.unshift(s),e&&r.unshift(e),r}),Qr=S(G,s=>s.filter(e=>!e.isLocal)),Xr=S(b,Et,(s,e)=>{let t=Object.entries(e).sort((r,i)=>{var n,u;let o=((n=r[1])==null?void 0:n.audioLevel)||0;return(((u=i[1])==null?void 0:u.audioLevel)||0)>o?1:-1});if(t.length>0&&t[0][1].audioLevel&&t[0][1].audioLevel>0){let r=t[0][1].peerID;if(r in s)return s[r]}return null}),zr=s=>{let e=C(s);return F(s,e==null?void 0:e.audioTrack)},he=s=>{let e=C(s);return F(s,e==null?void 0:e.videoTrack)},Be=s=>{let e=C(s);return we(s,e==null?void 0:e.videoTrack)},ge=S(C,H,(s,e)=>{let{video:t,audio:r}=j(e,s);return!!(t||r)}),xt=S(b,H,(s,e)=>{let t;for(let r in s){let i=s[r],{video:o,audio:a}=j(e,i);if(o)return i;a&&!t&&(t=i)}return t}),Zr=S(xt,s=>!!s),ei=S(b,H,(s,e)=>{for(let t in s){let r=s[t],{audio:i,video:o}=j(e,r);if(!o&&!!i)return r}}),ti=S(b,H,(s,e)=>{let t=[],r=[];for(let i in s){let o=s[i],{video:a,audio:n}=j(e,o);a?t.push(o):n&&r.push(o)}return t.concat(r)}),si=S(b,H,(s,e)=>{for(let t in e){let r=e[t];if(z(r)&&X(r)&&r.peerId)return s[r.peerId]}}),ri=S(b,H,(s,e)=>{for(let t in e){let r=e[t];if(ie(r)&&r.peerId)return s[r.peerId]}}),ii=S(Ct,s=>s.filter(Ne)),qe=S(_e,s=>s.length),oi=S(Ue,s=>Object.values(s).filter(e=>!e.read).length),oe=S(_e,Ue,(s,e)=>{let t=[];return s.forEach(r=>{t.push(e[r])}),t}),E=S([v],s=>s&&s.roomState),ai=S(E,s=>s===T.Preview),je=S(v,s=>s.roomState!==T.Disconnected),K=s=>s.roles,ni=S([K],s=>Object.keys(s)),ae=S([C,K],(s,e)=>(s==null?void 0:s.roleName)?e[s.roleName]:null),ci=S([ae],s=>{var e;return((e=s==null?void 0:s.subscribeParams)==null?void 0:e.subscribeToRoles)?s.subscribeParams.subscribeToRoles.length>0:!1}),$e=S(ae,s=>s==null?void 0:s.permissions),li=S(v,s=>s.recording),Si=S(v,s=>s.rtmp),di=S(v,s=>s.hls),ui=S(v,s=>s.sessionId),pi=S(v,s=>s.startedAt);import{createSelector as We}from"reselect";var Fe=(s=p.audio)=>e=>e.playlist[s].list,Te=(s=p.audio)=>e=>e.playlist[s].selection,Ge=(s=p.audio)=>e=>e.playlist[s].progress,Je=(s=p.audio)=>e=>e.playlist[s].currentTime,Ye=(s=p.audio)=>e=>e.playlist[s].playbackRate,Qe=(s=p.audio)=>e=>e.playlist[s].volume,Xe=(s=p.audio)=>We(Fe(s),e=>Object.values(e)),ze=(s=p.audio)=>We(Fe(s),Te(s),(e,t)=>{if(!!t.id)return e[t.id]}),Ze={selection:Te(p.audio),progress:Ge(p.audio),currentTime:Je(p.audio),playbackRate:Ye(p.audio),volume:Qe(p.audio),list:Xe(p.audio),selectedItem:ze(p.audio)},et={selection:Te(p.video),progress:Ge(p.video),currentTime:Je(p.video),playbackRate:Ye(p.video),volume:Qe(p.video),list:Xe(p.video),selectedItem:ze(p.video)};import{createSelector as k}from"reselect";function d(s){return e=>t=>s(t,e)}var Z="HMS-Store:",M=class{static v(e,...t){this.log(f.VERBOSE,e,...t)}static d(...e){this.log(f.DEBUG,...e)}static i(...e){this.log(f.INFO,...e)}static w(...e){this.log(f.WARN,...e)}static e(...e){this.log(f.ERROR,...e)}static time(e){this.log(f.TIME,"[HMSPerformanceTiming]",e)}static timeEnd(e){this.log(f.TIMEEND,"[HMSPerformanceTiming]",e,e)}static cleanUp(){performance.clearMarks(),performance.clearMeasures()}static log(e,...t){if(!(this.level.valueOf()>e.valueOf()))switch(e){case f.VERBOSE:{console.log(Z,...t);break}case f.DEBUG:{console.debug(Z,...t);break}case f.INFO:{console.info(Z,...t);break}case f.WARN:{console.warn(Z,...t);break}case f.ERROR:{console.error(Z,...t);break}case f.TIME:{performance.mark(t[1]);break}case f.TIMEEND:{let r=t[0],i=t[1];try{let o=performance.measure(i,i);this.log(f.DEBUG,r,i,o==null?void 0:o.duration),performance.clearMarks(i),performance.clearMeasures(i)}catch(o){this.log(f.DEBUG,r,i,o)}break}}}};M.level=f.VERBOSE;var He=(s,e)=>e,Ot=(s,e)=>e,tt=(s,e)=>e,D=k([b,He],(s,e)=>e?s[e]:null),ye=k([H,Ot],(s,e)=>e?s[e]:null),_=d(D),bi=d(k(D,s=>s==null?void 0:s.name)),ne=d(ye),Nt=d((s,e)=>{let t=D(s,e);if(t&&t.videoTrack&&t.videoTrack!=="")return s.tracks[t.videoTrack]}),wt=d((s,e)=>{let t=D(s,e);if(t&&t.audioTrack&&t.audioTrack!=="")return s.tracks[t.audioTrack]}),Ei=Nt,Ai=d((s,e)=>{let t=D(s,e);return(t==null?void 0:t.auxiliaryTracks.map(r=>s.tracks[r]))||[]}),st=(s,e)=>e?s.speakers[e]:null,Ci=d(k(st,s=>(s==null?void 0:s.audioLevel)||0)),Ut=(s,e)=>{let t=wt(e)(s);return st(s,t==null?void 0:t.id)},Li=d(k(Ut,s=>(s==null?void 0:s.audioLevel)||0)),xi=d((s,e)=>{let t=D(s,e);if(t){let r=t==null?void 0:t.auxiliaryTracks.find(i=>Q(s.tracks[i]));return r?s.tracks[r]:void 0}}),Oi=d(k(H,D,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let i=s[r];return z(i)&&X(i)});return t?s[t]:void 0})),Ni=d(k(H,D,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let i=s[r];return z(i)&&Q(i)});return t?s[t]:void 0})),wi=d(k(H,D,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let i=s[r];return ie(i)&&Q(i)});return t?s[t]:void 0})),rt=d(k(H,D,(s,e)=>j(s,e))),Ui=s=>k(rt(s),e=>e.video),it=s=>k(rt(s),e=>e.audio),_i=d((s,e)=>{let t=D(s,e);return F(s,t==null?void 0:t.audioTrack)}),Ki=d((s,e)=>{let t=D(s,e);return F(s,t==null?void 0:t.videoTrack)}),ot=d((s,e)=>{if(e&&s.tracks[e])return s.tracks[e].volume===0}),Vi=d((s,e)=>{let t=D(s,e);return ot(t==null?void 0:t.audioTrack)(s)}),Bi=d((s,e)=>{let t=it(e)(s);return ot(t==null?void 0:t.id)(s)}),at=d((s,e)=>{let t=ye(s,e);if(t){if(t.type!=="audio"){M.w("Please pass audio track here");return}return t.volume}}),qi=d((s,e)=>{let t=D(s,e);return at(t==null?void 0:t.audioTrack)(s)}),ji=d((s,e)=>{let t=it(e)(s);return at(t==null?void 0:t.id)(s)}),$i=d((s,e)=>{let t=ye(s,e);if(t){if(t.type!=="video"){M.w("Please pass video track here");return}return t.layer}}),nt=k([oe,$,He],(s,e,t)=>{if(!!t)return s.filter(r=>{var i;return!r.recipientPeer&&!((i=r.recipientRoles)==null?void 0:i.length)||![e,t].includes(r.sender)?!1:[e,t].includes(r.recipientPeer)})}),ct=k([oe,tt],(s,e)=>{if(!!e)return s.filter(t=>{var r,i;return((r=t.recipientRoles)==null?void 0:r.length)?(i=t.recipientRoles)==null?void 0:i.includes(e):!1})}),_t=k(oe,s=>s.filter(e=>{var t;return!e.recipientPeer&&!((t=e.recipientRoles)==null?void 0:t.length)})),Kt=k([ct,tt],s=>s?s.filter(e=>!e.read).length:0),Vt=k([nt,He],s=>s?s.filter(e=>!e.read).length:0),Wi=k(_t,s=>s.filter(e=>!e.read).length),Fi=d(nt),Gi=d(ct),Ji=d(Kt),Yi=d(Vt),Qi=s=>k([G],e=>e.filter(t=>t.roleName===s)),Xi=s=>k(_(s),e=>{try{return(e==null?void 0:e.metadata)&&e.metadata!==""?JSON.parse(e.metadata):{}}catch(t){return console.error("cannot parse peer metadata",t),{}}});import{createSelector as fe}from"reselect";var to=fe([b,H],(s,e)=>Object.values(s).map(r=>{var i;return{peer:r,isAudioEnabled:r.audioTrack?(i=e[r.audioTrack])==null?void 0:i.enabled:!1}})),Bt=s=>s.roleChangeRequests[0]||null,so=fe([Bt,b,K],(s,e,t)=>s?{requestedBy:s.requestedBy?e[s.requestedBy]:void 0,role:t[s.roleName],token:s.token}:null),ro=fe([ae],s=>{var i;let e=!1,t=!1,r=!1;return((i=s==null?void 0:s.publishParams)==null?void 0:i.allowed)&&(e=s.publishParams.allowed.includes("video"),t=s.publishParams.allowed.includes("audio"),r=s.publishParams.allowed.includes("screen")),{video:e,audio:t,screen:r}});import{createSelector as B}from"reselect";var no=s=>B([K],e=>e[s]),qt=B([x,H],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),jt=B([L,H],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),co=s=>B([qt],e=>e.includes(s)),lo=s=>B([jt],e=>e.includes(s)),So=s=>B(G,e=>e.find(s)),uo=s=>B(G,e=>e.filter(s)),po=s=>B(v,e=>e.joinedAt&&Date.now()-e.joinedAt.getTime()<=s);import{HMSAudioTrack as Ft,HMSRemoteVideoTrack as pt}from"@100mslive/hms-video";import{HMSRemoteAudioTrack as $t,HMSRemoteVideoTrack as Wt}from"@100mslive/hms-video";function lt(s){return s instanceof $t||s instanceof Wt}var ce=class{constructor(e,t,r,i){this.playlistManager=e;this.syncPlaylistState=r;this.store=i;this.type=t}play(e){return c(this,null,function*(){if(!e){M.w("Please pass id to play");return}yield this.playlistManager.setEnabled(!0,{id:e,type:this.type})})}pause(){return c(this,null,function*(){let e=this.type===p.audio?Ze:et,t=this.store.getState(e.selection);if(!t.id){M.w("No item is currently playing to pause");return}yield this.playlistManager.setEnabled(!1,{id:t.id,type:this.type})})}playNext(){return c(this,null,function*(){yield this.playlistManager.playNext(this.type)})}playPrevious(){return c(this,null,function*(){yield this.playlistManager.playPrevious(this.type)})}seek(e){this.playlistManager.seek(e,this.type),this.syncPlaylistState(`seekOn${this.type}Playlist`)}seekTo(e){this.playlistManager.seekTo(e,this.type),this.syncPlaylistState(`seekToOn${this.type}Playlist`)}setVolume(e){this.playlistManager.setVolume(e,this.type),this.syncPlaylistState(`setVolumeOn${this.type}Playlist`)}setList(e){this.playlistManager.setList(e),this.syncPlaylistState(`setListOn${this.type}Playlist`)}stop(){return c(this,null,function*(){yield this.playlistManager.stop(this.type),this.syncPlaylistState(`stop${this.type}Playlist`)})}setIsAutoplayOn(e){this.playlistManager.setIsAutoplayOn(this.type,e)}setPlaybackRate(e){this.playlistManager.setPlaybackRate(this.type,e),this.syncPlaylistState(`set${this.type}PlaybackRate`)}};var St={[I.PEER_JOINED]:m.PEER_JOINED,[I.PEER_LEFT]:m.PEER_LEFT,[I.ROLE_UPDATED]:m.ROLE_UPDATED,[I.AUDIO_TOGGLED]:"PEER_AUDIO_UPDATED",[I.VIDEO_TOGGLED]:"PEER_VIDEO_UPDATED",[I.NAME_UPDATED]:m.NAME_UPDATED,[I.METADATA_UPDATED]:m.METADATA_UPDATED},dt={[A.TRACK_ADDED]:m.TRACK_ADDED,[A.TRACK_REMOVED]:m.TRACK_REMOVED,[A.TRACK_MUTED]:m.TRACK_MUTED,[A.TRACK_UNMUTED]:m.TRACK_UNMUTED,[A.TRACK_DEGRADED]:m.TRACK_DEGRADED,[A.TRACK_RESTORED]:m.TRACK_RESTORED},ut={[I.PEER_JOINED]:"peerJoined",[I.PEER_LEFT]:"peerLeft",[I.NAME_UPDATED]:"peerNameUpdated",[I.ROLE_UPDATED]:"peerRoleUpdated",[I.METADATA_UPDATED]:"peerMetadataUpdated"};var ke=class{constructor(e,t,r){this.hmsSDKTracks={};this.hmsSDKPeers={};this.isRoomJoinCalled=!1;this.ignoredMessageTypes=[];this.setProgress=({type:e,progress:t})=>{this.setState(r=>{r.playlist[e].progress=t,r.playlist[e].currentTime=this.sdk.getPlaylistManager().getCurrentTime(e)},"playlistProgress")};this.syncPlaylistState=e=>{this.setState(t=>{Object.assign(t.playlist,h.convertPlaylist(this.sdk.getPlaylistManager()))},e)};this.sendPeerUpdateNotification=(e,t)=>{let r=this.store.getState(_(t.peerId)),i=ut[e];this.syncRoomState(i),r||(r=this.store.getState(_(t.peerId))),this.hmsNotifications.sendPeerUpdate(e,r)};this.setState=(e,t)=>this.store.namedSetState(e,t);this.store=e,this.sdk=t,this.hmsNotifications=r}unblockAudio(){return c(this,null,function*(){yield this.sdk.getAudioOutput().unblockAutoplay()})}setVolume(e,t){t?this.setTrackVolume(e,t):(this.sdk.getAudioOutput().setVolume(e),this.syncRoomState("setOutputVolume"))}setAudioOutputDevice(e){this.sdk.getAudioOutput().setDevice(e)&&this.setState(r=>{r.settings.audioOutputDeviceId=e},"setAudioOutputDevice")}setPreferredLayer(e,t){let r=this.hmsSDKTracks[e];r?r instanceof pt?(r.preferLayer(t),this.updateVideoLayer(e,"setPreferredLayer")):M.w(`track ${e} is not an video track`):this.logPossibleInconsistency(`track ${e} not present, unable to set preffer layer`)}preview(e){return c(this,null,function*(){if(this.isRoomJoinCalled){this.logPossibleInconsistency("attempting to call preview after join was called");return}let t=this.store.getState(E);if(t===T.Preview||t===T.Connecting){this.logPossibleInconsistency("attempting to call preview while room is in preview/connecting");return}try{this.setState(r=>{r.room.roomState=T.Connecting},"connecting"),yield this.sdkPreviewWithListeners(e)}catch(r){throw M.e("Cannot show preview. Failed to connect to room - ",r),r}})}join(e){if(this.isRoomJoinCalled){this.logPossibleInconsistency("room join is called again");return}try{this.sdkJoinWithListeners(e),this.isRoomJoinCalled=!0,this.setState(t=>{t.room.roomState=T.Connecting},"join")}catch(t){throw this.isRoomJoinCalled=!1,M.e("Failed to connect to room - ",t),t}}leave(){return c(this,null,function*(){if(!this.store.getState(je)){this.logPossibleInconsistency("room leave is called when no room is connected");return}let t=this.store.getState(E);return this.setState(r=>{r.room.roomState=T.Disconnecting},"leaving"),this.sdk.leave().then(()=>{this.resetState("leave"),M.i("left room")}).catch(r=>{M.e("error in leaving room - ",r),this.setState(i=>{i.room.roomState=t},"revertLeave")})})}setScreenShareEnabled(e,t){return c(this,null,function*(){e?yield this.startScreenShare(t):yield this.stopScreenShare()})}addTrack(e,t="regular"){return c(this,null,function*(){yield this.sdk.addTrack(e,t),this.syncRoomState("addTrack")})}removeTrack(e){return c(this,null,function*(){yield this.sdk.removeTrack(e),this.syncRoomState("removeTrack")})}setLocalAudioEnabled(e){return c(this,null,function*(){let t=this.store.getState(L);t&&(yield this.setEnabledTrack(t,e))})}setLocalVideoEnabled(e){return c(this,null,function*(){let t=this.store.getState(x);t&&(yield this.setEnabledTrack(t,e))})}setEnabledTrack(e,t){return c(this,null,function*(){var o;if(((o=this.store.getState().tracks[e])==null?void 0:o.enabled)===t){this.logPossibleInconsistency(`local track[${e}] enabled state - ${t}`);return}this.setState(a=>{a.tracks[e]?a.tracks[e].displayEnabled=t:this.logPossibleInconsistency("track id not found for setEnabled")},"displayEnabled");try{yield this.setEnabledSDKTrack(e,t),this.syncRoomState("setEnabled")}catch(a){throw this.setState(n=>{n.tracks[e].displayEnabled=!t},"rollbackDisplayEnabled"),this.hmsNotifications.sendError(h.convertException(a)),a}let i=t?A.TRACK_UNMUTED:A.TRACK_MUTED;this.hmsNotifications.sendTrackUpdate(i,e)})}setAudioSettings(e){return c(this,null,function*(){let t=this.store.getState(L);t&&(yield this.setSDKLocalAudioTrackSettings(t,e),this.syncRoomState("setAudioSettings"))})}setVideoSettings(e){return c(this,null,function*(){let t=this.store.getState(x);t&&(yield this.setSDKLocalVideoTrackSettings(t,e),this.syncRoomState("setVideoSettings"))})}sendMessage(e){this.sendBroadcastMessage(e)}sendBroadcastMessage(e,t){return c(this,null,function*(){let r=yield this.sdk.sendBroadcastMessage(e,t);this.updateMessageInStore(r,{message:e,type:t})})}sendGroupMessage(e,t,r){return c(this,null,function*(){let i=this.store.getState(K),o=t.map(n=>i[n]),a=yield this.sdk.sendGroupMessage(e,o,r);this.updateMessageInStore(a,{message:e,recipientRoles:t,type:r})})}sendDirectMessage(e,t,r){return c(this,null,function*(){let i=this.hmsSDKPeers[t],o=yield this.sdk.sendDirectMessage(e,i,r);this.updateMessageInStore(o,{message:e,recipientPeer:i.peerId,type:r})})}updateMessageInStore(e,t){if(!e)throw M.w("sendMessage","Failed to send message",t),Error(`sendMessage Failed - ${JSON.stringify(t)}`);let r=h.convertMessage(e);return r.read=!0,r.senderName="You",r.ignored=this.ignoredMessageTypes.includes(r.type),this.putMessageInStore(r),r}setMessageRead(e,t){this.setState(r=>{t?r.messages.byID[t]?r.messages.byID[t].read=e:this.logPossibleInconsistency("no message with id is found"):r.messages.allIDs.forEach(i=>{r.messages.byID[i].read=e})},"setMessageRead")}attachVideo(e,t){return c(this,null,function*(){if(this.localAndVideoUnmuting(e))return new Promise(r=>{let i=this.store.subscribe(o=>c(this,null,function*(){o&&(yield this.attachVideoInternal(e,t),i(),r())}),he)});yield this.attachVideoInternal(e,t)})}detachVideo(e,t){return c(this,null,function*(){let r=this.hmsSDKTracks[e];r&&r.type==="video"?(yield r.removeSink(t),this.updateVideoLayer(e,"detachVideo")):this.logPossibleInconsistency("no video track found to remove sink")})}addPluginToVideoTrack(e,t){return c(this,null,function*(){return this.addRemoveVideoPlugin(e,"add",t)})}addPluginToAudioTrack(e){return c(this,null,function*(){return this.addRemoveAudioPlugin(e,"add")})}removePluginFromVideoTrack(e){return c(this,null,function*(){return this.addRemoveVideoPlugin(e,"remove")})}removePluginFromAudioTrack(e){return c(this,null,function*(){return this.addRemoveAudioPlugin(e,"remove")})}changeRole(e,t,r=!1){return c(this,null,function*(){let i=this.hmsSDKPeers[e];if(!i){this.logPossibleInconsistency(`Unknown peer ID given ${e} for changerole`);return}yield this.sdk.changeRole(i,t,r)})}acceptChangeRole(e){return c(this,null,function*(){let t=e.requestedBy?this.hmsSDKPeers[e.requestedBy.id]:void 0;t||M.w(`peer for which role change is requested no longer available - ${e.requestedBy}`);let r={requestedBy:t,role:e.role,token:e.token};yield this.sdk.acceptChangeRole(r),this.removeRoleChangeRequest(e)})}rejectChangeRole(e){this.removeRoleChangeRequest(e)}endRoom(e,t){return c(this,null,function*(){let r=this.store.getState($e);if(!(r==null?void 0:r.endRoom)){M.w("You are not allowed to perform this action - endRoom");return}let i=this.store.getState(E);this.setState(o=>{o.room.roomState=T.Disconnecting},"endingRoom");try{yield this.sdk.endRoom(e,t),this.resetState("endRoom")}catch(o){M.e("error in ending room - ",o),this.setState(a=>{a.room.roomState=i},"revertEndRoom")}})}removePeer(e,t){return c(this,null,function*(){let r=this.hmsSDKPeers[e];if(r&&!r.isLocal)yield this.sdk.removePeer(r,t);else{this.logPossibleInconsistency(`No remote peer found for peerID - ${e}`);return}})}startRTMPOrRecording(e){return c(this,null,function*(){yield this.sdk.startRTMPOrRecording(e)})}stopRTMPAndRecording(){return c(this,null,function*(){yield this.sdk.stopRTMPAndRecording()})}startHLSStreaming(e){return c(this,null,function*(){yield this.sdk.startHLSStreaming(e)})}stopHLSStreaming(e){return c(this,null,function*(){yield this.sdk.stopHLSStreaming(e)})}changeName(e){return c(this,null,function*(){yield this.sdk.changeName(e)})}changeMetadata(e){return c(this,null,function*(){typeof e!="string"&&(e=JSON.stringify(e)),yield this.sdk.changeMetadata(e)})}setRemoteTrackEnabled(e,t){return c(this,null,function*(){if(typeof e=="string"){let r=this.hmsSDKTracks[e];r&<(r)?yield this.sdk.changeTrackState(r,t):this.logPossibleInconsistency(`No remote track with ID ${e} found for change track state`)}else Array.isArray(e)&&e.forEach(r=>this.setRemoteTrackEnabled(r,t))})}setRemoteTracksEnabled(e){return c(this,null,function*(){let t={enabled:e.enabled,type:e.type,source:e.source};if(e.roles){let r=this.store.getState(K);t.roles=e.roles.map(i=>r[i])}yield this.sdk.changeMultiTrackState(t)})}setLogLevel(e){M.level=e,this.sdk.setLogLevel(e)}ignoreMessageTypes(e,t=!1){if(t)this.ignoredMessageTypes=e;else for(let r of e)this.ignoredMessageTypes.includes(r)||this.ignoredMessageTypes.push(r)}resetState(e="resetState"){this.setState(t=>{Object.assign(t,se())},e),this.isRoomJoinCalled=!1,this.hmsSDKTracks={},M.cleanUp()}sdkJoinWithListeners(e){this.sdk.join(e,{onJoin:this.onJoin.bind(this),onRoomUpdate:this.onRoomUpdate.bind(this),onPeerUpdate:this.onPeerUpdate.bind(this),onTrackUpdate:this.onTrackUpdate.bind(this),onMessageReceived:this.onMessageReceived.bind(this),onError:this.onError.bind(this),onReconnected:this.onReconnected.bind(this),onReconnecting:this.onReconnecting.bind(this),onRoleChangeRequest:this.onRoleChangeRequest.bind(this),onRoleUpdate:this.onRoleUpdate.bind(this),onDeviceChange:this.onDeviceChange.bind(this),onChangeTrackStateRequest:this.onChangeTrackStateRequest.bind(this),onChangeMultiTrackStateRequest:this.onChangeMultiTrackStateRequest.bind(this),onRemovedFromRoom:this.onRemovedFromRoom.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})}onRemovedFromRoom(e){var i;let t=this.store.getState(_((i=e.requestedBy)==null?void 0:i.peerId));this.hmsNotifications.sendLeaveRoom(W(w({},e),{requestedBy:t||void 0}));let r=e.roomEnded||!t?"roomEnded":"removedFromRoom";M.i(`resetting state after peer removed ${r}`,e),this.resetState(r)}onDeviceChange(e){let t=e.devices;if(!t)return;let r=this.store.getState(C);if(this.setState(i=>{U(i.devices.audioInput,t.audioInput)||(i.devices.audioInput=t.audioInput),U(i.devices.videoInput,t.videoInput)||(i.devices.videoInput=t.videoInput),U(i.devices.audioOutput,t.audioOutput)||(i.devices.audioOutput=t.audioOutput),this.hmsSDKPeers[r==null?void 0:r.id]&&Object.assign(i.settings,this.getMediaSettings(this.hmsSDKPeers[r==null?void 0:r.id]))},"deviceChange"),e.selection){let i=h.convertDeviceChangeUpdate(e);this.hmsNotifications.sendDeviceChange(i)}}sdkPreviewWithListeners(e){return c(this,null,function*(){yield this.sdk.preview(e,{onPreview:this.onPreview.bind(this),onError:this.onError.bind(this),onDeviceChange:this.onDeviceChange.bind(this),onRoomUpdate:this.onRoomUpdate.bind(this),onPeerUpdate:this.onPeerUpdate.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})})}startScreenShare(e){return c(this,null,function*(){this.store.getState(ge)?this.logPossibleInconsistency("start screenshare is called while it's on"):(yield this.sdk.startScreenShare(()=>this.syncRoomState("screenshareStopped"),e),this.syncRoomState("startScreenShare"))})}stopScreenShare(){return c(this,null,function*(){this.store.getState(ge)?(yield this.sdk.stopScreenShare(),this.syncRoomState("stopScreenShare")):this.logPossibleInconsistency("stop screenshare is called while it's not on")})}attachVideoInternal(e,t){return c(this,null,function*(){let r=this.hmsSDKTracks[e];r&&r.type==="video"?(yield r.addSink(t),this.updateVideoLayer(e,"attachVideo")):this.logPossibleInconsistency("no video track found to add sink")})}syncRoomState(e){M.time(`store-sync-${e}`);let t={},r=[],i={},o={},a={},n=this.sdk.getPeers();for(let y of n){let N=h.convertPeer(y);t[N.id]=N,r.push(N.id),this.hmsSDKPeers[N.id]=y;let Y=[y.audioTrack,y.videoTrack,...y.auxiliaryTracks];for(let te of Y){if(!te)continue;let De=h.convertTrack(te);i[De.id]=De,o[te.trackId]=te}N.isLocal&&Object.assign(a,this.getMediaSettings(y))}let u=this.sdk.getRecordingState(),P=this.sdk.getRTMPState(),q=this.sdk.getHLSState();this.setState(y=>{y.room.peers=r;let N=y.peers,Y=y.tracks;Ce(N,t),Le(Y,i),Object.assign(y.settings,a),this.hmsSDKTracks=o,Object.assign(y.roles,h.convertRoles(this.sdk.getRoles())),Object.assign(y.playlist,h.convertPlaylist(this.sdk.getPlaylistManager())),Object.assign(y.room,h.convertRecordingStreamingState(u,P,q))},e),M.timeEnd(`store-sync-${e}`)}onPreview(e){this.setState(t=>{Object.assign(t.room,h.convertRoom(e)),t.room.roomState=T.Preview},"previewStart"),this.syncRoomState("previewSync")}onJoin(e){let t=this.sdk.getPlaylistManager();this.audioPlaylist=new ce(t,p.audio,this.syncPlaylistState.bind(this),this.store),this.videoPlaylist=new ce(t,p.video,this.syncRoomState.bind(this),this.store),this.syncRoomState("joinSync"),this.setState(r=>{Object.assign(r.room,h.convertRoom(e)),r.room.isConnected=!0,r.room.roomState=T.Connected},"joined"),t.onProgress(this.setProgress),t.onNewTrackStart(r=>{this.syncPlaylistState(`${r.type}PlaylistUpdate`)}),t.onPlaylistEnded(r=>{this.syncPlaylistState(`${r}PlaylistEnded`)}),t.onCurrentTrackEnded(r=>{this.hmsNotifications.sendPlaylistTrackEnded(h.convertPlaylistItem(t,r)),this.syncPlaylistState(`${r.type}PlaylistItemEnded`)})}onRoomUpdate(e,t){this.setState(r=>{Object.assign(r.room,h.convertRoom(t))},"RoomUpdate")}onPeerUpdate(e,t){if(![I.BECAME_DOMINANT_SPEAKER,I.RESIGNED_DOMINANT_SPEAKER].includes(e)){if(Array.isArray(t)){this.syncRoomState("peersJoined");let r=[];for(let i of t){let o=this.store.getState(_(i.peerId));o&&r.push(o)}this.hmsNotifications.sendPeerList(r);return}this.sendPeerUpdateNotification(e,t)}}onTrackUpdate(e,t,r){if(e===A.TRACK_REMOVED)this.hmsNotifications.sendTrackUpdate(e,t.trackId),this.handleTrackRemove(t,r);else{let i=e===A.TRACK_ADDED?"trackAdded":"trackUpdate";this.syncRoomState(i),this.hmsNotifications.sendTrackUpdate(e,t.trackId)}}onMessageReceived(e){let t=h.convertMessage(e);t.read=!1,t.ignored=this.ignoredMessageTypes.includes(t.type),this.putMessageInStore(t),this.hmsNotifications.sendMessageReceived(t)}putMessageInStore(e){e.ignored||this.setState(t=>{e.id=String(this.store.getState(qe)+1),t.messages.byID[e.id]=e,t.messages.allIDs.push(e.id)},"newMessage")}onAudioLevelUpdate(e){this.setState(t=>{let r={};e.forEach(o=>{if(!o.track||!o.peer)return;let a=o.track.trackId;r[a]=o.audioLevel,t.speakers[a]||(t.speakers[a]={audioLevel:o.audioLevel,peerID:o.peer.peerId,trackID:a})});let i=Object.entries(t.speakers);for(let[o,a]of i)a.audioLevel=r[o]||0,a.audioLevel===0&&delete t.speakers[o]},"audioLevel")}onChangeTrackStateRequest(e){var o;let t=this.store.getState(_((o=e.requestedBy)==null?void 0:o.peerId)),r=this.getStoreLocalTrackIDfromSDKTrack(e.track),i=this.store.getState(ne(r));if(!i)return this.logPossibleInconsistency(`Not found track for which track state change was requested, ${e.track}`);e.enabled||this.syncRoomState("changeTrackStateRequest"),this.hmsNotifications.sendChangeTrackStateRequest({requestedBy:t||void 0,track:i,enabled:e.enabled})}onChangeMultiTrackStateRequest(e){var o;let t=this.store.getState(_((o=e.requestedBy)==null?void 0:o.peerId));e.enabled||this.syncRoomState("changeMultiTrackStateRequest");let r=[],i=this.store.getState(H);for(let a of e.tracks){let n=this.getStoreLocalTrackIDfromSDKTrack(a);n&&i[n]&&r.push(i[n])}this.hmsNotifications.sendChangeMultiTrackStateRequest({requestedBy:t||void 0,tracks:r,enabled:e.enabled,type:e.type,source:e.source})}onReconnected(){this.syncRoomState("reconnectedSync"),this.hmsNotifications.sendReconnected(),this.setState(e=>{e.room.roomState=T.Connected},"reconnected")}onReconnecting(e){let t=h.convertException(e);M.e("Reconnection: received error from sdk",t),this.hmsNotifications.sendReconnecting(t),this.setState(r=>{r.room.roomState=T.Reconnecting,r.errors.push(t)},"reconnecting")}onError(e){let t=h.convertException(e);t.isTerminal?(this.leave().then(()=>M.e("error from SDK, left room.")),this.setState(r=>{r.room.roomState=T.Failed,r.errors.push(t)},"errorTerminal")):this.store.getState().errors.length<50&&this.setState(i=>{i.errors.push(t)},"error"),this.hmsNotifications.sendError(t),M.e("received error from sdk",t)}updateVideoLayer(e,t){let r=this.hmsSDKTracks[e];r&&r instanceof pt&&this.setState(i=>{i.tracks[e].layer=r.getSimulcastLayer()},t)}handleTrackRemove(e,t){this.setState(r=>{let i=r.peers[t.peerId],o=r.tracks,a=e.trackId;if(this.isSameStoreSDKTrack(a,i==null?void 0:i.audioTrack))i==null||delete i.audioTrack;else if(this.isSameStoreSDKTrack(a,i==null?void 0:i.videoTrack))i==null||delete i.videoTrack;else{let n=i==null?void 0:i.auxiliaryTracks.indexOf(a);n>-1&&this.isSameStoreSDKTrack(a,i==null?void 0:i.auxiliaryTracks[n])&&(i==null||i.auxiliaryTracks.splice(n,1))}delete o[a],delete this.hmsSDKTracks[a]},"trackRemoved")}setEnabledSDKTrack(e,t){return c(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setEnabled(t):this.logPossibleInconsistency(`track ${e} not present, unable to enabled/disable`)})}setSDKLocalVideoTrackSettings(e,t){return c(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}setSDKLocalAudioTrackSettings(e,t){return c(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}getMediaSettings(e){var o;let t=this.store.getState(Ke),r=e.audioTrack,i=e.videoTrack;return{audioInputDeviceId:(r==null?void 0:r.settings.deviceId)||t.audioInputDeviceId,videoInputDeviceId:(i==null?void 0:i.settings.deviceId)||t.videoInputDeviceId,audioOutputDeviceId:(o=this.sdk.getAudioOutput().getDevice())==null?void 0:o.deviceId}}setTrackVolume(e,t){let r=this.hmsSDKTracks[t];r?r instanceof Ft?(r.setVolume(e),this.setState(i=>{let o=i.tracks[t];o&&(o.volume=e)},"trackVolume")):M.w(`track ${t} is not an audio track`):this.logPossibleInconsistency(`track ${t} not present, unable to set volume`)}localAndVideoUnmuting(e){if(this.store.getState(C).videoTrack!==e)return!1;let r=this.store.getState(Be),i=this.store.getState(he);return r&&!i}logPossibleInconsistency(e){M.w("possible inconsistency detected - ",e)}addRemoveVideoPlugin(e,t,r){return c(this,null,function*(){if(!e){M.w("Invalid plugin received in store");return}let i=this.store.getState(x);if(i){let o=this.hmsSDKTracks[i];o?(t==="add"?yield o.addPlugin(e,r):t==="remove"&&(yield o.removePlugin(e)),this.syncRoomState(`${t}VideoPlugin`)):this.logPossibleInconsistency(`track ${i} not present, unable to remove plugin`)}})}addRemoveAudioPlugin(e,t){return c(this,null,function*(){if(!e){M.w("Invalid plugin received in store");return}let r=this.store.getState(L);if(r){let i=this.hmsSDKTracks[r];i?(t==="add"?yield i.addPlugin(e):t==="remove"&&(yield i.removePlugin(e)),this.syncRoomState(`${t}AudioPlugin`)):this.logPossibleInconsistency(`track ${r} not present, unable to remove plugin`)}})}isSameStoreSDKTrack(e,t){var r;return t?((r=this.hmsSDKTracks[t])==null?void 0:r.trackId)===e:!1}onRoleChangeRequest(e){this.setState(t=>{t.roleChangeRequests.length===0&&t.roleChangeRequests.push(h.convertRoleChangeRequest(e))},"roleChangeRequest")}removeRoleChangeRequest(e){this.setState(t=>{let r=t.roleChangeRequests.findIndex(i=>i.token===e.token);r!==-1&&t.roleChangeRequests.splice(r,1)},"removeRoleChangeRequest")}onRoleUpdate(){this.syncRoomState("roleUpdate")}getStoreLocalTrackIDfromSDKTrack(e){return this.store.getState(Ve).find(r=>this.hmsSDKTracks[r].trackId===e.trackId)}};import{EventEmitter2 as Gt}from"eventemitter2";var Pe="hmsNotification",Re=class{constructor(e){this.id=0;this.onNotification=(e,t)=>{let r=i=>{if(t){let o;if(Array.isArray(t)?o=t.includes(i.type):o=t===i.type,!o)return}e(i)};return this.eventEmitter.addListener(Pe,r),()=>{this.eventEmitter.removeListener(Pe,r)}};this.store=e,this.eventEmitter=new Gt}sendPlaylistTrackEnded(e){let t=this.createNotification(m.PLAYLIST_TRACK_ENDED,e,R.INFO);this.emitEvent(t)}sendDeviceChange(e){var r;let t=this.createNotification(m.DEVICE_CHANGE_UPDATE,e,e.error?R.ERROR:R.INFO,`Selected ${e.type} device - ${(r=e.selection)==null?void 0:r.label}`);this.emitEvent(t)}sendLeaveRoom(e){var i;let t=(i=e.requestedBy)==null?void 0:i.name,r=this.createNotification(e.roomEnded||!t?m.ROOM_ENDED:m.REMOVED_FROM_ROOM,e,R.INFO,`${e.roomEnded?"Room ended":"Removed from room"} ${t?`by ${t}`:""}`);this.emitEvent(r)}sendPeerList(e){let t=this.createNotification(m.PEER_LIST,e,R.INFO);this.emitEvent(t)}sendPeerUpdate(e,t){let r=this.store.getState(_(t==null?void 0:t.id))||t,i=St[e];if(i){let o=this.createNotification(i,r,R.INFO);this.emitEvent(o)}}sendTrackUpdate(e,t){let r=this.store.getState(ne(t)),i=dt[e];if(i){let o=this.createNotification(i,r,R.INFO);this.emitEvent(o)}}sendMessageReceived(e){let t=this.createNotification(m.NEW_MESSAGE,e,R.INFO);this.emitEvent(t)}sendError(e){let t=this.createNotification(m.ERROR,e,R.ERROR);this.emitEvent(t)}sendReconnecting(e){let t=this.createNotification(m.RECONNECTING,e,R.ERROR);this.emitEvent(t)}sendReconnected(){let e=this.createNotification(m.RECONNECTED,null,R.INFO);this.emitEvent(e)}sendChangeTrackStateRequest(e){let t=this.createNotification(m.CHANGE_TRACK_STATE_REQUEST,e,R.INFO);this.emitEvent(t)}sendChangeMultiTrackStateRequest(e){let t=this.createNotification(m.CHANGE_MULTI_TRACK_STATE_REQUEST,e,R.INFO);this.emitEvent(t)}emitEvent(e){this.eventEmitter.emit(Pe,e)}createNotification(e,t,r,i=""){return this.id++,{id:this.id,type:e,message:i,data:t,severity:r}}};import{isBrowser as Jt}from"@100mslive/hms-video";var le=s=>Jt?`${s} ${document.title}`:s;var Mt=(s,e,t)=>{let r;t.getState(E)===T.Connected&&(r=mt(s,e,t)),t.subscribe(i=>{[T.Connected,T.Reconnecting].includes(i)?r||(r=mt(s,e,t)):r&&(Xt(e),r())},E)},mt=(s,e,t)=>{var o;let r=Yt(t,e),i=(o=s.getWebrtcInternals())==null?void 0:o.onStatsChange(a=>Qt(e,a,t));return()=>{r(),i&&i()}},Yt=(s,e)=>{let t,r,i;return s.getState($)?e.namedSetState(o=>{o.localPeer.id=s.getState($)},"localpeer-id"):t=s.subscribe(o=>{o&&e.namedSetState(a=>{a.localPeer.id=o},"localpeer-id")},$),s.getState(x)?e.namedSetState(o=>{o.localPeer.videoTrack=s.getState(x)},"localpeer-videotrack-id"):r=s.subscribe(o=>{o&&e.namedSetState(a=>{a.localPeer.videoTrack=o},"localpeer-videotrack-id")},x),s.getState(L)?e.namedSetState(o=>{o.localPeer.videoTrack=s.getState(L)},"localpeer-audiotrack-id"):i=s.subscribe(o=>{o&&e.namedSetState(a=>{a.localPeer.videoTrack=o},"localpeer-audiotrack-id")},L),()=>{t==null||t(),r==null||r(),i==null||i()}},Qt=(s,e,t)=>{let r=t.getState(H);s.namedSetState(i=>{let o={},a=Object.keys(r);for(let P of a){let q=e.getTrackStats(P);q&&(o[P]=q)}de(i.trackStats,o);let u={[t.getState($)]:e.getLocalPeerStats()};de(i.peerStats,u)},"webrtc-stats")},Xt=(s,e="resetState")=>{s.namedSetState(t=>{Object.assign(t,re())},e)};var Se=class{constructor(e,t){this.hmsStore=e;this.sdk=t;this.store=O.createNewHMSStore(le("HMSStatsStore"),re),this.getState=this.store.getState,this.subscribe=this.store.subscribe,this.getPublishPeerConnection=()=>new Promise(r=>{var i,o;this.hmsStore.getState(E)==="Connected"?r((o=(i=this.sdk)==null?void 0:i.getWebrtcInternals())==null?void 0:o.getPublishPeerConnection()):this.hmsStore.subscribe(a=>{var n,u;a==="Connected"&&r((u=(n=this.sdk)==null?void 0:n.getWebrtcInternals())==null?void 0:u.getPublishPeerConnection())},E)}),this.getSubscribePeerConnection=()=>new Promise(r=>{var i,o;this.hmsStore.getState(E)==="Connected"?r((o=(i=this.sdk)==null?void 0:i.getWebrtcInternals())==null?void 0:o.getSubscribePeerConnection()):this.hmsStore.subscribe(a=>{var n,u;a==="Connected"&&r((u=(n=this.sdk)==null?void 0:n.getWebrtcInternals())==null?void 0:u.getSubscribePeerConnection())},E)}),!!this.sdk&&Mt(this.sdk,this.store,this.hmsStore)}};import{createSelector as g}from"reselect";var zt=s=>s.localPeer.id,Zt=s=>s.localPeer.audioTrack,es=s=>s.localPeer.videoTrack,ts=(s,e)=>e,ss=(s,e)=>e,Ie=s=>s.trackStats,ht=s=>s.peerStats,V=g([ht,zt],(s,e)=>s[e]),rs=g(V,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.packetsLost}),is=g(V,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.jitter}),os=g(V,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bitrate}),as=g(V,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bitrate}),ns=g(V,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.availableOutgoingBitrate}),cs=g(V,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.availableIncomingBitrate}),ls=g(V,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bytesSent}),Ss=g(V,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bytesReceived}),ds=g([ht,ts],(s,e)=>e?s[e]:void 0),J=g([Ie,ss],(s,e)=>e?s[e]:void 0),us=d(ds),ps=d(J),Ms=d(g(J,s=>s==null?void 0:s.bitrate)),ms=d(g(J,s=>s==null?void 0:s.bytesReceived)),hs=d(g(J,s=>s==null?void 0:s.framesPerSecond)),gs=d(g(J,s=>s==null?void 0:s.jitter)),Ts=d(g(J,s=>s==null?void 0:s.packetsLost)),ve=g([Ie,Zt],(s,e)=>e?s[e]:void 0),ee=g([Ie,es],(s,e)=>e?s[e]:void 0),Hs=g(ve,s=>s==null?void 0:s.bitrate),ys=g(ee,s=>s==null?void 0:s.bitrate),fs=g(ve,s=>s==null?void 0:s.bytesSent),ks=g(ee,s=>s==null?void 0:s.bytesSent),Ps=g(ee,s=>s==null?void 0:s.framesPerSecond),Rs=g(ee,s=>s==null?void 0:s.qualityLimitationReason),Is={localPeerStats:V,packetsLost:rs,jitter:is,publishBitrate:os,subscribeBitrate:as,availablePublishBitrate:ns,availableSubscribeBitrate:cs,totalBytesSent:ls,totalBytesReceived:Ss,peerStatsByID:us,trackStatsByID:ps,bitrateByTrackID:Ms,bytesReceivedByTrackID:ms,framerateByTrackID:hs,jitterByTrackID:gs,packetsLostByTrackID:Ts,localAudioTrackStats:ve,localVideoTrackStats:ee,localAudioTrackBitrate:Hs,localVideoTrackBitrate:ys,localAudioTrackBytesSent:fs,localVideoTrackBytesSent:ks,localVideoTrackFramerate:Ps,localVideoTrackQualityLimitationReason:Rs};var O=class{constructor(e,t,r){this.getStats=()=>(this.stats||(this.stats=new Se(this.store,this.sdk)),this.stats);e?this.store=e:this.store=O.createNewHMSStore(le("HMSStore"),se),r?this.notifications=r:this.notifications=new Re(this.store),t?this.actions=t:(this.sdk=new Es,this.actions=new ke(this.store,this.sdk,this.notifications)),this.initialTriggerOnSubscribe=!1,As&&(window.__hms=this)}triggerOnSubscribe(){this.initialTriggerOnSubscribe||(O.makeStoreTriggerOnSubscribe(this.store),this.initialTriggerOnSubscribe=!0)}getStore(){return this.store}getHMSActions(){return this.actions}getActions(){return this.actions}getNotifications(){return{onNotification:this.notifications.onNotification}}static createNewHMSStore(e,t){let r=Ds(()=>t()),i=r.setState;r.setState=n=>{let u=typeof n=="function"?vs(n):n;i(u)};let o=r.getState;r.getState=n=>{if(n){let u=n.name||"byIDSelector";window.selectorsCount||(window.selectorsCount={}),window.selectorsCount[u]=(window.selectorsCount[u]||0)+1;let P=performance.now(),q=n(o()),y=performance.now()-P;return y>1&&(window.expensiveSelectors=window.expensiveSelectors||new Map,window.expensiveSelectors.set(u,y)),q}return o()},O.compareWithShallowCheckInSubscribe(r);let a=O.setUpDevtools(r,e);return W(w({},r),{namedSetState:a})}static makeStoreTriggerOnSubscribe(e){let t=e.subscribe;e.subscribe=(r,i,o)=>(r(e.getState(i),void 0),t(r,i,o))}static compareWithShallowCheckInSubscribe(e){let t=e.subscribe;e.subscribe=(r,i,o)=>(i||(i=a=>a),o=o||bs,t(r,i,o))}static setUpDevtools(e,t){let r;try{r=window.__REDUX_DEVTOOLS_EXTENSION__||window.top.__REDUX_DEVTOOLS_EXTENSION__}catch(a){}if(!r)return a=>{e.setState(a)};let i=r.connect(O.devtoolsOptions(t));i.prefix=t?`${t} > `:"";let o=e.setState;return e.setState=a=>{o(a),i.send(`${i.prefix}setState`,e.getState())},i.subscribe(O.devtoolsSubscribe(i,e,o)),i.send("setUpStore",e.getState()),(a,n)=>{o(a);let u=n||`${i.prefix}action`;i.send(u,e.getState())}}static devtoolsOptions(e){return{name:e,actionsBlacklist:["audioLevel","playlistProgress"]}}static devtoolsSubscribe(e,t,r){return i=>{var o,a,n,u;if(i.type==="DISPATCH"&&i.state)["JUMP_TO_ACTION","JUMP_TO_STATE"].includes(i.payload.type)?r(JSON.parse(i.state)):t.setState(JSON.parse(i.state));else if(i.type==="DISPATCH"&&((o=i.payload)==null?void 0:o.type)==="COMMIT")e.init(t.getState());else if(i.type==="DISPATCH"&&((a=i.payload)==null?void 0:a.type)==="IMPORT_STATE"){let P=(n=i.payload.nextLiftedState)==null?void 0:n.actionsById;(((u=i.payload.nextLiftedState)==null?void 0:u.computedStates)||[]).forEach(({state:y},N)=>{let Y=P[N]||`${e.prefix}setState`;N===0?e.init(y):(r(y),e.send(Y,t.getState()))})}}}};export{kt as HMSAudioPluginType,f as HMSLogLevel,Ae as HMSMessageType,R as HMSNotificationSeverity,m as HMSNotificationTypes,p as HMSPlaylistType,O as HMSReactiveStore,T as HMSRoomState,Se as HMSStats,Pt as HMSVideoPluginType,re as createDefaultStatsStore,se as createDefaultStoreState,Rt as parsedUserAgent,Ze as selectAudioPlaylist,wi as selectAudioPlaylistTrackByPeerID,wt as selectAudioTrackByPeerID,at as selectAudioTrackVolume,qi as selectAudioVolumeByPeerID,xi as selectAuxiliaryAudioByPeerID,Ai as selectAuxiliaryTracksByPeerID,ni as selectAvailableRoleNames,_t as selectBroadcastMessages,Wi as selectBroadcastMessagesUnreadCount,Ei as selectCameraStreamByPeerID,ii as selectDegradedTracks,Jr as selectDevices,po as selectDidIJoinWithin,Xr as selectDominantSpeaker,di as selectHLSState,oe as selectHMSMessages,qe as selectHMSMessagesCount,Is as selectHMSStats,ro as selectIsAllowedToPublish,ci as selectIsAllowedToSubscribe,ot as selectIsAudioLocallyMuted,At as selectIsConnectedToRoom,ai as selectIsInPreview,zr as selectIsLocalAudioEnabled,lo as selectIsLocalAudioPluginPresent,ge as selectIsLocalScreenShared,Be as selectIsLocalVideoDisplayEnabled,he as selectIsLocalVideoEnabled,co as selectIsLocalVideoPluginPresent,Vi as selectIsLocallyMutedByPeerID,_i as selectIsPeerAudioEnabled,Ki as selectIsPeerVideoEnabled,Bi as selectIsScreenShareLocallyMutedByPeerID,Zr as selectIsSomeoneScreenSharing,L as selectLocalAudioTrackID,Ke as selectLocalMediaSettings,C as selectLocalPeer,$ as selectLocalPeerID,ae as selectLocalPeerRole,Ve as selectLocalTrackIDs,x as selectLocalVideoTrackID,_e as selectMessageIDsInOrder,Fi as selectMessagesByPeerID,Gi as selectMessagesByRole,Ue as selectMessagesMap,Yi as selectMessagesUnreadCountByPeerID,Ji as selectMessagesUnreadCountByRole,Li as selectPeerAudioByID,So as selectPeerByCondition,_ as selectPeerByID,Yr as selectPeerCount,Xi as selectPeerMetadata,bi as selectPeerNameByID,xt as selectPeerScreenSharing,ei as selectPeerSharingAudio,ri as selectPeerSharingAudioPlaylist,si as selectPeerSharingVideoPlaylist,G as selectPeers,uo as selectPeersByCondition,Qi as selectPeersByRole,b as selectPeersMap,ti as selectPeersScreenSharing,to as selectPeersWithAudioStatus,$e as selectPermissions,Si as selectRTMPState,li as selectRecordingState,Qr as selectRemotePeers,no as selectRoleByRoleName,so as selectRoleChangeRequest,K as selectRolesMap,v as selectRoom,Gr as selectRoomID,pi as selectRoomStartTime,je as selectRoomStarted,E as selectRoomState,it as selectScreenShareAudioByPeerID,Ui as selectScreenShareByPeerID,rt as selectScreenSharesByPeerId,ji as selectScreenshareAudioVolumeByPeerID,ui as selectSessionId,$i as selectSimulcastLayerByTrack,Et as selectSpeakers,Ci as selectTrackAudioByID,ne as selectTrackByID,H as selectTracksMap,oi as selectUnreadHMSMessagesCount,et as selectVideoPlaylist,Ni as selectVideoPlaylistAudioTrackByPeerID,Oi as selectVideoPlaylistVideoTrackByPeerID,Nt as selectVideoTrackByPeerID};
|
|
1
|
+
var ht=Object.defineProperty,Tt=Object.defineProperties;var Ht=Object.getOwnPropertyDescriptors;var be=Object.getOwnPropertySymbols;var yt=Object.prototype.hasOwnProperty,ft=Object.prototype.propertyIsEnumerable;var Ee=(s,e,t)=>e in s?ht(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,w=(s,e)=>{for(var t in e||(e={}))yt.call(e,t)&&Ee(s,t,e[t]);if(be)for(var t of be(e))ft.call(e,t)&&Ee(s,t,e[t]);return s},W=(s,e)=>Tt(s,Ht(e));var c=(s,e,t)=>new Promise((r,i)=>{var o=u=>{try{n(t.next(u))}catch(P){i(P)}},a=u=>{try{n(t.throw(u))}catch(P){i(P)}},n=u=>u.done?r(u.value):Promise.resolve(u.value).then(o,a);n((t=t.apply(s,e)).next())});import vs from"immer";import Ds from"zustand/vanilla";import bs from"zustand/shallow";import{HMSSdk as Es,isBrowser as As}from"@100mslive/hms-video";var T;(function(n){n.Disconnected="Disconnected",n.Preview="Preview",n.Connecting="Connecting",n.Connected="Connected",n.Reconnecting="Reconnecting",n.Disconnecting="Disconnecting",n.Failed="Failed"})(T||(T={}));var se=()=>({room:{id:"",isConnected:!1,name:"",peers:[],shareableLink:"",localPeer:"",hasWaitingRoom:!1,roomState:T.Disconnected,recording:{browser:{running:!1},server:{running:!1},hls:{running:!1}},rtmp:{running:!1},hls:{running:!1,variants:[]},sessionId:""},peers:{},tracks:{},playlist:{audio:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1},video:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1}},messages:{byID:{},allIDs:[]},speakers:{},settings:{audioInputDeviceId:"",audioOutputDeviceId:"",videoInputDeviceId:""},devices:{audioInput:[],audioOutput:[],videoInput:[]},roles:{},roleChangeRequests:[],errors:[]}),re=()=>({peerStats:{},trackStats:{},localPeer:{id:""}});var Ae;(function(e){e.CHAT="chat"})(Ae||(Ae={}));var R;(function(r){r.INFO="info",r.ERROR="error",r.CRITICAL="critical"})(R||(R={}));var m;(function(l){l.PEER_JOINED="PEER_JOINED",l.PEER_LEFT="PEER_LEFT",l.PEER_LIST="PEER_LIST",l.NEW_MESSAGE="NEW_MESSAGE",l.ERROR="ERROR",l.RECONNECTING="RECONNECTING",l.RECONNECTED="RECONNECTED",l.TRACK_ADDED="TRACK_ADDED",l.TRACK_REMOVED="TRACK_REMOVED",l.TRACK_MUTED="TRACK_MUTED",l.TRACK_UNMUTED="TRACK_UNMUTED",l.TRACK_DEGRADED="TRACK_DEGRADED",l.TRACK_RESTORED="TRACK_RESTORED",l.ROLE_CHANGE_REQUEST="ROLE_CHANGE_REQUEST",l.ROLE_UPDATED="ROLE_UPDATED",l.CHANGE_TRACK_STATE_REQUEST="CHANGE_TRACK_STATE_REQUEST",l.CHANGE_MULTI_TRACK_STATE_REQUEST="CHANGE_MULTI_TRACK_STATE_REQUEST",l.ROOM_ENDED="ROOM_ENDED",l.REMOVED_FROM_ROOM="REMOVED_FROM_ROOM",l.DEVICE_CHANGE_UPDATE="DEVICE_CHANGE_UPDATE",l.PLAYLIST_TRACK_ENDED="PLAYLIST_TRACK_ENDED",l.NAME_UPDATED="NAME_UPDATED",l.METADATA_UPDATED="METADATA_UPDATED"})(m||(m={}));var p;(function(t){t.audio="audio",t.video="video"})(p||(p={}));import{HMSException as Vs,HMSSimulcastLayer as Bs,HMSPeerUpdate as I,HMSRoomUpdate as qs,HMSTrackUpdate as A,HMSLogLevel as f,HMSAudioPluginType as kt,HMSVideoPluginType as Pt,parsedUserAgent as Rt}from"@100mslive/hms-video";import{HMSLocalAudioTrack as xe,HMSLocalVideoTrack as Oe,HMSRemoteAudioTrack as vt,HMSRemoteVideoTrack as Dt}from"@100mslive/hms-video";var Ce=(s,e)=>{let t=me(Object.keys(s),Object.keys(e));for(let r of t){let i=s[r],o=e[r];ue(i,o)?(U(i.auxiliaryTracks,o.auxiliaryTracks)&&(o.auxiliaryTracks=i.auxiliaryTracks),Object.assign(i,o)):pe(i,o)?delete s[r]:Me(i,o)&&(s[r]=o)}},Le=(s,e)=>{let t=me(Object.keys(s),Object.keys(e));for(let r of t){let i=s[r],o=e[r];ue(i,o)?(It(i,o),Object.assign(i,o)):pe(i,o)?delete s[r]:Me(i,o)&&(s[r]=o)}},de=(s,e)=>{let t=me(Object.keys(s),Object.keys(e));for(let r of t){let i=s[r],o=e[r];ue(i,o)?Object.assign(i,o):pe(i,o)?delete s[r]:Me(i,o)&&(s[r]=o)}},It=(s,e)=>{s.plugins&&U(s.plugins,e.plugins)&&(e.plugins=s.plugins),s.layerDefinitions&&U(s.layerDefinitions,e.layerDefinitions)&&(e.layerDefinitions=s.layerDefinitions)},ue=(s,e)=>s&&e,pe=(s,e)=>s&&!e,Me=(s,e)=>!s&&e,U=(s,e)=>{if(s===e||s.length===0&&(e==null?void 0:e.length)===0)return!0;if(!s||!e||s.length!==e.length)return!1;for(let t=0;t<s.length;t++)if(s[t]!==e[t])return!1;return!0},me=(s,e)=>{let t=new Set;for(let r of s)t.add(r);for(let r of e)t.add(r);return Array.from(t)};var g=class{static convertPeer(e){var t,r,i;return{id:e.peerId,name:e.name,roleName:(t=e.role)==null?void 0:t.name,isLocal:e.isLocal,videoTrack:(r=e.videoTrack)==null?void 0:r.trackId,audioTrack:(i=e.audioTrack)==null?void 0:i.trackId,auxiliaryTracks:e.auxiliaryTracks.map(o=>o.trackId),customerUserId:e.customerUserId,customerDescription:e.metadata,metadata:e.metadata}}static convertTrack(e,t){let r={id:e.trackId,source:e.source,type:e.type,enabled:e.enabled,displayEnabled:e.enabled,peerId:e.peerId||t};return this.enrichTrack(r,e),r}static enrichTrack(e,t){let r=t.getMediaTrackSettings();e.source==="screen"&&e.type==="video"&&(e.displaySurface=r.displaySurface),e.height=r.height,e.width=r.width,t instanceof vt&&(e.volume=t.getVolume()||0),g.updateDeviceID(e,t),g.enrichVideoTrack(e,t),g.enrichPluginsDetails(e,t)}static updateDeviceID(e,t){var r;t instanceof Oe||t instanceof xe?e.deviceID=t.settings.deviceId:e.deviceID=(r=t.getMediaTrackSettings())==null?void 0:r.deviceId}static enrichVideoTrack(e,t){t instanceof Dt&&(e.layer=t.getSimulcastLayer(),e.degraded=t.degraded,U(t.getSimulcastDefinitions(),e.layerDefinitions)||(e.layerDefinitions=t.getSimulcastDefinitions()))}static enrichPluginsDetails(e,t){(t instanceof Oe||t instanceof xe)&&(U(t.getPlugins(),e.plugins)||(e.plugins=t.getPlugins()))}static convertRoom(e){var o,a;let{recording:t,rtmp:r,hls:i}=g.convertRecordingStreamingState(e==null?void 0:e.recording,e==null?void 0:e.rtmp,e==null?void 0:e.hls);return{id:e.id,name:e.name,localPeer:(a=(o=e.localPeer)==null?void 0:o.peerId)!=null?a:"",hasWaitingRoom:e.hasWaitingRoom,shareableLink:e.shareableLink,recording:t,rtmp:r,hls:i,sessionId:e.sessionId,startedAt:e.startedAt,joinedAt:e.joinedAt,peerCount:e.peerCount}}static convertMessage(e){var t,r,i;return{sender:e.sender.peerId,senderName:e.sender.name,senderRole:(t=e.sender.role)==null?void 0:t.name,senderUserId:e.sender.customerUserId,recipientPeer:(r=e.recipientPeer)==null?void 0:r.peerId,recipientRoles:(i=e.recipientRoles)==null?void 0:i.map(o=>o.name),time:e.time,type:e.type,message:e.message}}static convertRoles(e){let t={};return e&&e.forEach(r=>{t[r.name]=r}),t}static convertRoleChangeRequest(e){var t;return{requestedBy:(t=e.requestedBy)==null?void 0:t.peerId,roleName:e.role.name,token:e.token}}static convertException(e){return{code:e.code,action:e.action,name:e.name,message:e.message,description:e.description,isTerminal:e.isTerminal,nativeError:e.nativeError,timestamp:new Date}}static convertDeviceChangeUpdate(e){let t={devices:e.devices,selection:e.selection,type:e.type};return e.error&&(t.error=this.convertException(e.error)),t}static convertPlaylist(e){let t=this.getConvertedPlaylistType(e,p.audio),r=this.getConvertedPlaylistType(e,p.video);return{audio:t,video:r}}static convertPlaylistItem(e,t){let r=t.type,i=e.getCurrentSelection(r),o=e.isPlaying(r),a=t.url===(i==null?void 0:i.url);return W(w({},t),{type:t.type,selected:a,playing:a&&o})}static getConvertedPlaylistType(e,t){let r={},i=e.getCurrentSelection(t),o=e.getCurrentProgress(t),a=e.getVolume(t),n=e.getList(t),u=e.getCurrentIndex(t);return e.getList(t).forEach(P=>{r[P.id]=g.convertPlaylistItem(e,P)}),{list:r,selection:{id:i==null?void 0:i.id,hasPrevious:u>0,hasNext:u<n.length-1},progress:o,volume:a,currentTime:e.getCurrentTime(t),playbackRate:e.getPlaybackRate(t)}}static convertRecordingStreamingState(e,t,r){var i;return{recording:{browser:w({running:!1},e==null?void 0:e.browser),server:w({running:!1},e==null?void 0:e.server),hls:w({running:!1},e==null?void 0:e.hls)},rtmp:w({running:!1},t),hls:{variants:((i=r==null?void 0:r.variants)==null?void 0:i.map(o=>o))||[],running:!!(r==null?void 0:r.running),error:r==null?void 0:r.error}}}};import{createSelector as S}from"reselect";function j(s,e,t=bt){let r,i;if(e)for(let o of e.auxiliaryTracks){let a=s[o];t(a)&&(i=Q(a)?a:i,r=X(a)?a:r)}return{video:r,audio:i}}function Q(s){return s&&s.type==="audio"}function X(s){return s&&s.type==="video"}function bt(s){return s&&s.source==="screen"}function ie(s){return s&&s.source==="audioplaylist"}function z(s){return s&&s.source==="videoplaylist"}function Ne(s){return Boolean(s==null?void 0:s.degraded)}function F(s,e){return e&&s.tracks[e]?s.tracks[e].enabled:!1}function we(s,e){return e&&s.tracks[e]?s.tracks[e].displayEnabled:!1}var v=s=>s.room,Gr=S(v,s=>s.id),b=s=>s.peers,Ue=s=>s.messages.byID,_e=s=>s.messages.allIDs,H=s=>s.tracks,Ke=s=>s.settings,Jr=s=>s.devices,Et=s=>s.speakers,At=S([v],s=>s&&s.isConnected),Yr=S([At,v],(s,e)=>s?e.peerCount||e.peers.length:Math.max(e.peerCount||e.peers.length-1,0)),G=S([v,b],(s,e)=>s.peers.map(t=>e[t])),Ct=S(H,s=>Object.values(s)),L=S(v,b,(s,e)=>e[s.localPeer]),$=S(v,s=>s.localPeer),C=S(L,s=>s==null?void 0:s.audioTrack),x=S(L,s=>s==null?void 0:s.videoTrack),Lt=S(L,s=>s==null?void 0:s.auxiliaryTracks),Ve=S([C,x,Lt],(s,e,t)=>{let r=[...t];return s&&r.unshift(s),e&&r.unshift(e),r}),Qr=S(G,s=>s.filter(e=>!e.isLocal)),Xr=S(b,Et,(s,e)=>{let t=Object.entries(e).sort((r,i)=>{var n,u;let o=((n=r[1])==null?void 0:n.audioLevel)||0;return(((u=i[1])==null?void 0:u.audioLevel)||0)>o?1:-1});if(t.length>0&&t[0][1].audioLevel&&t[0][1].audioLevel>0){let r=t[0][1].peerID;if(r in s)return s[r]}return null}),zr=s=>{let e=L(s);return F(s,e==null?void 0:e.audioTrack)},ge=s=>{let e=L(s);return F(s,e==null?void 0:e.videoTrack)},Be=s=>{let e=L(s);return we(s,e==null?void 0:e.videoTrack)},he=S(L,H,(s,e)=>{let{video:t,audio:r}=j(e,s);return!!(t||r)}),xt=S(b,H,(s,e)=>{let t;for(let r in s){let i=s[r],{video:o,audio:a}=j(e,i);if(o)return i;a&&!t&&(t=i)}return t}),Zr=S(xt,s=>!!s),ei=S(b,H,(s,e)=>{for(let t in s){let r=s[t],{audio:i,video:o}=j(e,r);if(!o&&!!i)return r}}),ti=S(b,H,(s,e)=>{let t=[],r=[];for(let i in s){let o=s[i],{video:a,audio:n}=j(e,o);a?t.push(o):n&&r.push(o)}return t.concat(r)}),si=S(b,H,(s,e)=>{for(let t in e){let r=e[t];if(z(r)&&X(r)&&r.peerId)return s[r.peerId]}}),ri=S(b,H,(s,e)=>{for(let t in e){let r=e[t];if(ie(r)&&r.peerId)return s[r.peerId]}}),ii=S(Ct,s=>s.filter(Ne)),qe=S(_e,s=>s.length),oi=S(Ue,s=>Object.values(s).filter(e=>!e.read).length),oe=S(_e,Ue,(s,e)=>{let t=[];return s.forEach(r=>{t.push(e[r])}),t}),E=S([v],s=>s&&s.roomState),ai=S(E,s=>s===T.Preview),je=S(v,s=>s.roomState!==T.Disconnected),K=s=>s.roles,ni=S([K],s=>Object.keys(s)),ae=S([L,K],(s,e)=>(s==null?void 0:s.roleName)?e[s.roleName]:null),ci=S([ae],s=>{var e;return((e=s==null?void 0:s.subscribeParams)==null?void 0:e.subscribeToRoles)?s.subscribeParams.subscribeToRoles.length>0:!1}),$e=S(ae,s=>s==null?void 0:s.permissions),li=S(v,s=>s.recording),Si=S(v,s=>s.rtmp),di=S(v,s=>s.hls),ui=S(v,s=>s.sessionId),pi=S(v,s=>s.startedAt);import{createSelector as We}from"reselect";var Fe=(s=p.audio)=>e=>e.playlist[s].list,Te=(s=p.audio)=>e=>e.playlist[s].selection,Ge=(s=p.audio)=>e=>e.playlist[s].progress,Je=(s=p.audio)=>e=>e.playlist[s].currentTime,Ye=(s=p.audio)=>e=>e.playlist[s].playbackRate,Qe=(s=p.audio)=>e=>e.playlist[s].volume,Xe=(s=p.audio)=>We(Fe(s),e=>Object.values(e)),ze=(s=p.audio)=>We(Fe(s),Te(s),(e,t)=>{if(!!t.id)return e[t.id]}),Ze={selection:Te(p.audio),progress:Ge(p.audio),currentTime:Je(p.audio),playbackRate:Ye(p.audio),volume:Qe(p.audio),list:Xe(p.audio),selectedItem:ze(p.audio)},et={selection:Te(p.video),progress:Ge(p.video),currentTime:Je(p.video),playbackRate:Ye(p.video),volume:Qe(p.video),list:Xe(p.video),selectedItem:ze(p.video)};import{createSelector as k}from"reselect";function d(s){return e=>t=>s(t,e)}var Z="HMS-Store:",M=class{static v(e,...t){this.log(f.VERBOSE,e,...t)}static d(...e){this.log(f.DEBUG,...e)}static i(...e){this.log(f.INFO,...e)}static w(...e){this.log(f.WARN,...e)}static e(...e){this.log(f.ERROR,...e)}static time(e){this.log(f.TIME,"[HMSPerformanceTiming]",e)}static timeEnd(e){this.log(f.TIMEEND,"[HMSPerformanceTiming]",e,e)}static cleanUp(){performance.clearMarks(),performance.clearMeasures()}static log(e,...t){if(!(this.level.valueOf()>e.valueOf()))switch(e){case f.VERBOSE:{console.log(Z,...t);break}case f.DEBUG:{console.debug(Z,...t);break}case f.INFO:{console.info(Z,...t);break}case f.WARN:{console.warn(Z,...t);break}case f.ERROR:{console.error(Z,...t);break}case f.TIME:{performance.mark(t[1]);break}case f.TIMEEND:{let r=t[0],i=t[1];try{let o=performance.measure(i,i);this.log(f.DEBUG,r,i,o==null?void 0:o.duration),performance.clearMarks(i),performance.clearMeasures(i)}catch(o){this.log(f.DEBUG,r,i,o)}break}}}};M.level=f.VERBOSE;var He=(s,e)=>e,Ot=(s,e)=>e,tt=(s,e)=>e,D=k([b,He],(s,e)=>e?s[e]:null),ye=k([H,Ot],(s,e)=>e?s[e]:null),_=d(D),bi=d(k(D,s=>s==null?void 0:s.name)),ne=d(ye),Nt=d((s,e)=>{let t=D(s,e);if(t&&t.videoTrack&&t.videoTrack!=="")return s.tracks[t.videoTrack]}),wt=d((s,e)=>{let t=D(s,e);if(t&&t.audioTrack&&t.audioTrack!=="")return s.tracks[t.audioTrack]}),Ei=Nt,Ai=d((s,e)=>{let t=D(s,e);return(t==null?void 0:t.auxiliaryTracks.map(r=>s.tracks[r]))||[]}),st=(s,e)=>e?s.speakers[e]:null,Ci=d(k(st,s=>(s==null?void 0:s.audioLevel)||0)),Ut=(s,e)=>{let t=wt(e)(s);return st(s,t==null?void 0:t.id)},Li=d(k(Ut,s=>(s==null?void 0:s.audioLevel)||0)),xi=d((s,e)=>{let t=D(s,e);if(t){let r=t==null?void 0:t.auxiliaryTracks.find(i=>Q(s.tracks[i]));return r?s.tracks[r]:void 0}}),Oi=d(k(H,D,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let i=s[r];return z(i)&&X(i)});return t?s[t]:void 0})),Ni=d(k(H,D,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let i=s[r];return z(i)&&Q(i)});return t?s[t]:void 0})),wi=d(k(H,D,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let i=s[r];return ie(i)&&Q(i)});return t?s[t]:void 0})),rt=d(k(H,D,(s,e)=>j(s,e))),Ui=s=>k(rt(s),e=>e.video),it=s=>k(rt(s),e=>e.audio),_i=d((s,e)=>{let t=D(s,e);return F(s,t==null?void 0:t.audioTrack)}),Ki=d((s,e)=>{let t=D(s,e);return F(s,t==null?void 0:t.videoTrack)}),ot=d((s,e)=>{if(e&&s.tracks[e])return s.tracks[e].volume===0}),Vi=d((s,e)=>{let t=D(s,e);return ot(t==null?void 0:t.audioTrack)(s)}),Bi=d((s,e)=>{let t=it(e)(s);return ot(t==null?void 0:t.id)(s)}),at=d((s,e)=>{let t=ye(s,e);if(t){if(t.type!=="audio"){M.w("Please pass audio track here");return}return t.volume}}),qi=d((s,e)=>{let t=D(s,e);return at(t==null?void 0:t.audioTrack)(s)}),ji=d((s,e)=>{let t=it(e)(s);return at(t==null?void 0:t.id)(s)}),$i=d((s,e)=>{let t=ye(s,e);if(t){if(t.type!=="video"){M.w("Please pass video track here");return}return t.layer}}),nt=k([oe,$,He],(s,e,t)=>{if(!!t)return s.filter(r=>{var i;return!r.recipientPeer&&!((i=r.recipientRoles)==null?void 0:i.length)||![e,t].includes(r.sender)?!1:[e,t].includes(r.recipientPeer)})}),ct=k([oe,tt],(s,e)=>{if(!!e)return s.filter(t=>{var r,i;return((r=t.recipientRoles)==null?void 0:r.length)?(i=t.recipientRoles)==null?void 0:i.includes(e):!1})}),_t=k(oe,s=>s.filter(e=>{var t;return!e.recipientPeer&&!((t=e.recipientRoles)==null?void 0:t.length)})),Kt=k([ct,tt],s=>s?s.filter(e=>!e.read).length:0),Vt=k([nt,He],s=>s?s.filter(e=>!e.read).length:0),Wi=k(_t,s=>s.filter(e=>!e.read).length),Fi=d(nt),Gi=d(ct),Ji=d(Kt),Yi=d(Vt),Qi=s=>k([G],e=>e.filter(t=>t.roleName===s)),Xi=s=>k(_(s),e=>{try{return(e==null?void 0:e.metadata)&&e.metadata!==""?JSON.parse(e.metadata):{}}catch(t){return console.error("cannot parse peer metadata",t),{}}});import{createSelector as fe}from"reselect";var to=fe([b,H],(s,e)=>Object.values(s).map(r=>{var i;return{peer:r,isAudioEnabled:r.audioTrack?(i=e[r.audioTrack])==null?void 0:i.enabled:!1}})),Bt=s=>s.roleChangeRequests[0]||null,so=fe([Bt,b,K],(s,e,t)=>s?{requestedBy:s.requestedBy?e[s.requestedBy]:void 0,role:t[s.roleName],token:s.token}:null),ro=fe([ae],s=>{var i;let e=!1,t=!1,r=!1;return((i=s==null?void 0:s.publishParams)==null?void 0:i.allowed)&&(e=s.publishParams.allowed.includes("video"),t=s.publishParams.allowed.includes("audio"),r=s.publishParams.allowed.includes("screen")),{video:e,audio:t,screen:r}});import{createSelector as B}from"reselect";var no=s=>B([K],e=>e[s]),qt=B([x,H],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),jt=B([C,H],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),co=s=>B([qt],e=>e.includes(s)),lo=s=>B([jt],e=>e.includes(s)),So=s=>B(G,e=>e.find(s)),uo=s=>B(G,e=>e.filter(s)),po=s=>B(v,e=>e.joinedAt&&Date.now()-e.joinedAt.getTime()<=s);import{HMSAudioTrack as Ft,HMSRemoteVideoTrack as pt}from"@100mslive/hms-video";import{HMSRemoteAudioTrack as $t,HMSRemoteVideoTrack as Wt}from"@100mslive/hms-video";function lt(s){return s instanceof $t||s instanceof Wt}var ce=class{constructor(e,t,r,i){this.playlistManager=e;this.syncPlaylistState=r;this.store=i;this.type=t}play(e){return c(this,null,function*(){if(!e){M.w("Please pass id to play");return}yield this.playlistManager.setEnabled(!0,{id:e,type:this.type})})}pause(){return c(this,null,function*(){let e=this.type===p.audio?Ze:et,t=this.store.getState(e.selection);if(!t.id){M.w("No item is currently playing to pause");return}yield this.playlistManager.setEnabled(!1,{id:t.id,type:this.type})})}playNext(){return c(this,null,function*(){yield this.playlistManager.playNext(this.type)})}playPrevious(){return c(this,null,function*(){yield this.playlistManager.playPrevious(this.type)})}seek(e){this.playlistManager.seek(e,this.type),this.syncPlaylistState(`seekOn${this.type}Playlist`)}seekTo(e){this.playlistManager.seekTo(e,this.type),this.syncPlaylistState(`seekToOn${this.type}Playlist`)}setVolume(e){this.playlistManager.setVolume(e,this.type),this.syncPlaylistState(`setVolumeOn${this.type}Playlist`)}setList(e){this.playlistManager.setList(e),this.syncPlaylistState(`setListOn${this.type}Playlist`)}stop(){return c(this,null,function*(){yield this.playlistManager.stop(this.type),this.syncPlaylistState(`stop${this.type}Playlist`)})}setIsAutoplayOn(e){this.playlistManager.setIsAutoplayOn(this.type,e)}setPlaybackRate(e){this.playlistManager.setPlaybackRate(this.type,e),this.syncPlaylistState(`set${this.type}PlaybackRate`)}};var St={[I.PEER_JOINED]:m.PEER_JOINED,[I.PEER_LEFT]:m.PEER_LEFT,[I.ROLE_UPDATED]:m.ROLE_UPDATED,[I.AUDIO_TOGGLED]:"PEER_AUDIO_UPDATED",[I.VIDEO_TOGGLED]:"PEER_VIDEO_UPDATED",[I.NAME_UPDATED]:m.NAME_UPDATED,[I.METADATA_UPDATED]:m.METADATA_UPDATED},dt={[A.TRACK_ADDED]:m.TRACK_ADDED,[A.TRACK_REMOVED]:m.TRACK_REMOVED,[A.TRACK_MUTED]:m.TRACK_MUTED,[A.TRACK_UNMUTED]:m.TRACK_UNMUTED,[A.TRACK_DEGRADED]:m.TRACK_DEGRADED,[A.TRACK_RESTORED]:m.TRACK_RESTORED},ut={[I.PEER_JOINED]:"peerJoined",[I.PEER_LEFT]:"peerLeft",[I.NAME_UPDATED]:"peerNameUpdated",[I.ROLE_UPDATED]:"peerRoleUpdated",[I.METADATA_UPDATED]:"peerMetadataUpdated"};var ke=class{constructor(e,t,r){this.hmsSDKTracks={};this.hmsSDKPeers={};this.isRoomJoinCalled=!1;this.ignoredMessageTypes=[];this.setProgress=({type:e,progress:t})=>{this.setState(r=>{r.playlist[e].progress=t,r.playlist[e].currentTime=this.sdk.getPlaylistManager().getCurrentTime(e)},"playlistProgress")};this.syncPlaylistState=e=>{this.setState(t=>{Object.assign(t.playlist,g.convertPlaylist(this.sdk.getPlaylistManager()))},e)};this.sendPeerUpdateNotification=(e,t)=>{let r=this.store.getState(_(t.peerId)),i=ut[e];this.syncRoomState(i),r||(r=this.store.getState(_(t.peerId))),this.hmsNotifications.sendPeerUpdate(e,r)};this.setState=(e,t)=>this.store.namedSetState(e,t);this.store=e,this.sdk=t,this.hmsNotifications=r}unblockAudio(){return c(this,null,function*(){yield this.sdk.getAudioOutput().unblockAutoplay()})}setVolume(e,t){t?this.setTrackVolume(e,t):(this.sdk.getAudioOutput().setVolume(e),this.syncRoomState("setOutputVolume"))}setAudioOutputDevice(e){this.sdk.getAudioOutput().setDevice(e)&&this.setState(r=>{r.settings.audioOutputDeviceId=e},"setAudioOutputDevice")}setPreferredLayer(e,t){let r=this.hmsSDKTracks[e];r?r instanceof pt?(r.preferLayer(t),this.updateVideoLayer(e,"setPreferredLayer")):M.w(`track ${e} is not an video track`):this.logPossibleInconsistency(`track ${e} not present, unable to set preffer layer`)}preview(e){return c(this,null,function*(){if(this.isRoomJoinCalled){this.logPossibleInconsistency("attempting to call preview after join was called");return}let t=this.store.getState(E);if(t===T.Preview||t===T.Connecting){this.logPossibleInconsistency("attempting to call preview while room is in preview/connecting");return}try{this.setState(r=>{r.room.roomState=T.Connecting},"connecting"),yield this.sdkPreviewWithListeners(e)}catch(r){throw M.e("Cannot show preview. Failed to connect to room - ",r),r}})}join(e){if(this.isRoomJoinCalled){this.logPossibleInconsistency("room join is called again");return}try{this.sdkJoinWithListeners(e),this.isRoomJoinCalled=!0,this.setState(t=>{t.room.roomState=T.Connecting},"join")}catch(t){throw this.isRoomJoinCalled=!1,M.e("Failed to connect to room - ",t),t}}leave(){return c(this,null,function*(){if(!this.store.getState(je)){this.logPossibleInconsistency("room leave is called when no room is connected");return}let t=this.store.getState(E);return this.setState(r=>{r.room.roomState=T.Disconnecting},"leaving"),this.sdk.leave().then(()=>{this.resetState("leave"),M.i("left room")}).catch(r=>{M.e("error in leaving room - ",r),this.setState(i=>{i.room.roomState=t},"revertLeave")})})}setScreenShareEnabled(e,t){return c(this,null,function*(){e?yield this.startScreenShare(t):yield this.stopScreenShare()})}addTrack(e,t="regular"){return c(this,null,function*(){yield this.sdk.addTrack(e,t),this.syncRoomState("addTrack")})}removeTrack(e){return c(this,null,function*(){yield this.sdk.removeTrack(e),this.syncRoomState("removeTrack")})}setLocalAudioEnabled(e){return c(this,null,function*(){let t=this.store.getState(C);t&&(yield this.setEnabledTrack(t,e))})}setLocalVideoEnabled(e){return c(this,null,function*(){let t=this.store.getState(x);t&&(yield this.setEnabledTrack(t,e))})}setEnabledTrack(e,t){return c(this,null,function*(){var o;if(((o=this.store.getState().tracks[e])==null?void 0:o.enabled)===t){this.logPossibleInconsistency(`local track[${e}] enabled state - ${t}`);return}this.setState(a=>{a.tracks[e]?a.tracks[e].displayEnabled=t:this.logPossibleInconsistency("track id not found for setEnabled")},"displayEnabled");try{yield this.setEnabledSDKTrack(e,t),this.syncRoomState("setEnabled")}catch(a){throw this.setState(n=>{n.tracks[e].displayEnabled=!t},"rollbackDisplayEnabled"),this.hmsNotifications.sendError(g.convertException(a)),a}let i=t?A.TRACK_UNMUTED:A.TRACK_MUTED;this.hmsNotifications.sendTrackUpdate(i,e)})}setAudioSettings(e){return c(this,null,function*(){let t=this.store.getState(C);t&&(yield this.setSDKLocalAudioTrackSettings(t,e),this.syncRoomState("setAudioSettings"))})}setVideoSettings(e){return c(this,null,function*(){let t=this.store.getState(x);t&&(yield this.setSDKLocalVideoTrackSettings(t,e),this.syncRoomState("setVideoSettings"))})}sendMessage(e){this.sendBroadcastMessage(e)}sendBroadcastMessage(e,t){return c(this,null,function*(){let r=yield this.sdk.sendBroadcastMessage(e,t);this.updateMessageInStore(r,{message:e,type:t})})}sendGroupMessage(e,t,r){return c(this,null,function*(){let i=this.store.getState(K),o=t.map(n=>i[n]),a=yield this.sdk.sendGroupMessage(e,o,r);this.updateMessageInStore(a,{message:e,recipientRoles:t,type:r})})}sendDirectMessage(e,t,r){return c(this,null,function*(){let i=this.hmsSDKPeers[t],o=yield this.sdk.sendDirectMessage(e,i,r);this.updateMessageInStore(o,{message:e,recipientPeer:i.peerId,type:r})})}updateMessageInStore(e,t){if(!e)throw M.w("sendMessage","Failed to send message",t),Error(`sendMessage Failed - ${JSON.stringify(t)}`);let r=g.convertMessage(e);return r.read=!0,r.senderName="You",r.ignored=this.ignoredMessageTypes.includes(r.type),this.putMessageInStore(r),r}setMessageRead(e,t){this.setState(r=>{t?r.messages.byID[t]?r.messages.byID[t].read=e:this.logPossibleInconsistency("no message with id is found"):r.messages.allIDs.forEach(i=>{r.messages.byID[i].read=e})},"setMessageRead")}attachVideo(e,t){return c(this,null,function*(){if(this.localAndVideoUnmuting(e))return new Promise(r=>{let i=this.store.subscribe(o=>c(this,null,function*(){o&&(yield this.attachVideoInternal(e,t),i(),r())}),ge)});yield this.attachVideoInternal(e,t)})}detachVideo(e,t){return c(this,null,function*(){let r=this.hmsSDKTracks[e];r&&r.type==="video"?(yield r.removeSink(t),this.updateVideoLayer(e,"detachVideo")):this.logPossibleInconsistency("no video track found to remove sink")})}addPluginToVideoTrack(e,t){return c(this,null,function*(){return this.addRemoveVideoPlugin(e,"add",t)})}addPluginToAudioTrack(e){return c(this,null,function*(){return this.addRemoveAudioPlugin(e,"add")})}validateAudioPluginSupport(e){let t={};if(!e)return M.w("Invalid plugin received in store"),t.errMsg="trying to add invalid plugin, see docs for details",t;let r=this.store.getState(C);if(r){let i=this.hmsSDKTracks[r];i?t=i.validatePlugin(e):this.logPossibleInconsistency(`track ${r} not present, unable to validate plugin`)}return t}removePluginFromVideoTrack(e){return c(this,null,function*(){return this.addRemoveVideoPlugin(e,"remove")})}removePluginFromAudioTrack(e){return c(this,null,function*(){return this.addRemoveAudioPlugin(e,"remove")})}changeRole(e,t,r=!1){return c(this,null,function*(){let i=this.hmsSDKPeers[e];if(!i){this.logPossibleInconsistency(`Unknown peer ID given ${e} for changerole`);return}yield this.sdk.changeRole(i,t,r)})}acceptChangeRole(e){return c(this,null,function*(){let t=e.requestedBy?this.hmsSDKPeers[e.requestedBy.id]:void 0;t||M.w(`peer for which role change is requested no longer available - ${e.requestedBy}`);let r={requestedBy:t,role:e.role,token:e.token};yield this.sdk.acceptChangeRole(r),this.removeRoleChangeRequest(e)})}rejectChangeRole(e){this.removeRoleChangeRequest(e)}endRoom(e,t){return c(this,null,function*(){let r=this.store.getState($e);if(!(r==null?void 0:r.endRoom)){M.w("You are not allowed to perform this action - endRoom");return}let i=this.store.getState(E);this.setState(o=>{o.room.roomState=T.Disconnecting},"endingRoom");try{yield this.sdk.endRoom(e,t),this.resetState("endRoom")}catch(o){M.e("error in ending room - ",o),this.setState(a=>{a.room.roomState=i},"revertEndRoom")}})}removePeer(e,t){return c(this,null,function*(){let r=this.hmsSDKPeers[e];if(r&&!r.isLocal)yield this.sdk.removePeer(r,t);else{this.logPossibleInconsistency(`No remote peer found for peerID - ${e}`);return}})}startRTMPOrRecording(e){return c(this,null,function*(){yield this.sdk.startRTMPOrRecording(e)})}stopRTMPAndRecording(){return c(this,null,function*(){yield this.sdk.stopRTMPAndRecording()})}startHLSStreaming(e){return c(this,null,function*(){yield this.sdk.startHLSStreaming(e)})}stopHLSStreaming(e){return c(this,null,function*(){yield this.sdk.stopHLSStreaming(e)})}changeName(e){return c(this,null,function*(){yield this.sdk.changeName(e)})}changeMetadata(e){return c(this,null,function*(){typeof e!="string"&&(e=JSON.stringify(e)),yield this.sdk.changeMetadata(e)})}setRemoteTrackEnabled(e,t){return c(this,null,function*(){if(typeof e=="string"){let r=this.hmsSDKTracks[e];r&<(r)?yield this.sdk.changeTrackState(r,t):this.logPossibleInconsistency(`No remote track with ID ${e} found for change track state`)}else Array.isArray(e)&&e.forEach(r=>this.setRemoteTrackEnabled(r,t))})}setRemoteTracksEnabled(e){return c(this,null,function*(){let t={enabled:e.enabled,type:e.type,source:e.source};if(e.roles){let r=this.store.getState(K);t.roles=e.roles.map(i=>r[i])}yield this.sdk.changeMultiTrackState(t)})}setLogLevel(e){M.level=e,this.sdk.setLogLevel(e)}ignoreMessageTypes(e,t=!1){if(t)this.ignoredMessageTypes=e;else for(let r of e)this.ignoredMessageTypes.includes(r)||this.ignoredMessageTypes.push(r)}resetState(e="resetState"){this.setState(t=>{Object.assign(t,se())},e),this.isRoomJoinCalled=!1,this.hmsSDKTracks={},M.cleanUp()}sdkJoinWithListeners(e){this.sdk.join(e,{onJoin:this.onJoin.bind(this),onRoomUpdate:this.onRoomUpdate.bind(this),onPeerUpdate:this.onPeerUpdate.bind(this),onTrackUpdate:this.onTrackUpdate.bind(this),onMessageReceived:this.onMessageReceived.bind(this),onError:this.onError.bind(this),onReconnected:this.onReconnected.bind(this),onReconnecting:this.onReconnecting.bind(this),onRoleChangeRequest:this.onRoleChangeRequest.bind(this),onRoleUpdate:this.onRoleUpdate.bind(this),onDeviceChange:this.onDeviceChange.bind(this),onChangeTrackStateRequest:this.onChangeTrackStateRequest.bind(this),onChangeMultiTrackStateRequest:this.onChangeMultiTrackStateRequest.bind(this),onRemovedFromRoom:this.onRemovedFromRoom.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})}onRemovedFromRoom(e){var i;let t=this.store.getState(_((i=e.requestedBy)==null?void 0:i.peerId));this.hmsNotifications.sendLeaveRoom(W(w({},e),{requestedBy:t||void 0}));let r=e.roomEnded||!t?"roomEnded":"removedFromRoom";M.i(`resetting state after peer removed ${r}`,e),this.resetState(r)}onDeviceChange(e){let t=e.devices;if(!t)return;let r=this.store.getState(L);if(this.setState(i=>{U(i.devices.audioInput,t.audioInput)||(i.devices.audioInput=t.audioInput),U(i.devices.videoInput,t.videoInput)||(i.devices.videoInput=t.videoInput),U(i.devices.audioOutput,t.audioOutput)||(i.devices.audioOutput=t.audioOutput),this.hmsSDKPeers[r==null?void 0:r.id]&&Object.assign(i.settings,this.getMediaSettings(this.hmsSDKPeers[r==null?void 0:r.id]))},"deviceChange"),e.selection){let i=g.convertDeviceChangeUpdate(e);this.hmsNotifications.sendDeviceChange(i)}}sdkPreviewWithListeners(e){return c(this,null,function*(){yield this.sdk.preview(e,{onPreview:this.onPreview.bind(this),onError:this.onError.bind(this),onDeviceChange:this.onDeviceChange.bind(this),onRoomUpdate:this.onRoomUpdate.bind(this),onPeerUpdate:this.onPeerUpdate.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})})}startScreenShare(e){return c(this,null,function*(){this.store.getState(he)?this.logPossibleInconsistency("start screenshare is called while it's on"):(yield this.sdk.startScreenShare(()=>this.syncRoomState("screenshareStopped"),e),this.syncRoomState("startScreenShare"))})}stopScreenShare(){return c(this,null,function*(){this.store.getState(he)?(yield this.sdk.stopScreenShare(),this.syncRoomState("stopScreenShare")):this.logPossibleInconsistency("stop screenshare is called while it's not on")})}attachVideoInternal(e,t){return c(this,null,function*(){let r=this.hmsSDKTracks[e];r&&r.type==="video"?(yield r.addSink(t),this.updateVideoLayer(e,"attachVideo")):this.logPossibleInconsistency("no video track found to add sink")})}syncRoomState(e){M.time(`store-sync-${e}`);let t={},r=[],i={},o={},a={},n=this.sdk.getPeers();for(let y of n){let N=g.convertPeer(y);t[N.id]=N,r.push(N.id),this.hmsSDKPeers[N.id]=y;let Y=[y.audioTrack,y.videoTrack,...y.auxiliaryTracks];for(let te of Y){if(!te)continue;let De=g.convertTrack(te);i[De.id]=De,o[te.trackId]=te}N.isLocal&&Object.assign(a,this.getMediaSettings(y))}let u=this.sdk.getRecordingState(),P=this.sdk.getRTMPState(),q=this.sdk.getHLSState();this.setState(y=>{y.room.peers=r;let N=y.peers,Y=y.tracks;Ce(N,t),Le(Y,i),Object.assign(y.settings,a),this.hmsSDKTracks=o,Object.assign(y.roles,g.convertRoles(this.sdk.getRoles())),Object.assign(y.playlist,g.convertPlaylist(this.sdk.getPlaylistManager())),Object.assign(y.room,g.convertRecordingStreamingState(u,P,q))},e),M.timeEnd(`store-sync-${e}`)}onPreview(e){this.setState(t=>{Object.assign(t.room,g.convertRoom(e)),t.room.roomState=T.Preview},"previewStart"),this.syncRoomState("previewSync")}onJoin(e){let t=this.sdk.getPlaylistManager();this.audioPlaylist=new ce(t,p.audio,this.syncPlaylistState.bind(this),this.store),this.videoPlaylist=new ce(t,p.video,this.syncRoomState.bind(this),this.store),this.syncRoomState("joinSync"),this.setState(r=>{Object.assign(r.room,g.convertRoom(e)),r.room.isConnected=!0,r.room.roomState=T.Connected},"joined"),t.onProgress(this.setProgress),t.onNewTrackStart(r=>{this.syncPlaylistState(`${r.type}PlaylistUpdate`)}),t.onPlaylistEnded(r=>{this.syncPlaylistState(`${r}PlaylistEnded`)}),t.onCurrentTrackEnded(r=>{this.hmsNotifications.sendPlaylistTrackEnded(g.convertPlaylistItem(t,r)),this.syncPlaylistState(`${r.type}PlaylistItemEnded`)})}onRoomUpdate(e,t){this.setState(r=>{Object.assign(r.room,g.convertRoom(t))},"RoomUpdate")}onPeerUpdate(e,t){if(![I.BECAME_DOMINANT_SPEAKER,I.RESIGNED_DOMINANT_SPEAKER].includes(e)){if(Array.isArray(t)){this.syncRoomState("peersJoined");let r=[];for(let i of t){let o=this.store.getState(_(i.peerId));o&&r.push(o)}this.hmsNotifications.sendPeerList(r);return}this.sendPeerUpdateNotification(e,t)}}onTrackUpdate(e,t,r){if(e===A.TRACK_REMOVED)this.hmsNotifications.sendTrackUpdate(e,t.trackId),this.handleTrackRemove(t,r);else{let i=e===A.TRACK_ADDED?"trackAdded":"trackUpdate";this.syncRoomState(i),this.hmsNotifications.sendTrackUpdate(e,t.trackId)}}onMessageReceived(e){let t=g.convertMessage(e);t.read=!1,t.ignored=this.ignoredMessageTypes.includes(t.type),this.putMessageInStore(t),this.hmsNotifications.sendMessageReceived(t)}putMessageInStore(e){e.ignored||this.setState(t=>{e.id=String(this.store.getState(qe)+1),t.messages.byID[e.id]=e,t.messages.allIDs.push(e.id)},"newMessage")}onAudioLevelUpdate(e){this.setState(t=>{let r={};e.forEach(o=>{if(!o.track||!o.peer)return;let a=o.track.trackId;r[a]=o.audioLevel,t.speakers[a]||(t.speakers[a]={audioLevel:o.audioLevel,peerID:o.peer.peerId,trackID:a})});let i=Object.entries(t.speakers);for(let[o,a]of i)a.audioLevel=r[o]||0,a.audioLevel===0&&delete t.speakers[o]},"audioLevel")}onChangeTrackStateRequest(e){var o;let t=this.store.getState(_((o=e.requestedBy)==null?void 0:o.peerId)),r=this.getStoreLocalTrackIDfromSDKTrack(e.track),i=this.store.getState(ne(r));if(!i)return this.logPossibleInconsistency(`Not found track for which track state change was requested, ${e.track}`);e.enabled||this.syncRoomState("changeTrackStateRequest"),this.hmsNotifications.sendChangeTrackStateRequest({requestedBy:t||void 0,track:i,enabled:e.enabled})}onChangeMultiTrackStateRequest(e){var o;let t=this.store.getState(_((o=e.requestedBy)==null?void 0:o.peerId));e.enabled||this.syncRoomState("changeMultiTrackStateRequest");let r=[],i=this.store.getState(H);for(let a of e.tracks){let n=this.getStoreLocalTrackIDfromSDKTrack(a);n&&i[n]&&r.push(i[n])}this.hmsNotifications.sendChangeMultiTrackStateRequest({requestedBy:t||void 0,tracks:r,enabled:e.enabled,type:e.type,source:e.source})}onReconnected(){this.syncRoomState("reconnectedSync"),this.hmsNotifications.sendReconnected(),this.setState(e=>{e.room.roomState=T.Connected},"reconnected")}onReconnecting(e){let t=g.convertException(e);M.e("Reconnection: received error from sdk",t),this.hmsNotifications.sendReconnecting(t),this.setState(r=>{r.room.roomState=T.Reconnecting,r.errors.push(t)},"reconnecting")}onError(e){let t=g.convertException(e);t.isTerminal?(this.leave().then(()=>M.e("error from SDK, left room.")),this.setState(r=>{r.room.roomState=T.Failed,r.errors.push(t)},"errorTerminal")):this.store.getState().errors.length<50&&this.setState(i=>{i.errors.push(t)},"error"),this.syncRoomState("errorSync"),this.hmsNotifications.sendError(t),M.e("received error from sdk",t)}updateVideoLayer(e,t){let r=this.hmsSDKTracks[e];r&&r instanceof pt&&this.setState(i=>{i.tracks[e].layer=r.getSimulcastLayer()},t)}handleTrackRemove(e,t){this.setState(r=>{let i=r.peers[t.peerId],o=r.tracks,a=e.trackId;if(this.isSameStoreSDKTrack(a,i==null?void 0:i.audioTrack))i==null||delete i.audioTrack;else if(this.isSameStoreSDKTrack(a,i==null?void 0:i.videoTrack))i==null||delete i.videoTrack;else{let n=i==null?void 0:i.auxiliaryTracks.indexOf(a);n>-1&&this.isSameStoreSDKTrack(a,i==null?void 0:i.auxiliaryTracks[n])&&(i==null||i.auxiliaryTracks.splice(n,1))}delete o[a],delete this.hmsSDKTracks[a]},"trackRemoved")}setEnabledSDKTrack(e,t){return c(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setEnabled(t):this.logPossibleInconsistency(`track ${e} not present, unable to enabled/disable`)})}setSDKLocalVideoTrackSettings(e,t){return c(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}setSDKLocalAudioTrackSettings(e,t){return c(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}getMediaSettings(e){var o;let t=this.store.getState(Ke),r=e.audioTrack,i=e.videoTrack;return{audioInputDeviceId:(r==null?void 0:r.settings.deviceId)||t.audioInputDeviceId,videoInputDeviceId:(i==null?void 0:i.settings.deviceId)||t.videoInputDeviceId,audioOutputDeviceId:(o=this.sdk.getAudioOutput().getDevice())==null?void 0:o.deviceId}}setTrackVolume(e,t){let r=this.hmsSDKTracks[t];r?r instanceof Ft?(r.setVolume(e),this.setState(i=>{let o=i.tracks[t];o&&(o.volume=e)},"trackVolume")):M.w(`track ${t} is not an audio track`):this.logPossibleInconsistency(`track ${t} not present, unable to set volume`)}localAndVideoUnmuting(e){if(this.store.getState(L).videoTrack!==e)return!1;let r=this.store.getState(Be),i=this.store.getState(ge);return r&&!i}logPossibleInconsistency(e){M.w("possible inconsistency detected - ",e)}addRemoveVideoPlugin(e,t,r){return c(this,null,function*(){if(!e){M.w("Invalid plugin received in store");return}let i=this.store.getState(x);if(i){let o=this.hmsSDKTracks[i];o?(t==="add"?yield o.addPlugin(e,r):t==="remove"&&(yield o.removePlugin(e)),this.syncRoomState(`${t}VideoPlugin`)):this.logPossibleInconsistency(`track ${i} not present, unable to remove plugin`)}})}addRemoveAudioPlugin(e,t){return c(this,null,function*(){if(!e){M.w("Invalid plugin received in store");return}let r=this.store.getState(C);if(r){let i=this.hmsSDKTracks[r];i?(t==="add"?yield i.addPlugin(e):t==="remove"&&(yield i.removePlugin(e)),this.syncRoomState(`${t}AudioPlugin`)):this.logPossibleInconsistency(`track ${r} not present, unable to remove plugin`)}})}isSameStoreSDKTrack(e,t){var r;return t?((r=this.hmsSDKTracks[t])==null?void 0:r.trackId)===e:!1}onRoleChangeRequest(e){this.setState(t=>{t.roleChangeRequests.length===0&&t.roleChangeRequests.push(g.convertRoleChangeRequest(e))},"roleChangeRequest")}removeRoleChangeRequest(e){this.setState(t=>{let r=t.roleChangeRequests.findIndex(i=>i.token===e.token);r!==-1&&t.roleChangeRequests.splice(r,1)},"removeRoleChangeRequest")}onRoleUpdate(){this.syncRoomState("roleUpdate")}getStoreLocalTrackIDfromSDKTrack(e){return this.store.getState(Ve).find(r=>this.hmsSDKTracks[r].trackId===e.trackId)}};import{EventEmitter2 as Gt}from"eventemitter2";var Pe="hmsNotification",Re=class{constructor(e){this.id=0;this.onNotification=(e,t)=>{let r=i=>{if(t){let o;if(Array.isArray(t)?o=t.includes(i.type):o=t===i.type,!o)return}e(i)};return this.eventEmitter.addListener(Pe,r),()=>{this.eventEmitter.removeListener(Pe,r)}};this.store=e,this.eventEmitter=new Gt}sendPlaylistTrackEnded(e){let t=this.createNotification(m.PLAYLIST_TRACK_ENDED,e,R.INFO);this.emitEvent(t)}sendDeviceChange(e){var r;let t=this.createNotification(m.DEVICE_CHANGE_UPDATE,e,e.error?R.ERROR:R.INFO,`Selected ${e.type} device - ${(r=e.selection)==null?void 0:r.label}`);this.emitEvent(t)}sendLeaveRoom(e){var i;let t=(i=e.requestedBy)==null?void 0:i.name,r=this.createNotification(e.roomEnded||!t?m.ROOM_ENDED:m.REMOVED_FROM_ROOM,e,R.INFO,`${e.roomEnded?"Room ended":"Removed from room"} ${t?`by ${t}`:""}`);this.emitEvent(r)}sendPeerList(e){let t=this.createNotification(m.PEER_LIST,e,R.INFO);this.emitEvent(t)}sendPeerUpdate(e,t){let r=this.store.getState(_(t==null?void 0:t.id))||t,i=St[e];if(i){let o=this.createNotification(i,r,R.INFO);this.emitEvent(o)}}sendTrackUpdate(e,t){let r=this.store.getState(ne(t)),i=dt[e];if(i){let o=this.createNotification(i,r,R.INFO);this.emitEvent(o)}}sendMessageReceived(e){let t=this.createNotification(m.NEW_MESSAGE,e,R.INFO);this.emitEvent(t)}sendError(e){let t=this.createNotification(m.ERROR,e,R.ERROR);this.emitEvent(t)}sendReconnecting(e){let t=this.createNotification(m.RECONNECTING,e,R.ERROR);this.emitEvent(t)}sendReconnected(){let e=this.createNotification(m.RECONNECTED,null,R.INFO);this.emitEvent(e)}sendChangeTrackStateRequest(e){let t=this.createNotification(m.CHANGE_TRACK_STATE_REQUEST,e,R.INFO);this.emitEvent(t)}sendChangeMultiTrackStateRequest(e){let t=this.createNotification(m.CHANGE_MULTI_TRACK_STATE_REQUEST,e,R.INFO);this.emitEvent(t)}emitEvent(e){this.eventEmitter.emit(Pe,e)}createNotification(e,t,r,i=""){return this.id++,{id:this.id,type:e,message:i,data:t,severity:r}}};import{isBrowser as Jt}from"@100mslive/hms-video";var le=s=>Jt?`${s} ${document.title}`:s;var Mt=(s,e,t)=>{let r;t.getState(E)===T.Connected&&(r=mt(s,e,t)),t.subscribe(i=>{[T.Connected,T.Reconnecting].includes(i)?r||(r=mt(s,e,t)):r&&(Xt(e),r())},E)},mt=(s,e,t)=>{var o;let r=Yt(t,e),i=(o=s.getWebrtcInternals())==null?void 0:o.onStatsChange(a=>Qt(e,a,t));return()=>{r(),i&&i()}},Yt=(s,e)=>{let t,r,i;return s.getState($)?e.namedSetState(o=>{o.localPeer.id=s.getState($)},"localpeer-id"):t=s.subscribe(o=>{o&&e.namedSetState(a=>{a.localPeer.id=o},"localpeer-id")},$),s.getState(x)?e.namedSetState(o=>{o.localPeer.videoTrack=s.getState(x)},"localpeer-videotrack-id"):r=s.subscribe(o=>{o&&e.namedSetState(a=>{a.localPeer.videoTrack=o},"localpeer-videotrack-id")},x),s.getState(C)?e.namedSetState(o=>{o.localPeer.videoTrack=s.getState(C)},"localpeer-audiotrack-id"):i=s.subscribe(o=>{o&&e.namedSetState(a=>{a.localPeer.videoTrack=o},"localpeer-audiotrack-id")},C),()=>{t==null||t(),r==null||r(),i==null||i()}},Qt=(s,e,t)=>{let r=t.getState(H);s.namedSetState(i=>{let o={},a=Object.keys(r);for(let P of a){let q=e.getTrackStats(P);q&&(o[P]=q)}de(i.trackStats,o);let u={[t.getState($)]:e.getLocalPeerStats()};de(i.peerStats,u)},"webrtc-stats")},Xt=(s,e="resetState")=>{s.namedSetState(t=>{Object.assign(t,re())},e)};var Se=class{constructor(e,t){this.hmsStore=e;this.sdk=t;this.store=O.createNewHMSStore(le("HMSStatsStore"),re),this.getState=this.store.getState,this.subscribe=this.store.subscribe,this.getPublishPeerConnection=()=>new Promise(r=>{var i,o;this.hmsStore.getState(E)==="Connected"?r((o=(i=this.sdk)==null?void 0:i.getWebrtcInternals())==null?void 0:o.getPublishPeerConnection()):this.hmsStore.subscribe(a=>{var n,u;a==="Connected"&&r((u=(n=this.sdk)==null?void 0:n.getWebrtcInternals())==null?void 0:u.getPublishPeerConnection())},E)}),this.getSubscribePeerConnection=()=>new Promise(r=>{var i,o;this.hmsStore.getState(E)==="Connected"?r((o=(i=this.sdk)==null?void 0:i.getWebrtcInternals())==null?void 0:o.getSubscribePeerConnection()):this.hmsStore.subscribe(a=>{var n,u;a==="Connected"&&r((u=(n=this.sdk)==null?void 0:n.getWebrtcInternals())==null?void 0:u.getSubscribePeerConnection())},E)}),!!this.sdk&&Mt(this.sdk,this.store,this.hmsStore)}};import{createSelector as h}from"reselect";var zt=s=>s.localPeer.id,Zt=s=>s.localPeer.audioTrack,es=s=>s.localPeer.videoTrack,ts=(s,e)=>e,ss=(s,e)=>e,Ie=s=>s.trackStats,gt=s=>s.peerStats,V=h([gt,zt],(s,e)=>s[e]),rs=h(V,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.packetsLost}),is=h(V,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.jitter}),os=h(V,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bitrate}),as=h(V,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bitrate}),ns=h(V,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.availableOutgoingBitrate}),cs=h(V,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.availableIncomingBitrate}),ls=h(V,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bytesSent}),Ss=h(V,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bytesReceived}),ds=h([gt,ts],(s,e)=>e?s[e]:void 0),J=h([Ie,ss],(s,e)=>e?s[e]:void 0),us=d(ds),ps=d(J),Ms=d(h(J,s=>s==null?void 0:s.bitrate)),ms=d(h(J,s=>s==null?void 0:s.bytesReceived)),gs=d(h(J,s=>s==null?void 0:s.framesPerSecond)),hs=d(h(J,s=>s==null?void 0:s.jitter)),Ts=d(h(J,s=>s==null?void 0:s.packetsLost)),ve=h([Ie,Zt],(s,e)=>e?s[e]:void 0),ee=h([Ie,es],(s,e)=>e?s[e]:void 0),Hs=h(ve,s=>s==null?void 0:s.bitrate),ys=h(ee,s=>s==null?void 0:s.bitrate),fs=h(ve,s=>s==null?void 0:s.bytesSent),ks=h(ee,s=>s==null?void 0:s.bytesSent),Ps=h(ee,s=>s==null?void 0:s.framesPerSecond),Rs=h(ee,s=>s==null?void 0:s.qualityLimitationReason),Is={localPeerStats:V,packetsLost:rs,jitter:is,publishBitrate:os,subscribeBitrate:as,availablePublishBitrate:ns,availableSubscribeBitrate:cs,totalBytesSent:ls,totalBytesReceived:Ss,peerStatsByID:us,trackStatsByID:ps,bitrateByTrackID:Ms,bytesReceivedByTrackID:ms,framerateByTrackID:gs,jitterByTrackID:hs,packetsLostByTrackID:Ts,localAudioTrackStats:ve,localVideoTrackStats:ee,localAudioTrackBitrate:Hs,localVideoTrackBitrate:ys,localAudioTrackBytesSent:fs,localVideoTrackBytesSent:ks,localVideoTrackFramerate:Ps,localVideoTrackQualityLimitationReason:Rs};var O=class{constructor(e,t,r){this.getStats=()=>(this.stats||(this.stats=new Se(this.store,this.sdk)),this.stats);e?this.store=e:this.store=O.createNewHMSStore(le("HMSStore"),se),r?this.notifications=r:this.notifications=new Re(this.store),t?this.actions=t:(this.sdk=new Es,this.actions=new ke(this.store,this.sdk,this.notifications)),this.initialTriggerOnSubscribe=!1,As&&(window.__hms=this)}triggerOnSubscribe(){this.initialTriggerOnSubscribe||(O.makeStoreTriggerOnSubscribe(this.store),this.initialTriggerOnSubscribe=!0)}getStore(){return this.store}getHMSActions(){return this.actions}getActions(){return this.actions}getNotifications(){return{onNotification:this.notifications.onNotification}}static createNewHMSStore(e,t){let r=Ds(()=>t()),i=r.setState;r.setState=n=>{let u=typeof n=="function"?vs(n):n;i(u)};let o=r.getState;r.getState=n=>{if(n){let u=n.name||"byIDSelector";window.selectorsCount||(window.selectorsCount={}),window.selectorsCount[u]=(window.selectorsCount[u]||0)+1;let P=performance.now(),q=n(o()),y=performance.now()-P;return y>1&&(window.expensiveSelectors=window.expensiveSelectors||new Map,window.expensiveSelectors.set(u,y)),q}return o()},O.compareWithShallowCheckInSubscribe(r);let a=O.setUpDevtools(r,e);return W(w({},r),{namedSetState:a})}static makeStoreTriggerOnSubscribe(e){let t=e.subscribe;e.subscribe=(r,i,o)=>(r(e.getState(i),void 0),t(r,i,o))}static compareWithShallowCheckInSubscribe(e){let t=e.subscribe;e.subscribe=(r,i,o)=>(i||(i=a=>a),o=o||bs,t(r,i,o))}static setUpDevtools(e,t){let r;try{r=window.__REDUX_DEVTOOLS_EXTENSION__||window.top.__REDUX_DEVTOOLS_EXTENSION__}catch(a){}if(!r)return a=>{e.setState(a)};let i=r.connect(O.devtoolsOptions(t));i.prefix=t?`${t} > `:"";let o=e.setState;return e.setState=a=>{o(a),i.send(`${i.prefix}setState`,e.getState())},i.subscribe(O.devtoolsSubscribe(i,e,o)),i.send("setUpStore",e.getState()),(a,n)=>{o(a);let u=n||`${i.prefix}action`;i.send(u,e.getState())}}static devtoolsOptions(e){return{name:e,actionsBlacklist:["audioLevel","playlistProgress"]}}static devtoolsSubscribe(e,t,r){return i=>{var o,a,n,u;if(i.type==="DISPATCH"&&i.state)["JUMP_TO_ACTION","JUMP_TO_STATE"].includes(i.payload.type)?r(JSON.parse(i.state)):t.setState(JSON.parse(i.state));else if(i.type==="DISPATCH"&&((o=i.payload)==null?void 0:o.type)==="COMMIT")e.init(t.getState());else if(i.type==="DISPATCH"&&((a=i.payload)==null?void 0:a.type)==="IMPORT_STATE"){let P=(n=i.payload.nextLiftedState)==null?void 0:n.actionsById;(((u=i.payload.nextLiftedState)==null?void 0:u.computedStates)||[]).forEach(({state:y},N)=>{let Y=P[N]||`${e.prefix}setState`;N===0?e.init(y):(r(y),e.send(Y,t.getState()))})}}}};export{kt as HMSAudioPluginType,f as HMSLogLevel,Ae as HMSMessageType,R as HMSNotificationSeverity,m as HMSNotificationTypes,p as HMSPlaylistType,O as HMSReactiveStore,T as HMSRoomState,Se as HMSStats,Pt as HMSVideoPluginType,re as createDefaultStatsStore,se as createDefaultStoreState,Rt as parsedUserAgent,Ze as selectAudioPlaylist,wi as selectAudioPlaylistTrackByPeerID,wt as selectAudioTrackByPeerID,at as selectAudioTrackVolume,qi as selectAudioVolumeByPeerID,xi as selectAuxiliaryAudioByPeerID,Ai as selectAuxiliaryTracksByPeerID,ni as selectAvailableRoleNames,_t as selectBroadcastMessages,Wi as selectBroadcastMessagesUnreadCount,Ei as selectCameraStreamByPeerID,ii as selectDegradedTracks,Jr as selectDevices,po as selectDidIJoinWithin,Xr as selectDominantSpeaker,di as selectHLSState,oe as selectHMSMessages,qe as selectHMSMessagesCount,Is as selectHMSStats,ro as selectIsAllowedToPublish,ci as selectIsAllowedToSubscribe,ot as selectIsAudioLocallyMuted,At as selectIsConnectedToRoom,ai as selectIsInPreview,zr as selectIsLocalAudioEnabled,lo as selectIsLocalAudioPluginPresent,he as selectIsLocalScreenShared,Be as selectIsLocalVideoDisplayEnabled,ge as selectIsLocalVideoEnabled,co as selectIsLocalVideoPluginPresent,Vi as selectIsLocallyMutedByPeerID,_i as selectIsPeerAudioEnabled,Ki as selectIsPeerVideoEnabled,Bi as selectIsScreenShareLocallyMutedByPeerID,Zr as selectIsSomeoneScreenSharing,C as selectLocalAudioTrackID,Ke as selectLocalMediaSettings,L as selectLocalPeer,$ as selectLocalPeerID,ae as selectLocalPeerRole,Ve as selectLocalTrackIDs,x as selectLocalVideoTrackID,_e as selectMessageIDsInOrder,Fi as selectMessagesByPeerID,Gi as selectMessagesByRole,Ue as selectMessagesMap,Yi as selectMessagesUnreadCountByPeerID,Ji as selectMessagesUnreadCountByRole,Li as selectPeerAudioByID,So as selectPeerByCondition,_ as selectPeerByID,Yr as selectPeerCount,Xi as selectPeerMetadata,bi as selectPeerNameByID,xt as selectPeerScreenSharing,ei as selectPeerSharingAudio,ri as selectPeerSharingAudioPlaylist,si as selectPeerSharingVideoPlaylist,G as selectPeers,uo as selectPeersByCondition,Qi as selectPeersByRole,b as selectPeersMap,ti as selectPeersScreenSharing,to as selectPeersWithAudioStatus,$e as selectPermissions,Si as selectRTMPState,li as selectRecordingState,Qr as selectRemotePeers,no as selectRoleByRoleName,so as selectRoleChangeRequest,K as selectRolesMap,v as selectRoom,Gr as selectRoomID,pi as selectRoomStartTime,je as selectRoomStarted,E as selectRoomState,it as selectScreenShareAudioByPeerID,Ui as selectScreenShareByPeerID,rt as selectScreenSharesByPeerId,ji as selectScreenshareAudioVolumeByPeerID,ui as selectSessionId,$i as selectSimulcastLayerByTrack,Et as selectSpeakers,Ci as selectTrackAudioByID,ne as selectTrackByID,H as selectTracksMap,oi as selectUnreadHMSMessagesCount,et as selectVideoPlaylist,Ni as selectVideoPlaylistAudioTrackByPeerID,Oi as selectVideoPlaylistVideoTrackByPeerID,Nt as selectVideoTrackByPeerID};
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.2.91-alpha.
|
|
2
|
+
"version": "0.2.91-alpha.2",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"main": "dist/index.cjs.js",
|
|
5
5
|
"module": "dist/index.js",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"author": "100ms",
|
|
34
34
|
"sideEffects": false,
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@100mslive/hms-video": "0.1.45-alpha.
|
|
36
|
+
"@100mslive/hms-video": "0.1.45-alpha.2",
|
|
37
37
|
"eventemitter2": "^6.4.5",
|
|
38
38
|
"immer": "^9.0.6",
|
|
39
39
|
"reselect": "4.0.0",
|
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
"url": "https://github.com/100mslive/hms-video-store/issues"
|
|
59
59
|
},
|
|
60
60
|
"homepage": "https://github.com/100mslive/hms-video-store#readme",
|
|
61
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "b4116d3219773d0ef33e3a4d4401f66415097e04"
|
|
62
62
|
}
|