@100mslive/hms-video-store 0.2.86-alpha.1 → 0.2.86-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.
@@ -0,0 +1 @@
1
+ export declare const storeNameWithTabTitle: (storeName: string) => string;
@@ -1,4 +1,4 @@
1
- import { HMSStore, HMSInternalsStore } from './schema';
1
+ import { HMSStore, HMSStatsStore } from './schema';
2
2
  import { StateSelector, StoreApi, Subscribe, State } from 'zustand/vanilla';
3
3
  import { NamedSetState } from './hmsSDKStore/internalTypes';
4
4
  /**
@@ -72,5 +72,5 @@ export declare type IHMSStore = IStore<HMSStore>;
72
72
  * @category Core
73
73
  */
74
74
  export declare type IHMSStoreReadOnly = IStoreReadOnly<HMSStore>;
75
- export declare type IHMSInternalsStore = IStore<HMSInternalsStore>;
76
- export declare type IHMSInternalsStoreReadOnly = IStoreReadOnly<HMSInternalsStore>;
75
+ export declare type IHMSStatsStore = IStore<HMSStatsStore>;
76
+ export declare type IHMSStatsStoreReadOnly = IStoreReadOnly<HMSStatsStore>;
@@ -4,13 +4,18 @@ import { IStore } from '../IHMSStore';
4
4
  import { IHMSStore, IHMSStoreReadOnly } from '../IHMSStore';
5
5
  import { HMSNotifications } from './HMSNotifications';
6
6
  import { IHMSNotifications } from '../IHMSNotifications';
