@100mslive/hms-video-store 0.2.88-alpha.2 → 0.2.88-alpha.3
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/core/IHMSStore.d.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Disabling this lint option so that
|
|
3
|
+
* IHMSStore, IHMSStoreReadOnly, IHMSStatsStore, IHMSStatsStoreReadOnly
|
|
4
|
+
* are exported as interfaces to include tsdoc comments with them.
|
|
5
|
+
*/
|
|
1
6
|
import { HMSStore, HMSStatsStore } from './schema';
|
|
2
7
|
import { StateSelector, StoreApi, Subscribe, State } from 'zustand/vanilla';
|
|
3
8
|
import { NamedSetState } from './hmsSDKStore/internalTypes';
|
|
@@ -38,25 +43,15 @@ export interface GetState<T extends State> {
|
|
|
38
43
|
<StateSlice>(selector?: StateSelector<T, StateSlice>): StateSlice;
|
|
39
44
|
}
|
|
40
45
|
/**
|
|
41
|
-
*
|
|
42
|
-
* - Get a part of the current store or state(getState)
|
|
43
|
-
* - Subscribe to different parts of the store using selectors and execute a callback when the value changes.
|
|
44
|
-
*
|
|
45
|
-
* Both getState and subscribe use selectors to query a part the store.
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
* Selectors are functions with HMSStore as an argument and returns a part of the store.
|
|
49
|
-
*
|
|
50
|
-
* **StoreSelector** is a type alias for this type of function.
|
|
51
|
-
*
|
|
52
|
-
* @category Core
|
|
46
|
+
* @internal
|
|
53
47
|
*/
|
|
54
48
|
export declare type IStoreReadOnly<T extends State> = Omit<IStore<T>, 'setState' | 'namedSetState' | 'destroy'>;
|
|
55
49
|
/**
|
|
56
50
|
* HMS Reactive store can be used to subscribe to different parts of the store using selectors
|
|
57
51
|
* and get a callback when the value changes.
|
|
58
52
|
*/
|
|
59
|
-
export
|
|
53
|
+
export interface IHMSStore extends IStore<HMSStore> {
|
|
54
|
+
}
|
|
60
55
|
/**
|
|
61
56
|
* HMS store can be used to:
|
|
62
57
|
* - Get a part of the current store or state(getState)
|
|
@@ -71,6 +66,9 @@ export declare type IHMSStore = IStore<HMSStore>;
|
|
|
71
66
|
*
|
|
72
67
|
* @category Core
|
|
73
68
|
*/
|
|
74
|
-
export
|
|
75
|
-
|
|
76
|
-
export
|
|
69
|
+
export interface IHMSStoreReadOnly extends IStoreReadOnly<HMSStore> {
|
|
70
|
+
}
|
|
71
|
+
export interface IHMSStatsStore extends IStore<HMSStatsStore> {
|
|
72
|
+
}
|
|
73
|
+
export interface IHMSStatsStoreReadOnly extends IStoreReadOnly<HMSStatsStore> {
|
|
74
|
+
}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { State } from 'zustand/vanilla';
|
|
2
2
|
import { IHMSActions } from '../IHMSActions';
|
|
3
|
-
import { IStore } from '../IHMSStore';
|
|
3
|
+
import { IHMSStatsStoreReadOnly, IStore } from '../IHMSStore';
|
|
4
4
|
import { IHMSStore, IHMSStoreReadOnly } from '../IHMSStore';
|
|
5
5
|
import { HMSNotifications } from './HMSNotifications';
|
|
6
6
|
import { IHMSNotifications } from '../IHMSNotifications';
|
|
7
|
-
import { HMSStats } from '../webrtc-stats';
|
|
8
7
|
declare global {
|
|
9
8
|
interface Window {
|
|
10
9
|
__hms: HMSReactiveStore;
|
|
@@ -55,9 +54,8 @@ export declare class HMSReactiveStore {
|
|
|
55
54
|
getNotifications(): IHMSNotifications;
|
|
56
55
|
/**
|
|
57
56
|
* @alpha
|
|
58
|
-
* @internal
|
|
59
57
|
*/
|
|
60
|
-
getStats: () =>
|
|
58
|
+
getStats: () => IHMSStatsStoreReadOnly;
|
|
61
59
|
/**
|
|
62
60
|
* @internal
|
|
63
61
|
*/
|
package/dist/core/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type {
|
|
1
|
+
export type { IStoreReadOnly, IHMSStore, IHMSStoreReadOnly as HMSStoreWrapper, IHMSStatsStore, IHMSStatsStoreReadOnly as HMSStatsStoreWrapper, } from './IHMSStore';
|
|
2
2
|
export type { IHMSActions as HMSActions } from './IHMSActions';
|
|
3
3
|
export type { IHMSNotifications as HMSNotifications } from './IHMSNotifications';
|
|
4
4
|
export type { HMSNotificationCallback } from './IHMSNotifications';
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { HMSSdk } from '@100mslive/hms-video';
|
|
2
2
|
import { Subscribe } from 'zustand/vanilla';
|
|
3
|
-
import { HMSStatsStore
|
|
4
|
-
|
|
3
|
+
import { HMSStatsStore } from '..';
|
|
4
|
+
import { IHMSStore, IHMSStatsStoreReadOnly, GetState } from '../IHMSStore';
|
|
5
|
+
/**
|
|
6
|
+
* @internal
|
|
7
|
+
*/
|
|
8
|
+
export declare class HMSStats implements IHMSStatsStoreReadOnly {
|
|
5
9
|
private hmsStore;
|
|
6
10
|
private sdk?;
|
|
7
11
|
readonly getState: GetState<HMSStatsStore>;
|
package/dist/index.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var xt=Object.create;var Y=Object.defineProperty,Lt=Object.defineProperties,Ot=Object.getOwnPropertyDescriptor,wt=Object.getOwnPropertyDescriptors,Nt=Object.getOwnPropertyNames,Je=Object.getOwnPropertySymbols,Ut=Object.getPrototypeOf,Ye=Object.prototype.hasOwnProperty,_t=Object.prototype.propertyIsEnumerable;var Qe=(s,e,t)=>e in s?Y(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,j=(s,e)=>{for(var t in e||(e={}))Ye.call(e,t)&&Qe(s,t,e[t]);if(Je)for(var t of Je(e))_t.call(e,t)&&Qe(s,t,e[t]);return s},$=(s,e)=>Lt(s,wt(e)),Xe=s=>Y(s,"__esModule",{value:!0});var ze=(s,e)=>{Xe(s);for(var t in e)Y(s,t,{get:e[t],enumerable:!0})},Kt=(s,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Nt(e))!Ye.call(s,r)&&r!=="default"&&Y(s,r,{get:()=>e[r],enumerable:!(t=Ot(e,r))||t.enumerable});return s},v=s=>Kt(Xe(Y(s!=null?xt(Ut(s)):{},"default",s&&s.__esModule&&"default"in s?{get:()=>s.default,enumerable:!0}:{value:s,enumerable:!0})),s);var c=(s,e,t)=>new Promise((r,o)=>{var i=d=>{try{l(t.next(d))}catch(R){o(R)}},a=d=>{try{l(t.throw(d))}catch(R){o(R)}},l=d=>d.done?r(d.value):Promise.resolve(d.value).then(i,a);l((t=t.apply(s,e)).next())});ze(exports,{HMSAudioPluginType:()=>n.HMSAudioPluginType,HMSLogLevel:()=>n.HMSLogLevel,HMSMessageType:()=>Te,HMSNotificationSeverity:()=>P,HMSNotificationTypes:()=>h,HMSPlaylistType:()=>p,HMSReactiveStore:()=>L,HMSRoomState:()=>y,HMSStats:()=>ae,HMSVideoPluginType:()=>n.HMSVideoPluginType,createDefaultStatsStore:()=>X,createDefaultStoreState:()=>Q,selectAudioPlaylist:()=>Oe,selectAudioPlaylistTrackByPeerID:()=>ks,selectAudioTrackByPeerID:()=>pt,selectAudioTrackVolume:()=>Be,selectAudioVolumeByPeerID:()=>Ds,selectAuxiliaryAudioByPeerID:()=>Ts,selectAuxiliaryTracksByPeerID:()=>ps,selectAvailableRoleNames:()=>os,selectBroadcastMessages:()=>Tt,selectBroadcastMessagesUnreadCount:()=>xs,selectCameraStreamByPeerID:()=>Ms,selectDegradedTracks:()=>ts,selectDevices:()=>qt,selectDominantSpeaker:()=>Jt,selectHLSState:()=>cs,selectHMSMessages:()=>te,selectHMSMessagesCount:()=>Ee,selectHMSStats:()=>ge,selectIsAllowedToPublish:()=>qs,selectIsAllowedToSubscribe:()=>is,selectIsAudioLocallyMuted:()=>Ve,selectIsConnectedToRoom:()=>jt,selectIsInPreview:()=>rs,selectIsLocalAudioEnabled:()=>Yt,selectIsLocalAudioPluginPresent:()=>Gs,selectIsLocalScreenShared:()=>ue,selectIsLocalVideoDisplayEnabled:()=>be,selectIsLocalVideoEnabled:()=>de,selectIsLocalVideoPluginPresent:()=>Fs,selectIsLocallyMutedByPeerID:()=>vs,selectIsPeerAudioEnabled:()=>Ps,selectIsPeerVideoEnabled:()=>Rs,selectIsScreenShareLocallyMutedByPeerID:()=>Is,selectIsSomeoneScreenSharing:()=>Qt,selectLocalAudioTrackID:()=>A,selectLocalMediaSettings:()=>Ie,selectLocalPeer:()=>E,selectLocalPeerID:()=>V,selectLocalPeerRole:()=>se,selectLocalTrackIDs:()=>De,selectLocalVideoTrackID:()=>C,selectMessageIDsInOrder:()=>ve,selectMessagesByPeerID:()=>Ls,selectMessagesByRole:()=>Os,selectMessagesMap:()=>Re,selectMessagesUnreadCountByPeerID:()=>Ns,selectMessagesUnreadCountByRole:()=>ws,selectPeerAudioByID:()=>gs,selectPeerByID:()=>O,selectPeerCount:()=>$t,selectPeerMetadata:()=>_s,selectPeerNameByID:()=>us,selectPeerScreenSharing:()=>ot,selectPeerSharingAudio:()=>Xt,selectPeerSharingAudioPlaylist:()=>es,selectPeerSharingVideoPlaylist:()=>Zt,selectPeers:()=>Se,selectPeersByRole:()=>Us,selectPeersMap:()=>I,selectPeersScreenSharing:()=>zt,selectPeersWithAudioStatus:()=>Ks,selectPermissions:()=>Ce,selectRTMPState:()=>ns,selectRecordingState:()=>as,selectRemotePeers:()=>Gt,selectRoleByRoleName:()=>js,selectRoleChangeRequest:()=>Bs,selectRolesMap:()=>_,selectRoom:()=>b,selectRoomStartTime:()=>Ss,selectRoomStarted:()=>Ae,selectRoomState:()=>x,selectScreenShareAudioByPeerID:()=>Ke,selectScreenShareByPeerID:()=>fs,selectScreenSharesByPeerId:()=>_e,selectScreenshareAudioVolumeByPeerID:()=>bs,selectSessionId:()=>ls,selectSimulcastLayerByTrack:()=>Es,selectSpeakers:()=>rt,selectTrackAudioByID:()=>ms,selectTrackByID:()=>oe,selectTracksMap:()=>H,selectUnreadHMSMessagesCount:()=>ss,selectVideoPlaylist:()=>we,selectVideoPlaylistAudioTrackByPeerID:()=>ys,selectVideoPlaylistVideoTrackByPeerID:()=>Hs,selectVideoTrackByPeerID:()=>Mt});var bt=v(require("immer")),Et=v(require("zustand/vanilla")),At=v(require("zustand/shallow")),Ct=v(require("@100mslive/hms-video"));var y;(function(a){a.Disconnected="Disconnected",a.Preview="Preview",a.Connecting="Connecting",a.Connected="Connected",a.Reconnecting="Reconnecting",a.Failed="Failed"})(y||(y={}));var Q=()=>({room:{id:"",isConnected:!1,name:"",peers:[],shareableLink:"",localPeer:"",hasWaitingRoom:!1,roomState:y.Disconnected,recording:{browser:{running:!1},server:{running:!1}},rtmp:{running:!1},hls:{running:!1,variants:[]},sessionId:""},peers:{},tracks:{},playlist:{audio:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1},video:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1}},messages:{byID:{},allIDs:[]},speakers:{},settings:{audioInputDeviceId:"",audioOutputDeviceId:"",videoInputDeviceId:""},devices:{audioInput:[],audioOutput:[],videoInput:[]},roles:{},roleChangeRequests:[],errors:[]}),X=()=>({peerStats:{},trackStats:{},localPeer:{id:""}});var Te;(function(e){e.CHAT="chat"})(Te||(Te={}));var P;(function(r){r.INFO="info",r.ERROR="error",r.CRITICAL="critical"})(P||(P={}));var h;(function(S){S.PEER_JOINED="PEER_JOINED",S.PEER_LEFT="PEER_LEFT",S.PEER_LIST="PEER_LIST",S.NEW_MESSAGE="NEW_MESSAGE",S.ERROR="ERROR",S.RECONNECTING="RECONNECTING",S.RECONNECTED="RECONNECTED",S.TRACK_ADDED="TRACK_ADDED",S.TRACK_REMOVED="TRACK_REMOVED",S.TRACK_MUTED="TRACK_MUTED",S.TRACK_UNMUTED="TRACK_UNMUTED",S.TRACK_DEGRADED="TRACK_DEGRADED",S.TRACK_RESTORED="TRACK_RESTORED",S.ROLE_CHANGE_REQUEST="ROLE_CHANGE_REQUEST",S.ROLE_UPDATED="ROLE_UPDATED",S.CHANGE_TRACK_STATE_REQUEST="CHANGE_TRACK_STATE_REQUEST",S.CHANGE_MULTI_TRACK_STATE_REQUEST="CHANGE_MULTI_TRACK_STATE_REQUEST",S.ROOM_ENDED="ROOM_ENDED",S.REMOVED_FROM_ROOM="REMOVED_FROM_ROOM",S.DEVICE_CHANGE_UPDATE="DEVICE_CHANGE_UPDATE",S.PLAYLIST_TRACK_ENDED="PLAYLIST_TRACK_ENDED",S.NAME_UPDATED="NAME_UPDATED",S.METADATA_UPDATED="METADATA_UPDATED"})(h||(h={}));var p;(function(t){t.audio="audio",t.video="video"})(p||(p={}));var n=v(require("@100mslive/hms-video"));var U=v(require("@100mslive/hms-video"));var Ze=(s,e)=>{let t=Pe(Object.keys(s),Object.keys(e));for(let r of t){let o=s[r],i=e[r];ye(o,i)?(N(o.auxiliaryTracks,i.auxiliaryTracks)&&(i.auxiliaryTracks=o.auxiliaryTracks),Object.assign(o,i)):ke(o,i)?delete s[r]:fe(o,i)&&(s[r]=i)}},et=(s,e)=>{let t=Pe(Object.keys(s),Object.keys(e));for(let r of t){let o=s[r],i=e[r];ye(o,i)?(Vt(o,i),Object.assign(o,i)):ke(o,i)?delete s[r]:fe(o,i)&&(s[r]=i)}},He=(s,e)=>{let t=Pe(Object.keys(s),Object.keys(e));for(let r of t){let o=s[r],i=e[r];ye(o,i)?Object.assign(o,i):ke(o,i)?delete s[r]:fe(o,i)&&(s[r]=i)}},Vt=(s,e)=>{s.plugins&&N(s.plugins,e.plugins)&&(e.plugins=s.plugins),s.layerDefinitions&&N(s.layerDefinitions,e.layerDefinitions)&&(e.layerDefinitions=s.layerDefinitions)},ye=(s,e)=>s&&e,ke=(s,e)=>s&&!e,fe=(s,e)=>!s&&e,N=(s,e)=>{if(s===e||s.length===0&&(e==null?void 0:e.length)===0)return!0;if(!s||!e||s.length!==e.length)return!1;for(let t=0;t<s.length;t++)if(s[t]!==e[t])return!1;return!0},Pe=(s,e)=>{let t=new Set;for(let r of s)t.add(r);for(let r of e)t.add(r);return Array.from(t)};var T=class{static convertPeer(e){var t,r,o;return{id:e.peerId,name:e.name,roleName:(t=e.role)==null?void 0:t.name,isLocal:e.isLocal,videoTrack:(r=e.videoTrack)==null?void 0:r.trackId,audioTrack:(o=e.audioTrack)==null?void 0:o.trackId,auxiliaryTracks:e.auxiliaryTracks.map(i=>i.trackId),customerUserId:e.customerUserId,customerDescription:e.metadata,metadata:e.metadata}}static convertTrack(e,t){let r={id:e.trackId,source:e.source,type:e.type,enabled:e.enabled,displayEnabled:e.enabled,peerId:e.peerId||t};return this.enrichTrack(r,e),r}static enrichTrack(e,t){let r=t.getMediaTrackSettings();e.source==="screen"&&e.type==="video"&&(e.displaySurface=r.displaySurface),e.height=r.height,e.width=r.width,t instanceof U.HMSRemoteAudioTrack&&(e.volume=t.getVolume()||0),T.updateDeviceID(e,t),T.enrichVideoTrack(e,t),T.enrichPluginsDetails(e,t)}static updateDeviceID(e,t){var r;t instanceof U.HMSLocalVideoTrack||t instanceof U.HMSLocalAudioTrack?e.deviceID=t.settings.deviceId:e.deviceID=(r=t.getMediaTrackSettings())==null?void 0:r.deviceId}static enrichVideoTrack(e,t){t instanceof U.HMSRemoteVideoTrack&&(e.layer=t.getSimulcastLayer(),e.degraded=t.degraded,N(t.getSimulcastDefinitions(),e.layerDefinitions)||(e.layerDefinitions=t.getSimulcastDefinitions()))}static enrichPluginsDetails(e,t){(t instanceof U.HMSLocalVideoTrack||t instanceof U.HMSLocalAudioTrack)&&(N(t.getPlugins(),e.plugins)||(e.plugins=t.getPlugins()))}static convertRoom(e){var t,r,o,i,a,l,d;return{id:e.id,name:e.name,localPeer:(r=(t=e.localPeer)==null?void 0:t.peerId)!=null?r:"",hasWaitingRoom:e.hasWaitingRoom,shareableLink:e.shareableLink,recording:{browser:{running:!!((o=e.recording)==null?void 0:o.browser.running)},server:{running:!!((i=e.recording)==null?void 0:i.server.running)}},rtmp:{running:!!((a=e.rtmp)==null?void 0:a.running)},hls:{running:!!((l=e.hls)==null?void 0:l.running),variants:((d=e.hls)==null?void 0:d.variants)||[]},sessionId:e.sessionId,startedAt:e.startedAt&&new Date(e.startedAt)}}static convertMessage(e){var t,r,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:(r=e.recipientPeer)==null?void 0:r.peerId,recipientRoles:(o=e.recipientRoles)==null?void 0:o.map(i=>i.name),time:e.time,type:e.type,message:e.message}}static convertRoles(e){let t={};return e&&e.forEach(r=>{t[r.name]=r}),t}static convertRoleChangeRequest(e){var t;return{requestedBy:(t=e.requestedBy)==null?void 0:t.peerId,roleName:e.role.name,token:e.token}}static convertException(e){return{code:e.code,action:e.action,name:e.name,message:e.message,description:e.description,isTerminal:e.isTerminal,nativeError:e.nativeError,timestamp:new Date}}static convertDeviceChangeUpdate(e){let t={devices:e.devices,selection:e.selection,type:e.type};return e.error&&(t.error=this.convertException(e.error)),t}static convertPlaylist(e){let t=this.getConvertedPlaylistType(e,p.audio),r=this.getConvertedPlaylistType(e,p.video);return{audio:t,video:r}}static convertPlaylistItem(e,t){let r=t.type,o=e.getCurrentSelection(r),i=e.isPlaying(r),a=t.url===(o==null?void 0:o.url);return $(j({},t),{type:t.type,selected:a,playing:a&&i})}static getConvertedPlaylistType(e,t){let r={},o=e.getCurrentSelection(t),i=e.getCurrentProgress(t),a=e.getVolume(t),l=e.getList(t),d=e.getCurrentIndex(t);return e.getList(t).forEach(R=>{r[R.id]=T.convertPlaylistItem(e,R)}),{list:r,selection:{id:o==null?void 0:o.id,hasPrevious:d>0,hasNext:d<l.length-1},progress:i,volume:a,currentTime:e.getCurrentTime(t),playbackRate:e.getPlaybackRate(t)}}static convertRecordingStreamingState(e,t,r){var o,i;return{recording:{browser:{running:!!((o=e==null?void 0:e.browser)==null?void 0:o.running)},server:{running:!!((i=e==null?void 0:e.server)==null?void 0:i.running)}},rtmp:{running:!!(t==null?void 0:t.running)},hls:{variants:(r==null?void 0:r.variants)||[],running:!!(r==null?void 0:r.running)}}}};var u=v(require("reselect"));function q(s,e,t=Bt){let r,o;if(e)for(let i of e.auxiliaryTracks){let a=s[i];t(a)&&(o=z(a)?a:o,r=Z(a)?a:r)}return{video:r,audio:o}}function z(s){return s&&s.type==="audio"}function Z(s){return s&&s.type==="video"}function Bt(s){return s&&s.source==="screen"}function le(s){return s&&s.source==="audioplaylist"}function ee(s){return s&&s.source==="videoplaylist"}function tt(s){return Boolean(s==null?void 0:s.degraded)}function W(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 b=s=>s.room,I=s=>s.peers,Re=s=>s.messages.byID,ve=s=>s.messages.allIDs,H=s=>s.tracks,Ie=s=>s.settings,qt=s=>s.devices,rt=s=>s.speakers,jt=(0,u.createSelector)([b],s=>s&&s.isConnected),$t=(0,u.createSelector)(b,s=>s.peers.length),Se=(0,u.createSelector)([b,I],(s,e)=>s.peers.map(t=>e[t])),Wt=(0,u.createSelector)(H,s=>Object.values(s)),E=(0,u.createSelector)(b,I,(s,e)=>e[s.localPeer]),V=(0,u.createSelector)(b,s=>s.localPeer),A=(0,u.createSelector)(E,s=>s==null?void 0:s.audioTrack),C=(0,u.createSelector)(E,s=>s==null?void 0:s.videoTrack),Ft=(0,u.createSelector)(E,s=>s==null?void 0:s.auxiliaryTracks),De=(0,u.createSelector)([A,C,Ft],(s,e,t)=>{let r=[...t];return s&&r.unshift(s),e&&r.unshift(e),r}),Gt=(0,u.createSelector)(Se,s=>s.filter(e=>!e.isLocal)),Jt=(0,u.createSelector)(I,rt,(s,e)=>{let t=Object.entries(e).sort((r,o)=>{var l,d;let i=((l=r[1])==null?void 0:l.audioLevel)||0;return(((d=o[1])==null?void 0:d.audioLevel)||0)>i?1:-1});if(t.length>0&&t[0][1].audioLevel&&t[0][1].audioLevel>0){let r=t[0][1].peerID;if(r in s)return s[r]}return null}),Yt=s=>{let e=E(s);return W(s,e==null?void 0:e.audioTrack)},de=s=>{let e=E(s);return W(s,e==null?void 0:e.videoTrack)},be=s=>{let e=E(s);return st(s,e==null?void 0:e.videoTrack)},ue=(0,u.createSelector)(E,H,(s,e)=>{let{video:t,audio:r}=q(e,s);return!!(t||r)}),ot=(0,u.createSelector)(I,H,(s,e)=>{let t;for(let r in s){let o=s[r],{video:i,audio:a}=q(e,o);if(i)return o;a&&!t&&(t=o)}return t}),Qt=(0,u.createSelector)(ot,s=>!!s),Xt=(0,u.createSelector)(I,H,(s,e)=>{for(let t in s){let r=s[t],{audio:o,video:i}=q(e,r);if(!i&&!!o)return r}}),zt=(0,u.createSelector)(I,H,(s,e)=>{let t=[],r=[];for(let o in s){let i=s[o],{video:a,audio:l}=q(e,i);a?t.push(i):l&&r.push(i)}return t.concat(r)}),Zt=(0,u.createSelector)(I,H,(s,e)=>{for(let t in e){let r=e[t];if(ee(r)&&Z(r)&&r.peerId)return s[r.peerId]}}),es=(0,u.createSelector)(I,H,(s,e)=>{for(let t in e){let r=e[t];if(le(r)&&r.peerId)return s[r.peerId]}}),ts=(0,u.createSelector)(Wt,s=>s.filter(tt)),Ee=(0,u.createSelector)(ve,s=>s.length),ss=(0,u.createSelector)(Re,s=>Object.values(s).filter(e=>!e.read).length),te=(0,u.createSelector)(ve,Re,(s,e)=>{let t=[];return s.forEach(r=>{t.push(e[r])}),t}),x=(0,u.createSelector)([b],s=>s&&s.roomState),rs=(0,u.createSelector)(x,s=>s===y.Preview),Ae=(0,u.createSelector)(b,s=>s.roomState!==y.Disconnected),_=s=>s.roles,os=(0,u.createSelector)([_],s=>Object.keys(s)),se=(0,u.createSelector)([E,_],(s,e)=>(s==null?void 0:s.roleName)?e[s.roleName]:null),is=(0,u.createSelector)([se],s=>{var e;return((e=s==null?void 0:s.subscribeParams)==null?void 0:e.subscribeToRoles)?s.subscribeParams.subscribeToRoles.length>0:!1}),Ce=(0,u.createSelector)(se,s=>s==null?void 0:s.permissions),as=(0,u.createSelector)(b,s=>s.recording),ns=(0,u.createSelector)(b,s=>s.rtmp),cs=(0,u.createSelector)(b,s=>s.hls),ls=(0,u.createSelector)(b,s=>s.sessionId),Ss=(0,u.createSelector)(b,s=>s.startedAt);var xe=v(require("reselect"));var it=(s=p.audio)=>e=>e.playlist[s].list,Le=(s=p.audio)=>e=>e.playlist[s].selection,at=(s=p.audio)=>e=>e.playlist[s].progress,nt=(s=p.audio)=>e=>e.playlist[s].currentTime,ct=(s=p.audio)=>e=>e.playlist[s].playbackRate,lt=(s=p.audio)=>e=>e.playlist[s].volume,St=(s=p.audio)=>(0,xe.createSelector)(it(s),e=>Object.values(e)),dt=(s=p.audio)=>(0,xe.createSelector)(it(s),Le(s),(e,t)=>{if(!!t.id)return e[t.id]}),Oe={selection:Le(p.audio),progress:at(p.audio),currentTime:nt(p.audio),playbackRate:ct(p.audio),volume:lt(p.audio),list:St(p.audio),selectedItem:dt(p.audio)},we={selection:Le(p.video),progress:at(p.video),currentTime:nt(p.video),playbackRate:ct(p.video),volume:lt(p.video),list:St(p.video),selectedItem:dt(p.video)};var f=v(require("reselect"));function M(s){return e=>t=>s(t,e)}var re="HMS-Store:",m=class{static v(e,...t){this.log(n.HMSLogLevel.VERBOSE,e,...t)}static d(...e){this.log(n.HMSLogLevel.DEBUG,...e)}static i(...e){this.log(n.HMSLogLevel.INFO,...e)}static w(...e){this.log(n.HMSLogLevel.WARN,...e)}static e(...e){this.log(n.HMSLogLevel.ERROR,...e)}static time(e){this.log(n.HMSLogLevel.TIME,"[HMSPerformanceTiming]",e)}static timeEnd(e){this.log(n.HMSLogLevel.TIMEEND,"[HMSPerformanceTiming]",e,e)}static cleanUp(){performance.clearMarks(),performance.clearMeasures()}static log(e,...t){if(!(this.level.valueOf()>e.valueOf()))switch(e){case n.HMSLogLevel.VERBOSE:{console.log(re,...t);break}case n.HMSLogLevel.DEBUG:{console.debug(re,...t);break}case n.HMSLogLevel.INFO:{console.info(re,...t);break}case n.HMSLogLevel.WARN:{console.warn(re,...t);break}case n.HMSLogLevel.ERROR:{console.error(re,...t);break}case n.HMSLogLevel.TIME:{performance.mark(t[1]);break}case n.HMSLogLevel.TIMEEND:{let r=t[0],o=t[1];try{let i=performance.measure(o,o);this.log(n.HMSLogLevel.DEBUG,r,o,i==null?void 0:i.duration),performance.clearMarks(o),performance.clearMeasures(o)}catch(i){this.log(n.HMSLogLevel.DEBUG,r,o,i)}break}}}};m.level=n.HMSLogLevel.VERBOSE;var Ne=(s,e)=>e,ds=(s,e)=>e,ut=(s,e)=>e,D=(0,f.createSelector)([I,Ne],(s,e)=>e?s[e]:null),Ue=(0,f.createSelector)([H,ds],(s,e)=>e?s[e]:null),O=M(D),us=M((0,f.createSelector)(D,s=>s==null?void 0:s.name)),oe=M(Ue),Mt=M((s,e)=>{let t=D(s,e);if(t&&t.videoTrack&&t.videoTrack!=="")return s.tracks[t.videoTrack]}),pt=M((s,e)=>{let t=D(s,e);if(t&&t.audioTrack&&t.audioTrack!=="")return s.tracks[t.audioTrack]}),Ms=Mt,ps=M((s,e)=>{let t=D(s,e);return(t==null?void 0:t.auxiliaryTracks.map(r=>s.tracks[r]))||[]}),mt=(s,e)=>e?s.speakers[e]:null,ms=M((0,f.createSelector)(mt,s=>(s==null?void 0:s.audioLevel)||0)),hs=(s,e)=>{let t=pt(e)(s);return mt(s,t==null?void 0:t.id)},gs=M((0,f.createSelector)(hs,s=>(s==null?void 0:s.audioLevel)||0)),Ts=M((s,e)=>{let t=D(s,e);if(t){let r=t==null?void 0:t.auxiliaryTracks.find(o=>z(s.tracks[o]));return r?s.tracks[r]:void 0}}),Hs=M((0,f.createSelector)(H,D,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let o=s[r];return ee(o)&&Z(o)});return t?s[t]:void 0})),ys=M((0,f.createSelector)(H,D,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let o=s[r];return ee(o)&&z(o)});return t?s[t]:void 0})),ks=M((0,f.createSelector)(H,D,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let o=s[r];return le(o)&&z(o)});return t?s[t]:void 0})),_e=M((0,f.createSelector)(H,D,(s,e)=>q(s,e))),fs=s=>(0,f.createSelector)(_e(s),e=>e.video),Ke=s=>(0,f.createSelector)(_e(s),e=>e.audio),Ps=M((s,e)=>{let t=D(s,e);return W(s,t==null?void 0:t.audioTrack)}),Rs=M((s,e)=>{let t=D(s,e);return W(s,t==null?void 0:t.videoTrack)}),Ve=M((s,e)=>{if(e&&s.tracks[e])return s.tracks[e].volume===0}),vs=M((s,e)=>{let t=D(s,e);return Ve(t==null?void 0:t.audioTrack)(s)}),Is=M((s,e)=>{let t=Ke(e)(s);return Ve(t==null?void 0:t.id)(s)}),Be=M((s,e)=>{let t=Ue(s,e);if(t){if(t.type!=="audio"){m.w("Please pass audio track here");return}return t.volume}}),Ds=M((s,e)=>{let t=D(s,e);return Be(t==null?void 0:t.audioTrack)(s)}),bs=M((s,e)=>{let t=Ke(e)(s);return Be(t==null?void 0:t.id)(s)}),Es=M((s,e)=>{let t=Ue(s,e);if(t){if(t.type!=="video"){m.w("Please pass video track here");return}return t.layer}}),ht=(0,f.createSelector)([te,V,Ne],(s,e,t)=>{if(!!t)return s.filter(r=>{var o;return!r.recipientPeer&&!((o=r.recipientRoles)==null?void 0:o.length)||![e,t].includes(r.sender)?!1:[e,t].includes(r.recipientPeer)})}),gt=(0,f.createSelector)([te,ut],(s,e)=>{if(!!e)return s.filter(t=>{var r,o;return((r=t.recipientRoles)==null?void 0:r.length)?(o=t.recipientRoles)==null?void 0:o.includes(e):!1})}),Tt=(0,f.createSelector)(te,s=>s.filter(e=>{var t;return!e.recipientPeer&&!((t=e.recipientRoles)==null?void 0:t.length)})),As=(0,f.createSelector)([gt,ut],s=>s?s.filter(e=>!e.read).length:0),Cs=(0,f.createSelector)([ht,Ne],s=>s?s.filter(e=>!e.read).length:0),xs=(0,f.createSelector)(Tt,s=>s.filter(e=>!e.read).length),Ls=M(ht),Os=M(gt),ws=M(As),Ns=M(Cs),Us=s=>(0,f.createSelector)([Se],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 Me=v(require("reselect")),Ks=(0,Me.createSelector)([I,H],(s,e)=>Object.values(s).map(r=>{var o;return{peer:r,isAudioEnabled:r.audioTrack?(o=e[r.audioTrack])==null?void 0:o.enabled:!1}})),Vs=s=>s.roleChangeRequests[0]||null,Bs=(0,Me.createSelector)([Vs,I,_],(s,e,t)=>s?{requestedBy:s.requestedBy?e[s.requestedBy]:void 0,role:t[s.roleName],token:s.token}:null),qs=(0,Me.createSelector)([se],s=>{var o;let e=!1,t=!1,r=!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"),r=s.publishParams.allowed.includes("screen")),{video:e,audio:t,screen:r}});var F=v(require("reselect"));var js=s=>(0,F.createSelector)([_],e=>e[s]),$s=(0,F.createSelector)([C,H],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),Ws=(0,F.createSelector)([A,H],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),Fs=s=>(0,F.createSelector)([$s],e=>e.includes(s)),Gs=s=>(0,F.createSelector)([Ws],e=>e.includes(s));var ie=v(require("@100mslive/hms-video"));var pe=v(require("@100mslive/hms-video"));function Ht(s){return s instanceof pe.HMSRemoteAudioTrack||s instanceof pe.HMSRemoteVideoTrack}var me=class{constructor(e,t,r,o){this.playlistManager=e;this.syncPlaylistState=r;this.store=o;this.type=t}play(e){return c(this,null,function*(){if(!e){m.w("Please pass id to play");return}yield this.playlistManager.setEnabled(!0,{id:e,type:this.type})})}pause(){return c(this,null,function*(){let e=this.type===p.audio?Oe:we,t=this.store.getState(e.selection);if(!t.id){m.w("No item is currently playing to pause");return}yield this.playlistManager.setEnabled(!1,{id:t.id,type:this.type})})}playNext(){return c(this,null,function*(){yield this.playlistManager.playNext(this.type)})}playPrevious(){return c(this,null,function*(){yield this.playlistManager.playPrevious(this.type)})}seek(e){this.playlistManager.seek(e,this.type),this.syncPlaylistState(`seekOn${this.type}Playlist`)}seekTo(e){this.playlistManager.seekTo(e,this.type),this.syncPlaylistState(`seekToOn${this.type}Playlist`)}setVolume(e){this.playlistManager.setVolume(e,this.type),this.syncPlaylistState(`setVolumeOn${this.type}Playlist`)}setList(e){this.playlistManager.setList(e),this.syncPlaylistState(`setListOn${this.type}Playlist`)}stop(){return c(this,null,function*(){yield this.playlistManager.stop(this.type),this.syncPlaylistState(`stop${this.type}Playlist`)})}setIsAutoplayOn(e){this.playlistManager.setIsAutoplayOn(this.type,e)}setPlaybackRate(e){this.playlistManager.setPlaybackRate(this.type,e),this.syncPlaylistState(`set${this.type}PlaybackRate`)}};var yt={[n.HMSPeerUpdate.PEER_JOINED]:h.PEER_JOINED,[n.HMSPeerUpdate.PEER_LEFT]:h.PEER_LEFT,[n.HMSPeerUpdate.ROLE_UPDATED]:h.ROLE_UPDATED,[n.HMSPeerUpdate.AUDIO_TOGGLED]:"PEER_AUDIO_UPDATED",[n.HMSPeerUpdate.VIDEO_TOGGLED]:"PEER_VIDEO_UPDATED",[n.HMSPeerUpdate.NAME_UPDATED]:h.NAME_UPDATED,[n.HMSPeerUpdate.METADATA_UPDATED]:h.METADATA_UPDATED},kt={[n.HMSTrackUpdate.TRACK_ADDED]:h.TRACK_ADDED,[n.HMSTrackUpdate.TRACK_REMOVED]:h.TRACK_REMOVED,[n.HMSTrackUpdate.TRACK_MUTED]:h.TRACK_MUTED,[n.HMSTrackUpdate.TRACK_UNMUTED]:h.TRACK_UNMUTED,[n.HMSTrackUpdate.TRACK_DEGRADED]:h.TRACK_DEGRADED,[n.HMSTrackUpdate.TRACK_RESTORED]:h.TRACK_RESTORED},ft={[n.HMSPeerUpdate.PEER_JOINED]:"peerJoined",[n.HMSPeerUpdate.PEER_LEFT]:"peerLeft",[n.HMSPeerUpdate.NAME_UPDATED]:"peerNameUpdated",[n.HMSPeerUpdate.METADATA_UPDATED]:"peerMetadataUpdated"};var qe=class{constructor(e,t,r){this.hmsSDKTracks={};this.hmsSDKPeers={};this.isRoomJoinCalled=!1;this.setProgress=({type:e,progress:t})=>{this.setState(r=>{r.playlist[e].progress=t,r.playlist[e].currentTime=this.sdk.getPlaylistManager().getCurrentTime(e)},"playlistProgress")};this.syncPlaylistState=e=>{this.setState(t=>{Object.assign(t.playlist,T.convertPlaylist(this.sdk.getPlaylistManager()))},e)};this.sendPeerUpdateNotification=(e,t)=>{let r=this.store.getState(O(t.peerId)),o="peerUpdate";o=ft[e],this.syncRoomState(o),r||(r=this.store.getState(O(t.peerId))),this.hmsNotifications.sendPeerUpdate(e,r)};this.setState=(e,t)=>this.store.namedSetState(e,t);this.store=e,this.sdk=t,this.hmsNotifications=r}unblockAudio(){return c(this,null,function*(){yield this.sdk.getAudioOutput().unblockAutoplay()})}setVolume(e,t){t?this.setTrackVolume(e,t):(this.sdk.getAudioOutput().setVolume(e),this.syncRoomState("setOutputVolume"))}setAudioOutputDevice(e){this.sdk.getAudioOutput().setDevice(e)&&this.setState(r=>{r.settings.audioOutputDeviceId=e},"setAudioOutputDevice")}setPreferredLayer(e,t){let r=this.hmsSDKTracks[e];r?r instanceof ie.HMSRemoteVideoTrack?(r.preferLayer(t),this.updateVideoLayer(e,"setPreferredLayer")):m.w(`track ${e} is not an video track`):this.logPossibleInconsistency(`track ${e} not present, unable to set preffer layer`)}preview(e){return c(this,null,function*(){if(this.isRoomJoinCalled){this.logPossibleInconsistency("attempting to call preview after join was called");return}let t=this.store.getState(x);if(t===y.Preview||t===y.Connecting){this.logPossibleInconsistency("attempting to call preview while room is in preview/connecting");return}try{this.setState(r=>{r.room.roomState=y.Connecting},"connecting"),yield this.sdkPreviewWithListeners(e)}catch(r){throw m.e("Cannot show preview. Failed to connect to room - ",r),r}})}join(e){if(this.isRoomJoinCalled){this.logPossibleInconsistency("room join is called again");return}try{this.sdkJoinWithListeners(e),this.isRoomJoinCalled=!0,this.setState(t=>{t.room.roomState=y.Connecting},"join")}catch(t){throw this.isRoomJoinCalled=!1,m.e("Failed to connect to room - ",t),t}}leave(){return c(this,null,function*(){if(!this.store.getState(Ae)){this.logPossibleInconsistency("room leave is called when no room is connected");return}return this.sdk.leave().then(()=>{this.resetState("leave"),m.i("left room")}).catch(t=>{m.e("error in leaving room - ",t)})})}setScreenShareEnabled(e,t){return c(this,null,function*(){e?yield this.startScreenShare(t):yield this.stopScreenShare()})}addTrack(e,t="regular"){return c(this,null,function*(){yield this.sdk.addTrack(e,t),this.syncRoomState("addTrack")})}removeTrack(e){return c(this,null,function*(){yield this.sdk.removeTrack(e),this.syncRoomState("removeTrack")})}setLocalAudioEnabled(e){return c(this,null,function*(){let t=this.store.getState(A);t&&(yield this.setEnabledTrack(t,e))})}setLocalVideoEnabled(e){return c(this,null,function*(){let t=this.store.getState(C);t&&(yield this.setEnabledTrack(t,e))})}setEnabledTrack(e,t){return c(this,null,function*(){var i;if(((i=this.store.getState().tracks[e])==null?void 0:i.enabled)===t){this.logPossibleInconsistency(`local track[${e}] enabled state - ${t}`);return}this.setState(a=>{a.tracks[e]?a.tracks[e].displayEnabled=t:this.logPossibleInconsistency("track id not found for setEnabled")},"displayEnabled");try{yield this.setEnabledSDKTrack(e,t),this.syncRoomState("setEnabled")}catch(a){throw this.setState(l=>{l.tracks[e].displayEnabled=!t},"rollbackDisplayEnabled"),this.hmsNotifications.sendError(T.convertException(a)),a}let o=t?n.HMSTrackUpdate.TRACK_UNMUTED:n.HMSTrackUpdate.TRACK_MUTED;this.hmsNotifications.sendTrackUpdate(o,e)})}setAudioSettings(e){return c(this,null,function*(){let t=this.store.getState(A);t&&(yield this.setSDKLocalAudioTrackSettings(t,e),this.syncRoomState("setAudioSettings"))})}setVideoSettings(e){return c(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 c(this,null,function*(){let r=yield this.sdk.sendBroadcastMessage(e,t);this.updateMessageInStore(r,{message:e,type:t})})}sendGroupMessage(e,t,r){return c(this,null,function*(){let o=this.store.getState(_),i=t.map(l=>o[l]),a=yield this.sdk.sendGroupMessage(e,i,r);this.updateMessageInStore(a,{message:e,recipientRoles:t,type:r})})}sendDirectMessage(e,t,r){return c(this,null,function*(){let o=this.hmsSDKPeers[t],i=yield this.sdk.sendDirectMessage(e,o,r);this.updateMessageInStore(i,{message:e,recipientPeer:o.peerId,type:r})})}updateMessageInStore(e,t){if(!e)throw m.w("sendMessage","Failed to send message",t),Error(`sendMessage Failed - ${JSON.stringify(t)}`);let r=T.convertMessage(e);return r.read=!0,r.senderName="You",this.onHMSMessage(r),r}setMessageRead(e,t){this.setState(r=>{t?r.messages.byID[t]?r.messages.byID[t].read=e:this.logPossibleInconsistency("no message with id is found"):r.messages.allIDs.forEach(o=>{r.messages.byID[o].read=e})},"setMessageRead")}attachVideo(e,t){return c(this,null,function*(){if(this.localAndVideoUnmuting(e))return new Promise(r=>{let o=this.store.subscribe(i=>c(this,null,function*(){i&&(yield this.attachVideoInternal(e,t),o(),r())}),de)});yield this.attachVideoInternal(e,t)})}detachVideo(e,t){return c(this,null,function*(){let r=this.hmsSDKTracks[e];r&&r.type==="video"?(yield r.removeSink(t),this.updateVideoLayer(e,"detachVideo")):this.logPossibleInconsistency("no video track found to remove sink")})}addPluginToVideoTrack(e,t){return c(this,null,function*(){return this.addRemoveVideoPlugin(e,"add",t)})}addPluginToAudioTrack(e){return c(this,null,function*(){return this.addRemoveAudioPlugin(e,"add")})}removePluginFromVideoTrack(e){return c(this,null,function*(){return this.addRemoveVideoPlugin(e,"remove")})}removePluginFromAudioTrack(e){return c(this,null,function*(){return this.addRemoveAudioPlugin(e,"remove")})}changeRole(e,t,r=!1){return c(this,null,function*(){let o=this.hmsSDKPeers[e];if(!o){this.logPossibleInconsistency(`Unknown peer ID given ${e} for changerole`);return}yield this.sdk.changeRole(o,t,r)})}acceptChangeRole(e){return c(this,null,function*(){let t=e.requestedBy?this.hmsSDKPeers[e.requestedBy.id]:void 0;t||m.w(`peer for which role change is requested no longer available - ${e.requestedBy}`);let r={requestedBy:t,role:e.role,token:e.token};yield this.sdk.acceptChangeRole(r),this.removeRoleChangeRequest(e)})}rejectChangeRole(e){this.removeRoleChangeRequest(e)}endRoom(e,t){return c(this,null,function*(){let r=this.store.getState(Ce);if(!(r==null?void 0:r.endRoom)){m.w("You are not allowed to perform this action - endRoom");return}yield this.sdk.endRoom(e,t)})}removePeer(e,t){return c(this,null,function*(){let r=this.hmsSDKPeers[e];if(r&&!r.isLocal)yield this.sdk.removePeer(r,t);else{this.logPossibleInconsistency(`No remote peer found for peerID - ${e}`);return}})}startRTMPOrRecording(e){return c(this,null,function*(){yield this.sdk.startRTMPOrRecording(e)})}stopRTMPAndRecording(){return c(this,null,function*(){yield this.sdk.stopRTMPAndRecording()})}startHLSStreaming(e){return c(this,null,function*(){yield this.sdk.startHLSStreaming(e)})}stopHLSStreaming(e){return c(this,null,function*(){yield this.sdk.stopHLSStreaming(e)})}changeName(e){return c(this,null,function*(){yield this.sdk.changeName(e)})}changeMetadata(e){return c(this,null,function*(){typeof e!="string"&&(e=JSON.stringify(e)),yield this.sdk.changeMetadata(e)})}setRemoteTrackEnabled(e,t){return c(this,null,function*(){if(typeof e=="string"){let r=this.hmsSDKTracks[e];r&&Ht(r)?yield this.sdk.changeTrackState(r,t):this.logPossibleInconsistency(`No remote track with ID ${e} found for change track state`)}else Array.isArray(e)&&e.forEach(r=>this.setRemoteTrackEnabled(r,t))})}setRemoteTracksEnabled(e){return c(this,null,function*(){let t={enabled:e.enabled,type:e.type,source:e.source};if(e.roles){let r=this.store.getState(_);t.roles=e.roles.map(o=>r[o])}yield this.sdk.changeMultiTrackState(t)})}setLogLevel(e){m.level=e,this.sdk.setLogLevel(e)}resetState(e="resetState"){this.setState(t=>{Object.assign(t,Q())},e),this.isRoomJoinCalled=!1,this.hmsSDKTracks={},m.cleanUp()}sdkJoinWithListeners(e){this.sdk.join(e,{onJoin:this.onJoin.bind(this),onRoomUpdate:this.onRoomUpdate.bind(this),onPeerUpdate:this.onPeerUpdate.bind(this),onTrackUpdate:this.onTrackUpdate.bind(this),onMessageReceived:this.onMessageReceived.bind(this),onError:this.onError.bind(this),onReconnected:this.onReconnected.bind(this),onReconnecting:this.onReconnecting.bind(this),onRoleChangeRequest:this.onRoleChangeRequest.bind(this),onRoleUpdate:this.onRoleUpdate.bind(this),onDeviceChange:this.onDeviceChange.bind(this),onChangeTrackStateRequest:this.onChangeTrackStateRequest.bind(this),onChangeMultiTrackStateRequest:this.onChangeMultiTrackStateRequest.bind(this),onRemovedFromRoom:this.onRemovedFromRoom.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})}onRemovedFromRoom(e){var r;let t=this.store.getState(O((r=e.requestedBy)==null?void 0:r.peerId));this.hmsNotifications.sendLeaveRoom($(j({},e),{requestedBy:t||void 0})),m.i("resetting state after peer removed",e),this.resetState(e.roomEnded||!t?"roomEnded":"removedFromRoom")}onDeviceChange(e){let t=e.devices;if(!t)return;let r=this.store.getState(E);if(this.setState(o=>{N(o.devices.audioInput,t.audioInput)||(o.devices.audioInput=t.audioInput),N(o.devices.videoInput,t.videoInput)||(o.devices.videoInput=t.videoInput),N(o.devices.audioOutput,t.audioOutput)||(o.devices.audioOutput=t.audioOutput),this.hmsSDKPeers[r==null?void 0:r.id]&&Object.assign(o.settings,this.getMediaSettings(this.hmsSDKPeers[r==null?void 0:r.id]))},"deviceChange"),e.selection){let o=T.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),onDeviceChange:this.onDeviceChange.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})})}startScreenShare(e){return c(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 c(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 c(this,null,function*(){let r=this.hmsSDKTracks[e];r&&r.type==="video"?(yield r.addSink(t),this.updateVideoLayer(e,"attachVideo")):this.logPossibleInconsistency("no video track found to add sink")})}syncRoomState(e){m.time(`store-sync-${e}`);let t={},r=[],o={},i={},a={},l=this.sdk.getPeers();for(let k of l){let w=T.convertPeer(k);t[w.id]=w,r.push(w.id),this.hmsSDKPeers[w.id]=k;let J=[k.audioTrack,k.videoTrack,...k.auxiliaryTracks];for(let ce of J){if(!ce)continue;let Ge=T.convertTrack(ce);o[Ge.id]=Ge,i[ce.trackId]=ce}w.isLocal&&Object.assign(a,this.getMediaSettings(k))}let d=this.sdk.getRecordingState(),R=this.sdk.getRTMPState(),B=this.sdk.getHLSState();this.setState(k=>{k.room.peers=r;let w=k.peers,J=k.tracks;Ze(w,t),et(J,o),Object.assign(k.settings,a),this.hmsSDKTracks=i,Object.assign(k.roles,T.convertRoles(this.sdk.getRoles())),Object.assign(k.playlist,T.convertPlaylist(this.sdk.getPlaylistManager())),Object.assign(k.room,T.convertRecordingStreamingState(d,R,B))},e),m.timeEnd(`store-sync-${e}`)}onPreview(e){this.setState(t=>{Object.assign(t.room,T.convertRoom(e)),t.room.roomState=y.Preview},"previewStart"),this.syncRoomState("previewSync")}onJoin(e){let t=this.sdk.getPlaylistManager();this.audioPlaylist=new me(t,p.audio,this.syncPlaylistState.bind(this),this.store),this.videoPlaylist=new me(t,p.video,this.syncRoomState.bind(this),this.store),this.syncRoomState("joinSync"),this.setState(r=>{Object.assign(r.room,T.convertRoom(e)),r.room.isConnected=!0,r.room.roomState=y.Connected},"joined"),t.onProgress(this.setProgress),t.onNewTrackStart(r=>{this.syncPlaylistState(`${r.type}PlaylistUpdate`)}),t.onPlaylistEnded(r=>{this.syncPlaylistState(`${r}PlaylistEnded`)}),t.onCurrentTrackEnded(r=>{this.hmsNotifications.sendPlaylistTrackEnded(T.convertPlaylistItem(t,r)),this.syncPlaylistState(`${r.type}PlaylistItemEnded`)})}onRoomUpdate(e,t){this.setState(r=>{Object.assign(r.room,T.convertRoom(t))},"RoomUpdate")}onPeerUpdate(e,t){if(![n.HMSPeerUpdate.BECAME_DOMINANT_SPEAKER,n.HMSPeerUpdate.RESIGNED_DOMINANT_SPEAKER].includes(e)){if(Array.isArray(t)){this.syncRoomState("peersJoined");let r=[];for(let o of t){let i=this.store.getState(O(o.peerId));i&&r.push(i)}this.hmsNotifications.sendPeerList(r);return}this.sendPeerUpdateNotification(e,t)}}onTrackUpdate(e,t,r){if(e===n.HMSTrackUpdate.TRACK_REMOVED)this.hmsNotifications.sendTrackUpdate(e,t.trackId),this.handleTrackRemove(t,r);else{let o=e===n.HMSTrackUpdate.TRACK_ADDED?"trackAdded":"trackUpdate";this.syncRoomState(o),this.hmsNotifications.sendTrackUpdate(e,t.trackId)}}onMessageReceived(e){let t=T.convertMessage(e);t.read=!1,this.onHMSMessage(t),this.hmsNotifications.sendMessageReceived(t)}onHMSMessage(e){this.setState(t=>{e.id=String(this.store.getState(Ee)+1),t.messages.byID[e.id]=e,t.messages.allIDs.push(e.id)},"newMessage")}onAudioLevelUpdate(e){this.setState(t=>{let r={};e.forEach(i=>{if(!i.track||!i.peer)return;let a=i.track.trackId;r[a]=i.audioLevel,t.speakers[a]||(t.speakers[a]={audioLevel:i.audioLevel,peerID:i.peer.peerId,trackID:a})});let o=Object.entries(t.speakers);for(let[i,a]of o)a.audioLevel=r[i]||0,a.audioLevel===0&&delete t.speakers[i]},"audioLevel")}onChangeTrackStateRequest(e){var i;let t=this.store.getState(O((i=e.requestedBy)==null?void 0:i.peerId)),r=this.getStoreLocalTrackIDfromSDKTrack(e.track),o=this.store.getState(oe(r));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 i;let t=this.store.getState(O((i=e.requestedBy)==null?void 0:i.peerId));e.enabled||this.syncRoomState("changeMultiTrackStateRequest");let r=[],o=this.store.getState(H);for(let a of e.tracks){let l=this.getStoreLocalTrackIDfromSDKTrack(a);l&&o[l]&&r.push(o[l])}this.hmsNotifications.sendChangeMultiTrackStateRequest({requestedBy:t||void 0,tracks:r,enabled:e.enabled,type:e.type,source:e.source})}onReconnected(){this.syncRoomState("reconnectedSync"),this.hmsNotifications.sendReconnected(),this.setState(e=>{e.room.roomState=y.Connected},"reconnected")}onReconnecting(e){let t=T.convertException(e);m.e("Reconnection: received error from sdk",t),this.hmsNotifications.sendReconnecting(t),this.setState(r=>{r.room.roomState=y.Reconnecting,r.errors.push(t)},"reconnecting")}onError(e){let t=T.convertException(e);t.isTerminal?(this.leave().then(()=>m.e("error from SDK, left room.")),this.setState(r=>{r.room.roomState=y.Failed,r.errors.push(t)},"errorTerminal")):this.store.getState().errors.length<50&&this.setState(o=>{o.errors.push(t)},"error"),this.hmsNotifications.sendError(t),m.e("received error from sdk",t)}updateVideoLayer(e,t){let r=this.hmsSDKTracks[e];r&&r instanceof ie.HMSRemoteVideoTrack&&this.setState(o=>{o.tracks[e].layer=r.getSimulcastLayer()},t)}handleTrackRemove(e,t){this.setState(r=>{let o=r.peers[t.peerId],i=r.tracks,a=e.trackId;if(this.isSameStoreSDKTrack(a,o==null?void 0:o.audioTrack))o==null||delete o.audioTrack;else if(this.isSameStoreSDKTrack(a,o==null?void 0:o.videoTrack))o==null||delete o.videoTrack;else{let l=o==null?void 0:o.auxiliaryTracks.indexOf(a);l>-1&&this.isSameStoreSDKTrack(a,o==null?void 0:o.auxiliaryTracks[l])&&(o==null||o.auxiliaryTracks.splice(l,1))}delete i[a],delete this.hmsSDKTracks[a]},"trackRemoved")}setEnabledSDKTrack(e,t){return c(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setEnabled(t):this.logPossibleInconsistency(`track ${e} not present, unable to enabled/disable`)})}setSDKLocalVideoTrackSettings(e,t){return c(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}setSDKLocalAudioTrackSettings(e,t){return c(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}getMediaSettings(e){var i;let t=this.store.getState(Ie),r=e.audioTrack,o=e.videoTrack;return{audioInputDeviceId:(r==null?void 0:r.settings.deviceId)||t.audioInputDeviceId,videoInputDeviceId:(o==null?void 0:o.settings.deviceId)||t.videoInputDeviceId,audioOutputDeviceId:(i=this.sdk.getAudioOutput().getDevice())==null?void 0:i.deviceId}}setTrackVolume(e,t){let r=this.hmsSDKTracks[t];r?r instanceof ie.HMSAudioTrack?(r.setVolume(e),this.setState(o=>{let i=o.tracks[t];i&&(i.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(E).videoTrack!==e)return!1;let r=this.store.getState(be),o=this.store.getState(de);return r&&!o}logPossibleInconsistency(e){m.w("possible inconsistency detected - ",e)}addRemoveVideoPlugin(e,t,r){return c(this,null,function*(){if(!e){m.w("Invalid plugin received in store");return}let o=this.store.getState(C);if(o){let i=this.hmsSDKTracks[o];i?(t==="add"?yield i.addPlugin(e,r):t==="remove"&&(yield i.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){m.w("Invalid plugin received in store");return}let r=this.store.getState(A);if(r){let o=this.hmsSDKTracks[r];o?(t==="add"?yield o.addPlugin(e):t==="remove"&&(yield o.removePlugin(e)),this.syncRoomState(`${t}AudioPlugin`)):this.logPossibleInconsistency(`track ${r} not present, unable to remove plugin`)}})}isSameStoreSDKTrack(e,t){var r;return t?((r=this.hmsSDKTracks[t])==null?void 0:r.trackId)===e:!1}onRoleChangeRequest(e){this.setState(t=>{t.roleChangeRequests.length===0&&t.roleChangeRequests.push(T.convertRoleChangeRequest(e))},"roleChangeRequest")}removeRoleChangeRequest(e){this.setState(t=>{let r=t.roleChangeRequests.findIndex(o=>o.token===e.token);r!==-1&&t.roleChangeRequests.splice(r,1)},"removeRoleChangeRequest")}onRoleUpdate(){this.syncRoomState("roleUpdate")}getStoreLocalTrackIDfromSDKTrack(e){return this.store.getState(De).find(r=>this.hmsSDKTracks[r].trackId===e.trackId)}};var Pt=v(require("eventemitter2"));var je="hmsNotification",$e=class{constructor(e){this.id=0;this.onNotification=e=>(this.eventEmitter.addListener(je,e),()=>{this.eventEmitter.removeListener(je,e)});this.store=e,this.eventEmitter=new Pt.EventEmitter2}sendPlaylistTrackEnded(e){let t=this.createNotification(h.PLAYLIST_TRACK_ENDED,e,P.INFO);this.emitEvent(t)}sendDeviceChange(e){var r;let t=this.createNotification(h.DEVICE_CHANGE_UPDATE,e,e.error?P.ERROR:P.INFO,`Selected ${e.type} device - ${(r=e.selection)==null?void 0:r.label}`);this.emitEvent(t)}sendLeaveRoom(e){var o;let t=(o=e.requestedBy)==null?void 0:o.name,r=this.createNotification(e.roomEnded||!t?h.ROOM_ENDED:h.REMOVED_FROM_ROOM,e,P.INFO,`${e.roomEnded?"Room ended":"Removed from room"} ${t?`by ${t}`:""}`);this.emitEvent(r)}sendPeerList(e){let t=this.createNotification(h.PEER_LIST,e,P.INFO);this.emitEvent(t)}sendPeerUpdate(e,t){let r=this.store.getState(O(t==null?void 0:t.id))||t,o=yt[e];if(o){let i=this.createNotification(o,r,P.INFO);this.emitEvent(i)}}sendTrackUpdate(e,t){let r=this.store.getState(oe(t)),o=kt[e];if(o){let i=this.createNotification(o,r,P.INFO);this.emitEvent(i)}}sendMessageReceived(e){let t=this.createNotification(h.NEW_MESSAGE,e,P.INFO);this.emitEvent(t)}sendError(e){let t=this.createNotification(h.ERROR,e,P.ERROR);this.emitEvent(t)}sendReconnecting(e){let t=this.createNotification(h.RECONNECTING,e,P.ERROR);this.emitEvent(t)}sendReconnected(){let e=this.createNotification(h.RECONNECTED,null,P.INFO);this.emitEvent(e)}sendChangeTrackStateRequest(e){let t=this.createNotification(h.CHANGE_TRACK_STATE_REQUEST,e,P.INFO);this.emitEvent(t)}sendChangeMultiTrackStateRequest(e){let t=this.createNotification(h.CHANGE_MULTI_TRACK_STATE_REQUEST,e,P.INFO);this.emitEvent(t)}emitEvent(e){this.eventEmitter.emit(je,e)}createNotification(e,t,r,o=""){return this.id++,{id:this.id,type:e,message:o,data:t,severity:r}}};var Rt=v(require("@100mslive/hms-video")),he=s=>Rt.isBrowser?`${s} ${document.title}`:s;var vt=(s,e,t)=>{let r;t.getState(x)===y.Connected&&(r=It(s,e,t)),t.subscribe(o=>{[y.Connected,y.Reconnecting].includes(o)?r||(r=It(s,e,t)):r&&(Qs(e),r())},x)},It=(s,e,t)=>{var i;let r=Js(t,e),o=(i=s.getWebrtcInternals())==null?void 0:i.onStatsChange(a=>Ys(e,a,t));return()=>{r(),o&&o()}},Js=(s,e)=>{let t,r,o;return s.getState(V)?e.namedSetState(i=>{i.localPeer.id=s.getState(V)},"localpeer-id"):t=s.subscribe(i=>{i&&e.namedSetState(a=>{a.localPeer.id=i},"localpeer-id")},V),s.getState(C)?e.namedSetState(i=>{i.localPeer.videoTrack=s.getState(C)},"localpeer-videotrack-id"):r=s.subscribe(i=>{i&&e.namedSetState(a=>{a.localPeer.videoTrack=i},"localpeer-videotrack-id")},C),s.getState(A)?e.namedSetState(i=>{i.localPeer.videoTrack=s.getState(A)},"localpeer-audiotrack-id"):o=s.subscribe(i=>{i&&e.namedSetState(a=>{a.localPeer.videoTrack=i},"localpeer-audiotrack-id")},A),()=>{t==null||t(),r==null||r(),o==null||o()}},Ys=(s,e,t)=>{let r=t.getState(H);s.namedSetState(o=>{let i={},a=Object.keys(r);for(let R of a){let B=e.getTrackStats(R);B&&(i[R]=B)}He(o.trackStats,i);let d={[t.getState(V)]:e.getLocalPeerStats()};He(o.peerStats,d)},"webrtc-stats")},Qs=(s,e="resetState")=>{s.namedSetState(t=>{Object.assign(t,X())},e)};var ae=class{constructor(e,t){this.hmsStore=e;this.sdk=t;this.store=L.createNewHMSStore(he("HMSStatsStore"),X),this.getState=this.store.getState,this.subscribe=this.store.subscribe,this.getPublishPeerConnection=()=>new Promise(r=>{var o,i;this.hmsStore.getState(x)==="Connected"?r((i=(o=this.sdk)==null?void 0:o.getWebrtcInternals())==null?void 0:i.getPublishPeerConnection()):this.hmsStore.subscribe(a=>{var l,d;a==="Connected"&&r((d=(l=this.sdk)==null?void 0:l.getWebrtcInternals())==null?void 0:d.getPublishPeerConnection())},x)}),this.getSubscribePeerConnection=()=>new Promise(r=>{var o,i;this.hmsStore.getState(x)==="Connected"?r((i=(o=this.sdk)==null?void 0:o.getWebrtcInternals())==null?void 0:i.getSubscribePeerConnection()):this.hmsStore.subscribe(a=>{var l,d;a==="Connected"&&r((d=(l=this.sdk)==null?void 0:l.getWebrtcInternals())==null?void 0:d.getSubscribePeerConnection())},x)}),!!this.sdk&&vt(this.sdk,this.store,this.hmsStore)}};var ge={};ze(ge,{availablePublishBitrate:()=>ar,availableSubscribeBitrate:()=>nr,bitrateByTrackID:()=>Mr,bytesReceivedByTrackID:()=>pr,framerateByTrackID:()=>mr,jitter:()=>rr,jitterByTrackID:()=>hr,localAudioTrackBitrate:()=>Tr,localAudioTrackBytesSent:()=>yr,localAudioTrackStats:()=>Fe,localPeerStats:()=>K,localVideoTrackBitrate:()=>Hr,localVideoTrackBytesSent:()=>kr,localVideoTrackFramerate:()=>fr,localVideoTrackQualityLimitationReason:()=>Pr,localVideoTrackStats:()=>ne,packetsLost:()=>sr,packetsLostByTrackID:()=>gr,peerStatsByID:()=>dr,publishBitrate:()=>or,subscribeBitrate:()=>ir,totalBytesReceived:()=>lr,totalBytesSent:()=>cr,trackStatsByID:()=>ur});var g=v(require("reselect"));var Xs=s=>s.localPeer.id,zs=s=>s.localPeer.audioTrack,Zs=s=>s.localPeer.videoTrack,er=(s,e)=>e,tr=(s,e)=>e,We=s=>s.trackStats,Dt=s=>s.peerStats,K=(0,g.createSelector)([Dt,Xs],(s,e)=>s[e]),sr=(0,g.createSelector)(K,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.packetsLost}),rr=(0,g.createSelector)(K,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.jitter}),or=(0,g.createSelector)(K,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bitrate}),ir=(0,g.createSelector)(K,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bitrate}),ar=(0,g.createSelector)(K,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.availableOutgoingBitrate}),nr=(0,g.createSelector)(K,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.availableIncomingBitrate}),cr=(0,g.createSelector)(K,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bytesSent}),lr=(0,g.createSelector)(K,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bytesReceived}),Sr=(0,g.createSelector)([Dt,er],(s,e)=>e?s[e]:void 0),G=(0,g.createSelector)([We,tr],(s,e)=>e?s[e]:void 0),dr=M(Sr),ur=M(G),Mr=M((0,g.createSelector)(G,s=>s==null?void 0:s.bitrate)),pr=M((0,g.createSelector)(G,s=>s==null?void 0:s.bytesReceived)),mr=M((0,g.createSelector)(G,s=>s==null?void 0:s.framesPerSecond)),hr=M((0,g.createSelector)(G,s=>s==null?void 0:s.jitter)),gr=M((0,g.createSelector)(G,s=>s==null?void 0:s.packetsLost)),Fe=(0,g.createSelector)([We,zs],(s,e)=>e?s[e]:void 0),ne=(0,g.createSelector)([We,Zs],(s,e)=>e?s[e]:void 0),Tr=(0,g.createSelector)(Fe,s=>s==null?void 0:s.bitrate),Hr=(0,g.createSelector)(ne,s=>s==null?void 0:s.bitrate),yr=(0,g.createSelector)(Fe,s=>s==null?void 0:s.bytesSent),kr=(0,g.createSelector)(ne,s=>s==null?void 0:s.bytesSent),fr=(0,g.createSelector)(ne,s=>s==null?void 0:s.framesPerSecond),Pr=(0,g.createSelector)(ne,s=>s==null?void 0:s.qualityLimitationReason);var L=class{constructor(e,t,r){this.getStats=()=>(this.stats||(this.stats=new ae(this.store,this.sdk)),this.stats);e?this.store=e:this.store=L.createNewHMSStore(he("HMSStore"),Q),r?this.notifications=r:this.notifications=new $e(this.store),t?this.actions=t:(this.sdk=new Ct.HMSSdk,this.actions=new qe(this.store,this.sdk,this.notifications)),this.initialTriggerOnSubscribe=!1,window.__hms=this}triggerOnSubscribe(){this.initialTriggerOnSubscribe||(L.makeStoreTriggerOnSubscribe(this.store),this.initialTriggerOnSubscribe=!0)}getStore(){return this.store}getHMSActions(){return this.actions}getActions(){return this.actions}getNotifications(){return{onNotification:this.notifications.onNotification}}static createNewHMSStore(e,t){let r=(0,Et.default)(()=>t()),o=r.setState;r.setState=l=>{let d=typeof l=="function"?(0,bt.default)(l):l;o(d)};let i=r.getState;r.getState=l=>{if(l){let d=l.name||"byIDSelector";window.selectorsCount||(window.selectorsCount={}),window.selectorsCount[d]=(window.selectorsCount[d]||0)+1;let R=performance.now(),B=l(i()),k=performance.now()-R;return k>1&&(window.expensiveSelectors=window.expensiveSelectors||new Map,window.expensiveSelectors.set(d,k)),B}return i()},L.useShallowCheckInSubscribe(r);let a=L.setUpDevtools(r,e);return $(j({},r),{namedSetState:a})}static makeStoreTriggerOnSubscribe(e){let t=e.subscribe;e.subscribe=(r,o,i)=>(r(e.getState(o),void 0),t(r,o,i))}static useShallowCheckInSubscribe(e){let t=e.subscribe;e.subscribe=(r,o,i)=>(o||(o=a=>a),i=i||At.default,t(r,o,i))}static setUpDevtools(e,t){let r;try{r=window.__REDUX_DEVTOOLS_EXTENSION__||window.top.__REDUX_DEVTOOLS_EXTENSION__}catch(a){}if(!r)return a=>{e.setState(a)};let o=r.connect(L.devtoolsOptions(t));o.prefix=t?`${t} > `:"";let i=e.setState;return e.setState=a=>{i(a),o.send(`${o.prefix}setState`,e.getState())},o.subscribe(L.devtoolsSubscribe(o,e,i)),o.send("setUpStore",e.getState()),(a,l)=>{i(a);let d=l||`${o.prefix}action`;o.send(d,e.getState())}}static devtoolsOptions(e){return{name:e,actionsBlacklist:["audioLevel","playlistProgress"]}}static devtoolsSubscribe(e,t,r){return o=>{var i,a,l,d;if(o.type==="DISPATCH"&&o.state)["JUMP_TO_ACTION","JUMP_TO_STATE"].includes(o.payload.type)?r(JSON.parse(o.state)):t.setState(JSON.parse(o.state));else if(o.type==="DISPATCH"&&((i=o.payload)==null?void 0:i.type)==="COMMIT")e.init(t.getState());else if(o.type==="DISPATCH"&&((a=o.payload)==null?void 0:a.type)==="IMPORT_STATE"){let R=(l=o.payload.nextLiftedState)==null?void 0:l.actionsById;(((d=o.payload.nextLiftedState)==null?void 0:d.computedStates)||[]).forEach(({state:k},w)=>{let J=R[w]||`${e.prefix}setState`;w===0?e.init(k):(r(k),e.send(J,t.getState()))})}}}};
|
|
1
|
+
var xt=Object.create;var Y=Object.defineProperty,Lt=Object.defineProperties,Ot=Object.getOwnPropertyDescriptor,wt=Object.getOwnPropertyDescriptors,Nt=Object.getOwnPropertyNames,Je=Object.getOwnPropertySymbols,Ut=Object.getPrototypeOf,Ye=Object.prototype.hasOwnProperty,_t=Object.prototype.propertyIsEnumerable;var Qe=(s,e,t)=>e in s?Y(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,j=(s,e)=>{for(var t in e||(e={}))Ye.call(e,t)&&Qe(s,t,e[t]);if(Je)for(var t of Je(e))_t.call(e,t)&&Qe(s,t,e[t]);return s},$=(s,e)=>Lt(s,wt(e)),Xe=s=>Y(s,"__esModule",{value:!0});var ze=(s,e)=>{Xe(s);for(var t in e)Y(s,t,{get:e[t],enumerable:!0})},Kt=(s,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Nt(e))!Ye.call(s,r)&&r!=="default"&&Y(s,r,{get:()=>e[r],enumerable:!(t=Ot(e,r))||t.enumerable});return s},v=s=>Kt(Xe(Y(s!=null?xt(Ut(s)):{},"default",s&&s.__esModule&&"default"in s?{get:()=>s.default,enumerable:!0}:{value:s,enumerable:!0})),s);var c=(s,e,t)=>new Promise((r,o)=>{var i=d=>{try{l(t.next(d))}catch(R){o(R)}},a=d=>{try{l(t.throw(d))}catch(R){o(R)}},l=d=>d.done?r(d.value):Promise.resolve(d.value).then(i,a);l((t=t.apply(s,e)).next())});ze(exports,{HMSAudioPluginType:()=>n.HMSAudioPluginType,HMSLogLevel:()=>n.HMSLogLevel,HMSMessageType:()=>Te,HMSNotificationSeverity:()=>P,HMSNotificationTypes:()=>h,HMSPlaylistType:()=>p,HMSReactiveStore:()=>L,HMSRoomState:()=>y,HMSStats:()=>ae,HMSVideoPluginType:()=>n.HMSVideoPluginType,createDefaultStatsStore:()=>X,createDefaultStoreState:()=>Q,selectAudioPlaylist:()=>Oe,selectAudioPlaylistTrackByPeerID:()=>ks,selectAudioTrackByPeerID:()=>pt,selectAudioTrackVolume:()=>Be,selectAudioVolumeByPeerID:()=>Ds,selectAuxiliaryAudioByPeerID:()=>Ts,selectAuxiliaryTracksByPeerID:()=>ps,selectAvailableRoleNames:()=>os,selectBroadcastMessages:()=>Tt,selectBroadcastMessagesUnreadCount:()=>xs,selectCameraStreamByPeerID:()=>Ms,selectDegradedTracks:()=>ts,selectDevices:()=>qt,selectDominantSpeaker:()=>Jt,selectHLSState:()=>cs,selectHMSMessages:()=>te,selectHMSMessagesCount:()=>Ee,selectHMSStats:()=>ge,selectIsAllowedToPublish:()=>qs,selectIsAllowedToSubscribe:()=>is,selectIsAudioLocallyMuted:()=>Ve,selectIsConnectedToRoom:()=>jt,selectIsInPreview:()=>rs,selectIsLocalAudioEnabled:()=>Yt,selectIsLocalAudioPluginPresent:()=>Gs,selectIsLocalScreenShared:()=>ue,selectIsLocalVideoDisplayEnabled:()=>be,selectIsLocalVideoEnabled:()=>de,selectIsLocalVideoPluginPresent:()=>Ws,selectIsLocallyMutedByPeerID:()=>vs,selectIsPeerAudioEnabled:()=>Ps,selectIsPeerVideoEnabled:()=>Rs,selectIsScreenShareLocallyMutedByPeerID:()=>Is,selectIsSomeoneScreenSharing:()=>Qt,selectLocalAudioTrackID:()=>A,selectLocalMediaSettings:()=>Ie,selectLocalPeer:()=>E,selectLocalPeerID:()=>V,selectLocalPeerRole:()=>se,selectLocalTrackIDs:()=>De,selectLocalVideoTrackID:()=>C,selectMessageIDsInOrder:()=>ve,selectMessagesByPeerID:()=>Ls,selectMessagesByRole:()=>Os,selectMessagesMap:()=>Re,selectMessagesUnreadCountByPeerID:()=>Ns,selectMessagesUnreadCountByRole:()=>ws,selectPeerAudioByID:()=>gs,selectPeerByID:()=>O,selectPeerCount:()=>$t,selectPeerMetadata:()=>_s,selectPeerNameByID:()=>us,selectPeerScreenSharing:()=>ot,selectPeerSharingAudio:()=>Xt,selectPeerSharingAudioPlaylist:()=>es,selectPeerSharingVideoPlaylist:()=>Zt,selectPeers:()=>Se,selectPeersByRole:()=>Us,selectPeersMap:()=>I,selectPeersScreenSharing:()=>zt,selectPeersWithAudioStatus:()=>Ks,selectPermissions:()=>Ce,selectRTMPState:()=>ns,selectRecordingState:()=>as,selectRemotePeers:()=>Gt,selectRoleByRoleName:()=>js,selectRoleChangeRequest:()=>Bs,selectRolesMap:()=>_,selectRoom:()=>b,selectRoomStartTime:()=>Ss,selectRoomStarted:()=>Ae,selectRoomState:()=>x,selectScreenShareAudioByPeerID:()=>Ke,selectScreenShareByPeerID:()=>fs,selectScreenSharesByPeerId:()=>_e,selectScreenshareAudioVolumeByPeerID:()=>bs,selectSessionId:()=>ls,selectSimulcastLayerByTrack:()=>Es,selectSpeakers:()=>rt,selectTrackAudioByID:()=>ms,selectTrackByID:()=>oe,selectTracksMap:()=>H,selectUnreadHMSMessagesCount:()=>ss,selectVideoPlaylist:()=>we,selectVideoPlaylistAudioTrackByPeerID:()=>ys,selectVideoPlaylistVideoTrackByPeerID:()=>Hs,selectVideoTrackByPeerID:()=>Mt});var bt=v(require("immer")),Et=v(require("zustand/vanilla")),At=v(require("zustand/shallow")),Ct=v(require("@100mslive/hms-video"));var y;(function(a){a.Disconnected="Disconnected",a.Preview="Preview",a.Connecting="Connecting",a.Connected="Connected",a.Reconnecting="Reconnecting",a.Failed="Failed"})(y||(y={}));var Q=()=>({room:{id:"",isConnected:!1,name:"",peers:[],shareableLink:"",localPeer:"",hasWaitingRoom:!1,roomState:y.Disconnected,recording:{browser:{running:!1},server:{running:!1}},rtmp:{running:!1},hls:{running:!1,variants:[]},sessionId:""},peers:{},tracks:{},playlist:{audio:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1},video:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1}},messages:{byID:{},allIDs:[]},speakers:{},settings:{audioInputDeviceId:"",audioOutputDeviceId:"",videoInputDeviceId:""},devices:{audioInput:[],audioOutput:[],videoInput:[]},roles:{},roleChangeRequests:[],errors:[]}),X=()=>({peerStats:{},trackStats:{},localPeer:{id:""}});var Te;(function(e){e.CHAT="chat"})(Te||(Te={}));var P;(function(r){r.INFO="info",r.ERROR="error",r.CRITICAL="critical"})(P||(P={}));var h;(function(S){S.PEER_JOINED="PEER_JOINED",S.PEER_LEFT="PEER_LEFT",S.PEER_LIST="PEER_LIST",S.NEW_MESSAGE="NEW_MESSAGE",S.ERROR="ERROR",S.RECONNECTING="RECONNECTING",S.RECONNECTED="RECONNECTED",S.TRACK_ADDED="TRACK_ADDED",S.TRACK_REMOVED="TRACK_REMOVED",S.TRACK_MUTED="TRACK_MUTED",S.TRACK_UNMUTED="TRACK_UNMUTED",S.TRACK_DEGRADED="TRACK_DEGRADED",S.TRACK_RESTORED="TRACK_RESTORED",S.ROLE_CHANGE_REQUEST="ROLE_CHANGE_REQUEST",S.ROLE_UPDATED="ROLE_UPDATED",S.CHANGE_TRACK_STATE_REQUEST="CHANGE_TRACK_STATE_REQUEST",S.CHANGE_MULTI_TRACK_STATE_REQUEST="CHANGE_MULTI_TRACK_STATE_REQUEST",S.ROOM_ENDED="ROOM_ENDED",S.REMOVED_FROM_ROOM="REMOVED_FROM_ROOM",S.DEVICE_CHANGE_UPDATE="DEVICE_CHANGE_UPDATE",S.PLAYLIST_TRACK_ENDED="PLAYLIST_TRACK_ENDED",S.NAME_UPDATED="NAME_UPDATED",S.METADATA_UPDATED="METADATA_UPDATED"})(h||(h={}));var p;(function(t){t.audio="audio",t.video="video"})(p||(p={}));var n=v(require("@100mslive/hms-video"));var U=v(require("@100mslive/hms-video"));var Ze=(s,e)=>{let t=Pe(Object.keys(s),Object.keys(e));for(let r of t){let o=s[r],i=e[r];ye(o,i)?(N(o.auxiliaryTracks,i.auxiliaryTracks)&&(i.auxiliaryTracks=o.auxiliaryTracks),Object.assign(o,i)):ke(o,i)?delete s[r]:fe(o,i)&&(s[r]=i)}},et=(s,e)=>{let t=Pe(Object.keys(s),Object.keys(e));for(let r of t){let o=s[r],i=e[r];ye(o,i)?(Vt(o,i),Object.assign(o,i)):ke(o,i)?delete s[r]:fe(o,i)&&(s[r]=i)}},He=(s,e)=>{let t=Pe(Object.keys(s),Object.keys(e));for(let r of t){let o=s[r],i=e[r];ye(o,i)?Object.assign(o,i):ke(o,i)?delete s[r]:fe(o,i)&&(s[r]=i)}},Vt=(s,e)=>{s.plugins&&N(s.plugins,e.plugins)&&(e.plugins=s.plugins),s.layerDefinitions&&N(s.layerDefinitions,e.layerDefinitions)&&(e.layerDefinitions=s.layerDefinitions)},ye=(s,e)=>s&&e,ke=(s,e)=>s&&!e,fe=(s,e)=>!s&&e,N=(s,e)=>{if(s===e||s.length===0&&(e==null?void 0:e.length)===0)return!0;if(!s||!e||s.length!==e.length)return!1;for(let t=0;t<s.length;t++)if(s[t]!==e[t])return!1;return!0},Pe=(s,e)=>{let t=new Set;for(let r of s)t.add(r);for(let r of e)t.add(r);return Array.from(t)};var T=class{static convertPeer(e){var t,r,o;return{id:e.peerId,name:e.name,roleName:(t=e.role)==null?void 0:t.name,isLocal:e.isLocal,videoTrack:(r=e.videoTrack)==null?void 0:r.trackId,audioTrack:(o=e.audioTrack)==null?void 0:o.trackId,auxiliaryTracks:e.auxiliaryTracks.map(i=>i.trackId),customerUserId:e.customerUserId,customerDescription:e.metadata,metadata:e.metadata}}static convertTrack(e,t){let r={id:e.trackId,source:e.source,type:e.type,enabled:e.enabled,displayEnabled:e.enabled,peerId:e.peerId||t};return this.enrichTrack(r,e),r}static enrichTrack(e,t){let r=t.getMediaTrackSettings();e.source==="screen"&&e.type==="video"&&(e.displaySurface=r.displaySurface),e.height=r.height,e.width=r.width,t instanceof U.HMSRemoteAudioTrack&&(e.volume=t.getVolume()||0),T.updateDeviceID(e,t),T.enrichVideoTrack(e,t),T.enrichPluginsDetails(e,t)}static updateDeviceID(e,t){var r;t instanceof U.HMSLocalVideoTrack||t instanceof U.HMSLocalAudioTrack?e.deviceID=t.settings.deviceId:e.deviceID=(r=t.getMediaTrackSettings())==null?void 0:r.deviceId}static enrichVideoTrack(e,t){t instanceof U.HMSRemoteVideoTrack&&(e.layer=t.getSimulcastLayer(),e.degraded=t.degraded,N(t.getSimulcastDefinitions(),e.layerDefinitions)||(e.layerDefinitions=t.getSimulcastDefinitions()))}static enrichPluginsDetails(e,t){(t instanceof U.HMSLocalVideoTrack||t instanceof U.HMSLocalAudioTrack)&&(N(t.getPlugins(),e.plugins)||(e.plugins=t.getPlugins()))}static convertRoom(e){var t,r,o,i,a,l,d;return{id:e.id,name:e.name,localPeer:(r=(t=e.localPeer)==null?void 0:t.peerId)!=null?r:"",hasWaitingRoom:e.hasWaitingRoom,shareableLink:e.shareableLink,recording:{browser:{running:!!((o=e.recording)==null?void 0:o.browser.running)},server:{running:!!((i=e.recording)==null?void 0:i.server.running)}},rtmp:{running:!!((a=e.rtmp)==null?void 0:a.running)},hls:{running:!!((l=e.hls)==null?void 0:l.running),variants:((d=e.hls)==null?void 0:d.variants)||[]},sessionId:e.sessionId,startedAt:e.startedAt&&new Date(e.startedAt)}}static convertMessage(e){var t,r,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:(r=e.recipientPeer)==null?void 0:r.peerId,recipientRoles:(o=e.recipientRoles)==null?void 0:o.map(i=>i.name),time:e.time,type:e.type,message:e.message}}static convertRoles(e){let t={};return e&&e.forEach(r=>{t[r.name]=r}),t}static convertRoleChangeRequest(e){var t;return{requestedBy:(t=e.requestedBy)==null?void 0:t.peerId,roleName:e.role.name,token:e.token}}static convertException(e){return{code:e.code,action:e.action,name:e.name,message:e.message,description:e.description,isTerminal:e.isTerminal,nativeError:e.nativeError,timestamp:new Date}}static convertDeviceChangeUpdate(e){let t={devices:e.devices,selection:e.selection,type:e.type};return e.error&&(t.error=this.convertException(e.error)),t}static convertPlaylist(e){let t=this.getConvertedPlaylistType(e,p.audio),r=this.getConvertedPlaylistType(e,p.video);return{audio:t,video:r}}static convertPlaylistItem(e,t){let r=t.type,o=e.getCurrentSelection(r),i=e.isPlaying(r),a=t.url===(o==null?void 0:o.url);return $(j({},t),{type:t.type,selected:a,playing:a&&i})}static getConvertedPlaylistType(e,t){let r={},o=e.getCurrentSelection(t),i=e.getCurrentProgress(t),a=e.getVolume(t),l=e.getList(t),d=e.getCurrentIndex(t);return e.getList(t).forEach(R=>{r[R.id]=T.convertPlaylistItem(e,R)}),{list:r,selection:{id:o==null?void 0:o.id,hasPrevious:d>0,hasNext:d<l.length-1},progress:i,volume:a,currentTime:e.getCurrentTime(t),playbackRate:e.getPlaybackRate(t)}}static convertRecordingStreamingState(e,t,r){var o,i;return{recording:{browser:{running:!!((o=e==null?void 0:e.browser)==null?void 0:o.running)},server:{running:!!((i=e==null?void 0:e.server)==null?void 0:i.running)}},rtmp:{running:!!(t==null?void 0:t.running)},hls:{variants:(r==null?void 0:r.variants)||[],running:!!(r==null?void 0:r.running)}}}};var u=v(require("reselect"));function q(s,e,t=Bt){let r,o;if(e)for(let i of e.auxiliaryTracks){let a=s[i];t(a)&&(o=z(a)?a:o,r=Z(a)?a:r)}return{video:r,audio:o}}function z(s){return s&&s.type==="audio"}function Z(s){return s&&s.type==="video"}function Bt(s){return s&&s.source==="screen"}function le(s){return s&&s.source==="audioplaylist"}function ee(s){return s&&s.source==="videoplaylist"}function tt(s){return Boolean(s==null?void 0:s.degraded)}function F(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 b=s=>s.room,I=s=>s.peers,Re=s=>s.messages.byID,ve=s=>s.messages.allIDs,H=s=>s.tracks,Ie=s=>s.settings,qt=s=>s.devices,rt=s=>s.speakers,jt=(0,u.createSelector)([b],s=>s&&s.isConnected),$t=(0,u.createSelector)(b,s=>s.peers.length),Se=(0,u.createSelector)([b,I],(s,e)=>s.peers.map(t=>e[t])),Ft=(0,u.createSelector)(H,s=>Object.values(s)),E=(0,u.createSelector)(b,I,(s,e)=>e[s.localPeer]),V=(0,u.createSelector)(b,s=>s.localPeer),A=(0,u.createSelector)(E,s=>s==null?void 0:s.audioTrack),C=(0,u.createSelector)(E,s=>s==null?void 0:s.videoTrack),Wt=(0,u.createSelector)(E,s=>s==null?void 0:s.auxiliaryTracks),De=(0,u.createSelector)([A,C,Wt],(s,e,t)=>{let r=[...t];return s&&r.unshift(s),e&&r.unshift(e),r}),Gt=(0,u.createSelector)(Se,s=>s.filter(e=>!e.isLocal)),Jt=(0,u.createSelector)(I,rt,(s,e)=>{let t=Object.entries(e).sort((r,o)=>{var l,d;let i=((l=r[1])==null?void 0:l.audioLevel)||0;return(((d=o[1])==null?void 0:d.audioLevel)||0)>i?1:-1});if(t.length>0&&t[0][1].audioLevel&&t[0][1].audioLevel>0){let r=t[0][1].peerID;if(r in s)return s[r]}return null}),Yt=s=>{let e=E(s);return F(s,e==null?void 0:e.audioTrack)},de=s=>{let e=E(s);return F(s,e==null?void 0:e.videoTrack)},be=s=>{let e=E(s);return st(s,e==null?void 0:e.videoTrack)},ue=(0,u.createSelector)(E,H,(s,e)=>{let{video:t,audio:r}=q(e,s);return!!(t||r)}),ot=(0,u.createSelector)(I,H,(s,e)=>{let t;for(let r in s){let o=s[r],{video:i,audio:a}=q(e,o);if(i)return o;a&&!t&&(t=o)}return t}),Qt=(0,u.createSelector)(ot,s=>!!s),Xt=(0,u.createSelector)(I,H,(s,e)=>{for(let t in s){let r=s[t],{audio:o,video:i}=q(e,r);if(!i&&!!o)return r}}),zt=(0,u.createSelector)(I,H,(s,e)=>{let t=[],r=[];for(let o in s){let i=s[o],{video:a,audio:l}=q(e,i);a?t.push(i):l&&r.push(i)}return t.concat(r)}),Zt=(0,u.createSelector)(I,H,(s,e)=>{for(let t in e){let r=e[t];if(ee(r)&&Z(r)&&r.peerId)return s[r.peerId]}}),es=(0,u.createSelector)(I,H,(s,e)=>{for(let t in e){let r=e[t];if(le(r)&&r.peerId)return s[r.peerId]}}),ts=(0,u.createSelector)(Ft,s=>s.filter(tt)),Ee=(0,u.createSelector)(ve,s=>s.length),ss=(0,u.createSelector)(Re,s=>Object.values(s).filter(e=>!e.read).length),te=(0,u.createSelector)(ve,Re,(s,e)=>{let t=[];return s.forEach(r=>{t.push(e[r])}),t}),x=(0,u.createSelector)([b],s=>s&&s.roomState),rs=(0,u.createSelector)(x,s=>s===y.Preview),Ae=(0,u.createSelector)(b,s=>s.roomState!==y.Disconnected),_=s=>s.roles,os=(0,u.createSelector)([_],s=>Object.keys(s)),se=(0,u.createSelector)([E,_],(s,e)=>(s==null?void 0:s.roleName)?e[s.roleName]:null),is=(0,u.createSelector)([se],s=>{var e;return((e=s==null?void 0:s.subscribeParams)==null?void 0:e.subscribeToRoles)?s.subscribeParams.subscribeToRoles.length>0:!1}),Ce=(0,u.createSelector)(se,s=>s==null?void 0:s.permissions),as=(0,u.createSelector)(b,s=>s.recording),ns=(0,u.createSelector)(b,s=>s.rtmp),cs=(0,u.createSelector)(b,s=>s.hls),ls=(0,u.createSelector)(b,s=>s.sessionId),Ss=(0,u.createSelector)(b,s=>s.startedAt);var xe=v(require("reselect"));var it=(s=p.audio)=>e=>e.playlist[s].list,Le=(s=p.audio)=>e=>e.playlist[s].selection,at=(s=p.audio)=>e=>e.playlist[s].progress,nt=(s=p.audio)=>e=>e.playlist[s].currentTime,ct=(s=p.audio)=>e=>e.playlist[s].playbackRate,lt=(s=p.audio)=>e=>e.playlist[s].volume,St=(s=p.audio)=>(0,xe.createSelector)(it(s),e=>Object.values(e)),dt=(s=p.audio)=>(0,xe.createSelector)(it(s),Le(s),(e,t)=>{if(!!t.id)return e[t.id]}),Oe={selection:Le(p.audio),progress:at(p.audio),currentTime:nt(p.audio),playbackRate:ct(p.audio),volume:lt(p.audio),list:St(p.audio),selectedItem:dt(p.audio)},we={selection:Le(p.video),progress:at(p.video),currentTime:nt(p.video),playbackRate:ct(p.video),volume:lt(p.video),list:St(p.video),selectedItem:dt(p.video)};var f=v(require("reselect"));function M(s){return e=>t=>s(t,e)}var re="HMS-Store:",m=class{static v(e,...t){this.log(n.HMSLogLevel.VERBOSE,e,...t)}static d(...e){this.log(n.HMSLogLevel.DEBUG,...e)}static i(...e){this.log(n.HMSLogLevel.INFO,...e)}static w(...e){this.log(n.HMSLogLevel.WARN,...e)}static e(...e){this.log(n.HMSLogLevel.ERROR,...e)}static time(e){this.log(n.HMSLogLevel.TIME,"[HMSPerformanceTiming]",e)}static timeEnd(e){this.log(n.HMSLogLevel.TIMEEND,"[HMSPerformanceTiming]",e,e)}static cleanUp(){performance.clearMarks(),performance.clearMeasures()}static log(e,...t){if(!(this.level.valueOf()>e.valueOf()))switch(e){case n.HMSLogLevel.VERBOSE:{console.log(re,...t);break}case n.HMSLogLevel.DEBUG:{console.debug(re,...t);break}case n.HMSLogLevel.INFO:{console.info(re,...t);break}case n.HMSLogLevel.WARN:{console.warn(re,...t);break}case n.HMSLogLevel.ERROR:{console.error(re,...t);break}case n.HMSLogLevel.TIME:{performance.mark(t[1]);break}case n.HMSLogLevel.TIMEEND:{let r=t[0],o=t[1];try{let i=performance.measure(o,o);this.log(n.HMSLogLevel.DEBUG,r,o,i==null?void 0:i.duration),performance.clearMarks(o),performance.clearMeasures(o)}catch(i){this.log(n.HMSLogLevel.DEBUG,r,o,i)}break}}}};m.level=n.HMSLogLevel.VERBOSE;var Ne=(s,e)=>e,ds=(s,e)=>e,ut=(s,e)=>e,D=(0,f.createSelector)([I,Ne],(s,e)=>e?s[e]:null),Ue=(0,f.createSelector)([H,ds],(s,e)=>e?s[e]:null),O=M(D),us=M((0,f.createSelector)(D,s=>s==null?void 0:s.name)),oe=M(Ue),Mt=M((s,e)=>{let t=D(s,e);if(t&&t.videoTrack&&t.videoTrack!=="")return s.tracks[t.videoTrack]}),pt=M((s,e)=>{let t=D(s,e);if(t&&t.audioTrack&&t.audioTrack!=="")return s.tracks[t.audioTrack]}),Ms=Mt,ps=M((s,e)=>{let t=D(s,e);return(t==null?void 0:t.auxiliaryTracks.map(r=>s.tracks[r]))||[]}),mt=(s,e)=>e?s.speakers[e]:null,ms=M((0,f.createSelector)(mt,s=>(s==null?void 0:s.audioLevel)||0)),hs=(s,e)=>{let t=pt(e)(s);return mt(s,t==null?void 0:t.id)},gs=M((0,f.createSelector)(hs,s=>(s==null?void 0:s.audioLevel)||0)),Ts=M((s,e)=>{let t=D(s,e);if(t){let r=t==null?void 0:t.auxiliaryTracks.find(o=>z(s.tracks[o]));return r?s.tracks[r]:void 0}}),Hs=M((0,f.createSelector)(H,D,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let o=s[r];return ee(o)&&Z(o)});return t?s[t]:void 0})),ys=M((0,f.createSelector)(H,D,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let o=s[r];return ee(o)&&z(o)});return t?s[t]:void 0})),ks=M((0,f.createSelector)(H,D,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let o=s[r];return le(o)&&z(o)});return t?s[t]:void 0})),_e=M((0,f.createSelector)(H,D,(s,e)=>q(s,e))),fs=s=>(0,f.createSelector)(_e(s),e=>e.video),Ke=s=>(0,f.createSelector)(_e(s),e=>e.audio),Ps=M((s,e)=>{let t=D(s,e);return F(s,t==null?void 0:t.audioTrack)}),Rs=M((s,e)=>{let t=D(s,e);return F(s,t==null?void 0:t.videoTrack)}),Ve=M((s,e)=>{if(e&&s.tracks[e])return s.tracks[e].volume===0}),vs=M((s,e)=>{let t=D(s,e);return Ve(t==null?void 0:t.audioTrack)(s)}),Is=M((s,e)=>{let t=Ke(e)(s);return Ve(t==null?void 0:t.id)(s)}),Be=M((s,e)=>{let t=Ue(s,e);if(t){if(t.type!=="audio"){m.w("Please pass audio track here");return}return t.volume}}),Ds=M((s,e)=>{let t=D(s,e);return Be(t==null?void 0:t.audioTrack)(s)}),bs=M((s,e)=>{let t=Ke(e)(s);return Be(t==null?void 0:t.id)(s)}),Es=M((s,e)=>{let t=Ue(s,e);if(t){if(t.type!=="video"){m.w("Please pass video track here");return}return t.layer}}),ht=(0,f.createSelector)([te,V,Ne],(s,e,t)=>{if(!!t)return s.filter(r=>{var o;return!r.recipientPeer&&!((o=r.recipientRoles)==null?void 0:o.length)||![e,t].includes(r.sender)?!1:[e,t].includes(r.recipientPeer)})}),gt=(0,f.createSelector)([te,ut],(s,e)=>{if(!!e)return s.filter(t=>{var r,o;return((r=t.recipientRoles)==null?void 0:r.length)?(o=t.recipientRoles)==null?void 0:o.includes(e):!1})}),Tt=(0,f.createSelector)(te,s=>s.filter(e=>{var t;return!e.recipientPeer&&!((t=e.recipientRoles)==null?void 0:t.length)})),As=(0,f.createSelector)([gt,ut],s=>s?s.filter(e=>!e.read).length:0),Cs=(0,f.createSelector)([ht,Ne],s=>s?s.filter(e=>!e.read).length:0),xs=(0,f.createSelector)(Tt,s=>s.filter(e=>!e.read).length),Ls=M(ht),Os=M(gt),ws=M(As),Ns=M(Cs),Us=s=>(0,f.createSelector)([Se],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 Me=v(require("reselect")),Ks=(0,Me.createSelector)([I,H],(s,e)=>Object.values(s).map(r=>{var o;return{peer:r,isAudioEnabled:r.audioTrack?(o=e[r.audioTrack])==null?void 0:o.enabled:!1}})),Vs=s=>s.roleChangeRequests[0]||null,Bs=(0,Me.createSelector)([Vs,I,_],(s,e,t)=>s?{requestedBy:s.requestedBy?e[s.requestedBy]:void 0,role:t[s.roleName],token:s.token}:null),qs=(0,Me.createSelector)([se],s=>{var o;let e=!1,t=!1,r=!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"),r=s.publishParams.allowed.includes("screen")),{video:e,audio:t,screen:r}});var W=v(require("reselect"));var js=s=>(0,W.createSelector)([_],e=>e[s]),$s=(0,W.createSelector)([C,H],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),Fs=(0,W.createSelector)([A,H],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),Ws=s=>(0,W.createSelector)([$s],e=>e.includes(s)),Gs=s=>(0,W.createSelector)([Fs],e=>e.includes(s));var ie=v(require("@100mslive/hms-video"));var pe=v(require("@100mslive/hms-video"));function Ht(s){return s instanceof pe.HMSRemoteAudioTrack||s instanceof pe.HMSRemoteVideoTrack}var me=class{constructor(e,t,r,o){this.playlistManager=e;this.syncPlaylistState=r;this.store=o;this.type=t}play(e){return c(this,null,function*(){if(!e){m.w("Please pass id to play");return}yield this.playlistManager.setEnabled(!0,{id:e,type:this.type})})}pause(){return c(this,null,function*(){let e=this.type===p.audio?Oe:we,t=this.store.getState(e.selection);if(!t.id){m.w("No item is currently playing to pause");return}yield this.playlistManager.setEnabled(!1,{id:t.id,type:this.type})})}playNext(){return c(this,null,function*(){yield this.playlistManager.playNext(this.type)})}playPrevious(){return c(this,null,function*(){yield this.playlistManager.playPrevious(this.type)})}seek(e){this.playlistManager.seek(e,this.type),this.syncPlaylistState(`seekOn${this.type}Playlist`)}seekTo(e){this.playlistManager.seekTo(e,this.type),this.syncPlaylistState(`seekToOn${this.type}Playlist`)}setVolume(e){this.playlistManager.setVolume(e,this.type),this.syncPlaylistState(`setVolumeOn${this.type}Playlist`)}setList(e){this.playlistManager.setList(e),this.syncPlaylistState(`setListOn${this.type}Playlist`)}stop(){return c(this,null,function*(){yield this.playlistManager.stop(this.type),this.syncPlaylistState(`stop${this.type}Playlist`)})}setIsAutoplayOn(e){this.playlistManager.setIsAutoplayOn(this.type,e)}setPlaybackRate(e){this.playlistManager.setPlaybackRate(this.type,e),this.syncPlaylistState(`set${this.type}PlaybackRate`)}};var yt={[n.HMSPeerUpdate.PEER_JOINED]:h.PEER_JOINED,[n.HMSPeerUpdate.PEER_LEFT]:h.PEER_LEFT,[n.HMSPeerUpdate.ROLE_UPDATED]:h.ROLE_UPDATED,[n.HMSPeerUpdate.AUDIO_TOGGLED]:"PEER_AUDIO_UPDATED",[n.HMSPeerUpdate.VIDEO_TOGGLED]:"PEER_VIDEO_UPDATED",[n.HMSPeerUpdate.NAME_UPDATED]:h.NAME_UPDATED,[n.HMSPeerUpdate.METADATA_UPDATED]:h.METADATA_UPDATED},kt={[n.HMSTrackUpdate.TRACK_ADDED]:h.TRACK_ADDED,[n.HMSTrackUpdate.TRACK_REMOVED]:h.TRACK_REMOVED,[n.HMSTrackUpdate.TRACK_MUTED]:h.TRACK_MUTED,[n.HMSTrackUpdate.TRACK_UNMUTED]:h.TRACK_UNMUTED,[n.HMSTrackUpdate.TRACK_DEGRADED]:h.TRACK_DEGRADED,[n.HMSTrackUpdate.TRACK_RESTORED]:h.TRACK_RESTORED},ft={[n.HMSPeerUpdate.PEER_JOINED]:"peerJoined",[n.HMSPeerUpdate.PEER_LEFT]:"peerLeft",[n.HMSPeerUpdate.NAME_UPDATED]:"peerNameUpdated",[n.HMSPeerUpdate.METADATA_UPDATED]:"peerMetadataUpdated"};var qe=class{constructor(e,t,r){this.hmsSDKTracks={};this.hmsSDKPeers={};this.isRoomJoinCalled=!1;this.setProgress=({type:e,progress:t})=>{this.setState(r=>{r.playlist[e].progress=t,r.playlist[e].currentTime=this.sdk.getPlaylistManager().getCurrentTime(e)},"playlistProgress")};this.syncPlaylistState=e=>{this.setState(t=>{Object.assign(t.playlist,T.convertPlaylist(this.sdk.getPlaylistManager()))},e)};this.sendPeerUpdateNotification=(e,t)=>{let r=this.store.getState(O(t.peerId)),o="peerUpdate";o=ft[e],this.syncRoomState(o),r||(r=this.store.getState(O(t.peerId))),this.hmsNotifications.sendPeerUpdate(e,r)};this.setState=(e,t)=>this.store.namedSetState(e,t);this.store=e,this.sdk=t,this.hmsNotifications=r}unblockAudio(){return c(this,null,function*(){yield this.sdk.getAudioOutput().unblockAutoplay()})}setVolume(e,t){t?this.setTrackVolume(e,t):(this.sdk.getAudioOutput().setVolume(e),this.syncRoomState("setOutputVolume"))}setAudioOutputDevice(e){this.sdk.getAudioOutput().setDevice(e)&&this.setState(r=>{r.settings.audioOutputDeviceId=e},"setAudioOutputDevice")}setPreferredLayer(e,t){let r=this.hmsSDKTracks[e];r?r instanceof ie.HMSRemoteVideoTrack?(r.preferLayer(t),this.updateVideoLayer(e,"setPreferredLayer")):m.w(`track ${e} is not an video track`):this.logPossibleInconsistency(`track ${e} not present, unable to set preffer layer`)}preview(e){return c(this,null,function*(){if(this.isRoomJoinCalled){this.logPossibleInconsistency("attempting to call preview after join was called");return}let t=this.store.getState(x);if(t===y.Preview||t===y.Connecting){this.logPossibleInconsistency("attempting to call preview while room is in preview/connecting");return}try{this.setState(r=>{r.room.roomState=y.Connecting},"connecting"),yield this.sdkPreviewWithListeners(e)}catch(r){throw m.e("Cannot show preview. Failed to connect to room - ",r),r}})}join(e){if(this.isRoomJoinCalled){this.logPossibleInconsistency("room join is called again");return}try{this.sdkJoinWithListeners(e),this.isRoomJoinCalled=!0,this.setState(t=>{t.room.roomState=y.Connecting},"join")}catch(t){throw this.isRoomJoinCalled=!1,m.e("Failed to connect to room - ",t),t}}leave(){return c(this,null,function*(){if(!this.store.getState(Ae)){this.logPossibleInconsistency("room leave is called when no room is connected");return}return this.sdk.leave().then(()=>{this.resetState("leave"),m.i("left room")}).catch(t=>{m.e("error in leaving room - ",t)})})}setScreenShareEnabled(e,t){return c(this,null,function*(){e?yield this.startScreenShare(t):yield this.stopScreenShare()})}addTrack(e,t="regular"){return c(this,null,function*(){yield this.sdk.addTrack(e,t),this.syncRoomState("addTrack")})}removeTrack(e){return c(this,null,function*(){yield this.sdk.removeTrack(e),this.syncRoomState("removeTrack")})}setLocalAudioEnabled(e){return c(this,null,function*(){let t=this.store.getState(A);t&&(yield this.setEnabledTrack(t,e))})}setLocalVideoEnabled(e){return c(this,null,function*(){let t=this.store.getState(C);t&&(yield this.setEnabledTrack(t,e))})}setEnabledTrack(e,t){return c(this,null,function*(){var i;if(((i=this.store.getState().tracks[e])==null?void 0:i.enabled)===t){this.logPossibleInconsistency(`local track[${e}] enabled state - ${t}`);return}this.setState(a=>{a.tracks[e]?a.tracks[e].displayEnabled=t:this.logPossibleInconsistency("track id not found for setEnabled")},"displayEnabled");try{yield this.setEnabledSDKTrack(e,t),this.syncRoomState("setEnabled")}catch(a){throw this.setState(l=>{l.tracks[e].displayEnabled=!t},"rollbackDisplayEnabled"),this.hmsNotifications.sendError(T.convertException(a)),a}let o=t?n.HMSTrackUpdate.TRACK_UNMUTED:n.HMSTrackUpdate.TRACK_MUTED;this.hmsNotifications.sendTrackUpdate(o,e)})}setAudioSettings(e){return c(this,null,function*(){let t=this.store.getState(A);t&&(yield this.setSDKLocalAudioTrackSettings(t,e),this.syncRoomState("setAudioSettings"))})}setVideoSettings(e){return c(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 c(this,null,function*(){let r=yield this.sdk.sendBroadcastMessage(e,t);this.updateMessageInStore(r,{message:e,type:t})})}sendGroupMessage(e,t,r){return c(this,null,function*(){let o=this.store.getState(_),i=t.map(l=>o[l]),a=yield this.sdk.sendGroupMessage(e,i,r);this.updateMessageInStore(a,{message:e,recipientRoles:t,type:r})})}sendDirectMessage(e,t,r){return c(this,null,function*(){let o=this.hmsSDKPeers[t],i=yield this.sdk.sendDirectMessage(e,o,r);this.updateMessageInStore(i,{message:e,recipientPeer:o.peerId,type:r})})}updateMessageInStore(e,t){if(!e)throw m.w("sendMessage","Failed to send message",t),Error(`sendMessage Failed - ${JSON.stringify(t)}`);let r=T.convertMessage(e);return r.read=!0,r.senderName="You",this.onHMSMessage(r),r}setMessageRead(e,t){this.setState(r=>{t?r.messages.byID[t]?r.messages.byID[t].read=e:this.logPossibleInconsistency("no message with id is found"):r.messages.allIDs.forEach(o=>{r.messages.byID[o].read=e})},"setMessageRead")}attachVideo(e,t){return c(this,null,function*(){if(this.localAndVideoUnmuting(e))return new Promise(r=>{let o=this.store.subscribe(i=>c(this,null,function*(){i&&(yield this.attachVideoInternal(e,t),o(),r())}),de)});yield this.attachVideoInternal(e,t)})}detachVideo(e,t){return c(this,null,function*(){let r=this.hmsSDKTracks[e];r&&r.type==="video"?(yield r.removeSink(t),this.updateVideoLayer(e,"detachVideo")):this.logPossibleInconsistency("no video track found to remove sink")})}addPluginToVideoTrack(e,t){return c(this,null,function*(){return this.addRemoveVideoPlugin(e,"add",t)})}addPluginToAudioTrack(e){return c(this,null,function*(){return this.addRemoveAudioPlugin(e,"add")})}removePluginFromVideoTrack(e){return c(this,null,function*(){return this.addRemoveVideoPlugin(e,"remove")})}removePluginFromAudioTrack(e){return c(this,null,function*(){return this.addRemoveAudioPlugin(e,"remove")})}changeRole(e,t,r=!1){return c(this,null,function*(){let o=this.hmsSDKPeers[e];if(!o){this.logPossibleInconsistency(`Unknown peer ID given ${e} for changerole`);return}yield this.sdk.changeRole(o,t,r)})}acceptChangeRole(e){return c(this,null,function*(){let t=e.requestedBy?this.hmsSDKPeers[e.requestedBy.id]:void 0;t||m.w(`peer for which role change is requested no longer available - ${e.requestedBy}`);let r={requestedBy:t,role:e.role,token:e.token};yield this.sdk.acceptChangeRole(r),this.removeRoleChangeRequest(e)})}rejectChangeRole(e){this.removeRoleChangeRequest(e)}endRoom(e,t){return c(this,null,function*(){let r=this.store.getState(Ce);if(!(r==null?void 0:r.endRoom)){m.w("You are not allowed to perform this action - endRoom");return}yield this.sdk.endRoom(e,t)})}removePeer(e,t){return c(this,null,function*(){let r=this.hmsSDKPeers[e];if(r&&!r.isLocal)yield this.sdk.removePeer(r,t);else{this.logPossibleInconsistency(`No remote peer found for peerID - ${e}`);return}})}startRTMPOrRecording(e){return c(this,null,function*(){yield this.sdk.startRTMPOrRecording(e)})}stopRTMPAndRecording(){return c(this,null,function*(){yield this.sdk.stopRTMPAndRecording()})}startHLSStreaming(e){return c(this,null,function*(){yield this.sdk.startHLSStreaming(e)})}stopHLSStreaming(e){return c(this,null,function*(){yield this.sdk.stopHLSStreaming(e)})}changeName(e){return c(this,null,function*(){yield this.sdk.changeName(e)})}changeMetadata(e){return c(this,null,function*(){typeof e!="string"&&(e=JSON.stringify(e)),yield this.sdk.changeMetadata(e)})}setRemoteTrackEnabled(e,t){return c(this,null,function*(){if(typeof e=="string"){let r=this.hmsSDKTracks[e];r&&Ht(r)?yield this.sdk.changeTrackState(r,t):this.logPossibleInconsistency(`No remote track with ID ${e} found for change track state`)}else Array.isArray(e)&&e.forEach(r=>this.setRemoteTrackEnabled(r,t))})}setRemoteTracksEnabled(e){return c(this,null,function*(){let t={enabled:e.enabled,type:e.type,source:e.source};if(e.roles){let r=this.store.getState(_);t.roles=e.roles.map(o=>r[o])}yield this.sdk.changeMultiTrackState(t)})}setLogLevel(e){m.level=e,this.sdk.setLogLevel(e)}resetState(e="resetState"){this.setState(t=>{Object.assign(t,Q())},e),this.isRoomJoinCalled=!1,this.hmsSDKTracks={},m.cleanUp()}sdkJoinWithListeners(e){this.sdk.join(e,{onJoin:this.onJoin.bind(this),onRoomUpdate:this.onRoomUpdate.bind(this),onPeerUpdate:this.onPeerUpdate.bind(this),onTrackUpdate:this.onTrackUpdate.bind(this),onMessageReceived:this.onMessageReceived.bind(this),onError:this.onError.bind(this),onReconnected:this.onReconnected.bind(this),onReconnecting:this.onReconnecting.bind(this),onRoleChangeRequest:this.onRoleChangeRequest.bind(this),onRoleUpdate:this.onRoleUpdate.bind(this),onDeviceChange:this.onDeviceChange.bind(this),onChangeTrackStateRequest:this.onChangeTrackStateRequest.bind(this),onChangeMultiTrackStateRequest:this.onChangeMultiTrackStateRequest.bind(this),onRemovedFromRoom:this.onRemovedFromRoom.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})}onRemovedFromRoom(e){var r;let t=this.store.getState(O((r=e.requestedBy)==null?void 0:r.peerId));this.hmsNotifications.sendLeaveRoom($(j({},e),{requestedBy:t||void 0})),m.i("resetting state after peer removed",e),this.resetState(e.roomEnded||!t?"roomEnded":"removedFromRoom")}onDeviceChange(e){let t=e.devices;if(!t)return;let r=this.store.getState(E);if(this.setState(o=>{N(o.devices.audioInput,t.audioInput)||(o.devices.audioInput=t.audioInput),N(o.devices.videoInput,t.videoInput)||(o.devices.videoInput=t.videoInput),N(o.devices.audioOutput,t.audioOutput)||(o.devices.audioOutput=t.audioOutput),this.hmsSDKPeers[r==null?void 0:r.id]&&Object.assign(o.settings,this.getMediaSettings(this.hmsSDKPeers[r==null?void 0:r.id]))},"deviceChange"),e.selection){let o=T.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),onDeviceChange:this.onDeviceChange.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})})}startScreenShare(e){return c(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 c(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 c(this,null,function*(){let r=this.hmsSDKTracks[e];r&&r.type==="video"?(yield r.addSink(t),this.updateVideoLayer(e,"attachVideo")):this.logPossibleInconsistency("no video track found to add sink")})}syncRoomState(e){m.time(`store-sync-${e}`);let t={},r=[],o={},i={},a={},l=this.sdk.getPeers();for(let k of l){let w=T.convertPeer(k);t[w.id]=w,r.push(w.id),this.hmsSDKPeers[w.id]=k;let J=[k.audioTrack,k.videoTrack,...k.auxiliaryTracks];for(let ce of J){if(!ce)continue;let Ge=T.convertTrack(ce);o[Ge.id]=Ge,i[ce.trackId]=ce}w.isLocal&&Object.assign(a,this.getMediaSettings(k))}let d=this.sdk.getRecordingState(),R=this.sdk.getRTMPState(),B=this.sdk.getHLSState();this.setState(k=>{k.room.peers=r;let w=k.peers,J=k.tracks;Ze(w,t),et(J,o),Object.assign(k.settings,a),this.hmsSDKTracks=i,Object.assign(k.roles,T.convertRoles(this.sdk.getRoles())),Object.assign(k.playlist,T.convertPlaylist(this.sdk.getPlaylistManager())),Object.assign(k.room,T.convertRecordingStreamingState(d,R,B))},e),m.timeEnd(`store-sync-${e}`)}onPreview(e){this.setState(t=>{Object.assign(t.room,T.convertRoom(e)),t.room.roomState=y.Preview},"previewStart"),this.syncRoomState("previewSync")}onJoin(e){let t=this.sdk.getPlaylistManager();this.audioPlaylist=new me(t,p.audio,this.syncPlaylistState.bind(this),this.store),this.videoPlaylist=new me(t,p.video,this.syncRoomState.bind(this),this.store),this.syncRoomState("joinSync"),this.setState(r=>{Object.assign(r.room,T.convertRoom(e)),r.room.isConnected=!0,r.room.roomState=y.Connected},"joined"),t.onProgress(this.setProgress),t.onNewTrackStart(r=>{this.syncPlaylistState(`${r.type}PlaylistUpdate`)}),t.onPlaylistEnded(r=>{this.syncPlaylistState(`${r}PlaylistEnded`)}),t.onCurrentTrackEnded(r=>{this.hmsNotifications.sendPlaylistTrackEnded(T.convertPlaylistItem(t,r)),this.syncPlaylistState(`${r.type}PlaylistItemEnded`)})}onRoomUpdate(e,t){this.setState(r=>{Object.assign(r.room,T.convertRoom(t))},"RoomUpdate")}onPeerUpdate(e,t){if(![n.HMSPeerUpdate.BECAME_DOMINANT_SPEAKER,n.HMSPeerUpdate.RESIGNED_DOMINANT_SPEAKER].includes(e)){if(Array.isArray(t)){this.syncRoomState("peersJoined");let r=[];for(let o of t){let i=this.store.getState(O(o.peerId));i&&r.push(i)}this.hmsNotifications.sendPeerList(r);return}this.sendPeerUpdateNotification(e,t)}}onTrackUpdate(e,t,r){if(e===n.HMSTrackUpdate.TRACK_REMOVED)this.hmsNotifications.sendTrackUpdate(e,t.trackId),this.handleTrackRemove(t,r);else{let o=e===n.HMSTrackUpdate.TRACK_ADDED?"trackAdded":"trackUpdate";this.syncRoomState(o),this.hmsNotifications.sendTrackUpdate(e,t.trackId)}}onMessageReceived(e){let t=T.convertMessage(e);t.read=!1,this.onHMSMessage(t),this.hmsNotifications.sendMessageReceived(t)}onHMSMessage(e){this.setState(t=>{e.id=String(this.store.getState(Ee)+1),t.messages.byID[e.id]=e,t.messages.allIDs.push(e.id)},"newMessage")}onAudioLevelUpdate(e){this.setState(t=>{let r={};e.forEach(i=>{if(!i.track||!i.peer)return;let a=i.track.trackId;r[a]=i.audioLevel,t.speakers[a]||(t.speakers[a]={audioLevel:i.audioLevel,peerID:i.peer.peerId,trackID:a})});let o=Object.entries(t.speakers);for(let[i,a]of o)a.audioLevel=r[i]||0,a.audioLevel===0&&delete t.speakers[i]},"audioLevel")}onChangeTrackStateRequest(e){var i;let t=this.store.getState(O((i=e.requestedBy)==null?void 0:i.peerId)),r=this.getStoreLocalTrackIDfromSDKTrack(e.track),o=this.store.getState(oe(r));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 i;let t=this.store.getState(O((i=e.requestedBy)==null?void 0:i.peerId));e.enabled||this.syncRoomState("changeMultiTrackStateRequest");let r=[],o=this.store.getState(H);for(let a of e.tracks){let l=this.getStoreLocalTrackIDfromSDKTrack(a);l&&o[l]&&r.push(o[l])}this.hmsNotifications.sendChangeMultiTrackStateRequest({requestedBy:t||void 0,tracks:r,enabled:e.enabled,type:e.type,source:e.source})}onReconnected(){this.syncRoomState("reconnectedSync"),this.hmsNotifications.sendReconnected(),this.setState(e=>{e.room.roomState=y.Connected},"reconnected")}onReconnecting(e){let t=T.convertException(e);m.e("Reconnection: received error from sdk",t),this.hmsNotifications.sendReconnecting(t),this.setState(r=>{r.room.roomState=y.Reconnecting,r.errors.push(t)},"reconnecting")}onError(e){let t=T.convertException(e);t.isTerminal?(this.leave().then(()=>m.e("error from SDK, left room.")),this.setState(r=>{r.room.roomState=y.Failed,r.errors.push(t)},"errorTerminal")):this.store.getState().errors.length<50&&this.setState(o=>{o.errors.push(t)},"error"),this.hmsNotifications.sendError(t),m.e("received error from sdk",t)}updateVideoLayer(e,t){let r=this.hmsSDKTracks[e];r&&r instanceof ie.HMSRemoteVideoTrack&&this.setState(o=>{o.tracks[e].layer=r.getSimulcastLayer()},t)}handleTrackRemove(e,t){this.setState(r=>{let o=r.peers[t.peerId],i=r.tracks,a=e.trackId;if(this.isSameStoreSDKTrack(a,o==null?void 0:o.audioTrack))o==null||delete o.audioTrack;else if(this.isSameStoreSDKTrack(a,o==null?void 0:o.videoTrack))o==null||delete o.videoTrack;else{let l=o==null?void 0:o.auxiliaryTracks.indexOf(a);l>-1&&this.isSameStoreSDKTrack(a,o==null?void 0:o.auxiliaryTracks[l])&&(o==null||o.auxiliaryTracks.splice(l,1))}delete i[a],delete this.hmsSDKTracks[a]},"trackRemoved")}setEnabledSDKTrack(e,t){return c(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setEnabled(t):this.logPossibleInconsistency(`track ${e} not present, unable to enabled/disable`)})}setSDKLocalVideoTrackSettings(e,t){return c(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}setSDKLocalAudioTrackSettings(e,t){return c(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}getMediaSettings(e){var i;let t=this.store.getState(Ie),r=e.audioTrack,o=e.videoTrack;return{audioInputDeviceId:(r==null?void 0:r.settings.deviceId)||t.audioInputDeviceId,videoInputDeviceId:(o==null?void 0:o.settings.deviceId)||t.videoInputDeviceId,audioOutputDeviceId:(i=this.sdk.getAudioOutput().getDevice())==null?void 0:i.deviceId}}setTrackVolume(e,t){let r=this.hmsSDKTracks[t];r?r instanceof ie.HMSAudioTrack?(r.setVolume(e),this.setState(o=>{let i=o.tracks[t];i&&(i.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(E).videoTrack!==e)return!1;let r=this.store.getState(be),o=this.store.getState(de);return r&&!o}logPossibleInconsistency(e){m.w("possible inconsistency detected - ",e)}addRemoveVideoPlugin(e,t,r){return c(this,null,function*(){if(!e){m.w("Invalid plugin received in store");return}let o=this.store.getState(C);if(o){let i=this.hmsSDKTracks[o];i?(t==="add"?yield i.addPlugin(e,r):t==="remove"&&(yield i.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){m.w("Invalid plugin received in store");return}let r=this.store.getState(A);if(r){let o=this.hmsSDKTracks[r];o?(t==="add"?yield o.addPlugin(e):t==="remove"&&(yield o.removePlugin(e)),this.syncRoomState(`${t}AudioPlugin`)):this.logPossibleInconsistency(`track ${r} not present, unable to remove plugin`)}})}isSameStoreSDKTrack(e,t){var r;return t?((r=this.hmsSDKTracks[t])==null?void 0:r.trackId)===e:!1}onRoleChangeRequest(e){this.setState(t=>{t.roleChangeRequests.length===0&&t.roleChangeRequests.push(T.convertRoleChangeRequest(e))},"roleChangeRequest")}removeRoleChangeRequest(e){this.setState(t=>{let r=t.roleChangeRequests.findIndex(o=>o.token===e.token);r!==-1&&t.roleChangeRequests.splice(r,1)},"removeRoleChangeRequest")}onRoleUpdate(){this.syncRoomState("roleUpdate")}getStoreLocalTrackIDfromSDKTrack(e){return this.store.getState(De).find(r=>this.hmsSDKTracks[r].trackId===e.trackId)}};var Pt=v(require("eventemitter2"));var je="hmsNotification",$e=class{constructor(e){this.id=0;this.onNotification=e=>(this.eventEmitter.addListener(je,e),()=>{this.eventEmitter.removeListener(je,e)});this.store=e,this.eventEmitter=new Pt.EventEmitter2}sendPlaylistTrackEnded(e){let t=this.createNotification(h.PLAYLIST_TRACK_ENDED,e,P.INFO);this.emitEvent(t)}sendDeviceChange(e){var r;let t=this.createNotification(h.DEVICE_CHANGE_UPDATE,e,e.error?P.ERROR:P.INFO,`Selected ${e.type} device - ${(r=e.selection)==null?void 0:r.label}`);this.emitEvent(t)}sendLeaveRoom(e){var o;let t=(o=e.requestedBy)==null?void 0:o.name,r=this.createNotification(e.roomEnded||!t?h.ROOM_ENDED:h.REMOVED_FROM_ROOM,e,P.INFO,`${e.roomEnded?"Room ended":"Removed from room"} ${t?`by ${t}`:""}`);this.emitEvent(r)}sendPeerList(e){let t=this.createNotification(h.PEER_LIST,e,P.INFO);this.emitEvent(t)}sendPeerUpdate(e,t){let r=this.store.getState(O(t==null?void 0:t.id))||t,o=yt[e];if(o){let i=this.createNotification(o,r,P.INFO);this.emitEvent(i)}}sendTrackUpdate(e,t){let r=this.store.getState(oe(t)),o=kt[e];if(o){let i=this.createNotification(o,r,P.INFO);this.emitEvent(i)}}sendMessageReceived(e){let t=this.createNotification(h.NEW_MESSAGE,e,P.INFO);this.emitEvent(t)}sendError(e){let t=this.createNotification(h.ERROR,e,P.ERROR);this.emitEvent(t)}sendReconnecting(e){let t=this.createNotification(h.RECONNECTING,e,P.ERROR);this.emitEvent(t)}sendReconnected(){let e=this.createNotification(h.RECONNECTED,null,P.INFO);this.emitEvent(e)}sendChangeTrackStateRequest(e){let t=this.createNotification(h.CHANGE_TRACK_STATE_REQUEST,e,P.INFO);this.emitEvent(t)}sendChangeMultiTrackStateRequest(e){let t=this.createNotification(h.CHANGE_MULTI_TRACK_STATE_REQUEST,e,P.INFO);this.emitEvent(t)}emitEvent(e){this.eventEmitter.emit(je,e)}createNotification(e,t,r,o=""){return this.id++,{id:this.id,type:e,message:o,data:t,severity:r}}};var Rt=v(require("@100mslive/hms-video")),he=s=>Rt.isBrowser?`${s} ${document.title}`:s;var vt=(s,e,t)=>{let r;t.getState(x)===y.Connected&&(r=It(s,e,t)),t.subscribe(o=>{[y.Connected,y.Reconnecting].includes(o)?r||(r=It(s,e,t)):r&&(Qs(e),r())},x)},It=(s,e,t)=>{var i;let r=Js(t,e),o=(i=s.getWebrtcInternals())==null?void 0:i.onStatsChange(a=>Ys(e,a,t));return()=>{r(),o&&o()}},Js=(s,e)=>{let t,r,o;return s.getState(V)?e.namedSetState(i=>{i.localPeer.id=s.getState(V)},"localpeer-id"):t=s.subscribe(i=>{i&&e.namedSetState(a=>{a.localPeer.id=i},"localpeer-id")},V),s.getState(C)?e.namedSetState(i=>{i.localPeer.videoTrack=s.getState(C)},"localpeer-videotrack-id"):r=s.subscribe(i=>{i&&e.namedSetState(a=>{a.localPeer.videoTrack=i},"localpeer-videotrack-id")},C),s.getState(A)?e.namedSetState(i=>{i.localPeer.videoTrack=s.getState(A)},"localpeer-audiotrack-id"):o=s.subscribe(i=>{i&&e.namedSetState(a=>{a.localPeer.videoTrack=i},"localpeer-audiotrack-id")},A),()=>{t==null||t(),r==null||r(),o==null||o()}},Ys=(s,e,t)=>{let r=t.getState(H);s.namedSetState(o=>{let i={},a=Object.keys(r);for(let R of a){let B=e.getTrackStats(R);B&&(i[R]=B)}He(o.trackStats,i);let d={[t.getState(V)]:e.getLocalPeerStats()};He(o.peerStats,d)},"webrtc-stats")},Qs=(s,e="resetState")=>{s.namedSetState(t=>{Object.assign(t,X())},e)};var ae=class{constructor(e,t){this.hmsStore=e;this.sdk=t;this.store=L.createNewHMSStore(he("HMSStatsStore"),X),this.getState=this.store.getState,this.subscribe=this.store.subscribe,this.getPublishPeerConnection=()=>new Promise(r=>{var o,i;this.hmsStore.getState(x)==="Connected"?r((i=(o=this.sdk)==null?void 0:o.getWebrtcInternals())==null?void 0:i.getPublishPeerConnection()):this.hmsStore.subscribe(a=>{var l,d;a==="Connected"&&r((d=(l=this.sdk)==null?void 0:l.getWebrtcInternals())==null?void 0:d.getPublishPeerConnection())},x)}),this.getSubscribePeerConnection=()=>new Promise(r=>{var o,i;this.hmsStore.getState(x)==="Connected"?r((i=(o=this.sdk)==null?void 0:o.getWebrtcInternals())==null?void 0:i.getSubscribePeerConnection()):this.hmsStore.subscribe(a=>{var l,d;a==="Connected"&&r((d=(l=this.sdk)==null?void 0:l.getWebrtcInternals())==null?void 0:d.getSubscribePeerConnection())},x)}),!!this.sdk&&vt(this.sdk,this.store,this.hmsStore)}};var ge={};ze(ge,{availablePublishBitrate:()=>ar,availableSubscribeBitrate:()=>nr,bitrateByTrackID:()=>Mr,bytesReceivedByTrackID:()=>pr,framerateByTrackID:()=>mr,jitter:()=>rr,jitterByTrackID:()=>hr,localAudioTrackBitrate:()=>Tr,localAudioTrackBytesSent:()=>yr,localAudioTrackStats:()=>We,localPeerStats:()=>K,localVideoTrackBitrate:()=>Hr,localVideoTrackBytesSent:()=>kr,localVideoTrackFramerate:()=>fr,localVideoTrackQualityLimitationReason:()=>Pr,localVideoTrackStats:()=>ne,packetsLost:()=>sr,packetsLostByTrackID:()=>gr,peerStatsByID:()=>dr,publishBitrate:()=>or,subscribeBitrate:()=>ir,totalBytesReceived:()=>lr,totalBytesSent:()=>cr,trackStatsByID:()=>ur});var g=v(require("reselect"));var Xs=s=>s.localPeer.id,zs=s=>s.localPeer.audioTrack,Zs=s=>s.localPeer.videoTrack,er=(s,e)=>e,tr=(s,e)=>e,Fe=s=>s.trackStats,Dt=s=>s.peerStats,K=(0,g.createSelector)([Dt,Xs],(s,e)=>s[e]),sr=(0,g.createSelector)(K,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.packetsLost}),rr=(0,g.createSelector)(K,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.jitter}),or=(0,g.createSelector)(K,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bitrate}),ir=(0,g.createSelector)(K,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bitrate}),ar=(0,g.createSelector)(K,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.availableOutgoingBitrate}),nr=(0,g.createSelector)(K,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.availableIncomingBitrate}),cr=(0,g.createSelector)(K,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bytesSent}),lr=(0,g.createSelector)(K,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bytesReceived}),Sr=(0,g.createSelector)([Dt,er],(s,e)=>e?s[e]:void 0),G=(0,g.createSelector)([Fe,tr],(s,e)=>e?s[e]:void 0),dr=M(Sr),ur=M(G),Mr=M((0,g.createSelector)(G,s=>s==null?void 0:s.bitrate)),pr=M((0,g.createSelector)(G,s=>s==null?void 0:s.bytesReceived)),mr=M((0,g.createSelector)(G,s=>s==null?void 0:s.framesPerSecond)),hr=M((0,g.createSelector)(G,s=>s==null?void 0:s.jitter)),gr=M((0,g.createSelector)(G,s=>s==null?void 0:s.packetsLost)),We=(0,g.createSelector)([Fe,zs],(s,e)=>e?s[e]:void 0),ne=(0,g.createSelector)([Fe,Zs],(s,e)=>e?s[e]:void 0),Tr=(0,g.createSelector)(We,s=>s==null?void 0:s.bitrate),Hr=(0,g.createSelector)(ne,s=>s==null?void 0:s.bitrate),yr=(0,g.createSelector)(We,s=>s==null?void 0:s.bytesSent),kr=(0,g.createSelector)(ne,s=>s==null?void 0:s.bytesSent),fr=(0,g.createSelector)(ne,s=>s==null?void 0:s.framesPerSecond),Pr=(0,g.createSelector)(ne,s=>s==null?void 0:s.qualityLimitationReason);var L=class{constructor(e,t,r){this.getStats=()=>(this.stats||(this.stats=new ae(this.store,this.sdk)),this.stats);e?this.store=e:this.store=L.createNewHMSStore(he("HMSStore"),Q),r?this.notifications=r:this.notifications=new $e(this.store),t?this.actions=t:(this.sdk=new Ct.HMSSdk,this.actions=new qe(this.store,this.sdk,this.notifications)),this.initialTriggerOnSubscribe=!1,window.__hms=this}triggerOnSubscribe(){this.initialTriggerOnSubscribe||(L.makeStoreTriggerOnSubscribe(this.store),this.initialTriggerOnSubscribe=!0)}getStore(){return this.store}getHMSActions(){return this.actions}getActions(){return this.actions}getNotifications(){return{onNotification:this.notifications.onNotification}}static createNewHMSStore(e,t){let r=(0,Et.default)(()=>t()),o=r.setState;r.setState=l=>{let d=typeof l=="function"?(0,bt.default)(l):l;o(d)};let i=r.getState;r.getState=l=>{if(l){let d=l.name||"byIDSelector";window.selectorsCount||(window.selectorsCount={}),window.selectorsCount[d]=(window.selectorsCount[d]||0)+1;let R=performance.now(),B=l(i()),k=performance.now()-R;return k>1&&(window.expensiveSelectors=window.expensiveSelectors||new Map,window.expensiveSelectors.set(d,k)),B}return i()},L.useShallowCheckInSubscribe(r);let a=L.setUpDevtools(r,e);return $(j({},r),{namedSetState:a})}static makeStoreTriggerOnSubscribe(e){let t=e.subscribe;e.subscribe=(r,o,i)=>(r(e.getState(o),void 0),t(r,o,i))}static useShallowCheckInSubscribe(e){let t=e.subscribe;e.subscribe=(r,o,i)=>(o||(o=a=>a),i=i||At.default,t(r,o,i))}static setUpDevtools(e,t){let r;try{r=window.__REDUX_DEVTOOLS_EXTENSION__||window.top.__REDUX_DEVTOOLS_EXTENSION__}catch(a){}if(!r)return a=>{e.setState(a)};let o=r.connect(L.devtoolsOptions(t));o.prefix=t?`${t} > `:"";let i=e.setState;return e.setState=a=>{i(a),o.send(`${o.prefix}setState`,e.getState())},o.subscribe(L.devtoolsSubscribe(o,e,i)),o.send("setUpStore",e.getState()),(a,l)=>{i(a);let d=l||`${o.prefix}action`;o.send(d,e.getState())}}static devtoolsOptions(e){return{name:e,actionsBlacklist:["audioLevel","playlistProgress"]}}static devtoolsSubscribe(e,t,r){return o=>{var i,a,l,d;if(o.type==="DISPATCH"&&o.state)["JUMP_TO_ACTION","JUMP_TO_STATE"].includes(o.payload.type)?r(JSON.parse(o.state)):t.setState(JSON.parse(o.state));else if(o.type==="DISPATCH"&&((i=o.payload)==null?void 0:i.type)==="COMMIT")e.init(t.getState());else if(o.type==="DISPATCH"&&((a=o.payload)==null?void 0:a.type)==="IMPORT_STATE"){let R=(l=o.payload.nextLiftedState)==null?void 0:l.actionsById;(((d=o.payload.nextLiftedState)==null?void 0:d.computedStates)||[]).forEach(({state:k},w)=>{let J=R[w]||`${e.prefix}setState`;w===0?e.init(k):(r(k),e.send(J,t.getState()))})}}}};
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var Se=Object.defineProperty,Ht=Object.defineProperties;var yt=Object.getOwnPropertyDescriptors;var Ae=Object.getOwnPropertySymbols;var kt=Object.prototype.hasOwnProperty,ft=Object.prototype.propertyIsEnumerable;var Ce=(s,e,t)=>e in s?Se(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,j=(s,e)=>{for(var t in e||(e={}))kt.call(e,t)&&Ce(s,t,e[t]);if(Ae)for(var t of Ae(e))ft.call(e,t)&&Ce(s,t,e[t]);return s},$=(s,e)=>Ht(s,yt(e)),Pt=s=>Se(s,"__esModule",{value:!0});var Rt=(s,e)=>{Pt(s);for(var t in e)Se(s,t,{get:e[t],enumerable:!0})};var n=(s,e,t)=>new Promise((r,o)=>{var i=S=>{try{c(t.next(S))}catch(P){o(P)}},a=S=>{try{c(t.throw(S))}catch(P){o(P)}},c=S=>S.done?r(S.value):Promise.resolve(S.value).then(i,a);c((t=t.apply(s,e)).next())});import Is from"immer";import Ds from"zustand/vanilla";import bs from"zustand/shallow";import{HMSSdk as Es}from"@100mslive/hms-video";var H;(function(a){a.Disconnected="Disconnected",a.Preview="Preview",a.Connecting="Connecting",a.Connected="Connected",a.Reconnecting="Reconnecting",a.Failed="Failed"})(H||(H={}));var te=()=>({room:{id:"",isConnected:!1,name:"",peers:[],shareableLink:"",localPeer:"",hasWaitingRoom:!1,roomState:H.Disconnected,recording:{browser:{running:!1},server:{running:!1}},rtmp:{running:!1},hls:{running:!1,variants:[]},sessionId:""},peers:{},tracks:{},playlist:{audio:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1},video:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1}},messages:{byID:{},allIDs:[]},speakers:{},settings:{audioInputDeviceId:"",audioOutputDeviceId:"",videoInputDeviceId:""},devices:{audioInput:[],audioOutput:[],videoInput:[]},roles:{},roleChangeRequests:[],errors:[]}),se=()=>({peerStats:{},trackStats:{},localPeer:{id:""}});var xe;(function(e){e.CHAT="chat"})(xe||(xe={}));var R;(function(r){r.INFO="info",r.ERROR="error",r.CRITICAL="critical"})(R||(R={}));var m;(function(l){l.PEER_JOINED="PEER_JOINED",l.PEER_LEFT="PEER_LEFT",l.PEER_LIST="PEER_LIST",l.NEW_MESSAGE="NEW_MESSAGE",l.ERROR="ERROR",l.RECONNECTING="RECONNECTING",l.RECONNECTED="RECONNECTED",l.TRACK_ADDED="TRACK_ADDED",l.TRACK_REMOVED="TRACK_REMOVED",l.TRACK_MUTED="TRACK_MUTED",l.TRACK_UNMUTED="TRACK_UNMUTED",l.TRACK_DEGRADED="TRACK_DEGRADED",l.TRACK_RESTORED="TRACK_RESTORED",l.ROLE_CHANGE_REQUEST="ROLE_CHANGE_REQUEST",l.ROLE_UPDATED="ROLE_UPDATED",l.CHANGE_TRACK_STATE_REQUEST="CHANGE_TRACK_STATE_REQUEST",l.CHANGE_MULTI_TRACK_STATE_REQUEST="CHANGE_MULTI_TRACK_STATE_REQUEST",l.ROOM_ENDED="ROOM_ENDED",l.REMOVED_FROM_ROOM="REMOVED_FROM_ROOM",l.DEVICE_CHANGE_UPDATE="DEVICE_CHANGE_UPDATE",l.PLAYLIST_TRACK_ENDED="PLAYLIST_TRACK_ENDED",l.NAME_UPDATED="NAME_UPDATED",l.METADATA_UPDATED="METADATA_UPDATED"})(m||(m={}));var M;(function(t){t.audio="audio",t.video="video"})(M||(M={}));import{HMSException as Ks,HMSSimulcastLayer as Vs,HMSPeerUpdate as v,HMSRoomUpdate as Bs,HMSTrackUpdate as b,HMSLogLevel as k,HMSAudioPluginType as vt,HMSVideoPluginType as It}from"@100mslive/hms-video";import{HMSLocalAudioTrack as we,HMSLocalVideoTrack as Ne,HMSRemoteAudioTrack as bt,HMSRemoteVideoTrack as Et}from"@100mslive/hms-video";var Le=(s,e)=>{let t=me(Object.keys(s),Object.keys(e));for(let r of t){let o=s[r],i=e[r];ue(o,i)?(N(o.auxiliaryTracks,i.auxiliaryTracks)&&(i.auxiliaryTracks=o.auxiliaryTracks),Object.assign(o,i)):Me(o,i)?delete s[r]:pe(o,i)&&(s[r]=i)}},Oe=(s,e)=>{let t=me(Object.keys(s),Object.keys(e));for(let r of t){let o=s[r],i=e[r];ue(o,i)?(Dt(o,i),Object.assign(o,i)):Me(o,i)?delete s[r]:pe(o,i)&&(s[r]=i)}},de=(s,e)=>{let t=me(Object.keys(s),Object.keys(e));for(let r of t){let o=s[r],i=e[r];ue(o,i)?Object.assign(o,i):Me(o,i)?delete s[r]:pe(o,i)&&(s[r]=i)}},Dt=(s,e)=>{s.plugins&&N(s.plugins,e.plugins)&&(e.plugins=s.plugins),s.layerDefinitions&&N(s.layerDefinitions,e.layerDefinitions)&&(e.layerDefinitions=s.layerDefinitions)},ue=(s,e)=>s&&e,Me=(s,e)=>s&&!e,pe=(s,e)=>!s&&e,N=(s,e)=>{if(s===e||s.length===0&&(e==null?void 0:e.length)===0)return!0;if(!s||!e||s.length!==e.length)return!1;for(let t=0;t<s.length;t++)if(s[t]!==e[t])return!1;return!0},me=(s,e)=>{let t=new Set;for(let r of s)t.add(r);for(let r of e)t.add(r);return Array.from(t)};var h=class{static convertPeer(e){var t,r,o;return{id:e.peerId,name:e.name,roleName:(t=e.role)==null?void 0:t.name,isLocal:e.isLocal,videoTrack:(r=e.videoTrack)==null?void 0:r.trackId,audioTrack:(o=e.audioTrack)==null?void 0:o.trackId,auxiliaryTracks:e.auxiliaryTracks.map(i=>i.trackId),customerUserId:e.customerUserId,customerDescription:e.metadata,metadata:e.metadata}}static convertTrack(e,t){let r={id:e.trackId,source:e.source,type:e.type,enabled:e.enabled,displayEnabled:e.enabled,peerId:e.peerId||t};return this.enrichTrack(r,e),r}static enrichTrack(e,t){let r=t.getMediaTrackSettings();e.source==="screen"&&e.type==="video"&&(e.displaySurface=r.displaySurface),e.height=r.height,e.width=r.width,t instanceof bt&&(e.volume=t.getVolume()||0),h.updateDeviceID(e,t),h.enrichVideoTrack(e,t),h.enrichPluginsDetails(e,t)}static updateDeviceID(e,t){var r;t instanceof Ne||t instanceof we?e.deviceID=t.settings.deviceId:e.deviceID=(r=t.getMediaTrackSettings())==null?void 0:r.deviceId}static enrichVideoTrack(e,t){t instanceof Et&&(e.layer=t.getSimulcastLayer(),e.degraded=t.degraded,N(t.getSimulcastDefinitions(),e.layerDefinitions)||(e.layerDefinitions=t.getSimulcastDefinitions()))}static enrichPluginsDetails(e,t){(t instanceof Ne||t instanceof we)&&(N(t.getPlugins(),e.plugins)||(e.plugins=t.getPlugins()))}static convertRoom(e){var t,r,o,i,a,c,S;return{id:e.id,name:e.name,localPeer:(r=(t=e.localPeer)==null?void 0:t.peerId)!=null?r:"",hasWaitingRoom:e.hasWaitingRoom,shareableLink:e.shareableLink,recording:{browser:{running:!!((o=e.recording)==null?void 0:o.browser.running)},server:{running:!!((i=e.recording)==null?void 0:i.server.running)}},rtmp:{running:!!((a=e.rtmp)==null?void 0:a.running)},hls:{running:!!((c=e.hls)==null?void 0:c.running),variants:((S=e.hls)==null?void 0:S.variants)||[]},sessionId:e.sessionId,startedAt:e.startedAt&&new Date(e.startedAt)}}static convertMessage(e){var t,r,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:(r=e.recipientPeer)==null?void 0:r.peerId,recipientRoles:(o=e.recipientRoles)==null?void 0:o.map(i=>i.name),time:e.time,type:e.type,message:e.message}}static convertRoles(e){let t={};return e&&e.forEach(r=>{t[r.name]=r}),t}static convertRoleChangeRequest(e){var t;return{requestedBy:(t=e.requestedBy)==null?void 0:t.peerId,roleName:e.role.name,token:e.token}}static convertException(e){return{code:e.code,action:e.action,name:e.name,message:e.message,description:e.description,isTerminal:e.isTerminal,nativeError:e.nativeError,timestamp:new Date}}static convertDeviceChangeUpdate(e){let t={devices:e.devices,selection:e.selection,type:e.type};return e.error&&(t.error=this.convertException(e.error)),t}static convertPlaylist(e){let t=this.getConvertedPlaylistType(e,M.audio),r=this.getConvertedPlaylistType(e,M.video);return{audio:t,video:r}}static convertPlaylistItem(e,t){let r=t.type,o=e.getCurrentSelection(r),i=e.isPlaying(r),a=t.url===(o==null?void 0:o.url);return $(j({},t),{type:t.type,selected:a,playing:a&&i})}static getConvertedPlaylistType(e,t){let r={},o=e.getCurrentSelection(t),i=e.getCurrentProgress(t),a=e.getVolume(t),c=e.getList(t),S=e.getCurrentIndex(t);return e.getList(t).forEach(P=>{r[P.id]=h.convertPlaylistItem(e,P)}),{list:r,selection:{id:o==null?void 0:o.id,hasPrevious:S>0,hasNext:S<c.length-1},progress:i,volume:a,currentTime:e.getCurrentTime(t),playbackRate:e.getPlaybackRate(t)}}static convertRecordingStreamingState(e,t,r){var o,i;return{recording:{browser:{running:!!((o=e==null?void 0:e.browser)==null?void 0:o.running)},server:{running:!!((i=e==null?void 0:e.server)==null?void 0:i.running)}},rtmp:{running:!!(t==null?void 0:t.running)},hls:{variants:(r==null?void 0:r.variants)||[],running:!!(r==null?void 0:r.running)}}}};import{createSelector as d}from"reselect";function B(s,e,t=At){let r,o;if(e)for(let i of e.auxiliaryTracks){let a=s[i];t(a)&&(o=J(a)?a:o,r=Y(a)?a:r)}return{video:r,audio:o}}function J(s){return s&&s.type==="audio"}function Y(s){return s&&s.type==="video"}function At(s){return s&&s.source==="screen"}function re(s){return s&&s.source==="audioplaylist"}function Q(s){return s&&s.source==="videoplaylist"}function Ue(s){return Boolean(s==null?void 0:s.degraded)}function W(s,e){return e&&s.tracks[e]?s.tracks[e].enabled:!1}function _e(s,e){return e&&s.tracks[e]?s.tracks[e].displayEnabled:!1}var E=s=>s.room,D=s=>s.peers,Ke=s=>s.messages.byID,Ve=s=>s.messages.allIDs,T=s=>s.tracks,Be=s=>s.settings,Wr=s=>s.devices,Ct=s=>s.speakers,Fr=d([E],s=>s&&s.isConnected),Gr=d(E,s=>s.peers.length),he=d([E,D],(s,e)=>s.peers.map(t=>e[t])),xt=d(T,s=>Object.values(s)),A=d(E,D,(s,e)=>e[s.localPeer]),q=d(E,s=>s.localPeer),C=d(A,s=>s==null?void 0:s.audioTrack),x=d(A,s=>s==null?void 0:s.videoTrack),Lt=d(A,s=>s==null?void 0:s.auxiliaryTracks),qe=d([C,x,Lt],(s,e,t)=>{let r=[...t];return s&&r.unshift(s),e&&r.unshift(e),r}),Jr=d(he,s=>s.filter(e=>!e.isLocal)),Yr=d(D,Ct,(s,e)=>{let t=Object.entries(e).sort((r,o)=>{var c,S;let i=((c=r[1])==null?void 0:c.audioLevel)||0;return(((S=o[1])==null?void 0:S.audioLevel)||0)>i?1:-1});if(t.length>0&&t[0][1].audioLevel&&t[0][1].audioLevel>0){let r=t[0][1].peerID;if(r in s)return s[r]}return null}),Qr=s=>{let e=A(s);return W(s,e==null?void 0:e.audioTrack)},ge=s=>{let e=A(s);return W(s,e==null?void 0:e.videoTrack)},je=s=>{let e=A(s);return _e(s,e==null?void 0:e.videoTrack)},Te=d(A,T,(s,e)=>{let{video:t,audio:r}=B(e,s);return!!(t||r)}),Ot=d(D,T,(s,e)=>{let t;for(let r in s){let o=s[r],{video:i,audio:a}=B(e,o);if(i)return o;a&&!t&&(t=o)}return t}),Xr=d(Ot,s=>!!s),zr=d(D,T,(s,e)=>{for(let t in s){let r=s[t],{audio:o,video:i}=B(e,r);if(!i&&!!o)return r}}),Zr=d(D,T,(s,e)=>{let t=[],r=[];for(let o in s){let i=s[o],{video:a,audio:c}=B(e,i);a?t.push(i):c&&r.push(i)}return t.concat(r)}),eo=d(D,T,(s,e)=>{for(let t in e){let r=e[t];if(Q(r)&&Y(r)&&r.peerId)return s[r.peerId]}}),to=d(D,T,(s,e)=>{for(let t in e){let r=e[t];if(re(r)&&r.peerId)return s[r.peerId]}}),so=d(xt,s=>s.filter(Ue)),$e=d(Ve,s=>s.length),ro=d(Ke,s=>Object.values(s).filter(e=>!e.read).length),oe=d(Ve,Ke,(s,e)=>{let t=[];return s.forEach(r=>{t.push(e[r])}),t}),L=d([E],s=>s&&s.roomState),oo=d(L,s=>s===H.Preview),We=d(E,s=>s.roomState!==H.Disconnected),_=s=>s.roles,io=d([_],s=>Object.keys(s)),ie=d([A,_],(s,e)=>(s==null?void 0:s.roleName)?e[s.roleName]:null),ao=d([ie],s=>{var e;return((e=s==null?void 0:s.subscribeParams)==null?void 0:e.subscribeToRoles)?s.subscribeParams.subscribeToRoles.length>0:!1}),Fe=d(ie,s=>s==null?void 0:s.permissions),no=d(E,s=>s.recording),co=d(E,s=>s.rtmp),lo=d(E,s=>s.hls),So=d(E,s=>s.sessionId),uo=d(E,s=>s.startedAt);import{createSelector as Ge}from"reselect";var Je=(s=M.audio)=>e=>e.playlist[s].list,He=(s=M.audio)=>e=>e.playlist[s].selection,Ye=(s=M.audio)=>e=>e.playlist[s].progress,Qe=(s=M.audio)=>e=>e.playlist[s].currentTime,Xe=(s=M.audio)=>e=>e.playlist[s].playbackRate,ze=(s=M.audio)=>e=>e.playlist[s].volume,Ze=(s=M.audio)=>Ge(Je(s),e=>Object.values(e)),et=(s=M.audio)=>Ge(Je(s),He(s),(e,t)=>{if(!!t.id)return e[t.id]}),tt={selection:He(M.audio),progress:Ye(M.audio),currentTime:Qe(M.audio),playbackRate:Xe(M.audio),volume:ze(M.audio),list:Ze(M.audio),selectedItem:et(M.audio)},st={selection:He(M.video),progress:Ye(M.video),currentTime:Qe(M.video),playbackRate:Xe(M.video),volume:ze(M.video),list:Ze(M.video),selectedItem:et(M.video)};import{createSelector as f}from"reselect";function u(s){return e=>t=>s(t,e)}var X="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(X,...t);break}case k.DEBUG:{console.debug(X,...t);break}case k.INFO:{console.info(X,...t);break}case k.WARN:{console.warn(X,...t);break}case k.ERROR:{console.error(X,...t);break}case k.TIME:{performance.mark(t[1]);break}case k.TIMEEND:{let r=t[0],o=t[1];try{let i=performance.measure(o,o);this.log(k.DEBUG,r,o,i==null?void 0:i.duration),performance.clearMarks(o),performance.clearMeasures(o)}catch(i){this.log(k.DEBUG,r,o,i)}break}}}};p.level=k.VERBOSE;var ye=(s,e)=>e,wt=(s,e)=>e,rt=(s,e)=>e,I=f([D,ye],(s,e)=>e?s[e]:null),ke=f([T,wt],(s,e)=>e?s[e]:null),U=u(I),Do=u(f(I,s=>s==null?void 0:s.name)),ae=u(ke),Nt=u((s,e)=>{let t=I(s,e);if(t&&t.videoTrack&&t.videoTrack!=="")return s.tracks[t.videoTrack]}),Ut=u((s,e)=>{let t=I(s,e);if(t&&t.audioTrack&&t.audioTrack!=="")return s.tracks[t.audioTrack]}),bo=Nt,Eo=u((s,e)=>{let t=I(s,e);return(t==null?void 0:t.auxiliaryTracks.map(r=>s.tracks[r]))||[]}),ot=(s,e)=>e?s.speakers[e]:null,Ao=u(f(ot,s=>(s==null?void 0:s.audioLevel)||0)),_t=(s,e)=>{let t=Ut(e)(s);return ot(s,t==null?void 0:t.id)},Co=u(f(_t,s=>(s==null?void 0:s.audioLevel)||0)),xo=u((s,e)=>{let t=I(s,e);if(t){let r=t==null?void 0:t.auxiliaryTracks.find(o=>J(s.tracks[o]));return r?s.tracks[r]:void 0}}),Lo=u(f(T,I,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let o=s[r];return Q(o)&&Y(o)});return t?s[t]:void 0})),Oo=u(f(T,I,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let o=s[r];return Q(o)&&J(o)});return t?s[t]:void 0})),wo=u(f(T,I,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let o=s[r];return re(o)&&J(o)});return t?s[t]:void 0})),it=u(f(T,I,(s,e)=>B(s,e))),No=s=>f(it(s),e=>e.video),at=s=>f(it(s),e=>e.audio),Uo=u((s,e)=>{let t=I(s,e);return W(s,t==null?void 0:t.audioTrack)}),_o=u((s,e)=>{let t=I(s,e);return W(s,t==null?void 0:t.videoTrack)}),nt=u((s,e)=>{if(e&&s.tracks[e])return s.tracks[e].volume===0}),Ko=u((s,e)=>{let t=I(s,e);return nt(t==null?void 0:t.audioTrack)(s)}),Vo=u((s,e)=>{let t=at(e)(s);return nt(t==null?void 0:t.id)(s)}),ct=u((s,e)=>{let t=ke(s,e);if(t){if(t.type!=="audio"){p.w("Please pass audio track here");return}return t.volume}}),Bo=u((s,e)=>{let t=I(s,e);return ct(t==null?void 0:t.audioTrack)(s)}),qo=u((s,e)=>{let t=at(e)(s);return ct(t==null?void 0:t.id)(s)}),jo=u((s,e)=>{let t=ke(s,e);if(t){if(t.type!=="video"){p.w("Please pass video track here");return}return t.layer}}),lt=f([oe,q,ye],(s,e,t)=>{if(!!t)return s.filter(r=>{var o;return!r.recipientPeer&&!((o=r.recipientRoles)==null?void 0:o.length)||![e,t].includes(r.sender)?!1:[e,t].includes(r.recipientPeer)})}),St=f([oe,rt],(s,e)=>{if(!!e)return s.filter(t=>{var r,o;return((r=t.recipientRoles)==null?void 0:r.length)?(o=t.recipientRoles)==null?void 0:o.includes(e):!1})}),Kt=f(oe,s=>s.filter(e=>{var t;return!e.recipientPeer&&!((t=e.recipientRoles)==null?void 0:t.length)})),Vt=f([St,rt],s=>s?s.filter(e=>!e.read).length:0),Bt=f([lt,ye],s=>s?s.filter(e=>!e.read).length:0),$o=f(Kt,s=>s.filter(e=>!e.read).length),Wo=u(lt),Fo=u(St),Go=u(Vt),Jo=u(Bt),Yo=s=>f([he],e=>e.filter(t=>t.roleName===s)),Qo=s=>f(U(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 ei=fe([D,T],(s,e)=>Object.values(s).map(r=>{var o;return{peer:r,isAudioEnabled:r.audioTrack?(o=e[r.audioTrack])==null?void 0:o.enabled:!1}})),qt=s=>s.roleChangeRequests[0]||null,ti=fe([qt,D,_],(s,e,t)=>s?{requestedBy:s.requestedBy?e[s.requestedBy]:void 0,role:t[s.roleName],token:s.token}:null),si=fe([ie],s=>{var o;let e=!1,t=!1,r=!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"),r=s.publishParams.allowed.includes("screen")),{video:e,audio:t,screen:r}});import{createSelector as z}from"reselect";var ai=s=>z([_],e=>e[s]),jt=z([x,T],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),$t=z([C,T],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),ni=s=>z([jt],e=>e.includes(s)),ci=s=>z([$t],e=>e.includes(s));import{HMSAudioTrack as Gt,HMSRemoteVideoTrack as mt}from"@100mslive/hms-video";import{HMSRemoteAudioTrack as Wt,HMSRemoteVideoTrack as Ft}from"@100mslive/hms-video";function dt(s){return s instanceof Wt||s instanceof Ft}var ne=class{constructor(e,t,r,o){this.playlistManager=e;this.syncPlaylistState=r;this.store=o;this.type=t}play(e){return n(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 n(this,null,function*(){let e=this.type===M.audio?tt:st,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 n(this,null,function*(){yield this.playlistManager.playNext(this.type)})}playPrevious(){return n(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 n(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 ut={[v.PEER_JOINED]:m.PEER_JOINED,[v.PEER_LEFT]:m.PEER_LEFT,[v.ROLE_UPDATED]:m.ROLE_UPDATED,[v.AUDIO_TOGGLED]:"PEER_AUDIO_UPDATED",[v.VIDEO_TOGGLED]:"PEER_VIDEO_UPDATED",[v.NAME_UPDATED]:m.NAME_UPDATED,[v.METADATA_UPDATED]:m.METADATA_UPDATED},Mt={[b.TRACK_ADDED]:m.TRACK_ADDED,[b.TRACK_REMOVED]:m.TRACK_REMOVED,[b.TRACK_MUTED]:m.TRACK_MUTED,[b.TRACK_UNMUTED]:m.TRACK_UNMUTED,[b.TRACK_DEGRADED]:m.TRACK_DEGRADED,[b.TRACK_RESTORED]:m.TRACK_RESTORED},pt={[v.PEER_JOINED]:"peerJoined",[v.PEER_LEFT]:"peerLeft",[v.NAME_UPDATED]:"peerNameUpdated",[v.METADATA_UPDATED]:"peerMetadataUpdated"};var Pe=class{constructor(e,t,r){this.hmsSDKTracks={};this.hmsSDKPeers={};this.isRoomJoinCalled=!1;this.setProgress=({type:e,progress:t})=>{this.setState(r=>{r.playlist[e].progress=t,r.playlist[e].currentTime=this.sdk.getPlaylistManager().getCurrentTime(e)},"playlistProgress")};this.syncPlaylistState=e=>{this.setState(t=>{Object.assign(t.playlist,h.convertPlaylist(this.sdk.getPlaylistManager()))},e)};this.sendPeerUpdateNotification=(e,t)=>{let r=this.store.getState(U(t.peerId)),o="peerUpdate";o=pt[e],this.syncRoomState(o),r||(r=this.store.getState(U(t.peerId))),this.hmsNotifications.sendPeerUpdate(e,r)};this.setState=(e,t)=>this.store.namedSetState(e,t);this.store=e,this.sdk=t,this.hmsNotifications=r}unblockAudio(){return n(this,null,function*(){yield this.sdk.getAudioOutput().unblockAutoplay()})}setVolume(e,t){t?this.setTrackVolume(e,t):(this.sdk.getAudioOutput().setVolume(e),this.syncRoomState("setOutputVolume"))}setAudioOutputDevice(e){this.sdk.getAudioOutput().setDevice(e)&&this.setState(r=>{r.settings.audioOutputDeviceId=e},"setAudioOutputDevice")}setPreferredLayer(e,t){let r=this.hmsSDKTracks[e];r?r instanceof mt?(r.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 n(this,null,function*(){if(this.isRoomJoinCalled){this.logPossibleInconsistency("attempting to call preview after join was called");return}let t=this.store.getState(L);if(t===H.Preview||t===H.Connecting){this.logPossibleInconsistency("attempting to call preview while room is in preview/connecting");return}try{this.setState(r=>{r.room.roomState=H.Connecting},"connecting"),yield this.sdkPreviewWithListeners(e)}catch(r){throw p.e("Cannot show preview. Failed to connect to room - ",r),r}})}join(e){if(this.isRoomJoinCalled){this.logPossibleInconsistency("room join is called again");return}try{this.sdkJoinWithListeners(e),this.isRoomJoinCalled=!0,this.setState(t=>{t.room.roomState=H.Connecting},"join")}catch(t){throw this.isRoomJoinCalled=!1,p.e("Failed to connect to room - ",t),t}}leave(){return n(this,null,function*(){if(!this.store.getState(We)){this.logPossibleInconsistency("room leave is called when no room is connected");return}return this.sdk.leave().then(()=>{this.resetState("leave"),p.i("left room")}).catch(t=>{p.e("error in leaving room - ",t)})})}setScreenShareEnabled(e,t){return n(this,null,function*(){e?yield this.startScreenShare(t):yield this.stopScreenShare()})}addTrack(e,t="regular"){return n(this,null,function*(){yield this.sdk.addTrack(e,t),this.syncRoomState("addTrack")})}removeTrack(e){return n(this,null,function*(){yield this.sdk.removeTrack(e),this.syncRoomState("removeTrack")})}setLocalAudioEnabled(e){return n(this,null,function*(){let t=this.store.getState(C);t&&(yield this.setEnabledTrack(t,e))})}setLocalVideoEnabled(e){return n(this,null,function*(){let t=this.store.getState(x);t&&(yield this.setEnabledTrack(t,e))})}setEnabledTrack(e,t){return n(this,null,function*(){var i;if(((i=this.store.getState().tracks[e])==null?void 0:i.enabled)===t){this.logPossibleInconsistency(`local track[${e}] enabled state - ${t}`);return}this.setState(a=>{a.tracks[e]?a.tracks[e].displayEnabled=t:this.logPossibleInconsistency("track id not found for setEnabled")},"displayEnabled");try{yield this.setEnabledSDKTrack(e,t),this.syncRoomState("setEnabled")}catch(a){throw this.setState(c=>{c.tracks[e].displayEnabled=!t},"rollbackDisplayEnabled"),this.hmsNotifications.sendError(h.convertException(a)),a}let o=t?b.TRACK_UNMUTED:b.TRACK_MUTED;this.hmsNotifications.sendTrackUpdate(o,e)})}setAudioSettings(e){return n(this,null,function*(){let t=this.store.getState(C);t&&(yield this.setSDKLocalAudioTrackSettings(t,e),this.syncRoomState("setAudioSettings"))})}setVideoSettings(e){return n(this,null,function*(){let t=this.store.getState(x);t&&(yield this.setSDKLocalVideoTrackSettings(t,e),this.syncRoomState("setVideoSettings"))})}sendMessage(e){this.sendBroadcastMessage(e)}sendBroadcastMessage(e,t){return n(this,null,function*(){let r=yield this.sdk.sendBroadcastMessage(e,t);this.updateMessageInStore(r,{message:e,type:t})})}sendGroupMessage(e,t,r){return n(this,null,function*(){let o=this.store.getState(_),i=t.map(c=>o[c]),a=yield this.sdk.sendGroupMessage(e,i,r);this.updateMessageInStore(a,{message:e,recipientRoles:t,type:r})})}sendDirectMessage(e,t,r){return n(this,null,function*(){let o=this.hmsSDKPeers[t],i=yield this.sdk.sendDirectMessage(e,o,r);this.updateMessageInStore(i,{message:e,recipientPeer:o.peerId,type:r})})}updateMessageInStore(e,t){if(!e)throw p.w("sendMessage","Failed to send message",t),Error(`sendMessage Failed - ${JSON.stringify(t)}`);let r=h.convertMessage(e);return r.read=!0,r.senderName="You",this.onHMSMessage(r),r}setMessageRead(e,t){this.setState(r=>{t?r.messages.byID[t]?r.messages.byID[t].read=e:this.logPossibleInconsistency("no message with id is found"):r.messages.allIDs.forEach(o=>{r.messages.byID[o].read=e})},"setMessageRead")}attachVideo(e,t){return n(this,null,function*(){if(this.localAndVideoUnmuting(e))return new Promise(r=>{let o=this.store.subscribe(i=>n(this,null,function*(){i&&(yield this.attachVideoInternal(e,t),o(),r())}),ge)});yield this.attachVideoInternal(e,t)})}detachVideo(e,t){return n(this,null,function*(){let r=this.hmsSDKTracks[e];r&&r.type==="video"?(yield r.removeSink(t),this.updateVideoLayer(e,"detachVideo")):this.logPossibleInconsistency("no video track found to remove sink")})}addPluginToVideoTrack(e,t){return n(this,null,function*(){return this.addRemoveVideoPlugin(e,"add",t)})}addPluginToAudioTrack(e){return n(this,null,function*(){return this.addRemoveAudioPlugin(e,"add")})}removePluginFromVideoTrack(e){return n(this,null,function*(){return this.addRemoveVideoPlugin(e,"remove")})}removePluginFromAudioTrack(e){return n(this,null,function*(){return this.addRemoveAudioPlugin(e,"remove")})}changeRole(e,t,r=!1){return n(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,r)})}acceptChangeRole(e){return n(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 r={requestedBy:t,role:e.role,token:e.token};yield this.sdk.acceptChangeRole(r),this.removeRoleChangeRequest(e)})}rejectChangeRole(e){this.removeRoleChangeRequest(e)}endRoom(e,t){return n(this,null,function*(){let r=this.store.getState(Fe);if(!(r==null?void 0:r.endRoom)){p.w("You are not allowed to perform this action - endRoom");return}yield this.sdk.endRoom(e,t)})}removePeer(e,t){return n(this,null,function*(){let r=this.hmsSDKPeers[e];if(r&&!r.isLocal)yield this.sdk.removePeer(r,t);else{this.logPossibleInconsistency(`No remote peer found for peerID - ${e}`);return}})}startRTMPOrRecording(e){return n(this,null,function*(){yield this.sdk.startRTMPOrRecording(e)})}stopRTMPAndRecording(){return n(this,null,function*(){yield this.sdk.stopRTMPAndRecording()})}startHLSStreaming(e){return n(this,null,function*(){yield this.sdk.startHLSStreaming(e)})}stopHLSStreaming(e){return n(this,null,function*(){yield this.sdk.stopHLSStreaming(e)})}changeName(e){return n(this,null,function*(){yield this.sdk.changeName(e)})}changeMetadata(e){return n(this,null,function*(){typeof e!="string"&&(e=JSON.stringify(e)),yield this.sdk.changeMetadata(e)})}setRemoteTrackEnabled(e,t){return n(this,null,function*(){if(typeof e=="string"){let r=this.hmsSDKTracks[e];r&&dt(r)?yield this.sdk.changeTrackState(r,t):this.logPossibleInconsistency(`No remote track with ID ${e} found for change track state`)}else Array.isArray(e)&&e.forEach(r=>this.setRemoteTrackEnabled(r,t))})}setRemoteTracksEnabled(e){return n(this,null,function*(){let t={enabled:e.enabled,type:e.type,source:e.source};if(e.roles){let r=this.store.getState(_);t.roles=e.roles.map(o=>r[o])}yield this.sdk.changeMultiTrackState(t)})}setLogLevel(e){p.level=e,this.sdk.setLogLevel(e)}resetState(e="resetState"){this.setState(t=>{Object.assign(t,te())},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)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})}onRemovedFromRoom(e){var r;let t=this.store.getState(U((r=e.requestedBy)==null?void 0:r.peerId));this.hmsNotifications.sendLeaveRoom($(j({},e),{requestedBy:t||void 0})),p.i("resetting state after peer removed",e),this.resetState(e.roomEnded||!t?"roomEnded":"removedFromRoom")}onDeviceChange(e){let t=e.devices;if(!t)return;let r=this.store.getState(A);if(this.setState(o=>{N(o.devices.audioInput,t.audioInput)||(o.devices.audioInput=t.audioInput),N(o.devices.videoInput,t.videoInput)||(o.devices.videoInput=t.videoInput),N(o.devices.audioOutput,t.audioOutput)||(o.devices.audioOutput=t.audioOutput),this.hmsSDKPeers[r==null?void 0:r.id]&&Object.assign(o.settings,this.getMediaSettings(this.hmsSDKPeers[r==null?void 0:r.id]))},"deviceChange"),e.selection){let o=h.convertDeviceChangeUpdate(e);this.hmsNotifications.sendDeviceChange(o)}}sdkPreviewWithListeners(e){return n(this,null,function*(){yield this.sdk.preview(e,{onPreview:this.onPreview.bind(this),onError:this.onError.bind(this),onDeviceChange:this.onDeviceChange.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})})}startScreenShare(e){return n(this,null,function*(){this.store.getState(Te)?this.logPossibleInconsistency("start screenshare is called while it's on"):(yield this.sdk.startScreenShare(()=>this.syncRoomState("screenshareStopped"),e),this.syncRoomState("startScreenShare"))})}stopScreenShare(){return n(this,null,function*(){this.store.getState(Te)?(yield this.sdk.stopScreenShare(),this.syncRoomState("stopScreenShare")):this.logPossibleInconsistency("stop screenshare is called while it's not on")})}attachVideoInternal(e,t){return n(this,null,function*(){let r=this.hmsSDKTracks[e];r&&r.type==="video"?(yield r.addSink(t),this.updateVideoLayer(e,"attachVideo")):this.logPossibleInconsistency("no video track found to add sink")})}syncRoomState(e){p.time(`store-sync-${e}`);let t={},r=[],o={},i={},a={},c=this.sdk.getPeers();for(let y of c){let w=h.convertPeer(y);t[w.id]=w,r.push(w.id),this.hmsSDKPeers[w.id]=y;let G=[y.audioTrack,y.videoTrack,...y.auxiliaryTracks];for(let ee of G){if(!ee)continue;let Ee=h.convertTrack(ee);o[Ee.id]=Ee,i[ee.trackId]=ee}w.isLocal&&Object.assign(a,this.getMediaSettings(y))}let S=this.sdk.getRecordingState(),P=this.sdk.getRTMPState(),V=this.sdk.getHLSState();this.setState(y=>{y.room.peers=r;let w=y.peers,G=y.tracks;Le(w,t),Oe(G,o),Object.assign(y.settings,a),this.hmsSDKTracks=i,Object.assign(y.roles,h.convertRoles(this.sdk.getRoles())),Object.assign(y.playlist,h.convertPlaylist(this.sdk.getPlaylistManager())),Object.assign(y.room,h.convertRecordingStreamingState(S,P,V))},e),p.timeEnd(`store-sync-${e}`)}onPreview(e){this.setState(t=>{Object.assign(t.room,h.convertRoom(e)),t.room.roomState=H.Preview},"previewStart"),this.syncRoomState("previewSync")}onJoin(e){let t=this.sdk.getPlaylistManager();this.audioPlaylist=new ne(t,M.audio,this.syncPlaylistState.bind(this),this.store),this.videoPlaylist=new ne(t,M.video,this.syncRoomState.bind(this),this.store),this.syncRoomState("joinSync"),this.setState(r=>{Object.assign(r.room,h.convertRoom(e)),r.room.isConnected=!0,r.room.roomState=H.Connected},"joined"),t.onProgress(this.setProgress),t.onNewTrackStart(r=>{this.syncPlaylistState(`${r.type}PlaylistUpdate`)}),t.onPlaylistEnded(r=>{this.syncPlaylistState(`${r}PlaylistEnded`)}),t.onCurrentTrackEnded(r=>{this.hmsNotifications.sendPlaylistTrackEnded(h.convertPlaylistItem(t,r)),this.syncPlaylistState(`${r.type}PlaylistItemEnded`)})}onRoomUpdate(e,t){this.setState(r=>{Object.assign(r.room,h.convertRoom(t))},"RoomUpdate")}onPeerUpdate(e,t){if(![v.BECAME_DOMINANT_SPEAKER,v.RESIGNED_DOMINANT_SPEAKER].includes(e)){if(Array.isArray(t)){this.syncRoomState("peersJoined");let r=[];for(let o of t){let i=this.store.getState(U(o.peerId));i&&r.push(i)}this.hmsNotifications.sendPeerList(r);return}this.sendPeerUpdateNotification(e,t)}}onTrackUpdate(e,t,r){if(e===b.TRACK_REMOVED)this.hmsNotifications.sendTrackUpdate(e,t.trackId),this.handleTrackRemove(t,r);else{let o=e===b.TRACK_ADDED?"trackAdded":"trackUpdate";this.syncRoomState(o),this.hmsNotifications.sendTrackUpdate(e,t.trackId)}}onMessageReceived(e){let t=h.convertMessage(e);t.read=!1,this.onHMSMessage(t),this.hmsNotifications.sendMessageReceived(t)}onHMSMessage(e){this.setState(t=>{e.id=String(this.store.getState($e)+1),t.messages.byID[e.id]=e,t.messages.allIDs.push(e.id)},"newMessage")}onAudioLevelUpdate(e){this.setState(t=>{let r={};e.forEach(i=>{if(!i.track||!i.peer)return;let a=i.track.trackId;r[a]=i.audioLevel,t.speakers[a]||(t.speakers[a]={audioLevel:i.audioLevel,peerID:i.peer.peerId,trackID:a})});let o=Object.entries(t.speakers);for(let[i,a]of o)a.audioLevel=r[i]||0,a.audioLevel===0&&delete t.speakers[i]},"audioLevel")}onChangeTrackStateRequest(e){var i;let t=this.store.getState(U((i=e.requestedBy)==null?void 0:i.peerId)),r=this.getStoreLocalTrackIDfromSDKTrack(e.track),o=this.store.getState(ae(r));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 i;let t=this.store.getState(U((i=e.requestedBy)==null?void 0:i.peerId));e.enabled||this.syncRoomState("changeMultiTrackStateRequest");let r=[],o=this.store.getState(T);for(let a of e.tracks){let c=this.getStoreLocalTrackIDfromSDKTrack(a);c&&o[c]&&r.push(o[c])}this.hmsNotifications.sendChangeMultiTrackStateRequest({requestedBy:t||void 0,tracks:r,enabled:e.enabled,type:e.type,source:e.source})}onReconnected(){this.syncRoomState("reconnectedSync"),this.hmsNotifications.sendReconnected(),this.setState(e=>{e.room.roomState=H.Connected},"reconnected")}onReconnecting(e){let t=h.convertException(e);p.e("Reconnection: received error from sdk",t),this.hmsNotifications.sendReconnecting(t),this.setState(r=>{r.room.roomState=H.Reconnecting,r.errors.push(t)},"reconnecting")}onError(e){let t=h.convertException(e);t.isTerminal?(this.leave().then(()=>p.e("error from SDK, left room.")),this.setState(r=>{r.room.roomState=H.Failed,r.errors.push(t)},"errorTerminal")):this.store.getState().errors.length<50&&this.setState(o=>{o.errors.push(t)},"error"),this.hmsNotifications.sendError(t),p.e("received error from sdk",t)}updateVideoLayer(e,t){let r=this.hmsSDKTracks[e];r&&r instanceof mt&&this.setState(o=>{o.tracks[e].layer=r.getSimulcastLayer()},t)}handleTrackRemove(e,t){this.setState(r=>{let o=r.peers[t.peerId],i=r.tracks,a=e.trackId;if(this.isSameStoreSDKTrack(a,o==null?void 0:o.audioTrack))o==null||delete o.audioTrack;else if(this.isSameStoreSDKTrack(a,o==null?void 0:o.videoTrack))o==null||delete o.videoTrack;else{let c=o==null?void 0:o.auxiliaryTracks.indexOf(a);c>-1&&this.isSameStoreSDKTrack(a,o==null?void 0:o.auxiliaryTracks[c])&&(o==null||o.auxiliaryTracks.splice(c,1))}delete i[a],delete this.hmsSDKTracks[a]},"trackRemoved")}setEnabledSDKTrack(e,t){return n(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setEnabled(t):this.logPossibleInconsistency(`track ${e} not present, unable to enabled/disable`)})}setSDKLocalVideoTrackSettings(e,t){return n(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}setSDKLocalAudioTrackSettings(e,t){return n(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}getMediaSettings(e){var i;let t=this.store.getState(Be),r=e.audioTrack,o=e.videoTrack;return{audioInputDeviceId:(r==null?void 0:r.settings.deviceId)||t.audioInputDeviceId,videoInputDeviceId:(o==null?void 0:o.settings.deviceId)||t.videoInputDeviceId,audioOutputDeviceId:(i=this.sdk.getAudioOutput().getDevice())==null?void 0:i.deviceId}}setTrackVolume(e,t){let r=this.hmsSDKTracks[t];r?r instanceof Gt?(r.setVolume(e),this.setState(o=>{let i=o.tracks[t];i&&(i.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(A).videoTrack!==e)return!1;let r=this.store.getState(je),o=this.store.getState(ge);return r&&!o}logPossibleInconsistency(e){p.w("possible inconsistency detected - ",e)}addRemoveVideoPlugin(e,t,r){return n(this,null,function*(){if(!e){p.w("Invalid plugin received in store");return}let o=this.store.getState(x);if(o){let i=this.hmsSDKTracks[o];i?(t==="add"?yield i.addPlugin(e,r):t==="remove"&&(yield i.removePlugin(e)),this.syncRoomState(`${t}VideoPlugin`)):this.logPossibleInconsistency(`track ${o} not present, unable to remove plugin`)}})}addRemoveAudioPlugin(e,t){return n(this,null,function*(){if(!e){p.w("Invalid plugin received in store");return}let r=this.store.getState(C);if(r){let o=this.hmsSDKTracks[r];o?(t==="add"?yield o.addPlugin(e):t==="remove"&&(yield o.removePlugin(e)),this.syncRoomState(`${t}AudioPlugin`)):this.logPossibleInconsistency(`track ${r} not present, unable to remove plugin`)}})}isSameStoreSDKTrack(e,t){var r;return t?((r=this.hmsSDKTracks[t])==null?void 0:r.trackId)===e:!1}onRoleChangeRequest(e){this.setState(t=>{t.roleChangeRequests.length===0&&t.roleChangeRequests.push(h.convertRoleChangeRequest(e))},"roleChangeRequest")}removeRoleChangeRequest(e){this.setState(t=>{let r=t.roleChangeRequests.findIndex(o=>o.token===e.token);r!==-1&&t.roleChangeRequests.splice(r,1)},"removeRoleChangeRequest")}onRoleUpdate(){this.syncRoomState("roleUpdate")}getStoreLocalTrackIDfromSDKTrack(e){return this.store.getState(qe).find(r=>this.hmsSDKTracks[r].trackId===e.trackId)}};import{EventEmitter2 as Jt}from"eventemitter2";var Re="hmsNotification",ve=class{constructor(e){this.id=0;this.onNotification=e=>(this.eventEmitter.addListener(Re,e),()=>{this.eventEmitter.removeListener(Re,e)});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 r;let t=this.createNotification(m.DEVICE_CHANGE_UPDATE,e,e.error?R.ERROR:R.INFO,`Selected ${e.type} device - ${(r=e.selection)==null?void 0:r.label}`);this.emitEvent(t)}sendLeaveRoom(e){var o;let t=(o=e.requestedBy)==null?void 0:o.name,r=this.createNotification(e.roomEnded||!t?m.ROOM_ENDED:m.REMOVED_FROM_ROOM,e,R.INFO,`${e.roomEnded?"Room ended":"Removed from room"} ${t?`by ${t}`:""}`);this.emitEvent(r)}sendPeerList(e){let t=this.createNotification(m.PEER_LIST,e,R.INFO);this.emitEvent(t)}sendPeerUpdate(e,t){let r=this.store.getState(U(t==null?void 0:t.id))||t,o=ut[e];if(o){let i=this.createNotification(o,r,R.INFO);this.emitEvent(i)}}sendTrackUpdate(e,t){let r=this.store.getState(ae(t)),o=Mt[e];if(o){let i=this.createNotification(o,r,R.INFO);this.emitEvent(i)}}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(Re,e)}createNotification(e,t,r,o=""){return this.id++,{id:this.id,type:e,message:o,data:t,severity:r}}};import{isBrowser as Yt}from"@100mslive/hms-video";var ce=s=>Yt?`${s} ${document.title}`:s;var ht=(s,e,t)=>{let r;t.getState(L)===H.Connected&&(r=gt(s,e,t)),t.subscribe(o=>{[H.Connected,H.Reconnecting].includes(o)?r||(r=gt(s,e,t)):r&&(zt(e),r())},L)},gt=(s,e,t)=>{var i;let r=Qt(t,e),o=(i=s.getWebrtcInternals())==null?void 0:i.onStatsChange(a=>Xt(e,a,t));return()=>{r(),o&&o()}},Qt=(s,e)=>{let t,r,o;return s.getState(q)?e.namedSetState(i=>{i.localPeer.id=s.getState(q)},"localpeer-id"):t=s.subscribe(i=>{i&&e.namedSetState(a=>{a.localPeer.id=i},"localpeer-id")},q),s.getState(x)?e.namedSetState(i=>{i.localPeer.videoTrack=s.getState(x)},"localpeer-videotrack-id"):r=s.subscribe(i=>{i&&e.namedSetState(a=>{a.localPeer.videoTrack=i},"localpeer-videotrack-id")},x),s.getState(C)?e.namedSetState(i=>{i.localPeer.videoTrack=s.getState(C)},"localpeer-audiotrack-id"):o=s.subscribe(i=>{i&&e.namedSetState(a=>{a.localPeer.videoTrack=i},"localpeer-audiotrack-id")},C),()=>{t==null||t(),r==null||r(),o==null||o()}},Xt=(s,e,t)=>{let r=t.getState(T);s.namedSetState(o=>{let i={},a=Object.keys(r);for(let P of a){let V=e.getTrackStats(P);V&&(i[P]=V)}de(o.trackStats,i);let S={[t.getState(q)]:e.getLocalPeerStats()};de(o.peerStats,S)},"webrtc-stats")},zt=(s,e="resetState")=>{s.namedSetState(t=>{Object.assign(t,se())},e)};var le=class{constructor(e,t){this.hmsStore=e;this.sdk=t;this.store=O.createNewHMSStore(ce("HMSStatsStore"),se),this.getState=this.store.getState,this.subscribe=this.store.subscribe,this.getPublishPeerConnection=()=>new Promise(r=>{var o,i;this.hmsStore.getState(L)==="Connected"?r((i=(o=this.sdk)==null?void 0:o.getWebrtcInternals())==null?void 0:i.getPublishPeerConnection()):this.hmsStore.subscribe(a=>{var c,S;a==="Connected"&&r((S=(c=this.sdk)==null?void 0:c.getWebrtcInternals())==null?void 0:S.getPublishPeerConnection())},L)}),this.getSubscribePeerConnection=()=>new Promise(r=>{var o,i;this.hmsStore.getState(L)==="Connected"?r((i=(o=this.sdk)==null?void 0:o.getWebrtcInternals())==null?void 0:i.getSubscribePeerConnection()):this.hmsStore.subscribe(a=>{var c,S;a==="Connected"&&r((S=(c=this.sdk)==null?void 0:c.getWebrtcInternals())==null?void 0:S.getSubscribePeerConnection())},L)}),!!this.sdk&&ht(this.sdk,this.store,this.hmsStore)}};var be={};Rt(be,{availablePublishBitrate:()=>cs,availableSubscribeBitrate:()=>ls,bitrateByTrackID:()=>ms,bytesReceivedByTrackID:()=>hs,framerateByTrackID:()=>gs,jitter:()=>is,jitterByTrackID:()=>Ts,localAudioTrackBitrate:()=>ys,localAudioTrackBytesSent:()=>fs,localAudioTrackStats:()=>De,localPeerStats:()=>K,localVideoTrackBitrate:()=>ks,localVideoTrackBytesSent:()=>Ps,localVideoTrackFramerate:()=>Rs,localVideoTrackQualityLimitationReason:()=>vs,localVideoTrackStats:()=>Z,packetsLost:()=>os,packetsLostByTrackID:()=>Hs,peerStatsByID:()=>Ms,publishBitrate:()=>as,subscribeBitrate:()=>ns,totalBytesReceived:()=>ds,totalBytesSent:()=>Ss,trackStatsByID:()=>ps});import{createSelector as g}from"reselect";var Zt=s=>s.localPeer.id,es=s=>s.localPeer.audioTrack,ts=s=>s.localPeer.videoTrack,ss=(s,e)=>e,rs=(s,e)=>e,Ie=s=>s.trackStats,Tt=s=>s.peerStats,K=g([Tt,Zt],(s,e)=>s[e]),os=g(K,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.packetsLost}),is=g(K,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.jitter}),as=g(K,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bitrate}),ns=g(K,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bitrate}),cs=g(K,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.availableOutgoingBitrate}),ls=g(K,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.availableIncomingBitrate}),Ss=g(K,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bytesSent}),ds=g(K,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bytesReceived}),us=g([Tt,ss],(s,e)=>e?s[e]:void 0),F=g([Ie,rs],(s,e)=>e?s[e]:void 0),Ms=u(us),ps=u(F),ms=u(g(F,s=>s==null?void 0:s.bitrate)),hs=u(g(F,s=>s==null?void 0:s.bytesReceived)),gs=u(g(F,s=>s==null?void 0:s.framesPerSecond)),Ts=u(g(F,s=>s==null?void 0:s.jitter)),Hs=u(g(F,s=>s==null?void 0:s.packetsLost)),De=g([Ie,es],(s,e)=>e?s[e]:void 0),Z=g([Ie,ts],(s,e)=>e?s[e]:void 0),ys=g(De,s=>s==null?void 0:s.bitrate),ks=g(Z,s=>s==null?void 0:s.bitrate),fs=g(De,s=>s==null?void 0:s.bytesSent),Ps=g(Z,s=>s==null?void 0:s.bytesSent),Rs=g(Z,s=>s==null?void 0:s.framesPerSecond),vs=g(Z,s=>s==null?void 0:s.qualityLimitationReason);var O=class{constructor(e,t,r){this.getStats=()=>(this.stats||(this.stats=new le(this.store,this.sdk)),this.stats);e?this.store=e:this.store=O.createNewHMSStore(ce("HMSStore"),te),r?this.notifications=r:this.notifications=new ve(this.store),t?this.actions=t:(this.sdk=new Es,this.actions=new Pe(this.store,this.sdk,this.notifications)),this.initialTriggerOnSubscribe=!1,window.__hms=this}triggerOnSubscribe(){this.initialTriggerOnSubscribe||(O.makeStoreTriggerOnSubscribe(this.store),this.initialTriggerOnSubscribe=!0)}getStore(){return this.store}getHMSActions(){return this.actions}getActions(){return this.actions}getNotifications(){return{onNotification:this.notifications.onNotification}}static createNewHMSStore(e,t){let r=Ds(()=>t()),o=r.setState;r.setState=c=>{let S=typeof c=="function"?Is(c):c;o(S)};let i=r.getState;r.getState=c=>{if(c){let S=c.name||"byIDSelector";window.selectorsCount||(window.selectorsCount={}),window.selectorsCount[S]=(window.selectorsCount[S]||0)+1;let P=performance.now(),V=c(i()),y=performance.now()-P;return y>1&&(window.expensiveSelectors=window.expensiveSelectors||new Map,window.expensiveSelectors.set(S,y)),V}return i()},O.useShallowCheckInSubscribe(r);let a=O.setUpDevtools(r,e);return $(j({},r),{namedSetState:a})}static makeStoreTriggerOnSubscribe(e){let t=e.subscribe;e.subscribe=(r,o,i)=>(r(e.getState(o),void 0),t(r,o,i))}static useShallowCheckInSubscribe(e){let t=e.subscribe;e.subscribe=(r,o,i)=>(o||(o=a=>a),i=i||bs,t(r,o,i))}static setUpDevtools(e,t){let r;try{r=window.__REDUX_DEVTOOLS_EXTENSION__||window.top.__REDUX_DEVTOOLS_EXTENSION__}catch(a){}if(!r)return a=>{e.setState(a)};let o=r.connect(O.devtoolsOptions(t));o.prefix=t?`${t} > `:"";let i=e.setState;return e.setState=a=>{i(a),o.send(`${o.prefix}setState`,e.getState())},o.subscribe(O.devtoolsSubscribe(o,e,i)),o.send("setUpStore",e.getState()),(a,c)=>{i(a);let S=c||`${o.prefix}action`;o.send(S,e.getState())}}static devtoolsOptions(e){return{name:e,actionsBlacklist:["audioLevel","playlistProgress"]}}static devtoolsSubscribe(e,t,r){return o=>{var i,a,c,S;if(o.type==="DISPATCH"&&o.state)["JUMP_TO_ACTION","JUMP_TO_STATE"].includes(o.payload.type)?r(JSON.parse(o.state)):t.setState(JSON.parse(o.state));else if(o.type==="DISPATCH"&&((i=o.payload)==null?void 0:i.type)==="COMMIT")e.init(t.getState());else if(o.type==="DISPATCH"&&((a=o.payload)==null?void 0:a.type)==="IMPORT_STATE"){let P=(c=o.payload.nextLiftedState)==null?void 0:c.actionsById;(((S=o.payload.nextLiftedState)==null?void 0:S.computedStates)||[]).forEach(({state:y},w)=>{let G=P[w]||`${e.prefix}setState`;w===0?e.init(y):(r(y),e.send(G,t.getState()))})}}}};export{vt as HMSAudioPluginType,k as HMSLogLevel,xe as HMSMessageType,R as HMSNotificationSeverity,m as HMSNotificationTypes,M as HMSPlaylistType,O as HMSReactiveStore,H as HMSRoomState,le as HMSStats,It as HMSVideoPluginType,se as createDefaultStatsStore,te as createDefaultStoreState,tt as selectAudioPlaylist,wo as selectAudioPlaylistTrackByPeerID,Ut as selectAudioTrackByPeerID,ct as selectAudioTrackVolume,Bo as selectAudioVolumeByPeerID,xo as selectAuxiliaryAudioByPeerID,Eo as selectAuxiliaryTracksByPeerID,io as selectAvailableRoleNames,Kt as selectBroadcastMessages,$o as selectBroadcastMessagesUnreadCount,bo as selectCameraStreamByPeerID,so as selectDegradedTracks,Wr as selectDevices,Yr as selectDominantSpeaker,lo as selectHLSState,oe as selectHMSMessages,$e as selectHMSMessagesCount,be as selectHMSStats,si as selectIsAllowedToPublish,ao as selectIsAllowedToSubscribe,nt as selectIsAudioLocallyMuted,Fr as selectIsConnectedToRoom,oo as selectIsInPreview,Qr as selectIsLocalAudioEnabled,ci as selectIsLocalAudioPluginPresent,Te as selectIsLocalScreenShared,je as selectIsLocalVideoDisplayEnabled,ge as selectIsLocalVideoEnabled,ni as selectIsLocalVideoPluginPresent,Ko as selectIsLocallyMutedByPeerID,Uo as selectIsPeerAudioEnabled,_o as selectIsPeerVideoEnabled,Vo as selectIsScreenShareLocallyMutedByPeerID,Xr as selectIsSomeoneScreenSharing,C as selectLocalAudioTrackID,Be as selectLocalMediaSettings,A as selectLocalPeer,q as selectLocalPeerID,ie as selectLocalPeerRole,qe as selectLocalTrackIDs,x as selectLocalVideoTrackID,Ve as selectMessageIDsInOrder,Wo as selectMessagesByPeerID,Fo as selectMessagesByRole,Ke as selectMessagesMap,Jo as selectMessagesUnreadCountByPeerID,Go as selectMessagesUnreadCountByRole,Co as selectPeerAudioByID,U as selectPeerByID,Gr as selectPeerCount,Qo as selectPeerMetadata,Do as selectPeerNameByID,Ot as selectPeerScreenSharing,zr as selectPeerSharingAudio,to as selectPeerSharingAudioPlaylist,eo as selectPeerSharingVideoPlaylist,he as selectPeers,Yo as selectPeersByRole,D as selectPeersMap,Zr as selectPeersScreenSharing,ei as selectPeersWithAudioStatus,Fe as selectPermissions,co as selectRTMPState,no as selectRecordingState,Jr as selectRemotePeers,ai as selectRoleByRoleName,ti as selectRoleChangeRequest,_ as selectRolesMap,E as selectRoom,uo as selectRoomStartTime,We as selectRoomStarted,L as selectRoomState,at as selectScreenShareAudioByPeerID,No as selectScreenShareByPeerID,it as selectScreenSharesByPeerId,qo as selectScreenshareAudioVolumeByPeerID,So as selectSessionId,jo as selectSimulcastLayerByTrack,Ct as selectSpeakers,Ao as selectTrackAudioByID,ae as selectTrackByID,T as selectTracksMap,ro as selectUnreadHMSMessagesCount,st as selectVideoPlaylist,Oo as selectVideoPlaylistAudioTrackByPeerID,Lo as selectVideoPlaylistVideoTrackByPeerID,Nt as selectVideoTrackByPeerID};
|
|
1
|
+
var Se=Object.defineProperty,Ht=Object.defineProperties;var yt=Object.getOwnPropertyDescriptors;var Ae=Object.getOwnPropertySymbols;var kt=Object.prototype.hasOwnProperty,ft=Object.prototype.propertyIsEnumerable;var Ce=(s,e,t)=>e in s?Se(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,j=(s,e)=>{for(var t in e||(e={}))kt.call(e,t)&&Ce(s,t,e[t]);if(Ae)for(var t of Ae(e))ft.call(e,t)&&Ce(s,t,e[t]);return s},$=(s,e)=>Ht(s,yt(e)),Pt=s=>Se(s,"__esModule",{value:!0});var Rt=(s,e)=>{Pt(s);for(var t in e)Se(s,t,{get:e[t],enumerable:!0})};var n=(s,e,t)=>new Promise((r,o)=>{var i=S=>{try{c(t.next(S))}catch(P){o(P)}},a=S=>{try{c(t.throw(S))}catch(P){o(P)}},c=S=>S.done?r(S.value):Promise.resolve(S.value).then(i,a);c((t=t.apply(s,e)).next())});import Is from"immer";import Ds from"zustand/vanilla";import bs from"zustand/shallow";import{HMSSdk as Es}from"@100mslive/hms-video";var H;(function(a){a.Disconnected="Disconnected",a.Preview="Preview",a.Connecting="Connecting",a.Connected="Connected",a.Reconnecting="Reconnecting",a.Failed="Failed"})(H||(H={}));var te=()=>({room:{id:"",isConnected:!1,name:"",peers:[],shareableLink:"",localPeer:"",hasWaitingRoom:!1,roomState:H.Disconnected,recording:{browser:{running:!1},server:{running:!1}},rtmp:{running:!1},hls:{running:!1,variants:[]},sessionId:""},peers:{},tracks:{},playlist:{audio:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1},video:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1}},messages:{byID:{},allIDs:[]},speakers:{},settings:{audioInputDeviceId:"",audioOutputDeviceId:"",videoInputDeviceId:""},devices:{audioInput:[],audioOutput:[],videoInput:[]},roles:{},roleChangeRequests:[],errors:[]}),se=()=>({peerStats:{},trackStats:{},localPeer:{id:""}});var xe;(function(e){e.CHAT="chat"})(xe||(xe={}));var R;(function(r){r.INFO="info",r.ERROR="error",r.CRITICAL="critical"})(R||(R={}));var m;(function(l){l.PEER_JOINED="PEER_JOINED",l.PEER_LEFT="PEER_LEFT",l.PEER_LIST="PEER_LIST",l.NEW_MESSAGE="NEW_MESSAGE",l.ERROR="ERROR",l.RECONNECTING="RECONNECTING",l.RECONNECTED="RECONNECTED",l.TRACK_ADDED="TRACK_ADDED",l.TRACK_REMOVED="TRACK_REMOVED",l.TRACK_MUTED="TRACK_MUTED",l.TRACK_UNMUTED="TRACK_UNMUTED",l.TRACK_DEGRADED="TRACK_DEGRADED",l.TRACK_RESTORED="TRACK_RESTORED",l.ROLE_CHANGE_REQUEST="ROLE_CHANGE_REQUEST",l.ROLE_UPDATED="ROLE_UPDATED",l.CHANGE_TRACK_STATE_REQUEST="CHANGE_TRACK_STATE_REQUEST",l.CHANGE_MULTI_TRACK_STATE_REQUEST="CHANGE_MULTI_TRACK_STATE_REQUEST",l.ROOM_ENDED="ROOM_ENDED",l.REMOVED_FROM_ROOM="REMOVED_FROM_ROOM",l.DEVICE_CHANGE_UPDATE="DEVICE_CHANGE_UPDATE",l.PLAYLIST_TRACK_ENDED="PLAYLIST_TRACK_ENDED",l.NAME_UPDATED="NAME_UPDATED",l.METADATA_UPDATED="METADATA_UPDATED"})(m||(m={}));var M;(function(t){t.audio="audio",t.video="video"})(M||(M={}));import{HMSException as Ks,HMSSimulcastLayer as Vs,HMSPeerUpdate as v,HMSRoomUpdate as Bs,HMSTrackUpdate as b,HMSLogLevel as k,HMSAudioPluginType as vt,HMSVideoPluginType as It}from"@100mslive/hms-video";import{HMSLocalAudioTrack as we,HMSLocalVideoTrack as Ne,HMSRemoteAudioTrack as bt,HMSRemoteVideoTrack as Et}from"@100mslive/hms-video";var Le=(s,e)=>{let t=me(Object.keys(s),Object.keys(e));for(let r of t){let o=s[r],i=e[r];ue(o,i)?(N(o.auxiliaryTracks,i.auxiliaryTracks)&&(i.auxiliaryTracks=o.auxiliaryTracks),Object.assign(o,i)):Me(o,i)?delete s[r]:pe(o,i)&&(s[r]=i)}},Oe=(s,e)=>{let t=me(Object.keys(s),Object.keys(e));for(let r of t){let o=s[r],i=e[r];ue(o,i)?(Dt(o,i),Object.assign(o,i)):Me(o,i)?delete s[r]:pe(o,i)&&(s[r]=i)}},de=(s,e)=>{let t=me(Object.keys(s),Object.keys(e));for(let r of t){let o=s[r],i=e[r];ue(o,i)?Object.assign(o,i):Me(o,i)?delete s[r]:pe(o,i)&&(s[r]=i)}},Dt=(s,e)=>{s.plugins&&N(s.plugins,e.plugins)&&(e.plugins=s.plugins),s.layerDefinitions&&N(s.layerDefinitions,e.layerDefinitions)&&(e.layerDefinitions=s.layerDefinitions)},ue=(s,e)=>s&&e,Me=(s,e)=>s&&!e,pe=(s,e)=>!s&&e,N=(s,e)=>{if(s===e||s.length===0&&(e==null?void 0:e.length)===0)return!0;if(!s||!e||s.length!==e.length)return!1;for(let t=0;t<s.length;t++)if(s[t]!==e[t])return!1;return!0},me=(s,e)=>{let t=new Set;for(let r of s)t.add(r);for(let r of e)t.add(r);return Array.from(t)};var h=class{static convertPeer(e){var t,r,o;return{id:e.peerId,name:e.name,roleName:(t=e.role)==null?void 0:t.name,isLocal:e.isLocal,videoTrack:(r=e.videoTrack)==null?void 0:r.trackId,audioTrack:(o=e.audioTrack)==null?void 0:o.trackId,auxiliaryTracks:e.auxiliaryTracks.map(i=>i.trackId),customerUserId:e.customerUserId,customerDescription:e.metadata,metadata:e.metadata}}static convertTrack(e,t){let r={id:e.trackId,source:e.source,type:e.type,enabled:e.enabled,displayEnabled:e.enabled,peerId:e.peerId||t};return this.enrichTrack(r,e),r}static enrichTrack(e,t){let r=t.getMediaTrackSettings();e.source==="screen"&&e.type==="video"&&(e.displaySurface=r.displaySurface),e.height=r.height,e.width=r.width,t instanceof bt&&(e.volume=t.getVolume()||0),h.updateDeviceID(e,t),h.enrichVideoTrack(e,t),h.enrichPluginsDetails(e,t)}static updateDeviceID(e,t){var r;t instanceof Ne||t instanceof we?e.deviceID=t.settings.deviceId:e.deviceID=(r=t.getMediaTrackSettings())==null?void 0:r.deviceId}static enrichVideoTrack(e,t){t instanceof Et&&(e.layer=t.getSimulcastLayer(),e.degraded=t.degraded,N(t.getSimulcastDefinitions(),e.layerDefinitions)||(e.layerDefinitions=t.getSimulcastDefinitions()))}static enrichPluginsDetails(e,t){(t instanceof Ne||t instanceof we)&&(N(t.getPlugins(),e.plugins)||(e.plugins=t.getPlugins()))}static convertRoom(e){var t,r,o,i,a,c,S;return{id:e.id,name:e.name,localPeer:(r=(t=e.localPeer)==null?void 0:t.peerId)!=null?r:"",hasWaitingRoom:e.hasWaitingRoom,shareableLink:e.shareableLink,recording:{browser:{running:!!((o=e.recording)==null?void 0:o.browser.running)},server:{running:!!((i=e.recording)==null?void 0:i.server.running)}},rtmp:{running:!!((a=e.rtmp)==null?void 0:a.running)},hls:{running:!!((c=e.hls)==null?void 0:c.running),variants:((S=e.hls)==null?void 0:S.variants)||[]},sessionId:e.sessionId,startedAt:e.startedAt&&new Date(e.startedAt)}}static convertMessage(e){var t,r,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:(r=e.recipientPeer)==null?void 0:r.peerId,recipientRoles:(o=e.recipientRoles)==null?void 0:o.map(i=>i.name),time:e.time,type:e.type,message:e.message}}static convertRoles(e){let t={};return e&&e.forEach(r=>{t[r.name]=r}),t}static convertRoleChangeRequest(e){var t;return{requestedBy:(t=e.requestedBy)==null?void 0:t.peerId,roleName:e.role.name,token:e.token}}static convertException(e){return{code:e.code,action:e.action,name:e.name,message:e.message,description:e.description,isTerminal:e.isTerminal,nativeError:e.nativeError,timestamp:new Date}}static convertDeviceChangeUpdate(e){let t={devices:e.devices,selection:e.selection,type:e.type};return e.error&&(t.error=this.convertException(e.error)),t}static convertPlaylist(e){let t=this.getConvertedPlaylistType(e,M.audio),r=this.getConvertedPlaylistType(e,M.video);return{audio:t,video:r}}static convertPlaylistItem(e,t){let r=t.type,o=e.getCurrentSelection(r),i=e.isPlaying(r),a=t.url===(o==null?void 0:o.url);return $(j({},t),{type:t.type,selected:a,playing:a&&i})}static getConvertedPlaylistType(e,t){let r={},o=e.getCurrentSelection(t),i=e.getCurrentProgress(t),a=e.getVolume(t),c=e.getList(t),S=e.getCurrentIndex(t);return e.getList(t).forEach(P=>{r[P.id]=h.convertPlaylistItem(e,P)}),{list:r,selection:{id:o==null?void 0:o.id,hasPrevious:S>0,hasNext:S<c.length-1},progress:i,volume:a,currentTime:e.getCurrentTime(t),playbackRate:e.getPlaybackRate(t)}}static convertRecordingStreamingState(e,t,r){var o,i;return{recording:{browser:{running:!!((o=e==null?void 0:e.browser)==null?void 0:o.running)},server:{running:!!((i=e==null?void 0:e.server)==null?void 0:i.running)}},rtmp:{running:!!(t==null?void 0:t.running)},hls:{variants:(r==null?void 0:r.variants)||[],running:!!(r==null?void 0:r.running)}}}};import{createSelector as d}from"reselect";function B(s,e,t=At){let r,o;if(e)for(let i of e.auxiliaryTracks){let a=s[i];t(a)&&(o=J(a)?a:o,r=Y(a)?a:r)}return{video:r,audio:o}}function J(s){return s&&s.type==="audio"}function Y(s){return s&&s.type==="video"}function At(s){return s&&s.source==="screen"}function re(s){return s&&s.source==="audioplaylist"}function Q(s){return s&&s.source==="videoplaylist"}function Ue(s){return Boolean(s==null?void 0:s.degraded)}function F(s,e){return e&&s.tracks[e]?s.tracks[e].enabled:!1}function _e(s,e){return e&&s.tracks[e]?s.tracks[e].displayEnabled:!1}var E=s=>s.room,D=s=>s.peers,Ke=s=>s.messages.byID,Ve=s=>s.messages.allIDs,T=s=>s.tracks,Be=s=>s.settings,Fr=s=>s.devices,Ct=s=>s.speakers,Wr=d([E],s=>s&&s.isConnected),Gr=d(E,s=>s.peers.length),he=d([E,D],(s,e)=>s.peers.map(t=>e[t])),xt=d(T,s=>Object.values(s)),A=d(E,D,(s,e)=>e[s.localPeer]),q=d(E,s=>s.localPeer),C=d(A,s=>s==null?void 0:s.audioTrack),x=d(A,s=>s==null?void 0:s.videoTrack),Lt=d(A,s=>s==null?void 0:s.auxiliaryTracks),qe=d([C,x,Lt],(s,e,t)=>{let r=[...t];return s&&r.unshift(s),e&&r.unshift(e),r}),Jr=d(he,s=>s.filter(e=>!e.isLocal)),Yr=d(D,Ct,(s,e)=>{let t=Object.entries(e).sort((r,o)=>{var c,S;let i=((c=r[1])==null?void 0:c.audioLevel)||0;return(((S=o[1])==null?void 0:S.audioLevel)||0)>i?1:-1});if(t.length>0&&t[0][1].audioLevel&&t[0][1].audioLevel>0){let r=t[0][1].peerID;if(r in s)return s[r]}return null}),Qr=s=>{let e=A(s);return F(s,e==null?void 0:e.audioTrack)},ge=s=>{let e=A(s);return F(s,e==null?void 0:e.videoTrack)},je=s=>{let e=A(s);return _e(s,e==null?void 0:e.videoTrack)},Te=d(A,T,(s,e)=>{let{video:t,audio:r}=B(e,s);return!!(t||r)}),Ot=d(D,T,(s,e)=>{let t;for(let r in s){let o=s[r],{video:i,audio:a}=B(e,o);if(i)return o;a&&!t&&(t=o)}return t}),Xr=d(Ot,s=>!!s),zr=d(D,T,(s,e)=>{for(let t in s){let r=s[t],{audio:o,video:i}=B(e,r);if(!i&&!!o)return r}}),Zr=d(D,T,(s,e)=>{let t=[],r=[];for(let o in s){let i=s[o],{video:a,audio:c}=B(e,i);a?t.push(i):c&&r.push(i)}return t.concat(r)}),eo=d(D,T,(s,e)=>{for(let t in e){let r=e[t];if(Q(r)&&Y(r)&&r.peerId)return s[r.peerId]}}),to=d(D,T,(s,e)=>{for(let t in e){let r=e[t];if(re(r)&&r.peerId)return s[r.peerId]}}),so=d(xt,s=>s.filter(Ue)),$e=d(Ve,s=>s.length),ro=d(Ke,s=>Object.values(s).filter(e=>!e.read).length),oe=d(Ve,Ke,(s,e)=>{let t=[];return s.forEach(r=>{t.push(e[r])}),t}),L=d([E],s=>s&&s.roomState),oo=d(L,s=>s===H.Preview),Fe=d(E,s=>s.roomState!==H.Disconnected),_=s=>s.roles,io=d([_],s=>Object.keys(s)),ie=d([A,_],(s,e)=>(s==null?void 0:s.roleName)?e[s.roleName]:null),ao=d([ie],s=>{var e;return((e=s==null?void 0:s.subscribeParams)==null?void 0:e.subscribeToRoles)?s.subscribeParams.subscribeToRoles.length>0:!1}),We=d(ie,s=>s==null?void 0:s.permissions),no=d(E,s=>s.recording),co=d(E,s=>s.rtmp),lo=d(E,s=>s.hls),So=d(E,s=>s.sessionId),uo=d(E,s=>s.startedAt);import{createSelector as Ge}from"reselect";var Je=(s=M.audio)=>e=>e.playlist[s].list,He=(s=M.audio)=>e=>e.playlist[s].selection,Ye=(s=M.audio)=>e=>e.playlist[s].progress,Qe=(s=M.audio)=>e=>e.playlist[s].currentTime,Xe=(s=M.audio)=>e=>e.playlist[s].playbackRate,ze=(s=M.audio)=>e=>e.playlist[s].volume,Ze=(s=M.audio)=>Ge(Je(s),e=>Object.values(e)),et=(s=M.audio)=>Ge(Je(s),He(s),(e,t)=>{if(!!t.id)return e[t.id]}),tt={selection:He(M.audio),progress:Ye(M.audio),currentTime:Qe(M.audio),playbackRate:Xe(M.audio),volume:ze(M.audio),list:Ze(M.audio),selectedItem:et(M.audio)},st={selection:He(M.video),progress:Ye(M.video),currentTime:Qe(M.video),playbackRate:Xe(M.video),volume:ze(M.video),list:Ze(M.video),selectedItem:et(M.video)};import{createSelector as f}from"reselect";function u(s){return e=>t=>s(t,e)}var X="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(X,...t);break}case k.DEBUG:{console.debug(X,...t);break}case k.INFO:{console.info(X,...t);break}case k.WARN:{console.warn(X,...t);break}case k.ERROR:{console.error(X,...t);break}case k.TIME:{performance.mark(t[1]);break}case k.TIMEEND:{let r=t[0],o=t[1];try{let i=performance.measure(o,o);this.log(k.DEBUG,r,o,i==null?void 0:i.duration),performance.clearMarks(o),performance.clearMeasures(o)}catch(i){this.log(k.DEBUG,r,o,i)}break}}}};p.level=k.VERBOSE;var ye=(s,e)=>e,wt=(s,e)=>e,rt=(s,e)=>e,I=f([D,ye],(s,e)=>e?s[e]:null),ke=f([T,wt],(s,e)=>e?s[e]:null),U=u(I),Do=u(f(I,s=>s==null?void 0:s.name)),ae=u(ke),Nt=u((s,e)=>{let t=I(s,e);if(t&&t.videoTrack&&t.videoTrack!=="")return s.tracks[t.videoTrack]}),Ut=u((s,e)=>{let t=I(s,e);if(t&&t.audioTrack&&t.audioTrack!=="")return s.tracks[t.audioTrack]}),bo=Nt,Eo=u((s,e)=>{let t=I(s,e);return(t==null?void 0:t.auxiliaryTracks.map(r=>s.tracks[r]))||[]}),ot=(s,e)=>e?s.speakers[e]:null,Ao=u(f(ot,s=>(s==null?void 0:s.audioLevel)||0)),_t=(s,e)=>{let t=Ut(e)(s);return ot(s,t==null?void 0:t.id)},Co=u(f(_t,s=>(s==null?void 0:s.audioLevel)||0)),xo=u((s,e)=>{let t=I(s,e);if(t){let r=t==null?void 0:t.auxiliaryTracks.find(o=>J(s.tracks[o]));return r?s.tracks[r]:void 0}}),Lo=u(f(T,I,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let o=s[r];return Q(o)&&Y(o)});return t?s[t]:void 0})),Oo=u(f(T,I,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let o=s[r];return Q(o)&&J(o)});return t?s[t]:void 0})),wo=u(f(T,I,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let o=s[r];return re(o)&&J(o)});return t?s[t]:void 0})),it=u(f(T,I,(s,e)=>B(s,e))),No=s=>f(it(s),e=>e.video),at=s=>f(it(s),e=>e.audio),Uo=u((s,e)=>{let t=I(s,e);return F(s,t==null?void 0:t.audioTrack)}),_o=u((s,e)=>{let t=I(s,e);return F(s,t==null?void 0:t.videoTrack)}),nt=u((s,e)=>{if(e&&s.tracks[e])return s.tracks[e].volume===0}),Ko=u((s,e)=>{let t=I(s,e);return nt(t==null?void 0:t.audioTrack)(s)}),Vo=u((s,e)=>{let t=at(e)(s);return nt(t==null?void 0:t.id)(s)}),ct=u((s,e)=>{let t=ke(s,e);if(t){if(t.type!=="audio"){p.w("Please pass audio track here");return}return t.volume}}),Bo=u((s,e)=>{let t=I(s,e);return ct(t==null?void 0:t.audioTrack)(s)}),qo=u((s,e)=>{let t=at(e)(s);return ct(t==null?void 0:t.id)(s)}),jo=u((s,e)=>{let t=ke(s,e);if(t){if(t.type!=="video"){p.w("Please pass video track here");return}return t.layer}}),lt=f([oe,q,ye],(s,e,t)=>{if(!!t)return s.filter(r=>{var o;return!r.recipientPeer&&!((o=r.recipientRoles)==null?void 0:o.length)||![e,t].includes(r.sender)?!1:[e,t].includes(r.recipientPeer)})}),St=f([oe,rt],(s,e)=>{if(!!e)return s.filter(t=>{var r,o;return((r=t.recipientRoles)==null?void 0:r.length)?(o=t.recipientRoles)==null?void 0:o.includes(e):!1})}),Kt=f(oe,s=>s.filter(e=>{var t;return!e.recipientPeer&&!((t=e.recipientRoles)==null?void 0:t.length)})),Vt=f([St,rt],s=>s?s.filter(e=>!e.read).length:0),Bt=f([lt,ye],s=>s?s.filter(e=>!e.read).length:0),$o=f(Kt,s=>s.filter(e=>!e.read).length),Fo=u(lt),Wo=u(St),Go=u(Vt),Jo=u(Bt),Yo=s=>f([he],e=>e.filter(t=>t.roleName===s)),Qo=s=>f(U(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 ei=fe([D,T],(s,e)=>Object.values(s).map(r=>{var o;return{peer:r,isAudioEnabled:r.audioTrack?(o=e[r.audioTrack])==null?void 0:o.enabled:!1}})),qt=s=>s.roleChangeRequests[0]||null,ti=fe([qt,D,_],(s,e,t)=>s?{requestedBy:s.requestedBy?e[s.requestedBy]:void 0,role:t[s.roleName],token:s.token}:null),si=fe([ie],s=>{var o;let e=!1,t=!1,r=!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"),r=s.publishParams.allowed.includes("screen")),{video:e,audio:t,screen:r}});import{createSelector as z}from"reselect";var ai=s=>z([_],e=>e[s]),jt=z([x,T],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),$t=z([C,T],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),ni=s=>z([jt],e=>e.includes(s)),ci=s=>z([$t],e=>e.includes(s));import{HMSAudioTrack as Gt,HMSRemoteVideoTrack as mt}from"@100mslive/hms-video";import{HMSRemoteAudioTrack as Ft,HMSRemoteVideoTrack as Wt}from"@100mslive/hms-video";function dt(s){return s instanceof Ft||s instanceof Wt}var ne=class{constructor(e,t,r,o){this.playlistManager=e;this.syncPlaylistState=r;this.store=o;this.type=t}play(e){return n(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 n(this,null,function*(){let e=this.type===M.audio?tt:st,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 n(this,null,function*(){yield this.playlistManager.playNext(this.type)})}playPrevious(){return n(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 n(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 ut={[v.PEER_JOINED]:m.PEER_JOINED,[v.PEER_LEFT]:m.PEER_LEFT,[v.ROLE_UPDATED]:m.ROLE_UPDATED,[v.AUDIO_TOGGLED]:"PEER_AUDIO_UPDATED",[v.VIDEO_TOGGLED]:"PEER_VIDEO_UPDATED",[v.NAME_UPDATED]:m.NAME_UPDATED,[v.METADATA_UPDATED]:m.METADATA_UPDATED},Mt={[b.TRACK_ADDED]:m.TRACK_ADDED,[b.TRACK_REMOVED]:m.TRACK_REMOVED,[b.TRACK_MUTED]:m.TRACK_MUTED,[b.TRACK_UNMUTED]:m.TRACK_UNMUTED,[b.TRACK_DEGRADED]:m.TRACK_DEGRADED,[b.TRACK_RESTORED]:m.TRACK_RESTORED},pt={[v.PEER_JOINED]:"peerJoined",[v.PEER_LEFT]:"peerLeft",[v.NAME_UPDATED]:"peerNameUpdated",[v.METADATA_UPDATED]:"peerMetadataUpdated"};var Pe=class{constructor(e,t,r){this.hmsSDKTracks={};this.hmsSDKPeers={};this.isRoomJoinCalled=!1;this.setProgress=({type:e,progress:t})=>{this.setState(r=>{r.playlist[e].progress=t,r.playlist[e].currentTime=this.sdk.getPlaylistManager().getCurrentTime(e)},"playlistProgress")};this.syncPlaylistState=e=>{this.setState(t=>{Object.assign(t.playlist,h.convertPlaylist(this.sdk.getPlaylistManager()))},e)};this.sendPeerUpdateNotification=(e,t)=>{let r=this.store.getState(U(t.peerId)),o="peerUpdate";o=pt[e],this.syncRoomState(o),r||(r=this.store.getState(U(t.peerId))),this.hmsNotifications.sendPeerUpdate(e,r)};this.setState=(e,t)=>this.store.namedSetState(e,t);this.store=e,this.sdk=t,this.hmsNotifications=r}unblockAudio(){return n(this,null,function*(){yield this.sdk.getAudioOutput().unblockAutoplay()})}setVolume(e,t){t?this.setTrackVolume(e,t):(this.sdk.getAudioOutput().setVolume(e),this.syncRoomState("setOutputVolume"))}setAudioOutputDevice(e){this.sdk.getAudioOutput().setDevice(e)&&this.setState(r=>{r.settings.audioOutputDeviceId=e},"setAudioOutputDevice")}setPreferredLayer(e,t){let r=this.hmsSDKTracks[e];r?r instanceof mt?(r.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 n(this,null,function*(){if(this.isRoomJoinCalled){this.logPossibleInconsistency("attempting to call preview after join was called");return}let t=this.store.getState(L);if(t===H.Preview||t===H.Connecting){this.logPossibleInconsistency("attempting to call preview while room is in preview/connecting");return}try{this.setState(r=>{r.room.roomState=H.Connecting},"connecting"),yield this.sdkPreviewWithListeners(e)}catch(r){throw p.e("Cannot show preview. Failed to connect to room - ",r),r}})}join(e){if(this.isRoomJoinCalled){this.logPossibleInconsistency("room join is called again");return}try{this.sdkJoinWithListeners(e),this.isRoomJoinCalled=!0,this.setState(t=>{t.room.roomState=H.Connecting},"join")}catch(t){throw this.isRoomJoinCalled=!1,p.e("Failed to connect to room - ",t),t}}leave(){return n(this,null,function*(){if(!this.store.getState(Fe)){this.logPossibleInconsistency("room leave is called when no room is connected");return}return this.sdk.leave().then(()=>{this.resetState("leave"),p.i("left room")}).catch(t=>{p.e("error in leaving room - ",t)})})}setScreenShareEnabled(e,t){return n(this,null,function*(){e?yield this.startScreenShare(t):yield this.stopScreenShare()})}addTrack(e,t="regular"){return n(this,null,function*(){yield this.sdk.addTrack(e,t),this.syncRoomState("addTrack")})}removeTrack(e){return n(this,null,function*(){yield this.sdk.removeTrack(e),this.syncRoomState("removeTrack")})}setLocalAudioEnabled(e){return n(this,null,function*(){let t=this.store.getState(C);t&&(yield this.setEnabledTrack(t,e))})}setLocalVideoEnabled(e){return n(this,null,function*(){let t=this.store.getState(x);t&&(yield this.setEnabledTrack(t,e))})}setEnabledTrack(e,t){return n(this,null,function*(){var i;if(((i=this.store.getState().tracks[e])==null?void 0:i.enabled)===t){this.logPossibleInconsistency(`local track[${e}] enabled state - ${t}`);return}this.setState(a=>{a.tracks[e]?a.tracks[e].displayEnabled=t:this.logPossibleInconsistency("track id not found for setEnabled")},"displayEnabled");try{yield this.setEnabledSDKTrack(e,t),this.syncRoomState("setEnabled")}catch(a){throw this.setState(c=>{c.tracks[e].displayEnabled=!t},"rollbackDisplayEnabled"),this.hmsNotifications.sendError(h.convertException(a)),a}let o=t?b.TRACK_UNMUTED:b.TRACK_MUTED;this.hmsNotifications.sendTrackUpdate(o,e)})}setAudioSettings(e){return n(this,null,function*(){let t=this.store.getState(C);t&&(yield this.setSDKLocalAudioTrackSettings(t,e),this.syncRoomState("setAudioSettings"))})}setVideoSettings(e){return n(this,null,function*(){let t=this.store.getState(x);t&&(yield this.setSDKLocalVideoTrackSettings(t,e),this.syncRoomState("setVideoSettings"))})}sendMessage(e){this.sendBroadcastMessage(e)}sendBroadcastMessage(e,t){return n(this,null,function*(){let r=yield this.sdk.sendBroadcastMessage(e,t);this.updateMessageInStore(r,{message:e,type:t})})}sendGroupMessage(e,t,r){return n(this,null,function*(){let o=this.store.getState(_),i=t.map(c=>o[c]),a=yield this.sdk.sendGroupMessage(e,i,r);this.updateMessageInStore(a,{message:e,recipientRoles:t,type:r})})}sendDirectMessage(e,t,r){return n(this,null,function*(){let o=this.hmsSDKPeers[t],i=yield this.sdk.sendDirectMessage(e,o,r);this.updateMessageInStore(i,{message:e,recipientPeer:o.peerId,type:r})})}updateMessageInStore(e,t){if(!e)throw p.w("sendMessage","Failed to send message",t),Error(`sendMessage Failed - ${JSON.stringify(t)}`);let r=h.convertMessage(e);return r.read=!0,r.senderName="You",this.onHMSMessage(r),r}setMessageRead(e,t){this.setState(r=>{t?r.messages.byID[t]?r.messages.byID[t].read=e:this.logPossibleInconsistency("no message with id is found"):r.messages.allIDs.forEach(o=>{r.messages.byID[o].read=e})},"setMessageRead")}attachVideo(e,t){return n(this,null,function*(){if(this.localAndVideoUnmuting(e))return new Promise(r=>{let o=this.store.subscribe(i=>n(this,null,function*(){i&&(yield this.attachVideoInternal(e,t),o(),r())}),ge)});yield this.attachVideoInternal(e,t)})}detachVideo(e,t){return n(this,null,function*(){let r=this.hmsSDKTracks[e];r&&r.type==="video"?(yield r.removeSink(t),this.updateVideoLayer(e,"detachVideo")):this.logPossibleInconsistency("no video track found to remove sink")})}addPluginToVideoTrack(e,t){return n(this,null,function*(){return this.addRemoveVideoPlugin(e,"add",t)})}addPluginToAudioTrack(e){return n(this,null,function*(){return this.addRemoveAudioPlugin(e,"add")})}removePluginFromVideoTrack(e){return n(this,null,function*(){return this.addRemoveVideoPlugin(e,"remove")})}removePluginFromAudioTrack(e){return n(this,null,function*(){return this.addRemoveAudioPlugin(e,"remove")})}changeRole(e,t,r=!1){return n(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,r)})}acceptChangeRole(e){return n(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 r={requestedBy:t,role:e.role,token:e.token};yield this.sdk.acceptChangeRole(r),this.removeRoleChangeRequest(e)})}rejectChangeRole(e){this.removeRoleChangeRequest(e)}endRoom(e,t){return n(this,null,function*(){let r=this.store.getState(We);if(!(r==null?void 0:r.endRoom)){p.w("You are not allowed to perform this action - endRoom");return}yield this.sdk.endRoom(e,t)})}removePeer(e,t){return n(this,null,function*(){let r=this.hmsSDKPeers[e];if(r&&!r.isLocal)yield this.sdk.removePeer(r,t);else{this.logPossibleInconsistency(`No remote peer found for peerID - ${e}`);return}})}startRTMPOrRecording(e){return n(this,null,function*(){yield this.sdk.startRTMPOrRecording(e)})}stopRTMPAndRecording(){return n(this,null,function*(){yield this.sdk.stopRTMPAndRecording()})}startHLSStreaming(e){return n(this,null,function*(){yield this.sdk.startHLSStreaming(e)})}stopHLSStreaming(e){return n(this,null,function*(){yield this.sdk.stopHLSStreaming(e)})}changeName(e){return n(this,null,function*(){yield this.sdk.changeName(e)})}changeMetadata(e){return n(this,null,function*(){typeof e!="string"&&(e=JSON.stringify(e)),yield this.sdk.changeMetadata(e)})}setRemoteTrackEnabled(e,t){return n(this,null,function*(){if(typeof e=="string"){let r=this.hmsSDKTracks[e];r&&dt(r)?yield this.sdk.changeTrackState(r,t):this.logPossibleInconsistency(`No remote track with ID ${e} found for change track state`)}else Array.isArray(e)&&e.forEach(r=>this.setRemoteTrackEnabled(r,t))})}setRemoteTracksEnabled(e){return n(this,null,function*(){let t={enabled:e.enabled,type:e.type,source:e.source};if(e.roles){let r=this.store.getState(_);t.roles=e.roles.map(o=>r[o])}yield this.sdk.changeMultiTrackState(t)})}setLogLevel(e){p.level=e,this.sdk.setLogLevel(e)}resetState(e="resetState"){this.setState(t=>{Object.assign(t,te())},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)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})}onRemovedFromRoom(e){var r;let t=this.store.getState(U((r=e.requestedBy)==null?void 0:r.peerId));this.hmsNotifications.sendLeaveRoom($(j({},e),{requestedBy:t||void 0})),p.i("resetting state after peer removed",e),this.resetState(e.roomEnded||!t?"roomEnded":"removedFromRoom")}onDeviceChange(e){let t=e.devices;if(!t)return;let r=this.store.getState(A);if(this.setState(o=>{N(o.devices.audioInput,t.audioInput)||(o.devices.audioInput=t.audioInput),N(o.devices.videoInput,t.videoInput)||(o.devices.videoInput=t.videoInput),N(o.devices.audioOutput,t.audioOutput)||(o.devices.audioOutput=t.audioOutput),this.hmsSDKPeers[r==null?void 0:r.id]&&Object.assign(o.settings,this.getMediaSettings(this.hmsSDKPeers[r==null?void 0:r.id]))},"deviceChange"),e.selection){let o=h.convertDeviceChangeUpdate(e);this.hmsNotifications.sendDeviceChange(o)}}sdkPreviewWithListeners(e){return n(this,null,function*(){yield this.sdk.preview(e,{onPreview:this.onPreview.bind(this),onError:this.onError.bind(this),onDeviceChange:this.onDeviceChange.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})})}startScreenShare(e){return n(this,null,function*(){this.store.getState(Te)?this.logPossibleInconsistency("start screenshare is called while it's on"):(yield this.sdk.startScreenShare(()=>this.syncRoomState("screenshareStopped"),e),this.syncRoomState("startScreenShare"))})}stopScreenShare(){return n(this,null,function*(){this.store.getState(Te)?(yield this.sdk.stopScreenShare(),this.syncRoomState("stopScreenShare")):this.logPossibleInconsistency("stop screenshare is called while it's not on")})}attachVideoInternal(e,t){return n(this,null,function*(){let r=this.hmsSDKTracks[e];r&&r.type==="video"?(yield r.addSink(t),this.updateVideoLayer(e,"attachVideo")):this.logPossibleInconsistency("no video track found to add sink")})}syncRoomState(e){p.time(`store-sync-${e}`);let t={},r=[],o={},i={},a={},c=this.sdk.getPeers();for(let y of c){let w=h.convertPeer(y);t[w.id]=w,r.push(w.id),this.hmsSDKPeers[w.id]=y;let G=[y.audioTrack,y.videoTrack,...y.auxiliaryTracks];for(let ee of G){if(!ee)continue;let Ee=h.convertTrack(ee);o[Ee.id]=Ee,i[ee.trackId]=ee}w.isLocal&&Object.assign(a,this.getMediaSettings(y))}let S=this.sdk.getRecordingState(),P=this.sdk.getRTMPState(),V=this.sdk.getHLSState();this.setState(y=>{y.room.peers=r;let w=y.peers,G=y.tracks;Le(w,t),Oe(G,o),Object.assign(y.settings,a),this.hmsSDKTracks=i,Object.assign(y.roles,h.convertRoles(this.sdk.getRoles())),Object.assign(y.playlist,h.convertPlaylist(this.sdk.getPlaylistManager())),Object.assign(y.room,h.convertRecordingStreamingState(S,P,V))},e),p.timeEnd(`store-sync-${e}`)}onPreview(e){this.setState(t=>{Object.assign(t.room,h.convertRoom(e)),t.room.roomState=H.Preview},"previewStart"),this.syncRoomState("previewSync")}onJoin(e){let t=this.sdk.getPlaylistManager();this.audioPlaylist=new ne(t,M.audio,this.syncPlaylistState.bind(this),this.store),this.videoPlaylist=new ne(t,M.video,this.syncRoomState.bind(this),this.store),this.syncRoomState("joinSync"),this.setState(r=>{Object.assign(r.room,h.convertRoom(e)),r.room.isConnected=!0,r.room.roomState=H.Connected},"joined"),t.onProgress(this.setProgress),t.onNewTrackStart(r=>{this.syncPlaylistState(`${r.type}PlaylistUpdate`)}),t.onPlaylistEnded(r=>{this.syncPlaylistState(`${r}PlaylistEnded`)}),t.onCurrentTrackEnded(r=>{this.hmsNotifications.sendPlaylistTrackEnded(h.convertPlaylistItem(t,r)),this.syncPlaylistState(`${r.type}PlaylistItemEnded`)})}onRoomUpdate(e,t){this.setState(r=>{Object.assign(r.room,h.convertRoom(t))},"RoomUpdate")}onPeerUpdate(e,t){if(![v.BECAME_DOMINANT_SPEAKER,v.RESIGNED_DOMINANT_SPEAKER].includes(e)){if(Array.isArray(t)){this.syncRoomState("peersJoined");let r=[];for(let o of t){let i=this.store.getState(U(o.peerId));i&&r.push(i)}this.hmsNotifications.sendPeerList(r);return}this.sendPeerUpdateNotification(e,t)}}onTrackUpdate(e,t,r){if(e===b.TRACK_REMOVED)this.hmsNotifications.sendTrackUpdate(e,t.trackId),this.handleTrackRemove(t,r);else{let o=e===b.TRACK_ADDED?"trackAdded":"trackUpdate";this.syncRoomState(o),this.hmsNotifications.sendTrackUpdate(e,t.trackId)}}onMessageReceived(e){let t=h.convertMessage(e);t.read=!1,this.onHMSMessage(t),this.hmsNotifications.sendMessageReceived(t)}onHMSMessage(e){this.setState(t=>{e.id=String(this.store.getState($e)+1),t.messages.byID[e.id]=e,t.messages.allIDs.push(e.id)},"newMessage")}onAudioLevelUpdate(e){this.setState(t=>{let r={};e.forEach(i=>{if(!i.track||!i.peer)return;let a=i.track.trackId;r[a]=i.audioLevel,t.speakers[a]||(t.speakers[a]={audioLevel:i.audioLevel,peerID:i.peer.peerId,trackID:a})});let o=Object.entries(t.speakers);for(let[i,a]of o)a.audioLevel=r[i]||0,a.audioLevel===0&&delete t.speakers[i]},"audioLevel")}onChangeTrackStateRequest(e){var i;let t=this.store.getState(U((i=e.requestedBy)==null?void 0:i.peerId)),r=this.getStoreLocalTrackIDfromSDKTrack(e.track),o=this.store.getState(ae(r));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 i;let t=this.store.getState(U((i=e.requestedBy)==null?void 0:i.peerId));e.enabled||this.syncRoomState("changeMultiTrackStateRequest");let r=[],o=this.store.getState(T);for(let a of e.tracks){let c=this.getStoreLocalTrackIDfromSDKTrack(a);c&&o[c]&&r.push(o[c])}this.hmsNotifications.sendChangeMultiTrackStateRequest({requestedBy:t||void 0,tracks:r,enabled:e.enabled,type:e.type,source:e.source})}onReconnected(){this.syncRoomState("reconnectedSync"),this.hmsNotifications.sendReconnected(),this.setState(e=>{e.room.roomState=H.Connected},"reconnected")}onReconnecting(e){let t=h.convertException(e);p.e("Reconnection: received error from sdk",t),this.hmsNotifications.sendReconnecting(t),this.setState(r=>{r.room.roomState=H.Reconnecting,r.errors.push(t)},"reconnecting")}onError(e){let t=h.convertException(e);t.isTerminal?(this.leave().then(()=>p.e("error from SDK, left room.")),this.setState(r=>{r.room.roomState=H.Failed,r.errors.push(t)},"errorTerminal")):this.store.getState().errors.length<50&&this.setState(o=>{o.errors.push(t)},"error"),this.hmsNotifications.sendError(t),p.e("received error from sdk",t)}updateVideoLayer(e,t){let r=this.hmsSDKTracks[e];r&&r instanceof mt&&this.setState(o=>{o.tracks[e].layer=r.getSimulcastLayer()},t)}handleTrackRemove(e,t){this.setState(r=>{let o=r.peers[t.peerId],i=r.tracks,a=e.trackId;if(this.isSameStoreSDKTrack(a,o==null?void 0:o.audioTrack))o==null||delete o.audioTrack;else if(this.isSameStoreSDKTrack(a,o==null?void 0:o.videoTrack))o==null||delete o.videoTrack;else{let c=o==null?void 0:o.auxiliaryTracks.indexOf(a);c>-1&&this.isSameStoreSDKTrack(a,o==null?void 0:o.auxiliaryTracks[c])&&(o==null||o.auxiliaryTracks.splice(c,1))}delete i[a],delete this.hmsSDKTracks[a]},"trackRemoved")}setEnabledSDKTrack(e,t){return n(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setEnabled(t):this.logPossibleInconsistency(`track ${e} not present, unable to enabled/disable`)})}setSDKLocalVideoTrackSettings(e,t){return n(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}setSDKLocalAudioTrackSettings(e,t){return n(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}getMediaSettings(e){var i;let t=this.store.getState(Be),r=e.audioTrack,o=e.videoTrack;return{audioInputDeviceId:(r==null?void 0:r.settings.deviceId)||t.audioInputDeviceId,videoInputDeviceId:(o==null?void 0:o.settings.deviceId)||t.videoInputDeviceId,audioOutputDeviceId:(i=this.sdk.getAudioOutput().getDevice())==null?void 0:i.deviceId}}setTrackVolume(e,t){let r=this.hmsSDKTracks[t];r?r instanceof Gt?(r.setVolume(e),this.setState(o=>{let i=o.tracks[t];i&&(i.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(A).videoTrack!==e)return!1;let r=this.store.getState(je),o=this.store.getState(ge);return r&&!o}logPossibleInconsistency(e){p.w("possible inconsistency detected - ",e)}addRemoveVideoPlugin(e,t,r){return n(this,null,function*(){if(!e){p.w("Invalid plugin received in store");return}let o=this.store.getState(x);if(o){let i=this.hmsSDKTracks[o];i?(t==="add"?yield i.addPlugin(e,r):t==="remove"&&(yield i.removePlugin(e)),this.syncRoomState(`${t}VideoPlugin`)):this.logPossibleInconsistency(`track ${o} not present, unable to remove plugin`)}})}addRemoveAudioPlugin(e,t){return n(this,null,function*(){if(!e){p.w("Invalid plugin received in store");return}let r=this.store.getState(C);if(r){let o=this.hmsSDKTracks[r];o?(t==="add"?yield o.addPlugin(e):t==="remove"&&(yield o.removePlugin(e)),this.syncRoomState(`${t}AudioPlugin`)):this.logPossibleInconsistency(`track ${r} not present, unable to remove plugin`)}})}isSameStoreSDKTrack(e,t){var r;return t?((r=this.hmsSDKTracks[t])==null?void 0:r.trackId)===e:!1}onRoleChangeRequest(e){this.setState(t=>{t.roleChangeRequests.length===0&&t.roleChangeRequests.push(h.convertRoleChangeRequest(e))},"roleChangeRequest")}removeRoleChangeRequest(e){this.setState(t=>{let r=t.roleChangeRequests.findIndex(o=>o.token===e.token);r!==-1&&t.roleChangeRequests.splice(r,1)},"removeRoleChangeRequest")}onRoleUpdate(){this.syncRoomState("roleUpdate")}getStoreLocalTrackIDfromSDKTrack(e){return this.store.getState(qe).find(r=>this.hmsSDKTracks[r].trackId===e.trackId)}};import{EventEmitter2 as Jt}from"eventemitter2";var Re="hmsNotification",ve=class{constructor(e){this.id=0;this.onNotification=e=>(this.eventEmitter.addListener(Re,e),()=>{this.eventEmitter.removeListener(Re,e)});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 r;let t=this.createNotification(m.DEVICE_CHANGE_UPDATE,e,e.error?R.ERROR:R.INFO,`Selected ${e.type} device - ${(r=e.selection)==null?void 0:r.label}`);this.emitEvent(t)}sendLeaveRoom(e){var o;let t=(o=e.requestedBy)==null?void 0:o.name,r=this.createNotification(e.roomEnded||!t?m.ROOM_ENDED:m.REMOVED_FROM_ROOM,e,R.INFO,`${e.roomEnded?"Room ended":"Removed from room"} ${t?`by ${t}`:""}`);this.emitEvent(r)}sendPeerList(e){let t=this.createNotification(m.PEER_LIST,e,R.INFO);this.emitEvent(t)}sendPeerUpdate(e,t){let r=this.store.getState(U(t==null?void 0:t.id))||t,o=ut[e];if(o){let i=this.createNotification(o,r,R.INFO);this.emitEvent(i)}}sendTrackUpdate(e,t){let r=this.store.getState(ae(t)),o=Mt[e];if(o){let i=this.createNotification(o,r,R.INFO);this.emitEvent(i)}}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(Re,e)}createNotification(e,t,r,o=""){return this.id++,{id:this.id,type:e,message:o,data:t,severity:r}}};import{isBrowser as Yt}from"@100mslive/hms-video";var ce=s=>Yt?`${s} ${document.title}`:s;var ht=(s,e,t)=>{let r;t.getState(L)===H.Connected&&(r=gt(s,e,t)),t.subscribe(o=>{[H.Connected,H.Reconnecting].includes(o)?r||(r=gt(s,e,t)):r&&(zt(e),r())},L)},gt=(s,e,t)=>{var i;let r=Qt(t,e),o=(i=s.getWebrtcInternals())==null?void 0:i.onStatsChange(a=>Xt(e,a,t));return()=>{r(),o&&o()}},Qt=(s,e)=>{let t,r,o;return s.getState(q)?e.namedSetState(i=>{i.localPeer.id=s.getState(q)},"localpeer-id"):t=s.subscribe(i=>{i&&e.namedSetState(a=>{a.localPeer.id=i},"localpeer-id")},q),s.getState(x)?e.namedSetState(i=>{i.localPeer.videoTrack=s.getState(x)},"localpeer-videotrack-id"):r=s.subscribe(i=>{i&&e.namedSetState(a=>{a.localPeer.videoTrack=i},"localpeer-videotrack-id")},x),s.getState(C)?e.namedSetState(i=>{i.localPeer.videoTrack=s.getState(C)},"localpeer-audiotrack-id"):o=s.subscribe(i=>{i&&e.namedSetState(a=>{a.localPeer.videoTrack=i},"localpeer-audiotrack-id")},C),()=>{t==null||t(),r==null||r(),o==null||o()}},Xt=(s,e,t)=>{let r=t.getState(T);s.namedSetState(o=>{let i={},a=Object.keys(r);for(let P of a){let V=e.getTrackStats(P);V&&(i[P]=V)}de(o.trackStats,i);let S={[t.getState(q)]:e.getLocalPeerStats()};de(o.peerStats,S)},"webrtc-stats")},zt=(s,e="resetState")=>{s.namedSetState(t=>{Object.assign(t,se())},e)};var le=class{constructor(e,t){this.hmsStore=e;this.sdk=t;this.store=O.createNewHMSStore(ce("HMSStatsStore"),se),this.getState=this.store.getState,this.subscribe=this.store.subscribe,this.getPublishPeerConnection=()=>new Promise(r=>{var o,i;this.hmsStore.getState(L)==="Connected"?r((i=(o=this.sdk)==null?void 0:o.getWebrtcInternals())==null?void 0:i.getPublishPeerConnection()):this.hmsStore.subscribe(a=>{var c,S;a==="Connected"&&r((S=(c=this.sdk)==null?void 0:c.getWebrtcInternals())==null?void 0:S.getPublishPeerConnection())},L)}),this.getSubscribePeerConnection=()=>new Promise(r=>{var o,i;this.hmsStore.getState(L)==="Connected"?r((i=(o=this.sdk)==null?void 0:o.getWebrtcInternals())==null?void 0:i.getSubscribePeerConnection()):this.hmsStore.subscribe(a=>{var c,S;a==="Connected"&&r((S=(c=this.sdk)==null?void 0:c.getWebrtcInternals())==null?void 0:S.getSubscribePeerConnection())},L)}),!!this.sdk&&ht(this.sdk,this.store,this.hmsStore)}};var be={};Rt(be,{availablePublishBitrate:()=>cs,availableSubscribeBitrate:()=>ls,bitrateByTrackID:()=>ms,bytesReceivedByTrackID:()=>hs,framerateByTrackID:()=>gs,jitter:()=>is,jitterByTrackID:()=>Ts,localAudioTrackBitrate:()=>ys,localAudioTrackBytesSent:()=>fs,localAudioTrackStats:()=>De,localPeerStats:()=>K,localVideoTrackBitrate:()=>ks,localVideoTrackBytesSent:()=>Ps,localVideoTrackFramerate:()=>Rs,localVideoTrackQualityLimitationReason:()=>vs,localVideoTrackStats:()=>Z,packetsLost:()=>os,packetsLostByTrackID:()=>Hs,peerStatsByID:()=>Ms,publishBitrate:()=>as,subscribeBitrate:()=>ns,totalBytesReceived:()=>ds,totalBytesSent:()=>Ss,trackStatsByID:()=>ps});import{createSelector as g}from"reselect";var Zt=s=>s.localPeer.id,es=s=>s.localPeer.audioTrack,ts=s=>s.localPeer.videoTrack,ss=(s,e)=>e,rs=(s,e)=>e,Ie=s=>s.trackStats,Tt=s=>s.peerStats,K=g([Tt,Zt],(s,e)=>s[e]),os=g(K,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.packetsLost}),is=g(K,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.jitter}),as=g(K,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bitrate}),ns=g(K,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bitrate}),cs=g(K,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.availableOutgoingBitrate}),ls=g(K,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.availableIncomingBitrate}),Ss=g(K,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bytesSent}),ds=g(K,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bytesReceived}),us=g([Tt,ss],(s,e)=>e?s[e]:void 0),W=g([Ie,rs],(s,e)=>e?s[e]:void 0),Ms=u(us),ps=u(W),ms=u(g(W,s=>s==null?void 0:s.bitrate)),hs=u(g(W,s=>s==null?void 0:s.bytesReceived)),gs=u(g(W,s=>s==null?void 0:s.framesPerSecond)),Ts=u(g(W,s=>s==null?void 0:s.jitter)),Hs=u(g(W,s=>s==null?void 0:s.packetsLost)),De=g([Ie,es],(s,e)=>e?s[e]:void 0),Z=g([Ie,ts],(s,e)=>e?s[e]:void 0),ys=g(De,s=>s==null?void 0:s.bitrate),ks=g(Z,s=>s==null?void 0:s.bitrate),fs=g(De,s=>s==null?void 0:s.bytesSent),Ps=g(Z,s=>s==null?void 0:s.bytesSent),Rs=g(Z,s=>s==null?void 0:s.framesPerSecond),vs=g(Z,s=>s==null?void 0:s.qualityLimitationReason);var O=class{constructor(e,t,r){this.getStats=()=>(this.stats||(this.stats=new le(this.store,this.sdk)),this.stats);e?this.store=e:this.store=O.createNewHMSStore(ce("HMSStore"),te),r?this.notifications=r:this.notifications=new ve(this.store),t?this.actions=t:(this.sdk=new Es,this.actions=new Pe(this.store,this.sdk,this.notifications)),this.initialTriggerOnSubscribe=!1,window.__hms=this}triggerOnSubscribe(){this.initialTriggerOnSubscribe||(O.makeStoreTriggerOnSubscribe(this.store),this.initialTriggerOnSubscribe=!0)}getStore(){return this.store}getHMSActions(){return this.actions}getActions(){return this.actions}getNotifications(){return{onNotification:this.notifications.onNotification}}static createNewHMSStore(e,t){let r=Ds(()=>t()),o=r.setState;r.setState=c=>{let S=typeof c=="function"?Is(c):c;o(S)};let i=r.getState;r.getState=c=>{if(c){let S=c.name||"byIDSelector";window.selectorsCount||(window.selectorsCount={}),window.selectorsCount[S]=(window.selectorsCount[S]||0)+1;let P=performance.now(),V=c(i()),y=performance.now()-P;return y>1&&(window.expensiveSelectors=window.expensiveSelectors||new Map,window.expensiveSelectors.set(S,y)),V}return i()},O.useShallowCheckInSubscribe(r);let a=O.setUpDevtools(r,e);return $(j({},r),{namedSetState:a})}static makeStoreTriggerOnSubscribe(e){let t=e.subscribe;e.subscribe=(r,o,i)=>(r(e.getState(o),void 0),t(r,o,i))}static useShallowCheckInSubscribe(e){let t=e.subscribe;e.subscribe=(r,o,i)=>(o||(o=a=>a),i=i||bs,t(r,o,i))}static setUpDevtools(e,t){let r;try{r=window.__REDUX_DEVTOOLS_EXTENSION__||window.top.__REDUX_DEVTOOLS_EXTENSION__}catch(a){}if(!r)return a=>{e.setState(a)};let o=r.connect(O.devtoolsOptions(t));o.prefix=t?`${t} > `:"";let i=e.setState;return e.setState=a=>{i(a),o.send(`${o.prefix}setState`,e.getState())},o.subscribe(O.devtoolsSubscribe(o,e,i)),o.send("setUpStore",e.getState()),(a,c)=>{i(a);let S=c||`${o.prefix}action`;o.send(S,e.getState())}}static devtoolsOptions(e){return{name:e,actionsBlacklist:["audioLevel","playlistProgress"]}}static devtoolsSubscribe(e,t,r){return o=>{var i,a,c,S;if(o.type==="DISPATCH"&&o.state)["JUMP_TO_ACTION","JUMP_TO_STATE"].includes(o.payload.type)?r(JSON.parse(o.state)):t.setState(JSON.parse(o.state));else if(o.type==="DISPATCH"&&((i=o.payload)==null?void 0:i.type)==="COMMIT")e.init(t.getState());else if(o.type==="DISPATCH"&&((a=o.payload)==null?void 0:a.type)==="IMPORT_STATE"){let P=(c=o.payload.nextLiftedState)==null?void 0:c.actionsById;(((S=o.payload.nextLiftedState)==null?void 0:S.computedStates)||[]).forEach(({state:y},w)=>{let G=P[w]||`${e.prefix}setState`;w===0?e.init(y):(r(y),e.send(G,t.getState()))})}}}};export{vt as HMSAudioPluginType,k as HMSLogLevel,xe as HMSMessageType,R as HMSNotificationSeverity,m as HMSNotificationTypes,M as HMSPlaylistType,O as HMSReactiveStore,H as HMSRoomState,le as HMSStats,It as HMSVideoPluginType,se as createDefaultStatsStore,te as createDefaultStoreState,tt as selectAudioPlaylist,wo as selectAudioPlaylistTrackByPeerID,Ut as selectAudioTrackByPeerID,ct as selectAudioTrackVolume,Bo as selectAudioVolumeByPeerID,xo as selectAuxiliaryAudioByPeerID,Eo as selectAuxiliaryTracksByPeerID,io as selectAvailableRoleNames,Kt as selectBroadcastMessages,$o as selectBroadcastMessagesUnreadCount,bo as selectCameraStreamByPeerID,so as selectDegradedTracks,Fr as selectDevices,Yr as selectDominantSpeaker,lo as selectHLSState,oe as selectHMSMessages,$e as selectHMSMessagesCount,be as selectHMSStats,si as selectIsAllowedToPublish,ao as selectIsAllowedToSubscribe,nt as selectIsAudioLocallyMuted,Wr as selectIsConnectedToRoom,oo as selectIsInPreview,Qr as selectIsLocalAudioEnabled,ci as selectIsLocalAudioPluginPresent,Te as selectIsLocalScreenShared,je as selectIsLocalVideoDisplayEnabled,ge as selectIsLocalVideoEnabled,ni as selectIsLocalVideoPluginPresent,Ko as selectIsLocallyMutedByPeerID,Uo as selectIsPeerAudioEnabled,_o as selectIsPeerVideoEnabled,Vo as selectIsScreenShareLocallyMutedByPeerID,Xr as selectIsSomeoneScreenSharing,C as selectLocalAudioTrackID,Be as selectLocalMediaSettings,A as selectLocalPeer,q as selectLocalPeerID,ie as selectLocalPeerRole,qe as selectLocalTrackIDs,x as selectLocalVideoTrackID,Ve as selectMessageIDsInOrder,Fo as selectMessagesByPeerID,Wo as selectMessagesByRole,Ke as selectMessagesMap,Jo as selectMessagesUnreadCountByPeerID,Go as selectMessagesUnreadCountByRole,Co as selectPeerAudioByID,U as selectPeerByID,Gr as selectPeerCount,Qo as selectPeerMetadata,Do as selectPeerNameByID,Ot as selectPeerScreenSharing,zr as selectPeerSharingAudio,to as selectPeerSharingAudioPlaylist,eo as selectPeerSharingVideoPlaylist,he as selectPeers,Yo as selectPeersByRole,D as selectPeersMap,Zr as selectPeersScreenSharing,ei as selectPeersWithAudioStatus,We as selectPermissions,co as selectRTMPState,no as selectRecordingState,Jr as selectRemotePeers,ai as selectRoleByRoleName,ti as selectRoleChangeRequest,_ as selectRolesMap,E as selectRoom,uo as selectRoomStartTime,Fe as selectRoomStarted,L as selectRoomState,at as selectScreenShareAudioByPeerID,No as selectScreenShareByPeerID,it as selectScreenSharesByPeerId,qo as selectScreenshareAudioVolumeByPeerID,So as selectSessionId,jo as selectSimulcastLayerByTrack,Ct as selectSpeakers,Ao as selectTrackAudioByID,ae as selectTrackByID,T as selectTracksMap,ro as selectUnreadHMSMessagesCount,st as selectVideoPlaylist,Oo as selectVideoPlaylistAudioTrackByPeerID,Lo as selectVideoPlaylistVideoTrackByPeerID,Nt as selectVideoTrackByPeerID};
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.2.88-alpha.
|
|
2
|
+
"version": "0.2.88-alpha.3",
|
|
3
3
|
"license": "MIT",
|
|
4
4
|
"main": "dist/index.cjs.js",
|
|
5
5
|
"module": "dist/index.js",
|
|
@@ -27,13 +27,13 @@
|
|
|
27
27
|
"prepare": "yarn build",
|
|
28
28
|
"size": "size-limit",
|
|
29
29
|
"analyze": "size-limit --why",
|
|
30
|
-
"docs": "rm -rf ./docs && typedoc && rm -f ./docs/README.md && mkdir ./docs/home &&mv ./docs/modules.md ./docs/home/content.md &&
|
|
30
|
+
"docs": "rm -rf ./docs && typedoc && rm -f ./docs/README.md && mkdir ./docs/home &&mv ./docs/modules.md ./docs/home/content.md && node ../../scripts/docs-store && npx prettier --write './docs/**/*'"
|
|
31
31
|
},
|
|
32
32
|
"name": "@100mslive/hms-video-store",
|
|
33
33
|
"author": "100ms",
|
|
34
34
|
"sideEffects": false,
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@100mslive/hms-video": "0.1.42-alpha.
|
|
36
|
+
"@100mslive/hms-video": "0.1.42-alpha.3",
|
|
37
37
|
"eventemitter2": "^6.4.5",
|
|
38
38
|
"immer": "^9.0.6",
|
|
39
39
|
"reselect": "4.0.0",
|
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
"url": "https://github.com/100mslive/hms-video-store/issues"
|
|
59
59
|
},
|
|
60
60
|
"homepage": "https://github.com/100mslive/hms-video-store#readme",
|
|
61
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "b08b00c56aa34cbfd06b9ac0b236507776d6519a"
|
|
62
62
|
}
|