@100mslive/hms-video-store 0.2.97 → 0.2.98

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs.js CHANGED
@@ -1 +1 @@
1
- var xt=Object.create;var Y=Object.defineProperty,Ot=Object.defineProperties,wt=Object.getOwnPropertyDescriptor,Nt=Object.getOwnPropertyDescriptors,Ut=Object.getOwnPropertyNames,Je=Object.getOwnPropertySymbols,_t=Object.getPrototypeOf,Ye=Object.prototype.hasOwnProperty,Kt=Object.prototype.propertyIsEnumerable;var Xe=(s,e,t)=>e in s?Y(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,N=(s,e)=>{for(var t in e||(e={}))Ye.call(e,t)&&Xe(s,t,e[t]);if(Je)for(var t of Je(e))Kt.call(e,t)&&Xe(s,t,e[t]);return s},W=(s,e)=>Ot(s,Nt(e)),ze=s=>Y(s,"__esModule",{value:!0});var Vt=(s,e)=>{ze(s);for(var t in e)Y(s,t,{get:e[t],enumerable:!0})},Bt=(s,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ut(e))!Ye.call(s,i)&&i!=="default"&&Y(s,i,{get:()=>e[i],enumerable:!(t=wt(e,i))||t.enumerable});return s},D=s=>Bt(ze(Y(s!=null?xt(_t(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((i,o)=>{var r=p=>{try{c(t.next(p))}catch(R){o(R)}},n=p=>{try{c(t.throw(p))}catch(R){o(R)}},c=p=>p.done?i(p.value):Promise.resolve(p.value).then(r,n);c((t=t.apply(s,e)).next())});Vt(exports,{HMSAudioPluginType:()=>a.HMSAudioPluginType,HMSLogLevel:()=>a.HMSLogLevel,HMSMessageType:()=>Te,HMSNotificationSeverity:()=>P,HMSNotificationTypes:()=>h,HMSPlaylistType:()=>M,HMSReactiveStore:()=>x,HMSRoomState:()=>T,HMSStats:()=>ae,HMSVideoPluginType:()=>a.HMSVideoPluginType,createDefaultStatsStore:()=>z,createDefaultStoreState:()=>X,parsedUserAgent:()=>a.parsedUserAgent,selectAppData:()=>hs,selectAudioPlaylist:()=>we,selectAudioPlaylistTrackByPeerID:()=>vs,selectAudioTrackByPeerID:()=>mt,selectAudioTrackVolume:()=>qe,selectAudioVolumeByPeerID:()=>xs,selectAuxiliaryAudioByPeerID:()=>Rs,selectAuxiliaryTracksByPeerID:()=>Hs,selectAvailableRoleNames:()=>as,selectBroadcastMessages:()=>Ht,selectBroadcastMessagesUnreadCount:()=>_s,selectCameraStreamByPeerID:()=>Ts,selectConnectionQualities:()=>Wt,selectConnectionQualityByPeerID:()=>Ps,selectDegradedTracks:()=>os,selectDevices:()=>Ft,selectDidIJoinWithin:()=>si,selectDominantSpeaker:()=>Xt,selectFullAppData:()=>ve,selectHLSState:()=>ds,selectHMSMessages:()=>se,selectHMSMessagesCount:()=>Ae,selectHMSStats:()=>Et,selectIsAllowedToPublish:()=>Gs,selectIsAllowedToSubscribe:()=>cs,selectIsAudioLocallyMuted:()=>Be,selectIsConnectedToRoom:()=>ot,selectIsInPreview:()=>ns,selectIsLocalAudioEnabled:()=>zt,selectIsLocalAudioPluginPresent:()=>Zs,selectIsLocalScreenShared:()=>ue,selectIsLocalVideoDisplayEnabled:()=>Ee,selectIsLocalVideoEnabled:()=>de,selectIsLocalVideoPluginPresent:()=>zs,selectIsLocallyMutedByPeerID:()=>Cs,selectIsPeerAudioEnabled:()=>Es,selectIsPeerVideoEnabled:()=>As,selectIsScreenShareLocallyMutedByPeerID:()=>Ls,selectIsSomeoneScreenSharing:()=>Zt,selectLocalAudioTrackID:()=>A,selectLocalMediaSettings:()=>Ie,selectLocalPeer:()=>L,selectLocalPeerID:()=>q,selectLocalPeerRole:()=>ie,selectLocalTrackIDs:()=>be,selectLocalVideoTrackID:()=>C,selectMessageIDsInOrder:()=>De,selectMessagesByPeerID:()=>Ks,selectMessagesByRole:()=>Vs,selectMessagesMap:()=>Re,selectMessagesUnreadCountByPeerID:()=>qs,selectMessagesUnreadCountByRole:()=>Bs,selectPeerAudioByID:()=>ks,selectPeerByCondition:()=>ei,selectPeerByID:()=>O,selectPeerCount:()=>Qt,selectPeerMetadata:()=>$s,selectPeerNameByID:()=>gs,selectPeerScreenSharing:()=>rt,selectPeerSharingAudio:()=>es,selectPeerSharingAudioPlaylist:()=>is,selectPeerSharingVideoPlaylist:()=>ss,selectPeers:()=>F,selectPeersByCondition:()=>ti,selectPeersByRole:()=>js,selectPeersMap:()=>v,selectPeersScreenSharing:()=>ts,selectPeersWithAudioStatus:()=>Fs,selectPermissions:()=>Le,selectRTMPState:()=>Ss,selectRecordingState:()=>ls,selectRemotePeers:()=>Yt,selectRoleByRoleName:()=>Js,selectRoleChangeRequest:()=>Qs,selectRolesMap:()=>K,selectRoom:()=>I,selectRoomID:()=>$t,selectRoomStartTime:()=>ps,selectRoomStarted:()=>Ce,selectRoomState:()=>b,selectScreenShareAudioByPeerID:()=>Ve,selectScreenShareByPeerID:()=>bs,selectScreenSharesByPeerId:()=>Ke,selectScreenshareAudioVolumeByPeerID:()=>Os,selectSessionId:()=>us,selectSimulcastLayerByTrack:()=>ws,selectSpeakers:()=>it,selectTrackAudioByID:()=>ys,selectTrackByID:()=>re,selectTracksMap:()=>y,selectUnreadHMSMessagesCount:()=>rs,selectVideoPlaylist:()=>Ne,selectVideoPlaylistAudioTrackByPeerID:()=>Is,selectVideoPlaylistVideoTrackByPeerID:()=>Ds,selectVideoTrackByPeerID:()=>Mt});var At=D(require("immer")),Ct=D(require("zustand/vanilla")),Lt=D(require("zustand/shallow")),ge=D(require("@100mslive/hms-video"));var T;(function(c){c.Disconnected="Disconnected",c.Preview="Preview",c.Connecting="Connecting",c.Connected="Connected",c.Reconnecting="Reconnecting",c.Disconnecting="Disconnecting",c.Failed="Failed"})(T||(T={}));var X=()=>({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:{},connectionQualities:{},settings:{audioInputDeviceId:"",audioOutputDeviceId:"",videoInputDeviceId:""},devices:{audioInput:[],audioOutput:[],videoInput:[]},roles:{},appData:{},roleChangeRequests:[],errors:[]}),z=()=>({peerStats:{},trackStats:{},localPeer:{id:""}});var Te;(function(e){e.CHAT="chat"})(Te||(Te={}));var P;(function(i){i.INFO="info",i.ERROR="error",i.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 a=D(require("@100mslive/hms-video"));var _=D(require("@100mslive/hms-video"));var Ze=(s,e)=>{let t=Pe(Object.keys(s),Object.keys(e));for(let i of t){let o=s[i],r=e[i];ye(o,r)?(U(o.auxiliaryTracks,r.auxiliaryTracks)&&(r.auxiliaryTracks=o.auxiliaryTracks),Object.assign(o,r)):fe(o,r)?delete s[i]:ke(o,r)&&(s[i]=r)}},et=(s,e)=>{let t=Pe(Object.keys(s),Object.keys(e));for(let i of t){let o=s[i],r=e[i];ye(o,r)?(qt(o,r),Object.assign(o,r)):fe(o,r)?delete s[i]:ke(o,r)&&(s[i]=r)}},He=(s,e)=>{let t=Pe(Object.keys(s),Object.keys(e));for(let i of t){let o=s[i],r=e[i];ye(o,r)?Object.assign(o,r):fe(o,r)?delete s[i]:ke(o,r)&&(s[i]=r)}},qt=(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 i of s)t.add(i);for(let i of e)t.add(i);return Array.from(t)};var g=class{static convertPeer(e){var t,i,o;return{id:e.peerId,name:e.name,roleName:(t=e.role)==null?void 0:t.name,isLocal:e.isLocal,videoTrack:(i=e.videoTrack)==null?void 0:i.trackId,audioTrack:(o=e.audioTrack)==null?void 0:o.trackId,auxiliaryTracks:e.auxiliaryTracks.map(r=>r.trackId),customerUserId:e.customerUserId,customerDescription:e.metadata,metadata:e.metadata,joinedAt:e.joinedAt}}static convertTrack(e,t){let i={id:e.trackId,source:e.source,type:e.type,enabled:e.enabled,displayEnabled:e.enabled,peerId:e.peerId||t};return this.enrichTrack(i,e),i}static enrichTrack(e,t){let i=t.getMediaTrackSettings();e.source==="screen"&&e.type==="video"&&(e.displaySurface=i.displaySurface),e.height=i.height,e.width=i.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 i;t instanceof _.HMSLocalVideoTrack||t instanceof _.HMSLocalAudioTrack?e.deviceID=t.settings.deviceId:e.deviceID=(i=t.getMediaTrackSettings())==null?void 0:i.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 r,n;let{recording:t,rtmp:i,hls:o}=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:(n=(r=e.localPeer)==null?void 0:r.peerId)!=null?n:"",hasWaitingRoom:e.hasWaitingRoom,shareableLink:e.shareableLink,recording:t,rtmp:i,hls:o,sessionId:e.sessionId,startedAt:e.startedAt,joinedAt:e.joinedAt,peerCount:e.peerCount}}static convertMessage(e){var t,i,o;return{sender:e.sender.peerId,senderName:e.sender.name,senderRole:(t=e.sender.role)==null?void 0:t.name,senderUserId:e.sender.customerUserId,recipientPeer:(i=e.recipientPeer)==null?void 0:i.peerId,recipientRoles:(o=e.recipientRoles)==null?void 0:o.map(r=>r.name),time:e.time,type:e.type,message:e.message}}static convertRoles(e){let t={};return e&&e.forEach(i=>{t[i.name]=i}),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),i=this.getConvertedPlaylistType(e,M.video);return{audio:t,video:i}}static convertPlaylistItem(e,t){let i=t.type,o=e.getCurrentSelection(i),r=e.isPlaying(i),n=t.url===(o==null?void 0:o.url);return W(N({},t),{type:t.type,selected:n,playing:n&&r})}static getConvertedPlaylistType(e,t){let i={},o=e.getCurrentSelection(t),r=e.getCurrentProgress(t),n=e.getVolume(t),c=e.getList(t),p=e.getCurrentIndex(t);return e.getList(t).forEach(R=>{i[R.id]=g.convertPlaylistItem(e,R)}),{list:i,selection:{id:o==null?void 0:o.id,hasPrevious:p>0,hasNext:p<c.length-1},progress:r,volume:n,currentTime:e.getCurrentTime(t),playbackRate:e.getPlaybackRate(t)}}static convertRecordingStreamingState(e,t,i){var o;return{recording:{browser:N({running:!1},e==null?void 0:e.browser),server:N({running:!1},e==null?void 0:e.server),hls:N({running:!1},e==null?void 0:e.hls)},rtmp:N({running:!1},t),hls:{variants:((o=i==null?void 0:i.variants)==null?void 0:o.map(r=>r))||[],running:!!(i==null?void 0:i.running),error:i==null?void 0:i.error}}}};var d=D(require("reselect"));function $(s,e,t=jt){let i,o;if(e)for(let r of e.auxiliaryTracks){let n=s[r];t(n)&&(o=Z(n)?n:o,i=ee(n)?n:i)}return{video:i,audio:o}}function Z(s){return s&&s.type==="audio"}function ee(s){return s&&s.type==="video"}function jt(s){return s&&s.source==="screen"}function Se(s){return s&&s.source==="audioplaylist"}function te(s){return s&&s.source==="videoplaylist"}function tt(s){return Boolean(s==null?void 0:s.degraded)}function Q(s,e){return e&&s.tracks[e]?s.tracks[e].enabled:!1}function st(s,e){return e&&s.tracks[e]?s.tracks[e].displayEnabled:!1}var I=s=>s.room,$t=(0,d.createSelector)(I,s=>s.id),v=s=>s.peers,Re=s=>s.messages.byID,De=s=>s.messages.allIDs,y=s=>s.tracks,Ie=s=>s.settings,ve=s=>s.appData,Ft=s=>s.devices,it=s=>s.speakers,Wt=s=>s.connectionQualities,ot=(0,d.createSelector)([I],s=>s&&s.isConnected),Qt=(0,d.createSelector)([ot,I],(s,e)=>s?e.peerCount||e.peers.length:Math.max(e.peerCount||e.peers.length-1,0)),F=(0,d.createSelector)([I,v],(s,e)=>s.peers.map(t=>e[t])),Gt=(0,d.createSelector)(y,s=>Object.values(s)),L=(0,d.createSelector)(I,v,(s,e)=>e[s.localPeer]),q=(0,d.createSelector)(I,s=>s.localPeer),A=(0,d.createSelector)(L,s=>s==null?void 0:s.audioTrack),C=(0,d.createSelector)(L,s=>s==null?void 0:s.videoTrack),Jt=(0,d.createSelector)(L,s=>s==null?void 0:s.auxiliaryTracks),be=(0,d.createSelector)([A,C,Jt],(s,e,t)=>{let i=[...t];return s&&i.unshift(s),e&&i.unshift(e),i}),Yt=(0,d.createSelector)(F,s=>s.filter(e=>!e.isLocal)),Xt=(0,d.createSelector)(v,it,(s,e)=>{let t=Object.entries(e).sort((i,o)=>{var c,p;let r=((c=i[1])==null?void 0:c.audioLevel)||0;return(((p=o[1])==null?void 0:p.audioLevel)||0)>r?1:-1});if(t.length>0&&t[0][1].audioLevel&&t[0][1].audioLevel>0){let i=t[0][1].peerID;if(i in s)return s[i]}return null}),zt=s=>{let e=L(s);return Q(s,e==null?void 0:e.audioTrack)},de=s=>{let e=L(s);return Q(s,e==null?void 0:e.videoTrack)},Ee=s=>{let e=L(s);return st(s,e==null?void 0:e.videoTrack)},ue=(0,d.createSelector)(L,y,(s,e)=>{let{video:t,audio:i}=$(e,s);return!!(t||i)}),rt=(0,d.createSelector)(v,y,(s,e)=>{let t;for(let i in s){let o=s[i],{video:r,audio:n}=$(e,o);if(r)return o;n&&!t&&(t=o)}return t}),Zt=(0,d.createSelector)(rt,s=>!!s),es=(0,d.createSelector)(v,y,(s,e)=>{for(let t in s){let i=s[t],{audio:o,video:r}=$(e,i);if(!r&&!!o)return i}}),ts=(0,d.createSelector)(v,y,(s,e)=>{let t=[],i=[];for(let o in s){let r=s[o],{video:n,audio:c}=$(e,r);n?t.push(r):c&&i.push(r)}return t.concat(i)}),ss=(0,d.createSelector)(v,y,(s,e)=>{for(let t in e){let i=e[t];if(te(i)&&ee(i)&&i.peerId)return s[i.peerId]}}),is=(0,d.createSelector)(v,y,(s,e)=>{for(let t in e){let i=e[t];if(Se(i)&&i.peerId)return s[i.peerId]}}),os=(0,d.createSelector)(Gt,s=>s.filter(tt)),Ae=(0,d.createSelector)(De,s=>s.length),rs=(0,d.createSelector)(Re,s=>Object.values(s).filter(e=>!e.read).length),se=(0,d.createSelector)(De,Re,(s,e)=>{let t=[];return s.forEach(i=>{t.push(e[i])}),t}),b=(0,d.createSelector)([I],s=>s&&s.roomState),ns=(0,d.createSelector)(b,s=>s===T.Preview),Ce=(0,d.createSelector)(I,s=>s.roomState!==T.Disconnected),K=s=>s.roles,as=(0,d.createSelector)([K],s=>Object.keys(s)),ie=(0,d.createSelector)([L,K],(s,e)=>(s==null?void 0:s.roleName)?e[s.roleName]:null),cs=(0,d.createSelector)([ie],s=>{var e;return((e=s==null?void 0:s.subscribeParams)==null?void 0:e.subscribeToRoles)?s.subscribeParams.subscribeToRoles.length>0:!1}),Le=(0,d.createSelector)(ie,s=>s==null?void 0:s.permissions),ls=(0,d.createSelector)(I,s=>s.recording),Ss=(0,d.createSelector)(I,s=>s.rtmp),ds=(0,d.createSelector)(I,s=>s.hls),us=(0,d.createSelector)(I,s=>s.sessionId),ps=(0,d.createSelector)(I,s=>s.startedAt);var xe=D(require("reselect"));var nt=(s=M.audio)=>e=>e.playlist[s].list,Oe=(s=M.audio)=>e=>e.playlist[s].selection,at=(s=M.audio)=>e=>e.playlist[s].progress,ct=(s=M.audio)=>e=>e.playlist[s].currentTime,lt=(s=M.audio)=>e=>e.playlist[s].playbackRate,St=(s=M.audio)=>e=>e.playlist[s].volume,dt=(s=M.audio)=>(0,xe.createSelector)(nt(s),e=>Object.values(e)),ut=(s=M.audio)=>(0,xe.createSelector)(nt(s),Oe(s),(e,t)=>{if(!!t.id)return e[t.id]}),we={selection:Oe(M.audio),progress:at(M.audio),currentTime:ct(M.audio),playbackRate:lt(M.audio),volume:St(M.audio),list:dt(M.audio),selectedItem:ut(M.audio)},Ne={selection:Oe(M.video),progress:at(M.video),currentTime:ct(M.video),playbackRate:lt(M.video),volume:St(M.video),list:dt(M.video),selectedItem:ut(M.video)};var f=D(require("reselect"));function u(s){return e=>t=>s(t,e)}var oe="HMS-Store:",m=class{static v(e,...t){this.log(a.HMSLogLevel.VERBOSE,e,...t)}static d(...e){this.log(a.HMSLogLevel.DEBUG,...e)}static i(...e){this.log(a.HMSLogLevel.INFO,...e)}static w(...e){this.log(a.HMSLogLevel.WARN,...e)}static e(...e){this.log(a.HMSLogLevel.ERROR,...e)}static time(e){this.log(a.HMSLogLevel.TIME,"[HMSPerformanceTiming]",e)}static timeEnd(e){this.log(a.HMSLogLevel.TIMEEND,"[HMSPerformanceTiming]",e,e)}static cleanUp(){performance.clearMarks(),performance.clearMeasures()}static log(e,...t){if(!(this.level.valueOf()>e.valueOf()))switch(e){case a.HMSLogLevel.VERBOSE:{console.log(oe,...t);break}case a.HMSLogLevel.DEBUG:{console.debug(oe,...t);break}case a.HMSLogLevel.INFO:{console.info(oe,...t);break}case a.HMSLogLevel.WARN:{console.warn(oe,...t);break}case a.HMSLogLevel.ERROR:{console.error(oe,...t);break}case a.HMSLogLevel.TIME:{performance.mark(t[1]);break}case a.HMSLogLevel.TIMEEND:{let i=t[0],o=t[1];try{let r=performance.measure(o,o);this.log(a.HMSLogLevel.DEBUG,i,o,r==null?void 0:r.duration),performance.clearMarks(o),performance.clearMeasures(o)}catch(r){this.log(a.HMSLogLevel.DEBUG,i,o,r)}break}}}};m.level=a.HMSLogLevel.VERBOSE;var Ue=(s,e)=>e,Ms=(s,e)=>e,pt=(s,e)=>e,ms=(s,e)=>e,E=(0,f.createSelector)([v,Ue],(s,e)=>e?s[e]:null),_e=(0,f.createSelector)([y,Ms],(s,e)=>e?s[e]:null),O=u(E),hs=u((0,f.createSelector)([ve,ms],(s,e)=>e?s[e]:s)),gs=u((0,f.createSelector)(E,s=>s==null?void 0:s.name)),re=u(_e),Mt=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]}),Ts=Mt,Hs=u((s,e)=>{let t=E(s,e);return(t==null?void 0:t.auxiliaryTracks.map(i=>s.tracks[i]))||[]}),ht=(s,e)=>e?s.speakers[e]:null,ys=u((0,f.createSelector)(ht,s=>(s==null?void 0:s.audioLevel)||0)),fs=(s,e)=>{let t=mt(e)(s);return ht(s,t==null?void 0:t.id)},ks=u((0,f.createSelector)(fs,s=>(s==null?void 0:s.audioLevel)||0)),Ps=u((s,e)=>{if(e)return s.connectionQualities[e]}),Rs=u((s,e)=>{let t=E(s,e);if(t){let i=t==null?void 0:t.auxiliaryTracks.find(o=>Z(s.tracks[o]));return i?s.tracks[i]:void 0}}),Ds=u((0,f.createSelector)(y,E,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(i=>{let o=s[i];return te(o)&&ee(o)});return t?s[t]:void 0})),Is=u((0,f.createSelector)(y,E,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(i=>{let o=s[i];return te(o)&&Z(o)});return t?s[t]:void 0})),vs=u((0,f.createSelector)(y,E,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(i=>{let o=s[i];return Se(o)&&Z(o)});return t?s[t]:void 0})),Ke=u((0,f.createSelector)(y,E,(s,e)=>$(s,e))),bs=s=>(0,f.createSelector)(Ke(s),e=>e.video),Ve=s=>(0,f.createSelector)(Ke(s),e=>e.audio),Es=u((s,e)=>{let t=E(s,e);return Q(s,t==null?void 0:t.audioTrack)}),As=u((s,e)=>{let t=E(s,e);return Q(s,t==null?void 0:t.videoTrack)}),Be=u((s,e)=>{if(e&&s.tracks[e])return s.tracks[e].volume===0}),Cs=u((s,e)=>{let t=E(s,e);return Be(t==null?void 0:t.audioTrack)(s)}),Ls=u((s,e)=>{let t=Ve(e)(s);return Be(t==null?void 0:t.id)(s)}),qe=u((s,e)=>{let t=_e(s,e);if(t){if(t.type!=="audio"){m.w("Please pass audio track here");return}return t.volume}}),xs=u((s,e)=>{let t=E(s,e);return qe(t==null?void 0:t.audioTrack)(s)}),Os=u((s,e)=>{let t=Ve(e)(s);return qe(t==null?void 0:t.id)(s)}),ws=u((s,e)=>{let t=_e(s,e);if(t){if(t.type!=="video"){m.w("Please pass video track here");return}return t.layer}}),gt=(0,f.createSelector)([se,q,Ue],(s,e,t)=>{if(!!t)return s.filter(i=>{var o;return!i.recipientPeer&&!((o=i.recipientRoles)==null?void 0:o.length)||![e,t].includes(i.sender)?!1:[e,t].includes(i.recipientPeer)})}),Tt=(0,f.createSelector)([se,pt],(s,e)=>{if(!!e)return s.filter(t=>{var i,o;return((i=t.recipientRoles)==null?void 0:i.length)?(o=t.recipientRoles)==null?void 0:o.includes(e):!1})}),Ht=(0,f.createSelector)(se,s=>s.filter(e=>{var t;return!e.recipientPeer&&!((t=e.recipientRoles)==null?void 0:t.length)})),Ns=(0,f.createSelector)([Tt,pt],s=>s?s.filter(e=>!e.read).length:0),Us=(0,f.createSelector)([gt,Ue],s=>s?s.filter(e=>!e.read).length:0),_s=(0,f.createSelector)(Ht,s=>s.filter(e=>!e.read).length),Ks=u(gt),Vs=u(Tt),Bs=u(Ns),qs=u(Us),js=s=>(0,f.createSelector)([F],e=>e.filter(t=>t.roleName===s)),$s=s=>(0,f.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=D(require("reselect")),Fs=(0,pe.createSelector)([v,y],(s,e)=>Object.values(s).map(i=>{var o;return{peer:i,isAudioEnabled:i.audioTrack?(o=e[i.audioTrack])==null?void 0:o.enabled:!1}})),Ws=s=>s.roleChangeRequests[0]||null,Qs=(0,pe.createSelector)([Ws,v,K],(s,e,t)=>s?{requestedBy:s.requestedBy?e[s.requestedBy]:void 0,role:t[s.roleName],token:s.token}:null),Gs=(0,pe.createSelector)([ie],s=>{var o;let e=!1,t=!1,i=!1;return((o=s==null?void 0:s.publishParams)==null?void 0:o.allowed)&&(e=s.publishParams.allowed.includes("video"),t=s.publishParams.allowed.includes("audio"),i=s.publishParams.allowed.includes("screen")),{video:e,audio:t,screen:i}});var V=D(require("reselect"));var Js=s=>(0,V.createSelector)([K],e=>e[s]),Ys=(0,V.createSelector)([C,y],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),Xs=(0,V.createSelector)([A,y],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),zs=s=>(0,V.createSelector)([Ys],e=>e.includes(s)),Zs=s=>(0,V.createSelector)([Xs],e=>e.includes(s)),ei=s=>(0,V.createSelector)(F,e=>e.find(s)),ti=s=>(0,V.createSelector)(F,e=>e.filter(s)),si=s=>(0,V.createSelector)(I,e=>e.joinedAt&&Date.now()-e.joinedAt.getTime()<=s);var ne=D(require("@100mslive/hms-video"));var Me=D(require("@100mslive/hms-video"));function yt(s){return s instanceof Me.HMSRemoteAudioTrack||s instanceof Me.HMSRemoteVideoTrack}var me=class{constructor(e,t,i,o){this.playlistManager=e;this.syncPlaylistState=i;this.store=o;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?we: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 ft={[a.HMSPeerUpdate.PEER_JOINED]:h.PEER_JOINED,[a.HMSPeerUpdate.PEER_LEFT]:h.PEER_LEFT,[a.HMSPeerUpdate.ROLE_UPDATED]:h.ROLE_UPDATED,[a.HMSPeerUpdate.AUDIO_TOGGLED]:"PEER_AUDIO_UPDATED",[a.HMSPeerUpdate.VIDEO_TOGGLED]:"PEER_VIDEO_UPDATED",[a.HMSPeerUpdate.NAME_UPDATED]:h.NAME_UPDATED,[a.HMSPeerUpdate.METADATA_UPDATED]:h.METADATA_UPDATED},kt={[a.HMSTrackUpdate.TRACK_ADDED]:h.TRACK_ADDED,[a.HMSTrackUpdate.TRACK_REMOVED]:h.TRACK_REMOVED,[a.HMSTrackUpdate.TRACK_MUTED]:h.TRACK_MUTED,[a.HMSTrackUpdate.TRACK_UNMUTED]:h.TRACK_UNMUTED,[a.HMSTrackUpdate.TRACK_DEGRADED]:h.TRACK_DEGRADED,[a.HMSTrackUpdate.TRACK_RESTORED]:h.TRACK_RESTORED},Pt={[a.HMSPeerUpdate.PEER_JOINED]:"peerJoined",[a.HMSPeerUpdate.PEER_LEFT]:"peerLeft",[a.HMSPeerUpdate.NAME_UPDATED]:"peerNameUpdated",[a.HMSPeerUpdate.ROLE_UPDATED]:"peerRoleUpdated",[a.HMSPeerUpdate.METADATA_UPDATED]:"peerMetadataUpdated"};var je=class{constructor(e,t,i){this.hmsSDKTracks={};this.hmsSDKPeers={};this.isRoomJoinCalled=!1;this.ignoredMessageTypes=[];this.setProgress=({type:e,progress:t})=>{this.setState(i=>{i.playlist[e].progress=t,i.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 i=this.store.getState(O(t.peerId)),o=Pt[e];this.syncRoomState(o),i||(i=this.store.getState(O(t.peerId))),this.hmsNotifications.sendPeerUpdate(e,i)};this.setState=(e,t)=>this.store.namedSetState(e,t);this.store=e,this.sdk=t,this.hmsNotifications=i}refreshDevices(){return l(this,null,function*(){yield this.sdk.refreshDevices()})}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(i=>{i.settings.audioOutputDeviceId=e},"setAudioOutputDevice")}setPreferredLayer(e,t){let i=this.hmsSDKTracks[e];i?i instanceof ne.HMSRemoteVideoTrack?(i.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===T.Preview||t===T.Connecting){this.logPossibleInconsistency("attempting to call preview while room is in preview/connecting");return}try{this.setState(i=>{i.room.roomState=T.Connecting},"connecting"),yield this.sdkPreviewWithListeners(e)}catch(i){throw m.e("Cannot show preview. Failed to connect to room - ",i),i}})}join(e){if(this.isRoomJoinCalled){this.logPossibleInconsistency("room join is called again");return}try{this.isRoomJoinCalled=!0,this.setState(t=>{t.room.roomState=T.Connecting},"join"),this.sdkJoinWithListeners(e)}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(Ce)){this.logPossibleInconsistency("room leave is called when no room is connected");return}let t=this.store.getState(b);return this.setState(i=>{i.room.roomState=T.Disconnecting},"leaving"),this.sdk.leave().then(()=>{this.resetState("leave"),m.i("left room")}).catch(i=>{m.e("error in leaving room - ",i),this.setState(o=>{o.room.roomState=t},"revertLeave")})})}setScreenShareEnabled(e,t){return l(this,null,function*(){let i={audioOnly:!1,videoOnly:!1};typeof t=="object"?Object.assign(i,t):typeof t=="boolean"&&(i.audioOnly=t);try{e?yield this.startScreenShare(i):yield this.stopScreenShare()}catch(o){throw this.hmsNotifications.sendError(g.convertException(o)),o}})}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(C);t&&(yield this.setEnabledTrack(t,e))})}setEnabledTrack(e,t){return l(this,null,function*(){var r;if(((r=this.store.getState().tracks[e])==null?void 0:r.enabled)===t){this.logPossibleInconsistency(`local track[${e}] enabled state - ${t}`);return}this.setState(n=>{n.tracks[e]?n.tracks[e].displayEnabled=t:this.logPossibleInconsistency("track id not found for setEnabled")},"displayEnabled");try{yield this.setEnabledSDKTrack(e,t),this.syncRoomState("setEnabled")}catch(n){throw this.setState(c=>{c.tracks[e].displayEnabled=!t},"rollbackDisplayEnabled"),this.hmsNotifications.sendError(g.convertException(n)),n}let o=t?a.HMSTrackUpdate.TRACK_UNMUTED:a.HMSTrackUpdate.TRACK_MUTED;this.hmsNotifications.sendTrackUpdate(o,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(C);t&&(yield this.setSDKLocalVideoTrackSettings(t,e),this.syncRoomState("setVideoSettings"))})}sendMessage(e){this.sendBroadcastMessage(e)}sendBroadcastMessage(e,t){return l(this,null,function*(){let i=yield this.sdk.sendBroadcastMessage(e,t);this.updateMessageInStore(i,{message:e,type:t})})}sendGroupMessage(e,t,i){return l(this,null,function*(){let o=this.store.getState(K),r=t.map(c=>o[c]),n=yield this.sdk.sendGroupMessage(e,r,i);this.updateMessageInStore(n,{message:e,recipientRoles:t,type:i})})}sendDirectMessage(e,t,i){return l(this,null,function*(){let o=this.hmsSDKPeers[t],r=yield this.sdk.sendDirectMessage(e,o,i);this.updateMessageInStore(r,{message:e,recipientPeer:o.peerId,type:i})})}updateMessageInStore(e,t){if(!e)throw m.w("sendMessage","Failed to send message",t),Error(`sendMessage Failed - ${JSON.stringify(t)}`);let i=g.convertMessage(e);return i.read=!0,i.senderName="You",i.ignored=this.ignoredMessageTypes.includes(i.type),this.putMessageInStore(i),i}setMessageRead(e,t){this.setState(i=>{t?i.messages.byID[t]?i.messages.byID[t].read=e:this.logPossibleInconsistency("no message with id is found"):i.messages.allIDs.forEach(o=>{i.messages.byID[o].read=e})},"setMessageRead")}attachVideo(e,t){return l(this,null,function*(){if(this.localAndVideoUnmuting(e))return new Promise(i=>{let o=this.store.subscribe(r=>l(this,null,function*(){r&&(yield this.attachVideoInternal(e,t),o(),i())}),de)});yield this.attachVideoInternal(e,t)})}detachVideo(e,t){return l(this,null,function*(){let i=this.hmsSDKTracks[e];i&&i.type==="video"?(yield i.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")})}validateVideoPluginSupport(e){let t={};if(t.isSupported=!1,!e)return m.w("no plugin passed in for checking support"),t.errMsg="no plugin passed in for checking support",t;let i=this.store.getState(C);if(i){let o=this.hmsSDKTracks[i];o?t=o.validatePlugin(e):(m.w(`track ${i} not present, unable to validate plugin`),t.errMsg=`track ${i} not present, unable to validate plugin`)}return t}validateAudioPluginSupport(e){let t={};if(t.isSupported=!1,!e)return m.w('no plugin passed in for checking support"'),t.errMsg='no plugin passed in for checking support"',t;let i=this.store.getState(A);if(i){let o=this.hmsSDKTracks[i];o?t=o.validatePlugin(e):(m.w(`track ${i} not present, unable to validate plugin`),t.errMsg=`track ${i} 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,i=!1){return l(this,null,function*(){let o=this.hmsSDKPeers[e];if(!o){this.logPossibleInconsistency(`Unknown peer ID given ${e} for changerole`);return}yield this.sdk.changeRole(o,t,i)})}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 i={requestedBy:t,role:e.role,token:e.token};yield this.sdk.acceptChangeRole(i),this.removeRoleChangeRequest(e)})}initAppData(e){this.setState(t=>{t.appData=e},"initAppData")}setAppData(e,t,i){let o=(t==null?void 0:t.constructor.name)==="Object";this.setState(r=>{i&&o?Object.assign(r.appData[e],t):r.appData[e]=t},`setAppData-${e}`)}rejectChangeRole(e){this.removeRoleChangeRequest(e)}endRoom(e,t){return l(this,null,function*(){let i=this.store.getState(Le);if(!(i==null?void 0:i.endRoom)){m.w("You are not allowed to perform this action - endRoom");return}let o=this.store.getState(b);this.setState(r=>{r.room.roomState=T.Disconnecting},"endingRoom");try{yield this.sdk.endRoom(e,t),this.resetState("endRoom")}catch(r){m.e("error in ending room - ",r),this.setState(n=>{n.room.roomState=o},"revertEndRoom")}})}removePeer(e,t){return l(this,null,function*(){let i=this.hmsSDKPeers[e];if(i&&!i.isLocal)yield this.sdk.removePeer(i,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 i=this.hmsSDKTracks[e];i&&yt(i)?yield this.sdk.changeTrackState(i,t):this.logPossibleInconsistency(`No remote track with ID ${e} found for change track state`)}else Array.isArray(e)&&e.forEach(i=>this.setRemoteTrackEnabled(i,t))})}setRemoteTracksEnabled(e){return l(this,null,function*(){let t={enabled:e.enabled,type:e.type,source:e.source};if(e.roles){let i=this.store.getState(K);t.roles=e.roles.map(o=>i[o])}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 i of e)this.ignoredMessageTypes.includes(i)||this.ignoredMessageTypes.push(i)}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),onNetworkQuality:this.onNetworkQuality.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)}),this.sdk.addConnectionQualityListener({onConnectionQualityUpdate:this.onConnectionQualityUpdate.bind(this)})}onRemovedFromRoom(e){var o;let t=this.store.getState(O((o=e.requestedBy)==null?void 0:o.peerId));this.hmsNotifications.sendLeaveRoom(W(N({},e),{requestedBy:t||void 0}));let i=e.roomEnded||!t?"roomEnded":"removedFromRoom";m.i(`resetting state after peer removed ${i}`,e),this.resetState(i)}onDeviceChange(e){let t=e.devices;if(!t)return;let i=this.store.getState(L);if(this.setState(o=>{U(o.devices.audioInput,t.audioInput)||(o.devices.audioInput=t.audioInput),U(o.devices.videoInput,t.videoInput)||(o.devices.videoInput=t.videoInput),U(o.devices.audioOutput,t.audioOutput)||(o.devices.audioOutput=t.audioOutput),this.hmsSDKPeers[i==null?void 0:i.id]&&Object.assign(o.settings,this.getMediaSettings(this.hmsSDKPeers[i==null?void 0:i.id]))},"deviceChange"),e.selection){let o=g.convertDeviceChangeUpdate(e);this.hmsNotifications.sendDeviceChange(o)}}sdkPreviewWithListeners(e){return l(this,null,function*(){yield this.sdk.preview(e,{onPreview:this.onPreview.bind(this),onError:this.onError.bind(this),onReconnected:this.onReconnected.bind(this),onReconnecting:this.onReconnecting.bind(this),onDeviceChange:this.onDeviceChange.bind(this),onRoomUpdate:this.onRoomUpdate.bind(this),onPeerUpdate:this.onPeerUpdate.bind(this),onNetworkQuality:this.onNetworkQuality.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})})}onNetworkQuality(e){this.setState(t=>{var o;let i=t.room.localPeer||((o=this.sdk.getLocalPeer())==null?void 0:o.peerId);i&&(t.connectionQualities[i]={peerID:i,downlinkQuality:e})},"ConnectionQuality")}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 i=this.hmsSDKTracks[e];i&&i.type==="video"?(yield i.addSink(t),this.updateVideoLayer(e,"attachVideo")):this.logPossibleInconsistency("no video track found to add sink")})}syncRoomState(e){m.time(`store-sync-${e}`);let t={},i=[],o={},r={},n={},c=this.sdk.getPeers();for(let k of c){let w=g.convertPeer(k);t[w.id]=w,i.push(w.id),this.hmsSDKPeers[w.id]=k;let J=[k.audioTrack,k.videoTrack,...k.auxiliaryTracks];for(let le of J){if(!le)continue;let Ge=g.convertTrack(le);o[Ge.id]=Ge,r[le.trackId]=le}w.isLocal&&Object.assign(n,this.getMediaSettings(k))}let p=this.sdk.getRecordingState(),R=this.sdk.getRTMPState(),j=this.sdk.getHLSState();this.setState(k=>{k.room.peers=i;let w=k.peers,J=k.tracks;Ze(w,t),et(J,o),Object.assign(k.settings,n),this.hmsSDKTracks=r,Object.assign(k.roles,g.convertRoles(this.sdk.getRoles())),Object.assign(k.playlist,g.convertPlaylist(this.sdk.getPlaylistManager())),Object.assign(k.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=T.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(i=>{Object.assign(i.room,g.convertRoom(e)),i.room.isConnected=!0,i.room.roomState=T.Connected},"joined"),t.onProgress(this.setProgress),t.onNewTrackStart(i=>{this.syncPlaylistState(`${i.type}PlaylistUpdate`)}),t.onPlaylistEnded(i=>{this.syncPlaylistState(`${i}PlaylistEnded`)}),t.onCurrentTrackEnded(i=>{this.hmsNotifications.sendPlaylistTrackEnded(g.convertPlaylistItem(t,i)),this.syncPlaylistState(`${i.type}PlaylistItemEnded`)})}onRoomUpdate(e,t){this.setState(i=>{Object.assign(i.room,g.convertRoom(t))},"RoomUpdate")}onPeerUpdate(e,t){if(![a.HMSPeerUpdate.BECAME_DOMINANT_SPEAKER,a.HMSPeerUpdate.RESIGNED_DOMINANT_SPEAKER].includes(e)){if(Array.isArray(t)){this.syncRoomState("peersJoined");let i=[];for(let o of t){let r=this.store.getState(O(o.peerId));r&&i.push(r)}this.hmsNotifications.sendPeerList(i);return}this.sendPeerUpdateNotification(e,t)}}onTrackUpdate(e,t,i){if(e===a.HMSTrackUpdate.TRACK_REMOVED)this.hmsNotifications.sendTrackUpdate(e,t.trackId),this.handleTrackRemove(t,i);else{let o=e===a.HMSTrackUpdate.TRACK_ADDED?"trackAdded":"trackUpdate";this.syncRoomState(o),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(Ae)+1),t.messages.byID[e.id]=e,t.messages.allIDs.push(e.id)},"newMessage")}onAudioLevelUpdate(e){this.setState(t=>{let i={};e.forEach(r=>{if(!r.track||!r.peer)return;let n=r.track.trackId;i[n]=r.audioLevel,t.speakers[n]||(t.speakers[n]={audioLevel:r.audioLevel,peerID:r.peer.peerId,trackID:n})});let o=Object.entries(t.speakers);for(let[r,n]of o)n.audioLevel=i[r]||0,n.audioLevel===0&&delete t.speakers[r]},"audioLevel")}onConnectionQualityUpdate(e){this.setState(t=>{let i=new Set;e.forEach(r=>{let n=r.peerID;!n||(i.add(n),t.connectionQualities[n]?Object.assign(t.connectionQualities[n],r):t.connectionQualities[n]=r)});let o=Object.keys(t.connectionQualities);for(let r of o)i.has(r)||delete t.connectionQualities[r]},"connectionQuality")}onChangeTrackStateRequest(e){var r;let t=this.store.getState(O((r=e.requestedBy)==null?void 0:r.peerId)),i=this.getStoreLocalTrackIDfromSDKTrack(e.track),o=this.store.getState(re(i));if(!o)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:o,enabled:e.enabled})}onChangeMultiTrackStateRequest(e){var r;let t=this.store.getState(O((r=e.requestedBy)==null?void 0:r.peerId));e.enabled||this.syncRoomState("changeMultiTrackStateRequest");let i=[],o=this.store.getState(y);for(let n of e.tracks){let c=this.getStoreLocalTrackIDfromSDKTrack(n);c&&o[c]&&i.push(o[c])}this.hmsNotifications.sendChangeMultiTrackStateRequest({requestedBy:t||void 0,tracks:i,enabled:e.enabled,type:e.type,source:e.source})}onReconnected(){this.syncRoomState("reconnectedSync"),this.hmsNotifications.sendReconnected(),this.setState(e=>{e.room.roomState=e.room.isConnected?T.Connected:T.Preview},"reconnected")}onReconnecting(e){let t=g.convertException(e);m.e("Reconnection: received error from sdk",t),this.hmsNotifications.sendReconnecting(t),this.setState(i=>{i.room.roomState=T.Reconnecting,i.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(i=>{i.room.roomState=T.Failed,i.errors.push(t)},"errorTerminal")):this.store.getState().errors.length<50&&this.setState(o=>{o.errors.push(t)},"error"),this.syncRoomState("errorSync"),this.hmsNotifications.sendError(t),m.e("received error from sdk",t)}updateVideoLayer(e,t){let i=this.hmsSDKTracks[e];i&&i instanceof ne.HMSRemoteVideoTrack&&this.setState(o=>{o.tracks[e].layer=i.getSimulcastLayer()},t)}handleTrackRemove(e,t){this.setState(i=>{let o=i.peers[t.peerId],r=i.tracks,n=e.trackId;if(this.isSameStoreSDKTrack(n,o==null?void 0:o.audioTrack))o==null||delete o.audioTrack;else if(this.isSameStoreSDKTrack(n,o==null?void 0:o.videoTrack))o==null||delete o.videoTrack;else{let c=o==null?void 0:o.auxiliaryTracks.indexOf(n);c>-1&&this.isSameStoreSDKTrack(n,o==null?void 0:o.auxiliaryTracks[c])&&(o==null||o.auxiliaryTracks.splice(c,1))}delete r[n],delete this.hmsSDKTracks[n]},"trackRemoved")}setEnabledSDKTrack(e,t){return l(this,null,function*(){let i=this.hmsSDKTracks[e];i?yield i.setEnabled(t):this.logPossibleInconsistency(`track ${e} not present, unable to enabled/disable`)})}setSDKLocalVideoTrackSettings(e,t){return l(this,null,function*(){let i=this.hmsSDKTracks[e];i?yield i.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}setSDKLocalAudioTrackSettings(e,t){return l(this,null,function*(){let i=this.hmsSDKTracks[e];i?yield i.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}getMediaSettings(e){var r;let t=this.store.getState(Ie),i=e.audioTrack,o=e.videoTrack;return{audioInputDeviceId:(i==null?void 0:i.settings.deviceId)||t.audioInputDeviceId,videoInputDeviceId:(o==null?void 0:o.settings.deviceId)||t.videoInputDeviceId,audioOutputDeviceId:(r=this.sdk.getAudioOutput().getDevice())==null?void 0:r.deviceId}}setTrackVolume(e,t){let i=this.hmsSDKTracks[t];i?i instanceof ne.HMSAudioTrack?(i.setVolume(e),this.setState(o=>{let r=o.tracks[t];r&&(r.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 i=this.store.getState(Ee),o=this.store.getState(de);return i&&!o}logPossibleInconsistency(e){m.w("possible inconsistency detected - ",e)}addRemoveVideoPlugin(e,t,i){return l(this,null,function*(){if(!e){m.w("Invalid plugin received in store");return}let o=this.store.getState(C);if(o){let r=this.hmsSDKTracks[o];r?(t==="add"?yield r.addPlugin(e,i):t==="remove"&&(yield r.removePlugin(e)),this.syncRoomState(`${t}VideoPlugin`)):this.logPossibleInconsistency(`track ${o} 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 i=this.store.getState(A);if(i){let o=this.hmsSDKTracks[i];o?(t==="add"?yield o.addPlugin(e):t==="remove"&&(yield o.removePlugin(e)),this.syncRoomState(`${t}AudioPlugin`)):this.logPossibleInconsistency(`track ${i} not present, unable to remove plugin`)}})}isSameStoreSDKTrack(e,t){var i;return t?((i=this.hmsSDKTracks[t])==null?void 0:i.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 i=t.roleChangeRequests.findIndex(o=>o.token===e.token);i!==-1&&t.roleChangeRequests.splice(i,1)},"removeRoleChangeRequest")}onRoleUpdate(){this.syncRoomState("roleUpdate")}getStoreLocalTrackIDfromSDKTrack(e){return this.store.getState(be).find(i=>this.hmsSDKTracks[i].trackId===e.trackId)}};var Rt=D(require("eventemitter2"));var $e="hmsNotification",Fe=class{constructor(e){this.id=0;this.onNotification=(e,t)=>{let i=o=>{if(t){let r;if(Array.isArray(t)?r=t.includes(o.type):r=t===o.type,!r)return}e(o)};return this.eventEmitter.addListener($e,i),()=>{this.eventEmitter.removeListener($e,i)}};this.store=e,this.eventEmitter=new Rt.EventEmitter2}sendPlaylistTrackEnded(e){let t=this.createNotification(h.PLAYLIST_TRACK_ENDED,e,P.INFO);this.emitEvent(t)}sendDeviceChange(e){var i;let t=this.createNotification(h.DEVICE_CHANGE_UPDATE,e,e.error?P.ERROR:P.INFO,`Selected ${e.type} device - ${(i=e.selection)==null?void 0:i.label}`);this.emitEvent(t)}sendLeaveRoom(e){var o;let t=(o=e.requestedBy)==null?void 0:o.name,i=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(i)}sendPeerList(e){let t=this.createNotification(h.PEER_LIST,e,P.INFO);this.emitEvent(t)}sendPeerUpdate(e,t){let i=this.store.getState(O(t==null?void 0:t.id))||t,o=ft[e];if(o){let r=this.createNotification(o,i,P.INFO);this.emitEvent(r)}}sendTrackUpdate(e,t){let i=this.store.getState(re(t)),o=kt[e];if(o){let r=this.createNotification(o,i,P.INFO);this.emitEvent(r)}}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($e,e)}createNotification(e,t,i,o=""){return this.id++,{id:this.id,type:e,message:o,data:t,severity:i}}};var Dt=D(require("@100mslive/hms-video")),he=s=>Dt.isBrowser?`${s} ${document.title}`:s;var It=(s,e,t)=>{let i;t.getState(b)===T.Connected&&(i=vt(s,e,t)),t.subscribe(o=>{[T.Connected,T.Reconnecting].includes(o)?i||(i=vt(s,e,t)):i&&(ri(e),i())},b)},vt=(s,e,t)=>{var r;let i=ii(t,e),o=(r=s.getWebrtcInternals())==null?void 0:r.onStatsChange(n=>oi(e,n,t));return()=>{i(),o&&o()}},ii=(s,e)=>{let t,i,o;return s.getState(q)?e.namedSetState(r=>{r.localPeer.id=s.getState(q)},"localpeer-id"):t=s.subscribe(r=>{r&&e.namedSetState(n=>{n.localPeer.id=r},"localpeer-id")},q),s.getState(C)?e.namedSetState(r=>{r.localPeer.videoTrack=s.getState(C)},"localpeer-videotrack-id"):i=s.subscribe(r=>{r&&e.namedSetState(n=>{n.localPeer.videoTrack=r},"localpeer-videotrack-id")},C),s.getState(A)?e.namedSetState(r=>{r.localPeer.videoTrack=s.getState(A)},"localpeer-audiotrack-id"):o=s.subscribe(r=>{r&&e.namedSetState(n=>{n.localPeer.videoTrack=r},"localpeer-audiotrack-id")},A),()=>{t==null||t(),i==null||i(),o==null||o()}},oi=(s,e,t)=>{let i=t.getState(y);s.namedSetState(o=>{let r={},n=Object.keys(i);for(let R of n){let j=e.getTrackStats(R);j&&(r[R]=j)}He(o.trackStats,r);let p={[t.getState(q)]:e.getLocalPeerStats()};He(o.peerStats,p)},"webrtc-stats")},ri=(s,e="resetState")=>{s.namedSetState(t=>{Object.assign(t,z())},e)};var ae=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(i=>{var o,r;this.hmsStore.getState(b)==="Connected"?i((r=(o=this.sdk)==null?void 0:o.getWebrtcInternals())==null?void 0:r.getPublishPeerConnection()):this.hmsStore.subscribe(n=>{var c,p;n==="Connected"&&i((p=(c=this.sdk)==null?void 0:c.getWebrtcInternals())==null?void 0:p.getPublishPeerConnection())},b)}),this.getSubscribePeerConnection=()=>new Promise(i=>{var o,r;this.hmsStore.getState(b)==="Connected"?i((r=(o=this.sdk)==null?void 0:o.getWebrtcInternals())==null?void 0:r.getSubscribePeerConnection()):this.hmsStore.subscribe(n=>{var c,p;n==="Connected"&&i((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 H=D(require("reselect"));var ni=s=>s.localPeer.id,ai=s=>s.localPeer.audioTrack,ci=s=>s.localPeer.videoTrack,li=(s,e)=>e,Si=(s,e)=>e,We=s=>s.trackStats,bt=s=>s.peerStats,B=(0,H.createSelector)([bt,ni],(s,e)=>s[e]),di=(0,H.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.packetsLost}),ui=(0,H.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.jitter}),pi=(0,H.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bitrate}),Mi=(0,H.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bitrate}),mi=(0,H.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.availableOutgoingBitrate}),hi=(0,H.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.availableIncomingBitrate}),gi=(0,H.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bytesSent}),Ti=(0,H.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bytesReceived}),Hi=(0,H.createSelector)([bt,li],(s,e)=>e?s[e]:void 0),G=(0,H.createSelector)([We,Si],(s,e)=>e?s[e]:void 0),yi=u(Hi),fi=u(G),ki=u((0,H.createSelector)(G,s=>s==null?void 0:s.bitrate)),Pi=u((0,H.createSelector)(G,s=>s==null?void 0:s.bytesReceived)),Ri=u((0,H.createSelector)(G,s=>s==null?void 0:s.framesPerSecond)),Di=u((0,H.createSelector)(G,s=>s==null?void 0:s.jitter)),Ii=u((0,H.createSelector)(G,s=>s==null?void 0:s.packetsLost)),Qe=(0,H.createSelector)([We,ai],(s,e)=>e?s[e]:void 0),ce=(0,H.createSelector)([We,ci],(s,e)=>e?s[e]:void 0),vi=(0,H.createSelector)(Qe,s=>s==null?void 0:s.bitrate),bi=(0,H.createSelector)(ce,s=>s==null?void 0:s.bitrate),Ei=(0,H.createSelector)(Qe,s=>s==null?void 0:s.bytesSent),Ai=(0,H.createSelector)(ce,s=>s==null?void 0:s.bytesSent),Ci=(0,H.createSelector)(ce,s=>s==null?void 0:s.framesPerSecond),Li=(0,H.createSelector)(ce,s=>s==null?void 0:s.qualityLimitationReason),Et={localPeerStats:B,packetsLost:di,jitter:ui,publishBitrate:pi,subscribeBitrate:Mi,availablePublishBitrate:mi,availableSubscribeBitrate:hi,totalBytesSent:gi,totalBytesReceived:Ti,peerStatsByID:yi,trackStatsByID:fi,bitrateByTrackID:ki,bytesReceivedByTrackID:Pi,framerateByTrackID:Ri,jitterByTrackID:Di,packetsLostByTrackID:Ii,localAudioTrackStats:Qe,localVideoTrackStats:ce,localAudioTrackBitrate:vi,localVideoTrackBitrate:bi,localAudioTrackBytesSent:Ei,localVideoTrackBytesSent:Ai,localVideoTrackFramerate:Ci,localVideoTrackQualityLimitationReason:Li};var x=class{constructor(e,t,i){this.getStats=()=>(this.stats||(this.stats=new ae(this.store,this.sdk)),this.stats);e?this.store=e:this.store=x.createNewHMSStore(he("HMSStore"),X),i?this.notifications=i:this.notifications=new Fe(this.store),t?this.actions=t:(this.sdk=new ge.HMSSdk,this.actions=new je(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 i=(0,Ct.default)(()=>t()),o=i.setState;i.setState=c=>{let p=typeof c=="function"?(0,At.default)(c):c;o(p)};let r=i.getState;i.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(r()),k=performance.now()-R;return k>1&&(window.expensiveSelectors=window.expensiveSelectors||new Map,window.expensiveSelectors.set(p,k)),j}return r()},x.compareWithShallowCheckInSubscribe(i);let n=x.setUpDevtools(i,e);return W(N({},i),{namedSetState:n})}static makeStoreTriggerOnSubscribe(e){let t=e.subscribe;e.subscribe=(i,o,r)=>(i(e.getState(o),void 0),t(i,o,r))}static compareWithShallowCheckInSubscribe(e){let t=e.subscribe;e.subscribe=(i,o,r)=>(o||(o=n=>n),r=r||Lt.default,t(i,o,r))}static setUpDevtools(e,t){let i;try{i=window.__REDUX_DEVTOOLS_EXTENSION__||window.top.__REDUX_DEVTOOLS_EXTENSION__}catch(n){}if(!i)return n=>{e.setState(n)};let o=i.connect(x.devtoolsOptions(t));o.prefix=t?`${t} > `:"";let r=e.setState;return e.setState=n=>{r(n),o.send(`${o.prefix}setState`,e.getState())},o.subscribe(x.devtoolsSubscribe(o,e,r)),o.send("setUpStore",e.getState()),(n,c)=>{r(n);let p=c||`${o.prefix}action`;o.send(p,e.getState())}}static devtoolsOptions(e){return{name:e,actionsBlacklist:["audioLevel","playlistProgress","connectionQuality"]}}static devtoolsSubscribe(e,t,i){return o=>{var r,n,c,p;if(o.type==="DISPATCH"&&o.state)["JUMP_TO_ACTION","JUMP_TO_STATE"].includes(o.payload.type)?i(JSON.parse(o.state)):t.setState(JSON.parse(o.state));else if(o.type==="DISPATCH"&&((r=o.payload)==null?void 0:r.type)==="COMMIT")e.init(t.getState());else if(o.type==="DISPATCH"&&((n=o.payload)==null?void 0:n.type)==="IMPORT_STATE"){let R=(c=o.payload.nextLiftedState)==null?void 0:c.actionsById;(((p=o.payload.nextLiftedState)==null?void 0:p.computedStates)||[]).forEach(({state:k},w)=>{let J=R[w]||`${e.prefix}setState`;w===0?e.init(k):(i(k),e.send(J,t.getState()))})}}}};
1
+ var xt=Object.create;var Y=Object.defineProperty,Ot=Object.defineProperties,wt=Object.getOwnPropertyDescriptor,Nt=Object.getOwnPropertyDescriptors,Ut=Object.getOwnPropertyNames,Je=Object.getOwnPropertySymbols,_t=Object.getPrototypeOf,Ye=Object.prototype.hasOwnProperty,Kt=Object.prototype.propertyIsEnumerable;var Xe=(s,e,t)=>e in s?Y(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,N=(s,e)=>{for(var t in e||(e={}))Ye.call(e,t)&&Xe(s,t,e[t]);if(Je)for(var t of Je(e))Kt.call(e,t)&&Xe(s,t,e[t]);return s},W=(s,e)=>Ot(s,Nt(e)),ze=s=>Y(s,"__esModule",{value:!0});var Vt=(s,e)=>{ze(s);for(var t in e)Y(s,t,{get:e[t],enumerable:!0})},Bt=(s,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ut(e))!Ye.call(s,i)&&i!=="default"&&Y(s,i,{get:()=>e[i],enumerable:!(t=wt(e,i))||t.enumerable});return s},D=s=>Bt(ze(Y(s!=null?xt(_t(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((i,o)=>{var r=p=>{try{c(t.next(p))}catch(R){o(R)}},n=p=>{try{c(t.throw(p))}catch(R){o(R)}},c=p=>p.done?i(p.value):Promise.resolve(p.value).then(r,n);c((t=t.apply(s,e)).next())});Vt(exports,{HMSAudioPluginType:()=>a.HMSAudioPluginType,HMSLogLevel:()=>a.HMSLogLevel,HMSMessageType:()=>Te,HMSNotificationSeverity:()=>P,HMSNotificationTypes:()=>h,HMSPlaylistType:()=>M,HMSReactiveStore:()=>x,HMSRoomState:()=>T,HMSStats:()=>ae,HMSVideoPluginType:()=>a.HMSVideoPluginType,createDefaultStatsStore:()=>z,createDefaultStoreState:()=>X,parsedUserAgent:()=>a.parsedUserAgent,selectAppData:()=>hs,selectAudioPlaylist:()=>we,selectAudioPlaylistTrackByPeerID:()=>vs,selectAudioTrackByPeerID:()=>mt,selectAudioTrackVolume:()=>qe,selectAudioVolumeByPeerID:()=>xs,selectAuxiliaryAudioByPeerID:()=>Rs,selectAuxiliaryTracksByPeerID:()=>Hs,selectAvailableRoleNames:()=>as,selectBroadcastMessages:()=>Ht,selectBroadcastMessagesUnreadCount:()=>_s,selectCameraStreamByPeerID:()=>Ts,selectConnectionQualities:()=>Wt,selectConnectionQualityByPeerID:()=>Ps,selectDegradedTracks:()=>os,selectDevices:()=>Ft,selectDidIJoinWithin:()=>si,selectDominantSpeaker:()=>Xt,selectFullAppData:()=>ve,selectHLSState:()=>ds,selectHMSMessages:()=>se,selectHMSMessagesCount:()=>Ae,selectHMSStats:()=>Et,selectIsAllowedToPublish:()=>Gs,selectIsAllowedToSubscribe:()=>cs,selectIsAudioLocallyMuted:()=>Be,selectIsConnectedToRoom:()=>ot,selectIsInPreview:()=>ns,selectIsLocalAudioEnabled:()=>zt,selectIsLocalAudioPluginPresent:()=>Zs,selectIsLocalScreenShared:()=>ue,selectIsLocalVideoDisplayEnabled:()=>Ee,selectIsLocalVideoEnabled:()=>de,selectIsLocalVideoPluginPresent:()=>zs,selectIsLocallyMutedByPeerID:()=>Cs,selectIsPeerAudioEnabled:()=>Es,selectIsPeerVideoEnabled:()=>As,selectIsScreenShareLocallyMutedByPeerID:()=>Ls,selectIsSomeoneScreenSharing:()=>Zt,selectLocalAudioTrackID:()=>A,selectLocalMediaSettings:()=>Ie,selectLocalPeer:()=>L,selectLocalPeerID:()=>q,selectLocalPeerRole:()=>ie,selectLocalTrackIDs:()=>be,selectLocalVideoTrackID:()=>C,selectMessageIDsInOrder:()=>De,selectMessagesByPeerID:()=>Ks,selectMessagesByRole:()=>Vs,selectMessagesMap:()=>Re,selectMessagesUnreadCountByPeerID:()=>qs,selectMessagesUnreadCountByRole:()=>Bs,selectPeerAudioByID:()=>ks,selectPeerByCondition:()=>ei,selectPeerByID:()=>O,selectPeerCount:()=>Qt,selectPeerMetadata:()=>$s,selectPeerNameByID:()=>gs,selectPeerScreenSharing:()=>rt,selectPeerSharingAudio:()=>es,selectPeerSharingAudioPlaylist:()=>is,selectPeerSharingVideoPlaylist:()=>ss,selectPeers:()=>F,selectPeersByCondition:()=>ti,selectPeersByRole:()=>js,selectPeersMap:()=>v,selectPeersScreenSharing:()=>ts,selectPeersWithAudioStatus:()=>Fs,selectPermissions:()=>Le,selectRTMPState:()=>Ss,selectRecordingState:()=>ls,selectRemotePeers:()=>Yt,selectRoleByRoleName:()=>Js,selectRoleChangeRequest:()=>Qs,selectRolesMap:()=>K,selectRoom:()=>I,selectRoomID:()=>$t,selectRoomStartTime:()=>ps,selectRoomStarted:()=>Ce,selectRoomState:()=>b,selectScreenShareAudioByPeerID:()=>Ve,selectScreenShareByPeerID:()=>bs,selectScreenSharesByPeerId:()=>Ke,selectScreenshareAudioVolumeByPeerID:()=>Os,selectSessionId:()=>us,selectSimulcastLayerByTrack:()=>ws,selectSpeakers:()=>it,selectTrackAudioByID:()=>ys,selectTrackByID:()=>re,selectTracksMap:()=>y,selectUnreadHMSMessagesCount:()=>rs,selectVideoPlaylist:()=>Ne,selectVideoPlaylistAudioTrackByPeerID:()=>Is,selectVideoPlaylistVideoTrackByPeerID:()=>Ds,selectVideoTrackByPeerID:()=>Mt});var At=D(require("immer")),Ct=D(require("zustand/vanilla")),Lt=D(require("zustand/shallow")),ge=D(require("@100mslive/hms-video"));var T;(function(c){c.Disconnected="Disconnected",c.Preview="Preview",c.Connecting="Connecting",c.Connected="Connected",c.Reconnecting="Reconnecting",c.Disconnecting="Disconnecting",c.Failed="Failed"})(T||(T={}));var X=()=>({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:{},connectionQualities:{},settings:{audioInputDeviceId:"",audioOutputDeviceId:"",videoInputDeviceId:""},devices:{audioInput:[],audioOutput:[],videoInput:[]},roles:{},appData:{},roleChangeRequests:[],errors:[]}),z=()=>({peerStats:{},trackStats:{},localPeer:{id:""}});var Te;(function(e){e.CHAT="chat"})(Te||(Te={}));var P;(function(i){i.INFO="info",i.ERROR="error",i.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 a=D(require("@100mslive/hms-video"));var _=D(require("@100mslive/hms-video"));var Ze=(s,e)=>{let t=Pe(Object.keys(s),Object.keys(e));for(let i of t){let o=s[i],r=e[i];ye(o,r)?(U(o.auxiliaryTracks,r.auxiliaryTracks)&&(r.auxiliaryTracks=o.auxiliaryTracks),Object.assign(o,r)):fe(o,r)?delete s[i]:ke(o,r)&&(s[i]=r)}},et=(s,e)=>{let t=Pe(Object.keys(s),Object.keys(e));for(let i of t){let o=s[i],r=e[i];ye(o,r)?(qt(o,r),Object.assign(o,r)):fe(o,r)?delete s[i]:ke(o,r)&&(s[i]=r)}},He=(s,e)=>{let t=Pe(Object.keys(s),Object.keys(e));for(let i of t){let o=s[i],r=e[i];ye(o,r)?Object.assign(o,r):fe(o,r)?delete s[i]:ke(o,r)&&(s[i]=r)}},qt=(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 i of s)t.add(i);for(let i of e)t.add(i);return Array.from(t)};var g=class{static convertPeer(e){var t,i,o;return{id:e.peerId,name:e.name,roleName:(t=e.role)==null?void 0:t.name,isLocal:e.isLocal,videoTrack:(i=e.videoTrack)==null?void 0:i.trackId,audioTrack:(o=e.audioTrack)==null?void 0:o.trackId,auxiliaryTracks:e.auxiliaryTracks.map(r=>r.trackId),customerUserId:e.customerUserId,customerDescription:e.metadata,metadata:e.metadata,joinedAt:e.joinedAt}}static convertTrack(e,t){let i={id:e.trackId,source:e.source,type:e.type,enabled:e.enabled,displayEnabled:e.enabled,peerId:e.peerId||t};return this.enrichTrack(i,e),i}static enrichTrack(e,t){let i=t.getMediaTrackSettings();e.source==="screen"&&e.type==="video"&&(e.displaySurface=i.displaySurface),e.height=i.height,e.width=i.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 i;t instanceof _.HMSLocalVideoTrack||t instanceof _.HMSLocalAudioTrack?e.deviceID=t.settings.deviceId:e.deviceID=(i=t.getMediaTrackSettings())==null?void 0:i.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 r,n;let{recording:t,rtmp:i,hls:o}=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:(n=(r=e.localPeer)==null?void 0:r.peerId)!=null?n:"",hasWaitingRoom:e.hasWaitingRoom,shareableLink:e.shareableLink,recording:t,rtmp:i,hls:o,sessionId:e.sessionId,startedAt:e.startedAt,joinedAt:e.joinedAt,peerCount:e.peerCount}}static convertMessage(e){var t,i,o;return{sender:e.sender.peerId,senderName:e.sender.name,senderRole:(t=e.sender.role)==null?void 0:t.name,senderUserId:e.sender.customerUserId,recipientPeer:(i=e.recipientPeer)==null?void 0:i.peerId,recipientRoles:(o=e.recipientRoles)==null?void 0:o.map(r=>r.name),time:e.time,type:e.type,message:e.message}}static convertRoles(e){let t={};return e&&e.forEach(i=>{t[i.name]=i}),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),i=this.getConvertedPlaylistType(e,M.video);return{audio:t,video:i}}static convertPlaylistItem(e,t){let i=t.type,o=e.getCurrentSelection(i),r=e.isPlaying(i),n=t.url===(o==null?void 0:o.url);return W(N({},t),{type:t.type,selected:n,playing:n&&r})}static getConvertedPlaylistType(e,t){let i={},o=e.getCurrentSelection(t),r=e.getCurrentProgress(t),n=e.getVolume(t),c=e.getList(t),p=e.getCurrentIndex(t);return e.getList(t).forEach(R=>{i[R.id]=g.convertPlaylistItem(e,R)}),{list:i,selection:{id:o==null?void 0:o.id,hasPrevious:p>0,hasNext:p<c.length-1},progress:r,volume:n,currentTime:e.getCurrentTime(t),playbackRate:e.getPlaybackRate(t)}}static convertRecordingStreamingState(e,t,i){var o;return{recording:{browser:N({running:!1},e==null?void 0:e.browser),server:N({running:!1},e==null?void 0:e.server),hls:N({running:!1},e==null?void 0:e.hls)},rtmp:N({running:!1},t),hls:{variants:((o=i==null?void 0:i.variants)==null?void 0:o.map(r=>r))||[],running:!!(i==null?void 0:i.running),error:i==null?void 0:i.error}}}};var d=D(require("reselect"));function $(s,e,t=jt){let i,o;if(e)for(let r of e.auxiliaryTracks){let n=s[r];t(n)&&(o=Z(n)?n:o,i=ee(n)?n:i)}return{video:i,audio:o}}function Z(s){return s&&s.type==="audio"}function ee(s){return s&&s.type==="video"}function jt(s){return s&&s.source==="screen"}function Se(s){return s&&s.source==="audioplaylist"}function te(s){return s&&s.source==="videoplaylist"}function tt(s){return Boolean(s==null?void 0:s.degraded)}function Q(s,e){return e&&s.tracks[e]?s.tracks[e].enabled:!1}function st(s,e){return e&&s.tracks[e]?s.tracks[e].displayEnabled:!1}var I=s=>s.room,$t=(0,d.createSelector)(I,s=>s.id),v=s=>s.peers,Re=s=>s.messages.byID,De=s=>s.messages.allIDs,y=s=>s.tracks,Ie=s=>s.settings,ve=s=>s.appData,Ft=s=>s.devices,it=s=>s.speakers,Wt=s=>s.connectionQualities,ot=(0,d.createSelector)([I],s=>s&&s.isConnected),Qt=(0,d.createSelector)([ot,I],(s,e)=>s?e.peerCount||e.peers.length:Math.max(e.peerCount||e.peers.length-1,0)),F=(0,d.createSelector)([I,v],(s,e)=>s.peers.map(t=>e[t])),Gt=(0,d.createSelector)(y,s=>Object.values(s)),L=(0,d.createSelector)(I,v,(s,e)=>e[s.localPeer]),q=(0,d.createSelector)(I,s=>s.localPeer),A=(0,d.createSelector)(L,s=>s==null?void 0:s.audioTrack),C=(0,d.createSelector)(L,s=>s==null?void 0:s.videoTrack),Jt=(0,d.createSelector)(L,s=>s==null?void 0:s.auxiliaryTracks),be=(0,d.createSelector)([A,C,Jt],(s,e,t)=>{let i=[...t];return s&&i.unshift(s),e&&i.unshift(e),i}),Yt=(0,d.createSelector)(F,s=>s.filter(e=>!e.isLocal)),Xt=(0,d.createSelector)(v,it,(s,e)=>{let t=Object.entries(e).sort((i,o)=>{var c,p;let r=((c=i[1])==null?void 0:c.audioLevel)||0;return(((p=o[1])==null?void 0:p.audioLevel)||0)>r?1:-1});if(t.length>0&&t[0][1].audioLevel&&t[0][1].audioLevel>0){let i=t[0][1].peerID;if(i in s)return s[i]}return null}),zt=s=>{let e=L(s);return Q(s,e==null?void 0:e.audioTrack)},de=s=>{let e=L(s);return Q(s,e==null?void 0:e.videoTrack)},Ee=s=>{let e=L(s);return st(s,e==null?void 0:e.videoTrack)},ue=(0,d.createSelector)(L,y,(s,e)=>{let{video:t,audio:i}=$(e,s);return!!(t||i)}),rt=(0,d.createSelector)(v,y,(s,e)=>{let t;for(let i in s){let o=s[i],{video:r,audio:n}=$(e,o);if(r)return o;n&&!t&&(t=o)}return t}),Zt=(0,d.createSelector)(rt,s=>!!s),es=(0,d.createSelector)(v,y,(s,e)=>{for(let t in s){let i=s[t],{audio:o,video:r}=$(e,i);if(!r&&!!o)return i}}),ts=(0,d.createSelector)(v,y,(s,e)=>{let t=[],i=[];for(let o in s){let r=s[o],{video:n,audio:c}=$(e,r);n?t.push(r):c&&i.push(r)}return t.concat(i)}),ss=(0,d.createSelector)(v,y,(s,e)=>{for(let t in e){let i=e[t];if(te(i)&&ee(i)&&i.peerId)return s[i.peerId]}}),is=(0,d.createSelector)(v,y,(s,e)=>{for(let t in e){let i=e[t];if(Se(i)&&i.peerId)return s[i.peerId]}}),os=(0,d.createSelector)(Gt,s=>s.filter(tt)),Ae=(0,d.createSelector)(De,s=>s.length),rs=(0,d.createSelector)(Re,s=>Object.values(s).filter(e=>!e.read).length),se=(0,d.createSelector)(De,Re,(s,e)=>{let t=[];return s.forEach(i=>{t.push(e[i])}),t}),b=(0,d.createSelector)([I],s=>s&&s.roomState),ns=(0,d.createSelector)(b,s=>s===T.Preview),Ce=(0,d.createSelector)(I,s=>s.roomState!==T.Disconnected),K=s=>s.roles,as=(0,d.createSelector)([K],s=>Object.keys(s)),ie=(0,d.createSelector)([L,K],(s,e)=>(s==null?void 0:s.roleName)?e[s.roleName]:null),cs=(0,d.createSelector)([ie],s=>{var e;return((e=s==null?void 0:s.subscribeParams)==null?void 0:e.subscribeToRoles)?s.subscribeParams.subscribeToRoles.length>0:!1}),Le=(0,d.createSelector)(ie,s=>s==null?void 0:s.permissions),ls=(0,d.createSelector)(I,s=>s.recording),Ss=(0,d.createSelector)(I,s=>s.rtmp),ds=(0,d.createSelector)(I,s=>s.hls),us=(0,d.createSelector)(I,s=>s.sessionId),ps=(0,d.createSelector)(I,s=>s.startedAt);var xe=D(require("reselect"));var nt=(s=M.audio)=>e=>e.playlist[s].list,Oe=(s=M.audio)=>e=>e.playlist[s].selection,at=(s=M.audio)=>e=>e.playlist[s].progress,ct=(s=M.audio)=>e=>e.playlist[s].currentTime,lt=(s=M.audio)=>e=>e.playlist[s].playbackRate,St=(s=M.audio)=>e=>e.playlist[s].volume,dt=(s=M.audio)=>(0,xe.createSelector)(nt(s),e=>Object.values(e)),ut=(s=M.audio)=>(0,xe.createSelector)(nt(s),Oe(s),(e,t)=>{if(!!t.id)return e[t.id]}),we={selection:Oe(M.audio),progress:at(M.audio),currentTime:ct(M.audio),playbackRate:lt(M.audio),volume:St(M.audio),list:dt(M.audio),selectedItem:ut(M.audio)},Ne={selection:Oe(M.video),progress:at(M.video),currentTime:ct(M.video),playbackRate:lt(M.video),volume:St(M.video),list:dt(M.video),selectedItem:ut(M.video)};var f=D(require("reselect"));function u(s){return e=>t=>s(t,e)}var oe="HMS-Store:",m=class{static v(e,...t){this.log(a.HMSLogLevel.VERBOSE,e,...t)}static d(...e){this.log(a.HMSLogLevel.DEBUG,...e)}static i(...e){this.log(a.HMSLogLevel.INFO,...e)}static w(...e){this.log(a.HMSLogLevel.WARN,...e)}static e(...e){this.log(a.HMSLogLevel.ERROR,...e)}static time(e){this.log(a.HMSLogLevel.TIME,"[HMSPerformanceTiming]",e)}static timeEnd(e){this.log(a.HMSLogLevel.TIMEEND,"[HMSPerformanceTiming]",e,e)}static cleanUp(){performance.clearMarks(),performance.clearMeasures()}static log(e,...t){if(!(this.level.valueOf()>e.valueOf()))switch(e){case a.HMSLogLevel.VERBOSE:{console.log(oe,...t);break}case a.HMSLogLevel.DEBUG:{console.debug(oe,...t);break}case a.HMSLogLevel.INFO:{console.info(oe,...t);break}case a.HMSLogLevel.WARN:{console.warn(oe,...t);break}case a.HMSLogLevel.ERROR:{console.error(oe,...t);break}case a.HMSLogLevel.TIME:{performance.mark(t[1]);break}case a.HMSLogLevel.TIMEEND:{let i=t[0],o=t[1];try{let r=performance.measure(o,o);this.log(a.HMSLogLevel.DEBUG,i,o,r==null?void 0:r.duration),performance.clearMarks(o),performance.clearMeasures(o)}catch(r){this.log(a.HMSLogLevel.DEBUG,i,o,r)}break}}}};m.level=a.HMSLogLevel.VERBOSE;var Ue=(s,e)=>e,Ms=(s,e)=>e,pt=(s,e)=>e,ms=(s,e)=>e,E=(0,f.createSelector)([v,Ue],(s,e)=>e?s[e]:null),_e=(0,f.createSelector)([y,Ms],(s,e)=>e?s[e]:null),O=u(E),hs=u((0,f.createSelector)([ve,ms],(s,e)=>e?s[e]:s)),gs=u((0,f.createSelector)(E,s=>s==null?void 0:s.name)),re=u(_e),Mt=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]}),Ts=Mt,Hs=u((s,e)=>{let t=E(s,e);return(t==null?void 0:t.auxiliaryTracks.map(i=>s.tracks[i]))||[]}),ht=(s,e)=>e?s.speakers[e]:null,ys=u((0,f.createSelector)(ht,s=>(s==null?void 0:s.audioLevel)||0)),fs=(s,e)=>{let t=mt(e)(s);return ht(s,t==null?void 0:t.id)},ks=u((0,f.createSelector)(fs,s=>(s==null?void 0:s.audioLevel)||0)),Ps=u((s,e)=>{if(e)return s.connectionQualities[e]}),Rs=u((s,e)=>{let t=E(s,e);if(t){let i=t==null?void 0:t.auxiliaryTracks.find(o=>Z(s.tracks[o]));return i?s.tracks[i]:void 0}}),Ds=u((0,f.createSelector)(y,E,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(i=>{let o=s[i];return te(o)&&ee(o)});return t?s[t]:void 0})),Is=u((0,f.createSelector)(y,E,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(i=>{let o=s[i];return te(o)&&Z(o)});return t?s[t]:void 0})),vs=u((0,f.createSelector)(y,E,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(i=>{let o=s[i];return Se(o)&&Z(o)});return t?s[t]:void 0})),Ke=u((0,f.createSelector)(y,E,(s,e)=>$(s,e))),bs=s=>(0,f.createSelector)(Ke(s),e=>e.video),Ve=s=>(0,f.createSelector)(Ke(s),e=>e.audio),Es=u((s,e)=>{let t=E(s,e);return Q(s,t==null?void 0:t.audioTrack)}),As=u((s,e)=>{let t=E(s,e);return Q(s,t==null?void 0:t.videoTrack)}),Be=u((s,e)=>{if(e&&s.tracks[e])return s.tracks[e].volume===0}),Cs=u((s,e)=>{let t=E(s,e);return Be(t==null?void 0:t.audioTrack)(s)}),Ls=u((s,e)=>{let t=Ve(e)(s);return Be(t==null?void 0:t.id)(s)}),qe=u((s,e)=>{let t=_e(s,e);if(t){if(t.type!=="audio"){m.w("Please pass audio track here");return}return t.volume}}),xs=u((s,e)=>{let t=E(s,e);return qe(t==null?void 0:t.audioTrack)(s)}),Os=u((s,e)=>{let t=Ve(e)(s);return qe(t==null?void 0:t.id)(s)}),ws=u((s,e)=>{let t=_e(s,e);if(t){if(t.type!=="video"){m.w("Please pass video track here");return}return t.layer}}),gt=(0,f.createSelector)([se,q,Ue],(s,e,t)=>{if(!!t)return s.filter(i=>{var o;return!i.recipientPeer&&!((o=i.recipientRoles)==null?void 0:o.length)||![e,t].includes(i.sender)?!1:[e,t].includes(i.recipientPeer)})}),Tt=(0,f.createSelector)([se,pt],(s,e)=>{if(!!e)return s.filter(t=>{var i,o;return((i=t.recipientRoles)==null?void 0:i.length)?(o=t.recipientRoles)==null?void 0:o.includes(e):!1})}),Ht=(0,f.createSelector)(se,s=>s.filter(e=>{var t;return!e.recipientPeer&&!((t=e.recipientRoles)==null?void 0:t.length)})),Ns=(0,f.createSelector)([Tt,pt],s=>s?s.filter(e=>!e.read).length:0),Us=(0,f.createSelector)([gt,Ue],s=>s?s.filter(e=>!e.read).length:0),_s=(0,f.createSelector)(Ht,s=>s.filter(e=>!e.read).length),Ks=u(gt),Vs=u(Tt),Bs=u(Ns),qs=u(Us),js=s=>(0,f.createSelector)([F],e=>e.filter(t=>t.roleName===s)),$s=s=>(0,f.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=D(require("reselect")),Fs=(0,pe.createSelector)([v,y],(s,e)=>Object.values(s).map(i=>{var o;return{peer:i,isAudioEnabled:i.audioTrack?(o=e[i.audioTrack])==null?void 0:o.enabled:!1}})),Ws=s=>s.roleChangeRequests[0]||null,Qs=(0,pe.createSelector)([Ws,v,K],(s,e,t)=>s?{requestedBy:s.requestedBy?e[s.requestedBy]:void 0,role:t[s.roleName],token:s.token}:null),Gs=(0,pe.createSelector)([ie],s=>{var o;let e=!1,t=!1,i=!1;return((o=s==null?void 0:s.publishParams)==null?void 0:o.allowed)&&(e=s.publishParams.allowed.includes("video"),t=s.publishParams.allowed.includes("audio"),i=s.publishParams.allowed.includes("screen")),{video:e,audio:t,screen:i}});var V=D(require("reselect"));var Js=s=>(0,V.createSelector)([K],e=>e[s]),Ys=(0,V.createSelector)([C,y],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),Xs=(0,V.createSelector)([A,y],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),zs=s=>(0,V.createSelector)([Ys],e=>e.includes(s)),Zs=s=>(0,V.createSelector)([Xs],e=>e.includes(s)),ei=s=>(0,V.createSelector)(F,e=>e.find(s)),ti=s=>(0,V.createSelector)(F,e=>e.filter(s)),si=s=>(0,V.createSelector)(I,e=>e.joinedAt&&Date.now()-e.joinedAt.getTime()<=s);var ne=D(require("@100mslive/hms-video"));var Me=D(require("@100mslive/hms-video"));function yt(s){return s instanceof Me.HMSRemoteAudioTrack||s instanceof Me.HMSRemoteVideoTrack}var me=class{constructor(e,t,i,o){this.playlistManager=e;this.syncPlaylistState=i;this.store=o;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?we: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 ft={[a.HMSPeerUpdate.PEER_JOINED]:h.PEER_JOINED,[a.HMSPeerUpdate.PEER_LEFT]:h.PEER_LEFT,[a.HMSPeerUpdate.ROLE_UPDATED]:h.ROLE_UPDATED,[a.HMSPeerUpdate.AUDIO_TOGGLED]:"PEER_AUDIO_UPDATED",[a.HMSPeerUpdate.VIDEO_TOGGLED]:"PEER_VIDEO_UPDATED",[a.HMSPeerUpdate.NAME_UPDATED]:h.NAME_UPDATED,[a.HMSPeerUpdate.METADATA_UPDATED]:h.METADATA_UPDATED},kt={[a.HMSTrackUpdate.TRACK_ADDED]:h.TRACK_ADDED,[a.HMSTrackUpdate.TRACK_REMOVED]:h.TRACK_REMOVED,[a.HMSTrackUpdate.TRACK_MUTED]:h.TRACK_MUTED,[a.HMSTrackUpdate.TRACK_UNMUTED]:h.TRACK_UNMUTED,[a.HMSTrackUpdate.TRACK_DEGRADED]:h.TRACK_DEGRADED,[a.HMSTrackUpdate.TRACK_RESTORED]:h.TRACK_RESTORED},Pt={[a.HMSPeerUpdate.PEER_JOINED]:"peerJoined",[a.HMSPeerUpdate.PEER_LEFT]:"peerLeft",[a.HMSPeerUpdate.NAME_UPDATED]:"peerNameUpdated",[a.HMSPeerUpdate.ROLE_UPDATED]:"peerRoleUpdated",[a.HMSPeerUpdate.METADATA_UPDATED]:"peerMetadataUpdated"};var je=class{constructor(e,t,i){this.hmsSDKTracks={};this.hmsSDKPeers={};this.isRoomJoinCalled=!1;this.ignoredMessageTypes=[];this.setProgress=({type:e,progress:t})=>{this.setState(i=>{i.playlist[e].progress=t,i.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 i=this.store.getState(O(t.peerId)),o=Pt[e];this.syncRoomState(o),i||(i=this.store.getState(O(t.peerId))),this.hmsNotifications.sendPeerUpdate(e,i)};this.setState=(e,t)=>this.store.namedSetState(e,t);this.store=e,this.sdk=t,this.hmsNotifications=i}refreshDevices(){return l(this,null,function*(){yield this.sdk.refreshDevices()})}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(i=>{i.settings.audioOutputDeviceId=e},"setAudioOutputDevice")}setPreferredLayer(e,t){let i=this.hmsSDKTracks[e];i?i instanceof ne.HMSRemoteVideoTrack?(i.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===T.Preview||t===T.Connecting){this.logPossibleInconsistency("attempting to call preview while room is in preview/connecting");return}try{this.setState(i=>{i.room.roomState=T.Connecting},"connecting"),yield this.sdkPreviewWithListeners(e)}catch(i){throw m.e("Cannot show preview. Failed to connect to room - ",i),i}})}join(e){if(this.isRoomJoinCalled){this.logPossibleInconsistency("room join is called again");return}try{this.isRoomJoinCalled=!0,this.setState(t=>{t.room.roomState=T.Connecting},"join"),this.sdkJoinWithListeners(e)}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(Ce)){this.logPossibleInconsistency("room leave is called when no room is connected");return}let t=this.store.getState(b);return this.setState(i=>{i.room.roomState=T.Disconnecting},"leaving"),this.sdk.leave().then(()=>{this.resetState("leave"),m.i("left room")}).catch(i=>{m.e("error in leaving room - ",i),this.setState(o=>{o.room.roomState=t},"revertLeave")})})}setScreenShareEnabled(e,t){return l(this,null,function*(){let i={audioOnly:!1,videoOnly:!1};typeof t=="object"?Object.assign(i,t):typeof t=="boolean"&&(i.audioOnly=t);try{e?yield this.startScreenShare(i):yield this.stopScreenShare()}catch(o){throw this.hmsNotifications.sendError(g.convertException(o)),o}})}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(C);t&&(yield this.setEnabledTrack(t,e))})}setEnabledTrack(e,t){return l(this,null,function*(){var r;if(((r=this.store.getState().tracks[e])==null?void 0:r.enabled)===t){this.logPossibleInconsistency(`local track[${e}] enabled state - ${t}`);return}this.setState(n=>{n.tracks[e]?n.tracks[e].displayEnabled=t:this.logPossibleInconsistency("track id not found for setEnabled")},"displayEnabled");try{yield this.setEnabledSDKTrack(e,t),this.syncRoomState("setEnabled")}catch(n){throw this.setState(c=>{c.tracks[e].displayEnabled=!t},"rollbackDisplayEnabled"),this.hmsNotifications.sendError(g.convertException(n)),n}let o=t?a.HMSTrackUpdate.TRACK_UNMUTED:a.HMSTrackUpdate.TRACK_MUTED;this.hmsNotifications.sendTrackUpdate(o,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(C);t&&(yield this.setSDKLocalVideoTrackSettings(t,e),this.syncRoomState("setVideoSettings"))})}sendMessage(e){this.sendBroadcastMessage(e)}sendBroadcastMessage(e,t){return l(this,null,function*(){let i=yield this.sdk.sendBroadcastMessage(e,t);this.updateMessageInStore(i,{message:e,type:t})})}sendGroupMessage(e,t,i){return l(this,null,function*(){let o=this.store.getState(K),r=t.map(c=>o[c]),n=yield this.sdk.sendGroupMessage(e,r,i);this.updateMessageInStore(n,{message:e,recipientRoles:t,type:i})})}sendDirectMessage(e,t,i){return l(this,null,function*(){let o=this.hmsSDKPeers[t],r=yield this.sdk.sendDirectMessage(e,o,i);this.updateMessageInStore(r,{message:e,recipientPeer:o.peerId,type:i})})}updateMessageInStore(e,t){if(!e)throw m.w("sendMessage","Failed to send message",t),Error(`sendMessage Failed - ${JSON.stringify(t)}`);let i=g.convertMessage(e);return i.read=!0,i.senderName="You",i.ignored=this.ignoredMessageTypes.includes(i.type),this.putMessageInStore(i),i}setMessageRead(e,t){this.setState(i=>{t?i.messages.byID[t]?i.messages.byID[t].read=e:this.logPossibleInconsistency("no message with id is found"):i.messages.allIDs.forEach(o=>{i.messages.byID[o].read=e})},"setMessageRead")}attachVideo(e,t){return l(this,null,function*(){if(this.localAndVideoUnmuting(e))return new Promise(i=>{let o=this.store.subscribe(r=>l(this,null,function*(){r&&(yield this.attachVideoInternal(e,t),o(),i())}),de)});yield this.attachVideoInternal(e,t)})}detachVideo(e,t){return l(this,null,function*(){let i=this.hmsSDKTracks[e];i&&i.type==="video"?(yield i.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")})}validateVideoPluginSupport(e){let t={};if(t.isSupported=!1,!e)return m.w("no plugin passed in for checking support"),t.errMsg="no plugin passed in for checking support",t;let i=this.store.getState(C);if(i){let o=this.hmsSDKTracks[i];o?t=o.validatePlugin(e):(m.w(`track ${i} not present, unable to validate plugin`),t.errMsg=`track ${i} not present, unable to validate plugin`)}return t}validateAudioPluginSupport(e){let t={};if(t.isSupported=!1,!e)return m.w('no plugin passed in for checking support"'),t.errMsg='no plugin passed in for checking support"',t;let i=this.store.getState(A);if(i){let o=this.hmsSDKTracks[i];o?t=o.validatePlugin(e):(m.w(`track ${i} not present, unable to validate plugin`),t.errMsg=`track ${i} 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,i=!1){return l(this,null,function*(){let o=this.hmsSDKPeers[e];if(!o){this.logPossibleInconsistency(`Unknown peer ID given ${e} for changerole`);return}yield this.sdk.changeRole(o,t,i)})}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 i={requestedBy:t,role:e.role,token:e.token};yield this.sdk.acceptChangeRole(i),this.removeRoleChangeRequest(e)})}initAppData(e){this.setState(t=>{t.appData=e},"initAppData")}setAppData(e,t,i){let o=(t==null?void 0:t.constructor.name)==="Object";this.setState(r=>{i&&o?Object.assign(r.appData[e],t):r.appData[e]=t},`setAppData-${e}`)}rejectChangeRole(e){this.removeRoleChangeRequest(e)}endRoom(e,t){return l(this,null,function*(){let i=this.store.getState(Le);if(!(i==null?void 0:i.endRoom)){m.w("You are not allowed to perform this action - endRoom");return}let o=this.store.getState(b);this.setState(r=>{r.room.roomState=T.Disconnecting},"endingRoom");try{yield this.sdk.endRoom(e,t),this.resetState("endRoom")}catch(r){m.e("error in ending room - ",r),this.setState(n=>{n.room.roomState=o},"revertEndRoom")}})}removePeer(e,t){return l(this,null,function*(){let i=this.hmsSDKPeers[e];if(i&&!i.isLocal)yield this.sdk.removePeer(i,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 i=this.hmsSDKTracks[e];i&&yt(i)?yield this.sdk.changeTrackState(i,t):this.logPossibleInconsistency(`No remote track with ID ${e} found for change track state`)}else Array.isArray(e)&&e.forEach(i=>this.setRemoteTrackEnabled(i,t))})}setRemoteTracksEnabled(e){return l(this,null,function*(){let t={enabled:e.enabled,type:e.type,source:e.source};if(e.roles){let i=this.store.getState(K);t.roles=e.roles.map(o=>i[o])}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 i of e)this.ignoredMessageTypes.includes(i)||this.ignoredMessageTypes.push(i)}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),onNetworkQuality:this.onNetworkQuality.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)}),this.sdk.addConnectionQualityListener({onConnectionQualityUpdate:this.onConnectionQualityUpdate.bind(this)})}onRemovedFromRoom(e){var o;let t=this.store.getState(O((o=e.requestedBy)==null?void 0:o.peerId));this.hmsNotifications.sendLeaveRoom(W(N({},e),{requestedBy:t||void 0}));let i=e.roomEnded||!t?"roomEnded":"removedFromRoom";m.i(`resetting state after peer removed ${i}`,e),this.resetState(i)}onDeviceChange(e){let t=e.devices;if(!t)return;let i=this.store.getState(L);if(this.setState(o=>{U(o.devices.audioInput,t.audioInput)||(o.devices.audioInput=t.audioInput),U(o.devices.videoInput,t.videoInput)||(o.devices.videoInput=t.videoInput),U(o.devices.audioOutput,t.audioOutput)||(o.devices.audioOutput=t.audioOutput),this.hmsSDKPeers[i==null?void 0:i.id]&&Object.assign(o.settings,this.getMediaSettings(this.hmsSDKPeers[i==null?void 0:i.id]))},"deviceChange"),e.selection){let o=g.convertDeviceChangeUpdate(e);this.hmsNotifications.sendDeviceChange(o)}}sdkPreviewWithListeners(e){return l(this,null,function*(){yield this.sdk.preview(e,{onPreview:this.onPreview.bind(this),onError:this.onError.bind(this),onReconnected:this.onReconnected.bind(this),onReconnecting:this.onReconnecting.bind(this),onDeviceChange:this.onDeviceChange.bind(this),onRoomUpdate:this.onRoomUpdate.bind(this),onPeerUpdate:this.onPeerUpdate.bind(this),onNetworkQuality:this.onNetworkQuality.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})})}onNetworkQuality(e){this.setState(t=>{var o;let i=t.room.localPeer||((o=this.sdk.getLocalPeer())==null?void 0:o.peerId);i&&(t.connectionQualities[i]={peerID:i,downlinkQuality:e})},"ConnectionQuality")}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 i=this.hmsSDKTracks[e];i&&i.type==="video"?(yield i.addSink(t),this.updateVideoLayer(e,"attachVideo")):this.logPossibleInconsistency("no video track found to add sink")})}syncRoomState(e){m.time(`store-sync-${e}`);let t={},i=[],o={},r={},n={},c=this.sdk.getPeers();for(let k of c){let w=g.convertPeer(k);t[w.id]=w,i.push(w.id),this.hmsSDKPeers[w.id]=k;let J=[k.audioTrack,k.videoTrack,...k.auxiliaryTracks];for(let le of J){if(!le)continue;let Ge=g.convertTrack(le);o[Ge.id]=Ge,r[le.trackId]=le}w.isLocal&&Object.assign(n,this.getMediaSettings(k))}let p=this.sdk.getRecordingState(),R=this.sdk.getRTMPState(),j=this.sdk.getHLSState();this.setState(k=>{k.room.peers=i;let w=k.peers,J=k.tracks;Ze(w,t),et(J,o),Object.assign(k.settings,n),this.hmsSDKTracks=r,Object.assign(k.roles,g.convertRoles(this.sdk.getRoles())),Object.assign(k.playlist,g.convertPlaylist(this.sdk.getPlaylistManager())),Object.assign(k.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=T.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(i=>{Object.assign(i.room,g.convertRoom(e)),i.room.isConnected=!0,i.room.roomState=T.Connected},"joined"),t.onProgress(this.setProgress),t.onNewTrackStart(i=>{this.syncPlaylistState(`${i.type}PlaylistUpdate`)}),t.onPlaylistEnded(i=>{this.syncPlaylistState(`${i}PlaylistEnded`)}),t.onCurrentTrackEnded(i=>{this.hmsNotifications.sendPlaylistTrackEnded(g.convertPlaylistItem(t,i)),this.syncPlaylistState(`${i.type}PlaylistItemEnded`)})}onRoomUpdate(e,t){this.setState(i=>{Object.assign(i.room,g.convertRoom(t))},"RoomUpdate")}onPeerUpdate(e,t){if(![a.HMSPeerUpdate.BECAME_DOMINANT_SPEAKER,a.HMSPeerUpdate.RESIGNED_DOMINANT_SPEAKER].includes(e)){if(Array.isArray(t)){this.syncRoomState("peersJoined");let i=[];for(let o of t){let r=this.store.getState(O(o.peerId));r&&i.push(r)}this.hmsNotifications.sendPeerList(i);return}this.sendPeerUpdateNotification(e,t)}}onTrackUpdate(e,t,i){if(e===a.HMSTrackUpdate.TRACK_REMOVED)this.hmsNotifications.sendTrackUpdate(e,t.trackId),this.handleTrackRemove(t,i);else{let o=e===a.HMSTrackUpdate.TRACK_ADDED?"trackAdded":"trackUpdate";this.syncRoomState(o),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(Ae)+1),t.messages.byID[e.id]=e,t.messages.allIDs.push(e.id)},"newMessage")}onAudioLevelUpdate(e){this.setState(t=>{let i={};e.forEach(r=>{if(!r.track||!r.peer)return;let n=r.track.trackId;i[n]=r.audioLevel,t.speakers[n]||(t.speakers[n]={audioLevel:r.audioLevel,peerID:r.peer.peerId,trackID:n})});let o=Object.entries(t.speakers);for(let[r,n]of o)n.audioLevel=i[r]||0,n.audioLevel===0&&delete t.speakers[r]},"audioLevel")}onConnectionQualityUpdate(e){this.setState(t=>{let i=new Set;e.forEach(r=>{let n=r.peerID;!n||(i.add(n),t.connectionQualities[n]?Object.assign(t.connectionQualities[n],r):t.connectionQualities[n]=r)});let o=Object.keys(t.connectionQualities);for(let r of o)i.has(r)||delete t.connectionQualities[r]},"connectionQuality")}onChangeTrackStateRequest(e){var r;let t=this.store.getState(O((r=e.requestedBy)==null?void 0:r.peerId)),i=this.getStoreLocalTrackIDfromSDKTrack(e.track),o=this.store.getState(re(i));if(!o)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:o,enabled:e.enabled})}onChangeMultiTrackStateRequest(e){var r;let t=this.store.getState(O((r=e.requestedBy)==null?void 0:r.peerId));e.enabled||this.syncRoomState("changeMultiTrackStateRequest");let i=[],o=this.store.getState(y);for(let n of e.tracks){let c=this.getStoreLocalTrackIDfromSDKTrack(n);c&&o[c]&&i.push(o[c])}this.hmsNotifications.sendChangeMultiTrackStateRequest({requestedBy:t||void 0,tracks:i,enabled:e.enabled,type:e.type,source:e.source})}onReconnected(){this.syncRoomState("reconnectedSync"),this.hmsNotifications.sendReconnected(),this.setState(e=>{e.room.roomState=e.room.isConnected?T.Connected:T.Preview},"reconnected")}onReconnecting(e){let t=g.convertException(e);m.e("Reconnection: received error from sdk",t),this.hmsNotifications.sendReconnecting(t),this.setState(i=>{i.room.roomState=T.Reconnecting,i.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(i=>{i.room.roomState=T.Failed,i.errors.push(t)},"errorTerminal")):this.store.getState().errors.length<50&&this.setState(o=>{o.errors.push(t)},"error"),this.syncRoomState("errorSync"),this.hmsNotifications.sendError(t),m.e("received error from sdk",t)}updateVideoLayer(e,t){let i=this.hmsSDKTracks[e];i&&i instanceof ne.HMSRemoteVideoTrack&&this.setState(o=>{o.tracks[e].layer=i.getSimulcastLayer(),o.tracks[e].degraded=i.degraded},t)}handleTrackRemove(e,t){this.setState(i=>{let o=i.peers[t.peerId],r=i.tracks,n=e.trackId;if(this.isSameStoreSDKTrack(n,o==null?void 0:o.audioTrack))o==null||delete o.audioTrack;else if(this.isSameStoreSDKTrack(n,o==null?void 0:o.videoTrack))o==null||delete o.videoTrack;else{let c=o==null?void 0:o.auxiliaryTracks.indexOf(n);c>-1&&this.isSameStoreSDKTrack(n,o==null?void 0:o.auxiliaryTracks[c])&&(o==null||o.auxiliaryTracks.splice(c,1))}delete r[n],delete this.hmsSDKTracks[n]},"trackRemoved")}setEnabledSDKTrack(e,t){return l(this,null,function*(){let i=this.hmsSDKTracks[e];i?yield i.setEnabled(t):this.logPossibleInconsistency(`track ${e} not present, unable to enabled/disable`)})}setSDKLocalVideoTrackSettings(e,t){return l(this,null,function*(){let i=this.hmsSDKTracks[e];i?yield i.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}setSDKLocalAudioTrackSettings(e,t){return l(this,null,function*(){let i=this.hmsSDKTracks[e];i?yield i.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}getMediaSettings(e){var r;let t=this.store.getState(Ie),i=e.audioTrack,o=e.videoTrack;return{audioInputDeviceId:(i==null?void 0:i.settings.deviceId)||t.audioInputDeviceId,videoInputDeviceId:(o==null?void 0:o.settings.deviceId)||t.videoInputDeviceId,audioOutputDeviceId:(r=this.sdk.getAudioOutput().getDevice())==null?void 0:r.deviceId}}setTrackVolume(e,t){let i=this.hmsSDKTracks[t];i?i instanceof ne.HMSAudioTrack?(i.setVolume(e),this.setState(o=>{let r=o.tracks[t];r&&(r.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 i=this.store.getState(Ee),o=this.store.getState(de);return i&&!o}logPossibleInconsistency(e){m.w("possible inconsistency detected - ",e)}addRemoveVideoPlugin(e,t,i){return l(this,null,function*(){if(!e){m.w("Invalid plugin received in store");return}let o=this.store.getState(C);if(o){let r=this.hmsSDKTracks[o];r?(t==="add"?yield r.addPlugin(e,i):t==="remove"&&(yield r.removePlugin(e)),this.syncRoomState(`${t}VideoPlugin`)):this.logPossibleInconsistency(`track ${o} 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 i=this.store.getState(A);if(i){let o=this.hmsSDKTracks[i];o?(t==="add"?yield o.addPlugin(e):t==="remove"&&(yield o.removePlugin(e)),this.syncRoomState(`${t}AudioPlugin`)):this.logPossibleInconsistency(`track ${i} not present, unable to remove plugin`)}})}isSameStoreSDKTrack(e,t){var i;return t?((i=this.hmsSDKTracks[t])==null?void 0:i.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 i=t.roleChangeRequests.findIndex(o=>o.token===e.token);i!==-1&&t.roleChangeRequests.splice(i,1)},"removeRoleChangeRequest")}onRoleUpdate(){this.syncRoomState("roleUpdate")}getStoreLocalTrackIDfromSDKTrack(e){return this.store.getState(be).find(i=>this.hmsSDKTracks[i].trackId===e.trackId)}};var Rt=D(require("eventemitter2"));var $e="hmsNotification",Fe=class{constructor(e){this.id=0;this.onNotification=(e,t)=>{let i=o=>{if(t){let r;if(Array.isArray(t)?r=t.includes(o.type):r=t===o.type,!r)return}e(o)};return this.eventEmitter.addListener($e,i),()=>{this.eventEmitter.removeListener($e,i)}};this.store=e,this.eventEmitter=new Rt.EventEmitter2}sendPlaylistTrackEnded(e){let t=this.createNotification(h.PLAYLIST_TRACK_ENDED,e,P.INFO);this.emitEvent(t)}sendDeviceChange(e){var i;let t=this.createNotification(h.DEVICE_CHANGE_UPDATE,e,e.error?P.ERROR:P.INFO,`Selected ${e.type} device - ${(i=e.selection)==null?void 0:i.label}`);this.emitEvent(t)}sendLeaveRoom(e){var o;let t=(o=e.requestedBy)==null?void 0:o.name,i=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(i)}sendPeerList(e){let t=this.createNotification(h.PEER_LIST,e,P.INFO);this.emitEvent(t)}sendPeerUpdate(e,t){let i=this.store.getState(O(t==null?void 0:t.id))||t,o=ft[e];if(o){let r=this.createNotification(o,i,P.INFO);this.emitEvent(r)}}sendTrackUpdate(e,t){let i=this.store.getState(re(t)),o=kt[e];if(o){let r=this.createNotification(o,i,P.INFO);this.emitEvent(r)}}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($e,e)}createNotification(e,t,i,o=""){return this.id++,{id:this.id,type:e,message:o,data:t,severity:i}}};var Dt=D(require("@100mslive/hms-video")),he=s=>Dt.isBrowser?`${s} ${document.title}`:s;var It=(s,e,t)=>{let i;t.getState(b)===T.Connected&&(i=vt(s,e,t)),t.subscribe(o=>{[T.Connected,T.Reconnecting].includes(o)?i||(i=vt(s,e,t)):i&&(ri(e),i())},b)},vt=(s,e,t)=>{var r;let i=ii(t,e),o=(r=s.getWebrtcInternals())==null?void 0:r.onStatsChange(n=>oi(e,n,t));return()=>{i(),o&&o()}},ii=(s,e)=>{let t,i,o;return s.getState(q)?e.namedSetState(r=>{r.localPeer.id=s.getState(q)},"localpeer-id"):t=s.subscribe(r=>{r&&e.namedSetState(n=>{n.localPeer.id=r},"localpeer-id")},q),s.getState(C)?e.namedSetState(r=>{r.localPeer.videoTrack=s.getState(C)},"localpeer-videotrack-id"):i=s.subscribe(r=>{r&&e.namedSetState(n=>{n.localPeer.videoTrack=r},"localpeer-videotrack-id")},C),s.getState(A)?e.namedSetState(r=>{r.localPeer.videoTrack=s.getState(A)},"localpeer-audiotrack-id"):o=s.subscribe(r=>{r&&e.namedSetState(n=>{n.localPeer.videoTrack=r},"localpeer-audiotrack-id")},A),()=>{t==null||t(),i==null||i(),o==null||o()}},oi=(s,e,t)=>{let i=t.getState(y);s.namedSetState(o=>{let r={},n=Object.keys(i);for(let R of n){let j=e.getTrackStats(R);j&&(r[R]=j)}He(o.trackStats,r);let p={[t.getState(q)]:e.getLocalPeerStats()};He(o.peerStats,p)},"webrtc-stats")},ri=(s,e="resetState")=>{s.namedSetState(t=>{Object.assign(t,z())},e)};var ae=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(i=>{var o,r;this.hmsStore.getState(b)==="Connected"?i((r=(o=this.sdk)==null?void 0:o.getWebrtcInternals())==null?void 0:r.getPublishPeerConnection()):this.hmsStore.subscribe(n=>{var c,p;n==="Connected"&&i((p=(c=this.sdk)==null?void 0:c.getWebrtcInternals())==null?void 0:p.getPublishPeerConnection())},b)}),this.getSubscribePeerConnection=()=>new Promise(i=>{var o,r;this.hmsStore.getState(b)==="Connected"?i((r=(o=this.sdk)==null?void 0:o.getWebrtcInternals())==null?void 0:r.getSubscribePeerConnection()):this.hmsStore.subscribe(n=>{var c,p;n==="Connected"&&i((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 H=D(require("reselect"));var ni=s=>s.localPeer.id,ai=s=>s.localPeer.audioTrack,ci=s=>s.localPeer.videoTrack,li=(s,e)=>e,Si=(s,e)=>e,We=s=>s.trackStats,bt=s=>s.peerStats,B=(0,H.createSelector)([bt,ni],(s,e)=>s[e]),di=(0,H.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.packetsLost}),ui=(0,H.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.jitter}),pi=(0,H.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bitrate}),Mi=(0,H.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bitrate}),mi=(0,H.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.availableOutgoingBitrate}),hi=(0,H.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.availableIncomingBitrate}),gi=(0,H.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bytesSent}),Ti=(0,H.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bytesReceived}),Hi=(0,H.createSelector)([bt,li],(s,e)=>e?s[e]:void 0),G=(0,H.createSelector)([We,Si],(s,e)=>e?s[e]:void 0),yi=u(Hi),fi=u(G),ki=u((0,H.createSelector)(G,s=>s==null?void 0:s.bitrate)),Pi=u((0,H.createSelector)(G,s=>s==null?void 0:s.bytesReceived)),Ri=u((0,H.createSelector)(G,s=>s==null?void 0:s.framesPerSecond)),Di=u((0,H.createSelector)(G,s=>s==null?void 0:s.jitter)),Ii=u((0,H.createSelector)(G,s=>s==null?void 0:s.packetsLost)),Qe=(0,H.createSelector)([We,ai],(s,e)=>e?s[e]:void 0),ce=(0,H.createSelector)([We,ci],(s,e)=>e?s[e]:void 0),vi=(0,H.createSelector)(Qe,s=>s==null?void 0:s.bitrate),bi=(0,H.createSelector)(ce,s=>s==null?void 0:s.bitrate),Ei=(0,H.createSelector)(Qe,s=>s==null?void 0:s.bytesSent),Ai=(0,H.createSelector)(ce,s=>s==null?void 0:s.bytesSent),Ci=(0,H.createSelector)(ce,s=>s==null?void 0:s.framesPerSecond),Li=(0,H.createSelector)(ce,s=>s==null?void 0:s.qualityLimitationReason),Et={localPeerStats:B,packetsLost:di,jitter:ui,publishBitrate:pi,subscribeBitrate:Mi,availablePublishBitrate:mi,availableSubscribeBitrate:hi,totalBytesSent:gi,totalBytesReceived:Ti,peerStatsByID:yi,trackStatsByID:fi,bitrateByTrackID:ki,bytesReceivedByTrackID:Pi,framerateByTrackID:Ri,jitterByTrackID:Di,packetsLostByTrackID:Ii,localAudioTrackStats:Qe,localVideoTrackStats:ce,localAudioTrackBitrate:vi,localVideoTrackBitrate:bi,localAudioTrackBytesSent:Ei,localVideoTrackBytesSent:Ai,localVideoTrackFramerate:Ci,localVideoTrackQualityLimitationReason:Li};var x=class{constructor(e,t,i){this.getStats=()=>(this.stats||(this.stats=new ae(this.store,this.sdk)),this.stats);e?this.store=e:this.store=x.createNewHMSStore(he("HMSStore"),X),i?this.notifications=i:this.notifications=new Fe(this.store),t?this.actions=t:(this.sdk=new ge.HMSSdk,this.actions=new je(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 i=(0,Ct.default)(()=>t()),o=i.setState;i.setState=c=>{let p=typeof c=="function"?(0,At.default)(c):c;o(p)};let r=i.getState;i.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(r()),k=performance.now()-R;return k>1&&(window.expensiveSelectors=window.expensiveSelectors||new Map,window.expensiveSelectors.set(p,k)),j}return r()},x.compareWithShallowCheckInSubscribe(i);let n=x.setUpDevtools(i,e);return W(N({},i),{namedSetState:n})}static makeStoreTriggerOnSubscribe(e){let t=e.subscribe;e.subscribe=(i,o,r)=>(i(e.getState(o),void 0),t(i,o,r))}static compareWithShallowCheckInSubscribe(e){let t=e.subscribe;e.subscribe=(i,o,r)=>(o||(o=n=>n),r=r||Lt.default,t(i,o,r))}static setUpDevtools(e,t){let i;try{i=window.__REDUX_DEVTOOLS_EXTENSION__||window.top.__REDUX_DEVTOOLS_EXTENSION__}catch(n){}if(!i)return n=>{e.setState(n)};let o=i.connect(x.devtoolsOptions(t));o.prefix=t?`${t} > `:"";let r=e.setState;return e.setState=n=>{r(n),o.send(`${o.prefix}setState`,e.getState())},o.subscribe(x.devtoolsSubscribe(o,e,r)),o.send("setUpStore",e.getState()),(n,c)=>{r(n);let p=c||`${o.prefix}action`;o.send(p,e.getState())}}static devtoolsOptions(e){return{name:e,actionsBlacklist:["audioLevel","playlistProgress","connectionQuality"]}}static devtoolsSubscribe(e,t,i){return o=>{var r,n,c,p;if(o.type==="DISPATCH"&&o.state)["JUMP_TO_ACTION","JUMP_TO_STATE"].includes(o.payload.type)?i(JSON.parse(o.state)):t.setState(JSON.parse(o.state));else if(o.type==="DISPATCH"&&((r=o.payload)==null?void 0:r.type)==="COMMIT")e.init(t.getState());else if(o.type==="DISPATCH"&&((n=o.payload)==null?void 0:n.type)==="IMPORT_STATE"){let R=(c=o.payload.nextLiftedState)==null?void 0:c.actionsById;(((p=o.payload.nextLiftedState)==null?void 0:p.computedStates)||[]).forEach(({state:k},w)=>{let J=R[w]||`${e.prefix}setState`;w===0?e.init(k):(i(k),e.send(J,t.getState()))})}}}};
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- var Tt=Object.defineProperty,Ht=Object.defineProperties;var yt=Object.getOwnPropertyDescriptors;var be=Object.getOwnPropertySymbols;var ft=Object.prototype.hasOwnProperty,kt=Object.prototype.propertyIsEnumerable;var Ee=(s,e,t)=>e in s?Tt(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,N=(s,e)=>{for(var t in e||(e={}))ft.call(e,t)&&Ee(s,t,e[t]);if(be)for(var t of be(e))kt.call(e,t)&&Ee(s,t,e[t]);return s},F=(s,e)=>Ht(s,yt(e));var c=(s,e,t)=>new Promise((i,o)=>{var r=u=>{try{a(t.next(u))}catch(P){o(P)}},n=u=>{try{a(t.throw(u))}catch(P){o(P)}},a=u=>u.done?i(u.value):Promise.resolve(u.value).then(r,n);a((t=t.apply(s,e)).next())});import bs from"immer";import Es from"zustand/vanilla";import As from"zustand/shallow";import{HMSSdk as Cs,isBrowser as Ls}from"@100mslive/hms-video";var g;(function(a){a.Disconnected="Disconnected",a.Preview="Preview",a.Connecting="Connecting",a.Connected="Connected",a.Reconnecting="Reconnecting",a.Disconnecting="Disconnecting",a.Failed="Failed"})(g||(g={}));var se=()=>({room:{id:"",isConnected:!1,name:"",peers:[],shareableLink:"",localPeer:"",hasWaitingRoom:!1,roomState:g.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:{},connectionQualities:{},settings:{audioInputDeviceId:"",audioOutputDeviceId:"",videoInputDeviceId:""},devices:{audioInput:[],audioOutput:[],videoInput:[]},roles:{},appData:{},roleChangeRequests:[],errors:[]}),ie=()=>({peerStats:{},trackStats:{},localPeer:{id:""}});var Ae;(function(e){e.CHAT="chat"})(Ae||(Ae={}));var R;(function(i){i.INFO="info",i.ERROR="error",i.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 M;(function(t){t.audio="audio",t.video="video"})(M||(M={}));import{HMSException as qs,HMSSimulcastLayer as js,HMSPeerUpdate as D,HMSRoomUpdate as $s,HMSTrackUpdate as A,HMSLogLevel as k,HMSAudioPluginType as Pt,HMSVideoPluginType as Rt,parsedUserAgent as Dt}from"@100mslive/hms-video";import{HMSLocalAudioTrack as xe,HMSLocalVideoTrack as Oe,HMSRemoteAudioTrack as vt,HMSRemoteVideoTrack as bt}from"@100mslive/hms-video";var Ce=(s,e)=>{let t=me(Object.keys(s),Object.keys(e));for(let i of t){let o=s[i],r=e[i];ue(o,r)?(U(o.auxiliaryTracks,r.auxiliaryTracks)&&(r.auxiliaryTracks=o.auxiliaryTracks),Object.assign(o,r)):pe(o,r)?delete s[i]:Me(o,r)&&(s[i]=r)}},Le=(s,e)=>{let t=me(Object.keys(s),Object.keys(e));for(let i of t){let o=s[i],r=e[i];ue(o,r)?(It(o,r),Object.assign(o,r)):pe(o,r)?delete s[i]:Me(o,r)&&(s[i]=r)}},de=(s,e)=>{let t=me(Object.keys(s),Object.keys(e));for(let i of t){let o=s[i],r=e[i];ue(o,r)?Object.assign(o,r):pe(o,r)?delete s[i]:Me(o,r)&&(s[i]=r)}},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 i of s)t.add(i);for(let i of e)t.add(i);return Array.from(t)};var h=class{static convertPeer(e){var t,i,o;return{id:e.peerId,name:e.name,roleName:(t=e.role)==null?void 0:t.name,isLocal:e.isLocal,videoTrack:(i=e.videoTrack)==null?void 0:i.trackId,audioTrack:(o=e.audioTrack)==null?void 0:o.trackId,auxiliaryTracks:e.auxiliaryTracks.map(r=>r.trackId),customerUserId:e.customerUserId,customerDescription:e.metadata,metadata:e.metadata,joinedAt:e.joinedAt}}static convertTrack(e,t){let i={id:e.trackId,source:e.source,type:e.type,enabled:e.enabled,displayEnabled:e.enabled,peerId:e.peerId||t};return this.enrichTrack(i,e),i}static enrichTrack(e,t){let i=t.getMediaTrackSettings();e.source==="screen"&&e.type==="video"&&(e.displaySurface=i.displaySurface),e.height=i.height,e.width=i.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 i;t instanceof Oe||t instanceof xe?e.deviceID=t.settings.deviceId:e.deviceID=(i=t.getMediaTrackSettings())==null?void 0:i.deviceId}static enrichVideoTrack(e,t){t instanceof bt&&(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 r,n;let{recording:t,rtmp:i,hls:o}=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:(n=(r=e.localPeer)==null?void 0:r.peerId)!=null?n:"",hasWaitingRoom:e.hasWaitingRoom,shareableLink:e.shareableLink,recording:t,rtmp:i,hls:o,sessionId:e.sessionId,startedAt:e.startedAt,joinedAt:e.joinedAt,peerCount:e.peerCount}}static convertMessage(e){var t,i,o;return{sender:e.sender.peerId,senderName:e.sender.name,senderRole:(t=e.sender.role)==null?void 0:t.name,senderUserId:e.sender.customerUserId,recipientPeer:(i=e.recipientPeer)==null?void 0:i.peerId,recipientRoles:(o=e.recipientRoles)==null?void 0:o.map(r=>r.name),time:e.time,type:e.type,message:e.message}}static convertRoles(e){let t={};return e&&e.forEach(i=>{t[i.name]=i}),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),i=this.getConvertedPlaylistType(e,M.video);return{audio:t,video:i}}static convertPlaylistItem(e,t){let i=t.type,o=e.getCurrentSelection(i),r=e.isPlaying(i),n=t.url===(o==null?void 0:o.url);return F(N({},t),{type:t.type,selected:n,playing:n&&r})}static getConvertedPlaylistType(e,t){let i={},o=e.getCurrentSelection(t),r=e.getCurrentProgress(t),n=e.getVolume(t),a=e.getList(t),u=e.getCurrentIndex(t);return e.getList(t).forEach(P=>{i[P.id]=h.convertPlaylistItem(e,P)}),{list:i,selection:{id:o==null?void 0:o.id,hasPrevious:u>0,hasNext:u<a.length-1},progress:r,volume:n,currentTime:e.getCurrentTime(t),playbackRate:e.getPlaybackRate(t)}}static convertRecordingStreamingState(e,t,i){var o;return{recording:{browser:N({running:!1},e==null?void 0:e.browser),server:N({running:!1},e==null?void 0:e.server),hls:N({running:!1},e==null?void 0:e.hls)},rtmp:N({running:!1},t),hls:{variants:((o=i==null?void 0:i.variants)==null?void 0:o.map(r=>r))||[],running:!!(i==null?void 0:i.running),error:i==null?void 0:i.error}}}};import{createSelector as d}from"reselect";function j(s,e,t=Et){let i,o;if(e)for(let r of e.auxiliaryTracks){let n=s[r];t(n)&&(o=Y(n)?n:o,i=X(n)?n:i)}return{video:i,audio:o}}function Y(s){return s&&s.type==="audio"}function X(s){return s&&s.type==="video"}function Et(s){return s&&s.source==="screen"}function oe(s){return s&&s.source==="audioplaylist"}function z(s){return s&&s.source==="videoplaylist"}function we(s){return Boolean(s==null?void 0:s.degraded)}function W(s,e){return e&&s.tracks[e]?s.tracks[e].enabled:!1}function Ne(s,e){return e&&s.tracks[e]?s.tracks[e].displayEnabled:!1}var I=s=>s.room,Yi=d(I,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,Ve=s=>s.appData,Xi=s=>s.devices,At=s=>s.speakers,zi=s=>s.connectionQualities,Ct=d([I],s=>s&&s.isConnected),Zi=d([Ct,I],(s,e)=>s?e.peerCount||e.peers.length:Math.max(e.peerCount||e.peers.length-1,0)),Q=d([I,b],(s,e)=>s.peers.map(t=>e[t])),Lt=d(H,s=>Object.values(s)),x=d(I,b,(s,e)=>e[s.localPeer]),$=d(I,s=>s.localPeer),C=d(x,s=>s==null?void 0:s.audioTrack),L=d(x,s=>s==null?void 0:s.videoTrack),xt=d(x,s=>s==null?void 0:s.auxiliaryTracks),Be=d([C,L,xt],(s,e,t)=>{let i=[...t];return s&&i.unshift(s),e&&i.unshift(e),i}),eo=d(Q,s=>s.filter(e=>!e.isLocal)),to=d(b,At,(s,e)=>{let t=Object.entries(e).sort((i,o)=>{var a,u;let r=((a=i[1])==null?void 0:a.audioLevel)||0;return(((u=o[1])==null?void 0:u.audioLevel)||0)>r?1:-1});if(t.length>0&&t[0][1].audioLevel&&t[0][1].audioLevel>0){let i=t[0][1].peerID;if(i in s)return s[i]}return null}),so=s=>{let e=x(s);return W(s,e==null?void 0:e.audioTrack)},he=s=>{let e=x(s);return W(s,e==null?void 0:e.videoTrack)},qe=s=>{let e=x(s);return Ne(s,e==null?void 0:e.videoTrack)},ge=d(x,H,(s,e)=>{let{video:t,audio:i}=j(e,s);return!!(t||i)}),Ot=d(b,H,(s,e)=>{let t;for(let i in s){let o=s[i],{video:r,audio:n}=j(e,o);if(r)return o;n&&!t&&(t=o)}return t}),io=d(Ot,s=>!!s),oo=d(b,H,(s,e)=>{for(let t in s){let i=s[t],{audio:o,video:r}=j(e,i);if(!r&&!!o)return i}}),ro=d(b,H,(s,e)=>{let t=[],i=[];for(let o in s){let r=s[o],{video:n,audio:a}=j(e,r);n?t.push(r):a&&i.push(r)}return t.concat(i)}),no=d(b,H,(s,e)=>{for(let t in e){let i=e[t];if(z(i)&&X(i)&&i.peerId)return s[i.peerId]}}),ao=d(b,H,(s,e)=>{for(let t in e){let i=e[t];if(oe(i)&&i.peerId)return s[i.peerId]}}),co=d(Lt,s=>s.filter(we)),je=d(_e,s=>s.length),lo=d(Ue,s=>Object.values(s).filter(e=>!e.read).length),re=d(_e,Ue,(s,e)=>{let t=[];return s.forEach(i=>{t.push(e[i])}),t}),E=d([I],s=>s&&s.roomState),So=d(E,s=>s===g.Preview),$e=d(I,s=>s.roomState!==g.Disconnected),K=s=>s.roles,uo=d([K],s=>Object.keys(s)),ne=d([x,K],(s,e)=>(s==null?void 0:s.roleName)?e[s.roleName]:null),po=d([ne],s=>{var e;return((e=s==null?void 0:s.subscribeParams)==null?void 0:e.subscribeToRoles)?s.subscribeParams.subscribeToRoles.length>0:!1}),Fe=d(ne,s=>s==null?void 0:s.permissions),Mo=d(I,s=>s.recording),mo=d(I,s=>s.rtmp),ho=d(I,s=>s.hls),go=d(I,s=>s.sessionId),To=d(I,s=>s.startedAt);import{createSelector as We}from"reselect";var Qe=(s=M.audio)=>e=>e.playlist[s].list,Te=(s=M.audio)=>e=>e.playlist[s].selection,Ge=(s=M.audio)=>e=>e.playlist[s].progress,Je=(s=M.audio)=>e=>e.playlist[s].currentTime,Ye=(s=M.audio)=>e=>e.playlist[s].playbackRate,Xe=(s=M.audio)=>e=>e.playlist[s].volume,ze=(s=M.audio)=>We(Qe(s),e=>Object.values(e)),Ze=(s=M.audio)=>We(Qe(s),Te(s),(e,t)=>{if(!!t.id)return e[t.id]}),et={selection:Te(M.audio),progress:Ge(M.audio),currentTime:Je(M.audio),playbackRate:Ye(M.audio),volume:Xe(M.audio),list:ze(M.audio),selectedItem:Ze(M.audio)},tt={selection:Te(M.video),progress:Ge(M.video),currentTime:Je(M.video),playbackRate:Ye(M.video),volume:Xe(M.video),list:ze(M.video),selectedItem:Ze(M.video)};import{createSelector as f}from"reselect";function S(s){return e=>t=>s(t,e)}var Z="HMS-Store:",p=class{static v(e,...t){this.log(k.VERBOSE,e,...t)}static d(...e){this.log(k.DEBUG,...e)}static i(...e){this.log(k.INFO,...e)}static w(...e){this.log(k.WARN,...e)}static e(...e){this.log(k.ERROR,...e)}static time(e){this.log(k.TIME,"[HMSPerformanceTiming]",e)}static timeEnd(e){this.log(k.TIMEEND,"[HMSPerformanceTiming]",e,e)}static cleanUp(){performance.clearMarks(),performance.clearMeasures()}static log(e,...t){if(!(this.level.valueOf()>e.valueOf()))switch(e){case k.VERBOSE:{console.log(Z,...t);break}case k.DEBUG:{console.debug(Z,...t);break}case k.INFO:{console.info(Z,...t);break}case k.WARN:{console.warn(Z,...t);break}case k.ERROR:{console.error(Z,...t);break}case k.TIME:{performance.mark(t[1]);break}case k.TIMEEND:{let i=t[0],o=t[1];try{let r=performance.measure(o,o);this.log(k.DEBUG,i,o,r==null?void 0:r.duration),performance.clearMarks(o),performance.clearMeasures(o)}catch(r){this.log(k.DEBUG,i,o,r)}break}}}};p.level=k.VERBOSE;var He=(s,e)=>e,wt=(s,e)=>e,st=(s,e)=>e,Nt=(s,e)=>e,v=f([b,He],(s,e)=>e?s[e]:null),ye=f([H,wt],(s,e)=>e?s[e]:null),_=S(v),xo=S(f([Ve,Nt],(s,e)=>e?s[e]:s)),Oo=S(f(v,s=>s==null?void 0:s.name)),ae=S(ye),Ut=S((s,e)=>{let t=v(s,e);if(t&&t.videoTrack&&t.videoTrack!=="")return s.tracks[t.videoTrack]}),_t=S((s,e)=>{let t=v(s,e);if(t&&t.audioTrack&&t.audioTrack!=="")return s.tracks[t.audioTrack]}),wo=Ut,No=S((s,e)=>{let t=v(s,e);return(t==null?void 0:t.auxiliaryTracks.map(i=>s.tracks[i]))||[]}),it=(s,e)=>e?s.speakers[e]:null,Uo=S(f(it,s=>(s==null?void 0:s.audioLevel)||0)),Kt=(s,e)=>{let t=_t(e)(s);return it(s,t==null?void 0:t.id)},_o=S(f(Kt,s=>(s==null?void 0:s.audioLevel)||0)),Ko=S((s,e)=>{if(e)return s.connectionQualities[e]}),Vo=S((s,e)=>{let t=v(s,e);if(t){let i=t==null?void 0:t.auxiliaryTracks.find(o=>Y(s.tracks[o]));return i?s.tracks[i]:void 0}}),Bo=S(f(H,v,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(i=>{let o=s[i];return z(o)&&X(o)});return t?s[t]:void 0})),qo=S(f(H,v,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(i=>{let o=s[i];return z(o)&&Y(o)});return t?s[t]:void 0})),jo=S(f(H,v,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(i=>{let o=s[i];return oe(o)&&Y(o)});return t?s[t]:void 0})),ot=S(f(H,v,(s,e)=>j(s,e))),$o=s=>f(ot(s),e=>e.video),rt=s=>f(ot(s),e=>e.audio),Fo=S((s,e)=>{let t=v(s,e);return W(s,t==null?void 0:t.audioTrack)}),Wo=S((s,e)=>{let t=v(s,e);return W(s,t==null?void 0:t.videoTrack)}),nt=S((s,e)=>{if(e&&s.tracks[e])return s.tracks[e].volume===0}),Qo=S((s,e)=>{let t=v(s,e);return nt(t==null?void 0:t.audioTrack)(s)}),Go=S((s,e)=>{let t=rt(e)(s);return nt(t==null?void 0:t.id)(s)}),at=S((s,e)=>{let t=ye(s,e);if(t){if(t.type!=="audio"){p.w("Please pass audio track here");return}return t.volume}}),Jo=S((s,e)=>{let t=v(s,e);return at(t==null?void 0:t.audioTrack)(s)}),Yo=S((s,e)=>{let t=rt(e)(s);return at(t==null?void 0:t.id)(s)}),Xo=S((s,e)=>{let t=ye(s,e);if(t){if(t.type!=="video"){p.w("Please pass video track here");return}return t.layer}}),ct=f([re,$,He],(s,e,t)=>{if(!!t)return s.filter(i=>{var o;return!i.recipientPeer&&!((o=i.recipientRoles)==null?void 0:o.length)||![e,t].includes(i.sender)?!1:[e,t].includes(i.recipientPeer)})}),lt=f([re,st],(s,e)=>{if(!!e)return s.filter(t=>{var i,o;return((i=t.recipientRoles)==null?void 0:i.length)?(o=t.recipientRoles)==null?void 0:o.includes(e):!1})}),Vt=f(re,s=>s.filter(e=>{var t;return!e.recipientPeer&&!((t=e.recipientRoles)==null?void 0:t.length)})),Bt=f([lt,st],s=>s?s.filter(e=>!e.read).length:0),qt=f([ct,He],s=>s?s.filter(e=>!e.read).length:0),zo=f(Vt,s=>s.filter(e=>!e.read).length),Zo=S(ct),er=S(lt),tr=S(Bt),sr=S(qt),ir=s=>f([Q],e=>e.filter(t=>t.roleName===s)),or=s=>f(_(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 cr=fe([b,H],(s,e)=>Object.values(s).map(i=>{var o;return{peer:i,isAudioEnabled:i.audioTrack?(o=e[i.audioTrack])==null?void 0:o.enabled:!1}})),jt=s=>s.roleChangeRequests[0]||null,lr=fe([jt,b,K],(s,e,t)=>s?{requestedBy:s.requestedBy?e[s.requestedBy]:void 0,role:t[s.roleName],token:s.token}:null),Sr=fe([ne],s=>{var o;let e=!1,t=!1,i=!1;return((o=s==null?void 0:s.publishParams)==null?void 0:o.allowed)&&(e=s.publishParams.allowed.includes("video"),t=s.publishParams.allowed.includes("audio"),i=s.publishParams.allowed.includes("screen")),{video:e,audio:t,screen:i}});import{createSelector as B}from"reselect";var Mr=s=>B([K],e=>e[s]),$t=B([L,H],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),Ft=B([C,H],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),mr=s=>B([$t],e=>e.includes(s)),hr=s=>B([Ft],e=>e.includes(s)),gr=s=>B(Q,e=>e.find(s)),Tr=s=>B(Q,e=>e.filter(s)),Hr=s=>B(I,e=>e.joinedAt&&Date.now()-e.joinedAt.getTime()<=s);import{HMSAudioTrack as Gt,HMSRemoteVideoTrack as Mt}from"@100mslive/hms-video";import{HMSRemoteAudioTrack as Wt,HMSRemoteVideoTrack as Qt}from"@100mslive/hms-video";function St(s){return s instanceof Wt||s instanceof Qt}var ce=class{constructor(e,t,i,o){this.playlistManager=e;this.syncPlaylistState=i;this.store=o;this.type=t}play(e){return c(this,null,function*(){if(!e){p.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===M.audio?et:tt,t=this.store.getState(e.selection);if(!t.id){p.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 dt={[D.PEER_JOINED]:m.PEER_JOINED,[D.PEER_LEFT]:m.PEER_LEFT,[D.ROLE_UPDATED]:m.ROLE_UPDATED,[D.AUDIO_TOGGLED]:"PEER_AUDIO_UPDATED",[D.VIDEO_TOGGLED]:"PEER_VIDEO_UPDATED",[D.NAME_UPDATED]:m.NAME_UPDATED,[D.METADATA_UPDATED]:m.METADATA_UPDATED},ut={[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},pt={[D.PEER_JOINED]:"peerJoined",[D.PEER_LEFT]:"peerLeft",[D.NAME_UPDATED]:"peerNameUpdated",[D.ROLE_UPDATED]:"peerRoleUpdated",[D.METADATA_UPDATED]:"peerMetadataUpdated"};var ke=class{constructor(e,t,i){this.hmsSDKTracks={};this.hmsSDKPeers={};this.isRoomJoinCalled=!1;this.ignoredMessageTypes=[];this.setProgress=({type:e,progress:t})=>{this.setState(i=>{i.playlist[e].progress=t,i.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 i=this.store.getState(_(t.peerId)),o=pt[e];this.syncRoomState(o),i||(i=this.store.getState(_(t.peerId))),this.hmsNotifications.sendPeerUpdate(e,i)};this.setState=(e,t)=>this.store.namedSetState(e,t);this.store=e,this.sdk=t,this.hmsNotifications=i}refreshDevices(){return c(this,null,function*(){yield this.sdk.refreshDevices()})}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(i=>{i.settings.audioOutputDeviceId=e},"setAudioOutputDevice")}setPreferredLayer(e,t){let i=this.hmsSDKTracks[e];i?i instanceof Mt?(i.preferLayer(t),this.updateVideoLayer(e,"setPreferredLayer")):p.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===g.Preview||t===g.Connecting){this.logPossibleInconsistency("attempting to call preview while room is in preview/connecting");return}try{this.setState(i=>{i.room.roomState=g.Connecting},"connecting"),yield this.sdkPreviewWithListeners(e)}catch(i){throw p.e("Cannot show preview. Failed to connect to room - ",i),i}})}join(e){if(this.isRoomJoinCalled){this.logPossibleInconsistency("room join is called again");return}try{this.isRoomJoinCalled=!0,this.setState(t=>{t.room.roomState=g.Connecting},"join"),this.sdkJoinWithListeners(e)}catch(t){throw this.isRoomJoinCalled=!1,p.e("Failed to connect to room - ",t),t}}leave(){return c(this,null,function*(){if(!this.store.getState($e)){this.logPossibleInconsistency("room leave is called when no room is connected");return}let t=this.store.getState(E);return this.setState(i=>{i.room.roomState=g.Disconnecting},"leaving"),this.sdk.leave().then(()=>{this.resetState("leave"),p.i("left room")}).catch(i=>{p.e("error in leaving room - ",i),this.setState(o=>{o.room.roomState=t},"revertLeave")})})}setScreenShareEnabled(e,t){return c(this,null,function*(){let i={audioOnly:!1,videoOnly:!1};typeof t=="object"?Object.assign(i,t):typeof t=="boolean"&&(i.audioOnly=t);try{e?yield this.startScreenShare(i):yield this.stopScreenShare()}catch(o){throw this.hmsNotifications.sendError(h.convertException(o)),o}})}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(L);t&&(yield this.setEnabledTrack(t,e))})}setEnabledTrack(e,t){return c(this,null,function*(){var r;if(((r=this.store.getState().tracks[e])==null?void 0:r.enabled)===t){this.logPossibleInconsistency(`local track[${e}] enabled state - ${t}`);return}this.setState(n=>{n.tracks[e]?n.tracks[e].displayEnabled=t:this.logPossibleInconsistency("track id not found for setEnabled")},"displayEnabled");try{yield this.setEnabledSDKTrack(e,t),this.syncRoomState("setEnabled")}catch(n){throw this.setState(a=>{a.tracks[e].displayEnabled=!t},"rollbackDisplayEnabled"),this.hmsNotifications.sendError(h.convertException(n)),n}let o=t?A.TRACK_UNMUTED:A.TRACK_MUTED;this.hmsNotifications.sendTrackUpdate(o,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(L);t&&(yield this.setSDKLocalVideoTrackSettings(t,e),this.syncRoomState("setVideoSettings"))})}sendMessage(e){this.sendBroadcastMessage(e)}sendBroadcastMessage(e,t){return c(this,null,function*(){let i=yield this.sdk.sendBroadcastMessage(e,t);this.updateMessageInStore(i,{message:e,type:t})})}sendGroupMessage(e,t,i){return c(this,null,function*(){let o=this.store.getState(K),r=t.map(a=>o[a]),n=yield this.sdk.sendGroupMessage(e,r,i);this.updateMessageInStore(n,{message:e,recipientRoles:t,type:i})})}sendDirectMessage(e,t,i){return c(this,null,function*(){let o=this.hmsSDKPeers[t],r=yield this.sdk.sendDirectMessage(e,o,i);this.updateMessageInStore(r,{message:e,recipientPeer:o.peerId,type:i})})}updateMessageInStore(e,t){if(!e)throw p.w("sendMessage","Failed to send message",t),Error(`sendMessage Failed - ${JSON.stringify(t)}`);let i=h.convertMessage(e);return i.read=!0,i.senderName="You",i.ignored=this.ignoredMessageTypes.includes(i.type),this.putMessageInStore(i),i}setMessageRead(e,t){this.setState(i=>{t?i.messages.byID[t]?i.messages.byID[t].read=e:this.logPossibleInconsistency("no message with id is found"):i.messages.allIDs.forEach(o=>{i.messages.byID[o].read=e})},"setMessageRead")}attachVideo(e,t){return c(this,null,function*(){if(this.localAndVideoUnmuting(e))return new Promise(i=>{let o=this.store.subscribe(r=>c(this,null,function*(){r&&(yield this.attachVideoInternal(e,t),o(),i())}),he)});yield this.attachVideoInternal(e,t)})}detachVideo(e,t){return c(this,null,function*(){let i=this.hmsSDKTracks[e];i&&i.type==="video"?(yield i.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")})}validateVideoPluginSupport(e){let t={};if(t.isSupported=!1,!e)return p.w("no plugin passed in for checking support"),t.errMsg="no plugin passed in for checking support",t;let i=this.store.getState(L);if(i){let o=this.hmsSDKTracks[i];o?t=o.validatePlugin(e):(p.w(`track ${i} not present, unable to validate plugin`),t.errMsg=`track ${i} not present, unable to validate plugin`)}return t}validateAudioPluginSupport(e){let t={};if(t.isSupported=!1,!e)return p.w('no plugin passed in for checking support"'),t.errMsg='no plugin passed in for checking support"',t;let i=this.store.getState(C);if(i){let o=this.hmsSDKTracks[i];o?t=o.validatePlugin(e):(p.w(`track ${i} not present, unable to validate plugin`),t.errMsg=`track ${i} 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,i=!1){return c(this,null,function*(){let o=this.hmsSDKPeers[e];if(!o){this.logPossibleInconsistency(`Unknown peer ID given ${e} for changerole`);return}yield this.sdk.changeRole(o,t,i)})}acceptChangeRole(e){return c(this,null,function*(){let t=e.requestedBy?this.hmsSDKPeers[e.requestedBy.id]:void 0;t||p.w(`peer for which role change is requested no longer available - ${e.requestedBy}`);let i={requestedBy:t,role:e.role,token:e.token};yield this.sdk.acceptChangeRole(i),this.removeRoleChangeRequest(e)})}initAppData(e){this.setState(t=>{t.appData=e},"initAppData")}setAppData(e,t,i){let o=(t==null?void 0:t.constructor.name)==="Object";this.setState(r=>{i&&o?Object.assign(r.appData[e],t):r.appData[e]=t},`setAppData-${e}`)}rejectChangeRole(e){this.removeRoleChangeRequest(e)}endRoom(e,t){return c(this,null,function*(){let i=this.store.getState(Fe);if(!(i==null?void 0:i.endRoom)){p.w("You are not allowed to perform this action - endRoom");return}let o=this.store.getState(E);this.setState(r=>{r.room.roomState=g.Disconnecting},"endingRoom");try{yield this.sdk.endRoom(e,t),this.resetState("endRoom")}catch(r){p.e("error in ending room - ",r),this.setState(n=>{n.room.roomState=o},"revertEndRoom")}})}removePeer(e,t){return c(this,null,function*(){let i=this.hmsSDKPeers[e];if(i&&!i.isLocal)yield this.sdk.removePeer(i,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 i=this.hmsSDKTracks[e];i&&St(i)?yield this.sdk.changeTrackState(i,t):this.logPossibleInconsistency(`No remote track with ID ${e} found for change track state`)}else Array.isArray(e)&&e.forEach(i=>this.setRemoteTrackEnabled(i,t))})}setRemoteTracksEnabled(e){return c(this,null,function*(){let t={enabled:e.enabled,type:e.type,source:e.source};if(e.roles){let i=this.store.getState(K);t.roles=e.roles.map(o=>i[o])}yield this.sdk.changeMultiTrackState(t)})}setLogLevel(e){p.level=e,this.sdk.setLogLevel(e)}ignoreMessageTypes(e,t=!1){if(t)this.ignoredMessageTypes=e;else for(let i of e)this.ignoredMessageTypes.includes(i)||this.ignoredMessageTypes.push(i)}resetState(e="resetState"){this.setState(t=>{Object.assign(t,se())},e),this.isRoomJoinCalled=!1,this.hmsSDKTracks={},p.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),onNetworkQuality:this.onNetworkQuality.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)}),this.sdk.addConnectionQualityListener({onConnectionQualityUpdate:this.onConnectionQualityUpdate.bind(this)})}onRemovedFromRoom(e){var o;let t=this.store.getState(_((o=e.requestedBy)==null?void 0:o.peerId));this.hmsNotifications.sendLeaveRoom(F(N({},e),{requestedBy:t||void 0}));let i=e.roomEnded||!t?"roomEnded":"removedFromRoom";p.i(`resetting state after peer removed ${i}`,e),this.resetState(i)}onDeviceChange(e){let t=e.devices;if(!t)return;let i=this.store.getState(x);if(this.setState(o=>{U(o.devices.audioInput,t.audioInput)||(o.devices.audioInput=t.audioInput),U(o.devices.videoInput,t.videoInput)||(o.devices.videoInput=t.videoInput),U(o.devices.audioOutput,t.audioOutput)||(o.devices.audioOutput=t.audioOutput),this.hmsSDKPeers[i==null?void 0:i.id]&&Object.assign(o.settings,this.getMediaSettings(this.hmsSDKPeers[i==null?void 0:i.id]))},"deviceChange"),e.selection){let o=h.convertDeviceChangeUpdate(e);this.hmsNotifications.sendDeviceChange(o)}}sdkPreviewWithListeners(e){return c(this,null,function*(){yield this.sdk.preview(e,{onPreview:this.onPreview.bind(this),onError:this.onError.bind(this),onReconnected:this.onReconnected.bind(this),onReconnecting:this.onReconnecting.bind(this),onDeviceChange:this.onDeviceChange.bind(this),onRoomUpdate:this.onRoomUpdate.bind(this),onPeerUpdate:this.onPeerUpdate.bind(this),onNetworkQuality:this.onNetworkQuality.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})})}onNetworkQuality(e){this.setState(t=>{var o;let i=t.room.localPeer||((o=this.sdk.getLocalPeer())==null?void 0:o.peerId);i&&(t.connectionQualities[i]={peerID:i,downlinkQuality:e})},"ConnectionQuality")}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 i=this.hmsSDKTracks[e];i&&i.type==="video"?(yield i.addSink(t),this.updateVideoLayer(e,"attachVideo")):this.logPossibleInconsistency("no video track found to add sink")})}syncRoomState(e){p.time(`store-sync-${e}`);let t={},i=[],o={},r={},n={},a=this.sdk.getPeers();for(let y of a){let w=h.convertPeer(y);t[w.id]=w,i.push(w.id),this.hmsSDKPeers[w.id]=y;let J=[y.audioTrack,y.videoTrack,...y.auxiliaryTracks];for(let te of J){if(!te)continue;let ve=h.convertTrack(te);o[ve.id]=ve,r[te.trackId]=te}w.isLocal&&Object.assign(n,this.getMediaSettings(y))}let u=this.sdk.getRecordingState(),P=this.sdk.getRTMPState(),q=this.sdk.getHLSState();this.setState(y=>{y.room.peers=i;let w=y.peers,J=y.tracks;Ce(w,t),Le(J,o),Object.assign(y.settings,n),this.hmsSDKTracks=r,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),p.timeEnd(`store-sync-${e}`)}onPreview(e){this.setState(t=>{Object.assign(t.room,h.convertRoom(e)),t.room.roomState=g.Preview},"previewStart"),this.syncRoomState("previewSync")}onJoin(e){let t=this.sdk.getPlaylistManager();this.audioPlaylist=new ce(t,M.audio,this.syncPlaylistState.bind(this),this.store),this.videoPlaylist=new ce(t,M.video,this.syncRoomState.bind(this),this.store),this.syncRoomState("joinSync"),this.setState(i=>{Object.assign(i.room,h.convertRoom(e)),i.room.isConnected=!0,i.room.roomState=g.Connected},"joined"),t.onProgress(this.setProgress),t.onNewTrackStart(i=>{this.syncPlaylistState(`${i.type}PlaylistUpdate`)}),t.onPlaylistEnded(i=>{this.syncPlaylistState(`${i}PlaylistEnded`)}),t.onCurrentTrackEnded(i=>{this.hmsNotifications.sendPlaylistTrackEnded(h.convertPlaylistItem(t,i)),this.syncPlaylistState(`${i.type}PlaylistItemEnded`)})}onRoomUpdate(e,t){this.setState(i=>{Object.assign(i.room,h.convertRoom(t))},"RoomUpdate")}onPeerUpdate(e,t){if(![D.BECAME_DOMINANT_SPEAKER,D.RESIGNED_DOMINANT_SPEAKER].includes(e)){if(Array.isArray(t)){this.syncRoomState("peersJoined");let i=[];for(let o of t){let r=this.store.getState(_(o.peerId));r&&i.push(r)}this.hmsNotifications.sendPeerList(i);return}this.sendPeerUpdateNotification(e,t)}}onTrackUpdate(e,t,i){if(e===A.TRACK_REMOVED)this.hmsNotifications.sendTrackUpdate(e,t.trackId),this.handleTrackRemove(t,i);else{let o=e===A.TRACK_ADDED?"trackAdded":"trackUpdate";this.syncRoomState(o),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(je)+1),t.messages.byID[e.id]=e,t.messages.allIDs.push(e.id)},"newMessage")}onAudioLevelUpdate(e){this.setState(t=>{let i={};e.forEach(r=>{if(!r.track||!r.peer)return;let n=r.track.trackId;i[n]=r.audioLevel,t.speakers[n]||(t.speakers[n]={audioLevel:r.audioLevel,peerID:r.peer.peerId,trackID:n})});let o=Object.entries(t.speakers);for(let[r,n]of o)n.audioLevel=i[r]||0,n.audioLevel===0&&delete t.speakers[r]},"audioLevel")}onConnectionQualityUpdate(e){this.setState(t=>{let i=new Set;e.forEach(r=>{let n=r.peerID;!n||(i.add(n),t.connectionQualities[n]?Object.assign(t.connectionQualities[n],r):t.connectionQualities[n]=r)});let o=Object.keys(t.connectionQualities);for(let r of o)i.has(r)||delete t.connectionQualities[r]},"connectionQuality")}onChangeTrackStateRequest(e){var r;let t=this.store.getState(_((r=e.requestedBy)==null?void 0:r.peerId)),i=this.getStoreLocalTrackIDfromSDKTrack(e.track),o=this.store.getState(ae(i));if(!o)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:o,enabled:e.enabled})}onChangeMultiTrackStateRequest(e){var r;let t=this.store.getState(_((r=e.requestedBy)==null?void 0:r.peerId));e.enabled||this.syncRoomState("changeMultiTrackStateRequest");let i=[],o=this.store.getState(H);for(let n of e.tracks){let a=this.getStoreLocalTrackIDfromSDKTrack(n);a&&o[a]&&i.push(o[a])}this.hmsNotifications.sendChangeMultiTrackStateRequest({requestedBy:t||void 0,tracks:i,enabled:e.enabled,type:e.type,source:e.source})}onReconnected(){this.syncRoomState("reconnectedSync"),this.hmsNotifications.sendReconnected(),this.setState(e=>{e.room.roomState=e.room.isConnected?g.Connected:g.Preview},"reconnected")}onReconnecting(e){let t=h.convertException(e);p.e("Reconnection: received error from sdk",t),this.hmsNotifications.sendReconnecting(t),this.setState(i=>{i.room.roomState=g.Reconnecting,i.errors.push(t)},"reconnecting")}onError(e){let t=h.convertException(e);t.isTerminal?(this.leave().then(()=>p.e("error from SDK, left room.")),this.setState(i=>{i.room.roomState=g.Failed,i.errors.push(t)},"errorTerminal")):this.store.getState().errors.length<50&&this.setState(o=>{o.errors.push(t)},"error"),this.syncRoomState("errorSync"),this.hmsNotifications.sendError(t),p.e("received error from sdk",t)}updateVideoLayer(e,t){let i=this.hmsSDKTracks[e];i&&i instanceof Mt&&this.setState(o=>{o.tracks[e].layer=i.getSimulcastLayer()},t)}handleTrackRemove(e,t){this.setState(i=>{let o=i.peers[t.peerId],r=i.tracks,n=e.trackId;if(this.isSameStoreSDKTrack(n,o==null?void 0:o.audioTrack))o==null||delete o.audioTrack;else if(this.isSameStoreSDKTrack(n,o==null?void 0:o.videoTrack))o==null||delete o.videoTrack;else{let a=o==null?void 0:o.auxiliaryTracks.indexOf(n);a>-1&&this.isSameStoreSDKTrack(n,o==null?void 0:o.auxiliaryTracks[a])&&(o==null||o.auxiliaryTracks.splice(a,1))}delete r[n],delete this.hmsSDKTracks[n]},"trackRemoved")}setEnabledSDKTrack(e,t){return c(this,null,function*(){let i=this.hmsSDKTracks[e];i?yield i.setEnabled(t):this.logPossibleInconsistency(`track ${e} not present, unable to enabled/disable`)})}setSDKLocalVideoTrackSettings(e,t){return c(this,null,function*(){let i=this.hmsSDKTracks[e];i?yield i.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}setSDKLocalAudioTrackSettings(e,t){return c(this,null,function*(){let i=this.hmsSDKTracks[e];i?yield i.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}getMediaSettings(e){var r;let t=this.store.getState(Ke),i=e.audioTrack,o=e.videoTrack;return{audioInputDeviceId:(i==null?void 0:i.settings.deviceId)||t.audioInputDeviceId,videoInputDeviceId:(o==null?void 0:o.settings.deviceId)||t.videoInputDeviceId,audioOutputDeviceId:(r=this.sdk.getAudioOutput().getDevice())==null?void 0:r.deviceId}}setTrackVolume(e,t){let i=this.hmsSDKTracks[t];i?i instanceof Gt?(i.setVolume(e),this.setState(o=>{let r=o.tracks[t];r&&(r.volume=e)},"trackVolume")):p.w(`track ${t} is not an audio track`):this.logPossibleInconsistency(`track ${t} not present, unable to set volume`)}localAndVideoUnmuting(e){if(this.store.getState(x).videoTrack!==e)return!1;let i=this.store.getState(qe),o=this.store.getState(he);return i&&!o}logPossibleInconsistency(e){p.w("possible inconsistency detected - ",e)}addRemoveVideoPlugin(e,t,i){return c(this,null,function*(){if(!e){p.w("Invalid plugin received in store");return}let o=this.store.getState(L);if(o){let r=this.hmsSDKTracks[o];r?(t==="add"?yield r.addPlugin(e,i):t==="remove"&&(yield r.removePlugin(e)),this.syncRoomState(`${t}VideoPlugin`)):this.logPossibleInconsistency(`track ${o} not present, unable to remove plugin`)}})}addRemoveAudioPlugin(e,t){return c(this,null,function*(){if(!e){p.w("Invalid plugin received in store");return}let i=this.store.getState(C);if(i){let o=this.hmsSDKTracks[i];o?(t==="add"?yield o.addPlugin(e):t==="remove"&&(yield o.removePlugin(e)),this.syncRoomState(`${t}AudioPlugin`)):this.logPossibleInconsistency(`track ${i} not present, unable to remove plugin`)}})}isSameStoreSDKTrack(e,t){var i;return t?((i=this.hmsSDKTracks[t])==null?void 0:i.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 i=t.roleChangeRequests.findIndex(o=>o.token===e.token);i!==-1&&t.roleChangeRequests.splice(i,1)},"removeRoleChangeRequest")}onRoleUpdate(){this.syncRoomState("roleUpdate")}getStoreLocalTrackIDfromSDKTrack(e){return this.store.getState(Be).find(i=>this.hmsSDKTracks[i].trackId===e.trackId)}};import{EventEmitter2 as Jt}from"eventemitter2";var Pe="hmsNotification",Re=class{constructor(e){this.id=0;this.onNotification=(e,t)=>{let i=o=>{if(t){let r;if(Array.isArray(t)?r=t.includes(o.type):r=t===o.type,!r)return}e(o)};return this.eventEmitter.addListener(Pe,i),()=>{this.eventEmitter.removeListener(Pe,i)}};this.store=e,this.eventEmitter=new Jt}sendPlaylistTrackEnded(e){let t=this.createNotification(m.PLAYLIST_TRACK_ENDED,e,R.INFO);this.emitEvent(t)}sendDeviceChange(e){var i;let t=this.createNotification(m.DEVICE_CHANGE_UPDATE,e,e.error?R.ERROR:R.INFO,`Selected ${e.type} device - ${(i=e.selection)==null?void 0:i.label}`);this.emitEvent(t)}sendLeaveRoom(e){var o;let t=(o=e.requestedBy)==null?void 0:o.name,i=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(i)}sendPeerList(e){let t=this.createNotification(m.PEER_LIST,e,R.INFO);this.emitEvent(t)}sendPeerUpdate(e,t){let i=this.store.getState(_(t==null?void 0:t.id))||t,o=dt[e];if(o){let r=this.createNotification(o,i,R.INFO);this.emitEvent(r)}}sendTrackUpdate(e,t){let i=this.store.getState(ae(t)),o=ut[e];if(o){let r=this.createNotification(o,i,R.INFO);this.emitEvent(r)}}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,i,o=""){return this.id++,{id:this.id,type:e,message:o,data:t,severity:i}}};import{isBrowser as Yt}from"@100mslive/hms-video";var le=s=>Yt?`${s} ${document.title}`:s;var mt=(s,e,t)=>{let i;t.getState(E)===g.Connected&&(i=ht(s,e,t)),t.subscribe(o=>{[g.Connected,g.Reconnecting].includes(o)?i||(i=ht(s,e,t)):i&&(Zt(e),i())},E)},ht=(s,e,t)=>{var r;let i=Xt(t,e),o=(r=s.getWebrtcInternals())==null?void 0:r.onStatsChange(n=>zt(e,n,t));return()=>{i(),o&&o()}},Xt=(s,e)=>{let t,i,o;return s.getState($)?e.namedSetState(r=>{r.localPeer.id=s.getState($)},"localpeer-id"):t=s.subscribe(r=>{r&&e.namedSetState(n=>{n.localPeer.id=r},"localpeer-id")},$),s.getState(L)?e.namedSetState(r=>{r.localPeer.videoTrack=s.getState(L)},"localpeer-videotrack-id"):i=s.subscribe(r=>{r&&e.namedSetState(n=>{n.localPeer.videoTrack=r},"localpeer-videotrack-id")},L),s.getState(C)?e.namedSetState(r=>{r.localPeer.videoTrack=s.getState(C)},"localpeer-audiotrack-id"):o=s.subscribe(r=>{r&&e.namedSetState(n=>{n.localPeer.videoTrack=r},"localpeer-audiotrack-id")},C),()=>{t==null||t(),i==null||i(),o==null||o()}},zt=(s,e,t)=>{let i=t.getState(H);s.namedSetState(o=>{let r={},n=Object.keys(i);for(let P of n){let q=e.getTrackStats(P);q&&(r[P]=q)}de(o.trackStats,r);let u={[t.getState($)]:e.getLocalPeerStats()};de(o.peerStats,u)},"webrtc-stats")},Zt=(s,e="resetState")=>{s.namedSetState(t=>{Object.assign(t,ie())},e)};var Se=class{constructor(e,t){this.hmsStore=e;this.sdk=t;this.store=O.createNewHMSStore(le("HMSStatsStore"),ie),this.getState=this.store.getState,this.subscribe=this.store.subscribe,this.getPublishPeerConnection=()=>new Promise(i=>{var o,r;this.hmsStore.getState(E)==="Connected"?i((r=(o=this.sdk)==null?void 0:o.getWebrtcInternals())==null?void 0:r.getPublishPeerConnection()):this.hmsStore.subscribe(n=>{var a,u;n==="Connected"&&i((u=(a=this.sdk)==null?void 0:a.getWebrtcInternals())==null?void 0:u.getPublishPeerConnection())},E)}),this.getSubscribePeerConnection=()=>new Promise(i=>{var o,r;this.hmsStore.getState(E)==="Connected"?i((r=(o=this.sdk)==null?void 0:o.getWebrtcInternals())==null?void 0:r.getSubscribePeerConnection()):this.hmsStore.subscribe(n=>{var a,u;n==="Connected"&&i((u=(a=this.sdk)==null?void 0:a.getWebrtcInternals())==null?void 0:u.getSubscribePeerConnection())},E)}),!!this.sdk&&mt(this.sdk,this.store,this.hmsStore)}};import{createSelector as T}from"reselect";var es=s=>s.localPeer.id,ts=s=>s.localPeer.audioTrack,ss=s=>s.localPeer.videoTrack,is=(s,e)=>e,os=(s,e)=>e,De=s=>s.trackStats,gt=s=>s.peerStats,V=T([gt,es],(s,e)=>s[e]),rs=T(V,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.packetsLost}),ns=T(V,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.jitter}),as=T(V,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bitrate}),cs=T(V,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bitrate}),ls=T(V,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.availableOutgoingBitrate}),Ss=T(V,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.availableIncomingBitrate}),ds=T(V,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bytesSent}),us=T(V,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bytesReceived}),ps=T([gt,is],(s,e)=>e?s[e]:void 0),G=T([De,os],(s,e)=>e?s[e]:void 0),Ms=S(ps),ms=S(G),hs=S(T(G,s=>s==null?void 0:s.bitrate)),gs=S(T(G,s=>s==null?void 0:s.bytesReceived)),Ts=S(T(G,s=>s==null?void 0:s.framesPerSecond)),Hs=S(T(G,s=>s==null?void 0:s.jitter)),ys=S(T(G,s=>s==null?void 0:s.packetsLost)),Ie=T([De,ts],(s,e)=>e?s[e]:void 0),ee=T([De,ss],(s,e)=>e?s[e]:void 0),fs=T(Ie,s=>s==null?void 0:s.bitrate),ks=T(ee,s=>s==null?void 0:s.bitrate),Ps=T(Ie,s=>s==null?void 0:s.bytesSent),Rs=T(ee,s=>s==null?void 0:s.bytesSent),Ds=T(ee,s=>s==null?void 0:s.framesPerSecond),Is=T(ee,s=>s==null?void 0:s.qualityLimitationReason),vs={localPeerStats:V,packetsLost:rs,jitter:ns,publishBitrate:as,subscribeBitrate:cs,availablePublishBitrate:ls,availableSubscribeBitrate:Ss,totalBytesSent:ds,totalBytesReceived:us,peerStatsByID:Ms,trackStatsByID:ms,bitrateByTrackID:hs,bytesReceivedByTrackID:gs,framerateByTrackID:Ts,jitterByTrackID:Hs,packetsLostByTrackID:ys,localAudioTrackStats:Ie,localVideoTrackStats:ee,localAudioTrackBitrate:fs,localVideoTrackBitrate:ks,localAudioTrackBytesSent:Ps,localVideoTrackBytesSent:Rs,localVideoTrackFramerate:Ds,localVideoTrackQualityLimitationReason:Is};var O=class{constructor(e,t,i){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),i?this.notifications=i:this.notifications=new Re(this.store),t?this.actions=t:(this.sdk=new Cs,this.actions=new ke(this.store,this.sdk,this.notifications)),this.initialTriggerOnSubscribe=!1,Ls&&(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 i=Es(()=>t()),o=i.setState;i.setState=a=>{let u=typeof a=="function"?bs(a):a;o(u)};let r=i.getState;i.getState=a=>{if(a){let u=a.name||"byIDSelector";window.selectorsCount||(window.selectorsCount={}),window.selectorsCount[u]=(window.selectorsCount[u]||0)+1;let P=performance.now(),q=a(r()),y=performance.now()-P;return y>1&&(window.expensiveSelectors=window.expensiveSelectors||new Map,window.expensiveSelectors.set(u,y)),q}return r()},O.compareWithShallowCheckInSubscribe(i);let n=O.setUpDevtools(i,e);return F(N({},i),{namedSetState:n})}static makeStoreTriggerOnSubscribe(e){let t=e.subscribe;e.subscribe=(i,o,r)=>(i(e.getState(o),void 0),t(i,o,r))}static compareWithShallowCheckInSubscribe(e){let t=e.subscribe;e.subscribe=(i,o,r)=>(o||(o=n=>n),r=r||As,t(i,o,r))}static setUpDevtools(e,t){let i;try{i=window.__REDUX_DEVTOOLS_EXTENSION__||window.top.__REDUX_DEVTOOLS_EXTENSION__}catch(n){}if(!i)return n=>{e.setState(n)};let o=i.connect(O.devtoolsOptions(t));o.prefix=t?`${t} > `:"";let r=e.setState;return e.setState=n=>{r(n),o.send(`${o.prefix}setState`,e.getState())},o.subscribe(O.devtoolsSubscribe(o,e,r)),o.send("setUpStore",e.getState()),(n,a)=>{r(n);let u=a||`${o.prefix}action`;o.send(u,e.getState())}}static devtoolsOptions(e){return{name:e,actionsBlacklist:["audioLevel","playlistProgress","connectionQuality"]}}static devtoolsSubscribe(e,t,i){return o=>{var r,n,a,u;if(o.type==="DISPATCH"&&o.state)["JUMP_TO_ACTION","JUMP_TO_STATE"].includes(o.payload.type)?i(JSON.parse(o.state)):t.setState(JSON.parse(o.state));else if(o.type==="DISPATCH"&&((r=o.payload)==null?void 0:r.type)==="COMMIT")e.init(t.getState());else if(o.type==="DISPATCH"&&((n=o.payload)==null?void 0:n.type)==="IMPORT_STATE"){let P=(a=o.payload.nextLiftedState)==null?void 0:a.actionsById;(((u=o.payload.nextLiftedState)==null?void 0:u.computedStates)||[]).forEach(({state:y},w)=>{let J=P[w]||`${e.prefix}setState`;w===0?e.init(y):(i(y),e.send(J,t.getState()))})}}}};export{Pt as HMSAudioPluginType,k as HMSLogLevel,Ae as HMSMessageType,R as HMSNotificationSeverity,m as HMSNotificationTypes,M as HMSPlaylistType,O as HMSReactiveStore,g as HMSRoomState,Se as HMSStats,Rt as HMSVideoPluginType,ie as createDefaultStatsStore,se as createDefaultStoreState,Dt as parsedUserAgent,xo as selectAppData,et as selectAudioPlaylist,jo as selectAudioPlaylistTrackByPeerID,_t as selectAudioTrackByPeerID,at as selectAudioTrackVolume,Jo as selectAudioVolumeByPeerID,Vo as selectAuxiliaryAudioByPeerID,No as selectAuxiliaryTracksByPeerID,uo as selectAvailableRoleNames,Vt as selectBroadcastMessages,zo as selectBroadcastMessagesUnreadCount,wo as selectCameraStreamByPeerID,zi as selectConnectionQualities,Ko as selectConnectionQualityByPeerID,co as selectDegradedTracks,Xi as selectDevices,Hr as selectDidIJoinWithin,to as selectDominantSpeaker,Ve as selectFullAppData,ho as selectHLSState,re as selectHMSMessages,je as selectHMSMessagesCount,vs as selectHMSStats,Sr as selectIsAllowedToPublish,po as selectIsAllowedToSubscribe,nt as selectIsAudioLocallyMuted,Ct as selectIsConnectedToRoom,So as selectIsInPreview,so as selectIsLocalAudioEnabled,hr as selectIsLocalAudioPluginPresent,ge as selectIsLocalScreenShared,qe as selectIsLocalVideoDisplayEnabled,he as selectIsLocalVideoEnabled,mr as selectIsLocalVideoPluginPresent,Qo as selectIsLocallyMutedByPeerID,Fo as selectIsPeerAudioEnabled,Wo as selectIsPeerVideoEnabled,Go as selectIsScreenShareLocallyMutedByPeerID,io as selectIsSomeoneScreenSharing,C as selectLocalAudioTrackID,Ke as selectLocalMediaSettings,x as selectLocalPeer,$ as selectLocalPeerID,ne as selectLocalPeerRole,Be as selectLocalTrackIDs,L as selectLocalVideoTrackID,_e as selectMessageIDsInOrder,Zo as selectMessagesByPeerID,er as selectMessagesByRole,Ue as selectMessagesMap,sr as selectMessagesUnreadCountByPeerID,tr as selectMessagesUnreadCountByRole,_o as selectPeerAudioByID,gr as selectPeerByCondition,_ as selectPeerByID,Zi as selectPeerCount,or as selectPeerMetadata,Oo as selectPeerNameByID,Ot as selectPeerScreenSharing,oo as selectPeerSharingAudio,ao as selectPeerSharingAudioPlaylist,no as selectPeerSharingVideoPlaylist,Q as selectPeers,Tr as selectPeersByCondition,ir as selectPeersByRole,b as selectPeersMap,ro as selectPeersScreenSharing,cr as selectPeersWithAudioStatus,Fe as selectPermissions,mo as selectRTMPState,Mo as selectRecordingState,eo as selectRemotePeers,Mr as selectRoleByRoleName,lr as selectRoleChangeRequest,K as selectRolesMap,I as selectRoom,Yi as selectRoomID,To as selectRoomStartTime,$e as selectRoomStarted,E as selectRoomState,rt as selectScreenShareAudioByPeerID,$o as selectScreenShareByPeerID,ot as selectScreenSharesByPeerId,Yo as selectScreenshareAudioVolumeByPeerID,go as selectSessionId,Xo as selectSimulcastLayerByTrack,At as selectSpeakers,Uo as selectTrackAudioByID,ae as selectTrackByID,H as selectTracksMap,lo as selectUnreadHMSMessagesCount,tt as selectVideoPlaylist,qo as selectVideoPlaylistAudioTrackByPeerID,Bo as selectVideoPlaylistVideoTrackByPeerID,Ut as selectVideoTrackByPeerID};
1
+ var Tt=Object.defineProperty,Ht=Object.defineProperties;var yt=Object.getOwnPropertyDescriptors;var be=Object.getOwnPropertySymbols;var ft=Object.prototype.hasOwnProperty,kt=Object.prototype.propertyIsEnumerable;var Ee=(s,e,t)=>e in s?Tt(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,N=(s,e)=>{for(var t in e||(e={}))ft.call(e,t)&&Ee(s,t,e[t]);if(be)for(var t of be(e))kt.call(e,t)&&Ee(s,t,e[t]);return s},F=(s,e)=>Ht(s,yt(e));var c=(s,e,t)=>new Promise((i,o)=>{var r=u=>{try{a(t.next(u))}catch(P){o(P)}},n=u=>{try{a(t.throw(u))}catch(P){o(P)}},a=u=>u.done?i(u.value):Promise.resolve(u.value).then(r,n);a((t=t.apply(s,e)).next())});import bs from"immer";import Es from"zustand/vanilla";import As from"zustand/shallow";import{HMSSdk as Cs,isBrowser as Ls}from"@100mslive/hms-video";var g;(function(a){a.Disconnected="Disconnected",a.Preview="Preview",a.Connecting="Connecting",a.Connected="Connected",a.Reconnecting="Reconnecting",a.Disconnecting="Disconnecting",a.Failed="Failed"})(g||(g={}));var se=()=>({room:{id:"",isConnected:!1,name:"",peers:[],shareableLink:"",localPeer:"",hasWaitingRoom:!1,roomState:g.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:{},connectionQualities:{},settings:{audioInputDeviceId:"",audioOutputDeviceId:"",videoInputDeviceId:""},devices:{audioInput:[],audioOutput:[],videoInput:[]},roles:{},appData:{},roleChangeRequests:[],errors:[]}),ie=()=>({peerStats:{},trackStats:{},localPeer:{id:""}});var Ae;(function(e){e.CHAT="chat"})(Ae||(Ae={}));var R;(function(i){i.INFO="info",i.ERROR="error",i.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 M;(function(t){t.audio="audio",t.video="video"})(M||(M={}));import{HMSException as qs,HMSSimulcastLayer as js,HMSPeerUpdate as D,HMSRoomUpdate as $s,HMSTrackUpdate as A,HMSLogLevel as k,HMSAudioPluginType as Pt,HMSVideoPluginType as Rt,parsedUserAgent as Dt}from"@100mslive/hms-video";import{HMSLocalAudioTrack as xe,HMSLocalVideoTrack as Oe,HMSRemoteAudioTrack as vt,HMSRemoteVideoTrack as bt}from"@100mslive/hms-video";var Ce=(s,e)=>{let t=me(Object.keys(s),Object.keys(e));for(let i of t){let o=s[i],r=e[i];ue(o,r)?(U(o.auxiliaryTracks,r.auxiliaryTracks)&&(r.auxiliaryTracks=o.auxiliaryTracks),Object.assign(o,r)):pe(o,r)?delete s[i]:Me(o,r)&&(s[i]=r)}},Le=(s,e)=>{let t=me(Object.keys(s),Object.keys(e));for(let i of t){let o=s[i],r=e[i];ue(o,r)?(It(o,r),Object.assign(o,r)):pe(o,r)?delete s[i]:Me(o,r)&&(s[i]=r)}},de=(s,e)=>{let t=me(Object.keys(s),Object.keys(e));for(let i of t){let o=s[i],r=e[i];ue(o,r)?Object.assign(o,r):pe(o,r)?delete s[i]:Me(o,r)&&(s[i]=r)}},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 i of s)t.add(i);for(let i of e)t.add(i);return Array.from(t)};var h=class{static convertPeer(e){var t,i,o;return{id:e.peerId,name:e.name,roleName:(t=e.role)==null?void 0:t.name,isLocal:e.isLocal,videoTrack:(i=e.videoTrack)==null?void 0:i.trackId,audioTrack:(o=e.audioTrack)==null?void 0:o.trackId,auxiliaryTracks:e.auxiliaryTracks.map(r=>r.trackId),customerUserId:e.customerUserId,customerDescription:e.metadata,metadata:e.metadata,joinedAt:e.joinedAt}}static convertTrack(e,t){let i={id:e.trackId,source:e.source,type:e.type,enabled:e.enabled,displayEnabled:e.enabled,peerId:e.peerId||t};return this.enrichTrack(i,e),i}static enrichTrack(e,t){let i=t.getMediaTrackSettings();e.source==="screen"&&e.type==="video"&&(e.displaySurface=i.displaySurface),e.height=i.height,e.width=i.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 i;t instanceof Oe||t instanceof xe?e.deviceID=t.settings.deviceId:e.deviceID=(i=t.getMediaTrackSettings())==null?void 0:i.deviceId}static enrichVideoTrack(e,t){t instanceof bt&&(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 r,n;let{recording:t,rtmp:i,hls:o}=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:(n=(r=e.localPeer)==null?void 0:r.peerId)!=null?n:"",hasWaitingRoom:e.hasWaitingRoom,shareableLink:e.shareableLink,recording:t,rtmp:i,hls:o,sessionId:e.sessionId,startedAt:e.startedAt,joinedAt:e.joinedAt,peerCount:e.peerCount}}static convertMessage(e){var t,i,o;return{sender:e.sender.peerId,senderName:e.sender.name,senderRole:(t=e.sender.role)==null?void 0:t.name,senderUserId:e.sender.customerUserId,recipientPeer:(i=e.recipientPeer)==null?void 0:i.peerId,recipientRoles:(o=e.recipientRoles)==null?void 0:o.map(r=>r.name),time:e.time,type:e.type,message:e.message}}static convertRoles(e){let t={};return e&&e.forEach(i=>{t[i.name]=i}),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),i=this.getConvertedPlaylistType(e,M.video);return{audio:t,video:i}}static convertPlaylistItem(e,t){let i=t.type,o=e.getCurrentSelection(i),r=e.isPlaying(i),n=t.url===(o==null?void 0:o.url);return F(N({},t),{type:t.type,selected:n,playing:n&&r})}static getConvertedPlaylistType(e,t){let i={},o=e.getCurrentSelection(t),r=e.getCurrentProgress(t),n=e.getVolume(t),a=e.getList(t),u=e.getCurrentIndex(t);return e.getList(t).forEach(P=>{i[P.id]=h.convertPlaylistItem(e,P)}),{list:i,selection:{id:o==null?void 0:o.id,hasPrevious:u>0,hasNext:u<a.length-1},progress:r,volume:n,currentTime:e.getCurrentTime(t),playbackRate:e.getPlaybackRate(t)}}static convertRecordingStreamingState(e,t,i){var o;return{recording:{browser:N({running:!1},e==null?void 0:e.browser),server:N({running:!1},e==null?void 0:e.server),hls:N({running:!1},e==null?void 0:e.hls)},rtmp:N({running:!1},t),hls:{variants:((o=i==null?void 0:i.variants)==null?void 0:o.map(r=>r))||[],running:!!(i==null?void 0:i.running),error:i==null?void 0:i.error}}}};import{createSelector as d}from"reselect";function j(s,e,t=Et){let i,o;if(e)for(let r of e.auxiliaryTracks){let n=s[r];t(n)&&(o=Y(n)?n:o,i=X(n)?n:i)}return{video:i,audio:o}}function Y(s){return s&&s.type==="audio"}function X(s){return s&&s.type==="video"}function Et(s){return s&&s.source==="screen"}function oe(s){return s&&s.source==="audioplaylist"}function z(s){return s&&s.source==="videoplaylist"}function we(s){return Boolean(s==null?void 0:s.degraded)}function W(s,e){return e&&s.tracks[e]?s.tracks[e].enabled:!1}function Ne(s,e){return e&&s.tracks[e]?s.tracks[e].displayEnabled:!1}var I=s=>s.room,Yi=d(I,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,Ve=s=>s.appData,Xi=s=>s.devices,At=s=>s.speakers,zi=s=>s.connectionQualities,Ct=d([I],s=>s&&s.isConnected),Zi=d([Ct,I],(s,e)=>s?e.peerCount||e.peers.length:Math.max(e.peerCount||e.peers.length-1,0)),Q=d([I,b],(s,e)=>s.peers.map(t=>e[t])),Lt=d(H,s=>Object.values(s)),x=d(I,b,(s,e)=>e[s.localPeer]),$=d(I,s=>s.localPeer),C=d(x,s=>s==null?void 0:s.audioTrack),L=d(x,s=>s==null?void 0:s.videoTrack),xt=d(x,s=>s==null?void 0:s.auxiliaryTracks),Be=d([C,L,xt],(s,e,t)=>{let i=[...t];return s&&i.unshift(s),e&&i.unshift(e),i}),eo=d(Q,s=>s.filter(e=>!e.isLocal)),to=d(b,At,(s,e)=>{let t=Object.entries(e).sort((i,o)=>{var a,u;let r=((a=i[1])==null?void 0:a.audioLevel)||0;return(((u=o[1])==null?void 0:u.audioLevel)||0)>r?1:-1});if(t.length>0&&t[0][1].audioLevel&&t[0][1].audioLevel>0){let i=t[0][1].peerID;if(i in s)return s[i]}return null}),so=s=>{let e=x(s);return W(s,e==null?void 0:e.audioTrack)},he=s=>{let e=x(s);return W(s,e==null?void 0:e.videoTrack)},qe=s=>{let e=x(s);return Ne(s,e==null?void 0:e.videoTrack)},ge=d(x,H,(s,e)=>{let{video:t,audio:i}=j(e,s);return!!(t||i)}),Ot=d(b,H,(s,e)=>{let t;for(let i in s){let o=s[i],{video:r,audio:n}=j(e,o);if(r)return o;n&&!t&&(t=o)}return t}),io=d(Ot,s=>!!s),oo=d(b,H,(s,e)=>{for(let t in s){let i=s[t],{audio:o,video:r}=j(e,i);if(!r&&!!o)return i}}),ro=d(b,H,(s,e)=>{let t=[],i=[];for(let o in s){let r=s[o],{video:n,audio:a}=j(e,r);n?t.push(r):a&&i.push(r)}return t.concat(i)}),no=d(b,H,(s,e)=>{for(let t in e){let i=e[t];if(z(i)&&X(i)&&i.peerId)return s[i.peerId]}}),ao=d(b,H,(s,e)=>{for(let t in e){let i=e[t];if(oe(i)&&i.peerId)return s[i.peerId]}}),co=d(Lt,s=>s.filter(we)),je=d(_e,s=>s.length),lo=d(Ue,s=>Object.values(s).filter(e=>!e.read).length),re=d(_e,Ue,(s,e)=>{let t=[];return s.forEach(i=>{t.push(e[i])}),t}),E=d([I],s=>s&&s.roomState),So=d(E,s=>s===g.Preview),$e=d(I,s=>s.roomState!==g.Disconnected),K=s=>s.roles,uo=d([K],s=>Object.keys(s)),ne=d([x,K],(s,e)=>(s==null?void 0:s.roleName)?e[s.roleName]:null),po=d([ne],s=>{var e;return((e=s==null?void 0:s.subscribeParams)==null?void 0:e.subscribeToRoles)?s.subscribeParams.subscribeToRoles.length>0:!1}),Fe=d(ne,s=>s==null?void 0:s.permissions),Mo=d(I,s=>s.recording),mo=d(I,s=>s.rtmp),ho=d(I,s=>s.hls),go=d(I,s=>s.sessionId),To=d(I,s=>s.startedAt);import{createSelector as We}from"reselect";var Qe=(s=M.audio)=>e=>e.playlist[s].list,Te=(s=M.audio)=>e=>e.playlist[s].selection,Ge=(s=M.audio)=>e=>e.playlist[s].progress,Je=(s=M.audio)=>e=>e.playlist[s].currentTime,Ye=(s=M.audio)=>e=>e.playlist[s].playbackRate,Xe=(s=M.audio)=>e=>e.playlist[s].volume,ze=(s=M.audio)=>We(Qe(s),e=>Object.values(e)),Ze=(s=M.audio)=>We(Qe(s),Te(s),(e,t)=>{if(!!t.id)return e[t.id]}),et={selection:Te(M.audio),progress:Ge(M.audio),currentTime:Je(M.audio),playbackRate:Ye(M.audio),volume:Xe(M.audio),list:ze(M.audio),selectedItem:Ze(M.audio)},tt={selection:Te(M.video),progress:Ge(M.video),currentTime:Je(M.video),playbackRate:Ye(M.video),volume:Xe(M.video),list:ze(M.video),selectedItem:Ze(M.video)};import{createSelector as f}from"reselect";function S(s){return e=>t=>s(t,e)}var Z="HMS-Store:",p=class{static v(e,...t){this.log(k.VERBOSE,e,...t)}static d(...e){this.log(k.DEBUG,...e)}static i(...e){this.log(k.INFO,...e)}static w(...e){this.log(k.WARN,...e)}static e(...e){this.log(k.ERROR,...e)}static time(e){this.log(k.TIME,"[HMSPerformanceTiming]",e)}static timeEnd(e){this.log(k.TIMEEND,"[HMSPerformanceTiming]",e,e)}static cleanUp(){performance.clearMarks(),performance.clearMeasures()}static log(e,...t){if(!(this.level.valueOf()>e.valueOf()))switch(e){case k.VERBOSE:{console.log(Z,...t);break}case k.DEBUG:{console.debug(Z,...t);break}case k.INFO:{console.info(Z,...t);break}case k.WARN:{console.warn(Z,...t);break}case k.ERROR:{console.error(Z,...t);break}case k.TIME:{performance.mark(t[1]);break}case k.TIMEEND:{let i=t[0],o=t[1];try{let r=performance.measure(o,o);this.log(k.DEBUG,i,o,r==null?void 0:r.duration),performance.clearMarks(o),performance.clearMeasures(o)}catch(r){this.log(k.DEBUG,i,o,r)}break}}}};p.level=k.VERBOSE;var He=(s,e)=>e,wt=(s,e)=>e,st=(s,e)=>e,Nt=(s,e)=>e,v=f([b,He],(s,e)=>e?s[e]:null),ye=f([H,wt],(s,e)=>e?s[e]:null),_=S(v),xo=S(f([Ve,Nt],(s,e)=>e?s[e]:s)),Oo=S(f(v,s=>s==null?void 0:s.name)),ae=S(ye),Ut=S((s,e)=>{let t=v(s,e);if(t&&t.videoTrack&&t.videoTrack!=="")return s.tracks[t.videoTrack]}),_t=S((s,e)=>{let t=v(s,e);if(t&&t.audioTrack&&t.audioTrack!=="")return s.tracks[t.audioTrack]}),wo=Ut,No=S((s,e)=>{let t=v(s,e);return(t==null?void 0:t.auxiliaryTracks.map(i=>s.tracks[i]))||[]}),it=(s,e)=>e?s.speakers[e]:null,Uo=S(f(it,s=>(s==null?void 0:s.audioLevel)||0)),Kt=(s,e)=>{let t=_t(e)(s);return it(s,t==null?void 0:t.id)},_o=S(f(Kt,s=>(s==null?void 0:s.audioLevel)||0)),Ko=S((s,e)=>{if(e)return s.connectionQualities[e]}),Vo=S((s,e)=>{let t=v(s,e);if(t){let i=t==null?void 0:t.auxiliaryTracks.find(o=>Y(s.tracks[o]));return i?s.tracks[i]:void 0}}),Bo=S(f(H,v,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(i=>{let o=s[i];return z(o)&&X(o)});return t?s[t]:void 0})),qo=S(f(H,v,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(i=>{let o=s[i];return z(o)&&Y(o)});return t?s[t]:void 0})),jo=S(f(H,v,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(i=>{let o=s[i];return oe(o)&&Y(o)});return t?s[t]:void 0})),ot=S(f(H,v,(s,e)=>j(s,e))),$o=s=>f(ot(s),e=>e.video),rt=s=>f(ot(s),e=>e.audio),Fo=S((s,e)=>{let t=v(s,e);return W(s,t==null?void 0:t.audioTrack)}),Wo=S((s,e)=>{let t=v(s,e);return W(s,t==null?void 0:t.videoTrack)}),nt=S((s,e)=>{if(e&&s.tracks[e])return s.tracks[e].volume===0}),Qo=S((s,e)=>{let t=v(s,e);return nt(t==null?void 0:t.audioTrack)(s)}),Go=S((s,e)=>{let t=rt(e)(s);return nt(t==null?void 0:t.id)(s)}),at=S((s,e)=>{let t=ye(s,e);if(t){if(t.type!=="audio"){p.w("Please pass audio track here");return}return t.volume}}),Jo=S((s,e)=>{let t=v(s,e);return at(t==null?void 0:t.audioTrack)(s)}),Yo=S((s,e)=>{let t=rt(e)(s);return at(t==null?void 0:t.id)(s)}),Xo=S((s,e)=>{let t=ye(s,e);if(t){if(t.type!=="video"){p.w("Please pass video track here");return}return t.layer}}),ct=f([re,$,He],(s,e,t)=>{if(!!t)return s.filter(i=>{var o;return!i.recipientPeer&&!((o=i.recipientRoles)==null?void 0:o.length)||![e,t].includes(i.sender)?!1:[e,t].includes(i.recipientPeer)})}),lt=f([re,st],(s,e)=>{if(!!e)return s.filter(t=>{var i,o;return((i=t.recipientRoles)==null?void 0:i.length)?(o=t.recipientRoles)==null?void 0:o.includes(e):!1})}),Vt=f(re,s=>s.filter(e=>{var t;return!e.recipientPeer&&!((t=e.recipientRoles)==null?void 0:t.length)})),Bt=f([lt,st],s=>s?s.filter(e=>!e.read).length:0),qt=f([ct,He],s=>s?s.filter(e=>!e.read).length:0),zo=f(Vt,s=>s.filter(e=>!e.read).length),Zo=S(ct),er=S(lt),tr=S(Bt),sr=S(qt),ir=s=>f([Q],e=>e.filter(t=>t.roleName===s)),or=s=>f(_(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 cr=fe([b,H],(s,e)=>Object.values(s).map(i=>{var o;return{peer:i,isAudioEnabled:i.audioTrack?(o=e[i.audioTrack])==null?void 0:o.enabled:!1}})),jt=s=>s.roleChangeRequests[0]||null,lr=fe([jt,b,K],(s,e,t)=>s?{requestedBy:s.requestedBy?e[s.requestedBy]:void 0,role:t[s.roleName],token:s.token}:null),Sr=fe([ne],s=>{var o;let e=!1,t=!1,i=!1;return((o=s==null?void 0:s.publishParams)==null?void 0:o.allowed)&&(e=s.publishParams.allowed.includes("video"),t=s.publishParams.allowed.includes("audio"),i=s.publishParams.allowed.includes("screen")),{video:e,audio:t,screen:i}});import{createSelector as B}from"reselect";var Mr=s=>B([K],e=>e[s]),$t=B([L,H],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),Ft=B([C,H],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),mr=s=>B([$t],e=>e.includes(s)),hr=s=>B([Ft],e=>e.includes(s)),gr=s=>B(Q,e=>e.find(s)),Tr=s=>B(Q,e=>e.filter(s)),Hr=s=>B(I,e=>e.joinedAt&&Date.now()-e.joinedAt.getTime()<=s);import{HMSAudioTrack as Gt,HMSRemoteVideoTrack as Mt}from"@100mslive/hms-video";import{HMSRemoteAudioTrack as Wt,HMSRemoteVideoTrack as Qt}from"@100mslive/hms-video";function St(s){return s instanceof Wt||s instanceof Qt}var ce=class{constructor(e,t,i,o){this.playlistManager=e;this.syncPlaylistState=i;this.store=o;this.type=t}play(e){return c(this,null,function*(){if(!e){p.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===M.audio?et:tt,t=this.store.getState(e.selection);if(!t.id){p.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 dt={[D.PEER_JOINED]:m.PEER_JOINED,[D.PEER_LEFT]:m.PEER_LEFT,[D.ROLE_UPDATED]:m.ROLE_UPDATED,[D.AUDIO_TOGGLED]:"PEER_AUDIO_UPDATED",[D.VIDEO_TOGGLED]:"PEER_VIDEO_UPDATED",[D.NAME_UPDATED]:m.NAME_UPDATED,[D.METADATA_UPDATED]:m.METADATA_UPDATED},ut={[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},pt={[D.PEER_JOINED]:"peerJoined",[D.PEER_LEFT]:"peerLeft",[D.NAME_UPDATED]:"peerNameUpdated",[D.ROLE_UPDATED]:"peerRoleUpdated",[D.METADATA_UPDATED]:"peerMetadataUpdated"};var ke=class{constructor(e,t,i){this.hmsSDKTracks={};this.hmsSDKPeers={};this.isRoomJoinCalled=!1;this.ignoredMessageTypes=[];this.setProgress=({type:e,progress:t})=>{this.setState(i=>{i.playlist[e].progress=t,i.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 i=this.store.getState(_(t.peerId)),o=pt[e];this.syncRoomState(o),i||(i=this.store.getState(_(t.peerId))),this.hmsNotifications.sendPeerUpdate(e,i)};this.setState=(e,t)=>this.store.namedSetState(e,t);this.store=e,this.sdk=t,this.hmsNotifications=i}refreshDevices(){return c(this,null,function*(){yield this.sdk.refreshDevices()})}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(i=>{i.settings.audioOutputDeviceId=e},"setAudioOutputDevice")}setPreferredLayer(e,t){let i=this.hmsSDKTracks[e];i?i instanceof Mt?(i.preferLayer(t),this.updateVideoLayer(e,"setPreferredLayer")):p.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===g.Preview||t===g.Connecting){this.logPossibleInconsistency("attempting to call preview while room is in preview/connecting");return}try{this.setState(i=>{i.room.roomState=g.Connecting},"connecting"),yield this.sdkPreviewWithListeners(e)}catch(i){throw p.e("Cannot show preview. Failed to connect to room - ",i),i}})}join(e){if(this.isRoomJoinCalled){this.logPossibleInconsistency("room join is called again");return}try{this.isRoomJoinCalled=!0,this.setState(t=>{t.room.roomState=g.Connecting},"join"),this.sdkJoinWithListeners(e)}catch(t){throw this.isRoomJoinCalled=!1,p.e("Failed to connect to room - ",t),t}}leave(){return c(this,null,function*(){if(!this.store.getState($e)){this.logPossibleInconsistency("room leave is called when no room is connected");return}let t=this.store.getState(E);return this.setState(i=>{i.room.roomState=g.Disconnecting},"leaving"),this.sdk.leave().then(()=>{this.resetState("leave"),p.i("left room")}).catch(i=>{p.e("error in leaving room - ",i),this.setState(o=>{o.room.roomState=t},"revertLeave")})})}setScreenShareEnabled(e,t){return c(this,null,function*(){let i={audioOnly:!1,videoOnly:!1};typeof t=="object"?Object.assign(i,t):typeof t=="boolean"&&(i.audioOnly=t);try{e?yield this.startScreenShare(i):yield this.stopScreenShare()}catch(o){throw this.hmsNotifications.sendError(h.convertException(o)),o}})}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(L);t&&(yield this.setEnabledTrack(t,e))})}setEnabledTrack(e,t){return c(this,null,function*(){var r;if(((r=this.store.getState().tracks[e])==null?void 0:r.enabled)===t){this.logPossibleInconsistency(`local track[${e}] enabled state - ${t}`);return}this.setState(n=>{n.tracks[e]?n.tracks[e].displayEnabled=t:this.logPossibleInconsistency("track id not found for setEnabled")},"displayEnabled");try{yield this.setEnabledSDKTrack(e,t),this.syncRoomState("setEnabled")}catch(n){throw this.setState(a=>{a.tracks[e].displayEnabled=!t},"rollbackDisplayEnabled"),this.hmsNotifications.sendError(h.convertException(n)),n}let o=t?A.TRACK_UNMUTED:A.TRACK_MUTED;this.hmsNotifications.sendTrackUpdate(o,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(L);t&&(yield this.setSDKLocalVideoTrackSettings(t,e),this.syncRoomState("setVideoSettings"))})}sendMessage(e){this.sendBroadcastMessage(e)}sendBroadcastMessage(e,t){return c(this,null,function*(){let i=yield this.sdk.sendBroadcastMessage(e,t);this.updateMessageInStore(i,{message:e,type:t})})}sendGroupMessage(e,t,i){return c(this,null,function*(){let o=this.store.getState(K),r=t.map(a=>o[a]),n=yield this.sdk.sendGroupMessage(e,r,i);this.updateMessageInStore(n,{message:e,recipientRoles:t,type:i})})}sendDirectMessage(e,t,i){return c(this,null,function*(){let o=this.hmsSDKPeers[t],r=yield this.sdk.sendDirectMessage(e,o,i);this.updateMessageInStore(r,{message:e,recipientPeer:o.peerId,type:i})})}updateMessageInStore(e,t){if(!e)throw p.w("sendMessage","Failed to send message",t),Error(`sendMessage Failed - ${JSON.stringify(t)}`);let i=h.convertMessage(e);return i.read=!0,i.senderName="You",i.ignored=this.ignoredMessageTypes.includes(i.type),this.putMessageInStore(i),i}setMessageRead(e,t){this.setState(i=>{t?i.messages.byID[t]?i.messages.byID[t].read=e:this.logPossibleInconsistency("no message with id is found"):i.messages.allIDs.forEach(o=>{i.messages.byID[o].read=e})},"setMessageRead")}attachVideo(e,t){return c(this,null,function*(){if(this.localAndVideoUnmuting(e))return new Promise(i=>{let o=this.store.subscribe(r=>c(this,null,function*(){r&&(yield this.attachVideoInternal(e,t),o(),i())}),he)});yield this.attachVideoInternal(e,t)})}detachVideo(e,t){return c(this,null,function*(){let i=this.hmsSDKTracks[e];i&&i.type==="video"?(yield i.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")})}validateVideoPluginSupport(e){let t={};if(t.isSupported=!1,!e)return p.w("no plugin passed in for checking support"),t.errMsg="no plugin passed in for checking support",t;let i=this.store.getState(L);if(i){let o=this.hmsSDKTracks[i];o?t=o.validatePlugin(e):(p.w(`track ${i} not present, unable to validate plugin`),t.errMsg=`track ${i} not present, unable to validate plugin`)}return t}validateAudioPluginSupport(e){let t={};if(t.isSupported=!1,!e)return p.w('no plugin passed in for checking support"'),t.errMsg='no plugin passed in for checking support"',t;let i=this.store.getState(C);if(i){let o=this.hmsSDKTracks[i];o?t=o.validatePlugin(e):(p.w(`track ${i} not present, unable to validate plugin`),t.errMsg=`track ${i} 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,i=!1){return c(this,null,function*(){let o=this.hmsSDKPeers[e];if(!o){this.logPossibleInconsistency(`Unknown peer ID given ${e} for changerole`);return}yield this.sdk.changeRole(o,t,i)})}acceptChangeRole(e){return c(this,null,function*(){let t=e.requestedBy?this.hmsSDKPeers[e.requestedBy.id]:void 0;t||p.w(`peer for which role change is requested no longer available - ${e.requestedBy}`);let i={requestedBy:t,role:e.role,token:e.token};yield this.sdk.acceptChangeRole(i),this.removeRoleChangeRequest(e)})}initAppData(e){this.setState(t=>{t.appData=e},"initAppData")}setAppData(e,t,i){let o=(t==null?void 0:t.constructor.name)==="Object";this.setState(r=>{i&&o?Object.assign(r.appData[e],t):r.appData[e]=t},`setAppData-${e}`)}rejectChangeRole(e){this.removeRoleChangeRequest(e)}endRoom(e,t){return c(this,null,function*(){let i=this.store.getState(Fe);if(!(i==null?void 0:i.endRoom)){p.w("You are not allowed to perform this action - endRoom");return}let o=this.store.getState(E);this.setState(r=>{r.room.roomState=g.Disconnecting},"endingRoom");try{yield this.sdk.endRoom(e,t),this.resetState("endRoom")}catch(r){p.e("error in ending room - ",r),this.setState(n=>{n.room.roomState=o},"revertEndRoom")}})}removePeer(e,t){return c(this,null,function*(){let i=this.hmsSDKPeers[e];if(i&&!i.isLocal)yield this.sdk.removePeer(i,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 i=this.hmsSDKTracks[e];i&&St(i)?yield this.sdk.changeTrackState(i,t):this.logPossibleInconsistency(`No remote track with ID ${e} found for change track state`)}else Array.isArray(e)&&e.forEach(i=>this.setRemoteTrackEnabled(i,t))})}setRemoteTracksEnabled(e){return c(this,null,function*(){let t={enabled:e.enabled,type:e.type,source:e.source};if(e.roles){let i=this.store.getState(K);t.roles=e.roles.map(o=>i[o])}yield this.sdk.changeMultiTrackState(t)})}setLogLevel(e){p.level=e,this.sdk.setLogLevel(e)}ignoreMessageTypes(e,t=!1){if(t)this.ignoredMessageTypes=e;else for(let i of e)this.ignoredMessageTypes.includes(i)||this.ignoredMessageTypes.push(i)}resetState(e="resetState"){this.setState(t=>{Object.assign(t,se())},e),this.isRoomJoinCalled=!1,this.hmsSDKTracks={},p.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),onNetworkQuality:this.onNetworkQuality.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)}),this.sdk.addConnectionQualityListener({onConnectionQualityUpdate:this.onConnectionQualityUpdate.bind(this)})}onRemovedFromRoom(e){var o;let t=this.store.getState(_((o=e.requestedBy)==null?void 0:o.peerId));this.hmsNotifications.sendLeaveRoom(F(N({},e),{requestedBy:t||void 0}));let i=e.roomEnded||!t?"roomEnded":"removedFromRoom";p.i(`resetting state after peer removed ${i}`,e),this.resetState(i)}onDeviceChange(e){let t=e.devices;if(!t)return;let i=this.store.getState(x);if(this.setState(o=>{U(o.devices.audioInput,t.audioInput)||(o.devices.audioInput=t.audioInput),U(o.devices.videoInput,t.videoInput)||(o.devices.videoInput=t.videoInput),U(o.devices.audioOutput,t.audioOutput)||(o.devices.audioOutput=t.audioOutput),this.hmsSDKPeers[i==null?void 0:i.id]&&Object.assign(o.settings,this.getMediaSettings(this.hmsSDKPeers[i==null?void 0:i.id]))},"deviceChange"),e.selection){let o=h.convertDeviceChangeUpdate(e);this.hmsNotifications.sendDeviceChange(o)}}sdkPreviewWithListeners(e){return c(this,null,function*(){yield this.sdk.preview(e,{onPreview:this.onPreview.bind(this),onError:this.onError.bind(this),onReconnected:this.onReconnected.bind(this),onReconnecting:this.onReconnecting.bind(this),onDeviceChange:this.onDeviceChange.bind(this),onRoomUpdate:this.onRoomUpdate.bind(this),onPeerUpdate:this.onPeerUpdate.bind(this),onNetworkQuality:this.onNetworkQuality.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})})}onNetworkQuality(e){this.setState(t=>{var o;let i=t.room.localPeer||((o=this.sdk.getLocalPeer())==null?void 0:o.peerId);i&&(t.connectionQualities[i]={peerID:i,downlinkQuality:e})},"ConnectionQuality")}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 i=this.hmsSDKTracks[e];i&&i.type==="video"?(yield i.addSink(t),this.updateVideoLayer(e,"attachVideo")):this.logPossibleInconsistency("no video track found to add sink")})}syncRoomState(e){p.time(`store-sync-${e}`);let t={},i=[],o={},r={},n={},a=this.sdk.getPeers();for(let y of a){let w=h.convertPeer(y);t[w.id]=w,i.push(w.id),this.hmsSDKPeers[w.id]=y;let J=[y.audioTrack,y.videoTrack,...y.auxiliaryTracks];for(let te of J){if(!te)continue;let ve=h.convertTrack(te);o[ve.id]=ve,r[te.trackId]=te}w.isLocal&&Object.assign(n,this.getMediaSettings(y))}let u=this.sdk.getRecordingState(),P=this.sdk.getRTMPState(),q=this.sdk.getHLSState();this.setState(y=>{y.room.peers=i;let w=y.peers,J=y.tracks;Ce(w,t),Le(J,o),Object.assign(y.settings,n),this.hmsSDKTracks=r,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),p.timeEnd(`store-sync-${e}`)}onPreview(e){this.setState(t=>{Object.assign(t.room,h.convertRoom(e)),t.room.roomState=g.Preview},"previewStart"),this.syncRoomState("previewSync")}onJoin(e){let t=this.sdk.getPlaylistManager();this.audioPlaylist=new ce(t,M.audio,this.syncPlaylistState.bind(this),this.store),this.videoPlaylist=new ce(t,M.video,this.syncRoomState.bind(this),this.store),this.syncRoomState("joinSync"),this.setState(i=>{Object.assign(i.room,h.convertRoom(e)),i.room.isConnected=!0,i.room.roomState=g.Connected},"joined"),t.onProgress(this.setProgress),t.onNewTrackStart(i=>{this.syncPlaylistState(`${i.type}PlaylistUpdate`)}),t.onPlaylistEnded(i=>{this.syncPlaylistState(`${i}PlaylistEnded`)}),t.onCurrentTrackEnded(i=>{this.hmsNotifications.sendPlaylistTrackEnded(h.convertPlaylistItem(t,i)),this.syncPlaylistState(`${i.type}PlaylistItemEnded`)})}onRoomUpdate(e,t){this.setState(i=>{Object.assign(i.room,h.convertRoom(t))},"RoomUpdate")}onPeerUpdate(e,t){if(![D.BECAME_DOMINANT_SPEAKER,D.RESIGNED_DOMINANT_SPEAKER].includes(e)){if(Array.isArray(t)){this.syncRoomState("peersJoined");let i=[];for(let o of t){let r=this.store.getState(_(o.peerId));r&&i.push(r)}this.hmsNotifications.sendPeerList(i);return}this.sendPeerUpdateNotification(e,t)}}onTrackUpdate(e,t,i){if(e===A.TRACK_REMOVED)this.hmsNotifications.sendTrackUpdate(e,t.trackId),this.handleTrackRemove(t,i);else{let o=e===A.TRACK_ADDED?"trackAdded":"trackUpdate";this.syncRoomState(o),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(je)+1),t.messages.byID[e.id]=e,t.messages.allIDs.push(e.id)},"newMessage")}onAudioLevelUpdate(e){this.setState(t=>{let i={};e.forEach(r=>{if(!r.track||!r.peer)return;let n=r.track.trackId;i[n]=r.audioLevel,t.speakers[n]||(t.speakers[n]={audioLevel:r.audioLevel,peerID:r.peer.peerId,trackID:n})});let o=Object.entries(t.speakers);for(let[r,n]of o)n.audioLevel=i[r]||0,n.audioLevel===0&&delete t.speakers[r]},"audioLevel")}onConnectionQualityUpdate(e){this.setState(t=>{let i=new Set;e.forEach(r=>{let n=r.peerID;!n||(i.add(n),t.connectionQualities[n]?Object.assign(t.connectionQualities[n],r):t.connectionQualities[n]=r)});let o=Object.keys(t.connectionQualities);for(let r of o)i.has(r)||delete t.connectionQualities[r]},"connectionQuality")}onChangeTrackStateRequest(e){var r;let t=this.store.getState(_((r=e.requestedBy)==null?void 0:r.peerId)),i=this.getStoreLocalTrackIDfromSDKTrack(e.track),o=this.store.getState(ae(i));if(!o)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:o,enabled:e.enabled})}onChangeMultiTrackStateRequest(e){var r;let t=this.store.getState(_((r=e.requestedBy)==null?void 0:r.peerId));e.enabled||this.syncRoomState("changeMultiTrackStateRequest");let i=[],o=this.store.getState(H);for(let n of e.tracks){let a=this.getStoreLocalTrackIDfromSDKTrack(n);a&&o[a]&&i.push(o[a])}this.hmsNotifications.sendChangeMultiTrackStateRequest({requestedBy:t||void 0,tracks:i,enabled:e.enabled,type:e.type,source:e.source})}onReconnected(){this.syncRoomState("reconnectedSync"),this.hmsNotifications.sendReconnected(),this.setState(e=>{e.room.roomState=e.room.isConnected?g.Connected:g.Preview},"reconnected")}onReconnecting(e){let t=h.convertException(e);p.e("Reconnection: received error from sdk",t),this.hmsNotifications.sendReconnecting(t),this.setState(i=>{i.room.roomState=g.Reconnecting,i.errors.push(t)},"reconnecting")}onError(e){let t=h.convertException(e);t.isTerminal?(this.leave().then(()=>p.e("error from SDK, left room.")),this.setState(i=>{i.room.roomState=g.Failed,i.errors.push(t)},"errorTerminal")):this.store.getState().errors.length<50&&this.setState(o=>{o.errors.push(t)},"error"),this.syncRoomState("errorSync"),this.hmsNotifications.sendError(t),p.e("received error from sdk",t)}updateVideoLayer(e,t){let i=this.hmsSDKTracks[e];i&&i instanceof Mt&&this.setState(o=>{o.tracks[e].layer=i.getSimulcastLayer(),o.tracks[e].degraded=i.degraded},t)}handleTrackRemove(e,t){this.setState(i=>{let o=i.peers[t.peerId],r=i.tracks,n=e.trackId;if(this.isSameStoreSDKTrack(n,o==null?void 0:o.audioTrack))o==null||delete o.audioTrack;else if(this.isSameStoreSDKTrack(n,o==null?void 0:o.videoTrack))o==null||delete o.videoTrack;else{let a=o==null?void 0:o.auxiliaryTracks.indexOf(n);a>-1&&this.isSameStoreSDKTrack(n,o==null?void 0:o.auxiliaryTracks[a])&&(o==null||o.auxiliaryTracks.splice(a,1))}delete r[n],delete this.hmsSDKTracks[n]},"trackRemoved")}setEnabledSDKTrack(e,t){return c(this,null,function*(){let i=this.hmsSDKTracks[e];i?yield i.setEnabled(t):this.logPossibleInconsistency(`track ${e} not present, unable to enabled/disable`)})}setSDKLocalVideoTrackSettings(e,t){return c(this,null,function*(){let i=this.hmsSDKTracks[e];i?yield i.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}setSDKLocalAudioTrackSettings(e,t){return c(this,null,function*(){let i=this.hmsSDKTracks[e];i?yield i.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}getMediaSettings(e){var r;let t=this.store.getState(Ke),i=e.audioTrack,o=e.videoTrack;return{audioInputDeviceId:(i==null?void 0:i.settings.deviceId)||t.audioInputDeviceId,videoInputDeviceId:(o==null?void 0:o.settings.deviceId)||t.videoInputDeviceId,audioOutputDeviceId:(r=this.sdk.getAudioOutput().getDevice())==null?void 0:r.deviceId}}setTrackVolume(e,t){let i=this.hmsSDKTracks[t];i?i instanceof Gt?(i.setVolume(e),this.setState(o=>{let r=o.tracks[t];r&&(r.volume=e)},"trackVolume")):p.w(`track ${t} is not an audio track`):this.logPossibleInconsistency(`track ${t} not present, unable to set volume`)}localAndVideoUnmuting(e){if(this.store.getState(x).videoTrack!==e)return!1;let i=this.store.getState(qe),o=this.store.getState(he);return i&&!o}logPossibleInconsistency(e){p.w("possible inconsistency detected - ",e)}addRemoveVideoPlugin(e,t,i){return c(this,null,function*(){if(!e){p.w("Invalid plugin received in store");return}let o=this.store.getState(L);if(o){let r=this.hmsSDKTracks[o];r?(t==="add"?yield r.addPlugin(e,i):t==="remove"&&(yield r.removePlugin(e)),this.syncRoomState(`${t}VideoPlugin`)):this.logPossibleInconsistency(`track ${o} not present, unable to remove plugin`)}})}addRemoveAudioPlugin(e,t){return c(this,null,function*(){if(!e){p.w("Invalid plugin received in store");return}let i=this.store.getState(C);if(i){let o=this.hmsSDKTracks[i];o?(t==="add"?yield o.addPlugin(e):t==="remove"&&(yield o.removePlugin(e)),this.syncRoomState(`${t}AudioPlugin`)):this.logPossibleInconsistency(`track ${i} not present, unable to remove plugin`)}})}isSameStoreSDKTrack(e,t){var i;return t?((i=this.hmsSDKTracks[t])==null?void 0:i.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 i=t.roleChangeRequests.findIndex(o=>o.token===e.token);i!==-1&&t.roleChangeRequests.splice(i,1)},"removeRoleChangeRequest")}onRoleUpdate(){this.syncRoomState("roleUpdate")}getStoreLocalTrackIDfromSDKTrack(e){return this.store.getState(Be).find(i=>this.hmsSDKTracks[i].trackId===e.trackId)}};import{EventEmitter2 as Jt}from"eventemitter2";var Pe="hmsNotification",Re=class{constructor(e){this.id=0;this.onNotification=(e,t)=>{let i=o=>{if(t){let r;if(Array.isArray(t)?r=t.includes(o.type):r=t===o.type,!r)return}e(o)};return this.eventEmitter.addListener(Pe,i),()=>{this.eventEmitter.removeListener(Pe,i)}};this.store=e,this.eventEmitter=new Jt}sendPlaylistTrackEnded(e){let t=this.createNotification(m.PLAYLIST_TRACK_ENDED,e,R.INFO);this.emitEvent(t)}sendDeviceChange(e){var i;let t=this.createNotification(m.DEVICE_CHANGE_UPDATE,e,e.error?R.ERROR:R.INFO,`Selected ${e.type} device - ${(i=e.selection)==null?void 0:i.label}`);this.emitEvent(t)}sendLeaveRoom(e){var o;let t=(o=e.requestedBy)==null?void 0:o.name,i=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(i)}sendPeerList(e){let t=this.createNotification(m.PEER_LIST,e,R.INFO);this.emitEvent(t)}sendPeerUpdate(e,t){let i=this.store.getState(_(t==null?void 0:t.id))||t,o=dt[e];if(o){let r=this.createNotification(o,i,R.INFO);this.emitEvent(r)}}sendTrackUpdate(e,t){let i=this.store.getState(ae(t)),o=ut[e];if(o){let r=this.createNotification(o,i,R.INFO);this.emitEvent(r)}}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,i,o=""){return this.id++,{id:this.id,type:e,message:o,data:t,severity:i}}};import{isBrowser as Yt}from"@100mslive/hms-video";var le=s=>Yt?`${s} ${document.title}`:s;var mt=(s,e,t)=>{let i;t.getState(E)===g.Connected&&(i=ht(s,e,t)),t.subscribe(o=>{[g.Connected,g.Reconnecting].includes(o)?i||(i=ht(s,e,t)):i&&(Zt(e),i())},E)},ht=(s,e,t)=>{var r;let i=Xt(t,e),o=(r=s.getWebrtcInternals())==null?void 0:r.onStatsChange(n=>zt(e,n,t));return()=>{i(),o&&o()}},Xt=(s,e)=>{let t,i,o;return s.getState($)?e.namedSetState(r=>{r.localPeer.id=s.getState($)},"localpeer-id"):t=s.subscribe(r=>{r&&e.namedSetState(n=>{n.localPeer.id=r},"localpeer-id")},$),s.getState(L)?e.namedSetState(r=>{r.localPeer.videoTrack=s.getState(L)},"localpeer-videotrack-id"):i=s.subscribe(r=>{r&&e.namedSetState(n=>{n.localPeer.videoTrack=r},"localpeer-videotrack-id")},L),s.getState(C)?e.namedSetState(r=>{r.localPeer.videoTrack=s.getState(C)},"localpeer-audiotrack-id"):o=s.subscribe(r=>{r&&e.namedSetState(n=>{n.localPeer.videoTrack=r},"localpeer-audiotrack-id")},C),()=>{t==null||t(),i==null||i(),o==null||o()}},zt=(s,e,t)=>{let i=t.getState(H);s.namedSetState(o=>{let r={},n=Object.keys(i);for(let P of n){let q=e.getTrackStats(P);q&&(r[P]=q)}de(o.trackStats,r);let u={[t.getState($)]:e.getLocalPeerStats()};de(o.peerStats,u)},"webrtc-stats")},Zt=(s,e="resetState")=>{s.namedSetState(t=>{Object.assign(t,ie())},e)};var Se=class{constructor(e,t){this.hmsStore=e;this.sdk=t;this.store=O.createNewHMSStore(le("HMSStatsStore"),ie),this.getState=this.store.getState,this.subscribe=this.store.subscribe,this.getPublishPeerConnection=()=>new Promise(i=>{var o,r;this.hmsStore.getState(E)==="Connected"?i((r=(o=this.sdk)==null?void 0:o.getWebrtcInternals())==null?void 0:r.getPublishPeerConnection()):this.hmsStore.subscribe(n=>{var a,u;n==="Connected"&&i((u=(a=this.sdk)==null?void 0:a.getWebrtcInternals())==null?void 0:u.getPublishPeerConnection())},E)}),this.getSubscribePeerConnection=()=>new Promise(i=>{var o,r;this.hmsStore.getState(E)==="Connected"?i((r=(o=this.sdk)==null?void 0:o.getWebrtcInternals())==null?void 0:r.getSubscribePeerConnection()):this.hmsStore.subscribe(n=>{var a,u;n==="Connected"&&i((u=(a=this.sdk)==null?void 0:a.getWebrtcInternals())==null?void 0:u.getSubscribePeerConnection())},E)}),!!this.sdk&&mt(this.sdk,this.store,this.hmsStore)}};import{createSelector as T}from"reselect";var es=s=>s.localPeer.id,ts=s=>s.localPeer.audioTrack,ss=s=>s.localPeer.videoTrack,is=(s,e)=>e,os=(s,e)=>e,De=s=>s.trackStats,gt=s=>s.peerStats,V=T([gt,es],(s,e)=>s[e]),rs=T(V,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.packetsLost}),ns=T(V,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.jitter}),as=T(V,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bitrate}),cs=T(V,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bitrate}),ls=T(V,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.availableOutgoingBitrate}),Ss=T(V,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.availableIncomingBitrate}),ds=T(V,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bytesSent}),us=T(V,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bytesReceived}),ps=T([gt,is],(s,e)=>e?s[e]:void 0),G=T([De,os],(s,e)=>e?s[e]:void 0),Ms=S(ps),ms=S(G),hs=S(T(G,s=>s==null?void 0:s.bitrate)),gs=S(T(G,s=>s==null?void 0:s.bytesReceived)),Ts=S(T(G,s=>s==null?void 0:s.framesPerSecond)),Hs=S(T(G,s=>s==null?void 0:s.jitter)),ys=S(T(G,s=>s==null?void 0:s.packetsLost)),Ie=T([De,ts],(s,e)=>e?s[e]:void 0),ee=T([De,ss],(s,e)=>e?s[e]:void 0),fs=T(Ie,s=>s==null?void 0:s.bitrate),ks=T(ee,s=>s==null?void 0:s.bitrate),Ps=T(Ie,s=>s==null?void 0:s.bytesSent),Rs=T(ee,s=>s==null?void 0:s.bytesSent),Ds=T(ee,s=>s==null?void 0:s.framesPerSecond),Is=T(ee,s=>s==null?void 0:s.qualityLimitationReason),vs={localPeerStats:V,packetsLost:rs,jitter:ns,publishBitrate:as,subscribeBitrate:cs,availablePublishBitrate:ls,availableSubscribeBitrate:Ss,totalBytesSent:ds,totalBytesReceived:us,peerStatsByID:Ms,trackStatsByID:ms,bitrateByTrackID:hs,bytesReceivedByTrackID:gs,framerateByTrackID:Ts,jitterByTrackID:Hs,packetsLostByTrackID:ys,localAudioTrackStats:Ie,localVideoTrackStats:ee,localAudioTrackBitrate:fs,localVideoTrackBitrate:ks,localAudioTrackBytesSent:Ps,localVideoTrackBytesSent:Rs,localVideoTrackFramerate:Ds,localVideoTrackQualityLimitationReason:Is};var O=class{constructor(e,t,i){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),i?this.notifications=i:this.notifications=new Re(this.store),t?this.actions=t:(this.sdk=new Cs,this.actions=new ke(this.store,this.sdk,this.notifications)),this.initialTriggerOnSubscribe=!1,Ls&&(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 i=Es(()=>t()),o=i.setState;i.setState=a=>{let u=typeof a=="function"?bs(a):a;o(u)};let r=i.getState;i.getState=a=>{if(a){let u=a.name||"byIDSelector";window.selectorsCount||(window.selectorsCount={}),window.selectorsCount[u]=(window.selectorsCount[u]||0)+1;let P=performance.now(),q=a(r()),y=performance.now()-P;return y>1&&(window.expensiveSelectors=window.expensiveSelectors||new Map,window.expensiveSelectors.set(u,y)),q}return r()},O.compareWithShallowCheckInSubscribe(i);let n=O.setUpDevtools(i,e);return F(N({},i),{namedSetState:n})}static makeStoreTriggerOnSubscribe(e){let t=e.subscribe;e.subscribe=(i,o,r)=>(i(e.getState(o),void 0),t(i,o,r))}static compareWithShallowCheckInSubscribe(e){let t=e.subscribe;e.subscribe=(i,o,r)=>(o||(o=n=>n),r=r||As,t(i,o,r))}static setUpDevtools(e,t){let i;try{i=window.__REDUX_DEVTOOLS_EXTENSION__||window.top.__REDUX_DEVTOOLS_EXTENSION__}catch(n){}if(!i)return n=>{e.setState(n)};let o=i.connect(O.devtoolsOptions(t));o.prefix=t?`${t} > `:"";let r=e.setState;return e.setState=n=>{r(n),o.send(`${o.prefix}setState`,e.getState())},o.subscribe(O.devtoolsSubscribe(o,e,r)),o.send("setUpStore",e.getState()),(n,a)=>{r(n);let u=a||`${o.prefix}action`;o.send(u,e.getState())}}static devtoolsOptions(e){return{name:e,actionsBlacklist:["audioLevel","playlistProgress","connectionQuality"]}}static devtoolsSubscribe(e,t,i){return o=>{var r,n,a,u;if(o.type==="DISPATCH"&&o.state)["JUMP_TO_ACTION","JUMP_TO_STATE"].includes(o.payload.type)?i(JSON.parse(o.state)):t.setState(JSON.parse(o.state));else if(o.type==="DISPATCH"&&((r=o.payload)==null?void 0:r.type)==="COMMIT")e.init(t.getState());else if(o.type==="DISPATCH"&&((n=o.payload)==null?void 0:n.type)==="IMPORT_STATE"){let P=(a=o.payload.nextLiftedState)==null?void 0:a.actionsById;(((u=o.payload.nextLiftedState)==null?void 0:u.computedStates)||[]).forEach(({state:y},w)=>{let J=P[w]||`${e.prefix}setState`;w===0?e.init(y):(i(y),e.send(J,t.getState()))})}}}};export{Pt as HMSAudioPluginType,k as HMSLogLevel,Ae as HMSMessageType,R as HMSNotificationSeverity,m as HMSNotificationTypes,M as HMSPlaylistType,O as HMSReactiveStore,g as HMSRoomState,Se as HMSStats,Rt as HMSVideoPluginType,ie as createDefaultStatsStore,se as createDefaultStoreState,Dt as parsedUserAgent,xo as selectAppData,et as selectAudioPlaylist,jo as selectAudioPlaylistTrackByPeerID,_t as selectAudioTrackByPeerID,at as selectAudioTrackVolume,Jo as selectAudioVolumeByPeerID,Vo as selectAuxiliaryAudioByPeerID,No as selectAuxiliaryTracksByPeerID,uo as selectAvailableRoleNames,Vt as selectBroadcastMessages,zo as selectBroadcastMessagesUnreadCount,wo as selectCameraStreamByPeerID,zi as selectConnectionQualities,Ko as selectConnectionQualityByPeerID,co as selectDegradedTracks,Xi as selectDevices,Hr as selectDidIJoinWithin,to as selectDominantSpeaker,Ve as selectFullAppData,ho as selectHLSState,re as selectHMSMessages,je as selectHMSMessagesCount,vs as selectHMSStats,Sr as selectIsAllowedToPublish,po as selectIsAllowedToSubscribe,nt as selectIsAudioLocallyMuted,Ct as selectIsConnectedToRoom,So as selectIsInPreview,so as selectIsLocalAudioEnabled,hr as selectIsLocalAudioPluginPresent,ge as selectIsLocalScreenShared,qe as selectIsLocalVideoDisplayEnabled,he as selectIsLocalVideoEnabled,mr as selectIsLocalVideoPluginPresent,Qo as selectIsLocallyMutedByPeerID,Fo as selectIsPeerAudioEnabled,Wo as selectIsPeerVideoEnabled,Go as selectIsScreenShareLocallyMutedByPeerID,io as selectIsSomeoneScreenSharing,C as selectLocalAudioTrackID,Ke as selectLocalMediaSettings,x as selectLocalPeer,$ as selectLocalPeerID,ne as selectLocalPeerRole,Be as selectLocalTrackIDs,L as selectLocalVideoTrackID,_e as selectMessageIDsInOrder,Zo as selectMessagesByPeerID,er as selectMessagesByRole,Ue as selectMessagesMap,sr as selectMessagesUnreadCountByPeerID,tr as selectMessagesUnreadCountByRole,_o as selectPeerAudioByID,gr as selectPeerByCondition,_ as selectPeerByID,Zi as selectPeerCount,or as selectPeerMetadata,Oo as selectPeerNameByID,Ot as selectPeerScreenSharing,oo as selectPeerSharingAudio,ao as selectPeerSharingAudioPlaylist,no as selectPeerSharingVideoPlaylist,Q as selectPeers,Tr as selectPeersByCondition,ir as selectPeersByRole,b as selectPeersMap,ro as selectPeersScreenSharing,cr as selectPeersWithAudioStatus,Fe as selectPermissions,mo as selectRTMPState,Mo as selectRecordingState,eo as selectRemotePeers,Mr as selectRoleByRoleName,lr as selectRoleChangeRequest,K as selectRolesMap,I as selectRoom,Yi as selectRoomID,To as selectRoomStartTime,$e as selectRoomStarted,E as selectRoomState,rt as selectScreenShareAudioByPeerID,$o as selectScreenShareByPeerID,ot as selectScreenSharesByPeerId,Yo as selectScreenshareAudioVolumeByPeerID,go as selectSessionId,Xo as selectSimulcastLayerByTrack,At as selectSpeakers,Uo as selectTrackAudioByID,ae as selectTrackByID,H as selectTracksMap,lo as selectUnreadHMSMessagesCount,tt as selectVideoPlaylist,qo as selectVideoPlaylistAudioTrackByPeerID,Bo as selectVideoPlaylistVideoTrackByPeerID,Ut as selectVideoTrackByPeerID};
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.2.97",
2
+ "version": "0.2.98",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.cjs.js",
5
5
  "module": "dist/index.js",
@@ -10,6 +10,13 @@
10
10
  "engines": {
11
11
  "node": ">=12"
12
12
  },
13
+ "exports": {
14
+ ".": {
15
+ "require": "./dist/index.cjs.js",
16
+ "import": "./dist/index.js",
17
+ "default": "./dist/index.js"
18
+ }
19
+ },
13
20
  "scripts": {
14
21
  "prestart": "rm -rf dist && yarn types:build",
15
22
  "start": "concurrently \"yarn dev\" \"yarn types\"",
@@ -33,7 +40,7 @@
33
40
  "author": "100ms",
34
41
  "sideEffects": false,
35
42
  "dependencies": {
36
- "@100mslive/hms-video": "0.1.51",
43
+ "@100mslive/hms-video": "0.1.52",
37
44
  "eventemitter2": "^6.4.5",
38
45
  "immer": "^9.0.6",
39
46
  "reselect": "4.0.0",
@@ -57,5 +64,6 @@
57
64
  "bugs": {
58
65
  "url": "https://github.com/100mslive/hms-video-store/issues"
59
66
  },
60
- "homepage": "https://github.com/100mslive/hms-video-store#readme"
67
+ "homepage": "https://github.com/100mslive/hms-video-store#readme",
68
+ "gitHead": "80757dd8d2a0fc195746bd158f7238e81b4ae1ca"
61
69
  }