7
- import { HMSWebrtcInternals } from '../webrtc-internals';
7
+ import { HMSStats } from '../webrtc-stats';
8
+ declare global {
9
+ interface Window {
10
+ __hms: HMSReactiveStore;
11
+ }
12
+ }
8
13
  export declare class HMSReactiveStore {
9
14
  private readonly sdk?;
10
15
  private readonly actions;
11
16
  private readonly store;
12
17
  private readonly notifications;
13
- private webrtcInternals?;
18
+ private webrtcStats?;
14
19
  /** @TODO store flag for both HMSStore and HMSInternalsStore */
15
20
  private initialTriggerOnSubscribe;
16
21
  constructor(hmsStore?: IHMSStore, hmsActions?: IHMSActions, hmsNotifications?: HMSNotifications);
@@ -45,7 +50,7 @@ export declare class HMSReactiveStore {
45
50
  * @alpha
46
51
  * @internal
47
52
  */
48
- getWebrtcInternals: () => HMSWebrtcInternals;
53
+ getWebrtcStats: () => HMSStats;
49
54
  /**
50
55
  * @internal
51
56
  */
@@ -1,4 +1,4 @@
1
- export type { IStore, IStoreReadOnly, IHMSStore, IHMSStoreReadOnly as HMSStoreWrapper, GetState, IHMSInternalsStore, IHMSInternalsStoreReadOnly as HMSInternalsStoreWrapper, } from './IHMSStore';
1
+ export type { IStore, IStoreReadOnly, IHMSStore, IHMSStoreReadOnly as HMSStoreWrapper, GetState, 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';
@@ -6,5 +6,5 @@ export { HMSReactiveStore } from './hmsSDKStore/HMSReactiveStore';
6
6
  export * from './schema';
7
7
  export * from './selectors';
8
8
  export { HMSLogLevel, HMSAudioPluginType, HMSVideoPluginType } from './hmsSDKStore/sdkTypes';
9
- export * from './webrtc-internals';
9
+ export * from './webrtc-stats';
10
10
  export type { HMSConfig, HMSAudioTrackSettings, HMSVideoTrackSettings, HMSSimulcastLayer, SimulcastLayerDefinition, DeviceMap, RTMPRecordingConfig, HMSRecording, HMSRTMP, } from './hmsSDKStore/sdkTypes';
@@ -24,11 +24,9 @@ export interface HMSStore {
24
24
  roleChangeRequests: HMSRoleChangeStoreRequest[];
25
25
  errors: HMSException[];
26
26
  }
27
- export interface HMSInternalsStore {
27
+ export interface HMSStatsStore {
28
28
  publishStats?: HMSPeerConnectionStats;
29
29
  subscribeStats?: HMSPeerConnectionStats;
30
- packetsLost: number;
31
- jitter: number;
32
30
  trackStats: Record<HMSTrackID, HMSTrackStats | undefined>;
33
31
  peerStats: Record<HMSPeerID, HMSPeerStats | undefined>;
34
32
  localPeer: {
@@ -41,4 +39,4 @@ export interface HMSInternalsStore {
41
39
  * @internal
42
40
  */
43
41
  export declare const createDefaultStoreState: () => HMSStore;
44
- export declare const createDefaultInternalsStore: () => HMSInternalsStore;
42
+ export declare const createDefaultStatsStore: () => HMSStatsStore;
@@ -22,8 +22,13 @@ export declare type HMSTrackStats = RTCRtpStreamStats & {
22
22
  export declare type HMSInboundTrackStats = HMSTrackStats & RTCInboundRtpStreamStats;
23
23
  export declare type HMSOutboundTrackStats = HMSTrackStats & RTCOutboundRtpStreamStats;
24
24
  export declare type RTCTrackStats = RTCInboundRtpStreamStats | RTCOutboundRtpStreamStats;
25
+ declare type AdditionalPeerStats = {
26
+ packetsLost: number;
27
+ packetsLostRate: number;
28
+ jitter: number;
29
+ };
25
30
  export declare type HMSPeerStats = {
26
31
  publish?: RTCIceCandidatePairStats & WithBitrate;
27
- subscribe?: RTCIceCandidatePairStats & WithBitrate;
32
+ subscribe?: RTCIceCandidatePairStats & WithBitrate & AdditionalPeerStats;
28
33
  };
29
34
  export {};
@@ -1,5 +1,5 @@
1
- import { HMSInternalsStore, HMSStore } from '../schema';
2
- export declare type StoreTypes = HMSStore | HMSInternalsStore;
1
+ import { HMSStatsStore, HMSStore } from '../schema';
2
+ export declare type StoreTypes = HMSStore | HMSStatsStore;
3
3
  declare type byIDSelector<S extends StoreTypes, T> = (store: S, id?: string) => T;
4
4
  /**
5
5
  * StoreSelector is a function that takes in {@link HMSStore} as argument
@@ -1,11 +1,11 @@
1
1
  import { HMSSdk } from '@100mslive/hms-video';
2
2
  import { Subscribe } from 'zustand/vanilla';
3
- import { HMSInternalsStore, IHMSStore, HMSInternalsStoreWrapper, GetState } from '..';
4
- export declare class HMSWebrtcInternals implements HMSInternalsStoreWrapper {
3
+ import { HMSStatsStore, IHMSStore, HMSStatsStoreWrapper, GetState } from '..';
4
+ export declare class HMSStats implements HMSStatsStoreWrapper {
5
5
  private hmsStore;
6
6
  private sdk?;
7
- readonly getState: GetState<HMSInternalsStore>;
8
- readonly subscribe: Subscribe<HMSInternalsStore>;
7
+ readonly getState: GetState<HMSStatsStore>;
8
+ readonly subscribe: Subscribe<HMSStatsStore>;
9
9
  readonly getPublishPeerConnection: () => Promise<RTCPeerConnection | undefined>;
10
10
  readonly getSubscribePeerConnection: () => Promise<RTCPeerConnection | undefined>;
11
11
  private readonly store;
@@ -0,0 +1,2 @@
1
+ export { HMSStats } from './HMSStats';
2
+ export * as selectHMSStats from './selectors';
@@ -0,0 +1,73 @@
1
+ import { HMSStatsStore } from '../schema';
2
+ /**
3
+ * Local peer stats selectors
4
+ */
5
+ export declare const localPeerStats: import("reselect").OutputSelector<HMSStatsStore, import("../schema").HMSPeerStats | undefined, (res1: Record<string, import("../schema").HMSPeerStats | undefined>, res2: string) => import("../schema").HMSPeerStats | undefined>;
6
+ /**
7
+ * The total number of packets lost during the call
8
+ */
9
+ export declare const packetsLost: import("reselect").OutputSelector<HMSStatsStore, number | undefined, (res: import("../schema").HMSPeerStats | undefined) => number | undefined>;
10
+ export declare const jitter: import("reselect").OutputSelector<HMSStatsStore, number | undefined, (res: import("../schema").HMSPeerStats | undefined) => number | undefined>;
11
+ /**
12
+ * The bitrate at which all the local tracks are being published at
13
+ */
14
+ export declare const publishBitrate: import("reselect").OutputSelector<HMSStatsStore, number | undefined, (res: import("../schema").HMSPeerStats | undefined) => number | undefined>;
15
+ /**
16
+ * The bitrate at which all the remote tracks are being received at
17
+ */
18
+ export declare const subscribeBitrate: import("reselect").OutputSelector<HMSStatsStore, number | undefined, (res: import("../schema").HMSPeerStats | undefined) => number | undefined>;
19
+ /**
20
+ * The total bitrate available for publishing
21
+ */
22
+ export declare const availablePublishBitrate: import("reselect").OutputSelector<HMSStatsStore, number | undefined, (res: import("../schema").HMSPeerStats | undefined) => number | undefined>;
23
+ /**
24
+ * The total bitrate available for subscribing to remote peers
25
+ */
26
+ export declare const availableSubscribeBitrate: import("reselect").OutputSelector<HMSStatsStore, number | undefined, (res: import("../schema").HMSPeerStats | undefined) => number | undefined>;
27
+ /**
28
+ * The total bytes sent by the local peer
29
+ */
30
+ export declare const totalBytesSent: import("reselect").OutputSelector<HMSStatsStore, number | undefined, (res: import("../schema").HMSPeerStats | undefined) => number | undefined>;
31
+ /**
32
+ * The total bytes received by the local peer
33
+ */
34
+ export declare const totalBytesReceived: import("reselect").OutputSelector<HMSStatsStore, number | undefined, (res: import("../schema").HMSPeerStats | undefined) => number | undefined>;
35
+ /**
36
+ * Stats(bitrate, bytes sent/received, etc...) for a single peer given the peer ID
37
+ */
38
+ export declare const peerStatsByID: (id?: string | undefined) => import("../selectors/common").StoreSelector<HMSStatsStore, import("../schema").HMSPeerStats | undefined>;
39
+ /**
40
+ * Stats(bitrate, bytes sent/received, framerate, FPS, etc...) for a single track
41
+ */
42
+ export declare const trackStatsByID: (id?: string | undefined) => import("../selectors/common").StoreSelector<HMSStatsStore, import("../schema").HMSTrackStats | undefined>;
43
+ /**
44
+ * The bitrate at which the track's data is being received
45
+ */
46
+ export declare const bitrateByTrackID: (id?: string | undefined) => import("../selectors/common").StoreSelector<HMSStatsStore, number | undefined>;
47
+ /**
48
+ * Bytes received from a particular track
49
+ */
50
+ export declare const bytesReceivedByTrackID: (id?: string | undefined) => import("../selectors/common").StoreSelector<HMSStatsStore, number | undefined>;
51
+ /**
52
+ * The framerate(frames per second) of a particular video track
53
+ */
54
+ export declare const framerateByTrackID: (id?: string | undefined) => import("../selectors/common").StoreSelector<HMSStatsStore, number | undefined>;
55
+ /**
56
+ * The jitter faced while receiving a particular track
57
+ */
58
+ export declare const jitterByTrackID: (id?: string | undefined) => import("../selectors/common").StoreSelector<HMSStatsStore, number | undefined>;
59
+ /**
60
+ * The number of packets lost while receiving a particular track
61
+ */
62
+ export declare const packetsLostByTrackID: (id?: string | undefined) => import("../selectors/common").StoreSelector<HMSStatsStore, number | undefined>;
63
+ /**
64
+ * Local track stats selectors
65
+ */
66
+ export declare const localAudioTrackStats: import("reselect").OutputSelector<HMSStatsStore, import("../schema").HMSTrackStats | undefined, (res1: Record<string, import("../schema").HMSTrackStats | undefined>, res2: string | undefined) => import("../schema").HMSTrackStats | undefined>;
67
+ export declare const localVideoTrackStats: import("reselect").OutputSelector<HMSStatsStore, import("../schema").HMSTrackStats | undefined, (res1: Record<string, import("../schema").HMSTrackStats | undefined>, res2: string | undefined) => import("../schema").HMSTrackStats | undefined>;
68
+ export declare const localAudioTrackBitrate: import("reselect").OutputSelector<HMSStatsStore, number | undefined, (res: import("../schema").HMSTrackStats | undefined) => number | undefined>;
69
+ export declare const localVideoTrackBitrate: import("reselect").OutputSelector<HMSStatsStore, number | undefined, (res: import("../schema").HMSTrackStats | undefined) => number | undefined>;
70
+ export declare const localAudioTrackBytesSent: import("reselect").OutputSelector<HMSStatsStore, number | undefined, (res: import("../schema").HMSTrackStats | undefined) => number | undefined>;
71
+ export declare const localVideoTrackBytesSent: import("reselect").OutputSelector<HMSStatsStore, number | undefined, (res: import("../schema").HMSTrackStats | undefined) => number | undefined>;
72
+ export declare const localVideoTrackFramerate: import("reselect").OutputSelector<HMSStatsStore, number | undefined, (res: import("../schema").HMSTrackStats | undefined) => number | undefined>;
73
+ export declare const localVideoTrackQualityLimitationReason: import("reselect").OutputSelector<HMSStatsStore, string | undefined, (res: import("../schema").HMSTrackStats | undefined) => string | undefined>;
@@ -0,0 +1,3 @@
1
+ import { HMSSdk } from '@100mslive/hms-video';
2
+ import { IHMSStore, IHMSStatsStore } from '../IHMSStore';
3
+ export declare const subscribeToSdkWebrtcStats: (sdk: HMSSdk, webrtcStore: IHMSStatsStore, store: IHMSStore) => void;
@@ -1 +1 @@
1
- var Lt=Object.create;var J=Object.defineProperty,Ot=Object.defineProperties,wt=Object.getOwnPropertyDescriptor,Nt=Object.getOwnPropertyDescriptors,Ut=Object.getOwnPropertyNames,Qe=Object.getOwnPropertySymbols,_t=Object.getPrototypeOf,ze=Object.prototype.hasOwnProperty,Kt=Object.prototype.propertyIsEnumerable;var Xe=(s,e,t)=>e in s?J(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,V=(s,e)=>{for(var t in e||(e={}))ze.call(e,t)&&Xe(s,t,e[t]);if(Qe)for(var t of Qe(e))Kt.call(e,t)&&Xe(s,t,e[t]);return s},j=(s,e)=>Ot(s,Nt(e)),Ze=s=>J(s,"__esModule",{value:!0});var et=(s,e)=>{Ze(s);for(var t in e)J(s,t,{get:e[t],enumerable:!0})},Vt=(s,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Ut(e))!ze.call(s,r)&&r!=="default"&&J(s,r,{get:()=>e[r],enumerable:!(t=wt(e,r))||t.enumerable});return s},R=s=>Vt(Ze(J(s!=null?Lt(_t(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,i)=>{var o=d=>{try{S(t.next(d))}catch(I){i(I)}},n=d=>{try{S(t.throw(d))}catch(I){i(I)}},S=d=>d.done?r(d.value):Promise.resolve(d.value).then(o,n);S((t=t.apply(s,e)).next())});et(exports,{HMSAudioPluginType:()=>a.HMSAudioPluginType,HMSLogLevel:()=>a.HMSLogLevel,HMSMessageType:()=>ge,HMSNotificationSeverity:()=>P,HMSNotificationTypes:()=>h,HMSPlaylistType:()=>M,HMSReactiveStore:()=>L,HMSRoomState:()=>y,HMSVideoPluginType:()=>a.HMSVideoPluginType,HMSWebrtcInternals:()=>oe,createDefaultInternalsStore:()=>Q,createDefaultStoreState:()=>Y,selectAudioPlaylist:()=>Le,selectAudioPlaylistTrackByPeerID:()=>fs,selectAudioTrackByPeerID:()=>ht,selectAudioTrackVolume:()=>Be,selectAudioVolumeByPeerID:()=>Ds,selectAuxiliaryAudioByPeerID:()=>Ts,selectAuxiliaryTracksByPeerID:()=>Ms,selectAvailableRoleNames:()=>os,selectBroadcastMessages:()=>yt,selectBroadcastMessagesUnreadCount:()=>xs,selectCameraStreamByPeerID:()=>ps,selectDegradedTracks:()=>ss,selectDevices:()=>jt,selectDominantSpeaker:()=>Yt,selectHLSState:()=>ls,selectHMSMessages:()=>ee,selectHMSMessagesCount:()=>be,selectHMSStats:()=>he,selectIsAllowedToPublish:()=>qs,selectIsAllowedToSubscribe:()=>ns,selectIsAudioLocallyMuted:()=>Ve,selectIsConnectedToRoom:()=>Wt,selectIsInPreview:()=>is,selectIsLocalAudioEnabled:()=>Qt,selectIsLocalAudioPluginPresent:()=>Gs,selectIsLocalScreenShared:()=>ue,selectIsLocalVideoDisplayEnabled:()=>De,selectIsLocalVideoEnabled:()=>de,selectIsLocalVideoPluginPresent:()=>Fs,selectIsLocallyMutedByPeerID:()=>Rs,selectIsPeerAudioEnabled:()=>Ps,selectIsPeerVideoEnabled:()=>Is,selectIsScreenShareLocallyMutedByPeerID:()=>vs,selectIsSomeoneScreenSharing:()=>zt,selectLocalAudioTrackID:()=>C,selectLocalMediaSettings:()=>Re,selectLocalPeer:()=>E,selectLocalPeerID:()=>K,selectLocalPeerRole:()=>te,selectLocalTrackIDs:()=>ve,selectLocalVideoTrackID:()=>A,selectMessageIDsInOrder:()=>Ie,selectMessagesByPeerID:()=>Ls,selectMessagesByRole:()=>Os,selectMessagesMap:()=>Pe,selectMessagesUnreadCountByPeerID:()=>Ns,selectMessagesUnreadCountByRole:()=>ws,selectPeerAudioByID:()=>gs,selectPeerByID:()=>O,selectPeerCount:()=>$t,selectPeerMetadata:()=>_s,selectPeerNameByID:()=>Ue,selectPeerScreenSharing:()=>nt,selectPeerSharingAudio:()=>Xt,selectPeerSharingAudioPlaylist:()=>ts,selectPeerSharingVideoPlaylist:()=>es,selectPeers:()=>Se,selectPeersByRole:()=>Us,selectPeersMap:()=>v,selectPeersScreenSharing:()=>Zt,selectPeersWithAudioStatus:()=>Ks,selectPermissions:()=>Ce,selectRTMPState:()=>cs,selectRecordingState:()=>as,selectRemotePeers:()=>Jt,selectRoleByRoleName:()=>js,selectRoleChangeRequest:()=>Bs,selectRolesMap:()=>_,selectRoom:()=>b,selectRoomStartTime:()=>ds,selectRoomStarted:()=>Ee,selectRoomState:()=>x,selectScreenShareAudioByPeerID:()=>Ke,selectScreenShareByPeerID:()=>ks,selectScreenSharesByPeerId:()=>_e,selectScreenshareAudioVolumeByPeerID:()=>bs,selectSessionId:()=>Ss,selectSimulcastLayerByTrack:()=>Es,selectSpeakers:()=>ot,selectTrackAudioByID:()=>ms,selectTrackByID:()=>re,selectTracksMap:()=>T,selectUnreadHMSMessagesCount:()=>rs,selectVideoPlaylist:()=>Oe,selectVideoPlaylistAudioTrackByPeerID:()=>ys,selectVideoPlaylistVideoTrackByPeerID:()=>Hs,selectVideoTrackByPeerID:()=>mt});var Et=R(require("immer")),Ct=R(require("zustand/vanilla")),At=R(require("zustand/shallow")),xt=R(require("@100mslive/hms-video"));var y;(function(n){n.Disconnected="Disconnected",n.Preview="Preview",n.Connecting="Connecting",n.Connected="Connected",n.Reconnecting="Reconnecting",n.Failed="Failed"})(y||(y={}));var Y=()=>({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:[]}),Q=()=>({jitter:0,packetsLost:0,peerStats:{},trackStats:{},localPeer:{id:""}});var ge;(function(e){e.CHAT="chat"})(ge||(ge={}));var P;(function(r){r.INFO="info",r.ERROR="error",r.CRITICAL="critical"})(P||(P={}));var h;(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"})(h||(h={}));var M;(function(t){t.audio="audio",t.video="video"})(M||(M={}));var a=R(require("@100mslive/hms-video"));var U=R(require("@100mslive/hms-video"));var tt=(s,e)=>{let t=ke(Object.keys(s),Object.keys(e));for(let r of t){let i=s[r],o=e[r];He(i,o)?(N(i.auxiliaryTracks,o.auxiliaryTracks)&&(o.auxiliaryTracks=i.auxiliaryTracks),Object.assign(i,o)):ye(i,o)?delete s[r]:fe(i,o)&&(s[r]=o)}},st=(s,e)=>{let t=ke(Object.keys(s),Object.keys(e));for(let r of t){let i=s[r],o=e[r];He(i,o)?(Bt(i,o),Object.assign(i,o)):ye(i,o)?delete s[r]:fe(i,o)&&(s[r]=o)}},Te=(s,e)=>{let t=ke(Object.keys(s),Object.keys(e));for(let r of t){let i=s[r],o=e[r];He(i,o)?Object.assign(i,o):ye(i,o)?delete s[r]:fe(i,o)&&(s[r]=o)}},Bt=(s,e)=>{s.plugins&&N(s.plugins,e.plugins)&&(e.plugins=s.plugins),s.layerDefinitions&&N(s.layerDefinitions,e.layerDefinitions)&&(e.layerDefinitions=s.layerDefinitions)},He=(s,e)=>s&&e,ye=(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},ke=(s,e)=>{let t=new Set;for(let r of s)t.add(r);for(let r of e)t.add(r);return Array.from(t)};var g=class{static convertPeer(e){var t,r,i;return{id:e.peerId,name:e.name,roleName:(t=e.role)==null?void 0:t.name,isLocal:e.isLocal,videoTrack:(r=e.videoTrack)==null?void 0:r.trackId,audioTrack:(i=e.audioTrack)==null?void 0:i.trackId,auxiliaryTracks:e.auxiliaryTracks.map(o=>o.trackId),customerUserId:e.customerUserId,customerDescription:e.metadata,metadata:e.metadata}}static convertTrack(e,t){let r={id:e.trackId,source:e.source,type:e.type,enabled:e.enabled,displayEnabled:e.enabled,peerId:e.peerId||t};return this.enrichTrack(r,e),r}static enrichTrack(e,t){let r=t.getMediaTrackSettings();e.source==="screen"&&e.type==="video"&&(e.displaySurface=r.displaySurface),e.height=r.height,e.width=r.width,t instanceof U.HMSRemoteAudioTrack&&(e.volume=t.getVolume()||0),g.updateDeviceID(e,t),g.enrichVideoTrack(e,t),g.enrichPluginsDetails(e,t)}static updateDeviceID(e,t){var r;t instanceof 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,i,o,n,S,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:!!((i=e.recording)==null?void 0:i.browser.running)},server:{running:!!((o=e.recording)==null?void 0:o.server.running)}},rtmp:{running:!!((n=e.rtmp)==null?void 0:n.running)},hls:{running:!!((S=e.hls)==null?void 0:S.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,i;return{sender:e.sender.peerId,senderName:e.sender.name,senderRole:(t=e.sender.role)==null?void 0:t.name,senderUserId:e.sender.customerUserId,recipientPeer:(r=e.recipientPeer)==null?void 0:r.peerId,recipientRoles:(i=e.recipientRoles)==null?void 0:i.map(o=>o.name),time:e.time,type:e.type,message:e.message}}static convertRoles(e){let t={};return e&&e.forEach(r=>{t[r.name]=r}),t}static convertRoleChangeRequest(e){return{requestedBy:e.requestedBy.peerId,roleName:e.role.name,token:e.token}}static convertException(e){return{code:e.code,action:e.action,name:e.name,message:e.message,description:e.description,isTerminal:e.isTerminal,nativeError:e.nativeError,timestamp:new Date}}static convertDeviceChangeUpdate(e){let t={devices:e.devices,selection:e.selection,type:e.type};return e.error&&(t.error=this.convertException(e.error)),t}static convertPlaylist(e){let t=this.getConvertedPlaylistType(e,M.audio),r=this.getConvertedPlaylistType(e,M.video);return{audio:t,video:r}}static convertPlaylistItem(e,t){let r=t.type,i=e.getCurrentSelection(r),o=e.isPlaying(r),n=t.url===(i==null?void 0:i.url);return j(V({},t),{type:t.type,selected:n,playing:n&&o})}static convertConnectionStats(e){let t=V({},e);return delete t.rawStatsArray,delete t.rawStats,t}static getConvertedPlaylistType(e,t){let r={},i=e.getCurrentSelection(t),o=e.getCurrentProgress(t),n=e.getVolume(t),S=e.getList(t),d=e.getCurrentIndex(t);return e.getList(t).forEach(I=>{r[I.id]=g.convertPlaylistItem(e,I)}),{list:r,selection:{id:i==null?void 0:i.id,hasPrevious:d>0,hasNext:d<S.length-1},progress:o,volume:n,currentTime:e.getCurrentTime(t),playbackRate:e.getPlaybackRate(t)}}static convertRecordingStreamingState(e,t,r){var i,o;return{recording:{browser:{running:!!((i=e==null?void 0:e.browser)==null?void 0:i.running)},server:{running:!!((o=e==null?void 0:e.server)==null?void 0:o.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=R(require("reselect"));function B(s,e,t=qt){let r,i;if(e)for(let o of e.auxiliaryTracks){let n=s[o];t(n)&&(i=z(n)?n:i,r=X(n)?n:r)}return{video:r,audio:i}}function z(s){return s&&s.type==="audio"}function X(s){return s&&s.type==="video"}function qt(s){return s&&s.source==="screen"}function le(s){return s&&s.source==="audioplaylist"}function Z(s){return s&&s.source==="videoplaylist"}function rt(s){return Boolean(s==null?void 0:s.degraded)}function W(s,e){return e&&s.tracks[e]?s.tracks[e].enabled:!1}function it(s,e){return e&&s.tracks[e]?s.tracks[e].displayEnabled:!1}var b=s=>s.room,v=s=>s.peers,Pe=s=>s.messages.byID,Ie=s=>s.messages.allIDs,T=s=>s.tracks,Re=s=>s.settings,jt=s=>s.devices,ot=s=>s.speakers,Wt=(0,u.createSelector)([b],s=>s&&s.isConnected),$t=(0,u.createSelector)(b,s=>s.peers.length),Se=(0,u.createSelector)([b,v],(s,e)=>s.peers.map(t=>e[t])),Ft=(0,u.createSelector)(T,s=>Object.values(s)),E=(0,u.createSelector)(b,v,(s,e)=>e[s.localPeer]),K=(0,u.createSelector)(b,s=>s.localPeer),C=(0,u.createSelector)(E,s=>s==null?void 0:s.audioTrack),A=(0,u.createSelector)(E,s=>s==null?void 0:s.videoTrack),Gt=(0,u.createSelector)(E,s=>s==null?void 0:s.auxiliaryTracks),ve=(0,u.createSelector)([C,A,Gt],(s,e,t)=>{let r=[...t];return s&&r.unshift(s),e&&r.unshift(e),r}),Jt=(0,u.createSelector)(Se,s=>s.filter(e=>!e.isLocal)),Yt=(0,u.createSelector)(v,ot,(s,e)=>{let t=Object.entries(e).sort((r,i)=>{var S,d;let o=((S=r[1])==null?void 0:S.audioLevel)||0;return(((d=i[1])==null?void 0:d.audioLevel)||0)>o?1:-1});if(t.length>0&&t[0][1].audioLevel&&t[0][1].audioLevel>0){let r=t[0][1].peerID;if(r in s)return s[r]}return null}),Qt=s=>{let e=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)},De=s=>{let e=E(s);return it(s,e==null?void 0:e.videoTrack)},ue=(0,u.createSelector)(E,T,(s,e)=>{let{video:t,audio:r}=B(e,s);return!!(t||r)}),nt=(0,u.createSelector)(v,T,(s,e)=>{let t;for(let r in s){let i=s[r],{video:o,audio:n}=B(e,i);if(o)return i;n&&!t&&(t=i)}return t}),zt=(0,u.createSelector)(nt,s=>!!s),Xt=(0,u.createSelector)(v,T,(s,e)=>{for(let t in s){let r=s[t],{audio:i,video:o}=B(e,r);if(!o&&!!i)return r}}),Zt=(0,u.createSelector)(v,T,(s,e)=>{let t=[],r=[];for(let i in s){let o=s[i],{video:n,audio:S}=B(e,o);n?t.push(o):S&&r.push(o)}return t.concat(r)}),es=(0,u.createSelector)(v,T,(s,e)=>{for(let t in e){let r=e[t];if(Z(r)&&X(r)&&r.peerId)return s[r.peerId]}}),ts=(0,u.createSelector)(v,T,(s,e)=>{for(let t in e){let r=e[t];if(le(r)&&r.peerId)return s[r.peerId]}}),ss=(0,u.createSelector)(Ft,s=>s.filter(rt)),be=(0,u.createSelector)(Ie,s=>s.length),rs=(0,u.createSelector)(Pe,s=>Object.values(s).filter(e=>!e.read).length),ee=(0,u.createSelector)(Ie,Pe,(s,e)=>{let t=[];return s.forEach(r=>{t.push(e[r])}),t}),x=(0,u.createSelector)([b],s=>s&&s.roomState),is=(0,u.createSelector)(x,s=>s===y.Preview),Ee=(0,u.createSelector)(b,s=>s.roomState!==y.Disconnected),_=s=>s.roles,os=(0,u.createSelector)([_],s=>Object.keys(s)),te=(0,u.createSelector)([E,_],(s,e)=>(s==null?void 0:s.roleName)?e[s.roleName]:null),ns=(0,u.createSelector)([te],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)(te,s=>s==null?void 0:s.permissions),as=(0,u.createSelector)(b,s=>s.recording),cs=(0,u.createSelector)(b,s=>s.rtmp),ls=(0,u.createSelector)(b,s=>s.hls),Ss=(0,u.createSelector)(b,s=>s.sessionId),ds=(0,u.createSelector)(b,s=>s.startedAt);var Ae=R(require("reselect"));var at=(s=M.audio)=>e=>e.playlist[s].list,xe=(s=M.audio)=>e=>e.playlist[s].selection,ct=(s=M.audio)=>e=>e.playlist[s].progress,lt=(s=M.audio)=>e=>e.playlist[s].currentTime,St=(s=M.audio)=>e=>e.playlist[s].playbackRate,dt=(s=M.audio)=>e=>e.playlist[s].volume,ut=(s=M.audio)=>(0,Ae.createSelector)(at(s),e=>Object.values(e)),pt=(s=M.audio)=>(0,Ae.createSelector)(at(s),xe(s),(e,t)=>{if(!!t.id)return e[t.id]}),Le={selection:xe(M.audio),progress:ct(M.audio),currentTime:lt(M.audio),playbackRate:St(M.audio),volume:dt(M.audio),list:ut(M.audio),selectedItem:pt(M.audio)},Oe={selection:xe(M.video),progress:ct(M.video),currentTime:lt(M.video),playbackRate:St(M.video),volume:dt(M.video),list:ut(M.video),selectedItem:pt(M.video)};var k=R(require("reselect"));function p(s){return e=>t=>s(t,e)}var se="HMS-Store:",m=class{static v(e,...t){this.log(a.HMSLogLevel.VERBOSE,e,...t)}static d(...e){this.log(a.HMSLogLevel.DEBUG,...e)}static i(...e){this.log(a.HMSLogLevel.INFO,...e)}static w(...e){this.log(a.HMSLogLevel.WARN,...e)}static e(...e){this.log(a.HMSLogLevel.ERROR,...e)}static time(e){this.log(a.HMSLogLevel.TIME,"[HMSPerformanceTiming]",e)}static timeEnd(e){this.log(a.HMSLogLevel.TIMEEND,"[HMSPerformanceTiming]",e,e)}static cleanUp(){performance.clearMarks(),performance.clearMeasures()}static log(e,...t){if(!(this.level.valueOf()>e.valueOf()))switch(e){case a.HMSLogLevel.VERBOSE:{console.log(se,...t);break}case a.HMSLogLevel.DEBUG:{console.debug(se,...t);break}case a.HMSLogLevel.INFO:{console.info(se,...t);break}case a.HMSLogLevel.WARN:{console.warn(se,...t);break}case a.HMSLogLevel.ERROR:{console.error(se,...t);break}case a.HMSLogLevel.TIME:{performance.mark(t[1]);break}case a.HMSLogLevel.TIMEEND:{let r=t[0],i=t[1];try{let o=performance.measure(i,i);this.log(a.HMSLogLevel.DEBUG,r,i,o==null?void 0:o.duration),performance.clearMarks(i),performance.clearMeasures(i)}catch(o){this.log(a.HMSLogLevel.DEBUG,r,i,o)}break}}}};m.level=a.HMSLogLevel.VERBOSE;var we=(s,e)=>e,us=(s,e)=>e,Mt=(s,e)=>e,D=(0,k.createSelector)([v,we],(s,e)=>e?s[e]:null),Ne=(0,k.createSelector)([T,us],(s,e)=>e?s[e]:null),O=p(D),Ue=p((0,k.createSelector)(D,s=>s==null?void 0:s.name)),re=p(Ne),mt=p((s,e)=>{let t=D(s,e);if(t&&t.videoTrack&&t.videoTrack!=="")return s.tracks[t.videoTrack]}),ht=p((s,e)=>{let t=D(s,e);if(t&&t.audioTrack&&t.audioTrack!=="")return s.tracks[t.audioTrack]}),ps=mt,Ms=p((s,e)=>{let t=D(s,e);return(t==null?void 0:t.auxiliaryTracks.map(r=>s.tracks[r]))||[]}),gt=(s,e)=>e?s.speakers[e]:null,ms=p((0,k.createSelector)(gt,s=>(s==null?void 0:s.audioLevel)||0)),hs=(s,e)=>{let t=ht(e)(s);return gt(s,t==null?void 0:t.id)},gs=p((0,k.createSelector)(hs,s=>(s==null?void 0:s.audioLevel)||0)),Ts=p((s,e)=>{let t=D(s,e);if(t){let r=t==null?void 0:t.auxiliaryTracks.find(i=>z(s.tracks[i]));return r?s.tracks[r]:void 0}}),Hs=p((0,k.createSelector)(T,D,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let i=s[r];return Z(i)&&X(i)});return t?s[t]:void 0})),ys=p((0,k.createSelector)(T,D,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let i=s[r];return Z(i)&&z(i)});return t?s[t]:void 0})),fs=p((0,k.createSelector)(T,D,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let i=s[r];return le(i)&&z(i)});return t?s[t]:void 0})),_e=p((0,k.createSelector)(T,D,(s,e)=>B(s,e))),ks=s=>(0,k.createSelector)(_e(s),e=>e.video),Ke=s=>(0,k.createSelector)(_e(s),e=>e.audio),Ps=p((s,e)=>{let t=D(s,e);return W(s,t==null?void 0:t.audioTrack)}),Is=p((s,e)=>{let t=D(s,e);return W(s,t==null?void 0:t.videoTrack)}),Ve=p((s,e)=>{if(e&&s.tracks[e])return s.tracks[e].volume===0}),Rs=p((s,e)=>{let t=D(s,e);return Ve(t==null?void 0:t.audioTrack)(s)}),vs=p((s,e)=>{let t=Ke(e)(s);return Ve(t==null?void 0:t.id)(s)}),Be=p((s,e)=>{let t=Ne(s,e);if(t){if(t.type!=="audio"){m.w("Please pass audio track here");return}return t.volume}}),Ds=p((s,e)=>{let t=D(s,e);return Be(t==null?void 0:t.audioTrack)(s)}),bs=p((s,e)=>{let t=Ke(e)(s);return Be(t==null?void 0:t.id)(s)}),Es=p((s,e)=>{let t=Ne(s,e);if(t){if(t.type!=="video"){m.w("Please pass video track here");return}return t.layer}}),Tt=(0,k.createSelector)([ee,K,we],(s,e,t)=>{if(!!t)return s.filter(r=>{var i;return!r.recipientPeer&&!((i=r.recipientRoles)==null?void 0:i.length)||![e,t].includes(r.sender)?!1:[e,t].includes(r.recipientPeer)})}),Ht=(0,k.createSelector)([ee,Mt],(s,e)=>{if(!!e)return s.filter(t=>{var r,i;return((r=t.recipientRoles)==null?void 0:r.length)?(i=t.recipientRoles)==null?void 0:i.includes(e):!1})}),yt=(0,k.createSelector)(ee,s=>s.filter(e=>{var t;return!e.recipientPeer&&!((t=e.recipientRoles)==null?void 0:t.length)})),Cs=(0,k.createSelector)([Ht,Mt],s=>s?s.filter(e=>!e.read).length:0),As=(0,k.createSelector)([Tt,we],s=>s?s.filter(e=>!e.read).length:0),xs=(0,k.createSelector)(yt,s=>s.filter(e=>!e.read).length),Ls=p(Tt),Os=p(Ht),ws=p(Cs),Ns=p(As),Us=s=>(0,k.createSelector)([Se],e=>e.filter(t=>t.roleName===s)),_s=s=>(0,k.createSelector)(O(s),e=>{try{return(e==null?void 0:e.metadata)&&e.metadata!==""?JSON.parse(e.metadata):{}}catch(t){return console.error("cannot parse peer metadata",t),{}}});var pe=R(require("reselect")),Ks=(0,pe.createSelector)([v,T],(s,e)=>Object.values(s).map(r=>{var i;return{peer:r,isAudioEnabled:r.audioTrack?(i=e[r.audioTrack])==null?void 0:i.enabled:!1}})),Vs=s=>s.roleChangeRequests[0]||null,Bs=(0,pe.createSelector)([Vs,v,_],(s,e,t)=>s?{requestedBy:e[s.requestedBy],role:t[s.roleName],token:s.token}:null),qs=(0,pe.createSelector)([te],s=>{var i;let e=!1,t=!1,r=!1;return((i=s==null?void 0:s.publishParams)==null?void 0:i.allowed)&&(e=s.publishParams.allowed.includes("video"),t=s.publishParams.allowed.includes("audio"),r=s.publishParams.allowed.includes("screen")),{video:e,audio:t,screen:r}});var $=R(require("reselect"));var js=s=>(0,$.createSelector)([_],e=>e[s]),Ws=(0,$.createSelector)([A,T],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),$s=(0,$.createSelector)([C,T],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),Fs=s=>(0,$.createSelector)([Ws],e=>e.includes(s)),Gs=s=>(0,$.createSelector)([$s],e=>e.includes(s));var ie=R(require("@100mslive/hms-video"));var Me=R(require("@100mslive/hms-video"));function ft(s){return s instanceof Me.HMSRemoteAudioTrack||s instanceof Me.HMSRemoteVideoTrack}var me=class{constructor(e,t,r,i){this.playlistManager=e;this.syncPlaylistState=r;this.store=i;this.type=t}play(e){return 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===M.audio?Le:Oe,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 kt={[a.HMSPeerUpdate.PEER_JOINED]:h.PEER_JOINED,[a.HMSPeerUpdate.PEER_LEFT]:h.PEER_LEFT,[a.HMSPeerUpdate.ROLE_UPDATED]:h.ROLE_UPDATED,[a.HMSPeerUpdate.AUDIO_TOGGLED]:"PEER_AUDIO_UPDATED",[a.HMSPeerUpdate.VIDEO_TOGGLED]:"PEER_VIDEO_UPDATED",[a.HMSPeerUpdate.NAME_UPDATED]:h.NAME_UPDATED,[a.HMSPeerUpdate.METADATA_UPDATED]:h.METADATA_UPDATED},Pt={[a.HMSTrackUpdate.TRACK_ADDED]:h.TRACK_ADDED,[a.HMSTrackUpdate.TRACK_REMOVED]:h.TRACK_REMOVED,[a.HMSTrackUpdate.TRACK_MUTED]:h.TRACK_MUTED,[a.HMSTrackUpdate.TRACK_UNMUTED]:h.TRACK_UNMUTED,[a.HMSTrackUpdate.TRACK_DEGRADED]:h.TRACK_DEGRADED,[a.HMSTrackUpdate.TRACK_RESTORED]:h.TRACK_RESTORED},It={[a.HMSPeerUpdate.PEER_JOINED]:"peerJoined",[a.HMSPeerUpdate.PEER_LEFT]:"peerLeft",[a.HMSPeerUpdate.NAME_UPDATED]:"peerNameUpdated",[a.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,g.convertPlaylist(this.sdk.getPlaylistManager()))},e)};this.sendPeerUpdateNotification=(e,t)=>{let r=this.store.getState(O(t.peerId)),i="peerUpdate";i=It[e],this.syncRoomState(i),r||(r=this.store.getState(O(t.peerId))),this.hmsNotifications.sendPeerUpdate(e,r)};this.setState=(e,t)=>this.store.namedSetState(e,t);this.store=e,this.sdk=t,this.hmsNotifications=r}unblockAudio(){return 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(Ee)){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(C);t&&(yield this.setEnabledTrack(t,e))})}setLocalVideoEnabled(e){return c(this,null,function*(){let t=this.store.getState(A);t&&(yield this.setEnabledTrack(t,e))})}setEnabledTrack(e,t){return c(this,null,function*(){var o;if(((o=this.store.getState().tracks[e])==null?void 0:o.enabled)===t){this.logPossibleInconsistency(`local track[${e}] enabled state - ${t}`);return}this.setState(n=>{n.tracks[e]?n.tracks[e].displayEnabled=t:this.logPossibleInconsistency("track id not found for setEnabled")},"displayEnabled");try{yield this.setEnabledSDKTrack(e,t),this.syncRoomState("setEnabled")}catch(n){throw this.setState(S=>{S.tracks[e].displayEnabled=!t},"rollbackDisplayEnabled"),this.hmsNotifications.sendError(g.convertException(n)),n}let i=t?a.HMSTrackUpdate.TRACK_UNMUTED:a.HMSTrackUpdate.TRACK_MUTED;this.hmsNotifications.sendTrackUpdate(i,e)})}setAudioSettings(e){return c(this,null,function*(){let t=this.store.getState(C);t&&(yield this.setSDKLocalAudioTrackSettings(t,e),this.syncRoomState("setAudioSettings"))})}setVideoSettings(e){return c(this,null,function*(){let t=this.store.getState(A);t&&(yield this.setSDKLocalVideoTrackSettings(t,e),this.syncRoomState("setVideoSettings"))})}sendMessage(e){this.sendBroadcastMessage(e)}sendBroadcastMessage(e,t){return c(this,null,function*(){let r=yield this.sdk.sendBroadcastMessage(e,t);this.updateMessageInStore(r,{message:e,type:t})})}sendGroupMessage(e,t,r){return c(this,null,function*(){let i=this.store.getState(_),o=t.map(S=>i[S]),n=yield this.sdk.sendGroupMessage(e,o,r);this.updateMessageInStore(n,{message:e,recipientRoles:t,type:r})})}sendDirectMessage(e,t,r){return c(this,null,function*(){let i=this.hmsSDKPeers[t],o=yield this.sdk.sendDirectMessage(e,i,r);this.updateMessageInStore(o,{message:e,recipientPeer:i.peerId,type:r})})}updateMessageInStore(e,t){if(!e)throw m.w("sendMessage","Failed to send message",t),Error(`sendMessage Failed - ${JSON.stringify(t)}`);let r=g.convertMessage(e);return r.read=!0,r.senderName="You",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(i=>{r.messages.byID[i].read=e})},"setMessageRead")}attachVideo(e,t){return c(this,null,function*(){if(this.localAndVideoUnmuting(e))return new Promise(r=>{let i=this.store.subscribe(o=>c(this,null,function*(){o&&(yield this.attachVideoInternal(e,t),i(),r())}),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 i=this.hmsSDKPeers[e];if(!i){this.logPossibleInconsistency(`Unknown peer ID given ${e} for changerole`);return}yield this.sdk.changeRole(i,t,r)})}acceptChangeRole(e){return c(this,null,function*(){let t=e.requestedBy?this.hmsSDKPeers[e.requestedBy.id]:void 0;t||m.w(`peer for which role change is requested no longer available - ${e.requestedBy}`);let r={requestedBy:t,role:e.role,token:e.token};yield this.sdk.acceptChangeRole(r),this.removeRoleChangeRequest(e)})}rejectChangeRole(e){this.removeRoleChangeRequest(e)}endRoom(e,t){return c(this,null,function*(){let r=this.store.getState(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&&ft(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(i=>r[i])}yield this.sdk.changeMultiTrackState(t)})}setLogLevel(e){m.level=e,this.sdk.setLogLevel(e)}resetState(e="resetState"){this.setState(t=>{Object.assign(t,Y())},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(V({},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(i=>{N(i.devices.audioInput,t.audioInput)||(i.devices.audioInput=t.audioInput),N(i.devices.videoInput,t.videoInput)||(i.devices.videoInput=t.videoInput),N(i.devices.audioOutput,t.audioOutput)||(i.devices.audioOutput=t.audioOutput),this.hmsSDKPeers[r==null?void 0:r.id]&&Object.assign(i.settings,this.getMediaSettings(this.hmsSDKPeers[r==null?void 0:r.id]))},"deviceChange"),e.selection){let i=g.convertDeviceChangeUpdate(e);this.hmsNotifications.sendDeviceChange(i)}}sdkPreviewWithListeners(e){return c(this,null,function*(){yield this.sdk.preview(e,{onPreview:this.onPreview.bind(this),onError:this.onError.bind(this),onDeviceChange:this.onDeviceChange.bind(this)}),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=[],i={},o={},n={},S=this.sdk.getPeers();for(let f of S){let w=g.convertPeer(f);t[w.id]=w,r.push(w.id),this.hmsSDKPeers[w.id]=f;let G=[f.audioTrack,f.videoTrack,...f.auxiliaryTracks];for(let ce of G){if(!ce)continue;let Ye=g.convertTrack(ce);i[Ye.id]=Ye,o[ce.trackId]=ce}w.isLocal&&Object.assign(n,this.getMediaSettings(f))}let d=this.sdk.getRecordingState(),I=this.sdk.getRTMPState(),ae=this.sdk.getHLSState();this.setState(f=>{f.room.peers=r;let w=f.peers,G=f.tracks;tt(w,t),st(G,i),Object.assign(f.settings,n),this.hmsSDKTracks=o,Object.assign(f.roles,g.convertRoles(this.sdk.getRoles())),Object.assign(f.playlist,g.convertPlaylist(this.sdk.getPlaylistManager())),Object.assign(f.room,g.convertRecordingStreamingState(d,I,ae))},e),m.timeEnd(`store-sync-${e}`)}onPreview(e){this.setState(t=>{Object.assign(t.room,g.convertRoom(e)),t.room.roomState=y.Preview},"previewStart"),this.syncRoomState("previewSync")}onJoin(e){let t=this.sdk.getPlaylistManager();this.audioPlaylist=new me(t,M.audio,this.syncPlaylistState.bind(this),this.store),this.videoPlaylist=new me(t,M.video,this.syncRoomState.bind(this),this.store),this.syncRoomState("joinSync"),this.setState(r=>{Object.assign(r.room,g.convertRoom(e)),r.room.isConnected=!0,r.room.roomState=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(g.convertPlaylistItem(t,r)),this.syncPlaylistState(`${r.type}PlaylistItemEnded`)})}onRoomUpdate(e,t){this.setState(r=>{Object.assign(r.room,g.convertRoom(t))},"RoomUpdate")}onPeerUpdate(e,t){if(![a.HMSPeerUpdate.BECAME_DOMINANT_SPEAKER,a.HMSPeerUpdate.RESIGNED_DOMINANT_SPEAKER].includes(e)){if(Array.isArray(t)){this.syncRoomState("peersJoined");let r=[];for(let i of t){let o=this.store.getState(O(i.peerId));o&&r.push(o)}this.hmsNotifications.sendPeerList(r);return}this.sendPeerUpdateNotification(e,t)}}onTrackUpdate(e,t,r){if(e===a.HMSTrackUpdate.TRACK_REMOVED)this.hmsNotifications.sendTrackUpdate(e,t.trackId),this.handleTrackRemove(t,r);else{let i=e===a.HMSTrackUpdate.TRACK_ADDED?"trackAdded":"trackUpdate";this.syncRoomState(i),this.hmsNotifications.sendTrackUpdate(e,t.trackId)}}onMessageReceived(e){let t=g.convertMessage(e);t.read=!1,this.onHMSMessage(t),this.hmsNotifications.sendMessageReceived(t)}onHMSMessage(e){this.setState(t=>{e.id=String(this.store.getState(be)+1),t.messages.byID[e.id]=e,t.messages.allIDs.push(e.id)},"newMessage")}onAudioLevelUpdate(e){this.setState(t=>{let r={};e.forEach(o=>{if(!o.track||!o.peer)return;let n=o.track.trackId;r[n]=o.audioLevel,t.speakers[n]||(t.speakers[n]={audioLevel:o.audioLevel,peerID:o.peer.peerId,trackID:n})});let i=Object.entries(t.speakers);for(let[o,n]of i)n.audioLevel=r[o]||0,n.audioLevel===0&&delete t.speakers[o]},"audioLevel")}onChangeTrackStateRequest(e){let t=this.store.getState(O(e.requestedBy.peerId)),r=this.getStoreLocalTrackIDfromSDKTrack(e.track),i=this.store.getState(re(r));if(!t)return this.logPossibleInconsistency(`Not found peer who requested track state change, ${e.requestedBy}`);if(!i)return this.logPossibleInconsistency(`Not found track for which track state change was requested, ${e.track}`);e.enabled||this.syncRoomState("changeTrackStateRequest"),this.hmsNotifications.sendChangeTrackStateRequest({requestedBy:t,track:i,enabled:e.enabled})}onChangeMultiTrackStateRequest(e){let t=this.store.getState(O(e.requestedBy.peerId));if(!t)return this.logPossibleInconsistency(`Not found peer who requested track state change, ${e.requestedBy}`);e.enabled||this.syncRoomState("changeMultiTrackStateRequest");let r=[],i=this.store.getState(T);for(let o of e.tracks){let n=this.getStoreLocalTrackIDfromSDKTrack(o);n&&i[n]&&r.push(i[n])}this.hmsNotifications.sendChangeMultiTrackStateRequest({requestedBy:t,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=g.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=g.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(i=>{i.errors.push(t)},"error"),this.hmsNotifications.sendError(t),m.e("received error from sdk",t)}updateVideoLayer(e,t){let r=this.hmsSDKTracks[e];r&&r instanceof ie.HMSRemoteVideoTrack&&this.setState(i=>{i.tracks[e].layer=r.getSimulcastLayer()},t)}handleTrackRemove(e,t){this.setState(r=>{let i=r.peers[t.peerId],o=r.tracks,n=e.trackId;if(this.isSameStoreSDKTrack(n,i==null?void 0:i.audioTrack))i==null||delete i.audioTrack;else if(this.isSameStoreSDKTrack(n,i==null?void 0:i.videoTrack))i==null||delete i.videoTrack;else{let S=i==null?void 0:i.auxiliaryTracks.indexOf(n);S>-1&&this.isSameStoreSDKTrack(n,i==null?void 0:i.auxiliaryTracks[S])&&(i==null||i.auxiliaryTracks.splice(S,1))}delete o[n],delete this.hmsSDKTracks[n]},"trackRemoved")}setEnabledSDKTrack(e,t){return c(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setEnabled(t):this.logPossibleInconsistency(`track ${e} not present, unable to enabled/disable`)})}setSDKLocalVideoTrackSettings(e,t){return c(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}setSDKLocalAudioTrackSettings(e,t){return c(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}getMediaSettings(e){var o;let t=this.store.getState(Re),r=e.audioTrack,i=e.videoTrack;return{audioInputDeviceId:(r==null?void 0:r.settings.deviceId)||t.audioInputDeviceId,videoInputDeviceId:(i==null?void 0:i.settings.deviceId)||t.videoInputDeviceId,audioOutputDeviceId:(o=this.sdk.getAudioOutput().getDevice())==null?void 0:o.deviceId}}setTrackVolume(e,t){let r=this.hmsSDKTracks[t];r?r instanceof ie.HMSAudioTrack?(r.setVolume(e),this.setState(i=>{let o=i.tracks[t];o&&(o.volume=e)},"trackVolume")):m.w(`track ${t} is not an audio track`):this.logPossibleInconsistency(`track ${t} not present, unable to set volume`)}localAndVideoUnmuting(e){if(this.store.getState(E).videoTrack!==e)return!1;let r=this.store.getState(De),i=this.store.getState(de);return r&&!i}logPossibleInconsistency(e){m.w("possible inconsistency detected - ",e)}addRemoveVideoPlugin(e,t,r){return c(this,null,function*(){if(!e){m.w("Invalid plugin received in store");return}let i=this.store.getState(A);if(i){let o=this.hmsSDKTracks[i];o?(t==="add"?yield o.addPlugin(e,r):t==="remove"&&(yield o.removePlugin(e)),this.syncRoomState(`${t}VideoPlugin`)):this.logPossibleInconsistency(`track ${i} not present, unable to remove plugin`)}})}addRemoveAudioPlugin(e,t){return c(this,null,function*(){if(!e){m.w("Invalid plugin received in store");return}let r=this.store.getState(C);if(r){let i=this.hmsSDKTracks[r];i?(t==="add"?yield i.addPlugin(e):t==="remove"&&(yield i.removePlugin(e)),this.syncRoomState(`${t}AudioPlugin`)):this.logPossibleInconsistency(`track ${r} not present, unable to remove plugin`)}})}isSameStoreSDKTrack(e,t){var r;return t?((r=this.hmsSDKTracks[t])==null?void 0:r.trackId)===e:!1}onRoleChangeRequest(e){this.setState(t=>{t.roleChangeRequests.length===0&&t.roleChangeRequests.push(g.convertRoleChangeRequest(e))},"roleChangeRequest")}removeRoleChangeRequest(e){this.setState(t=>{let r=t.roleChangeRequests.findIndex(i=>i.token===e.token);r!==-1&&t.roleChangeRequests.splice(r,1)},"removeRoleChangeRequest")}onRoleUpdate(){this.syncRoomState("roleUpdate")}getStoreLocalTrackIDfromSDKTrack(e){return this.store.getState(ve).find(r=>this.hmsSDKTracks[r].trackId===e.trackId)}};var Rt=R(require("eventemitter2"));var je="hmsNotification",We=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 Rt.EventEmitter2}sendPlaylistTrackEnded(e){let t=this.createNotification(h.PLAYLIST_TRACK_ENDED,e,P.INFO);this.emitEvent(t)}sendDeviceChange(e){var r;let t=this.createNotification(h.DEVICE_CHANGE_UPDATE,e,e.error?P.ERROR:P.INFO,`Selected ${e.type} device - ${(r=e.selection)==null?void 0:r.label}`);this.emitEvent(t)}sendLeaveRoom(e){var i;let t=(i=e.requestedBy)==null?void 0:i.name,r=this.createNotification(e.roomEnded||!t?h.ROOM_ENDED:h.REMOVED_FROM_ROOM,e,P.INFO,`${e.roomEnded?"Room ended":"Removed from room"} ${t?`by ${t}`:""}`);this.emitEvent(r)}sendPeerList(e){let t=this.createNotification(h.PEER_LIST,e,P.INFO);this.emitEvent(t)}sendPeerUpdate(e,t){let r=this.store.getState(O(t==null?void 0:t.id))||t,i=kt[e];if(i){let o=this.createNotification(i,r,P.INFO);this.emitEvent(o)}}sendTrackUpdate(e,t){let r=this.store.getState(re(t)),i=Pt[e];if(i){let o=this.createNotification(i,r,P.INFO);this.emitEvent(o)}}sendMessageReceived(e){let t=this.createNotification(h.NEW_MESSAGE,e,P.INFO);this.emitEvent(t)}sendError(e){let t=this.createNotification(h.ERROR,e,P.ERROR);this.emitEvent(t)}sendReconnecting(e){let t=this.createNotification(h.RECONNECTING,e,P.ERROR);this.emitEvent(t)}sendReconnected(){let e=this.createNotification(h.RECONNECTED,null,P.INFO);this.emitEvent(e)}sendChangeTrackStateRequest(e){let t=this.createNotification(h.CHANGE_TRACK_STATE_REQUEST,e,P.INFO);this.emitEvent(t)}sendChangeMultiTrackStateRequest(e){let t=this.createNotification(h.CHANGE_MULTI_TRACK_STATE_REQUEST,e,P.INFO);this.emitEvent(t)}emitEvent(e){this.eventEmitter.emit(je,e)}createNotification(e,t,r,i=""){return this.id++,{id:this.id,type:e,message:i,data:t,severity:r}}};function $e(s){return s!=null}var vt=(s,e,t)=>{let r;t.getState(x)===y.Connected&&(r=Dt(s,e,t)),t.subscribe(i=>{[y.Connected,y.Reconnecting].includes(i)?r||(r=Dt(s,e,t)):r&&(Zs(e),r())},x)},Dt=(s,e,t)=>{var o;let r=Js(t,e),i=(o=s.getWebrtcInternals())==null?void 0:o.onStatsChange(n=>Ys(e,n,t));return()=>{r(),i&&i()}},Js=(s,e)=>{let t,r,i;return s.getState(K)?e.namedSetState(o=>{o.localPeer.id=s.getState(K)},"localpeer-id"):t=s.subscribe(o=>{o&&e.namedSetState(n=>{n.localPeer.id=o},"localpeer-id")},K),s.getState(A)?e.namedSetState(o=>{o.localPeer.videoTrack=s.getState(A)},"localpeer-videotrack-id"):r=s.subscribe(o=>{o&&e.namedSetState(n=>{n.localPeer.videoTrack=o},"localpeer-videotrack-id")},A),s.getState(C)?e.namedSetState(o=>{o.localPeer.videoTrack=s.getState(C)},"localpeer-audiotrack-id"):i=s.subscribe(o=>{o&&e.namedSetState(n=>{n.localPeer.videoTrack=o},"localpeer-audiotrack-id")},C),()=>{t==null||t(),r==null||r(),i==null||i()}},Ys=(s,e,t)=>{let r=t.getState(T);s.namedSetState(i=>{i.jitter=e.getJitter(),i.packetsLost=e.getPacketsLost();let o={},n=Object.keys(r);for(let d of n){let I=e.getTrackStats(d);I&&(o[d]=Xs(t,r[d],I,i.trackStats[d]))}Te(i.trackStats,o);let S=Qs(t,i.peerStats[t.getState(K)],e.getLocalPeerStats());Te(i.peerStats,S)},"webrtc-stats")},Qs=(s,e,t)=>{let r={},i=s.getState(K);return r[i]||(r[i]={}),e?r[i]=zs(t,e):(t.publish&&(r[i].publish=Object.assign(t.publish,{bitrate:0})),t.subscribe&&(r[i].subscribe=Object.assign(t.subscribe,{bitrate:0}))),r},zs=(s,e)=>{let t=Fe("bytesSent",s.publish,e==null?void 0:e.publish),r=Fe("bytesReceived",s.subscribe,e==null?void 0:e.subscribe),i=Object.assign(s.publish,{bitrate:t}),o=Object.assign(s.subscribe,{bitrate:r});return{publish:i,subscribe:o}},Xs=(s,e,t,r)=>{let i=Fe((t==null?void 0:t.type)==="outbound-rtp"?"bytesSent":"bytesReceived",t,r);return Object.assign(t,{peerID:e.peerId,peerName:s.getState(Ue(e.peerId)),bitrate:i})},Fe=(s,e,t)=>{let r=e&&e[s],i=t?t[s]:null;return e&&t&&$e(r)&&$e(i)?(r-i)/(e.timestamp-t.timestamp)*1e3*8:0},Zs=(s,e="resetState")=>{s.namedSetState(t=>{Object.assign(t,Q())},e)};var oe=class{constructor(e,t){this.hmsStore=e;this.sdk=t;this.store=L.createNewHMSStore("HMSInternalsStore",Q),this.getState=this.store.getState,this.subscribe=this.store.subscribe,this.getPublishPeerConnection=()=>new Promise(r=>{var i,o;this.hmsStore.getState(x)==="Connected"?r((o=(i=this.sdk)==null?void 0:i.getWebrtcInternals())==null?void 0:o.getPublishPeerConnection()):this.hmsStore.subscribe(n=>{var S,d;n==="Connected"&&r((d=(S=this.sdk)==null?void 0:S.getWebrtcInternals())==null?void 0:d.getPublishPeerConnection())},x)}),this.getSubscribePeerConnection=()=>new Promise(r=>{var i,o;this.hmsStore.getState(x)==="Connected"?r((o=(i=this.sdk)==null?void 0:i.getWebrtcInternals())==null?void 0:o.getSubscribePeerConnection()):this.hmsStore.subscribe(n=>{var S,d;n==="Connected"&&r((d=(S=this.sdk)==null?void 0:S.getWebrtcInternals())==null?void 0:d.getSubscribePeerConnection())},x)}),!!this.sdk&&vt(this.sdk,this.store,this.hmsStore)}};var he={};et(he,{availablePublishBitrate:()=>lr,availableSubscribeBitrate:()=>Sr,bitrateByTrackID:()=>hr,bytesReceivedByTrackID:()=>gr,framerateByTrackID:()=>Tr,jitter:()=>tr,jitterByTrackID:()=>Hr,localAudioTrackBitrate:()=>fr,localAudioTrackBytesSent:()=>Pr,localAudioTrackStats:()=>Je,localPeerStats:()=>q,localVideoTrackBitrate:()=>kr,localVideoTrackBytesSent:()=>Ir,localVideoTrackFramerate:()=>Rr,localVideoTrackQualityLimitationReason:()=>vr,localVideoTrackStats:()=>ne,packetsLost:()=>er,packetsLostByTrackID:()=>yr,peerStatsByID:()=>Mr,publishBitrate:()=>ar,subscribeBitrate:()=>cr,totalBytesReceived:()=>ur,totalBytesSent:()=>dr,trackStatsByID:()=>mr});var H=R(require("reselect"));var er=s=>s.packetsLost,tr=s=>s.jitter,sr=s=>s.localPeer.id,rr=s=>s.localPeer.audioTrack,ir=s=>s.localPeer.videoTrack,or=(s,e)=>e,nr=(s,e)=>e,Ge=s=>s.trackStats,bt=s=>s.peerStats,q=(0,H.createSelector)([bt,sr],(s,e)=>s[e]),ar=(0,H.createSelector)(q,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bitrate}),cr=(0,H.createSelector)(q,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bitrate}),lr=(0,H.createSelector)(q,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.availableOutgoingBitrate}),Sr=(0,H.createSelector)(q,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.availableIncomingBitrate}),dr=(0,H.createSelector)(q,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bytesSent}),ur=(0,H.createSelector)(q,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bytesReceived}),pr=(0,H.createSelector)([bt,or],(s,e)=>e?s[e]:void 0),F=(0,H.createSelector)([Ge,nr],(s,e)=>e?s[e]:void 0),Mr=p(pr),mr=p(F),hr=p((0,H.createSelector)(F,s=>s==null?void 0:s.bitrate)),gr=p((0,H.createSelector)(F,s=>s==null?void 0:s.bytesReceived)),Tr=p((0,H.createSelector)(F,s=>s==null?void 0:s.framesPerSecond)),Hr=p((0,H.createSelector)(F,s=>s==null?void 0:s.jitter)),yr=p((0,H.createSelector)(F,s=>s==null?void 0:s.packetsLost)),Je=(0,H.createSelector)([Ge,rr],(s,e)=>e?s[e]:void 0),ne=(0,H.createSelector)([Ge,ir],(s,e)=>e?s[e]:void 0),fr=(0,H.createSelector)(Je,s=>s==null?void 0:s.bitrate),kr=(0,H.createSelector)(ne,s=>s==null?void 0:s.bitrate),Pr=(0,H.createSelector)(Je,s=>s==null?void 0:s.bytesSent),Ir=(0,H.createSelector)(ne,s=>s==null?void 0:s.bytesSent),Rr=(0,H.createSelector)(ne,s=>s==null?void 0:s.framesPerSecond),vr=(0,H.createSelector)(ne,s=>s==null?void 0:s.qualityLimitationReason);var L=class{constructor(e,t,r){this.getWebrtcInternals=()=>(this.webrtcInternals||(this.webrtcInternals=new oe(this.store,this.sdk)),this.webrtcInternals);e?this.store=e:this.store=L.createNewHMSStore("HMSStore",Y),r?this.notifications=r:this.notifications=new We(this.store),t?this.actions=t:(this.sdk=new xt.HMSSdk,this.actions=new qe(this.store,this.sdk,this.notifications)),this.initialTriggerOnSubscribe=!1}triggerOnSubscribe(){this.initialTriggerOnSubscribe||(L.makeStoreTriggerOnSubscribe(this.store),this.initialTriggerOnSubscribe=!0)}getStore(){return this.store}getHMSActions(){return this.actions}getNotifications(){return{onNotification:this.notifications.onNotification}}static createNewHMSStore(e,t){let r=(0,Ct.default)(()=>t()),i=r.setState;r.setState=S=>{let d=typeof S=="function"?(0,Et.default)(S):S;i(d)};let o=r.getState;r.getState=S=>{if(S){let d=S.name||"byIDSelector";window.selectorsCount||(window.selectorsCount={}),window.selectorsCount[d]=(window.selectorsCount[d]||0)+1;let I=performance.now(),ae=S(o()),f=performance.now()-I;return f>1&&(window.expensiveSelectors=window.expensiveSelectors||new Map,window.expensiveSelectors.set(d,f)),ae}return o()},L.useShallowCheckInSubscribe(r);let n=L.setUpDevtools(r,e);return j(V({},r),{namedSetState:n})}static makeStoreTriggerOnSubscribe(e){let t=e.subscribe;e.subscribe=(r,i,o)=>(r(e.getState(i),void 0),t(r,i,o))}static useShallowCheckInSubscribe(e){let t=e.subscribe;e.subscribe=(r,i,o)=>(i||(i=n=>n),o=o||At.default,t(r,i,o))}static setUpDevtools(e,t){let r;try{r=window.__REDUX_DEVTOOLS_EXTENSION__||window.top.__REDUX_DEVTOOLS_EXTENSION__}catch(n){}if(!r)return n=>{e.setState(n)};let i=r.connect(L.devtoolsOptions(t));i.prefix=t?`${t} > `:"";let o=e.setState;return e.setState=n=>{o(n),i.send(`${i.prefix}setState`,e.getState())},i.subscribe(L.devtoolsSubscribe(i,e,o)),i.send("setUpStore",e.getState()),(n,S)=>{o(n);let d=S||`${i.prefix}action`;i.send(d,e.getState())}}static devtoolsOptions(e){return{name:e,actionsBlacklist:["audioLevel","playlistProgress"]}}static devtoolsSubscribe(e,t,r){return i=>{var o,n,S,d;if(i.type==="DISPATCH"&&i.state)["JUMP_TO_ACTION","JUMP_TO_STATE"].includes(i.payload.type)?r(JSON.parse(i.state)):t.setState(JSON.parse(i.state));else if(i.type==="DISPATCH"&&((o=i.payload)==null?void 0:o.type)==="COMMIT")e.init(t.getState());else if(i.type==="DISPATCH"&&((n=i.payload)==null?void 0:n.type)==="IMPORT_STATE"){let I=(S=i.payload.nextLiftedState)==null?void 0:S.actionsById;(((d=i.payload.nextLiftedState)==null?void 0:d.computedStates)||[]).forEach(({state:f},w)=>{let G=I[w]||`${e.prefix}setState`;w===0?e.init(f):(r(f),e.send(G,t.getState()))})}}}};
1
+ var Nt=Object.create;var Y=Object.defineProperty,Ut=Object.defineProperties,_t=Object.getOwnPropertyDescriptor,Kt=Object.getOwnPropertyDescriptors,Vt=Object.getOwnPropertyNames,ze=Object.getOwnPropertySymbols,Bt=Object.getPrototypeOf,Xe=Object.prototype.hasOwnProperty,qt=Object.prototype.propertyIsEnumerable;var Ze=(s,e,t)=>e in s?Y(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,q=(s,e)=>{for(var t in e||(e={}))Xe.call(e,t)&&Ze(s,t,e[t]);if(ze)for(var t of ze(e))qt.call(e,t)&&Ze(s,t,e[t]);return s},W=(s,e)=>Ut(s,Kt(e)),et=s=>Y(s,"__esModule",{value:!0});var tt=(s,e)=>{et(s);for(var t in e)Y(s,t,{get:e[t],enumerable:!0})},jt=(s,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Vt(e))!Xe.call(s,r)&&r!=="default"&&Y(s,r,{get:()=>e[r],enumerable:!(t=_t(e,r))||t.enumerable});return s},I=s=>jt(et(Y(s!=null?Nt(Bt(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,i)=>{var o=d=>{try{l(t.next(d))}catch(P){i(P)}},n=d=>{try{l(t.throw(d))}catch(P){i(P)}},l=d=>d.done?r(d.value):Promise.resolve(d.value).then(o,n);l((t=t.apply(s,e)).next())});tt(exports,{HMSAudioPluginType:()=>a.HMSAudioPluginType,HMSLogLevel:()=>a.HMSLogLevel,HMSMessageType:()=>He,HMSNotificationSeverity:()=>R,HMSNotificationTypes:()=>h,HMSPlaylistType:()=>M,HMSReactiveStore:()=>L,HMSRoomState:()=>y,HMSStats:()=>ae,HMSVideoPluginType:()=>a.HMSVideoPluginType,createDefaultStatsStore:()=>z,createDefaultStoreState:()=>Q,selectAudioPlaylist:()=>we,selectAudioPlaylistTrackByPeerID:()=>Rs,selectAudioTrackByPeerID:()=>gt,selectAudioTrackVolume:()=>je,selectAudioVolumeByPeerID:()=>As,selectAuxiliaryAudioByPeerID:()=>fs,selectAuxiliaryTracksByPeerID:()=>gs,selectAvailableRoleNames:()=>cs,selectBroadcastMessages:()=>ft,selectBroadcastMessagesUnreadCount:()=>ws,selectCameraStreamByPeerID:()=>hs,selectDegradedTracks:()=>os,selectDevices:()=>Ft,selectDominantSpeaker:()=>Xt,selectHLSState:()=>us,selectHMSMessages:()=>te,selectHMSMessagesCount:()=>Ae,selectHMSStats:()=>Te,selectIsAllowedToPublish:()=>$s,selectIsAllowedToSubscribe:()=>ls,selectIsAudioLocallyMuted:()=>qe,selectIsConnectedToRoom:()=>Gt,selectIsInPreview:()=>as,selectIsLocalAudioEnabled:()=>Zt,selectIsLocalAudioPluginPresent:()=>Qs,selectIsLocalScreenShared:()=>pe,selectIsLocalVideoDisplayEnabled:()=>Ee,selectIsLocalVideoEnabled:()=>ue,selectIsLocalVideoPluginPresent:()=>Ys,selectIsLocallyMutedByPeerID:()=>bs,selectIsPeerAudioEnabled:()=>vs,selectIsPeerVideoEnabled:()=>Ds,selectIsScreenShareLocallyMutedByPeerID:()=>Es,selectIsSomeoneScreenSharing:()=>es,selectLocalAudioTrackID:()=>A,selectLocalMediaSettings:()=>De,selectLocalPeer:()=>E,selectLocalPeerID:()=>K,selectLocalPeerRole:()=>se,selectLocalTrackIDs:()=>be,selectLocalVideoTrackID:()=>C,selectMessageIDsInOrder:()=>ve,selectMessagesByPeerID:()=>Ns,selectMessagesByRole:()=>Us,selectMessagesMap:()=>Ie,selectMessagesUnreadCountByPeerID:()=>Ks,selectMessagesUnreadCountByRole:()=>_s,selectPeerAudioByID:()=>ys,selectPeerByID:()=>O,selectPeerCount:()=>Jt,selectPeerMetadata:()=>Bs,selectPeerNameByID:()=>Ke,selectPeerScreenSharing:()=>at,selectPeerSharingAudio:()=>ts,selectPeerSharingAudioPlaylist:()=>is,selectPeerSharingVideoPlaylist:()=>rs,selectPeers:()=>de,selectPeersByRole:()=>Vs,selectPeersMap:()=>v,selectPeersScreenSharing:()=>ss,selectPeersWithAudioStatus:()=>qs,selectPermissions:()=>xe,selectRTMPState:()=>ds,selectRecordingState:()=>Ss,selectRemotePeers:()=>zt,selectRoleByRoleName:()=>Fs,selectRoleChangeRequest:()=>Ws,selectRolesMap:()=>_,selectRoom:()=>b,selectRoomStartTime:()=>Ms,selectRoomStarted:()=>Ce,selectRoomState:()=>x,selectScreenShareAudioByPeerID:()=>Be,selectScreenShareByPeerID:()=>Is,selectScreenSharesByPeerId:()=>Ve,selectScreenshareAudioVolumeByPeerID:()=>Cs,selectSessionId:()=>ps,selectSimulcastLayerByTrack:()=>xs,selectSpeakers:()=>nt,selectTrackAudioByID:()=>Ts,selectTrackByID:()=>ie,selectTracksMap:()=>H,selectUnreadHMSMessagesCount:()=>ns,selectVideoPlaylist:()=>Ne,selectVideoPlaylistAudioTrackByPeerID:()=>Ps,selectVideoPlaylistVideoTrackByPeerID:()=>ks,selectVideoTrackByPeerID:()=>ht});var xt=I(require("immer")),Lt=I(require("zustand/vanilla")),Ot=I(require("zustand/shallow")),wt=I(require("@100mslive/hms-video"));var y;(function(n){n.Disconnected="Disconnected",n.Preview="Preview",n.Connecting="Connecting",n.Connected="Connected",n.Reconnecting="Reconnecting",n.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:[]}),z=()=>({peerStats:{},trackStats:{},localPeer:{id:""}});var He;(function(e){e.CHAT="chat"})(He||(He={}));var R;(function(r){r.INFO="info",r.ERROR="error",r.CRITICAL="critical"})(R||(R={}));var h;(function(S){S.PEER_JOINED="PEER_JOINED",S.PEER_LEFT="PEER_LEFT",S.PEER_LIST="PEER_LIST",S.NEW_MESSAGE="NEW_MESSAGE",S.ERROR="ERROR",S.RECONNECTING="RECONNECTING",S.RECONNECTED="RECONNECTED",S.TRACK_ADDED="TRACK_ADDED",S.TRACK_REMOVED="TRACK_REMOVED",S.TRACK_MUTED="TRACK_MUTED",S.TRACK_UNMUTED="TRACK_UNMUTED",S.TRACK_DEGRADED="TRACK_DEGRADED",S.TRACK_RESTORED="TRACK_RESTORED",S.ROLE_CHANGE_REQUEST="ROLE_CHANGE_REQUEST",S.ROLE_UPDATED="ROLE_UPDATED",S.CHANGE_TRACK_STATE_REQUEST="CHANGE_TRACK_STATE_REQUEST",S.CHANGE_MULTI_TRACK_STATE_REQUEST="CHANGE_MULTI_TRACK_STATE_REQUEST",S.ROOM_ENDED="ROOM_ENDED",S.REMOVED_FROM_ROOM="REMOVED_FROM_ROOM",S.DEVICE_CHANGE_UPDATE="DEVICE_CHANGE_UPDATE",S.PLAYLIST_TRACK_ENDED="PLAYLIST_TRACK_ENDED",S.NAME_UPDATED="NAME_UPDATED",S.METADATA_UPDATED="METADATA_UPDATED"})(h||(h={}));var M;(function(t){t.audio="audio",t.video="video"})(M||(M={}));var a=I(require("@100mslive/hms-video"));var U=I(require("@100mslive/hms-video"));var st=(s,e)=>{let t=Re(Object.keys(s),Object.keys(e));for(let r of t){let i=s[r],o=e[r];fe(i,o)?(N(i.auxiliaryTracks,o.auxiliaryTracks)&&(o.auxiliaryTracks=i.auxiliaryTracks),Object.assign(i,o)):ke(i,o)?delete s[r]:Pe(i,o)&&(s[r]=o)}},rt=(s,e)=>{let t=Re(Object.keys(s),Object.keys(e));for(let r of t){let i=s[r],o=e[r];fe(i,o)?(Wt(i,o),Object.assign(i,o)):ke(i,o)?delete s[r]:Pe(i,o)&&(s[r]=o)}},ye=(s,e)=>{let t=Re(Object.keys(s),Object.keys(e));for(let r of t){let i=s[r],o=e[r];fe(i,o)?Object.assign(i,o):ke(i,o)?delete s[r]:Pe(i,o)&&(s[r]=o)}},Wt=(s,e)=>{s.plugins&&N(s.plugins,e.plugins)&&(e.plugins=s.plugins),s.layerDefinitions&&N(s.layerDefinitions,e.layerDefinitions)&&(e.layerDefinitions=s.layerDefinitions)},fe=(s,e)=>s&&e,ke=(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},Re=(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,i;return{id:e.peerId,name:e.name,roleName:(t=e.role)==null?void 0:t.name,isLocal:e.isLocal,videoTrack:(r=e.videoTrack)==null?void 0:r.trackId,audioTrack:(i=e.audioTrack)==null?void 0:i.trackId,auxiliaryTracks:e.auxiliaryTracks.map(o=>o.trackId),customerUserId:e.customerUserId,customerDescription:e.metadata,metadata:e.metadata}}static convertTrack(e,t){let r={id:e.trackId,source:e.source,type:e.type,enabled:e.enabled,displayEnabled:e.enabled,peerId:e.peerId||t};return this.enrichTrack(r,e),r}static enrichTrack(e,t){let r=t.getMediaTrackSettings();e.source==="screen"&&e.type==="video"&&(e.displaySurface=r.displaySurface),e.height=r.height,e.width=r.width,t instanceof 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,i,o,n,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:!!((i=e.recording)==null?void 0:i.browser.running)},server:{running:!!((o=e.recording)==null?void 0:o.server.running)}},rtmp:{running:!!((n=e.rtmp)==null?void 0:n.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,i;return{sender:e.sender.peerId,senderName:e.sender.name,senderRole:(t=e.sender.role)==null?void 0:t.name,senderUserId:e.sender.customerUserId,recipientPeer:(r=e.recipientPeer)==null?void 0:r.peerId,recipientRoles:(i=e.recipientRoles)==null?void 0:i.map(o=>o.name),time:e.time,type:e.type,message:e.message}}static convertRoles(e){let t={};return e&&e.forEach(r=>{t[r.name]=r}),t}static convertRoleChangeRequest(e){return{requestedBy:e.requestedBy.peerId,roleName:e.role.name,token:e.token}}static convertException(e){return{code:e.code,action:e.action,name:e.name,message:e.message,description:e.description,isTerminal:e.isTerminal,nativeError:e.nativeError,timestamp:new Date}}static convertDeviceChangeUpdate(e){let t={devices:e.devices,selection:e.selection,type:e.type};return e.error&&(t.error=this.convertException(e.error)),t}static convertPlaylist(e){let t=this.getConvertedPlaylistType(e,M.audio),r=this.getConvertedPlaylistType(e,M.video);return{audio:t,video:r}}static convertPlaylistItem(e,t){let r=t.type,i=e.getCurrentSelection(r),o=e.isPlaying(r),n=t.url===(i==null?void 0:i.url);return W(q({},t),{type:t.type,selected:n,playing:n&&o})}static convertConnectionStats(e){let t=q({},e);return delete t.rawStatsArray,delete t.rawStats,t}static getConvertedPlaylistType(e,t){let r={},i=e.getCurrentSelection(t),o=e.getCurrentProgress(t),n=e.getVolume(t),l=e.getList(t),d=e.getCurrentIndex(t);return e.getList(t).forEach(P=>{r[P.id]=T.convertPlaylistItem(e,P)}),{list:r,selection:{id:i==null?void 0:i.id,hasPrevious:d>0,hasNext:d<l.length-1},progress:o,volume:n,currentTime:e.getCurrentTime(t),playbackRate:e.getPlaybackRate(t)}}static convertRecordingStreamingState(e,t,r){var i,o;return{recording:{browser:{running:!!((i=e==null?void 0:e.browser)==null?void 0:i.running)},server:{running:!!((o=e==null?void 0:e.server)==null?void 0:o.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=I(require("reselect"));function j(s,e,t=$t){let r,i;if(e)for(let o of e.auxiliaryTracks){let n=s[o];t(n)&&(i=X(n)?n:i,r=Z(n)?n:r)}return{video:r,audio:i}}function X(s){return s&&s.type==="audio"}function Z(s){return s&&s.type==="video"}function $t(s){return s&&s.source==="screen"}function Se(s){return s&&s.source==="audioplaylist"}function ee(s){return s&&s.source==="videoplaylist"}function it(s){return Boolean(s==null?void 0:s.degraded)}function $(s,e){return e&&s.tracks[e]?s.tracks[e].enabled:!1}function ot(s,e){return e&&s.tracks[e]?s.tracks[e].displayEnabled:!1}var b=s=>s.room,v=s=>s.peers,Ie=s=>s.messages.byID,ve=s=>s.messages.allIDs,H=s=>s.tracks,De=s=>s.settings,Ft=s=>s.devices,nt=s=>s.speakers,Gt=(0,u.createSelector)([b],s=>s&&s.isConnected),Jt=(0,u.createSelector)(b,s=>s.peers.length),de=(0,u.createSelector)([b,v],(s,e)=>s.peers.map(t=>e[t])),Yt=(0,u.createSelector)(H,s=>Object.values(s)),E=(0,u.createSelector)(b,v,(s,e)=>e[s.localPeer]),K=(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),Qt=(0,u.createSelector)(E,s=>s==null?void 0:s.auxiliaryTracks),be=(0,u.createSelector)([A,C,Qt],(s,e,t)=>{let r=[...t];return s&&r.unshift(s),e&&r.unshift(e),r}),zt=(0,u.createSelector)(de,s=>s.filter(e=>!e.isLocal)),Xt=(0,u.createSelector)(v,nt,(s,e)=>{let t=Object.entries(e).sort((r,i)=>{var l,d;let o=((l=r[1])==null?void 0:l.audioLevel)||0;return(((d=i[1])==null?void 0:d.audioLevel)||0)>o?1:-1});if(t.length>0&&t[0][1].audioLevel&&t[0][1].audioLevel>0){let r=t[0][1].peerID;if(r in s)return s[r]}return null}),Zt=s=>{let e=E(s);return $(s,e==null?void 0:e.audioTrack)},ue=s=>{let e=E(s);return $(s,e==null?void 0:e.videoTrack)},Ee=s=>{let e=E(s);return ot(s,e==null?void 0:e.videoTrack)},pe=(0,u.createSelector)(E,H,(s,e)=>{let{video:t,audio:r}=j(e,s);return!!(t||r)}),at=(0,u.createSelector)(v,H,(s,e)=>{let t;for(let r in s){let i=s[r],{video:o,audio:n}=j(e,i);if(o)return i;n&&!t&&(t=i)}return t}),es=(0,u.createSelector)(at,s=>!!s),ts=(0,u.createSelector)(v,H,(s,e)=>{for(let t in s){let r=s[t],{audio:i,video:o}=j(e,r);if(!o&&!!i)return r}}),ss=(0,u.createSelector)(v,H,(s,e)=>{let t=[],r=[];for(let i in s){let o=s[i],{video:n,audio:l}=j(e,o);n?t.push(o):l&&r.push(o)}return t.concat(r)}),rs=(0,u.createSelector)(v,H,(s,e)=>{for(let t in e){let r=e[t];if(ee(r)&&Z(r)&&r.peerId)return s[r.peerId]}}),is=(0,u.createSelector)(v,H,(s,e)=>{for(let t in e){let r=e[t];if(Se(r)&&r.peerId)return s[r.peerId]}}),os=(0,u.createSelector)(Yt,s=>s.filter(it)),Ae=(0,u.createSelector)(ve,s=>s.length),ns=(0,u.createSelector)(Ie,s=>Object.values(s).filter(e=>!e.read).length),te=(0,u.createSelector)(ve,Ie,(s,e)=>{let t=[];return s.forEach(r=>{t.push(e[r])}),t}),x=(0,u.createSelector)([b],s=>s&&s.roomState),as=(0,u.createSelector)(x,s=>s===y.Preview),Ce=(0,u.createSelector)(b,s=>s.roomState!==y.Disconnected),_=s=>s.roles,cs=(0,u.createSelector)([_],s=>Object.keys(s)),se=(0,u.createSelector)([E,_],(s,e)=>(s==null?void 0:s.roleName)?e[s.roleName]:null),ls=(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}),xe=(0,u.createSelector)(se,s=>s==null?void 0:s.permissions),Ss=(0,u.createSelector)(b,s=>s.recording),ds=(0,u.createSelector)(b,s=>s.rtmp),us=(0,u.createSelector)(b,s=>s.hls),ps=(0,u.createSelector)(b,s=>s.sessionId),Ms=(0,u.createSelector)(b,s=>s.startedAt);var Le=I(require("reselect"));var ct=(s=M.audio)=>e=>e.playlist[s].list,Oe=(s=M.audio)=>e=>e.playlist[s].selection,lt=(s=M.audio)=>e=>e.playlist[s].progress,St=(s=M.audio)=>e=>e.playlist[s].currentTime,dt=(s=M.audio)=>e=>e.playlist[s].playbackRate,ut=(s=M.audio)=>e=>e.playlist[s].volume,pt=(s=M.audio)=>(0,Le.createSelector)(ct(s),e=>Object.values(e)),Mt=(s=M.audio)=>(0,Le.createSelector)(ct(s),Oe(s),(e,t)=>{if(!!t.id)return e[t.id]}),we={selection:Oe(M.audio),progress:lt(M.audio),currentTime:St(M.audio),playbackRate:dt(M.audio),volume:ut(M.audio),list:pt(M.audio),selectedItem:Mt(M.audio)},Ne={selection:Oe(M.video),progress:lt(M.video),currentTime:St(M.video),playbackRate:dt(M.video),volume:ut(M.video),list:pt(M.video),selectedItem:Mt(M.video)};var k=I(require("reselect"));function p(s){return e=>t=>s(t,e)}var re="HMS-Store:",m=class{static v(e,...t){this.log(a.HMSLogLevel.VERBOSE,e,...t)}static d(...e){this.log(a.HMSLogLevel.DEBUG,...e)}static i(...e){this.log(a.HMSLogLevel.INFO,...e)}static w(...e){this.log(a.HMSLogLevel.WARN,...e)}static e(...e){this.log(a.HMSLogLevel.ERROR,...e)}static time(e){this.log(a.HMSLogLevel.TIME,"[HMSPerformanceTiming]",e)}static timeEnd(e){this.log(a.HMSLogLevel.TIMEEND,"[HMSPerformanceTiming]",e,e)}static cleanUp(){performance.clearMarks(),performance.clearMeasures()}static log(e,...t){if(!(this.level.valueOf()>e.valueOf()))switch(e){case a.HMSLogLevel.VERBOSE:{console.log(re,...t);break}case a.HMSLogLevel.DEBUG:{console.debug(re,...t);break}case a.HMSLogLevel.INFO:{console.info(re,...t);break}case a.HMSLogLevel.WARN:{console.warn(re,...t);break}case a.HMSLogLevel.ERROR:{console.error(re,...t);break}case a.HMSLogLevel.TIME:{performance.mark(t[1]);break}case a.HMSLogLevel.TIMEEND:{let r=t[0],i=t[1];try{let o=performance.measure(i,i);this.log(a.HMSLogLevel.DEBUG,r,i,o==null?void 0:o.duration),performance.clearMarks(i),performance.clearMeasures(i)}catch(o){this.log(a.HMSLogLevel.DEBUG,r,i,o)}break}}}};m.level=a.HMSLogLevel.VERBOSE;var Ue=(s,e)=>e,ms=(s,e)=>e,mt=(s,e)=>e,D=(0,k.createSelector)([v,Ue],(s,e)=>e?s[e]:null),_e=(0,k.createSelector)([H,ms],(s,e)=>e?s[e]:null),O=p(D),Ke=p((0,k.createSelector)(D,s=>s==null?void 0:s.name)),ie=p(_e),ht=p((s,e)=>{let t=D(s,e);if(t&&t.videoTrack&&t.videoTrack!=="")return s.tracks[t.videoTrack]}),gt=p((s,e)=>{let t=D(s,e);if(t&&t.audioTrack&&t.audioTrack!=="")return s.tracks[t.audioTrack]}),hs=ht,gs=p((s,e)=>{let t=D(s,e);return(t==null?void 0:t.auxiliaryTracks.map(r=>s.tracks[r]))||[]}),Tt=(s,e)=>e?s.speakers[e]:null,Ts=p((0,k.createSelector)(Tt,s=>(s==null?void 0:s.audioLevel)||0)),Hs=(s,e)=>{let t=gt(e)(s);return Tt(s,t==null?void 0:t.id)},ys=p((0,k.createSelector)(Hs,s=>(s==null?void 0:s.audioLevel)||0)),fs=p((s,e)=>{let t=D(s,e);if(t){let r=t==null?void 0:t.auxiliaryTracks.find(i=>X(s.tracks[i]));return r?s.tracks[r]:void 0}}),ks=p((0,k.createSelector)(H,D,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let i=s[r];return ee(i)&&Z(i)});return t?s[t]:void 0})),Ps=p((0,k.createSelector)(H,D,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let i=s[r];return ee(i)&&X(i)});return t?s[t]:void 0})),Rs=p((0,k.createSelector)(H,D,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let i=s[r];return Se(i)&&X(i)});return t?s[t]:void 0})),Ve=p((0,k.createSelector)(H,D,(s,e)=>j(s,e))),Is=s=>(0,k.createSelector)(Ve(s),e=>e.video),Be=s=>(0,k.createSelector)(Ve(s),e=>e.audio),vs=p((s,e)=>{let t=D(s,e);return $(s,t==null?void 0:t.audioTrack)}),Ds=p((s,e)=>{let t=D(s,e);return $(s,t==null?void 0:t.videoTrack)}),qe=p((s,e)=>{if(e&&s.tracks[e])return s.tracks[e].volume===0}),bs=p((s,e)=>{let t=D(s,e);return qe(t==null?void 0:t.audioTrack)(s)}),Es=p((s,e)=>{let t=Be(e)(s);return qe(t==null?void 0:t.id)(s)}),je=p((s,e)=>{let t=_e(s,e);if(t){if(t.type!=="audio"){m.w("Please pass audio track here");return}return t.volume}}),As=p((s,e)=>{let t=D(s,e);return je(t==null?void 0:t.audioTrack)(s)}),Cs=p((s,e)=>{let t=Be(e)(s);return je(t==null?void 0:t.id)(s)}),xs=p((s,e)=>{let t=_e(s,e);if(t){if(t.type!=="video"){m.w("Please pass video track here");return}return t.layer}}),Ht=(0,k.createSelector)([te,K,Ue],(s,e,t)=>{if(!!t)return s.filter(r=>{var i;return!r.recipientPeer&&!((i=r.recipientRoles)==null?void 0:i.length)||![e,t].includes(r.sender)?!1:[e,t].includes(r.recipientPeer)})}),yt=(0,k.createSelector)([te,mt],(s,e)=>{if(!!e)return s.filter(t=>{var r,i;return((r=t.recipientRoles)==null?void 0:r.length)?(i=t.recipientRoles)==null?void 0:i.includes(e):!1})}),ft=(0,k.createSelector)(te,s=>s.filter(e=>{var t;return!e.recipientPeer&&!((t=e.recipientRoles)==null?void 0:t.length)})),Ls=(0,k.createSelector)([yt,mt],s=>s?s.filter(e=>!e.read).length:0),Os=(0,k.createSelector)([Ht,Ue],s=>s?s.filter(e=>!e.read).length:0),ws=(0,k.createSelector)(ft,s=>s.filter(e=>!e.read).length),Ns=p(Ht),Us=p(yt),_s=p(Ls),Ks=p(Os),Vs=s=>(0,k.createSelector)([de],e=>e.filter(t=>t.roleName===s)),Bs=s=>(0,k.createSelector)(O(s),e=>{try{return(e==null?void 0:e.metadata)&&e.metadata!==""?JSON.parse(e.metadata):{}}catch(t){return console.error("cannot parse peer metadata",t),{}}});var Me=I(require("reselect")),qs=(0,Me.createSelector)([v,H],(s,e)=>Object.values(s).map(r=>{var i;return{peer:r,isAudioEnabled:r.audioTrack?(i=e[r.audioTrack])==null?void 0:i.enabled:!1}})),js=s=>s.roleChangeRequests[0]||null,Ws=(0,Me.createSelector)([js,v,_],(s,e,t)=>s?{requestedBy:e[s.requestedBy],role:t[s.roleName],token:s.token}:null),$s=(0,Me.createSelector)([se],s=>{var i;let e=!1,t=!1,r=!1;return((i=s==null?void 0:s.publishParams)==null?void 0:i.allowed)&&(e=s.publishParams.allowed.includes("video"),t=s.publishParams.allowed.includes("audio"),r=s.publishParams.allowed.includes("screen")),{video:e,audio:t,screen:r}});var F=I(require("reselect"));var Fs=s=>(0,F.createSelector)([_],e=>e[s]),Gs=(0,F.createSelector)([C,H],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),Js=(0,F.createSelector)([A,H],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),Ys=s=>(0,F.createSelector)([Gs],e=>e.includes(s)),Qs=s=>(0,F.createSelector)([Js],e=>e.includes(s));var oe=I(require("@100mslive/hms-video"));var me=I(require("@100mslive/hms-video"));function kt(s){return s instanceof me.HMSRemoteAudioTrack||s instanceof me.HMSRemoteVideoTrack}var he=class{constructor(e,t,r,i){this.playlistManager=e;this.syncPlaylistState=r;this.store=i;this.type=t}play(e){return c(this,null,function*(){if(!e){m.w("Please pass id to play");return}yield this.playlistManager.setEnabled(!0,{id:e,type:this.type})})}pause(){return c(this,null,function*(){let e=this.type===M.audio?we:Ne,t=this.store.getState(e.selection);if(!t.id){m.w("No item is currently playing to pause");return}yield this.playlistManager.setEnabled(!1,{id:t.id,type:this.type})})}playNext(){return 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 Pt={[a.HMSPeerUpdate.PEER_JOINED]:h.PEER_JOINED,[a.HMSPeerUpdate.PEER_LEFT]:h.PEER_LEFT,[a.HMSPeerUpdate.ROLE_UPDATED]:h.ROLE_UPDATED,[a.HMSPeerUpdate.AUDIO_TOGGLED]:"PEER_AUDIO_UPDATED",[a.HMSPeerUpdate.VIDEO_TOGGLED]:"PEER_VIDEO_UPDATED",[a.HMSPeerUpdate.NAME_UPDATED]:h.NAME_UPDATED,[a.HMSPeerUpdate.METADATA_UPDATED]:h.METADATA_UPDATED},Rt={[a.HMSTrackUpdate.TRACK_ADDED]:h.TRACK_ADDED,[a.HMSTrackUpdate.TRACK_REMOVED]:h.TRACK_REMOVED,[a.HMSTrackUpdate.TRACK_MUTED]:h.TRACK_MUTED,[a.HMSTrackUpdate.TRACK_UNMUTED]:h.TRACK_UNMUTED,[a.HMSTrackUpdate.TRACK_DEGRADED]:h.TRACK_DEGRADED,[a.HMSTrackUpdate.TRACK_RESTORED]:h.TRACK_RESTORED},It={[a.HMSPeerUpdate.PEER_JOINED]:"peerJoined",[a.HMSPeerUpdate.PEER_LEFT]:"peerLeft",[a.HMSPeerUpdate.NAME_UPDATED]:"peerNameUpdated",[a.HMSPeerUpdate.METADATA_UPDATED]:"peerMetadataUpdated"};var We=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)),i="peerUpdate";i=It[e],this.syncRoomState(i),r||(r=this.store.getState(O(t.peerId))),this.hmsNotifications.sendPeerUpdate(e,r)};this.setState=(e,t)=>this.store.namedSetState(e,t);this.store=e,this.sdk=t,this.hmsNotifications=r}unblockAudio(){return 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 oe.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(Ce)){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 o;if(((o=this.store.getState().tracks[e])==null?void 0:o.enabled)===t){this.logPossibleInconsistency(`local track[${e}] enabled state - ${t}`);return}this.setState(n=>{n.tracks[e]?n.tracks[e].displayEnabled=t:this.logPossibleInconsistency("track id not found for setEnabled")},"displayEnabled");try{yield this.setEnabledSDKTrack(e,t),this.syncRoomState("setEnabled")}catch(n){throw this.setState(l=>{l.tracks[e].displayEnabled=!t},"rollbackDisplayEnabled"),this.hmsNotifications.sendError(T.convertException(n)),n}let i=t?a.HMSTrackUpdate.TRACK_UNMUTED:a.HMSTrackUpdate.TRACK_MUTED;this.hmsNotifications.sendTrackUpdate(i,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 i=this.store.getState(_),o=t.map(l=>i[l]),n=yield this.sdk.sendGroupMessage(e,o,r);this.updateMessageInStore(n,{message:e,recipientRoles:t,type:r})})}sendDirectMessage(e,t,r){return c(this,null,function*(){let i=this.hmsSDKPeers[t],o=yield this.sdk.sendDirectMessage(e,i,r);this.updateMessageInStore(o,{message:e,recipientPeer:i.peerId,type:r})})}updateMessageInStore(e,t){if(!e)throw m.w("sendMessage","Failed to send message",t),Error(`sendMessage Failed - ${JSON.stringify(t)}`);let r=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(i=>{r.messages.byID[i].read=e})},"setMessageRead")}attachVideo(e,t){return c(this,null,function*(){if(this.localAndVideoUnmuting(e))return new Promise(r=>{let i=this.store.subscribe(o=>c(this,null,function*(){o&&(yield this.attachVideoInternal(e,t),i(),r())}),ue)});yield this.attachVideoInternal(e,t)})}detachVideo(e,t){return c(this,null,function*(){let r=this.hmsSDKTracks[e];r&&r.type==="video"?(yield r.removeSink(t),this.updateVideoLayer(e,"detachVideo")):this.logPossibleInconsistency("no video track found to remove sink")})}addPluginToVideoTrack(e,t){return c(this,null,function*(){return this.addRemoveVideoPlugin(e,"add",t)})}addPluginToAudioTrack(e){return c(this,null,function*(){return this.addRemoveAudioPlugin(e,"add")})}removePluginFromVideoTrack(e){return c(this,null,function*(){return this.addRemoveVideoPlugin(e,"remove")})}removePluginFromAudioTrack(e){return c(this,null,function*(){return this.addRemoveAudioPlugin(e,"remove")})}changeRole(e,t,r=!1){return c(this,null,function*(){let i=this.hmsSDKPeers[e];if(!i){this.logPossibleInconsistency(`Unknown peer ID given ${e} for changerole`);return}yield this.sdk.changeRole(i,t,r)})}acceptChangeRole(e){return c(this,null,function*(){let t=e.requestedBy?this.hmsSDKPeers[e.requestedBy.id]:void 0;t||m.w(`peer for which role change is requested no longer available - ${e.requestedBy}`);let r={requestedBy:t,role:e.role,token:e.token};yield this.sdk.acceptChangeRole(r),this.removeRoleChangeRequest(e)})}rejectChangeRole(e){this.removeRoleChangeRequest(e)}endRoom(e,t){return c(this,null,function*(){let r=this.store.getState(xe);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&&kt(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(i=>r[i])}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(W(q({},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(i=>{N(i.devices.audioInput,t.audioInput)||(i.devices.audioInput=t.audioInput),N(i.devices.videoInput,t.videoInput)||(i.devices.videoInput=t.videoInput),N(i.devices.audioOutput,t.audioOutput)||(i.devices.audioOutput=t.audioOutput),this.hmsSDKPeers[r==null?void 0:r.id]&&Object.assign(i.settings,this.getMediaSettings(this.hmsSDKPeers[r==null?void 0:r.id]))},"deviceChange"),e.selection){let i=T.convertDeviceChangeUpdate(e);this.hmsNotifications.sendDeviceChange(i)}}sdkPreviewWithListeners(e){return c(this,null,function*(){yield this.sdk.preview(e,{onPreview:this.onPreview.bind(this),onError:this.onError.bind(this),onDeviceChange:this.onDeviceChange.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})})}startScreenShare(e){return c(this,null,function*(){this.store.getState(pe)?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(pe)?(yield this.sdk.stopScreenShare(),this.syncRoomState("stopScreenShare")):this.logPossibleInconsistency("stop screenshare is called while it's not on")})}attachVideoInternal(e,t){return c(this,null,function*(){let r=this.hmsSDKTracks[e];r&&r.type==="video"?(yield r.addSink(t),this.updateVideoLayer(e,"attachVideo")):this.logPossibleInconsistency("no video track found to add sink")})}syncRoomState(e){m.time(`store-sync-${e}`);let t={},r=[],i={},o={},n={},l=this.sdk.getPeers();for(let f of l){let w=T.convertPeer(f);t[w.id]=w,r.push(w.id),this.hmsSDKPeers[w.id]=f;let J=[f.audioTrack,f.videoTrack,...f.auxiliaryTracks];for(let le of J){if(!le)continue;let Qe=T.convertTrack(le);i[Qe.id]=Qe,o[le.trackId]=le}w.isLocal&&Object.assign(n,this.getMediaSettings(f))}let d=this.sdk.getRecordingState(),P=this.sdk.getRTMPState(),B=this.sdk.getHLSState();this.setState(f=>{f.room.peers=r;let w=f.peers,J=f.tracks;st(w,t),rt(J,i),Object.assign(f.settings,n),this.hmsSDKTracks=o,Object.assign(f.roles,T.convertRoles(this.sdk.getRoles())),Object.assign(f.playlist,T.convertPlaylist(this.sdk.getPlaylistManager())),Object.assign(f.room,T.convertRecordingStreamingState(d,P,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 he(t,M.audio,this.syncPlaylistState.bind(this),this.store),this.videoPlaylist=new he(t,M.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(![a.HMSPeerUpdate.BECAME_DOMINANT_SPEAKER,a.HMSPeerUpdate.RESIGNED_DOMINANT_SPEAKER].includes(e)){if(Array.isArray(t)){this.syncRoomState("peersJoined");let r=[];for(let i of t){let o=this.store.getState(O(i.peerId));o&&r.push(o)}this.hmsNotifications.sendPeerList(r);return}this.sendPeerUpdateNotification(e,t)}}onTrackUpdate(e,t,r){if(e===a.HMSTrackUpdate.TRACK_REMOVED)this.hmsNotifications.sendTrackUpdate(e,t.trackId),this.handleTrackRemove(t,r);else{let i=e===a.HMSTrackUpdate.TRACK_ADDED?"trackAdded":"trackUpdate";this.syncRoomState(i),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(Ae)+1),t.messages.byID[e.id]=e,t.messages.allIDs.push(e.id)},"newMessage")}onAudioLevelUpdate(e){this.setState(t=>{let r={};e.forEach(o=>{if(!o.track||!o.peer)return;let n=o.track.trackId;r[n]=o.audioLevel,t.speakers[n]||(t.speakers[n]={audioLevel:o.audioLevel,peerID:o.peer.peerId,trackID:n})});let i=Object.entries(t.speakers);for(let[o,n]of i)n.audioLevel=r[o]||0,n.audioLevel===0&&delete t.speakers[o]},"audioLevel")}onChangeTrackStateRequest(e){let t=this.store.getState(O(e.requestedBy.peerId)),r=this.getStoreLocalTrackIDfromSDKTrack(e.track),i=this.store.getState(ie(r));if(!t)return this.logPossibleInconsistency(`Not found peer who requested track state change, ${e.requestedBy}`);if(!i)return this.logPossibleInconsistency(`Not found track for which track state change was requested, ${e.track}`);e.enabled||this.syncRoomState("changeTrackStateRequest"),this.hmsNotifications.sendChangeTrackStateRequest({requestedBy:t,track:i,enabled:e.enabled})}onChangeMultiTrackStateRequest(e){let t=this.store.getState(O(e.requestedBy.peerId));if(!t)return this.logPossibleInconsistency(`Not found peer who requested track state change, ${e.requestedBy}`);e.enabled||this.syncRoomState("changeMultiTrackStateRequest");let r=[],i=this.store.getState(H);for(let o of e.tracks){let n=this.getStoreLocalTrackIDfromSDKTrack(o);n&&i[n]&&r.push(i[n])}this.hmsNotifications.sendChangeMultiTrackStateRequest({requestedBy:t,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(i=>{i.errors.push(t)},"error"),this.hmsNotifications.sendError(t),m.e("received error from sdk",t)}updateVideoLayer(e,t){let r=this.hmsSDKTracks[e];r&&r instanceof oe.HMSRemoteVideoTrack&&this.setState(i=>{i.tracks[e].layer=r.getSimulcastLayer()},t)}handleTrackRemove(e,t){this.setState(r=>{let i=r.peers[t.peerId],o=r.tracks,n=e.trackId;if(this.isSameStoreSDKTrack(n,i==null?void 0:i.audioTrack))i==null||delete i.audioTrack;else if(this.isSameStoreSDKTrack(n,i==null?void 0:i.videoTrack))i==null||delete i.videoTrack;else{let l=i==null?void 0:i.auxiliaryTracks.indexOf(n);l>-1&&this.isSameStoreSDKTrack(n,i==null?void 0:i.auxiliaryTracks[l])&&(i==null||i.auxiliaryTracks.splice(l,1))}delete o[n],delete this.hmsSDKTracks[n]},"trackRemoved")}setEnabledSDKTrack(e,t){return c(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setEnabled(t):this.logPossibleInconsistency(`track ${e} not present, unable to enabled/disable`)})}setSDKLocalVideoTrackSettings(e,t){return c(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}setSDKLocalAudioTrackSettings(e,t){return c(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}getMediaSettings(e){var o;let t=this.store.getState(De),r=e.audioTrack,i=e.videoTrack;return{audioInputDeviceId:(r==null?void 0:r.settings.deviceId)||t.audioInputDeviceId,videoInputDeviceId:(i==null?void 0:i.settings.deviceId)||t.videoInputDeviceId,audioOutputDeviceId:(o=this.sdk.getAudioOutput().getDevice())==null?void 0:o.deviceId}}setTrackVolume(e,t){let r=this.hmsSDKTracks[t];r?r instanceof oe.HMSAudioTrack?(r.setVolume(e),this.setState(i=>{let o=i.tracks[t];o&&(o.volume=e)},"trackVolume")):m.w(`track ${t} is not an audio track`):this.logPossibleInconsistency(`track ${t} not present, unable to set volume`)}localAndVideoUnmuting(e){if(this.store.getState(E).videoTrack!==e)return!1;let r=this.store.getState(Ee),i=this.store.getState(ue);return r&&!i}logPossibleInconsistency(e){m.w("possible inconsistency detected - ",e)}addRemoveVideoPlugin(e,t,r){return c(this,null,function*(){if(!e){m.w("Invalid plugin received in store");return}let i=this.store.getState(C);if(i){let o=this.hmsSDKTracks[i];o?(t==="add"?yield o.addPlugin(e,r):t==="remove"&&(yield o.removePlugin(e)),this.syncRoomState(`${t}VideoPlugin`)):this.logPossibleInconsistency(`track ${i} not present, unable to remove plugin`)}})}addRemoveAudioPlugin(e,t){return c(this,null,function*(){if(!e){m.w("Invalid plugin received in store");return}let r=this.store.getState(A);if(r){let i=this.hmsSDKTracks[r];i?(t==="add"?yield i.addPlugin(e):t==="remove"&&(yield i.removePlugin(e)),this.syncRoomState(`${t}AudioPlugin`)):this.logPossibleInconsistency(`track ${r} not present, unable to remove plugin`)}})}isSameStoreSDKTrack(e,t){var r;return t?((r=this.hmsSDKTracks[t])==null?void 0:r.trackId)===e:!1}onRoleChangeRequest(e){this.setState(t=>{t.roleChangeRequests.length===0&&t.roleChangeRequests.push(T.convertRoleChangeRequest(e))},"roleChangeRequest")}removeRoleChangeRequest(e){this.setState(t=>{let r=t.roleChangeRequests.findIndex(i=>i.token===e.token);r!==-1&&t.roleChangeRequests.splice(r,1)},"removeRoleChangeRequest")}onRoleUpdate(){this.syncRoomState("roleUpdate")}getStoreLocalTrackIDfromSDKTrack(e){return this.store.getState(be).find(r=>this.hmsSDKTracks[r].trackId===e.trackId)}};var vt=I(require("eventemitter2"));var $e="hmsNotification",Fe=class{constructor(e){this.id=0;this.onNotification=e=>(this.eventEmitter.addListener($e,e),()=>{this.eventEmitter.removeListener($e,e)});this.store=e,this.eventEmitter=new vt.EventEmitter2}sendPlaylistTrackEnded(e){let t=this.createNotification(h.PLAYLIST_TRACK_ENDED,e,R.INFO);this.emitEvent(t)}sendDeviceChange(e){var r;let t=this.createNotification(h.DEVICE_CHANGE_UPDATE,e,e.error?R.ERROR:R.INFO,`Selected ${e.type} device - ${(r=e.selection)==null?void 0:r.label}`);this.emitEvent(t)}sendLeaveRoom(e){var i;let t=(i=e.requestedBy)==null?void 0:i.name,r=this.createNotification(e.roomEnded||!t?h.ROOM_ENDED:h.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(h.PEER_LIST,e,R.INFO);this.emitEvent(t)}sendPeerUpdate(e,t){let r=this.store.getState(O(t==null?void 0:t.id))||t,i=Pt[e];if(i){let o=this.createNotification(i,r,R.INFO);this.emitEvent(o)}}sendTrackUpdate(e,t){let r=this.store.getState(ie(t)),i=Rt[e];if(i){let o=this.createNotification(i,r,R.INFO);this.emitEvent(o)}}sendMessageReceived(e){let t=this.createNotification(h.NEW_MESSAGE,e,R.INFO);this.emitEvent(t)}sendError(e){let t=this.createNotification(h.ERROR,e,R.ERROR);this.emitEvent(t)}sendReconnecting(e){let t=this.createNotification(h.RECONNECTING,e,R.ERROR);this.emitEvent(t)}sendReconnected(){let e=this.createNotification(h.RECONNECTED,null,R.INFO);this.emitEvent(e)}sendChangeTrackStateRequest(e){let t=this.createNotification(h.CHANGE_TRACK_STATE_REQUEST,e,R.INFO);this.emitEvent(t)}sendChangeMultiTrackStateRequest(e){let t=this.createNotification(h.CHANGE_MULTI_TRACK_STATE_REQUEST,e,R.INFO);this.emitEvent(t)}emitEvent(e){this.eventEmitter.emit($e,e)}createNotification(e,t,r,i=""){return this.id++,{id:this.id,type:e,message:i,data:t,severity:r}}};var Dt=I(require("@100mslive/hms-video")),ge=s=>Dt.isBrowser?`${s} ${document.title}`:s;function ne(s){return s!=null}var bt=(s,e,t)=>{let r;t.getState(x)===y.Connected&&(r=Et(s,e,t)),t.subscribe(i=>{[y.Connected,y.Reconnecting].includes(i)?r||(r=Et(s,e,t)):r&&(rr(e),r())},x)},Et=(s,e,t)=>{var o;let r=zs(t,e),i=(o=s.getWebrtcInternals())==null?void 0:o.onStatsChange(n=>Xs(e,n,t));return()=>{r(),i&&i()}},zs=(s,e)=>{let t,r,i;return s.getState(K)?e.namedSetState(o=>{o.localPeer.id=s.getState(K)},"localpeer-id"):t=s.subscribe(o=>{o&&e.namedSetState(n=>{n.localPeer.id=o},"localpeer-id")},K),s.getState(C)?e.namedSetState(o=>{o.localPeer.videoTrack=s.getState(C)},"localpeer-videotrack-id"):r=s.subscribe(o=>{o&&e.namedSetState(n=>{n.localPeer.videoTrack=o},"localpeer-videotrack-id")},C),s.getState(A)?e.namedSetState(o=>{o.localPeer.videoTrack=s.getState(A)},"localpeer-audiotrack-id"):i=s.subscribe(o=>{o&&e.namedSetState(n=>{n.localPeer.videoTrack=o},"localpeer-audiotrack-id")},A),()=>{t==null||t(),r==null||r(),i==null||i()}},Xs=(s,e,t)=>{let r=t.getState(H);s.namedSetState(i=>{let o={},n=Object.keys(r);for(let d of n){let P=e.getTrackStats(d);P&&(o[d]=tr(t,r[d],P,i.trackStats[d]))}ye(i.trackStats,o);let l=Zs(t,i.peerStats[t.getState(K)],e);ye(i.peerStats,l)},"webrtc-stats")},Zs=(s,e,t)=>{let r=t.getLocalPeerStats(),i={},o=s.getState(K);return i[o]||(i[o]={}),e?i[o]=er(t,e):(r.publish&&(i[o].publish=Object.assign(r.publish,{bitrate:0})),r.subscribe&&(i[o].subscribe=Object.assign(r.subscribe,{bitrate:0},{packetsLost:t.getPacketsLost(),jitter:t.getJitter(),packetsLostRate:0}))),i},er=(s,e)=>{var d,P,B;let t=s.getLocalPeerStats(),r=At(s.getPacketsLost(),(d=e==null?void 0:e.subscribe)==null?void 0:d.packetsLost,(P=t.subscribe)==null?void 0:P.timestamp,(B=e==null?void 0:e.subscribe)==null?void 0:B.timestamp),i=Ge("bytesSent",t.publish,e==null?void 0:e.publish),o=Ge("bytesReceived",t.subscribe,e==null?void 0:e.subscribe),n=Object.assign(t.publish,{bitrate:i}),l=Object.assign(t.subscribe,{bitrate:o},{packetsLost:s.getPacketsLost(),jitter:s.getJitter(),packetsLostRate:r});return{publish:n,subscribe:l}},tr=(s,e,t,r)=>{let i=Ge((t==null?void 0:t.type)==="outbound-rtp"?"bytesSent":"bytesReceived",t,r);return Object.assign(t,{peerID:e.peerId,peerName:s.getState(Ke(e.peerId)),bitrate:i})},Ge=(s,e,t)=>sr(s,e,t)*8,sr=(s,e,t)=>{let r=e&&e[s],i=t?t[s]:null;return e&&t&&ne(r)&&ne(i)?At(r,i,e.timestamp,t.timestamp)*1e3:0},At=(s,e,t,r)=>ne(s)&&ne(e)&&t&&r?(s-e)/(t-r):0,rr=(s,e="resetState")=>{s.namedSetState(t=>{Object.assign(t,z())},e)};var ae=class{constructor(e,t){this.hmsStore=e;this.sdk=t;this.store=L.createNewHMSStore(ge("HMSStatsStore"),z),this.getState=this.store.getState,this.subscribe=this.store.subscribe,this.getPublishPeerConnection=()=>new Promise(r=>{var i,o;this.hmsStore.getState(x)==="Connected"?r((o=(i=this.sdk)==null?void 0:i.getWebrtcInternals())==null?void 0:o.getPublishPeerConnection()):this.hmsStore.subscribe(n=>{var l,d;n==="Connected"&&r((d=(l=this.sdk)==null?void 0:l.getWebrtcInternals())==null?void 0:d.getPublishPeerConnection())},x)}),this.getSubscribePeerConnection=()=>new Promise(r=>{var i,o;this.hmsStore.getState(x)==="Connected"?r((o=(i=this.sdk)==null?void 0:i.getWebrtcInternals())==null?void 0:o.getSubscribePeerConnection()):this.hmsStore.subscribe(n=>{var l,d;n==="Connected"&&r((d=(l=this.sdk)==null?void 0:l.getWebrtcInternals())==null?void 0:d.getSubscribePeerConnection())},x)}),!!this.sdk&&bt(this.sdk,this.store,this.hmsStore)}};var Te={};tt(Te,{availablePublishBitrate:()=>pr,availableSubscribeBitrate:()=>Mr,bitrateByTrackID:()=>yr,bytesReceivedByTrackID:()=>fr,framerateByTrackID:()=>kr,jitter:()=>Sr,jitterByTrackID:()=>Pr,localAudioTrackBitrate:()=>Ir,localAudioTrackBytesSent:()=>Dr,localAudioTrackStats:()=>Ye,localPeerStats:()=>V,localVideoTrackBitrate:()=>vr,localVideoTrackBytesSent:()=>br,localVideoTrackFramerate:()=>Er,localVideoTrackQualityLimitationReason:()=>Ar,localVideoTrackStats:()=>ce,packetsLost:()=>lr,packetsLostByTrackID:()=>Rr,peerStatsByID:()=>Tr,publishBitrate:()=>dr,subscribeBitrate:()=>ur,totalBytesReceived:()=>hr,totalBytesSent:()=>mr,trackStatsByID:()=>Hr});var g=I(require("reselect"));var ir=s=>s.localPeer.id,or=s=>s.localPeer.audioTrack,nr=s=>s.localPeer.videoTrack,ar=(s,e)=>e,cr=(s,e)=>e,Je=s=>s.trackStats,Ct=s=>s.peerStats,V=(0,g.createSelector)([Ct,ir],(s,e)=>s[e]),lr=(0,g.createSelector)(V,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.packetsLost}),Sr=(0,g.createSelector)(V,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.jitter}),dr=(0,g.createSelector)(V,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bitrate}),ur=(0,g.createSelector)(V,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bitrate}),pr=(0,g.createSelector)(V,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.availableOutgoingBitrate}),Mr=(0,g.createSelector)(V,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.availableIncomingBitrate}),mr=(0,g.createSelector)(V,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bytesSent}),hr=(0,g.createSelector)(V,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bytesReceived}),gr=(0,g.createSelector)([Ct,ar],(s,e)=>e?s[e]:void 0),G=(0,g.createSelector)([Je,cr],(s,e)=>e?s[e]:void 0),Tr=p(gr),Hr=p(G),yr=p((0,g.createSelector)(G,s=>s==null?void 0:s.bitrate)),fr=p((0,g.createSelector)(G,s=>s==null?void 0:s.bytesReceived)),kr=p((0,g.createSelector)(G,s=>s==null?void 0:s.framesPerSecond)),Pr=p((0,g.createSelector)(G,s=>s==null?void 0:s.jitter)),Rr=p((0,g.createSelector)(G,s=>s==null?void 0:s.packetsLost)),Ye=(0,g.createSelector)([Je,or],(s,e)=>e?s[e]:void 0),ce=(0,g.createSelector)([Je,nr],(s,e)=>e?s[e]:void 0),Ir=(0,g.createSelector)(Ye,s=>s==null?void 0:s.bitrate),vr=(0,g.createSelector)(ce,s=>s==null?void 0:s.bitrate),Dr=(0,g.createSelector)(Ye,s=>s==null?void 0:s.bytesSent),br=(0,g.createSelector)(ce,s=>s==null?void 0:s.bytesSent),Er=(0,g.createSelector)(ce,s=>s==null?void 0:s.framesPerSecond),Ar=(0,g.createSelector)(ce,s=>s==null?void 0:s.qualityLimitationReason);var L=class{constructor(e,t,r){this.getWebrtcStats=()=>(this.webrtcStats||(this.webrtcStats=new ae(this.store,this.sdk)),this.webrtcStats);e?this.store=e:this.store=L.createNewHMSStore(ge("HMSStore"),Q),r?this.notifications=r:this.notifications=new Fe(this.store),t?this.actions=t:(this.sdk=new wt.HMSSdk,this.actions=new We(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}getNotifications(){return{onNotification:this.notifications.onNotification}}static createNewHMSStore(e,t){let r=(0,Lt.default)(()=>t()),i=r.setState;r.setState=l=>{let d=typeof l=="function"?(0,xt.default)(l):l;i(d)};let o=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 P=performance.now(),B=l(o()),f=performance.now()-P;return f>1&&(window.expensiveSelectors=window.expensiveSelectors||new Map,window.expensiveSelectors.set(d,f)),B}return o()},L.useShallowCheckInSubscribe(r);let n=L.setUpDevtools(r,e);return W(q({},r),{namedSetState:n})}static makeStoreTriggerOnSubscribe(e){let t=e.subscribe;e.subscribe=(r,i,o)=>(r(e.getState(i),void 0),t(r,i,o))}static useShallowCheckInSubscribe(e){let t=e.subscribe;e.subscribe=(r,i,o)=>(i||(i=n=>n),o=o||Ot.default,t(r,i,o))}static setUpDevtools(e,t){let r;try{r=window.__REDUX_DEVTOOLS_EXTENSION__||window.top.__REDUX_DEVTOOLS_EXTENSION__}catch(n){}if(!r)return n=>{e.setState(n)};let i=r.connect(L.devtoolsOptions(t));i.prefix=t?`${t} > `:"";let o=e.setState;return e.setState=n=>{o(n),i.send(`${i.prefix}setState`,e.getState())},i.subscribe(L.devtoolsSubscribe(i,e,o)),i.send("setUpStore",e.getState()),(n,l)=>{o(n);let d=l||`${i.prefix}action`;i.send(d,e.getState())}}static devtoolsOptions(e){return{name:e,actionsBlacklist:["audioLevel","playlistProgress"]}}static devtoolsSubscribe(e,t,r){return i=>{var o,n,l,d;if(i.type==="DISPATCH"&&i.state)["JUMP_TO_ACTION","JUMP_TO_STATE"].includes(i.payload.type)?r(JSON.parse(i.state)):t.setState(JSON.parse(i.state));else if(i.type==="DISPATCH"&&((o=i.payload)==null?void 0:o.type)==="COMMIT")e.init(t.getState());else if(i.type==="DISPATCH"&&((n=i.payload)==null?void 0:n.type)==="IMPORT_STATE"){let P=(l=i.payload.nextLiftedState)==null?void 0:l.actionsById;(((d=i.payload.nextLiftedState)==null?void 0:d.computedStates)||[]).forEach(({state:f},w)=>{let J=P[w]||`${e.prefix}setState`;w===0?e.init(f):(r(f),e.send(J,t.getState()))})}}}};
@@ -1 +1 @@
1
- var le=Object.defineProperty,ft=Object.defineProperties;var kt=Object.getOwnPropertyDescriptors;var Ae=Object.getOwnPropertySymbols;var Pt=Object.prototype.hasOwnProperty,It=Object.prototype.propertyIsEnumerable;var xe=(s,e,t)=>e in s?le(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,V=(s,e)=>{for(var t in e||(e={}))Pt.call(e,t)&&xe(s,t,e[t]);if(Ae)for(var t of Ae(e))It.call(e,t)&&xe(s,t,e[t]);return s},j=(s,e)=>ft(s,kt(e)),Rt=s=>le(s,"__esModule",{value:!0});var vt=(s,e)=>{Rt(s);for(var t in e)le(s,t,{get:e[t],enumerable:!0})};var a=(s,e,t)=>new Promise((r,i)=>{var o=S=>{try{l(t.next(S))}catch(P){i(P)}},n=S=>{try{l(t.throw(S))}catch(P){i(P)}},l=S=>S.done?r(S.value):Promise.resolve(S.value).then(o,n);l((t=t.apply(s,e)).next())});import Cs from"immer";import As from"zustand/vanilla";import xs from"zustand/shallow";import{HMSSdk as Ls}from"@100mslive/hms-video";var H;(function(n){n.Disconnected="Disconnected",n.Preview="Preview",n.Connecting="Connecting",n.Connected="Connected",n.Reconnecting="Reconnecting",n.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=()=>({jitter:0,packetsLost:0,peerStats:{},trackStats:{},localPeer:{id:""}});var Le;(function(e){e.CHAT="chat"})(Le||(Le={}));var I;(function(r){r.INFO="info",r.ERROR="error",r.CRITICAL="critical"})(I||(I={}));var m;(function(c){c.PEER_JOINED="PEER_JOINED",c.PEER_LEFT="PEER_LEFT",c.PEER_LIST="PEER_LIST",c.NEW_MESSAGE="NEW_MESSAGE",c.ERROR="ERROR",c.RECONNECTING="RECONNECTING",c.RECONNECTED="RECONNECTED",c.TRACK_ADDED="TRACK_ADDED",c.TRACK_REMOVED="TRACK_REMOVED",c.TRACK_MUTED="TRACK_MUTED",c.TRACK_UNMUTED="TRACK_UNMUTED",c.TRACK_DEGRADED="TRACK_DEGRADED",c.TRACK_RESTORED="TRACK_RESTORED",c.ROLE_CHANGE_REQUEST="ROLE_CHANGE_REQUEST",c.ROLE_UPDATED="ROLE_UPDATED",c.CHANGE_TRACK_STATE_REQUEST="CHANGE_TRACK_STATE_REQUEST",c.CHANGE_MULTI_TRACK_STATE_REQUEST="CHANGE_MULTI_TRACK_STATE_REQUEST",c.ROOM_ENDED="ROOM_ENDED",c.REMOVED_FROM_ROOM="REMOVED_FROM_ROOM",c.DEVICE_CHANGE_UPDATE="DEVICE_CHANGE_UPDATE",c.PLAYLIST_TRACK_ENDED="PLAYLIST_TRACK_ENDED",c.NAME_UPDATED="NAME_UPDATED",c.METADATA_UPDATED="METADATA_UPDATED"})(m||(m={}));var p;(function(t){t.audio="audio",t.video="video"})(p||(p={}));import{HMSException as js,HMSSimulcastLayer as Ws,HMSPeerUpdate as R,HMSRoomUpdate as $s,HMSTrackUpdate as b,HMSLogLevel as f,HMSAudioPluginType as Dt,HMSVideoPluginType as bt}from"@100mslive/hms-video";import{HMSLocalAudioTrack as Ne,HMSLocalVideoTrack as Ue,HMSRemoteAudioTrack as Ct,HMSRemoteVideoTrack as At}from"@100mslive/hms-video";var Oe=(s,e)=>{let t=Me(Object.keys(s),Object.keys(e));for(let r of t){let i=s[r],o=e[r];de(i,o)?(N(i.auxiliaryTracks,o.auxiliaryTracks)&&(o.auxiliaryTracks=i.auxiliaryTracks),Object.assign(i,o)):ue(i,o)?delete s[r]:pe(i,o)&&(s[r]=o)}},we=(s,e)=>{let t=Me(Object.keys(s),Object.keys(e));for(let r of t){let i=s[r],o=e[r];de(i,o)?(Et(i,o),Object.assign(i,o)):ue(i,o)?delete s[r]:pe(i,o)&&(s[r]=o)}},Se=(s,e)=>{let t=Me(Object.keys(s),Object.keys(e));for(let r of t){let i=s[r],o=e[r];de(i,o)?Object.assign(i,o):ue(i,o)?delete s[r]:pe(i,o)&&(s[r]=o)}},Et=(s,e)=>{s.plugins&&N(s.plugins,e.plugins)&&(e.plugins=s.plugins),s.layerDefinitions&&N(s.layerDefinitions,e.layerDefinitions)&&(e.layerDefinitions=s.layerDefinitions)},de=(s,e)=>s&&e,ue=(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,i;return{id:e.peerId,name:e.name,roleName:(t=e.role)==null?void 0:t.name,isLocal:e.isLocal,videoTrack:(r=e.videoTrack)==null?void 0:r.trackId,audioTrack:(i=e.audioTrack)==null?void 0:i.trackId,auxiliaryTracks:e.auxiliaryTracks.map(o=>o.trackId),customerUserId:e.customerUserId,customerDescription:e.metadata,metadata:e.metadata}}static convertTrack(e,t){let r={id:e.trackId,source:e.source,type:e.type,enabled:e.enabled,displayEnabled:e.enabled,peerId:e.peerId||t};return this.enrichTrack(r,e),r}static enrichTrack(e,t){let r=t.getMediaTrackSettings();e.source==="screen"&&e.type==="video"&&(e.displaySurface=r.displaySurface),e.height=r.height,e.width=r.width,t instanceof Ct&&(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 Ue||t instanceof Ne?e.deviceID=t.settings.deviceId:e.deviceID=(r=t.getMediaTrackSettings())==null?void 0:r.deviceId}static enrichVideoTrack(e,t){t instanceof At&&(e.layer=t.getSimulcastLayer(),e.degraded=t.degraded,N(t.getSimulcastDefinitions(),e.layerDefinitions)||(e.layerDefinitions=t.getSimulcastDefinitions()))}static enrichPluginsDetails(e,t){(t instanceof Ue||t instanceof Ne)&&(N(t.getPlugins(),e.plugins)||(e.plugins=t.getPlugins()))}static convertRoom(e){var t,r,i,o,n,l,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:!!((i=e.recording)==null?void 0:i.browser.running)},server:{running:!!((o=e.recording)==null?void 0:o.server.running)}},rtmp:{running:!!((n=e.rtmp)==null?void 0:n.running)},hls:{running:!!((l=e.hls)==null?void 0:l.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,i;return{sender:e.sender.peerId,senderName:e.sender.name,senderRole:(t=e.sender.role)==null?void 0:t.name,senderUserId:e.sender.customerUserId,recipientPeer:(r=e.recipientPeer)==null?void 0:r.peerId,recipientRoles:(i=e.recipientRoles)==null?void 0:i.map(o=>o.name),time:e.time,type:e.type,message:e.message}}static convertRoles(e){let t={};return e&&e.forEach(r=>{t[r.name]=r}),t}static convertRoleChangeRequest(e){return{requestedBy:e.requestedBy.peerId,roleName:e.role.name,token:e.token}}static convertException(e){return{code:e.code,action:e.action,name:e.name,message:e.message,description:e.description,isTerminal:e.isTerminal,nativeError:e.nativeError,timestamp:new Date}}static convertDeviceChangeUpdate(e){let t={devices:e.devices,selection:e.selection,type:e.type};return e.error&&(t.error=this.convertException(e.error)),t}static convertPlaylist(e){let t=this.getConvertedPlaylistType(e,p.audio),r=this.getConvertedPlaylistType(e,p.video);return{audio:t,video:r}}static convertPlaylistItem(e,t){let r=t.type,i=e.getCurrentSelection(r),o=e.isPlaying(r),n=t.url===(i==null?void 0:i.url);return j(V({},t),{type:t.type,selected:n,playing:n&&o})}static convertConnectionStats(e){let t=V({},e);return delete t.rawStatsArray,delete t.rawStats,t}static getConvertedPlaylistType(e,t){let r={},i=e.getCurrentSelection(t),o=e.getCurrentProgress(t),n=e.getVolume(t),l=e.getList(t),S=e.getCurrentIndex(t);return e.getList(t).forEach(P=>{r[P.id]=h.convertPlaylistItem(e,P)}),{list:r,selection:{id:i==null?void 0:i.id,hasPrevious:S>0,hasNext:S<l.length-1},progress:o,volume:n,currentTime:e.getCurrentTime(t),playbackRate:e.getPlaybackRate(t)}}static convertRecordingStreamingState(e,t,r){var i,o;return{recording:{browser:{running:!!((i=e==null?void 0:e.browser)==null?void 0:i.running)},server:{running:!!((o=e==null?void 0:e.server)==null?void 0:o.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=xt){let r,i;if(e)for(let o of e.auxiliaryTracks){let n=s[o];t(n)&&(i=G(n)?n:i,r=J(n)?n:r)}return{video:r,audio:i}}function G(s){return s&&s.type==="audio"}function J(s){return s&&s.type==="video"}function xt(s){return s&&s.source==="screen"}function re(s){return s&&s.source==="audioplaylist"}function Y(s){return s&&s.source==="videoplaylist"}function _e(s){return Boolean(s==null?void 0:s.degraded)}function W(s,e){return e&&s.tracks[e]?s.tracks[e].enabled:!1}function Ke(s,e){return e&&s.tracks[e]?s.tracks[e].displayEnabled:!1}var E=s=>s.room,D=s=>s.peers,Ve=s=>s.messages.byID,Be=s=>s.messages.allIDs,g=s=>s.tracks,qe=s=>s.settings,Gr=s=>s.devices,Lt=s=>s.speakers,Jr=d([E],s=>s&&s.isConnected),Yr=d(E,s=>s.peers.length),me=d([E,D],(s,e)=>s.peers.map(t=>e[t])),Ot=d(g,s=>Object.values(s)),C=d(E,D,(s,e)=>e[s.localPeer]),K=d(E,s=>s.localPeer),A=d(C,s=>s==null?void 0:s.audioTrack),x=d(C,s=>s==null?void 0:s.videoTrack),wt=d(C,s=>s==null?void 0:s.auxiliaryTracks),je=d([A,x,wt],(s,e,t)=>{let r=[...t];return s&&r.unshift(s),e&&r.unshift(e),r}),Qr=d(me,s=>s.filter(e=>!e.isLocal)),zr=d(D,Lt,(s,e)=>{let t=Object.entries(e).sort((r,i)=>{var l,S;let o=((l=r[1])==null?void 0:l.audioLevel)||0;return(((S=i[1])==null?void 0:S.audioLevel)||0)>o?1:-1});if(t.length>0&&t[0][1].audioLevel&&t[0][1].audioLevel>0){let r=t[0][1].peerID;if(r in s)return s[r]}return null}),Xr=s=>{let e=C(s);return W(s,e==null?void 0:e.audioTrack)},he=s=>{let e=C(s);return W(s,e==null?void 0:e.videoTrack)},We=s=>{let e=C(s);return Ke(s,e==null?void 0:e.videoTrack)},ge=d(C,g,(s,e)=>{let{video:t,audio:r}=B(e,s);return!!(t||r)}),Nt=d(D,g,(s,e)=>{let t;for(let r in s){let i=s[r],{video:o,audio:n}=B(e,i);if(o)return i;n&&!t&&(t=i)}return t}),Zr=d(Nt,s=>!!s),ei=d(D,g,(s,e)=>{for(let t in s){let r=s[t],{audio:i,video:o}=B(e,r);if(!o&&!!i)return r}}),ti=d(D,g,(s,e)=>{let t=[],r=[];for(let i in s){let o=s[i],{video:n,audio:l}=B(e,o);n?t.push(o):l&&r.push(o)}return t.concat(r)}),si=d(D,g,(s,e)=>{for(let t in e){let r=e[t];if(Y(r)&&J(r)&&r.peerId)return s[r.peerId]}}),ri=d(D,g,(s,e)=>{for(let t in e){let r=e[t];if(re(r)&&r.peerId)return s[r.peerId]}}),ii=d(Ot,s=>s.filter(_e)),$e=d(Be,s=>s.length),oi=d(Ve,s=>Object.values(s).filter(e=>!e.read).length),ie=d(Be,Ve,(s,e)=>{let t=[];return s.forEach(r=>{t.push(e[r])}),t}),L=d([E],s=>s&&s.roomState),ni=d(L,s=>s===H.Preview),Fe=d(E,s=>s.roomState!==H.Disconnected),_=s=>s.roles,ai=d([_],s=>Object.keys(s)),oe=d([C,_],(s,e)=>(s==null?void 0:s.roleName)?e[s.roleName]:null),ci=d([oe],s=>{var e;return((e=s==null?void 0:s.subscribeParams)==null?void 0:e.subscribeToRoles)?s.subscribeParams.subscribeToRoles.length>0:!1}),Ge=d(oe,s=>s==null?void 0:s.permissions),li=d(E,s=>s.recording),Si=d(E,s=>s.rtmp),di=d(E,s=>s.hls),ui=d(E,s=>s.sessionId),pi=d(E,s=>s.startedAt);import{createSelector as Je}from"reselect";var Ye=(s=p.audio)=>e=>e.playlist[s].list,Te=(s=p.audio)=>e=>e.playlist[s].selection,Qe=(s=p.audio)=>e=>e.playlist[s].progress,ze=(s=p.audio)=>e=>e.playlist[s].currentTime,Xe=(s=p.audio)=>e=>e.playlist[s].playbackRate,Ze=(s=p.audio)=>e=>e.playlist[s].volume,et=(s=p.audio)=>Je(Ye(s),e=>Object.values(e)),tt=(s=p.audio)=>Je(Ye(s),Te(s),(e,t)=>{if(!!t.id)return e[t.id]}),st={selection:Te(p.audio),progress:Qe(p.audio),currentTime:ze(p.audio),playbackRate:Xe(p.audio),volume:Ze(p.audio),list:et(p.audio),selectedItem:tt(p.audio)},rt={selection:Te(p.video),progress:Qe(p.video),currentTime:ze(p.video),playbackRate:Xe(p.video),volume:Ze(p.video),list:et(p.video),selectedItem:tt(p.video)};import{createSelector as k}from"reselect";function u(s){return e=>t=>s(t,e)}var Q="HMS-Store:",M=class{static v(e,...t){this.log(f.VERBOSE,e,...t)}static d(...e){this.log(f.DEBUG,...e)}static i(...e){this.log(f.INFO,...e)}static w(...e){this.log(f.WARN,...e)}static e(...e){this.log(f.ERROR,...e)}static time(e){this.log(f.TIME,"[HMSPerformanceTiming]",e)}static timeEnd(e){this.log(f.TIMEEND,"[HMSPerformanceTiming]",e,e)}static cleanUp(){performance.clearMarks(),performance.clearMeasures()}static log(e,...t){if(!(this.level.valueOf()>e.valueOf()))switch(e){case f.VERBOSE:{console.log(Q,...t);break}case f.DEBUG:{console.debug(Q,...t);break}case f.INFO:{console.info(Q,...t);break}case f.WARN:{console.warn(Q,...t);break}case f.ERROR:{console.error(Q,...t);break}case f.TIME:{performance.mark(t[1]);break}case f.TIMEEND:{let r=t[0],i=t[1];try{let o=performance.measure(i,i);this.log(f.DEBUG,r,i,o==null?void 0:o.duration),performance.clearMarks(i),performance.clearMeasures(i)}catch(o){this.log(f.DEBUG,r,i,o)}break}}}};M.level=f.VERBOSE;var He=(s,e)=>e,Ut=(s,e)=>e,it=(s,e)=>e,v=k([D,He],(s,e)=>e?s[e]:null),ye=k([g,Ut],(s,e)=>e?s[e]:null),U=u(v),ot=u(k(v,s=>s==null?void 0:s.name)),ne=u(ye),_t=u((s,e)=>{let t=v(s,e);if(t&&t.videoTrack&&t.videoTrack!=="")return s.tracks[t.videoTrack]}),Kt=u((s,e)=>{let t=v(s,e);if(t&&t.audioTrack&&t.audioTrack!=="")return s.tracks[t.audioTrack]}),bi=_t,Ei=u((s,e)=>{let t=v(s,e);return(t==null?void 0:t.auxiliaryTracks.map(r=>s.tracks[r]))||[]}),nt=(s,e)=>e?s.speakers[e]:null,Ci=u(k(nt,s=>(s==null?void 0:s.audioLevel)||0)),Vt=(s,e)=>{let t=Kt(e)(s);return nt(s,t==null?void 0:t.id)},Ai=u(k(Vt,s=>(s==null?void 0:s.audioLevel)||0)),xi=u((s,e)=>{let t=v(s,e);if(t){let r=t==null?void 0:t.auxiliaryTracks.find(i=>G(s.tracks[i]));return r?s.tracks[r]:void 0}}),Li=u(k(g,v,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let i=s[r];return Y(i)&&J(i)});return t?s[t]:void 0})),Oi=u(k(g,v,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let i=s[r];return Y(i)&&G(i)});return t?s[t]:void 0})),wi=u(k(g,v,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let i=s[r];return re(i)&&G(i)});return t?s[t]:void 0})),at=u(k(g,v,(s,e)=>B(s,e))),Ni=s=>k(at(s),e=>e.video),ct=s=>k(at(s),e=>e.audio),Ui=u((s,e)=>{let t=v(s,e);return W(s,t==null?void 0:t.audioTrack)}),_i=u((s,e)=>{let t=v(s,e);return W(s,t==null?void 0:t.videoTrack)}),lt=u((s,e)=>{if(e&&s.tracks[e])return s.tracks[e].volume===0}),Ki=u((s,e)=>{let t=v(s,e);return lt(t==null?void 0:t.audioTrack)(s)}),Vi=u((s,e)=>{let t=ct(e)(s);return lt(t==null?void 0:t.id)(s)}),St=u((s,e)=>{let t=ye(s,e);if(t){if(t.type!=="audio"){M.w("Please pass audio track here");return}return t.volume}}),Bi=u((s,e)=>{let t=v(s,e);return St(t==null?void 0:t.audioTrack)(s)}),qi=u((s,e)=>{let t=ct(e)(s);return St(t==null?void 0:t.id)(s)}),ji=u((s,e)=>{let t=ye(s,e);if(t){if(t.type!=="video"){M.w("Please pass video track here");return}return t.layer}}),dt=k([ie,K,He],(s,e,t)=>{if(!!t)return s.filter(r=>{var i;return!r.recipientPeer&&!((i=r.recipientRoles)==null?void 0:i.length)||![e,t].includes(r.sender)?!1:[e,t].includes(r.recipientPeer)})}),ut=k([ie,it],(s,e)=>{if(!!e)return s.filter(t=>{var r,i;return((r=t.recipientRoles)==null?void 0:r.length)?(i=t.recipientRoles)==null?void 0:i.includes(e):!1})}),Bt=k(ie,s=>s.filter(e=>{var t;return!e.recipientPeer&&!((t=e.recipientRoles)==null?void 0:t.length)})),qt=k([ut,it],s=>s?s.filter(e=>!e.read).length:0),jt=k([dt,He],s=>s?s.filter(e=>!e.read).length:0),Wi=k(Bt,s=>s.filter(e=>!e.read).length),$i=u(dt),Fi=u(ut),Gi=u(qt),Ji=u(jt),Yi=s=>k([me],e=>e.filter(t=>t.roleName===s)),Qi=s=>k(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 eo=fe([D,g],(s,e)=>Object.values(s).map(r=>{var i;return{peer:r,isAudioEnabled:r.audioTrack?(i=e[r.audioTrack])==null?void 0:i.enabled:!1}})),Wt=s=>s.roleChangeRequests[0]||null,to=fe([Wt,D,_],(s,e,t)=>s?{requestedBy:e[s.requestedBy],role:t[s.roleName],token:s.token}:null),so=fe([oe],s=>{var i;let e=!1,t=!1,r=!1;return((i=s==null?void 0:s.publishParams)==null?void 0:i.allowed)&&(e=s.publishParams.allowed.includes("video"),t=s.publishParams.allowed.includes("audio"),r=s.publishParams.allowed.includes("screen")),{video:e,audio:t,screen:r}});import{createSelector as z}from"reselect";var no=s=>z([_],e=>e[s]),$t=z([x,g],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),Ft=z([A,g],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),ao=s=>z([$t],e=>e.includes(s)),co=s=>z([Ft],e=>e.includes(s));import{HMSAudioTrack as Yt,HMSRemoteVideoTrack as gt}from"@100mslive/hms-video";import{HMSRemoteAudioTrack as Gt,HMSRemoteVideoTrack as Jt}from"@100mslive/hms-video";function pt(s){return s instanceof Gt||s instanceof Jt}var ae=class{constructor(e,t,r,i){this.playlistManager=e;this.syncPlaylistState=r;this.store=i;this.type=t}play(e){return a(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 a(this,null,function*(){let e=this.type===p.audio?st:rt,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 a(this,null,function*(){yield this.playlistManager.playNext(this.type)})}playPrevious(){return a(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 a(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 Mt={[R.PEER_JOINED]:m.PEER_JOINED,[R.PEER_LEFT]:m.PEER_LEFT,[R.ROLE_UPDATED]:m.ROLE_UPDATED,[R.AUDIO_TOGGLED]:"PEER_AUDIO_UPDATED",[R.VIDEO_TOGGLED]:"PEER_VIDEO_UPDATED",[R.NAME_UPDATED]:m.NAME_UPDATED,[R.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},ht={[R.PEER_JOINED]:"peerJoined",[R.PEER_LEFT]:"peerLeft",[R.NAME_UPDATED]:"peerNameUpdated",[R.METADATA_UPDATED]:"peerMetadataUpdated"};var ke=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)),i="peerUpdate";i=ht[e],this.syncRoomState(i),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 a(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 gt?(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 a(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 M.e("Cannot show preview. Failed to connect to room - ",r),r}})}join(e){if(this.isRoomJoinCalled){this.logPossibleInconsistency("room join is called again");return}try{this.sdkJoinWithListeners(e),this.isRoomJoinCalled=!0,this.setState(t=>{t.room.roomState=H.Connecting},"join")}catch(t){throw this.isRoomJoinCalled=!1,M.e("Failed to connect to room - ",t),t}}leave(){return a(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"),M.i("left room")}).catch(t=>{M.e("error in leaving room - ",t)})})}setScreenShareEnabled(e,t){return a(this,null,function*(){e?yield this.startScreenShare(t):yield this.stopScreenShare()})}addTrack(e,t="regular"){return a(this,null,function*(){yield this.sdk.addTrack(e,t),this.syncRoomState("addTrack")})}removeTrack(e){return a(this,null,function*(){yield this.sdk.removeTrack(e),this.syncRoomState("removeTrack")})}setLocalAudioEnabled(e){return a(this,null,function*(){let t=this.store.getState(A);t&&(yield this.setEnabledTrack(t,e))})}setLocalVideoEnabled(e){return a(this,null,function*(){let t=this.store.getState(x);t&&(yield this.setEnabledTrack(t,e))})}setEnabledTrack(e,t){return a(this,null,function*(){var o;if(((o=this.store.getState().tracks[e])==null?void 0:o.enabled)===t){this.logPossibleInconsistency(`local track[${e}] enabled state - ${t}`);return}this.setState(n=>{n.tracks[e]?n.tracks[e].displayEnabled=t:this.logPossibleInconsistency("track id not found for setEnabled")},"displayEnabled");try{yield this.setEnabledSDKTrack(e,t),this.syncRoomState("setEnabled")}catch(n){throw this.setState(l=>{l.tracks[e].displayEnabled=!t},"rollbackDisplayEnabled"),this.hmsNotifications.sendError(h.convertException(n)),n}let i=t?b.TRACK_UNMUTED:b.TRACK_MUTED;this.hmsNotifications.sendTrackUpdate(i,e)})}setAudioSettings(e){return a(this,null,function*(){let t=this.store.getState(A);t&&(yield this.setSDKLocalAudioTrackSettings(t,e),this.syncRoomState("setAudioSettings"))})}setVideoSettings(e){return a(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 a(this,null,function*(){let r=yield this.sdk.sendBroadcastMessage(e,t);this.updateMessageInStore(r,{message:e,type:t})})}sendGroupMessage(e,t,r){return a(this,null,function*(){let i=this.store.getState(_),o=t.map(l=>i[l]),n=yield this.sdk.sendGroupMessage(e,o,r);this.updateMessageInStore(n,{message:e,recipientRoles:t,type:r})})}sendDirectMessage(e,t,r){return a(this,null,function*(){let i=this.hmsSDKPeers[t],o=yield this.sdk.sendDirectMessage(e,i,r);this.updateMessageInStore(o,{message:e,recipientPeer:i.peerId,type:r})})}updateMessageInStore(e,t){if(!e)throw M.w("sendMessage","Failed to send message",t),Error(`sendMessage Failed - ${JSON.stringify(t)}`);let r=h.convertMessage(e);return r.read=!0,r.senderName="You",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(i=>{r.messages.byID[i].read=e})},"setMessageRead")}attachVideo(e,t){return a(this,null,function*(){if(this.localAndVideoUnmuting(e))return new Promise(r=>{let i=this.store.subscribe(o=>a(this,null,function*(){o&&(yield this.attachVideoInternal(e,t),i(),r())}),he)});yield this.attachVideoInternal(e,t)})}detachVideo(e,t){return a(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 a(this,null,function*(){return this.addRemoveVideoPlugin(e,"add",t)})}addPluginToAudioTrack(e){return a(this,null,function*(){return this.addRemoveAudioPlugin(e,"add")})}removePluginFromVideoTrack(e){return a(this,null,function*(){return this.addRemoveVideoPlugin(e,"remove")})}removePluginFromAudioTrack(e){return a(this,null,function*(){return this.addRemoveAudioPlugin(e,"remove")})}changeRole(e,t,r=!1){return a(this,null,function*(){let i=this.hmsSDKPeers[e];if(!i){this.logPossibleInconsistency(`Unknown peer ID given ${e} for changerole`);return}yield this.sdk.changeRole(i,t,r)})}acceptChangeRole(e){return a(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 a(this,null,function*(){let r=this.store.getState(Ge);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 a(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 a(this,null,function*(){yield this.sdk.startRTMPOrRecording(e)})}stopRTMPAndRecording(){return a(this,null,function*(){yield this.sdk.stopRTMPAndRecording()})}startHLSStreaming(e){return a(this,null,function*(){yield this.sdk.startHLSStreaming(e)})}stopHLSStreaming(e){return a(this,null,function*(){yield this.sdk.stopHLSStreaming(e)})}changeName(e){return a(this,null,function*(){yield this.sdk.changeName(e)})}changeMetadata(e){return a(this,null,function*(){typeof e!="string"&&(e=JSON.stringify(e)),yield this.sdk.changeMetadata(e)})}setRemoteTrackEnabled(e,t){return a(this,null,function*(){if(typeof e=="string"){let r=this.hmsSDKTracks[e];r&&pt(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 a(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(i=>r[i])}yield this.sdk.changeMultiTrackState(t)})}setLogLevel(e){M.level=e,this.sdk.setLogLevel(e)}resetState(e="resetState"){this.setState(t=>{Object.assign(t,te())},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(U((r=e.requestedBy)==null?void 0:r.peerId));this.hmsNotifications.sendLeaveRoom(j(V({},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(C);if(this.setState(i=>{N(i.devices.audioInput,t.audioInput)||(i.devices.audioInput=t.audioInput),N(i.devices.videoInput,t.videoInput)||(i.devices.videoInput=t.videoInput),N(i.devices.audioOutput,t.audioOutput)||(i.devices.audioOutput=t.audioOutput),this.hmsSDKPeers[r==null?void 0:r.id]&&Object.assign(i.settings,this.getMediaSettings(this.hmsSDKPeers[r==null?void 0:r.id]))},"deviceChange"),e.selection){let i=h.convertDeviceChangeUpdate(e);this.hmsNotifications.sendDeviceChange(i)}}sdkPreviewWithListeners(e){return a(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 a(this,null,function*(){this.store.getState(ge)?this.logPossibleInconsistency("start screenshare is called while it's on"):(yield this.sdk.startScreenShare(()=>this.syncRoomState("screenshareStopped"),e),this.syncRoomState("startScreenShare"))})}stopScreenShare(){return a(this,null,function*(){this.store.getState(ge)?(yield this.sdk.stopScreenShare(),this.syncRoomState("stopScreenShare")):this.logPossibleInconsistency("stop screenshare is called while it's not on")})}attachVideoInternal(e,t){return a(this,null,function*(){let r=this.hmsSDKTracks[e];r&&r.type==="video"?(yield r.addSink(t),this.updateVideoLayer(e,"attachVideo")):this.logPossibleInconsistency("no video track found to add sink")})}syncRoomState(e){M.time(`store-sync-${e}`);let t={},r=[],i={},o={},n={},l=this.sdk.getPeers();for(let y of l){let w=h.convertPeer(y);t[w.id]=w,r.push(w.id),this.hmsSDKPeers[w.id]=y;let F=[y.audioTrack,y.videoTrack,...y.auxiliaryTracks];for(let ee of F){if(!ee)continue;let Ce=h.convertTrack(ee);i[Ce.id]=Ce,o[ee.trackId]=ee}w.isLocal&&Object.assign(n,this.getMediaSettings(y))}let S=this.sdk.getRecordingState(),P=this.sdk.getRTMPState(),Z=this.sdk.getHLSState();this.setState(y=>{y.room.peers=r;let w=y.peers,F=y.tracks;Oe(w,t),we(F,i),Object.assign(y.settings,n),this.hmsSDKTracks=o,Object.assign(y.roles,h.convertRoles(this.sdk.getRoles())),Object.assign(y.playlist,h.convertPlaylist(this.sdk.getPlaylistManager())),Object.assign(y.room,h.convertRecordingStreamingState(S,P,Z))},e),M.timeEnd(`store-sync-${e}`)}onPreview(e){this.setState(t=>{Object.assign(t.room,h.convertRoom(e)),t.room.roomState=H.Preview},"previewStart"),this.syncRoomState("previewSync")}onJoin(e){let t=this.sdk.getPlaylistManager();this.audioPlaylist=new ae(t,p.audio,this.syncPlaylistState.bind(this),this.store),this.videoPlaylist=new ae(t,p.video,this.syncRoomState.bind(this),this.store),this.syncRoomState("joinSync"),this.setState(r=>{Object.assign(r.room,h.convertRoom(e)),r.room.isConnected=!0,r.room.roomState=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(![R.BECAME_DOMINANT_SPEAKER,R.RESIGNED_DOMINANT_SPEAKER].includes(e)){if(Array.isArray(t)){this.syncRoomState("peersJoined");let r=[];for(let i of t){let o=this.store.getState(U(i.peerId));o&&r.push(o)}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 i=e===b.TRACK_ADDED?"trackAdded":"trackUpdate";this.syncRoomState(i),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(o=>{if(!o.track||!o.peer)return;let n=o.track.trackId;r[n]=o.audioLevel,t.speakers[n]||(t.speakers[n]={audioLevel:o.audioLevel,peerID:o.peer.peerId,trackID:n})});let i=Object.entries(t.speakers);for(let[o,n]of i)n.audioLevel=r[o]||0,n.audioLevel===0&&delete t.speakers[o]},"audioLevel")}onChangeTrackStateRequest(e){let t=this.store.getState(U(e.requestedBy.peerId)),r=this.getStoreLocalTrackIDfromSDKTrack(e.track),i=this.store.getState(ne(r));if(!t)return this.logPossibleInconsistency(`Not found peer who requested track state change, ${e.requestedBy}`);if(!i)return this.logPossibleInconsistency(`Not found track for which track state change was requested, ${e.track}`);e.enabled||this.syncRoomState("changeTrackStateRequest"),this.hmsNotifications.sendChangeTrackStateRequest({requestedBy:t,track:i,enabled:e.enabled})}onChangeMultiTrackStateRequest(e){let t=this.store.getState(U(e.requestedBy.peerId));if(!t)return this.logPossibleInconsistency(`Not found peer who requested track state change, ${e.requestedBy}`);e.enabled||this.syncRoomState("changeMultiTrackStateRequest");let r=[],i=this.store.getState(g);for(let o of e.tracks){let n=this.getStoreLocalTrackIDfromSDKTrack(o);n&&i[n]&&r.push(i[n])}this.hmsNotifications.sendChangeMultiTrackStateRequest({requestedBy:t,tracks:r,enabled:e.enabled,type:e.type,source:e.source})}onReconnected(){this.syncRoomState("reconnectedSync"),this.hmsNotifications.sendReconnected(),this.setState(e=>{e.room.roomState=H.Connected},"reconnected")}onReconnecting(e){let t=h.convertException(e);M.e("Reconnection: received error from sdk",t),this.hmsNotifications.sendReconnecting(t),this.setState(r=>{r.room.roomState=H.Reconnecting,r.errors.push(t)},"reconnecting")}onError(e){let t=h.convertException(e);t.isTerminal?(this.leave().then(()=>M.e("error from SDK, left room.")),this.setState(r=>{r.room.roomState=H.Failed,r.errors.push(t)},"errorTerminal")):this.store.getState().errors.length<50&&this.setState(i=>{i.errors.push(t)},"error"),this.hmsNotifications.sendError(t),M.e("received error from sdk",t)}updateVideoLayer(e,t){let r=this.hmsSDKTracks[e];r&&r instanceof gt&&this.setState(i=>{i.tracks[e].layer=r.getSimulcastLayer()},t)}handleTrackRemove(e,t){this.setState(r=>{let i=r.peers[t.peerId],o=r.tracks,n=e.trackId;if(this.isSameStoreSDKTrack(n,i==null?void 0:i.audioTrack))i==null||delete i.audioTrack;else if(this.isSameStoreSDKTrack(n,i==null?void 0:i.videoTrack))i==null||delete i.videoTrack;else{let l=i==null?void 0:i.auxiliaryTracks.indexOf(n);l>-1&&this.isSameStoreSDKTrack(n,i==null?void 0:i.auxiliaryTracks[l])&&(i==null||i.auxiliaryTracks.splice(l,1))}delete o[n],delete this.hmsSDKTracks[n]},"trackRemoved")}setEnabledSDKTrack(e,t){return a(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 a(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 a(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}getMediaSettings(e){var o;let t=this.store.getState(qe),r=e.audioTrack,i=e.videoTrack;return{audioInputDeviceId:(r==null?void 0:r.settings.deviceId)||t.audioInputDeviceId,videoInputDeviceId:(i==null?void 0:i.settings.deviceId)||t.videoInputDeviceId,audioOutputDeviceId:(o=this.sdk.getAudioOutput().getDevice())==null?void 0:o.deviceId}}setTrackVolume(e,t){let r=this.hmsSDKTracks[t];r?r instanceof Yt?(r.setVolume(e),this.setState(i=>{let o=i.tracks[t];o&&(o.volume=e)},"trackVolume")):M.w(`track ${t} is not an audio track`):this.logPossibleInconsistency(`track ${t} not present, unable to set volume`)}localAndVideoUnmuting(e){if(this.store.getState(C).videoTrack!==e)return!1;let r=this.store.getState(We),i=this.store.getState(he);return r&&!i}logPossibleInconsistency(e){M.w("possible inconsistency detected - ",e)}addRemoveVideoPlugin(e,t,r){return a(this,null,function*(){if(!e){M.w("Invalid plugin received in store");return}let i=this.store.getState(x);if(i){let o=this.hmsSDKTracks[i];o?(t==="add"?yield o.addPlugin(e,r):t==="remove"&&(yield o.removePlugin(e)),this.syncRoomState(`${t}VideoPlugin`)):this.logPossibleInconsistency(`track ${i} not present, unable to remove plugin`)}})}addRemoveAudioPlugin(e,t){return a(this,null,function*(){if(!e){M.w("Invalid plugin received in store");return}let r=this.store.getState(A);if(r){let i=this.hmsSDKTracks[r];i?(t==="add"?yield i.addPlugin(e):t==="remove"&&(yield i.removePlugin(e)),this.syncRoomState(`${t}AudioPlugin`)):this.logPossibleInconsistency(`track ${r} not present, unable to remove plugin`)}})}isSameStoreSDKTrack(e,t){var r;return t?((r=this.hmsSDKTracks[t])==null?void 0:r.trackId)===e:!1}onRoleChangeRequest(e){this.setState(t=>{t.roleChangeRequests.length===0&&t.roleChangeRequests.push(h.convertRoleChangeRequest(e))},"roleChangeRequest")}removeRoleChangeRequest(e){this.setState(t=>{let r=t.roleChangeRequests.findIndex(i=>i.token===e.token);r!==-1&&t.roleChangeRequests.splice(r,1)},"removeRoleChangeRequest")}onRoleUpdate(){this.syncRoomState("roleUpdate")}getStoreLocalTrackIDfromSDKTrack(e){return this.store.getState(je).find(r=>this.hmsSDKTracks[r].trackId===e.trackId)}};import{EventEmitter2 as Qt}from"eventemitter2";var Pe="hmsNotification",Ie=class{constructor(e){this.id=0;this.onNotification=e=>(this.eventEmitter.addListener(Pe,e),()=>{this.eventEmitter.removeListener(Pe,e)});this.store=e,this.eventEmitter=new Qt}sendPlaylistTrackEnded(e){let t=this.createNotification(m.PLAYLIST_TRACK_ENDED,e,I.INFO);this.emitEvent(t)}sendDeviceChange(e){var r;let t=this.createNotification(m.DEVICE_CHANGE_UPDATE,e,e.error?I.ERROR:I.INFO,`Selected ${e.type} device - ${(r=e.selection)==null?void 0:r.label}`);this.emitEvent(t)}sendLeaveRoom(e){var i;let t=(i=e.requestedBy)==null?void 0:i.name,r=this.createNotification(e.roomEnded||!t?m.ROOM_ENDED:m.REMOVED_FROM_ROOM,e,I.INFO,`${e.roomEnded?"Room ended":"Removed from room"} ${t?`by ${t}`:""}`);this.emitEvent(r)}sendPeerList(e){let t=this.createNotification(m.PEER_LIST,e,I.INFO);this.emitEvent(t)}sendPeerUpdate(e,t){let r=this.store.getState(U(t==null?void 0:t.id))||t,i=Mt[e];if(i){let o=this.createNotification(i,r,I.INFO);this.emitEvent(o)}}sendTrackUpdate(e,t){let r=this.store.getState(ne(t)),i=mt[e];if(i){let o=this.createNotification(i,r,I.INFO);this.emitEvent(o)}}sendMessageReceived(e){let t=this.createNotification(m.NEW_MESSAGE,e,I.INFO);this.emitEvent(t)}sendError(e){let t=this.createNotification(m.ERROR,e,I.ERROR);this.emitEvent(t)}sendReconnecting(e){let t=this.createNotification(m.RECONNECTING,e,I.ERROR);this.emitEvent(t)}sendReconnected(){let e=this.createNotification(m.RECONNECTED,null,I.INFO);this.emitEvent(e)}sendChangeTrackStateRequest(e){let t=this.createNotification(m.CHANGE_TRACK_STATE_REQUEST,e,I.INFO);this.emitEvent(t)}sendChangeMultiTrackStateRequest(e){let t=this.createNotification(m.CHANGE_MULTI_TRACK_STATE_REQUEST,e,I.INFO);this.emitEvent(t)}emitEvent(e){this.eventEmitter.emit(Pe,e)}createNotification(e,t,r,i=""){return this.id++,{id:this.id,type:e,message:i,data:t,severity:r}}};function Re(s){return s!=null}var Tt=(s,e,t)=>{let r;t.getState(L)===H.Connected&&(r=Ht(s,e,t)),t.subscribe(i=>{[H.Connected,H.Reconnecting].includes(i)?r||(r=Ht(s,e,t)):r&&(ss(e),r())},L)},Ht=(s,e,t)=>{var o;let r=zt(t,e),i=(o=s.getWebrtcInternals())==null?void 0:o.onStatsChange(n=>Xt(e,n,t));return()=>{r(),i&&i()}},zt=(s,e)=>{let t,r,i;return s.getState(K)?e.namedSetState(o=>{o.localPeer.id=s.getState(K)},"localpeer-id"):t=s.subscribe(o=>{o&&e.namedSetState(n=>{n.localPeer.id=o},"localpeer-id")},K),s.getState(x)?e.namedSetState(o=>{o.localPeer.videoTrack=s.getState(x)},"localpeer-videotrack-id"):r=s.subscribe(o=>{o&&e.namedSetState(n=>{n.localPeer.videoTrack=o},"localpeer-videotrack-id")},x),s.getState(A)?e.namedSetState(o=>{o.localPeer.videoTrack=s.getState(A)},"localpeer-audiotrack-id"):i=s.subscribe(o=>{o&&e.namedSetState(n=>{n.localPeer.videoTrack=o},"localpeer-audiotrack-id")},A),()=>{t==null||t(),r==null||r(),i==null||i()}},Xt=(s,e,t)=>{let r=t.getState(g);s.namedSetState(i=>{i.jitter=e.getJitter(),i.packetsLost=e.getPacketsLost();let o={},n=Object.keys(r);for(let S of n){let P=e.getTrackStats(S);P&&(o[S]=ts(t,r[S],P,i.trackStats[S]))}Se(i.trackStats,o);let l=Zt(t,i.peerStats[t.getState(K)],e.getLocalPeerStats());Se(i.peerStats,l)},"webrtc-stats")},Zt=(s,e,t)=>{let r={},i=s.getState(K);return r[i]||(r[i]={}),e?r[i]=es(t,e):(t.publish&&(r[i].publish=Object.assign(t.publish,{bitrate:0})),t.subscribe&&(r[i].subscribe=Object.assign(t.subscribe,{bitrate:0}))),r},es=(s,e)=>{let t=ve("bytesSent",s.publish,e==null?void 0:e.publish),r=ve("bytesReceived",s.subscribe,e==null?void 0:e.subscribe),i=Object.assign(s.publish,{bitrate:t}),o=Object.assign(s.subscribe,{bitrate:r});return{publish:i,subscribe:o}},ts=(s,e,t,r)=>{let i=ve((t==null?void 0:t.type)==="outbound-rtp"?"bytesSent":"bytesReceived",t,r);return Object.assign(t,{peerID:e.peerId,peerName:s.getState(ot(e.peerId)),bitrate:i})},ve=(s,e,t)=>{let r=e&&e[s],i=t?t[s]:null;return e&&t&&Re(r)&&Re(i)?(r-i)/(e.timestamp-t.timestamp)*1e3*8:0},ss=(s,e="resetState")=>{s.namedSetState(t=>{Object.assign(t,se())},e)};var ce=class{constructor(e,t){this.hmsStore=e;this.sdk=t;this.store=O.createNewHMSStore("HMSInternalsStore",se),this.getState=this.store.getState,this.subscribe=this.store.subscribe,this.getPublishPeerConnection=()=>new Promise(r=>{var i,o;this.hmsStore.getState(L)==="Connected"?r((o=(i=this.sdk)==null?void 0:i.getWebrtcInternals())==null?void 0:o.getPublishPeerConnection()):this.hmsStore.subscribe(n=>{var l,S;n==="Connected"&&r((S=(l=this.sdk)==null?void 0:l.getWebrtcInternals())==null?void 0:S.getPublishPeerConnection())},L)}),this.getSubscribePeerConnection=()=>new Promise(r=>{var i,o;this.hmsStore.getState(L)==="Connected"?r((o=(i=this.sdk)==null?void 0:i.getWebrtcInternals())==null?void 0:o.getSubscribePeerConnection()):this.hmsStore.subscribe(n=>{var l,S;n==="Connected"&&r((S=(l=this.sdk)==null?void 0:l.getWebrtcInternals())==null?void 0:S.getSubscribePeerConnection())},L)}),!!this.sdk&&Tt(this.sdk,this.store,this.hmsStore)}};var Ee={};vt(Ee,{availablePublishBitrate:()=>us,availableSubscribeBitrate:()=>ps,bitrateByTrackID:()=>Hs,bytesReceivedByTrackID:()=>ys,framerateByTrackID:()=>fs,jitter:()=>is,jitterByTrackID:()=>ks,localAudioTrackBitrate:()=>Is,localAudioTrackBytesSent:()=>vs,localAudioTrackStats:()=>be,localPeerStats:()=>q,localVideoTrackBitrate:()=>Rs,localVideoTrackBytesSent:()=>Ds,localVideoTrackFramerate:()=>bs,localVideoTrackQualityLimitationReason:()=>Es,localVideoTrackStats:()=>X,packetsLost:()=>rs,packetsLostByTrackID:()=>Ps,peerStatsByID:()=>gs,publishBitrate:()=>Ss,subscribeBitrate:()=>ds,totalBytesReceived:()=>ms,totalBytesSent:()=>Ms,trackStatsByID:()=>Ts});import{createSelector as T}from"reselect";var rs=s=>s.packetsLost,is=s=>s.jitter,os=s=>s.localPeer.id,ns=s=>s.localPeer.audioTrack,as=s=>s.localPeer.videoTrack,cs=(s,e)=>e,ls=(s,e)=>e,De=s=>s.trackStats,yt=s=>s.peerStats,q=T([yt,os],(s,e)=>s[e]),Ss=T(q,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bitrate}),ds=T(q,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bitrate}),us=T(q,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.availableOutgoingBitrate}),ps=T(q,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.availableIncomingBitrate}),Ms=T(q,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bytesSent}),ms=T(q,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bytesReceived}),hs=T([yt,cs],(s,e)=>e?s[e]:void 0),$=T([De,ls],(s,e)=>e?s[e]:void 0),gs=u(hs),Ts=u($),Hs=u(T($,s=>s==null?void 0:s.bitrate)),ys=u(T($,s=>s==null?void 0:s.bytesReceived)),fs=u(T($,s=>s==null?void 0:s.framesPerSecond)),ks=u(T($,s=>s==null?void 0:s.jitter)),Ps=u(T($,s=>s==null?void 0:s.packetsLost)),be=T([De,ns],(s,e)=>e?s[e]:void 0),X=T([De,as],(s,e)=>e?s[e]:void 0),Is=T(be,s=>s==null?void 0:s.bitrate),Rs=T(X,s=>s==null?void 0:s.bitrate),vs=T(be,s=>s==null?void 0:s.bytesSent),Ds=T(X,s=>s==null?void 0:s.bytesSent),bs=T(X,s=>s==null?void 0:s.framesPerSecond),Es=T(X,s=>s==null?void 0:s.qualityLimitationReason);var O=class{constructor(e,t,r){this.getWebrtcInternals=()=>(this.webrtcInternals||(this.webrtcInternals=new ce(this.store,this.sdk)),this.webrtcInternals);e?this.store=e:this.store=O.createNewHMSStore("HMSStore",te),r?this.notifications=r:this.notifications=new Ie(this.store),t?this.actions=t:(this.sdk=new Ls,this.actions=new ke(this.store,this.sdk,this.notifications)),this.initialTriggerOnSubscribe=!1}triggerOnSubscribe(){this.initialTriggerOnSubscribe||(O.makeStoreTriggerOnSubscribe(this.store),this.initialTriggerOnSubscribe=!0)}getStore(){return this.store}getHMSActions(){return this.actions}getNotifications(){return{onNotification:this.notifications.onNotification}}static createNewHMSStore(e,t){let r=As(()=>t()),i=r.setState;r.setState=l=>{let S=typeof l=="function"?Cs(l):l;i(S)};let o=r.getState;r.getState=l=>{if(l){let S=l.name||"byIDSelector";window.selectorsCount||(window.selectorsCount={}),window.selectorsCount[S]=(window.selectorsCount[S]||0)+1;let P=performance.now(),Z=l(o()),y=performance.now()-P;return y>1&&(window.expensiveSelectors=window.expensiveSelectors||new Map,window.expensiveSelectors.set(S,y)),Z}return o()},O.useShallowCheckInSubscribe(r);let n=O.setUpDevtools(r,e);return j(V({},r),{namedSetState:n})}static makeStoreTriggerOnSubscribe(e){let t=e.subscribe;e.subscribe=(r,i,o)=>(r(e.getState(i),void 0),t(r,i,o))}static useShallowCheckInSubscribe(e){let t=e.subscribe;e.subscribe=(r,i,o)=>(i||(i=n=>n),o=o||xs,t(r,i,o))}static setUpDevtools(e,t){let r;try{r=window.__REDUX_DEVTOOLS_EXTENSION__||window.top.__REDUX_DEVTOOLS_EXTENSION__}catch(n){}if(!r)return n=>{e.setState(n)};let i=r.connect(O.devtoolsOptions(t));i.prefix=t?`${t} > `:"";let o=e.setState;return e.setState=n=>{o(n),i.send(`${i.prefix}setState`,e.getState())},i.subscribe(O.devtoolsSubscribe(i,e,o)),i.send("setUpStore",e.getState()),(n,l)=>{o(n);let S=l||`${i.prefix}action`;i.send(S,e.getState())}}static devtoolsOptions(e){return{name:e,actionsBlacklist:["audioLevel","playlistProgress"]}}static devtoolsSubscribe(e,t,r){return i=>{var o,n,l,S;if(i.type==="DISPATCH"&&i.state)["JUMP_TO_ACTION","JUMP_TO_STATE"].includes(i.payload.type)?r(JSON.parse(i.state)):t.setState(JSON.parse(i.state));else if(i.type==="DISPATCH"&&((o=i.payload)==null?void 0:o.type)==="COMMIT")e.init(t.getState());else if(i.type==="DISPATCH"&&((n=i.payload)==null?void 0:n.type)==="IMPORT_STATE"){let P=(l=i.payload.nextLiftedState)==null?void 0:l.actionsById;(((S=i.payload.nextLiftedState)==null?void 0:S.computedStates)||[]).forEach(({state:y},w)=>{let F=P[w]||`${e.prefix}setState`;w===0?e.init(y):(r(y),e.send(F,t.getState()))})}}}};export{Dt as HMSAudioPluginType,f as HMSLogLevel,Le as HMSMessageType,I as HMSNotificationSeverity,m as HMSNotificationTypes,p as HMSPlaylistType,O as HMSReactiveStore,H as HMSRoomState,bt as HMSVideoPluginType,ce as HMSWebrtcInternals,se as createDefaultInternalsStore,te as createDefaultStoreState,st as selectAudioPlaylist,wi as selectAudioPlaylistTrackByPeerID,Kt as selectAudioTrackByPeerID,St as selectAudioTrackVolume,Bi as selectAudioVolumeByPeerID,xi as selectAuxiliaryAudioByPeerID,Ei as selectAuxiliaryTracksByPeerID,ai as selectAvailableRoleNames,Bt as selectBroadcastMessages,Wi as selectBroadcastMessagesUnreadCount,bi as selectCameraStreamByPeerID,ii as selectDegradedTracks,Gr as selectDevices,zr as selectDominantSpeaker,di as selectHLSState,ie as selectHMSMessages,$e as selectHMSMessagesCount,Ee as selectHMSStats,so as selectIsAllowedToPublish,ci as selectIsAllowedToSubscribe,lt as selectIsAudioLocallyMuted,Jr as selectIsConnectedToRoom,ni as selectIsInPreview,Xr as selectIsLocalAudioEnabled,co as selectIsLocalAudioPluginPresent,ge as selectIsLocalScreenShared,We as selectIsLocalVideoDisplayEnabled,he as selectIsLocalVideoEnabled,ao as selectIsLocalVideoPluginPresent,Ki as selectIsLocallyMutedByPeerID,Ui as selectIsPeerAudioEnabled,_i as selectIsPeerVideoEnabled,Vi as selectIsScreenShareLocallyMutedByPeerID,Zr as selectIsSomeoneScreenSharing,A as selectLocalAudioTrackID,qe as selectLocalMediaSettings,C as selectLocalPeer,K as selectLocalPeerID,oe as selectLocalPeerRole,je as selectLocalTrackIDs,x as selectLocalVideoTrackID,Be as selectMessageIDsInOrder,$i as selectMessagesByPeerID,Fi as selectMessagesByRole,Ve as selectMessagesMap,Ji as selectMessagesUnreadCountByPeerID,Gi as selectMessagesUnreadCountByRole,Ai as selectPeerAudioByID,U as selectPeerByID,Yr as selectPeerCount,Qi as selectPeerMetadata,ot as selectPeerNameByID,Nt as selectPeerScreenSharing,ei as selectPeerSharingAudio,ri as selectPeerSharingAudioPlaylist,si as selectPeerSharingVideoPlaylist,me as selectPeers,Yi as selectPeersByRole,D as selectPeersMap,ti as selectPeersScreenSharing,eo as selectPeersWithAudioStatus,Ge as selectPermissions,Si as selectRTMPState,li as selectRecordingState,Qr as selectRemotePeers,no as selectRoleByRoleName,to as selectRoleChangeRequest,_ as selectRolesMap,E as selectRoom,pi as selectRoomStartTime,Fe as selectRoomStarted,L as selectRoomState,ct as selectScreenShareAudioByPeerID,Ni as selectScreenShareByPeerID,at as selectScreenSharesByPeerId,qi as selectScreenshareAudioVolumeByPeerID,ui as selectSessionId,ji as selectSimulcastLayerByTrack,Lt as selectSpeakers,Ci as selectTrackAudioByID,ne as selectTrackByID,g as selectTracksMap,oi as selectUnreadHMSMessagesCount,rt as selectVideoPlaylist,Oi as selectVideoPlaylistAudioTrackByPeerID,Li as selectVideoPlaylistVideoTrackByPeerID,_t as selectVideoTrackByPeerID};
1
+ var de=Object.defineProperty,Pt=Object.defineProperties;var Rt=Object.getOwnPropertyDescriptors;var xe=Object.getOwnPropertySymbols;var It=Object.prototype.hasOwnProperty,vt=Object.prototype.propertyIsEnumerable;var Le=(s,e,t)=>e in s?de(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,q=(s,e)=>{for(var t in e||(e={}))It.call(e,t)&&Le(s,t,e[t]);if(xe)for(var t of xe(e))vt.call(e,t)&&Le(s,t,e[t]);return s},W=(s,e)=>Pt(s,Rt(e)),Dt=s=>de(s,"__esModule",{value:!0});var bt=(s,e)=>{Dt(s);for(var t in e)de(s,t,{get:e[t],enumerable:!0})};var a=(s,e,t)=>new Promise((r,i)=>{var o=S=>{try{c(t.next(S))}catch(f){i(f)}},n=S=>{try{c(t.throw(S))}catch(f){i(f)}},c=S=>S.done?r(S.value):Promise.resolve(S.value).then(o,n);c((t=t.apply(s,e)).next())});import Os from"immer";import ws from"zustand/vanilla";import Ns from"zustand/shallow";import{HMSSdk as Us}from"@100mslive/hms-video";var H;(function(n){n.Disconnected="Disconnected",n.Preview="Preview",n.Connecting="Connecting",n.Connected="Connected",n.Reconnecting="Reconnecting",n.Failed="Failed"})(H||(H={}));var se=()=>({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:[]}),re=()=>({peerStats:{},trackStats:{},localPeer:{id:""}});var Oe;(function(e){e.CHAT="chat"})(Oe||(Oe={}));var R;(function(r){r.INFO="info",r.ERROR="error",r.CRITICAL="critical"})(R||(R={}));var m;(function(l){l.PEER_JOINED="PEER_JOINED",l.PEER_LEFT="PEER_LEFT",l.PEER_LIST="PEER_LIST",l.NEW_MESSAGE="NEW_MESSAGE",l.ERROR="ERROR",l.RECONNECTING="RECONNECTING",l.RECONNECTED="RECONNECTED",l.TRACK_ADDED="TRACK_ADDED",l.TRACK_REMOVED="TRACK_REMOVED",l.TRACK_MUTED="TRACK_MUTED",l.TRACK_UNMUTED="TRACK_UNMUTED",l.TRACK_DEGRADED="TRACK_DEGRADED",l.TRACK_RESTORED="TRACK_RESTORED",l.ROLE_CHANGE_REQUEST="ROLE_CHANGE_REQUEST",l.ROLE_UPDATED="ROLE_UPDATED",l.CHANGE_TRACK_STATE_REQUEST="CHANGE_TRACK_STATE_REQUEST",l.CHANGE_MULTI_TRACK_STATE_REQUEST="CHANGE_MULTI_TRACK_STATE_REQUEST",l.ROOM_ENDED="ROOM_ENDED",l.REMOVED_FROM_ROOM="REMOVED_FROM_ROOM",l.DEVICE_CHANGE_UPDATE="DEVICE_CHANGE_UPDATE",l.PLAYLIST_TRACK_ENDED="PLAYLIST_TRACK_ENDED",l.NAME_UPDATED="NAME_UPDATED",l.METADATA_UPDATED="METADATA_UPDATED"})(m||(m={}));var p;(function(t){t.audio="audio",t.video="video"})(p||(p={}));import{HMSException as Gs,HMSSimulcastLayer as Js,HMSPeerUpdate as I,HMSRoomUpdate as Ys,HMSTrackUpdate as b,HMSLogLevel as k,HMSAudioPluginType as Et,HMSVideoPluginType as At}from"@100mslive/hms-video";import{HMSLocalAudioTrack as Ue,HMSLocalVideoTrack as _e,HMSRemoteAudioTrack as xt,HMSRemoteVideoTrack as Lt}from"@100mslive/hms-video";var we=(s,e)=>{let t=he(Object.keys(s),Object.keys(e));for(let r of t){let i=s[r],o=e[r];pe(i,o)?(N(i.auxiliaryTracks,o.auxiliaryTracks)&&(o.auxiliaryTracks=i.auxiliaryTracks),Object.assign(i,o)):Me(i,o)?delete s[r]:me(i,o)&&(s[r]=o)}},Ne=(s,e)=>{let t=he(Object.keys(s),Object.keys(e));for(let r of t){let i=s[r],o=e[r];pe(i,o)?(Ct(i,o),Object.assign(i,o)):Me(i,o)?delete s[r]:me(i,o)&&(s[r]=o)}},ue=(s,e)=>{let t=he(Object.keys(s),Object.keys(e));for(let r of t){let i=s[r],o=e[r];pe(i,o)?Object.assign(i,o):Me(i,o)?delete s[r]:me(i,o)&&(s[r]=o)}},Ct=(s,e)=>{s.plugins&&N(s.plugins,e.plugins)&&(e.plugins=s.plugins),s.layerDefinitions&&N(s.layerDefinitions,e.layerDefinitions)&&(e.layerDefinitions=s.layerDefinitions)},pe=(s,e)=>s&&e,Me=(s,e)=>s&&!e,me=(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},he=(s,e)=>{let t=new Set;for(let r of s)t.add(r);for(let r of e)t.add(r);return Array.from(t)};var h=class{static convertPeer(e){var t,r,i;return{id:e.peerId,name:e.name,roleName:(t=e.role)==null?void 0:t.name,isLocal:e.isLocal,videoTrack:(r=e.videoTrack)==null?void 0:r.trackId,audioTrack:(i=e.audioTrack)==null?void 0:i.trackId,auxiliaryTracks:e.auxiliaryTracks.map(o=>o.trackId),customerUserId:e.customerUserId,customerDescription:e.metadata,metadata:e.metadata}}static convertTrack(e,t){let r={id:e.trackId,source:e.source,type:e.type,enabled:e.enabled,displayEnabled:e.enabled,peerId:e.peerId||t};return this.enrichTrack(r,e),r}static enrichTrack(e,t){let r=t.getMediaTrackSettings();e.source==="screen"&&e.type==="video"&&(e.displaySurface=r.displaySurface),e.height=r.height,e.width=r.width,t instanceof xt&&(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 _e||t instanceof Ue?e.deviceID=t.settings.deviceId:e.deviceID=(r=t.getMediaTrackSettings())==null?void 0:r.deviceId}static enrichVideoTrack(e,t){t instanceof Lt&&(e.layer=t.getSimulcastLayer(),e.degraded=t.degraded,N(t.getSimulcastDefinitions(),e.layerDefinitions)||(e.layerDefinitions=t.getSimulcastDefinitions()))}static enrichPluginsDetails(e,t){(t instanceof _e||t instanceof Ue)&&(N(t.getPlugins(),e.plugins)||(e.plugins=t.getPlugins()))}static convertRoom(e){var t,r,i,o,n,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:!!((i=e.recording)==null?void 0:i.browser.running)},server:{running:!!((o=e.recording)==null?void 0:o.server.running)}},rtmp:{running:!!((n=e.rtmp)==null?void 0:n.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,i;return{sender:e.sender.peerId,senderName:e.sender.name,senderRole:(t=e.sender.role)==null?void 0:t.name,senderUserId:e.sender.customerUserId,recipientPeer:(r=e.recipientPeer)==null?void 0:r.peerId,recipientRoles:(i=e.recipientRoles)==null?void 0:i.map(o=>o.name),time:e.time,type:e.type,message:e.message}}static convertRoles(e){let t={};return e&&e.forEach(r=>{t[r.name]=r}),t}static convertRoleChangeRequest(e){return{requestedBy:e.requestedBy.peerId,roleName:e.role.name,token:e.token}}static convertException(e){return{code:e.code,action:e.action,name:e.name,message:e.message,description:e.description,isTerminal:e.isTerminal,nativeError:e.nativeError,timestamp:new Date}}static convertDeviceChangeUpdate(e){let t={devices:e.devices,selection:e.selection,type:e.type};return e.error&&(t.error=this.convertException(e.error)),t}static convertPlaylist(e){let t=this.getConvertedPlaylistType(e,p.audio),r=this.getConvertedPlaylistType(e,p.video);return{audio:t,video:r}}static convertPlaylistItem(e,t){let r=t.type,i=e.getCurrentSelection(r),o=e.isPlaying(r),n=t.url===(i==null?void 0:i.url);return W(q({},t),{type:t.type,selected:n,playing:n&&o})}static convertConnectionStats(e){let t=q({},e);return delete t.rawStatsArray,delete t.rawStats,t}static getConvertedPlaylistType(e,t){let r={},i=e.getCurrentSelection(t),o=e.getCurrentProgress(t),n=e.getVolume(t),c=e.getList(t),S=e.getCurrentIndex(t);return e.getList(t).forEach(f=>{r[f.id]=h.convertPlaylistItem(e,f)}),{list:r,selection:{id:i==null?void 0:i.id,hasPrevious:S>0,hasNext:S<c.length-1},progress:o,volume:n,currentTime:e.getCurrentTime(t),playbackRate:e.getPlaybackRate(t)}}static convertRecordingStreamingState(e,t,r){var i,o;return{recording:{browser:{running:!!((i=e==null?void 0:e.browser)==null?void 0:i.running)},server:{running:!!((o=e==null?void 0:e.server)==null?void 0:o.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 j(s,e,t=Ot){let r,i;if(e)for(let o of e.auxiliaryTracks){let n=s[o];t(n)&&(i=J(n)?n:i,r=Y(n)?n:r)}return{video:r,audio:i}}function J(s){return s&&s.type==="audio"}function Y(s){return s&&s.type==="video"}function Ot(s){return s&&s.source==="screen"}function ie(s){return s&&s.source==="audioplaylist"}function Q(s){return s&&s.source==="videoplaylist"}function Ke(s){return Boolean(s==null?void 0:s.degraded)}function $(s,e){return e&&s.tracks[e]?s.tracks[e].enabled:!1}function Ve(s,e){return e&&s.tracks[e]?s.tracks[e].displayEnabled:!1}var E=s=>s.room,D=s=>s.peers,Be=s=>s.messages.byID,qe=s=>s.messages.allIDs,T=s=>s.tracks,je=s=>s.settings,zr=s=>s.devices,wt=s=>s.speakers,Xr=d([E],s=>s&&s.isConnected),Zr=d(E,s=>s.peers.length),ge=d([E,D],(s,e)=>s.peers.map(t=>e[t])),Nt=d(T,s=>Object.values(s)),A=d(E,D,(s,e)=>e[s.localPeer]),V=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),Ut=d(A,s=>s==null?void 0:s.auxiliaryTracks),We=d([C,x,Ut],(s,e,t)=>{let r=[...t];return s&&r.unshift(s),e&&r.unshift(e),r}),ei=d(ge,s=>s.filter(e=>!e.isLocal)),ti=d(D,wt,(s,e)=>{let t=Object.entries(e).sort((r,i)=>{var c,S;let o=((c=r[1])==null?void 0:c.audioLevel)||0;return(((S=i[1])==null?void 0:S.audioLevel)||0)>o?1:-1});if(t.length>0&&t[0][1].audioLevel&&t[0][1].audioLevel>0){let r=t[0][1].peerID;if(r in s)return s[r]}return null}),si=s=>{let e=A(s);return $(s,e==null?void 0:e.audioTrack)},Te=s=>{let e=A(s);return $(s,e==null?void 0:e.videoTrack)},$e=s=>{let e=A(s);return Ve(s,e==null?void 0:e.videoTrack)},He=d(A,T,(s,e)=>{let{video:t,audio:r}=j(e,s);return!!(t||r)}),_t=d(D,T,(s,e)=>{let t;for(let r in s){let i=s[r],{video:o,audio:n}=j(e,i);if(o)return i;n&&!t&&(t=i)}return t}),ri=d(_t,s=>!!s),ii=d(D,T,(s,e)=>{for(let t in s){let r=s[t],{audio:i,video:o}=j(e,r);if(!o&&!!i)return r}}),oi=d(D,T,(s,e)=>{let t=[],r=[];for(let i in s){let o=s[i],{video:n,audio:c}=j(e,o);n?t.push(o):c&&r.push(o)}return t.concat(r)}),ni=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]}}),ai=d(D,T,(s,e)=>{for(let t in e){let r=e[t];if(ie(r)&&r.peerId)return s[r.peerId]}}),ci=d(Nt,s=>s.filter(Ke)),Fe=d(qe,s=>s.length),li=d(Be,s=>Object.values(s).filter(e=>!e.read).length),oe=d(qe,Be,(s,e)=>{let t=[];return s.forEach(r=>{t.push(e[r])}),t}),L=d([E],s=>s&&s.roomState),Si=d(L,s=>s===H.Preview),Ge=d(E,s=>s.roomState!==H.Disconnected),_=s=>s.roles,di=d([_],s=>Object.keys(s)),ne=d([A,_],(s,e)=>(s==null?void 0:s.roleName)?e[s.roleName]:null),ui=d([ne],s=>{var e;return((e=s==null?void 0:s.subscribeParams)==null?void 0:e.subscribeToRoles)?s.subscribeParams.subscribeToRoles.length>0:!1}),Je=d(ne,s=>s==null?void 0:s.permissions),pi=d(E,s=>s.recording),Mi=d(E,s=>s.rtmp),mi=d(E,s=>s.hls),hi=d(E,s=>s.sessionId),gi=d(E,s=>s.startedAt);import{createSelector as Ye}from"reselect";var Qe=(s=p.audio)=>e=>e.playlist[s].list,ye=(s=p.audio)=>e=>e.playlist[s].selection,ze=(s=p.audio)=>e=>e.playlist[s].progress,Xe=(s=p.audio)=>e=>e.playlist[s].currentTime,Ze=(s=p.audio)=>e=>e.playlist[s].playbackRate,et=(s=p.audio)=>e=>e.playlist[s].volume,tt=(s=p.audio)=>Ye(Qe(s),e=>Object.values(e)),st=(s=p.audio)=>Ye(Qe(s),ye(s),(e,t)=>{if(!!t.id)return e[t.id]}),rt={selection:ye(p.audio),progress:ze(p.audio),currentTime:Xe(p.audio),playbackRate:Ze(p.audio),volume:et(p.audio),list:tt(p.audio),selectedItem:st(p.audio)},it={selection:ye(p.video),progress:ze(p.video),currentTime:Xe(p.video),playbackRate:Ze(p.video),volume:et(p.video),list:tt(p.video),selectedItem:st(p.video)};import{createSelector as P}from"reselect";function u(s){return e=>t=>s(t,e)}var z="HMS-Store:",M=class{static v(e,...t){this.log(k.VERBOSE,e,...t)}static d(...e){this.log(k.DEBUG,...e)}static i(...e){this.log(k.INFO,...e)}static w(...e){this.log(k.WARN,...e)}static e(...e){this.log(k.ERROR,...e)}static time(e){this.log(k.TIME,"[HMSPerformanceTiming]",e)}static timeEnd(e){this.log(k.TIMEEND,"[HMSPerformanceTiming]",e,e)}static cleanUp(){performance.clearMarks(),performance.clearMeasures()}static log(e,...t){if(!(this.level.valueOf()>e.valueOf()))switch(e){case k.VERBOSE:{console.log(z,...t);break}case k.DEBUG:{console.debug(z,...t);break}case k.INFO:{console.info(z,...t);break}case k.WARN:{console.warn(z,...t);break}case k.ERROR:{console.error(z,...t);break}case k.TIME:{performance.mark(t[1]);break}case k.TIMEEND:{let r=t[0],i=t[1];try{let o=performance.measure(i,i);this.log(k.DEBUG,r,i,o==null?void 0:o.duration),performance.clearMarks(i),performance.clearMeasures(i)}catch(o){this.log(k.DEBUG,r,i,o)}break}}}};M.level=k.VERBOSE;var fe=(s,e)=>e,Kt=(s,e)=>e,ot=(s,e)=>e,v=P([D,fe],(s,e)=>e?s[e]:null),ke=P([T,Kt],(s,e)=>e?s[e]:null),U=u(v),nt=u(P(v,s=>s==null?void 0:s.name)),ae=u(ke),Vt=u((s,e)=>{let t=v(s,e);if(t&&t.videoTrack&&t.videoTrack!=="")return s.tracks[t.videoTrack]}),Bt=u((s,e)=>{let t=v(s,e);if(t&&t.audioTrack&&t.audioTrack!=="")return s.tracks[t.audioTrack]}),xi=Vt,Li=u((s,e)=>{let t=v(s,e);return(t==null?void 0:t.auxiliaryTracks.map(r=>s.tracks[r]))||[]}),at=(s,e)=>e?s.speakers[e]:null,Oi=u(P(at,s=>(s==null?void 0:s.audioLevel)||0)),qt=(s,e)=>{let t=Bt(e)(s);return at(s,t==null?void 0:t.id)},wi=u(P(qt,s=>(s==null?void 0:s.audioLevel)||0)),Ni=u((s,e)=>{let t=v(s,e);if(t){let r=t==null?void 0:t.auxiliaryTracks.find(i=>J(s.tracks[i]));return r?s.tracks[r]:void 0}}),Ui=u(P(T,v,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let i=s[r];return Q(i)&&Y(i)});return t?s[t]:void 0})),_i=u(P(T,v,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let i=s[r];return Q(i)&&J(i)});return t?s[t]:void 0})),Ki=u(P(T,v,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let i=s[r];return ie(i)&&J(i)});return t?s[t]:void 0})),ct=u(P(T,v,(s,e)=>j(s,e))),Vi=s=>P(ct(s),e=>e.video),lt=s=>P(ct(s),e=>e.audio),Bi=u((s,e)=>{let t=v(s,e);return $(s,t==null?void 0:t.audioTrack)}),qi=u((s,e)=>{let t=v(s,e);return $(s,t==null?void 0:t.videoTrack)}),St=u((s,e)=>{if(e&&s.tracks[e])return s.tracks[e].volume===0}),ji=u((s,e)=>{let t=v(s,e);return St(t==null?void 0:t.audioTrack)(s)}),Wi=u((s,e)=>{let t=lt(e)(s);return St(t==null?void 0:t.id)(s)}),dt=u((s,e)=>{let t=ke(s,e);if(t){if(t.type!=="audio"){M.w("Please pass audio track here");return}return t.volume}}),$i=u((s,e)=>{let t=v(s,e);return dt(t==null?void 0:t.audioTrack)(s)}),Fi=u((s,e)=>{let t=lt(e)(s);return dt(t==null?void 0:t.id)(s)}),Gi=u((s,e)=>{let t=ke(s,e);if(t){if(t.type!=="video"){M.w("Please pass video track here");return}return t.layer}}),ut=P([oe,V,fe],(s,e,t)=>{if(!!t)return s.filter(r=>{var i;return!r.recipientPeer&&!((i=r.recipientRoles)==null?void 0:i.length)||![e,t].includes(r.sender)?!1:[e,t].includes(r.recipientPeer)})}),pt=P([oe,ot],(s,e)=>{if(!!e)return s.filter(t=>{var r,i;return((r=t.recipientRoles)==null?void 0:r.length)?(i=t.recipientRoles)==null?void 0:i.includes(e):!1})}),jt=P(oe,s=>s.filter(e=>{var t;return!e.recipientPeer&&!((t=e.recipientRoles)==null?void 0:t.length)})),Wt=P([pt,ot],s=>s?s.filter(e=>!e.read).length:0),$t=P([ut,fe],s=>s?s.filter(e=>!e.read).length:0),Ji=P(jt,s=>s.filter(e=>!e.read).length),Yi=u(ut),Qi=u(pt),zi=u(Wt),Xi=u($t),Zi=s=>P([ge],e=>e.filter(t=>t.roleName===s)),eo=s=>P(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 Pe}from"reselect";var io=Pe([D,T],(s,e)=>Object.values(s).map(r=>{var i;return{peer:r,isAudioEnabled:r.audioTrack?(i=e[r.audioTrack])==null?void 0:i.enabled:!1}})),Ft=s=>s.roleChangeRequests[0]||null,oo=Pe([Ft,D,_],(s,e,t)=>s?{requestedBy:e[s.requestedBy],role:t[s.roleName],token:s.token}:null),no=Pe([ne],s=>{var i;let e=!1,t=!1,r=!1;return((i=s==null?void 0:s.publishParams)==null?void 0:i.allowed)&&(e=s.publishParams.allowed.includes("video"),t=s.publishParams.allowed.includes("audio"),r=s.publishParams.allowed.includes("screen")),{video:e,audio:t,screen:r}});import{createSelector as X}from"reselect";var So=s=>X([_],e=>e[s]),Gt=X([x,T],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),Jt=X([C,T],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),uo=s=>X([Gt],e=>e.includes(s)),po=s=>X([Jt],e=>e.includes(s));import{HMSAudioTrack as zt,HMSRemoteVideoTrack as Tt}from"@100mslive/hms-video";import{HMSRemoteAudioTrack as Yt,HMSRemoteVideoTrack as Qt}from"@100mslive/hms-video";function Mt(s){return s instanceof Yt||s instanceof Qt}var ce=class{constructor(e,t,r,i){this.playlistManager=e;this.syncPlaylistState=r;this.store=i;this.type=t}play(e){return a(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 a(this,null,function*(){let e=this.type===p.audio?rt:it,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 a(this,null,function*(){yield this.playlistManager.playNext(this.type)})}playPrevious(){return a(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 a(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 mt={[I.PEER_JOINED]:m.PEER_JOINED,[I.PEER_LEFT]:m.PEER_LEFT,[I.ROLE_UPDATED]:m.ROLE_UPDATED,[I.AUDIO_TOGGLED]:"PEER_AUDIO_UPDATED",[I.VIDEO_TOGGLED]:"PEER_VIDEO_UPDATED",[I.NAME_UPDATED]:m.NAME_UPDATED,[I.METADATA_UPDATED]:m.METADATA_UPDATED},ht={[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},gt={[I.PEER_JOINED]:"peerJoined",[I.PEER_LEFT]:"peerLeft",[I.NAME_UPDATED]:"peerNameUpdated",[I.METADATA_UPDATED]:"peerMetadataUpdated"};var Re=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)),i="peerUpdate";i=gt[e],this.syncRoomState(i),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 a(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 Tt?(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 a(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 M.e("Cannot show preview. Failed to connect to room - ",r),r}})}join(e){if(this.isRoomJoinCalled){this.logPossibleInconsistency("room join is called again");return}try{this.sdkJoinWithListeners(e),this.isRoomJoinCalled=!0,this.setState(t=>{t.room.roomState=H.Connecting},"join")}catch(t){throw this.isRoomJoinCalled=!1,M.e("Failed to connect to room - ",t),t}}leave(){return a(this,null,function*(){if(!this.store.getState(Ge)){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 a(this,null,function*(){e?yield this.startScreenShare(t):yield this.stopScreenShare()})}addTrack(e,t="regular"){return a(this,null,function*(){yield this.sdk.addTrack(e,t),this.syncRoomState("addTrack")})}removeTrack(e){return a(this,null,function*(){yield this.sdk.removeTrack(e),this.syncRoomState("removeTrack")})}setLocalAudioEnabled(e){return a(this,null,function*(){let t=this.store.getState(C);t&&(yield this.setEnabledTrack(t,e))})}setLocalVideoEnabled(e){return a(this,null,function*(){let t=this.store.getState(x);t&&(yield this.setEnabledTrack(t,e))})}setEnabledTrack(e,t){return a(this,null,function*(){var o;if(((o=this.store.getState().tracks[e])==null?void 0:o.enabled)===t){this.logPossibleInconsistency(`local track[${e}] enabled state - ${t}`);return}this.setState(n=>{n.tracks[e]?n.tracks[e].displayEnabled=t:this.logPossibleInconsistency("track id not found for setEnabled")},"displayEnabled");try{yield this.setEnabledSDKTrack(e,t),this.syncRoomState("setEnabled")}catch(n){throw this.setState(c=>{c.tracks[e].displayEnabled=!t},"rollbackDisplayEnabled"),this.hmsNotifications.sendError(h.convertException(n)),n}let i=t?b.TRACK_UNMUTED:b.TRACK_MUTED;this.hmsNotifications.sendTrackUpdate(i,e)})}setAudioSettings(e){return a(this,null,function*(){let t=this.store.getState(C);t&&(yield this.setSDKLocalAudioTrackSettings(t,e),this.syncRoomState("setAudioSettings"))})}setVideoSettings(e){return a(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 a(this,null,function*(){let r=yield this.sdk.sendBroadcastMessage(e,t);this.updateMessageInStore(r,{message:e,type:t})})}sendGroupMessage(e,t,r){return a(this,null,function*(){let i=this.store.getState(_),o=t.map(c=>i[c]),n=yield this.sdk.sendGroupMessage(e,o,r);this.updateMessageInStore(n,{message:e,recipientRoles:t,type:r})})}sendDirectMessage(e,t,r){return a(this,null,function*(){let i=this.hmsSDKPeers[t],o=yield this.sdk.sendDirectMessage(e,i,r);this.updateMessageInStore(o,{message:e,recipientPeer:i.peerId,type:r})})}updateMessageInStore(e,t){if(!e)throw M.w("sendMessage","Failed to send message",t),Error(`sendMessage Failed - ${JSON.stringify(t)}`);let r=h.convertMessage(e);return r.read=!0,r.senderName="You",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(i=>{r.messages.byID[i].read=e})},"setMessageRead")}attachVideo(e,t){return a(this,null,function*(){if(this.localAndVideoUnmuting(e))return new Promise(r=>{let i=this.store.subscribe(o=>a(this,null,function*(){o&&(yield this.attachVideoInternal(e,t),i(),r())}),Te)});yield this.attachVideoInternal(e,t)})}detachVideo(e,t){return a(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 a(this,null,function*(){return this.addRemoveVideoPlugin(e,"add",t)})}addPluginToAudioTrack(e){return a(this,null,function*(){return this.addRemoveAudioPlugin(e,"add")})}removePluginFromVideoTrack(e){return a(this,null,function*(){return this.addRemoveVideoPlugin(e,"remove")})}removePluginFromAudioTrack(e){return a(this,null,function*(){return this.addRemoveAudioPlugin(e,"remove")})}changeRole(e,t,r=!1){return a(this,null,function*(){let i=this.hmsSDKPeers[e];if(!i){this.logPossibleInconsistency(`Unknown peer ID given ${e} for changerole`);return}yield this.sdk.changeRole(i,t,r)})}acceptChangeRole(e){return a(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 a(this,null,function*(){let r=this.store.getState(Je);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 a(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 a(this,null,function*(){yield this.sdk.startRTMPOrRecording(e)})}stopRTMPAndRecording(){return a(this,null,function*(){yield this.sdk.stopRTMPAndRecording()})}startHLSStreaming(e){return a(this,null,function*(){yield this.sdk.startHLSStreaming(e)})}stopHLSStreaming(e){return a(this,null,function*(){yield this.sdk.stopHLSStreaming(e)})}changeName(e){return a(this,null,function*(){yield this.sdk.changeName(e)})}changeMetadata(e){return a(this,null,function*(){typeof e!="string"&&(e=JSON.stringify(e)),yield this.sdk.changeMetadata(e)})}setRemoteTrackEnabled(e,t){return a(this,null,function*(){if(typeof e=="string"){let r=this.hmsSDKTracks[e];r&&Mt(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 a(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(i=>r[i])}yield this.sdk.changeMultiTrackState(t)})}setLogLevel(e){M.level=e,this.sdk.setLogLevel(e)}resetState(e="resetState"){this.setState(t=>{Object.assign(t,se())},e),this.isRoomJoinCalled=!1,this.hmsSDKTracks={},M.cleanUp()}sdkJoinWithListeners(e){this.sdk.join(e,{onJoin:this.onJoin.bind(this),onRoomUpdate:this.onRoomUpdate.bind(this),onPeerUpdate:this.onPeerUpdate.bind(this),onTrackUpdate:this.onTrackUpdate.bind(this),onMessageReceived:this.onMessageReceived.bind(this),onError:this.onError.bind(this),onReconnected:this.onReconnected.bind(this),onReconnecting:this.onReconnecting.bind(this),onRoleChangeRequest:this.onRoleChangeRequest.bind(this),onRoleUpdate:this.onRoleUpdate.bind(this),onDeviceChange:this.onDeviceChange.bind(this),onChangeTrackStateRequest:this.onChangeTrackStateRequest.bind(this),onChangeMultiTrackStateRequest:this.onChangeMultiTrackStateRequest.bind(this),onRemovedFromRoom:this.onRemovedFromRoom.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})}onRemovedFromRoom(e){var r;let t=this.store.getState(U((r=e.requestedBy)==null?void 0:r.peerId));this.hmsNotifications.sendLeaveRoom(W(q({},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(A);if(this.setState(i=>{N(i.devices.audioInput,t.audioInput)||(i.devices.audioInput=t.audioInput),N(i.devices.videoInput,t.videoInput)||(i.devices.videoInput=t.videoInput),N(i.devices.audioOutput,t.audioOutput)||(i.devices.audioOutput=t.audioOutput),this.hmsSDKPeers[r==null?void 0:r.id]&&Object.assign(i.settings,this.getMediaSettings(this.hmsSDKPeers[r==null?void 0:r.id]))},"deviceChange"),e.selection){let i=h.convertDeviceChangeUpdate(e);this.hmsNotifications.sendDeviceChange(i)}}sdkPreviewWithListeners(e){return a(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 a(this,null,function*(){this.store.getState(He)?this.logPossibleInconsistency("start screenshare is called while it's on"):(yield this.sdk.startScreenShare(()=>this.syncRoomState("screenshareStopped"),e),this.syncRoomState("startScreenShare"))})}stopScreenShare(){return a(this,null,function*(){this.store.getState(He)?(yield this.sdk.stopScreenShare(),this.syncRoomState("stopScreenShare")):this.logPossibleInconsistency("stop screenshare is called while it's not on")})}attachVideoInternal(e,t){return a(this,null,function*(){let r=this.hmsSDKTracks[e];r&&r.type==="video"?(yield r.addSink(t),this.updateVideoLayer(e,"attachVideo")):this.logPossibleInconsistency("no video track found to add sink")})}syncRoomState(e){M.time(`store-sync-${e}`);let t={},r=[],i={},o={},n={},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 te of G){if(!te)continue;let Ce=h.convertTrack(te);i[Ce.id]=Ce,o[te.trackId]=te}w.isLocal&&Object.assign(n,this.getMediaSettings(y))}let S=this.sdk.getRecordingState(),f=this.sdk.getRTMPState(),B=this.sdk.getHLSState();this.setState(y=>{y.room.peers=r;let w=y.peers,G=y.tracks;we(w,t),Ne(G,i),Object.assign(y.settings,n),this.hmsSDKTracks=o,Object.assign(y.roles,h.convertRoles(this.sdk.getRoles())),Object.assign(y.playlist,h.convertPlaylist(this.sdk.getPlaylistManager())),Object.assign(y.room,h.convertRecordingStreamingState(S,f,B))},e),M.timeEnd(`store-sync-${e}`)}onPreview(e){this.setState(t=>{Object.assign(t.room,h.convertRoom(e)),t.room.roomState=H.Preview},"previewStart"),this.syncRoomState("previewSync")}onJoin(e){let t=this.sdk.getPlaylistManager();this.audioPlaylist=new ce(t,p.audio,this.syncPlaylistState.bind(this),this.store),this.videoPlaylist=new ce(t,p.video,this.syncRoomState.bind(this),this.store),this.syncRoomState("joinSync"),this.setState(r=>{Object.assign(r.room,h.convertRoom(e)),r.room.isConnected=!0,r.room.roomState=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(![I.BECAME_DOMINANT_SPEAKER,I.RESIGNED_DOMINANT_SPEAKER].includes(e)){if(Array.isArray(t)){this.syncRoomState("peersJoined");let r=[];for(let i of t){let o=this.store.getState(U(i.peerId));o&&r.push(o)}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 i=e===b.TRACK_ADDED?"trackAdded":"trackUpdate";this.syncRoomState(i),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(Fe)+1),t.messages.byID[e.id]=e,t.messages.allIDs.push(e.id)},"newMessage")}onAudioLevelUpdate(e){this.setState(t=>{let r={};e.forEach(o=>{if(!o.track||!o.peer)return;let n=o.track.trackId;r[n]=o.audioLevel,t.speakers[n]||(t.speakers[n]={audioLevel:o.audioLevel,peerID:o.peer.peerId,trackID:n})});let i=Object.entries(t.speakers);for(let[o,n]of i)n.audioLevel=r[o]||0,n.audioLevel===0&&delete t.speakers[o]},"audioLevel")}onChangeTrackStateRequest(e){let t=this.store.getState(U(e.requestedBy.peerId)),r=this.getStoreLocalTrackIDfromSDKTrack(e.track),i=this.store.getState(ae(r));if(!t)return this.logPossibleInconsistency(`Not found peer who requested track state change, ${e.requestedBy}`);if(!i)return this.logPossibleInconsistency(`Not found track for which track state change was requested, ${e.track}`);e.enabled||this.syncRoomState("changeTrackStateRequest"),this.hmsNotifications.sendChangeTrackStateRequest({requestedBy:t,track:i,enabled:e.enabled})}onChangeMultiTrackStateRequest(e){let t=this.store.getState(U(e.requestedBy.peerId));if(!t)return this.logPossibleInconsistency(`Not found peer who requested track state change, ${e.requestedBy}`);e.enabled||this.syncRoomState("changeMultiTrackStateRequest");let r=[],i=this.store.getState(T);for(let o of e.tracks){let n=this.getStoreLocalTrackIDfromSDKTrack(o);n&&i[n]&&r.push(i[n])}this.hmsNotifications.sendChangeMultiTrackStateRequest({requestedBy:t,tracks:r,enabled:e.enabled,type:e.type,source:e.source})}onReconnected(){this.syncRoomState("reconnectedSync"),this.hmsNotifications.sendReconnected(),this.setState(e=>{e.room.roomState=H.Connected},"reconnected")}onReconnecting(e){let t=h.convertException(e);M.e("Reconnection: received error from sdk",t),this.hmsNotifications.sendReconnecting(t),this.setState(r=>{r.room.roomState=H.Reconnecting,r.errors.push(t)},"reconnecting")}onError(e){let t=h.convertException(e);t.isTerminal?(this.leave().then(()=>M.e("error from SDK, left room.")),this.setState(r=>{r.room.roomState=H.Failed,r.errors.push(t)},"errorTerminal")):this.store.getState().errors.length<50&&this.setState(i=>{i.errors.push(t)},"error"),this.hmsNotifications.sendError(t),M.e("received error from sdk",t)}updateVideoLayer(e,t){let r=this.hmsSDKTracks[e];r&&r instanceof Tt&&this.setState(i=>{i.tracks[e].layer=r.getSimulcastLayer()},t)}handleTrackRemove(e,t){this.setState(r=>{let i=r.peers[t.peerId],o=r.tracks,n=e.trackId;if(this.isSameStoreSDKTrack(n,i==null?void 0:i.audioTrack))i==null||delete i.audioTrack;else if(this.isSameStoreSDKTrack(n,i==null?void 0:i.videoTrack))i==null||delete i.videoTrack;else{let c=i==null?void 0:i.auxiliaryTracks.indexOf(n);c>-1&&this.isSameStoreSDKTrack(n,i==null?void 0:i.auxiliaryTracks[c])&&(i==null||i.auxiliaryTracks.splice(c,1))}delete o[n],delete this.hmsSDKTracks[n]},"trackRemoved")}setEnabledSDKTrack(e,t){return a(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 a(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 a(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}getMediaSettings(e){var o;let t=this.store.getState(je),r=e.audioTrack,i=e.videoTrack;return{audioInputDeviceId:(r==null?void 0:r.settings.deviceId)||t.audioInputDeviceId,videoInputDeviceId:(i==null?void 0:i.settings.deviceId)||t.videoInputDeviceId,audioOutputDeviceId:(o=this.sdk.getAudioOutput().getDevice())==null?void 0:o.deviceId}}setTrackVolume(e,t){let r=this.hmsSDKTracks[t];r?r instanceof zt?(r.setVolume(e),this.setState(i=>{let o=i.tracks[t];o&&(o.volume=e)},"trackVolume")):M.w(`track ${t} is not an audio track`):this.logPossibleInconsistency(`track ${t} not present, unable to set volume`)}localAndVideoUnmuting(e){if(this.store.getState(A).videoTrack!==e)return!1;let r=this.store.getState($e),i=this.store.getState(Te);return r&&!i}logPossibleInconsistency(e){M.w("possible inconsistency detected - ",e)}addRemoveVideoPlugin(e,t,r){return a(this,null,function*(){if(!e){M.w("Invalid plugin received in store");return}let i=this.store.getState(x);if(i){let o=this.hmsSDKTracks[i];o?(t==="add"?yield o.addPlugin(e,r):t==="remove"&&(yield o.removePlugin(e)),this.syncRoomState(`${t}VideoPlugin`)):this.logPossibleInconsistency(`track ${i} not present, unable to remove plugin`)}})}addRemoveAudioPlugin(e,t){return a(this,null,function*(){if(!e){M.w("Invalid plugin received in store");return}let r=this.store.getState(C);if(r){let i=this.hmsSDKTracks[r];i?(t==="add"?yield i.addPlugin(e):t==="remove"&&(yield i.removePlugin(e)),this.syncRoomState(`${t}AudioPlugin`)):this.logPossibleInconsistency(`track ${r} not present, unable to remove plugin`)}})}isSameStoreSDKTrack(e,t){var r;return t?((r=this.hmsSDKTracks[t])==null?void 0:r.trackId)===e:!1}onRoleChangeRequest(e){this.setState(t=>{t.roleChangeRequests.length===0&&t.roleChangeRequests.push(h.convertRoleChangeRequest(e))},"roleChangeRequest")}removeRoleChangeRequest(e){this.setState(t=>{let r=t.roleChangeRequests.findIndex(i=>i.token===e.token);r!==-1&&t.roleChangeRequests.splice(r,1)},"removeRoleChangeRequest")}onRoleUpdate(){this.syncRoomState("roleUpdate")}getStoreLocalTrackIDfromSDKTrack(e){return this.store.getState(We).find(r=>this.hmsSDKTracks[r].trackId===e.trackId)}};import{EventEmitter2 as Xt}from"eventemitter2";var Ie="hmsNotification",ve=class{constructor(e){this.id=0;this.onNotification=e=>(this.eventEmitter.addListener(Ie,e),()=>{this.eventEmitter.removeListener(Ie,e)});this.store=e,this.eventEmitter=new Xt}sendPlaylistTrackEnded(e){let t=this.createNotification(m.PLAYLIST_TRACK_ENDED,e,R.INFO);this.emitEvent(t)}sendDeviceChange(e){var r;let t=this.createNotification(m.DEVICE_CHANGE_UPDATE,e,e.error?R.ERROR:R.INFO,`Selected ${e.type} device - ${(r=e.selection)==null?void 0:r.label}`);this.emitEvent(t)}sendLeaveRoom(e){var i;let t=(i=e.requestedBy)==null?void 0:i.name,r=this.createNotification(e.roomEnded||!t?m.ROOM_ENDED:m.REMOVED_FROM_ROOM,e,R.INFO,`${e.roomEnded?"Room ended":"Removed from room"} ${t?`by ${t}`:""}`);this.emitEvent(r)}sendPeerList(e){let t=this.createNotification(m.PEER_LIST,e,R.INFO);this.emitEvent(t)}sendPeerUpdate(e,t){let r=this.store.getState(U(t==null?void 0:t.id))||t,i=mt[e];if(i){let o=this.createNotification(i,r,R.INFO);this.emitEvent(o)}}sendTrackUpdate(e,t){let r=this.store.getState(ae(t)),i=ht[e];if(i){let o=this.createNotification(i,r,R.INFO);this.emitEvent(o)}}sendMessageReceived(e){let t=this.createNotification(m.NEW_MESSAGE,e,R.INFO);this.emitEvent(t)}sendError(e){let t=this.createNotification(m.ERROR,e,R.ERROR);this.emitEvent(t)}sendReconnecting(e){let t=this.createNotification(m.RECONNECTING,e,R.ERROR);this.emitEvent(t)}sendReconnected(){let e=this.createNotification(m.RECONNECTED,null,R.INFO);this.emitEvent(e)}sendChangeTrackStateRequest(e){let t=this.createNotification(m.CHANGE_TRACK_STATE_REQUEST,e,R.INFO);this.emitEvent(t)}sendChangeMultiTrackStateRequest(e){let t=this.createNotification(m.CHANGE_MULTI_TRACK_STATE_REQUEST,e,R.INFO);this.emitEvent(t)}emitEvent(e){this.eventEmitter.emit(Ie,e)}createNotification(e,t,r,i=""){return this.id++,{id:this.id,type:e,message:i,data:t,severity:r}}};import{isBrowser as Zt}from"@100mslive/hms-video";var le=s=>Zt?`${s} ${document.title}`:s;function Z(s){return s!=null}var Ht=(s,e,t)=>{let r;t.getState(L)===H.Connected&&(r=yt(s,e,t)),t.subscribe(i=>{[H.Connected,H.Reconnecting].includes(i)?r||(r=yt(s,e,t)):r&&(ns(e),r())},L)},yt=(s,e,t)=>{var o;let r=es(t,e),i=(o=s.getWebrtcInternals())==null?void 0:o.onStatsChange(n=>ts(e,n,t));return()=>{r(),i&&i()}},es=(s,e)=>{let t,r,i;return s.getState(V)?e.namedSetState(o=>{o.localPeer.id=s.getState(V)},"localpeer-id"):t=s.subscribe(o=>{o&&e.namedSetState(n=>{n.localPeer.id=o},"localpeer-id")},V),s.getState(x)?e.namedSetState(o=>{o.localPeer.videoTrack=s.getState(x)},"localpeer-videotrack-id"):r=s.subscribe(o=>{o&&e.namedSetState(n=>{n.localPeer.videoTrack=o},"localpeer-videotrack-id")},x),s.getState(C)?e.namedSetState(o=>{o.localPeer.videoTrack=s.getState(C)},"localpeer-audiotrack-id"):i=s.subscribe(o=>{o&&e.namedSetState(n=>{n.localPeer.videoTrack=o},"localpeer-audiotrack-id")},C),()=>{t==null||t(),r==null||r(),i==null||i()}},ts=(s,e,t)=>{let r=t.getState(T);s.namedSetState(i=>{let o={},n=Object.keys(r);for(let S of n){let f=e.getTrackStats(S);f&&(o[S]=is(t,r[S],f,i.trackStats[S]))}ue(i.trackStats,o);let c=ss(t,i.peerStats[t.getState(V)],e);ue(i.peerStats,c)},"webrtc-stats")},ss=(s,e,t)=>{let r=t.getLocalPeerStats(),i={},o=s.getState(V);return i[o]||(i[o]={}),e?i[o]=rs(t,e):(r.publish&&(i[o].publish=Object.assign(r.publish,{bitrate:0})),r.subscribe&&(i[o].subscribe=Object.assign(r.subscribe,{bitrate:0},{packetsLost:t.getPacketsLost(),jitter:t.getJitter(),packetsLostRate:0}))),i},rs=(s,e)=>{var S,f,B;let t=s.getLocalPeerStats(),r=ft(s.getPacketsLost(),(S=e==null?void 0:e.subscribe)==null?void 0:S.packetsLost,(f=t.subscribe)==null?void 0:f.timestamp,(B=e==null?void 0:e.subscribe)==null?void 0:B.timestamp),i=De("bytesSent",t.publish,e==null?void 0:e.publish),o=De("bytesReceived",t.subscribe,e==null?void 0:e.subscribe),n=Object.assign(t.publish,{bitrate:i}),c=Object.assign(t.subscribe,{bitrate:o},{packetsLost:s.getPacketsLost(),jitter:s.getJitter(),packetsLostRate:r});return{publish:n,subscribe:c}},is=(s,e,t,r)=>{let i=De((t==null?void 0:t.type)==="outbound-rtp"?"bytesSent":"bytesReceived",t,r);return Object.assign(t,{peerID:e.peerId,peerName:s.getState(nt(e.peerId)),bitrate:i})},De=(s,e,t)=>os(s,e,t)*8,os=(s,e,t)=>{let r=e&&e[s],i=t?t[s]:null;return e&&t&&Z(r)&&Z(i)?ft(r,i,e.timestamp,t.timestamp)*1e3:0},ft=(s,e,t,r)=>Z(s)&&Z(e)&&t&&r?(s-e)/(t-r):0,ns=(s,e="resetState")=>{s.namedSetState(t=>{Object.assign(t,re())},e)};var Se=class{constructor(e,t){this.hmsStore=e;this.sdk=t;this.store=O.createNewHMSStore(le("HMSStatsStore"),re),this.getState=this.store.getState,this.subscribe=this.store.subscribe,this.getPublishPeerConnection=()=>new Promise(r=>{var i,o;this.hmsStore.getState(L)==="Connected"?r((o=(i=this.sdk)==null?void 0:i.getWebrtcInternals())==null?void 0:o.getPublishPeerConnection()):this.hmsStore.subscribe(n=>{var c,S;n==="Connected"&&r((S=(c=this.sdk)==null?void 0:c.getWebrtcInternals())==null?void 0:S.getPublishPeerConnection())},L)}),this.getSubscribePeerConnection=()=>new Promise(r=>{var i,o;this.hmsStore.getState(L)==="Connected"?r((o=(i=this.sdk)==null?void 0:i.getWebrtcInternals())==null?void 0:o.getSubscribePeerConnection()):this.hmsStore.subscribe(n=>{var c,S;n==="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 Ae={};bt(Ae,{availablePublishBitrate:()=>hs,availableSubscribeBitrate:()=>gs,bitrateByTrackID:()=>Ps,bytesReceivedByTrackID:()=>Rs,framerateByTrackID:()=>Is,jitter:()=>ps,jitterByTrackID:()=>vs,localAudioTrackBitrate:()=>bs,localAudioTrackBytesSent:()=>As,localAudioTrackStats:()=>Ee,localPeerStats:()=>K,localVideoTrackBitrate:()=>Es,localVideoTrackBytesSent:()=>Cs,localVideoTrackFramerate:()=>xs,localVideoTrackQualityLimitationReason:()=>Ls,localVideoTrackStats:()=>ee,packetsLost:()=>us,packetsLostByTrackID:()=>Ds,peerStatsByID:()=>fs,publishBitrate:()=>Ms,subscribeBitrate:()=>ms,totalBytesReceived:()=>Hs,totalBytesSent:()=>Ts,trackStatsByID:()=>ks});import{createSelector as g}from"reselect";var as=s=>s.localPeer.id,cs=s=>s.localPeer.audioTrack,ls=s=>s.localPeer.videoTrack,Ss=(s,e)=>e,ds=(s,e)=>e,be=s=>s.trackStats,kt=s=>s.peerStats,K=g([kt,as],(s,e)=>s[e]),us=g(K,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.packetsLost}),ps=g(K,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.jitter}),Ms=g(K,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bitrate}),ms=g(K,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bitrate}),hs=g(K,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.availableOutgoingBitrate}),gs=g(K,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.availableIncomingBitrate}),Ts=g(K,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bytesSent}),Hs=g(K,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bytesReceived}),ys=g([kt,Ss],(s,e)=>e?s[e]:void 0),F=g([be,ds],(s,e)=>e?s[e]:void 0),fs=u(ys),ks=u(F),Ps=u(g(F,s=>s==null?void 0:s.bitrate)),Rs=u(g(F,s=>s==null?void 0:s.bytesReceived)),Is=u(g(F,s=>s==null?void 0:s.framesPerSecond)),vs=u(g(F,s=>s==null?void 0:s.jitter)),Ds=u(g(F,s=>s==null?void 0:s.packetsLost)),Ee=g([be,cs],(s,e)=>e?s[e]:void 0),ee=g([be,ls],(s,e)=>e?s[e]:void 0),bs=g(Ee,s=>s==null?void 0:s.bitrate),Es=g(ee,s=>s==null?void 0:s.bitrate),As=g(Ee,s=>s==null?void 0:s.bytesSent),Cs=g(ee,s=>s==null?void 0:s.bytesSent),xs=g(ee,s=>s==null?void 0:s.framesPerSecond),Ls=g(ee,s=>s==null?void 0:s.qualityLimitationReason);var O=class{constructor(e,t,r){this.getWebrtcStats=()=>(this.webrtcStats||(this.webrtcStats=new Se(this.store,this.sdk)),this.webrtcStats);e?this.store=e:this.store=O.createNewHMSStore(le("HMSStore"),se),r?this.notifications=r:this.notifications=new ve(this.store),t?this.actions=t:(this.sdk=new Us,this.actions=new Re(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}getNotifications(){return{onNotification:this.notifications.onNotification}}static createNewHMSStore(e,t){let r=ws(()=>t()),i=r.setState;r.setState=c=>{let S=typeof c=="function"?Os(c):c;i(S)};let o=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 f=performance.now(),B=c(o()),y=performance.now()-f;return y>1&&(window.expensiveSelectors=window.expensiveSelectors||new Map,window.expensiveSelectors.set(S,y)),B}return o()},O.useShallowCheckInSubscribe(r);let n=O.setUpDevtools(r,e);return W(q({},r),{namedSetState:n})}static makeStoreTriggerOnSubscribe(e){let t=e.subscribe;e.subscribe=(r,i,o)=>(r(e.getState(i),void 0),t(r,i,o))}static useShallowCheckInSubscribe(e){let t=e.subscribe;e.subscribe=(r,i,o)=>(i||(i=n=>n),o=o||Ns,t(r,i,o))}static setUpDevtools(e,t){let r;try{r=window.__REDUX_DEVTOOLS_EXTENSION__||window.top.__REDUX_DEVTOOLS_EXTENSION__}catch(n){}if(!r)return n=>{e.setState(n)};let i=r.connect(O.devtoolsOptions(t));i.prefix=t?`${t} > `:"";let o=e.setState;return e.setState=n=>{o(n),i.send(`${i.prefix}setState`,e.getState())},i.subscribe(O.devtoolsSubscribe(i,e,o)),i.send("setUpStore",e.getState()),(n,c)=>{o(n);let S=c||`${i.prefix}action`;i.send(S,e.getState())}}static devtoolsOptions(e){return{name:e,actionsBlacklist:["audioLevel","playlistProgress"]}}static devtoolsSubscribe(e,t,r){return i=>{var o,n,c,S;if(i.type==="DISPATCH"&&i.state)["JUMP_TO_ACTION","JUMP_TO_STATE"].includes(i.payload.type)?r(JSON.parse(i.state)):t.setState(JSON.parse(i.state));else if(i.type==="DISPATCH"&&((o=i.payload)==null?void 0:o.type)==="COMMIT")e.init(t.getState());else if(i.type==="DISPATCH"&&((n=i.payload)==null?void 0:n.type)==="IMPORT_STATE"){let f=(c=i.payload.nextLiftedState)==null?void 0:c.actionsById;(((S=i.payload.nextLiftedState)==null?void 0:S.computedStates)||[]).forEach(({state:y},w)=>{let G=f[w]||`${e.prefix}setState`;w===0?e.init(y):(r(y),e.send(G,t.getState()))})}}}};export{Et as HMSAudioPluginType,k as HMSLogLevel,Oe as HMSMessageType,R as HMSNotificationSeverity,m as HMSNotificationTypes,p as HMSPlaylistType,O as HMSReactiveStore,H as HMSRoomState,Se as HMSStats,At as HMSVideoPluginType,re as createDefaultStatsStore,se as createDefaultStoreState,rt as selectAudioPlaylist,Ki as selectAudioPlaylistTrackByPeerID,Bt as selectAudioTrackByPeerID,dt as selectAudioTrackVolume,$i as selectAudioVolumeByPeerID,Ni as selectAuxiliaryAudioByPeerID,Li as selectAuxiliaryTracksByPeerID,di as selectAvailableRoleNames,jt as selectBroadcastMessages,Ji as selectBroadcastMessagesUnreadCount,xi as selectCameraStreamByPeerID,ci as selectDegradedTracks,zr as selectDevices,ti as selectDominantSpeaker,mi as selectHLSState,oe as selectHMSMessages,Fe as selectHMSMessagesCount,Ae as selectHMSStats,no as selectIsAllowedToPublish,ui as selectIsAllowedToSubscribe,St as selectIsAudioLocallyMuted,Xr as selectIsConnectedToRoom,Si as selectIsInPreview,si as selectIsLocalAudioEnabled,po as selectIsLocalAudioPluginPresent,He as selectIsLocalScreenShared,$e as selectIsLocalVideoDisplayEnabled,Te as selectIsLocalVideoEnabled,uo as selectIsLocalVideoPluginPresent,ji as selectIsLocallyMutedByPeerID,Bi as selectIsPeerAudioEnabled,qi as selectIsPeerVideoEnabled,Wi as selectIsScreenShareLocallyMutedByPeerID,ri as selectIsSomeoneScreenSharing,C as selectLocalAudioTrackID,je as selectLocalMediaSettings,A as selectLocalPeer,V as selectLocalPeerID,ne as selectLocalPeerRole,We as selectLocalTrackIDs,x as selectLocalVideoTrackID,qe as selectMessageIDsInOrder,Yi as selectMessagesByPeerID,Qi as selectMessagesByRole,Be as selectMessagesMap,Xi as selectMessagesUnreadCountByPeerID,zi as selectMessagesUnreadCountByRole,wi as selectPeerAudioByID,U as selectPeerByID,Zr as selectPeerCount,eo as selectPeerMetadata,nt as selectPeerNameByID,_t as selectPeerScreenSharing,ii as selectPeerSharingAudio,ai as selectPeerSharingAudioPlaylist,ni as selectPeerSharingVideoPlaylist,ge as selectPeers,Zi as selectPeersByRole,D as selectPeersMap,oi as selectPeersScreenSharing,io as selectPeersWithAudioStatus,Je as selectPermissions,Mi as selectRTMPState,pi as selectRecordingState,ei as selectRemotePeers,So as selectRoleByRoleName,oo as selectRoleChangeRequest,_ as selectRolesMap,E as selectRoom,gi as selectRoomStartTime,Ge as selectRoomStarted,L as selectRoomState,lt as selectScreenShareAudioByPeerID,Vi as selectScreenShareByPeerID,ct as selectScreenSharesByPeerId,Fi as selectScreenshareAudioVolumeByPeerID,hi as selectSessionId,Gi as selectSimulcastLayerByTrack,wt as selectSpeakers,Oi as selectTrackAudioByID,ae as selectTrackByID,T as selectTracksMap,li as selectUnreadHMSMessagesCount,it as selectVideoPlaylist,_i as selectVideoPlaylistAudioTrackByPeerID,Ui as selectVideoPlaylistVideoTrackByPeerID,Vt as selectVideoTrackByPeerID};
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.2.86-alpha.1",
2
+ "version": "0.2.86-alpha.3",
3
3
  "license": "MIT",
4
4
  "main": "dist/hms-video-store.cjs.js",
5
5
  "typings": "dist/index.d.ts",
@@ -33,7 +33,7 @@
33
33
  "module": "dist/hms-video-store.esm.js",
34
34
  "sideEffects": false,
35
35
  "dependencies": {
36
- "@100mslive/hms-video": "0.1.40-alpha.0",
36
+ "@100mslive/hms-video": "0.1.40-alpha.1",
37
37
  "eventemitter2": "^6.4.5",
38
38
  "immer": "^9.0.6",
39
39
  "reselect": "4.0.0",
@@ -59,5 +59,5 @@
59
59
  "url": "https://github.com/100mslive/hms-video-store/issues"
60
60
  },
61
61
  "homepage": "https://github.com/100mslive/hms-video-store#readme",
62
- "gitHead": "981347850b3255def493b88a6cb99ddeec55fbf3"
62
+ "gitHead": "8bda877051c8288b74dbb9846bc02d163ccdd37b"
63
63
  }
@@ -1,2 +0,0 @@
1
- export { HMSWebrtcInternals } from './HMSWebrtcInternals';
2
- export * as selectHMSStats from './selectors';
@@ -1,73 +0,0 @@
1
- import { HMSInternalsStore } from '../schema';
2
- /**
3
- * The total number of packets lost during the call
4
- */
5
- export declare const packetsLost: (store: HMSInternalsStore) => number;
6
- export declare const jitter: (store: HMSInternalsStore) => number;
7
- /**
8
- * Local peer stats selectors
9
- */
10
- export declare const localPeerStats: import("reselect").OutputSelector<HMSInternalsStore, import("../schema").HMSPeerStats | undefined, (res1: Record<string, import("../schema").HMSPeerStats | undefined>, res2: string) => import("../schema").HMSPeerStats | undefined>;
11
- /**
12
- * The bitrate at which all the local tracks are being published at
13
- */
14
- export declare const publishBitrate: import("reselect").OutputSelector<HMSInternalsStore, number | undefined, (res: import("../schema").HMSPeerStats | undefined) => number | undefined>;
15
- /**
16
- * The bitrate at which all the remote tracks are being received at
17
- */
18
- export declare const subscribeBitrate: import("reselect").OutputSelector<HMSInternalsStore, number | undefined, (res: import("../schema").HMSPeerStats | undefined) => number | undefined>;
19
- /**
20
- * The total bitrate available for publishing
21
- */
22
- export declare const availablePublishBitrate: import("reselect").OutputSelector<HMSInternalsStore, number | undefined, (res: import("../schema").HMSPeerStats | undefined) => number | undefined>;
23
- /**
24
- * The total bitrate available for subscribing to remote peers
25
- */
26
- export declare const availableSubscribeBitrate: import("reselect").OutputSelector<HMSInternalsStore, number | undefined, (res: import("../schema").HMSPeerStats | undefined) => number | undefined>;
27
- /**
28
- * The total bytes sent by the local peer
29
- */
30
- export declare const totalBytesSent: import("reselect").OutputSelector<HMSInternalsStore, number | undefined, (res: import("../schema").HMSPeerStats | undefined) => number | undefined>;
31
- /**
32
- * The total bytes received by the local peer
33
- */
34
- export declare const totalBytesReceived: import("reselect").OutputSelector<HMSInternalsStore, number | undefined, (res: import("../schema").HMSPeerStats | undefined) => number | undefined>;
35
- /**
36
- * Stats(bitrate, bytes sent/received, etc...) for a single peer given the peer ID
37
- */
38
- export declare const peerStatsByID: (id?: string | undefined) => import("../selectors/common").StoreSelector<HMSInternalsStore, import("../schema").HMSPeerStats | undefined>;
39
- /**
40
- * Stats(bitrate, bytes sent/received, framerate, FPS, etc...) for a single track
41
- */
42
- export declare const trackStatsByID: (id?: string | undefined) => import("../selectors/common").StoreSelector<HMSInternalsStore, import("../schema").HMSTrackStats | undefined>;
43
- /**
44
- * The bitrate at which the track's data is being received
45
- */
46
- export declare const bitrateByTrackID: (id?: string | undefined) => import("../selectors/common").StoreSelector<HMSInternalsStore, number | undefined>;
47
- /**
48
- * Bytes received from a particular track
49
- */
50
- export declare const bytesReceivedByTrackID: (id?: string | undefined) => import("../selectors/common").StoreSelector<HMSInternalsStore, number | undefined>;
51
- /**
52
- * The framerate(frames per second) of a particular video track
53
- */
54
- export declare const framerateByTrackID: (id?: string | undefined) => import("../selectors/common").StoreSelector<HMSInternalsStore, number | undefined>;
55
- /**
56
- * The jitter faced while receiving a particular track
57
- */
58
- export declare const jitterByTrackID: (id?: string | undefined) => import("../selectors/common").StoreSelector<HMSInternalsStore, number | undefined>;
59
- /**
60
- * The number of packets lost while receiving a particular track
61
- */
62
- export declare const packetsLostByTrackID: (id?: string | undefined) => import("../selectors/common").StoreSelector<HMSInternalsStore, number | undefined>;
63
- /**
64
- * Local track stats selectors
65
- */
66
- export declare const localAudioTrackStats: import("reselect").OutputSelector<HMSInternalsStore, import("../schema").HMSTrackStats | undefined, (res1: Record<string, import("../schema").HMSTrackStats | undefined>, res2: string | undefined) => import("../schema").HMSTrackStats | undefined>;
67
- export declare const localVideoTrackStats: import("reselect").OutputSelector<HMSInternalsStore, import("../schema").HMSTrackStats | undefined, (res1: Record<string, import("../schema").HMSTrackStats | undefined>, res2: string | undefined) => import("../schema").HMSTrackStats | undefined>;
68
- export declare const localAudioTrackBitrate: import("reselect").OutputSelector<HMSInternalsStore, number | undefined, (res: import("../schema").HMSTrackStats | undefined) => number | undefined>;
69
- export declare const localVideoTrackBitrate: import("reselect").OutputSelector<HMSInternalsStore, number | undefined, (res: import("../schema").HMSTrackStats | undefined) => number | undefined>;
70
- export declare const localAudioTrackBytesSent: import("reselect").OutputSelector<HMSInternalsStore, number | undefined, (res: import("../schema").HMSTrackStats | undefined) => number | undefined>;
71
- export declare const localVideoTrackBytesSent: import("reselect").OutputSelector<HMSInternalsStore, number | undefined, (res: import("../schema").HMSTrackStats | undefined) => number | undefined>;
72
- export declare const localVideoTrackFramerate: import("reselect").OutputSelector<HMSInternalsStore, number | undefined, (res: import("../schema").HMSTrackStats | undefined) => number | undefined>;
73
- export declare const localVideoTrackQualityLimitationReason: import("reselect").OutputSelector<HMSInternalsStore, string | undefined, (res: import("../schema").HMSTrackStats | undefined) => string | undefined>;
@@ -1,3 +0,0 @@
1
- import { HMSSdk } from '@100mslive/hms-video';
2
- import { IHMSStore, IHMSInternalsStore } from '../IHMSStore';
3
- export declare const subscribeToSdkWebrtcStats: (sdk: HMSSdk, webrtcStore: IHMSInternalsStore, store: IHMSStore) => void;