@100mslive/hms-video-store 0.6.1-alpha.0 → 0.6.1-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/IHMSActions.d.ts +18 -0
- package/dist/core/hmsSDKStore/HMSSDKActions.d.ts +4 -0
- package/dist/core/hmsSDKStore/adapter.d.ts +2 -2
- package/dist/core/schema/notification.d.ts +2 -2
- package/dist/core/schema/peer.d.ts +21 -5
- package/dist/core/schema/schema.d.ts +1 -0
- package/dist/core/selectors/selectorUtils.d.ts +4 -4
- package/dist/core/selectors/selectors.d.ts +4 -2
- package/dist/core/selectors/selectorsByID.d.ts +34 -18
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +2 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +2 -2
- package/dist/test/fakeStore/fakeHMSStore.d.ts +5 -5
- package/dist/test/fixtures.d.ts +4 -2
- package/package.json +3 -3
- package/src/core/IHMSActions.ts +18 -0
- package/src/core/hmsSDKStore/HMSNotifications.ts +1 -1
- package/src/core/hmsSDKStore/HMSSDKActions.ts +23 -4
- package/src/core/hmsSDKStore/adapter.ts +17 -13
- package/src/core/hmsSDKStore/sdkUtils/storeMergeUtils.ts +7 -3
- package/src/core/schema/notification.ts +2 -1
- package/src/core/schema/peer.ts +25 -5
- package/src/core/schema/schema.ts +1 -0
- package/src/core/selectors/selectorUtils.ts +6 -3
- package/src/core/selectors/selectors.ts +6 -2
- package/src/core/selectors/selectorsByID.ts +78 -6
- package/src/test/fakeStore/fakeHMSStore.ts +16 -9
- package/src/test/fixtures.ts +4 -4
- package/src/test/unit/storeMergeUtils.test.ts +3 -3
|
@@ -292,6 +292,24 @@ export interface IHMSActions {
|
|
|
292
292
|
* JSON.stringify.
|
|
293
293
|
*/
|
|
294
294
|
changeMetadata(metadata: string | any): Promise<void>;
|
|
295
|
+
/**
|
|
296
|
+
* If you want to update the metadata of the session. If an object is passed, it should be serializable using
|
|
297
|
+
* JSON.stringify.
|
|
298
|
+
*
|
|
299
|
+
* Session metadata is available to every peer in the room and is persisted throughout a session
|
|
300
|
+
* till the last peer leaves a room
|
|
301
|
+
*
|
|
302
|
+
* @alpha - the API is not stable and might have breaking changes later
|
|
303
|
+
*/
|
|
304
|
+
setSessionMetadata(metadata: any, options?: {
|
|
305
|
+
localOnly: boolean;
|
|
306
|
+
}): Promise<void>;
|
|
307
|
+
/**
|
|
308
|
+
* Fetch the current room metadata from the server and populate it in store
|
|
309
|
+
*
|
|
310
|
+
* @alpha - the API is not stable and might have breaking changes later
|
|
311
|
+
*/
|
|
312
|
+
populateSessionMetadata(): Promise<void>;
|
|
295
313
|
/**
|
|
296
314
|
* Set the type of logs from the SDK you want to be logged in the browser console.
|
|
297
315
|
*
|
|
@@ -88,6 +88,10 @@ export declare class HMSSDKActions implements IHMSActions {
|
|
|
88
88
|
sendHLSTimedMetadata(metadataList: sdkTypes.HLSTimedMetadata[]): Promise<void>;
|
|
89
89
|
changeName(name: string): Promise<void>;
|
|
90
90
|
changeMetadata(metadata: string | any): Promise<void>;
|
|
91
|
+
setSessionMetadata(metadata: any, options?: {
|
|
92
|
+
localOnly: boolean;
|
|
93
|
+
}): Promise<void>;
|
|
94
|
+
populateSessionMetadata(): Promise<void>;
|
|
91
95
|
setRemoteTrackEnabled(trackID: HMSTrackID | HMSTrackID[], enabled: boolean): Promise<void>;
|
|
92
96
|
setRemoteTracksEnabled(params: HMSChangeMultiTrackStateParams): Promise<void>;
|
|
93
97
|
setLogLevel(level: HMSLogLevel): void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { HMSRoleChangeRequest as SDKHMSRoleChangeRequest, HMSTrack as SDKHMSTrack } from '@100mslive/hms-video';
|
|
2
|
-
import { HMSDeviceChangeEvent, HMSException, HMSMessage, HMSPeer, HMSPeerID, HMSPlaylistItem, HMSRole, HMSRoleChangeStoreRequest, HMSRoleName, HMSRoom, HMSTrack } from '../schema';
|
|
2
|
+
import { HMSDeviceChangeEvent, HMSException, HMSMessage, HMSPeer, HMSPeerID, HMSPlaylistItem, HMSRole, HMSRoleChangeStoreRequest, HMSRoleName, HMSRoom, HMSTrack, HMSVideoTrack } from '../schema';
|
|
3
3
|
import * as sdkTypes from './sdkTypes';
|
|
4
4
|
/**
|
|
5
5
|
* This file has conversion functions from schema defined in sdk to normalised schema defined in store.
|
|
@@ -13,7 +13,7 @@ export declare class SDKToHMS {
|
|
|
13
13
|
static convertTrack(sdkTrack: SDKHMSTrack, peerId?: HMSPeerID): HMSTrack;
|
|
14
14
|
static enrichTrack(track: HMSTrack, sdkTrack: SDKHMSTrack): void;
|
|
15
15
|
static updateDeviceID(track: HMSTrack, sdkTrack: SDKHMSTrack): void;
|
|
16
|
-
static enrichVideoTrack(track:
|
|
16
|
+
static enrichVideoTrack(track: HMSVideoTrack, sdkTrack: SDKHMSTrack): void;
|
|
17
17
|
static enrichPluginsDetails(track: HMSTrack, sdkTrack: SDKHMSTrack): void;
|
|
18
18
|
static convertRoom(sdkRoom: sdkTypes.HMSRoom): Partial<HMSRoom>;
|
|
19
19
|
static convertMessage(sdkMessage: sdkTypes.HMSMessage): Partial<HMSMessage> & Pick<HMSMessage, 'sender'>;
|
|
@@ -54,7 +54,7 @@ export interface HMSReconnectionNotification extends BaseNotification {
|
|
|
54
54
|
type: HMSNotificationTypes.RECONNECTED | HMSNotificationTypes.RECONNECTING;
|
|
55
55
|
data: null;
|
|
56
56
|
}
|
|
57
|
-
export declare type HMSNotification = HMSPeerNotification | HMSPeerListNotification | HMSTrackNotification | HMSMessageNotification | HMSExceptionNotification | HMSChangeTrackStateRequestNotification | HMSChangeMultiTrackStateRequestNotification | HMSLeaveRoomRequestNotification | HMSDeviceChangeEventNotification | HMSPlaylistItemNotification<any>;
|
|
57
|
+
export declare type HMSNotification = HMSPeerNotification | HMSPeerListNotification | HMSTrackNotification | HMSMessageNotification | HMSExceptionNotification | HMSChangeTrackStateRequestNotification | HMSChangeMultiTrackStateRequestNotification | HMSLeaveRoomRequestNotification | HMSDeviceChangeEventNotification | HMSReconnectionNotification | HMSPlaylistItemNotification<any>;
|
|
58
58
|
export declare enum HMSNotificationSeverity {
|
|
59
59
|
INFO = "info",
|
|
60
60
|
ERROR = "error"
|
|
@@ -103,7 +103,7 @@ export declare type HMSNotificationMapping<T extends HMSNotificationTypes, C = a
|
|
|
103
103
|
[HMSNotificationTypes.ROOM_ENDED]: HMSLeaveRoomRequestNotification;
|
|
104
104
|
[HMSNotificationTypes.REMOVED_FROM_ROOM]: HMSLeaveRoomRequestNotification;
|
|
105
105
|
[HMSNotificationTypes.DEVICE_CHANGE_UPDATE]: HMSDeviceChangeEventNotification;
|
|
106
|
-
[HMSNotificationTypes.PLAYLIST_TRACK_ENDED]:
|
|
106
|
+
[HMSNotificationTypes.PLAYLIST_TRACK_ENDED]: HMSPlaylistItemNotification<C>;
|
|
107
107
|
[HMSNotificationTypes.ERROR]: HMSExceptionNotification;
|
|
108
108
|
[HMSNotificationTypes.CHANGE_TRACK_STATE_REQUEST]: HMSChangeTrackStateRequestNotification;
|
|
109
109
|
[HMSNotificationTypes.CHANGE_MULTI_TRACK_STATE_REQUEST]: HMSChangeMultiTrackStateRequestNotification;
|
|
@@ -37,24 +37,40 @@ export interface HMSPeer {
|
|
|
37
37
|
* deviceID - this is the ID of the source device for the track. This can be a dummy ID when track is on mute.
|
|
38
38
|
* degraded - tells whether the track has been degraded(receiving lower video quality/no video) due to bad network locally
|
|
39
39
|
*/
|
|
40
|
-
|
|
40
|
+
interface BaseTrack {
|
|
41
41
|
id: HMSTrackID;
|
|
42
42
|
source?: HMSTrackSource;
|
|
43
43
|
type: HMSTrackType;
|
|
44
44
|
enabled: boolean;
|
|
45
|
-
|
|
46
|
-
width?: number;
|
|
45
|
+
displayEnabled?: boolean;
|
|
47
46
|
peerId?: string;
|
|
48
47
|
deviceID?: string;
|
|
49
48
|
plugins?: string[];
|
|
50
|
-
|
|
49
|
+
}
|
|
50
|
+
export interface HMSAudioTrack extends BaseTrack {
|
|
51
|
+
source: 'regular' | 'audioplaylist' | string;
|
|
52
|
+
type: 'audio';
|
|
51
53
|
volume?: number;
|
|
54
|
+
}
|
|
55
|
+
export interface HMSScreenAudioTrack extends HMSAudioTrack {
|
|
56
|
+
source: 'screen';
|
|
57
|
+
type: 'audio';
|
|
58
|
+
}
|
|
59
|
+
export interface HMSVideoTrack extends BaseTrack {
|
|
60
|
+
source: 'regular' | 'videoplaylist' | string;
|
|
61
|
+
type: 'video';
|
|
62
|
+
facingMode?: HMSTrackFacingMode;
|
|
52
63
|
layer?: HMSSimulcastLayer;
|
|
53
64
|
layerDefinitions?: SimulcastLayerDefinition[];
|
|
65
|
+
height?: number;
|
|
66
|
+
width?: number;
|
|
54
67
|
degraded?: boolean;
|
|
68
|
+
}
|
|
69
|
+
export interface HMSScreenVideoTrack extends Omit<HMSVideoTrack, 'facingMode'> {
|
|
70
|
+
source: 'screen';
|
|
55
71
|
displaySurface?: HMSTrackDisplaySurface;
|
|
56
|
-
facingMode?: HMSTrackFacingMode;
|
|
57
72
|
}
|
|
73
|
+
export declare type HMSTrack = HMSVideoTrack | HMSAudioTrack | HMSScreenVideoTrack | HMSScreenAudioTrack;
|
|
58
74
|
/**
|
|
59
75
|
* HMS Speaker stores the details of peers speaking at any point of time along with
|
|
60
76
|
* their audio levels. This can be used to current speakers or highlight videotiles.
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { HMSPeer, HMSStore, HMSTrack, HMSTrackID } from '../schema';
|
|
1
|
+
import { HMSPeer, HMSStore, HMSTrack, HMSTrackID, HMSVideoTrack } from '../schema';
|
|
2
2
|
declare type trackCheck = (track: HMSTrack | undefined) => boolean | undefined;
|
|
3
3
|
export declare function getPeerTracksByCondition(tracks: Record<HMSTrackID, HMSTrack>, peer: HMSPeer | null, trackCheckFn?: trackCheck): {
|
|
4
|
-
video:
|
|
5
|
-
audio:
|
|
4
|
+
video: import("../schema").HMSAudioTrack | HMSVideoTrack | import("../schema").HMSScreenVideoTrack | undefined;
|
|
5
|
+
audio: import("../schema").HMSAudioTrack | HMSVideoTrack | import("../schema").HMSScreenVideoTrack | undefined;
|
|
6
6
|
};
|
|
7
7
|
export declare function isAudio(track: HMSTrack | undefined): boolean | undefined;
|
|
8
8
|
export declare function isVideo(track: HMSTrack | undefined): boolean | undefined;
|
|
9
9
|
export declare function isScreenShare(track: HMSTrack | undefined): boolean | undefined;
|
|
10
10
|
export declare function isAudioPlaylist(track: HMSTrack | undefined): boolean | undefined;
|
|
11
11
|
export declare function isVideoPlaylist(track: HMSTrack | undefined): boolean | undefined;
|
|
12
|
-
export declare function isDegraded(track:
|
|
12
|
+
export declare function isDegraded(track: HMSVideoTrack): boolean;
|
|
13
13
|
export declare function isTrackEnabled(store: HMSStore, trackID?: string): boolean;
|
|
14
14
|
/**
|
|
15
15
|
* Should UI show the video track as enabled
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HMSMessage, HMSPeer, HMSPeerID, HMSRoom, HMSRoomState, HMSStore } from '../schema';
|
|
1
|
+
import { HMSMessage, HMSPeer, HMSPeerID, HMSRoom, HMSRoomState, HMSStore, HMSVideoTrack } from '../schema';
|
|
2
2
|
import { HMSRole } from '../hmsSDKStore/sdkTypes';
|
|
3
3
|
/**
|
|
4
4
|
* Select the current {@link HMSRoom} object to which you are connected.
|
|
@@ -147,7 +147,7 @@ export declare const selectPeerSharingAudioPlaylist: import("reselect").OutputSe
|
|
|
147
147
|
/**
|
|
148
148
|
* Select an array of tracks that have been degraded(receiving lower video quality/no video) due to bad network locally.
|
|
149
149
|
*/
|
|
150
|
-
export declare const selectDegradedTracks: import("reselect").OutputSelector<HMSStore,
|
|
150
|
+
export declare const selectDegradedTracks: import("reselect").OutputSelector<HMSStore, HMSVideoTrack[], (res: import("../schema").HMSTrack[]) => HMSVideoTrack[]>;
|
|
151
151
|
/**
|
|
152
152
|
* Select the number of messages(sent and received).
|
|
153
153
|
*/
|
|
@@ -212,3 +212,5 @@ export declare const selectRTMPState: import("reselect").OutputSelector<HMSStore
|
|
|
212
212
|
export declare const selectHLSState: import("reselect").OutputSelector<HMSStore, import("@100mslive/hms-video/dist/interfaces/room").HMSHLS, (res: HMSRoom) => import("@100mslive/hms-video/dist/interfaces/room").HMSHLS>;
|
|
213
213
|
export declare const selectSessionId: import("reselect").OutputSelector<HMSStore, string, (res: HMSRoom) => string>;
|
|
214
214
|
export declare const selectRoomStartTime: import("reselect").OutputSelector<HMSStore, Date | undefined, (res: HMSRoom) => Date | undefined>;
|
|
215
|
+
/** @alpha */
|
|
216
|
+
export declare const selectSessionMetadata: (store: HMSStore) => any;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HMSPeerID, HMSRoleName, HMSStore, HMSTrack } from '../schema';
|
|
1
|
+
import { HMSPeerID, HMSRoleName, HMSStore, HMSTrack, HMSAudioTrack, HMSVideoTrack, HMSScreenVideoTrack } from '../schema';
|
|
2
2
|
/**
|
|
3
3
|
* Select the {@link HMSPeer} object given a peer ID.
|
|
4
4
|
*/
|
|
@@ -16,20 +16,36 @@ export declare const selectPeerNameByID: (id?: string | undefined) => import("./
|
|
|
16
16
|
/**
|
|
17
17
|
* Select the {@link HMSTrack} object given a track ID.
|
|
18
18
|
*/
|
|
19
|
-
export declare const selectTrackByID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore,
|
|
19
|
+
export declare const selectTrackByID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, HMSAudioTrack | HMSVideoTrack | HMSScreenVideoTrack | null>;
|
|
20
|
+
/**
|
|
21
|
+
* Select the {@link HMSVideoTrack} object given a track ID.
|
|
22
|
+
*/
|
|
23
|
+
export declare const selectVideoTrackByID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, HMSVideoTrack | null>;
|
|
24
|
+
/**
|
|
25
|
+
* Select the {@link HMSAudioTrack} object given a track ID.
|
|
26
|
+
*/
|
|
27
|
+
export declare const selectAudioTrackByID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, HMSAudioTrack | null>;
|
|
28
|
+
/**
|
|
29
|
+
* Select the {@link HMSScreenAudioTrack} object given a track ID.
|
|
30
|
+
*/
|
|
31
|
+
export declare const selectScreenAudioTrackByID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, HMSAudioTrack | null>;
|
|
32
|
+
/**
|
|
33
|
+
* Select the {@link HMSScreenVideoTrack} object given a track ID.
|
|
34
|
+
*/
|
|
35
|
+
export declare const selectScreenVideoTrackByID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, HMSScreenVideoTrack | null>;
|
|
20
36
|
/**
|
|
21
37
|
* Select the primary video track of a peer given a peer ID.
|
|
22
38
|
*/
|
|
23
|
-
export declare const selectVideoTrackByPeerID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore,
|
|
39
|
+
export declare const selectVideoTrackByPeerID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, HMSVideoTrack | undefined>;
|
|
24
40
|
/**
|
|
25
41
|
* Select the primary audio track of a peer given a peer ID.
|
|
26
42
|
*/
|
|
27
|
-
export declare const selectAudioTrackByPeerID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore,
|
|
43
|
+
export declare const selectAudioTrackByPeerID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, HMSAudioTrack | undefined>;
|
|
28
44
|
/**
|
|
29
45
|
* Select the camera stream of a peer given a peer ID.
|
|
30
46
|
* This is the primary video track of a peer.
|
|
31
47
|
*/
|
|
32
|
-
export declare const selectCameraStreamByPeerID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore,
|
|
48
|
+
export declare const selectCameraStreamByPeerID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, HMSVideoTrack | undefined>;
|
|
33
49
|
/**
|
|
34
50
|
* Select an array of auxiliary tracks of a peer given a peer ID.
|
|
35
51
|
*/
|
|
@@ -47,27 +63,27 @@ export declare const selectConnectionQualityByPeerID: (id?: string | undefined)
|
|
|
47
63
|
* Select the first auxiliary audio track of a peer given a peer ID.
|
|
48
64
|
*/
|
|
49
65
|
export declare const selectAuxiliaryAudioByPeerID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, HMSTrack | undefined>;
|
|
50
|
-
export declare const selectVideoPlaylistVideoTrackByPeerID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore,
|
|
51
|
-
export declare const selectVideoPlaylistAudioTrackByPeerID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore,
|
|
52
|
-
export declare const selectAudioPlaylistTrackByPeerID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore,
|
|
66
|
+
export declare const selectVideoPlaylistVideoTrackByPeerID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, HMSAudioTrack | HMSVideoTrack | HMSScreenVideoTrack | undefined>;
|
|
67
|
+
export declare const selectVideoPlaylistAudioTrackByPeerID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, HMSAudioTrack | HMSVideoTrack | HMSScreenVideoTrack | undefined>;
|
|
68
|
+
export declare const selectAudioPlaylistTrackByPeerID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, HMSAudioTrack | HMSVideoTrack | HMSScreenVideoTrack | undefined>;
|
|
53
69
|
export declare const selectScreenSharesByPeerId: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, {
|
|
54
|
-
video:
|
|
55
|
-
audio:
|
|
70
|
+
video: HMSAudioTrack | HMSVideoTrack | HMSScreenVideoTrack | undefined;
|
|
71
|
+
audio: HMSAudioTrack | HMSVideoTrack | HMSScreenVideoTrack | undefined;
|
|
56
72
|
}>;
|
|
57
73
|
/**
|
|
58
74
|
* Select the screen share video track of a peer given a peer ID.
|
|
59
75
|
*/
|
|
60
|
-
export declare const selectScreenShareByPeerID: (id?: string) => import("reselect").OutputSelector<HMSStore,
|
|
61
|
-
video:
|
|
62
|
-
audio:
|
|
63
|
-
}) =>
|
|
76
|
+
export declare const selectScreenShareByPeerID: (id?: string) => import("reselect").OutputSelector<HMSStore, HMSAudioTrack | HMSVideoTrack | HMSScreenVideoTrack | undefined, (res: {
|
|
77
|
+
video: HMSAudioTrack | HMSVideoTrack | HMSScreenVideoTrack | undefined;
|
|
78
|
+
audio: HMSAudioTrack | HMSVideoTrack | HMSScreenVideoTrack | undefined;
|
|
79
|
+
}) => HMSAudioTrack | HMSVideoTrack | HMSScreenVideoTrack | undefined>;
|
|
64
80
|
/**
|
|
65
81
|
* Select the screen share audio track of a peer given a peer ID.
|
|
66
82
|
*/
|
|
67
|
-
export declare const selectScreenShareAudioByPeerID: (id?: string) => import("reselect").OutputSelector<HMSStore,
|
|
68
|
-
video:
|
|
69
|
-
audio:
|
|
70
|
-
}) =>
|
|
83
|
+
export declare const selectScreenShareAudioByPeerID: (id?: string) => import("reselect").OutputSelector<HMSStore, HMSAudioTrack | HMSVideoTrack | HMSScreenVideoTrack | undefined, (res: {
|
|
84
|
+
video: HMSAudioTrack | HMSVideoTrack | HMSScreenVideoTrack | undefined;
|
|
85
|
+
audio: HMSAudioTrack | HMSVideoTrack | HMSScreenVideoTrack | undefined;
|
|
86
|
+
}) => HMSAudioTrack | HMSVideoTrack | HMSScreenVideoTrack | undefined>;
|
|
71
87
|
/**
|
|
72
88
|
* Select a boolean denoting whether a peer has unmuted audio and sharing it to other peers.
|
|
73
89
|
*/
|
package/dist/index.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var Nt=Object.create;var z=Object.defineProperty,xt=Object.defineProperties,Lt=Object.getOwnPropertyDescriptor,Ot=Object.getOwnPropertyDescriptors,_t=Object.getOwnPropertyNames,Xe=Object.getOwnPropertySymbols,wt=Object.getPrototypeOf,ze=Object.prototype.hasOwnProperty,Ut=Object.prototype.propertyIsEnumerable;var Ze=(s,e,t)=>e in s?z(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,_=(s,e)=>{for(var t in e||(e={}))ze.call(e,t)&&Ze(s,t,e[t]);if(Xe)for(var t of Xe(e))Ut.call(e,t)&&Ze(s,t,e[t]);return s},W=(s,e)=>xt(s,Ot(e)),et=s=>z(s,"__esModule",{value:!0});var Kt=(s,e)=>{et(s);for(var t in e)z(s,t,{get:e[t],enumerable:!0})},Vt=(s,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of _t(e))!ze.call(s,i)&&i!=="default"&&z(s,i,{get:()=>e[i],enumerable:!(t=Lt(e,i))||t.enumerable});return s},D=s=>Vt(et(z(s!=null?Nt(wt(s)):{},"default",s&&s.__esModule&&"default"in s?{get:()=>s.default,enumerable:!0}:{value:s,enumerable:!0})),s);var S=(s,e,t)=>new Promise((i,o)=>{var r=u=>{try{a(t.next(u))}catch(R){o(R)}},n=u=>{try{a(t.throw(u))}catch(R){o(R)}},a=u=>u.done?i(u.value):Promise.resolve(u.value).then(r,n);a((t=t.apply(s,e)).next())});Kt(exports,{HMSAudioPluginType:()=>c.HMSAudioPluginType,HMSLogLevel:()=>c.HMSLogLevel,HMSMessageType:()=>fe,HMSNotificationSeverity:()=>P,HMSNotificationTypes:()=>m,HMSPlaylistType:()=>T,HMSReactiveStore:()=>L,HMSRoomState:()=>g,HMSStats:()=>ae,HMSVideoPluginCanvasContextType:()=>c.HMSVideoPluginCanvasContextType,HMSVideoPluginType:()=>c.HMSVideoPluginType,createDefaultStatsStore:()=>ee,createDefaultStoreState:()=>Z,parsedUserAgent:()=>c.parsedUserAgent,selectAppData:()=>Hs,selectAppDataByPath:()=>gs,selectAudioPlaylist:()=>we,selectAudioPlaylistTrackByPeerID:()=>bs,selectAudioTrackByPeerID:()=>Ht,selectAudioTrackVolume:()=>$e,selectAudioVolumeByPeerID:()=>Os,selectAuxiliaryAudioByPeerID:()=>Is,selectAuxiliaryTracksByPeerID:()=>fs,selectAvailableRoleNames:()=>cs,selectBroadcastMessages:()=>ft,selectBroadcastMessagesUnreadCount:()=>Vs,selectCameraStreamByPeerID:()=>ys,selectConnectionQualities:()=>Ft,selectConnectionQualityByPeerID:()=>Ds,selectDegradedTracks:()=>rs,selectDevices:()=>$t,selectDidIJoinWithin:()=>ri,selectDominantSpeaker:()=>zt,selectFullAppData:()=>de,selectHLSState:()=>us,selectHMSMessages:()=>oe,selectHMSMessagesCount:()=>Ne,selectHMSStats:()=>Et,selectIsAllowedToPublish:()=>Xs,selectIsAllowedToSubscribe:()=>Ss,selectIsAudioLocallyMuted:()=>je,selectIsConnectedToRoom:()=>nt,selectIsInPreview:()=>as,selectIsLocalAudioEnabled:()=>Zt,selectIsLocalAudioPluginPresent:()=>si,selectIsLocalScreenShared:()=>Me,selectIsLocalVideoDisplayEnabled:()=>Ae,selectIsLocalVideoEnabled:()=>ue,selectIsLocalVideoPluginPresent:()=>ti,selectIsLocallyMutedByPeerID:()=>xs,selectIsPeerAudioEnabled:()=>As,selectIsPeerVideoEnabled:()=>Ns,selectIsScreenShareLocallyMutedByPeerID:()=>Ls,selectIsSomeoneScreenSharing:()=>es,selectLocalAudioTrackID:()=>A,selectLocalMediaSettings:()=>be,selectLocalPeer:()=>E,selectLocalPeerID:()=>q,selectLocalPeerName:()=>Qt,selectLocalPeerRole:()=>re,selectLocalPeerRoleName:()=>Jt,selectLocalTrackIDs:()=>Ce,selectLocalVideoTrackID:()=>N,selectMessageIDsInOrder:()=>Ee,selectMessagesByPeerID:()=>Bs,selectMessagesByRole:()=>qs,selectMessagesMap:()=>ve,selectMessagesUnreadCountByPeerID:()=>$s,selectMessagesUnreadCountByRole:()=>js,selectPeerAudioByID:()=>Ps,selectPeerByCondition:()=>ii,selectPeerByID:()=>x,selectPeerCount:()=>Gt,selectPeerMetadata:()=>Gs,selectPeerName:()=>Ws,selectPeerNameByID:()=>hs,selectPeerScreenSharing:()=>at,selectPeerSharingAudio:()=>ts,selectPeerSharingAudioPlaylist:()=>os,selectPeerSharingVideoPlaylist:()=>is,selectPeers:()=>F,selectPeersByCondition:()=>oi,selectPeersByRole:()=>Fs,selectPeersMap:()=>v,selectPeersScreenSharing:()=>ss,selectPeersWithAudioStatus:()=>Qs,selectPermissions:()=>Le,selectRTMPState:()=>ds,selectRecordingState:()=>ls,selectRemotePeers:()=>Xt,selectRoleByRoleName:()=>zs,selectRoleChangeRequest:()=>Ys,selectRolesMap:()=>K,selectRoom:()=>I,selectRoomID:()=>jt,selectRoomStartTime:()=>ps,selectRoomStarted:()=>xe,selectRoomState:()=>b,selectScreenShareAudioByPeerID:()=>qe,selectScreenShareByPeerID:()=>Cs,selectScreenSharesByPeerId:()=>Be,selectScreenshareAudioVolumeByPeerID:()=>_s,selectSessionId:()=>Ms,selectSimulcastLayerByTrack:()=>ws,selectSpeakers:()=>rt,selectTrackAudioByID:()=>ks,selectTrackByID:()=>J,selectTracksMap:()=>y,selectUnreadHMSMessagesCount:()=>ns,selectVideoPlaylist:()=>Ue,selectVideoPlaylistAudioTrackByPeerID:()=>Es,selectVideoPlaylistVideoTrackByPeerID:()=>vs,selectVideoTrackByPeerID:()=>mt});var bt=D(require("immer")),Ct=D(require("zustand/vanilla")),At=D(require("zustand/shallow")),ye=D(require("@100mslive/hms-video"));var g;(function(a){a.Disconnected="Disconnected",a.Preview="Preview",a.Connecting="Connecting",a.Connected="Connected",a.Reconnecting="Reconnecting",a.Disconnecting="Disconnecting",a.Failed="Failed"})(g||(g={}));var Z=()=>({room:{id:"",isConnected:!1,name:"",peers:[],shareableLink:"",localPeer:"",hasWaitingRoom:!1,roomState:g.Disconnected,recording:{browser:{running:!1},server:{running:!1},hls:{running:!1}},rtmp:{running:!1},hls:{running:!1,variants:[]},sessionId:""},peers:{},tracks:{},playlist:{audio:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1},video:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1}},messages:{byID:{},allIDs:[]},speakers:{},connectionQualities:{},settings:{audioInputDeviceId:"",audioOutputDeviceId:"",videoInputDeviceId:""},devices:{audioInput:[],audioOutput:[],videoInput:[]},roles:{},roleChangeRequests:[],errors:[]}),ee=()=>({peerStats:{},trackStats:{},localPeer:{id:""}});var fe;(function(e){e.CHAT="chat"})(fe||(fe={}));var P;(function(t){t.INFO="info",t.ERROR="error"})(P||(P={}));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.TRACK_DESCRIPTION_CHANGED="TRACK_DESCRIPTION_CHANGED",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 T;(function(t){t.audio="audio",t.video="video"})(T||(T={}));var c=D(require("@100mslive/hms-video"));var U=D(require("@100mslive/hms-video"));var tt=(s,e)=>{let t=Ie(Object.keys(s),Object.keys(e));for(let i of t){let o=s[i],r=e[i];Re(o,r)?(w(o.auxiliaryTracks,r.auxiliaryTracks)&&(r.auxiliaryTracks=o.auxiliaryTracks),Object.assign(o,r)):Pe(o,r)?delete s[i]:De(o,r)&&(s[i]=r)}},st=(s,e)=>{let t=Ie(Object.keys(s),Object.keys(e));for(let i of t){let o=s[i],r=e[i];Re(o,r)?(Bt(o,r),Object.assign(o,r)):Pe(o,r)?delete s[i]:De(o,r)&&(s[i]=r)}},ke=(s,e)=>{let t=Ie(Object.keys(s),Object.keys(e));for(let i of t){let o=s[i],r=e[i];Re(o,r)?Object.assign(o,r):Pe(o,r)?delete s[i]:De(o,r)&&(s[i]=r)}},Bt=(s,e)=>{s.plugins&&w(s.plugins,e.plugins)&&(e.plugins=s.plugins),s.layerDefinitions&&w(s.layerDefinitions,e.layerDefinitions)&&(e.layerDefinitions=s.layerDefinitions)},Re=(s,e)=>s&&e,Pe=(s,e)=>s&&!e,De=(s,e)=>!s&&e,w=(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},Ie=(s,e)=>{let t=new Set;for(let i of s)t.add(i);for(let i of e)t.add(i);return Array.from(t)};var H=class{static convertPeer(e){var t,i,o;return{id:e.peerId,name:e.name,roleName:(t=e.role)==null?void 0:t.name,isLocal:e.isLocal,videoTrack:(i=e.videoTrack)==null?void 0:i.trackId,audioTrack:(o=e.audioTrack)==null?void 0:o.trackId,auxiliaryTracks:e.auxiliaryTracks.map(r=>r.trackId),customerUserId:e.customerUserId,customerDescription:e.metadata,metadata:e.metadata,joinedAt:e.joinedAt}}static convertTrack(e,t){let i={id:e.trackId,source:e.source,type:e.type,enabled:e.enabled,displayEnabled:e.enabled,peerId:e.peerId||t};return this.enrichTrack(i,e),i}static enrichTrack(e,t){let i=t.getMediaTrackSettings();e.source==="screen"&&e.type==="video"&&(e.displaySurface=i.displaySurface),e.type==="video"&&(e.facingMode=i.facingMode),e.height=i.height,e.width=i.width,t instanceof U.HMSRemoteAudioTrack&&(e.volume=t.getVolume()||0),H.updateDeviceID(e,t),H.enrichVideoTrack(e,t),H.enrichPluginsDetails(e,t)}static updateDeviceID(e,t){var i;t instanceof U.HMSLocalVideoTrack||t instanceof U.HMSLocalAudioTrack?e.deviceID=t.settings.deviceId:e.deviceID=(i=t.getMediaTrackSettings())==null?void 0:i.deviceId}static enrichVideoTrack(e,t){t instanceof U.HMSRemoteVideoTrack&&(e.layer=t.getSimulcastLayer(),e.degraded=t.degraded,w(t.getSimulcastDefinitions(),e.layerDefinitions)||(e.layerDefinitions=t.getSimulcastDefinitions()))}static enrichPluginsDetails(e,t){(t instanceof U.HMSLocalVideoTrack||t instanceof U.HMSLocalAudioTrack)&&(w(t.getPlugins(),e.plugins)||(e.plugins=t.getPlugins()))}static convertRoom(e){var r,n;let{recording:t,rtmp:i,hls:o}=H.convertRecordingStreamingState(e==null?void 0:e.recording,e==null?void 0:e.rtmp,e==null?void 0:e.hls);return{id:e.id,name:e.name,localPeer:(n=(r=e.localPeer)==null?void 0:r.peerId)!=null?n:"",hasWaitingRoom:e.hasWaitingRoom,shareableLink:e.shareableLink,recording:t,rtmp:i,hls:o,sessionId:e.sessionId,startedAt:e.startedAt,joinedAt:e.joinedAt,peerCount:e.peerCount}}static convertMessage(e){var t,i,o,r,n,a,u;return{sender:(t=e.sender)==null?void 0:t.peerId,senderName:(i=e.sender)==null?void 0:i.name,senderRole:(r=(o=e.sender)==null?void 0:o.role)==null?void 0:r.name,senderUserId:(n=e.sender)==null?void 0:n.customerUserId,recipientPeer:(a=e.recipientPeer)==null?void 0:a.peerId,recipientRoles:(u=e.recipientRoles)==null?void 0:u.map(R=>R.name),time:e.time,type:e.type,message:e.message}}static convertRoles(e){let t={};return e&&e.forEach(i=>{t[i.name]=i}),t}static convertRoleChangeRequest(e){var t;return{requestedBy:(t=e.requestedBy)==null?void 0:t.peerId,roleName:e.role.name,token:e.token}}static convertException(e){return{code:e.code,action:e.action,name:e.name,message:e.message,description:e.description,isTerminal:e.isTerminal,nativeError:e.nativeError,timestamp:new Date}}static convertDeviceChangeUpdate(e){let t={devices:e.devices,selection:e.selection,type:e.type};return e.error&&(t.error=this.convertException(e.error)),t}static convertPlaylist(e){let t=this.getConvertedPlaylistType(e,T.audio),i=this.getConvertedPlaylistType(e,T.video);return{audio:t,video:i}}static convertPlaylistItem(e,t){let i=t.type,o=e.getCurrentSelection(i),r=e.isPlaying(i),n=t.url===(o==null?void 0:o.url);return W(_({},t),{type:t.type,selected:n,playing:n&&r})}static getConvertedPlaylistType(e,t){let i={},o=e.getCurrentSelection(t),r=e.getCurrentProgress(t),n=e.getVolume(t),a=e.getList(t),u=e.getCurrentIndex(t);return e.getList(t).forEach(R=>{i[R.id]=H.convertPlaylistItem(e,R)}),{list:i,selection:{id:o==null?void 0:o.id,hasPrevious:u>0,hasNext:u<a.length-1},progress:r,volume:n,currentTime:e.getCurrentTime(t),playbackRate:e.getPlaybackRate(t)}}static convertRecordingStreamingState(e,t,i){var o;return{recording:{browser:_({running:!1},e==null?void 0:e.browser),server:_({running:!1},e==null?void 0:e.server),hls:_({running:!1},e==null?void 0:e.hls)},rtmp:_({running:!1},t),hls:{variants:((o=i==null?void 0:i.variants)==null?void 0:o.map(r=>r))||[],running:!!(i==null?void 0:i.running),error:i==null?void 0:i.error}}}};var d=D(require("reselect"));function $(s,e,t=qt){let i,o;if(e)for(let r of e.auxiliaryTracks){let n=s[r];t(n)&&(o=te(n)?n:o,i=se(n)?n:i)}return{video:i,audio:o}}function te(s){return s&&s.type==="audio"}function se(s){return s&&s.type==="video"}function qt(s){return s&&s.source==="screen"}function le(s){return s&&s.source==="audioplaylist"}function ie(s){return s&&s.source==="videoplaylist"}function it(s){return Boolean(s==null?void 0:s.degraded)}function Q(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 I=s=>s.room,jt=(0,d.createSelector)(I,s=>s.id),v=s=>s.peers,ve=s=>s.messages.byID,Ee=s=>s.messages.allIDs,y=s=>s.tracks,be=s=>s.settings,de=s=>s.appData,$t=s=>s.devices,rt=s=>s.speakers,Ft=s=>s.connectionQualities,nt=(0,d.createSelector)([I],s=>s&&s.isConnected),Gt=(0,d.createSelector)([nt,I],(s,e)=>s?e.peerCount!==void 0?e.peerCount||1:e.peers.length:Math.max(e.peerCount!==void 0?e.peerCount:e.peers.length-1,0)),F=(0,d.createSelector)([I,v],(s,e)=>s.peers.map(t=>e[t])),Wt=(0,d.createSelector)(y,s=>Object.values(s)),E=(0,d.createSelector)(I,v,(s,e)=>e[s.localPeer]),q=(0,d.createSelector)(I,s=>s.localPeer),Qt=(0,d.createSelector)(E,s=>s==null?void 0:s.name),Jt=(0,d.createSelector)(E,s=>s==null?void 0:s.roleName),A=(0,d.createSelector)(E,s=>s==null?void 0:s.audioTrack),N=(0,d.createSelector)(E,s=>s==null?void 0:s.videoTrack),Yt=(0,d.createSelector)(E,s=>s==null?void 0:s.auxiliaryTracks),Ce=(0,d.createSelector)([A,N,Yt],(s,e,t)=>{let i=[...t];return s&&i.unshift(s),e&&i.unshift(e),i}),Xt=(0,d.createSelector)(F,s=>s.filter(e=>!e.isLocal)),zt=(0,d.createSelector)(v,rt,(s,e)=>{let t=Object.entries(e).sort((i,o)=>{var a,u;let r=((a=i[1])==null?void 0:a.audioLevel)||0;return(((u=o[1])==null?void 0:u.audioLevel)||0)>r?1:-1});if(t.length>0&&t[0][1].audioLevel&&t[0][1].audioLevel>0){let i=t[0][1].peerID;if(i in s)return s[i]}return null}),Zt=s=>{let e=E(s);return Q(s,e==null?void 0:e.audioTrack)},ue=s=>{let e=E(s);return Q(s,e==null?void 0:e.videoTrack)},Ae=s=>{let e=E(s);return ot(s,e==null?void 0:e.videoTrack)},Me=(0,d.createSelector)(E,y,(s,e)=>{let{video:t,audio:i}=$(e,s);return!!(t||i)}),at=(0,d.createSelector)(v,y,(s,e)=>{let t;for(let i in s){let o=s[i],{video:r,audio:n}=$(e,o);if(r)return o;n&&!t&&(t=o)}return t}),es=(0,d.createSelector)(at,s=>!!s),ts=(0,d.createSelector)(v,y,(s,e)=>{for(let t in s){let i=s[t],{audio:o,video:r}=$(e,i);if(!r&&!!o)return i}}),ss=(0,d.createSelector)(v,y,(s,e)=>{let t=[],i=[];for(let o in s){let r=s[o],{video:n,audio:a}=$(e,r);n?t.push(r):a&&i.push(r)}return t.concat(i)}),is=(0,d.createSelector)(v,y,(s,e)=>{for(let t in e){let i=e[t];if(ie(i)&&se(i)&&i.peerId)return s[i.peerId]}}),os=(0,d.createSelector)(v,y,(s,e)=>{for(let t in e){let i=e[t];if(le(i)&&i.peerId)return s[i.peerId]}}),rs=(0,d.createSelector)(Wt,s=>s.filter(it)),Ne=(0,d.createSelector)(Ee,s=>s.length),ns=(0,d.createSelector)(ve,s=>Object.values(s).filter(e=>!e.read).length),oe=(0,d.createSelector)(Ee,ve,(s,e)=>{let t=[];return s.forEach(i=>{t.push(e[i])}),t}),b=(0,d.createSelector)([I],s=>s&&s.roomState),as=(0,d.createSelector)(b,s=>s===g.Preview),xe=(0,d.createSelector)(I,s=>s.roomState!==g.Disconnected),K=s=>s.roles,cs=(0,d.createSelector)([K],s=>Object.keys(s)),re=(0,d.createSelector)([E,K],(s,e)=>(s==null?void 0:s.roleName)?e[s.roleName]:null),Ss=(0,d.createSelector)([re],s=>{var e;return((e=s==null?void 0:s.subscribeParams)==null?void 0:e.subscribeToRoles)?s.subscribeParams.subscribeToRoles.length>0:!1}),Le=(0,d.createSelector)(re,s=>s==null?void 0:s.permissions),ls=(0,d.createSelector)(I,s=>s.recording),ds=(0,d.createSelector)(I,s=>s.rtmp),us=(0,d.createSelector)(I,s=>s.hls),Ms=(0,d.createSelector)(I,s=>s.sessionId),ps=(0,d.createSelector)(I,s=>s.startedAt);var Oe=D(require("reselect"));var ct=(s=T.audio)=>e=>e.playlist[s].list,_e=(s=T.audio)=>e=>e.playlist[s].selection,St=(s=T.audio)=>e=>e.playlist[s].progress,lt=(s=T.audio)=>e=>e.playlist[s].currentTime,dt=(s=T.audio)=>e=>e.playlist[s].playbackRate,ut=(s=T.audio)=>e=>e.playlist[s].volume,Mt=(s=T.audio)=>(0,Oe.createSelector)(ct(s),e=>Object.values(e)),pt=(s=T.audio)=>(0,Oe.createSelector)(ct(s),_e(s),(e,t)=>{if(!!t.id)return e[t.id]}),we={selection:_e(T.audio),progress:St(T.audio),currentTime:lt(T.audio),playbackRate:dt(T.audio),volume:ut(T.audio),list:Mt(T.audio),selectedItem:pt(T.audio)},Ue={selection:_e(T.video),progress:St(T.video),currentTime:lt(T.video),playbackRate:dt(T.video),volume:ut(T.video),list:Mt(T.video),selectedItem:pt(T.video)};var f=D(require("reselect"));function M(s){return e=>t=>s(t,e)}var ne="HMS-Store:",p=class{static v(e,...t){this.log(c.HMSLogLevel.VERBOSE,e,...t)}static d(...e){this.log(c.HMSLogLevel.DEBUG,...e)}static i(...e){this.log(c.HMSLogLevel.INFO,...e)}static w(...e){this.log(c.HMSLogLevel.WARN,...e)}static e(...e){this.log(c.HMSLogLevel.ERROR,...e)}static time(e){this.log(c.HMSLogLevel.TIME,"[HMSPerformanceTiming]",e)}static timeEnd(e){this.log(c.HMSLogLevel.TIMEEND,"[HMSPerformanceTiming]",e,e)}static cleanUp(){performance.clearMarks(),performance.clearMeasures()}static log(e,...t){if(!(this.level.valueOf()>e.valueOf()))switch(e){case c.HMSLogLevel.VERBOSE:{console.log(ne,...t);break}case c.HMSLogLevel.DEBUG:{console.debug(ne,...t);break}case c.HMSLogLevel.INFO:{console.info(ne,...t);break}case c.HMSLogLevel.WARN:{console.warn(ne,...t);break}case c.HMSLogLevel.ERROR:{console.error(ne,...t);break}case c.HMSLogLevel.TIME:{performance.mark(t[1]);break}case c.HMSLogLevel.TIMEEND:{let i=t[0],o=t[1];try{let r=performance.measure(o,o);this.log(c.HMSLogLevel.DEBUG,i,o,r==null?void 0:r.duration),performance.clearMarks(o),performance.clearMeasures(o)}catch(r){this.log(c.HMSLogLevel.DEBUG,i,o,r)}break}}}};p.level=c.HMSLogLevel.VERBOSE;var Ke=(s,e)=>e,Ts=(s,e)=>e,Tt=(s,e)=>e,ms=(s,e)=>e,C=(0,f.createSelector)([v,Ke],(s,e)=>e?s[e]:null),Ve=(0,f.createSelector)([y,Ts],(s,e)=>e?s[e]:null),x=M(C),Hs=M((0,f.createSelector)([de,ms],(s,e)=>{if(!!s)return e?s[e]:s})),gs=(...s)=>(0,f.createSelector)([de],e=>{if(!!e){if(s&&s.length>0){let t=e;for(let i of s){if(!i)return t;t=t==null?void 0:t[i]}return t}return e}}),hs=M((0,f.createSelector)(C,s=>s==null?void 0:s.name)),J=M(Ve),mt=M((s,e)=>{let t=C(s,e);if(t&&t.videoTrack&&t.videoTrack!=="")return s.tracks[t.videoTrack]}),Ht=M((s,e)=>{let t=C(s,e);if(t&&t.audioTrack&&t.audioTrack!=="")return s.tracks[t.audioTrack]}),ys=mt,fs=M((s,e)=>{let t=C(s,e);return(t==null?void 0:t.auxiliaryTracks.map(i=>s.tracks[i]))||[]}),gt=(s,e)=>e?s.speakers[e]:null,ks=M((0,f.createSelector)(gt,s=>(s==null?void 0:s.audioLevel)||0)),Rs=(s,e)=>{let t=Ht(e)(s);return gt(s,t==null?void 0:t.id)},Ps=M((0,f.createSelector)(Rs,s=>(s==null?void 0:s.audioLevel)||0)),Ds=M((s,e)=>{if(e)return s.connectionQualities[e]}),Is=M((s,e)=>{let t=C(s,e);if(t){let i=t==null?void 0:t.auxiliaryTracks.find(o=>te(s.tracks[o]));return i?s.tracks[i]:void 0}}),vs=M((0,f.createSelector)(y,C,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(i=>{let o=s[i];return ie(o)&&se(o)});return t?s[t]:void 0})),Es=M((0,f.createSelector)(y,C,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(i=>{let o=s[i];return ie(o)&&te(o)});return t?s[t]:void 0})),bs=M((0,f.createSelector)(y,C,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(i=>{let o=s[i];return le(o)&&te(o)});return t?s[t]:void 0})),Be=M((0,f.createSelector)(y,C,(s,e)=>$(s,e))),Cs=s=>(0,f.createSelector)(Be(s),e=>e.video),qe=s=>(0,f.createSelector)(Be(s),e=>e.audio),As=M((s,e)=>{let t=C(s,e);return Q(s,t==null?void 0:t.audioTrack)}),Ns=M((s,e)=>{let t=C(s,e);return Q(s,t==null?void 0:t.videoTrack)}),je=M((s,e)=>{if(e&&s.tracks[e])return s.tracks[e].volume===0}),xs=M((s,e)=>{let t=C(s,e);return je(t==null?void 0:t.audioTrack)(s)}),Ls=M((s,e)=>{let t=qe(e)(s);return je(t==null?void 0:t.id)(s)}),$e=M((s,e)=>{let t=Ve(s,e);if(t){if(t.type!=="audio"){p.w("Please pass audio track here");return}return t.volume}}),Os=M((s,e)=>{let t=C(s,e);return $e(t==null?void 0:t.audioTrack)(s)}),_s=M((s,e)=>{let t=qe(e)(s);return $e(t==null?void 0:t.id)(s)}),ws=M((s,e)=>{let t=Ve(s,e);if(t){if(t.type!=="video"){p.w("Please pass video track here");return}return t.layer}}),ht=(0,f.createSelector)([oe,q,Ke],(s,e,t)=>{if(!!t)return s.filter(i=>{var o;return!i.recipientPeer&&!((o=i.recipientRoles)==null?void 0:o.length)||i.sender&&![e,t].includes(i.sender)?!1:[e,t].includes(i.recipientPeer)})}),yt=(0,f.createSelector)([oe,Tt],(s,e)=>{if(!!e)return s.filter(t=>{var i,o;return((i=t.recipientRoles)==null?void 0:i.length)?(o=t.recipientRoles)==null?void 0:o.includes(e):!1})}),ft=(0,f.createSelector)(oe,s=>s.filter(e=>{var t;return!e.recipientPeer&&!((t=e.recipientRoles)==null?void 0:t.length)})),Us=(0,f.createSelector)([yt,Tt],s=>s?s.filter(e=>!e.read).length:0),Ks=(0,f.createSelector)([ht,Ke],s=>s?s.filter(e=>!e.read).length:0),Vs=(0,f.createSelector)(ft,s=>s.filter(e=>!e.read).length),Bs=M(ht),qs=M(yt),js=M(Us),$s=M(Ks),Fs=s=>(0,f.createSelector)([F],e=>e.filter(t=>t.roleName===s)),Gs=s=>(0,f.createSelector)(x(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),{}}}),Ws=s=>(0,f.createSelector)(x(s),e=>e==null?void 0:e.name);var pe=D(require("reselect")),Qs=(0,pe.createSelector)([v,y],(s,e)=>Object.values(s).map(i=>{var o;return{peer:i,isAudioEnabled:i.audioTrack?(o=e[i.audioTrack])==null?void 0:o.enabled:!1}})),Js=s=>s.roleChangeRequests[0]||null,Ys=(0,pe.createSelector)([Js,v,K],(s,e,t)=>s?{requestedBy:s.requestedBy?e[s.requestedBy]:void 0,role:t[s.roleName],token:s.token}:null),Xs=(0,pe.createSelector)([re],s=>{var o;let e=!1,t=!1,i=!1;return((o=s==null?void 0:s.publishParams)==null?void 0:o.allowed)&&(e=s.publishParams.allowed.includes("video"),t=s.publishParams.allowed.includes("audio"),i=s.publishParams.allowed.includes("screen")),{video:e,audio:t,screen:i}});var V=D(require("reselect"));var zs=s=>(0,V.createSelector)([K],e=>e[s]),Zs=(0,V.createSelector)([N,y],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),ei=(0,V.createSelector)([A,y],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),ti=s=>(0,V.createSelector)([Zs],e=>e.includes(s)),si=s=>(0,V.createSelector)([ei],e=>e.includes(s)),ii=s=>(0,V.createSelector)(F,e=>e.find(s)),oi=s=>(0,V.createSelector)(F,e=>e.filter(s)),ri=s=>(0,V.createSelector)(I,e=>e.joinedAt&&Date.now()-e.joinedAt.getTime()<=s);var G=D(require("@100mslive/hms-video"));var Te=D(require("@100mslive/hms-video"));function kt(s){return s instanceof Te.HMSRemoteAudioTrack||s instanceof Te.HMSRemoteVideoTrack}var me=class{constructor(e,t,i,o){this.playlistManager=e;this.syncPlaylistState=i;this.store=o;this.type=t}play(e){return S(this,null,function*(){if(!e){p.w("Please pass id to play");return}yield this.playlistManager.setEnabled(!0,{id:e,type:this.type})})}pause(){return S(this,null,function*(){let e=this.type===T.audio?we:Ue,t=this.store.getState(e.selection);if(!t.id){p.w("No item is currently playing to pause");return}yield this.playlistManager.setEnabled(!1,{id:t.id,type:this.type})})}playNext(){return S(this,null,function*(){yield this.playlistManager.playNext(this.type)})}playPrevious(){return S(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 S(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`)}removeItem(e){return S(this,null,function*(){let t=yield this.playlistManager.removeItem(e,this.type);return t&&this.syncPlaylistState(`remove${this.type}PlaylistItem`),t})}clearList(){return S(this,null,function*(){yield this.playlistManager.clearList(this.type),this.syncPlaylistState(`clear${this.type}Playlist`)})}};var He={[c.HMSPeerUpdate.PEER_JOINED]:m.PEER_JOINED,[c.HMSPeerUpdate.PEER_LEFT]:m.PEER_LEFT,[c.HMSPeerUpdate.ROLE_UPDATED]:m.ROLE_UPDATED,[c.HMSPeerUpdate.NAME_UPDATED]:m.NAME_UPDATED,[c.HMSPeerUpdate.METADATA_UPDATED]:m.METADATA_UPDATED},ge={[c.HMSTrackUpdate.TRACK_ADDED]:m.TRACK_ADDED,[c.HMSTrackUpdate.TRACK_REMOVED]:m.TRACK_REMOVED,[c.HMSTrackUpdate.TRACK_MUTED]:m.TRACK_MUTED,[c.HMSTrackUpdate.TRACK_UNMUTED]:m.TRACK_UNMUTED,[c.HMSTrackUpdate.TRACK_DEGRADED]:m.TRACK_DEGRADED,[c.HMSTrackUpdate.TRACK_RESTORED]:m.TRACK_RESTORED,[c.HMSTrackUpdate.TRACK_DESCRIPTION_CHANGED]:m.TRACK_DESCRIPTION_CHANGED};var Fe=class{constructor(e,t,i){this.hmsSDKTracks={};this.hmsSDKPeers={};this.isRoomJoinCalled=!1;this.ignoredMessageTypes=[];this.setProgress=({type:e,progress:t})=>{this.setState(i=>{i.playlist[e].progress=t,i.playlist[e].currentTime=this.sdk.getPlaylistManager().getCurrentTime(e)},"playlistProgress")};this.syncPlaylistState=e=>{this.setState(t=>{Object.assign(t.playlist,H.convertPlaylist(this.sdk.getPlaylistManager()))},e)};this.sendPeerUpdateNotification=(e,t)=>{let i=this.store.getState(x(t.peerId)),o=He[e]||"peerUpdate";this.syncRoomState(o),i||(i=this.store.getState(x(t.peerId))),this.hmsNotifications.sendPeerUpdate(e,i)};this.setState=(e,t)=>this.store.namedSetState(e,t);this.store=e,this.sdk=t,this.hmsNotifications=i}refreshDevices(){return S(this,null,function*(){yield this.sdk.refreshDevices()})}unblockAudio(){return S(this,null,function*(){yield this.sdk.getAudioOutput().unblockAutoplay()})}setVolume(e,t){t?this.setTrackVolume(e,t):(this.sdk.getAudioOutput().setVolume(e),this.syncRoomState("setOutputVolume"))}setAudioOutputDevice(e){this.sdk.getAudioOutput().setDevice(e)&&this.setState(i=>{i.settings.audioOutputDeviceId=e},"setAudioOutputDevice")}setPreferredLayer(e,t){let i=this.hmsSDKTracks[e];i?i instanceof G.HMSRemoteVideoTrack?(i.preferLayer(t),this.updateVideoLayer(e,"setPreferredLayer")):p.w(`track ${e} is not an video track`):this.logPossibleInconsistency(`track ${e} not present, unable to set preffer layer`)}preview(e){return S(this,null,function*(){if(this.isRoomJoinCalled){this.logPossibleInconsistency("attempting to call preview after join was called");return}let t=this.store.getState(b);if(t===g.Preview||t===g.Connecting){this.logPossibleInconsistency("attempting to call preview while room is in preview/connecting");return}try{this.setState(i=>{i.room.roomState=g.Connecting},"connecting"),yield this.sdkPreviewWithListeners(e)}catch(i){throw p.e("Cannot show preview. Failed to connect to room - ",i),i}})}join(e){return S(this,null,function*(){if(this.isRoomJoinCalled){this.logPossibleInconsistency("room join is called again");return}try{this.isRoomJoinCalled=!0,this.setState(t=>{t.room.roomState=g.Connecting},"join"),yield this.sdkJoinWithListeners(e)}catch(t){throw this.isRoomJoinCalled=!1,p.e("Failed to connect to room - ",t),t}})}leave(){return S(this,null,function*(){if(!this.store.getState(xe)){this.logPossibleInconsistency("room leave is called when no room is connected");return}let t=this.store.getState(b);return this.setState(i=>{i.room.roomState=g.Disconnecting},"leaving"),this.sdk.leave().then(()=>{this.resetState("leave"),p.i("left room")}).catch(i=>{p.e("error in leaving room - ",i),this.setState(o=>{o.room.roomState=t},"revertLeave")})})}setScreenShareEnabled(e,t){return S(this,null,function*(){let i={audioOnly:!1,videoOnly:!1};typeof t=="object"?Object.assign(i,t):typeof t=="boolean"&&(i.audioOnly=t);try{e?yield this.startScreenShare(i):yield this.stopScreenShare()}catch(o){throw this.hmsNotifications.sendError(H.convertException(o)),o}})}addTrack(e,t="regular"){return S(this,null,function*(){yield this.sdk.addTrack(e,t),this.syncRoomState("addTrack")})}removeTrack(e){return S(this,null,function*(){yield this.sdk.removeTrack(e),this.syncRoomState("removeTrack")})}setLocalAudioEnabled(e){return S(this,null,function*(){let t=this.store.getState(A);t&&(yield this.setEnabledTrack(t,e))})}setLocalVideoEnabled(e){return S(this,null,function*(){let t=this.store.getState(N);t&&(yield this.setEnabledTrack(t,e))})}setEnabledTrack(e,t){return S(this,null,function*(){var r;if(((r=this.store.getState().tracks[e])==null?void 0:r.enabled)===t){this.logPossibleInconsistency(`local track[${e}] enabled state - ${t}`);return}this.setState(n=>{n.tracks[e]?n.tracks[e].displayEnabled=t:this.logPossibleInconsistency("track id not found for setEnabled")},"displayEnabled");try{yield this.setEnabledSDKTrack(e,t),this.syncRoomState("setEnabled")}catch(n){throw this.setState(a=>{a.tracks[e].displayEnabled=!t},"rollbackDisplayEnabled"),this.hmsNotifications.sendError(H.convertException(n)),n}let o=t?c.HMSTrackUpdate.TRACK_UNMUTED:c.HMSTrackUpdate.TRACK_MUTED;this.hmsNotifications.sendTrackUpdate(o,e)})}setAudioSettings(e){return S(this,null,function*(){let t=this.store.getState(A);t&&(yield this.setSDKLocalAudioTrackSettings(t,e),this.syncRoomState("setAudioSettings"))})}setVideoSettings(e){return S(this,null,function*(){let t=this.store.getState(N);t&&(yield this.setSDKLocalVideoTrackSettings(t,e),this.syncRoomState("setVideoSettings"))})}sendMessage(e){this.sendBroadcastMessage(e)}sendBroadcastMessage(e,t){return S(this,null,function*(){let i=yield this.sdk.sendBroadcastMessage(e,t);this.updateMessageInStore(i,{message:e,type:t})})}sendGroupMessage(e,t,i){return S(this,null,function*(){let o=this.store.getState(K),r=t.map(a=>o[a]),n=yield this.sdk.sendGroupMessage(e,r,i);this.updateMessageInStore(n,{message:e,recipientRoles:t,type:i})})}sendDirectMessage(e,t,i){return S(this,null,function*(){let o=this.hmsSDKPeers[t],r=yield this.sdk.sendDirectMessage(e,o,i);this.updateMessageInStore(r,{message:e,recipientPeer:o.peerId,type:i})})}updateMessageInStore(e,t){if(!e)throw p.w("sendMessage","Failed to send message",t),Error(`sendMessage Failed - ${JSON.stringify(t)}`);let i=H.convertMessage(e);return i.read=!0,i.senderName="You",i.ignored=this.ignoredMessageTypes.includes(i.type),this.putMessageInStore(i),i}setMessageRead(e,t){this.setState(i=>{t?i.messages.byID[t]?i.messages.byID[t].read=e:this.logPossibleInconsistency("no message with id is found"):i.messages.allIDs.forEach(o=>{i.messages.byID[o].read=e})},"setMessageRead")}attachVideo(e,t){return S(this,null,function*(){if(this.localAndVideoUnmuting(e))return new Promise(i=>{let o=this.store.subscribe(r=>S(this,null,function*(){r&&(yield this.attachVideoInternal(e,t),o(),i())}),ue)});yield this.attachVideoInternal(e,t)})}detachVideo(e,t){return S(this,null,function*(){let i=this.hmsSDKTracks[e];(i==null?void 0:i.type)==="video"?(i.removeSink(t),this.updateVideoLayer(e,"detachVideo")):(t&&(t.srcObject=null),this.logPossibleInconsistency("no video track found to remove sink"))})}addPluginToVideoTrack(e,t){return S(this,null,function*(){return this.addRemoveVideoPlugin(e,"add",t)})}addPluginToAudioTrack(e){return S(this,null,function*(){return this.addRemoveAudioPlugin(e,"add")})}validateVideoPluginSupport(e){let t={};if(t.isSupported=!1,!e)return p.w("no plugin passed in for checking support"),t.errMsg="no plugin passed in for checking support",t;let i=this.store.getState(N);if(!i)return p.w("video Track not added to local peer yet"),t.errMsg="call this function only after local peer has video track",t;let o=this.hmsSDKTracks[i];return o?t=o.validatePlugin(e):(p.w(`track ${i} not present, unable to validate plugin`),t.errMsg=`track ${i} not present, unable to validate plugin`),t}validateAudioPluginSupport(e){let t={};if(t.isSupported=!1,!e)return p.w('no plugin passed in for checking support"'),t.errMsg='no plugin passed in for checking support"',t;let i=this.store.getState(A);if(!i)return p.w("audio track not added to local peer yet"),t.errMsg="call this function only after local peer has audio track",t;let o=this.hmsSDKTracks[i];return o?t=o.validatePlugin(e):(p.w(`track ${i} not present, unable to validate plugin`),t.errMsg=`track ${i} not present, unable to validate plugin`),t}removePluginFromVideoTrack(e){return S(this,null,function*(){return this.addRemoveVideoPlugin(e,"remove")})}removePluginFromAudioTrack(e){return S(this,null,function*(){return this.addRemoveAudioPlugin(e,"remove")})}changeRole(e,t,i=!1){return S(this,null,function*(){let o=this.hmsSDKPeers[e];if(!o){this.logPossibleInconsistency(`Unknown peer ID given ${e} for changerole`);return}yield this.sdk.changeRole(o,t,i)})}acceptChangeRole(e){return S(this,null,function*(){let t=e.requestedBy?this.hmsSDKPeers[e.requestedBy.id]:void 0;t||p.w(`peer for which role change is requested no longer available - ${e.requestedBy}`);let i={requestedBy:t,role:e.role,token:e.token};yield this.sdk.acceptChangeRole(i),this.removeRoleChangeRequest(e)})}initAppData(e){this.setState(t=>{t.appData=e},"initAppData")}setAppData(e,t,i){let o=(t==null?void 0:t.constructor.name)==="Object";this.setState(r=>{if(r.appData)i&&o?Object.assign(r.appData[e],t):r.appData[e]=t;else{let n={[e]:t};r.appData=n}},`setAppData-${e}`)}rejectChangeRole(e){this.removeRoleChangeRequest(e)}endRoom(e,t){return S(this,null,function*(){let i=this.store.getState(Le);if(!(i==null?void 0:i.endRoom)){p.w("You are not allowed to perform this action - endRoom");return}let o=this.store.getState(b);this.setState(r=>{r.room.roomState=g.Disconnecting},"endingRoom");try{yield this.sdk.endRoom(e,t),this.resetState("endRoom")}catch(r){p.e("error in ending room - ",r),this.setState(n=>{n.room.roomState=o},"revertEndRoom")}})}removePeer(e,t){return S(this,null,function*(){let i=this.hmsSDKPeers[e];if(i&&!i.isLocal)yield this.sdk.removePeer(i,t);else{this.logPossibleInconsistency(`No remote peer found for peerID - ${e}`);return}})}startRTMPOrRecording(e){return S(this,null,function*(){yield this.sdk.startRTMPOrRecording(e)})}stopRTMPAndRecording(){return S(this,null,function*(){yield this.sdk.stopRTMPAndRecording()})}startHLSStreaming(e){return S(this,null,function*(){yield this.sdk.startHLSStreaming(e)})}stopHLSStreaming(e){return S(this,null,function*(){yield this.sdk.stopHLSStreaming(e)})}sendHLSTimedMetadata(e){return S(this,null,function*(){yield this.sdk.sendHLSTimedMetadata(e)})}changeName(e){return S(this,null,function*(){yield this.sdk.changeName(e)})}changeMetadata(e){return S(this,null,function*(){typeof e!="string"&&(e=JSON.stringify(e)),yield this.sdk.changeMetadata(e)})}setRemoteTrackEnabled(e,t){return S(this,null,function*(){if(typeof e=="string"){let i=this.hmsSDKTracks[e];i&&kt(i)?yield this.sdk.changeTrackState(i,t):this.logPossibleInconsistency(`No remote track with ID ${e} found for change track state`)}else Array.isArray(e)&&e.forEach(i=>this.setRemoteTrackEnabled(i,t))})}setRemoteTracksEnabled(e){return S(this,null,function*(){let t={enabled:e.enabled,type:e.type,source:e.source};if(e.roles){let i=this.store.getState(K);t.roles=e.roles.map(o=>i[o])}yield this.sdk.changeMultiTrackState(t)})}setLogLevel(e){p.level=e,this.sdk.setLogLevel(e)}ignoreMessageTypes(e,t=!1){if(t)this.ignoredMessageTypes=e;else for(let i of e)this.ignoredMessageTypes.includes(i)||this.ignoredMessageTypes.push(i)}resetState(e="resetState"){this.isRoomJoinCalled=!1,this.hmsSDKTracks={},p.cleanUp(),this.setState(t=>{Object.assign(t,Z())},e)}sdkJoinWithListeners(e){return S(this,null,function*(){yield this.sdk.join(e,{onJoin:this.onJoin.bind(this),onRoomUpdate:this.onRoomUpdate.bind(this),onPeerUpdate:this.onPeerUpdate.bind(this),onTrackUpdate:this.onTrackUpdate.bind(this),onMessageReceived:this.onMessageReceived.bind(this),onError:this.onError.bind(this),onReconnected:this.onReconnected.bind(this),onReconnecting:this.onReconnecting.bind(this),onRoleChangeRequest:this.onRoleChangeRequest.bind(this),onRoleUpdate:this.onRoleUpdate.bind(this),onDeviceChange:this.onDeviceChange.bind(this),onChangeTrackStateRequest:this.onChangeTrackStateRequest.bind(this),onChangeMultiTrackStateRequest:this.onChangeMultiTrackStateRequest.bind(this),onRemovedFromRoom:this.onRemovedFromRoom.bind(this),onNetworkQuality:this.onNetworkQuality.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)}),this.sdk.addConnectionQualityListener({onConnectionQualityUpdate:this.onConnectionQualityUpdate.bind(this)})})}onRemovedFromRoom(e){var o;let t=this.store.getState(x((o=e.requestedBy)==null?void 0:o.peerId));this.hmsNotifications.sendLeaveRoom(W(_({},e),{requestedBy:t||void 0}));let i=e.roomEnded||!t?"roomEnded":"removedFromRoom";p.i(`resetting state after peer removed ${i}`,e),this.resetState(i)}onDeviceChange(e){let t=e.devices;if(!t)return;let i=this.store.getState(E);if(this.setState(o=>{w(o.devices.audioInput,t.audioInput)||(o.devices.audioInput=t.audioInput),w(o.devices.videoInput,t.videoInput)||(o.devices.videoInput=t.videoInput),w(o.devices.audioOutput,t.audioOutput)||(o.devices.audioOutput=t.audioOutput),this.hmsSDKPeers[i==null?void 0:i.id]&&Object.assign(o.settings,this.getMediaSettings(this.hmsSDKPeers[i==null?void 0:i.id]))},"deviceChange"),e.selection){let o=H.convertDeviceChangeUpdate(e);this.hmsNotifications.sendDeviceChange(o)}}sdkPreviewWithListeners(e){return S(this,null,function*(){yield this.sdk.preview(e,{onPreview:this.onPreview.bind(this),onError:this.onError.bind(this),onReconnected:this.onReconnected.bind(this),onReconnecting:this.onReconnecting.bind(this),onDeviceChange:this.onDeviceChange.bind(this),onRoomUpdate:this.onRoomUpdate.bind(this),onPeerUpdate:this.onPeerUpdate.bind(this),onNetworkQuality:this.onNetworkQuality.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})})}onNetworkQuality(e){this.setState(t=>{var o;let i=t.room.localPeer||((o=this.sdk.getLocalPeer())==null?void 0:o.peerId);i&&(t.connectionQualities[i]={peerID:i,downlinkQuality:e})},"ConnectionQuality")}startScreenShare(e){return S(this,null,function*(){this.store.getState(Me)?this.logPossibleInconsistency("start screenshare is called while it's on"):(yield this.sdk.startScreenShare(()=>this.syncRoomState("screenshareStopped"),e),this.syncRoomState("startScreenShare"))})}stopScreenShare(){return S(this,null,function*(){this.store.getState(Me)?(yield this.sdk.stopScreenShare(),this.syncRoomState("stopScreenShare")):this.logPossibleInconsistency("stop screenshare is called while it's not on")})}attachVideoInternal(e,t){return S(this,null,function*(){let i=this.hmsSDKTracks[e];i&&i.type==="video"?(i.addSink(t),this.updateVideoLayer(e,"attachVideo")):this.logPossibleInconsistency("no video track found to add sink")})}syncRoomState(e){e=`${e}_fullSync`,p.time(`store-sync-${e}`);let t={},i=[],o={},r={},n={},a=this.sdk.getPeers();for(let k of a){let O=H.convertPeer(k);t[O.id]=O,i.push(O.id),this.hmsSDKPeers[O.id]=k;let X=[k.audioTrack,k.videoTrack,...k.auxiliaryTracks];for(let Se of X){if(!Se)continue;let Ye=H.convertTrack(Se);o[Ye.id]=Ye,r[Se.trackId]=Se}O.isLocal&&Object.assign(n,this.getMediaSettings(k))}let u=this.sdk.getRecordingState(),R=this.sdk.getRTMPState(),j=this.sdk.getHLSState();this.setState(k=>{k.room.peers=i;let O=k.peers,X=k.tracks;tt(O,t),st(X,o),Object.assign(k.settings,n),this.hmsSDKTracks=r,Object.assign(k.roles,H.convertRoles(this.sdk.getRoles())),Object.assign(k.playlist,H.convertPlaylist(this.sdk.getPlaylistManager())),Object.assign(k.room,H.convertRecordingStreamingState(u,R,j))},e),p.timeEnd(`store-sync-${e}`)}onPreview(e){this.setState(t=>{Object.assign(t.room,H.convertRoom(e)),t.room.roomState=g.Preview},"previewStart"),this.syncRoomState("previewSync")}onJoin(e){let t=this.sdk.getPlaylistManager();this.audioPlaylist=new me(t,T.audio,this.syncPlaylistState.bind(this),this.store),this.videoPlaylist=new me(t,T.video,this.syncRoomState.bind(this),this.store),this.syncRoomState("joinSync"),this.setState(i=>{Object.assign(i.room,H.convertRoom(e)),i.room.isConnected=!0,i.room.roomState=g.Connected},"joined"),t.onProgress(this.setProgress),t.onNewTrackStart(i=>{this.syncPlaylistState(`${i.type}PlaylistUpdate`)}),t.onPlaylistEnded(i=>{this.syncPlaylistState(`${i}PlaylistEnded`)}),t.onCurrentTrackEnded(i=>{this.hmsNotifications.sendPlaylistTrackEnded(H.convertPlaylistItem(t,i)),this.syncPlaylistState(`${i.type}PlaylistItemEnded`)})}onRoomUpdate(e,t){this.setState(i=>{Object.assign(i.room,H.convertRoom(t))},e)}onPeerUpdate(e,t){if(![c.HMSPeerUpdate.BECAME_DOMINANT_SPEAKER,c.HMSPeerUpdate.RESIGNED_DOMINANT_SPEAKER].includes(e)){if(Array.isArray(t)){this.syncRoomState("peersJoined");let i=[];for(let o of t){let r=this.store.getState(x(o.peerId));r&&i.push(r)}this.hmsNotifications.sendPeerList(i);return}this.sendPeerUpdateNotification(e,t)}}onTrackUpdate(e,t,i){if(e===c.HMSTrackUpdate.TRACK_REMOVED)this.hmsNotifications.sendTrackUpdate(e,t.trackId),this.handleTrackRemove(t,i);else{let o=ge[e]||"trackUpdate";this.syncRoomState(o),this.hmsNotifications.sendTrackUpdate(e,t.trackId)}}onMessageReceived(e){let t=H.convertMessage(e);t.read=!1,t.ignored=this.ignoredMessageTypes.includes(t.type),this.putMessageInStore(t),this.hmsNotifications.sendMessageReceived(t)}putMessageInStore(e){e.ignored||this.setState(t=>{e.id=String(this.store.getState(Ne)+1),t.messages.byID[e.id]=e,t.messages.allIDs.push(e.id)},"newMessage")}onAudioLevelUpdate(e){this.setState(t=>{let i={};e.forEach(r=>{if(!r.track||!r.peer)return;let n=r.track.trackId;i[n]=r.audioLevel,t.speakers[n]||(t.speakers[n]={audioLevel:r.audioLevel,peerID:r.peer.peerId,trackID:n})});let o=Object.entries(t.speakers);for(let[r,n]of o)n.audioLevel=i[r]||0,n.audioLevel===0&&delete t.speakers[r]},"audioLevel")}onConnectionQualityUpdate(e){this.setState(t=>{let i=new Set;e.forEach(r=>{let n=r.peerID;!n||(i.add(n),t.connectionQualities[n]?Object.assign(t.connectionQualities[n],r):t.connectionQualities[n]=r)});let o=Object.keys(t.connectionQualities);for(let r of o)i.has(r)||delete t.connectionQualities[r]},"connectionQuality")}onChangeTrackStateRequest(e){var r;let t=this.store.getState(x((r=e.requestedBy)==null?void 0:r.peerId)),i=this.getStoreLocalTrackIDfromSDKTrack(e.track),o=this.store.getState(J(i));if(!o)return this.logPossibleInconsistency(`Not found track for which track state change was requested, ${e.track}`);e.enabled||this.syncRoomState("changeTrackStateRequest"),this.hmsNotifications.sendChangeTrackStateRequest({requestedBy:t||void 0,track:o,enabled:e.enabled})}onChangeMultiTrackStateRequest(e){var r;let t=this.store.getState(x((r=e.requestedBy)==null?void 0:r.peerId));e.enabled||this.syncRoomState("changeMultiTrackStateRequest");let i=[],o=this.store.getState(y);for(let n of e.tracks){let a=this.getStoreLocalTrackIDfromSDKTrack(n);a&&o[a]&&i.push(o[a])}this.hmsNotifications.sendChangeMultiTrackStateRequest({requestedBy:t||void 0,tracks:i,enabled:e.enabled,type:e.type,source:e.source})}onReconnected(){this.syncRoomState("reconnectedSync"),this.hmsNotifications.sendReconnected(),this.setState(e=>{e.room.roomState=e.room.isConnected?g.Connected:g.Preview},"reconnected")}onReconnecting(e){let t=H.convertException(e);p.e("Reconnection: received error from sdk",t),this.hmsNotifications.sendReconnecting(t),this.setState(i=>{i.room.roomState=g.Reconnecting,i.errors.push(t)},"reconnecting")}onError(e){let t=H.convertException(e);t.isTerminal?(this.leave().then(()=>p.e("error from SDK, left room.")),this.setState(i=>{i.room.roomState=g.Failed,i.errors.push(t)},"errorTerminal")):this.store.getState().errors.length<50&&this.setState(o=>{o.errors.push(t)},"error"),this.syncRoomState("errorSync"),this.hmsNotifications.sendError(t),p.e("received error from sdk",t instanceof G.HMSException?`${t}`:t)}updateVideoLayer(e,t){let i=this.hmsSDKTracks[e];if(i&&i instanceof G.HMSRemoteVideoTrack){let o=this.store.getState(J(e));((o==null?void 0:o.layer)!==i.getSimulcastLayer()||(o==null?void 0:o.degraded)!==i.degraded)&&this.setState(n=>{n.tracks[e].layer=i.getSimulcastLayer(),n.tracks[e].degraded=i.degraded},t)}}handleTrackRemove(e,t){this.setState(i=>{let o=i.peers[t.peerId],r=i.tracks,n=e.trackId;if(this.isSameStoreSDKTrack(n,o==null?void 0:o.audioTrack))o==null||delete o.audioTrack;else if(this.isSameStoreSDKTrack(n,o==null?void 0:o.videoTrack))o==null||delete o.videoTrack;else{let a=o==null?void 0:o.auxiliaryTracks.indexOf(n);a>-1&&this.isSameStoreSDKTrack(n,o==null?void 0:o.auxiliaryTracks[a])&&(o==null||o.auxiliaryTracks.splice(a,1))}delete r[n],delete this.hmsSDKTracks[n]},"trackRemoved")}setEnabledSDKTrack(e,t){return S(this,null,function*(){let i=this.hmsSDKTracks[e];i?yield i.setEnabled(t):this.logPossibleInconsistency(`track ${e} not present, unable to enabled/disable`)})}setSDKLocalVideoTrackSettings(e,t){return S(this,null,function*(){let i=this.hmsSDKTracks[e];i?yield i.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}setSDKLocalAudioTrackSettings(e,t){return S(this,null,function*(){let i=this.hmsSDKTracks[e];i?yield i.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}getMediaSettings(e){var r;let t=this.store.getState(be),i=e.audioTrack,o=e.videoTrack;return{audioInputDeviceId:(i==null?void 0:i.settings.deviceId)||t.audioInputDeviceId,videoInputDeviceId:(o==null?void 0:o.settings.deviceId)||t.videoInputDeviceId,audioOutputDeviceId:(r=this.sdk.getAudioOutput().getDevice())==null?void 0:r.deviceId}}setTrackVolume(e,t){let i=this.hmsSDKTracks[t];i?i instanceof G.HMSAudioTrack?(i.setVolume(e),this.setState(o=>{let r=o.tracks[t];r&&(r.volume=e)},"trackVolume")):p.w(`track ${t} is not an audio track`):this.logPossibleInconsistency(`track ${t} not present, unable to set volume`)}localAndVideoUnmuting(e){if(this.store.getState(E).videoTrack!==e)return!1;let i=this.store.getState(Ae),o=this.store.getState(ue);return i&&!o}logPossibleInconsistency(e){p.w("possible inconsistency detected - ",e)}addRemoveVideoPlugin(e,t,i){return S(this,null,function*(){if(!e){p.w("Invalid plugin received in store");return}let o=this.store.getState(N);if(o){let r=this.hmsSDKTracks[o];r?(t==="add"?yield r.addPlugin(e,i):t==="remove"&&(yield r.removePlugin(e)),this.syncRoomState(`${t}VideoPlugin`)):this.logPossibleInconsistency(`track ${o} not present, unable to remove plugin`)}})}addRemoveAudioPlugin(e,t){return S(this,null,function*(){if(!e){p.w("Invalid plugin received in store");return}let i=this.store.getState(A);if(i){let o=this.hmsSDKTracks[i];o?(t==="add"?yield o.addPlugin(e):t==="remove"&&(yield o.removePlugin(e)),this.syncRoomState(`${t}AudioPlugin`)):this.logPossibleInconsistency(`track ${i} not present, unable to remove plugin`)}})}isSameStoreSDKTrack(e,t){var i;return t?((i=this.hmsSDKTracks[t])==null?void 0:i.trackId)===e:!1}onRoleChangeRequest(e){this.setState(t=>{t.roleChangeRequests.length===0&&t.roleChangeRequests.push(H.convertRoleChangeRequest(e))},"roleChangeRequest")}removeRoleChangeRequest(e){this.setState(t=>{let i=t.roleChangeRequests.findIndex(o=>o.token===e.token);i!==-1&&t.roleChangeRequests.splice(i,1)},"removeRoleChangeRequest")}onRoleUpdate(){this.syncRoomState("roleUpdate")}getStoreLocalTrackIDfromSDKTrack(e){return this.store.getState(Ce).find(i=>this.hmsSDKTracks[i].trackId===e.trackId)}};var Rt=D(require("eventemitter2"));var Ge="hmsNotification",We=class{constructor(e){this.id=0;this.onNotification=(e,t)=>{let i=o=>{if(t){let r;if(Array.isArray(t)?r=t.includes(o.type):r=t===o.type,!r)return}e(o)};return this.eventEmitter.addListener(Ge,i),()=>{this.eventEmitter.removeListener(Ge,i)}};this.store=e,this.eventEmitter=new Rt.EventEmitter2}sendPlaylistTrackEnded(e){let t=this.createNotification(m.PLAYLIST_TRACK_ENDED,e,P.INFO);this.emitEvent(t)}sendDeviceChange(e){var i;let t=this.createNotification(m.DEVICE_CHANGE_UPDATE,e,e.error?P.ERROR:P.INFO,`Selected ${e.type} device - ${(i=e.selection)==null?void 0:i.label}`);this.emitEvent(t)}sendLeaveRoom(e){var o;let t=(o=e.requestedBy)==null?void 0:o.name,i=this.createNotification(e.roomEnded||!t?m.ROOM_ENDED:m.REMOVED_FROM_ROOM,e,P.INFO,`${e.roomEnded?"Room ended":"Removed from room"} ${t?`by ${t}`:""}`);this.emitEvent(i)}sendPeerList(e){let t=this.createNotification(m.PEER_LIST,e,P.INFO);this.emitEvent(t)}sendPeerUpdate(e,t){let i=this.store.getState(x(t==null?void 0:t.id))||t,o=He[e];if(o){let r=this.createNotification(o,i,P.INFO);this.emitEvent(r)}}sendTrackUpdate(e,t){let i=this.store.getState(J(t)),o=ge[e];if(o){let r=this.createNotification(o,i,P.INFO);this.emitEvent(r)}}sendMessageReceived(e){let t=this.createNotification(m.NEW_MESSAGE,e,P.INFO);this.emitEvent(t)}sendError(e){let t=this.createNotification(m.ERROR,e,P.ERROR);this.emitEvent(t)}sendReconnecting(e){let t=this.createNotification(m.RECONNECTING,e,P.ERROR);this.emitEvent(t)}sendReconnected(){let e=this.createNotification(m.RECONNECTED,null,P.INFO);this.emitEvent(e)}sendChangeTrackStateRequest(e){let t=this.createNotification(m.CHANGE_TRACK_STATE_REQUEST,e,P.INFO);this.emitEvent(t)}sendChangeMultiTrackStateRequest(e){let t=this.createNotification(m.CHANGE_MULTI_TRACK_STATE_REQUEST,e,P.INFO);this.emitEvent(t)}emitEvent(e){this.eventEmitter.emit(Ge,e)}createNotification(e,t,i,o=""){return this.id++,{id:this.id,type:e,message:o,data:t,severity:i}}};var Pt=D(require("@100mslive/hms-video")),he=s=>Pt.isBrowser?`${s} ${document.title}`:s;var Dt=(s,e,t)=>{let i;t.getState(b)===g.Connected&&(i=It(s,e,t)),t.subscribe(o=>{[g.Connected,g.Reconnecting].includes(o)?i||(i=It(s,e,t)):i&&(ci(e),i())},b)},It=(s,e,t)=>{var r,n;let i=ni(t,e);(r=s.getWebrtcInternals())==null||r.start();let o=(n=s.getWebrtcInternals())==null?void 0:n.onStatsChange(a=>ai(e,a,t));return()=>{i(),o&&o()}},ni=(s,e)=>{let t,i,o;return s.getState(q)?e.namedSetState(r=>{r.localPeer.id=s.getState(q)},"localpeer-id"):t=s.subscribe(r=>{r&&e.namedSetState(n=>{n.localPeer.id=r},"localpeer-id")},q),s.getState(N)?e.namedSetState(r=>{r.localPeer.videoTrack=s.getState(N)},"localpeer-videotrack-id"):i=s.subscribe(r=>{r&&e.namedSetState(n=>{n.localPeer.videoTrack=r},"localpeer-videotrack-id")},N),s.getState(A)?e.namedSetState(r=>{r.localPeer.videoTrack=s.getState(A)},"localpeer-audiotrack-id"):o=s.subscribe(r=>{r&&e.namedSetState(n=>{n.localPeer.videoTrack=r},"localpeer-audiotrack-id")},A),()=>{t==null||t(),i==null||i(),o==null||o()}},ai=(s,e,t)=>{let i=t.getState(y);s.namedSetState(o=>{let r={},n=Object.keys(i);for(let R of n){let j=e.getTrackStats(R);j&&(r[R]=j)}ke(o.trackStats,r);let u={[t.getState(q)]:e.getLocalPeerStats()};ke(o.peerStats,u)},"webrtc-stats")},ci=(s,e="resetState")=>{s.namedSetState(t=>{Object.assign(t,ee())},e)};var ae=class{constructor(e,t){this.hmsStore=e;this.sdk=t;this.store=L.createNewHMSStore(he("HMSStatsStore"),ee),this.getState=this.store.getState,this.subscribe=this.store.subscribe,this.getPublishPeerConnection=()=>new Promise(i=>{var o,r;this.hmsStore.getState(b)==="Connected"?i((r=(o=this.sdk)==null?void 0:o.getWebrtcInternals())==null?void 0:r.getPublishPeerConnection()):this.hmsStore.subscribe(n=>{var a,u;n==="Connected"&&i((u=(a=this.sdk)==null?void 0:a.getWebrtcInternals())==null?void 0:u.getPublishPeerConnection())},b)}),this.getSubscribePeerConnection=()=>new Promise(i=>{var o,r;this.hmsStore.getState(b)==="Connected"?i((r=(o=this.sdk)==null?void 0:o.getWebrtcInternals())==null?void 0:r.getSubscribePeerConnection()):this.hmsStore.subscribe(n=>{var a,u;n==="Connected"&&i((u=(a=this.sdk)==null?void 0:a.getWebrtcInternals())==null?void 0:u.getSubscribePeerConnection())},b)}),!!this.sdk&&Dt(this.sdk,this.store,this.hmsStore)}};var h=D(require("reselect"));var Si=s=>s.localPeer.id,li=s=>s.localPeer.audioTrack,di=s=>s.localPeer.videoTrack,ui=(s,e)=>e,Mi=(s,e)=>e,Qe=s=>s.trackStats,vt=s=>s.peerStats,B=(0,h.createSelector)([vt,Si],(s,e)=>s[e]),pi=(0,h.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.packetsLost}),Ti=(0,h.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.jitter}),mi=(0,h.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bitrate}),Hi=(0,h.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bitrate}),gi=(0,h.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.availableOutgoingBitrate}),hi=(0,h.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.availableIncomingBitrate}),yi=(0,h.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bytesSent}),fi=(0,h.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bytesReceived}),ki=(0,h.createSelector)([vt,ui],(s,e)=>e?s[e]:void 0),Y=(0,h.createSelector)([Qe,Mi],(s,e)=>e?s[e]:void 0),Ri=M(ki),Pi=M(Y),Di=M((0,h.createSelector)(Y,s=>s==null?void 0:s.bitrate)),Ii=M((0,h.createSelector)(Y,s=>s==null?void 0:s.bytesReceived)),vi=M((0,h.createSelector)(Y,s=>s==null?void 0:s.framesPerSecond)),Ei=M((0,h.createSelector)(Y,s=>s==null?void 0:s.jitter)),bi=M((0,h.createSelector)(Y,s=>s==null?void 0:s.packetsLost)),Je=(0,h.createSelector)([Qe,li],(s,e)=>e?s[e]:void 0),ce=(0,h.createSelector)([Qe,di],(s,e)=>e?s[e]:void 0),Ci=(0,h.createSelector)(Je,s=>s==null?void 0:s.bitrate),Ai=(0,h.createSelector)(ce,s=>s==null?void 0:s.bitrate),Ni=(0,h.createSelector)(Je,s=>s==null?void 0:s.bytesSent),xi=(0,h.createSelector)(ce,s=>s==null?void 0:s.bytesSent),Li=(0,h.createSelector)(ce,s=>s==null?void 0:s.framesPerSecond),Oi=(0,h.createSelector)(ce,s=>s==null?void 0:s.qualityLimitationReason),Et={localPeerStats:B,packetsLost:pi,jitter:Ti,publishBitrate:mi,subscribeBitrate:Hi,availablePublishBitrate:gi,availableSubscribeBitrate:hi,totalBytesSent:yi,totalBytesReceived:fi,peerStatsByID:Ri,trackStatsByID:Pi,bitrateByTrackID:Di,bytesReceivedByTrackID:Ii,framerateByTrackID:vi,jitterByTrackID:Ei,packetsLostByTrackID:bi,localAudioTrackStats:Je,localVideoTrackStats:ce,localAudioTrackBitrate:Ci,localVideoTrackBitrate:Ai,localAudioTrackBytesSent:Ni,localVideoTrackBytesSent:xi,localVideoTrackFramerate:Li,localVideoTrackQualityLimitationReason:Oi};var L=class{constructor(e,t,i){this.getStats=()=>(this.stats||(this.stats=new ae(this.store,this.sdk)),this.stats);e?this.store=e:this.store=L.createNewHMSStore(he("HMSStore"),Z),i?this.notifications=i:this.notifications=new We(this.store),t?this.actions=t:(this.sdk=new ye.HMSSdk,this.actions=new Fe(this.store,this.sdk,this.notifications)),this.initialTriggerOnSubscribe=!1,ye.isBrowser&&(window.__hms=this)}triggerOnSubscribe(){this.initialTriggerOnSubscribe||(L.makeStoreTriggerOnSubscribe(this.store),this.initialTriggerOnSubscribe=!0)}getStore(){return this.store}getHMSActions(){return this.actions}getActions(){return this.actions}getNotifications(){return{onNotification:this.notifications.onNotification}}static createNewHMSStore(e,t){let i=(0,Ct.default)(()=>t()),o=i.setState;i.setState=a=>{let u=typeof a=="function"?(0,bt.default)(a):a;o(u)};let r=i.getState;i.getState=a=>{if(a){let u=a.name||"byIDSelector";window.selectorsCount||(window.selectorsCount={}),window.selectorsCount[u]=(window.selectorsCount[u]||0)+1;let R=performance.now(),j=a(r()),k=performance.now()-R;return k>1&&(window.expensiveSelectors=window.expensiveSelectors||new Map,window.expensiveSelectors.set(u,k)),j}return r()},L.compareWithShallowCheckInSubscribe(i);let n=L.setUpDevtools(i,e);return W(_({},i),{namedSetState:n})}static makeStoreTriggerOnSubscribe(e){let t=e.subscribe;e.subscribe=(i,o,r)=>(i(e.getState(o),void 0),t(i,o,r))}static compareWithShallowCheckInSubscribe(e){let t=e.subscribe;e.subscribe=(i,o,r)=>(o||(o=n=>n),r=r||At.default,t(i,o,r))}static setUpDevtools(e,t){let i;try{i=window.__REDUX_DEVTOOLS_EXTENSION__||window.top.__REDUX_DEVTOOLS_EXTENSION__}catch(n){}if(!i)return n=>{e.setState(n)};let o=i.connect(L.devtoolsOptions(t));o.prefix=t?`${t} > `:"";let r=e.setState;return e.setState=n=>{r(n),o.send(`${o.prefix}setState`,e.getState())},o.subscribe(L.devtoolsSubscribe(o,e,r)),o.send("setUpStore",e.getState()),(n,a)=>{r(n);let u=a||`${o.prefix}action`;o.send(u,e.getState())}}static devtoolsOptions(e){return{name:e,actionsBlacklist:["audioLevel","playlistProgress","connectionQuality"]}}static devtoolsSubscribe(e,t,i){return o=>{var r,n,a,u;if(o.type==="DISPATCH"&&o.state)["JUMP_TO_ACTION","JUMP_TO_STATE"].includes(o.payload.type)?i(JSON.parse(o.state)):t.setState(JSON.parse(o.state));else if(o.type==="DISPATCH"&&((r=o.payload)==null?void 0:r.type)==="COMMIT")e.init(t.getState());else if(o.type==="DISPATCH"&&((n=o.payload)==null?void 0:n.type)==="IMPORT_STATE"){let R=(a=o.payload.nextLiftedState)==null?void 0:a.actionsById;(((u=o.payload.nextLiftedState)==null?void 0:u.computedStates)||[]).forEach(({state:k},O)=>{let X=R[O]||`${e.prefix}setState`;O===0?e.init(k):(i(k),e.send(X,t.getState()))})}}}};
|
|
1
|
+
var Lt=Object.create;var X=Object.defineProperty,Ot=Object.defineProperties,_t=Object.getOwnPropertyDescriptor,wt=Object.getOwnPropertyDescriptors,Ut=Object.getOwnPropertyNames,Ze=Object.getOwnPropertySymbols,Vt=Object.getPrototypeOf,et=Object.prototype.hasOwnProperty,Kt=Object.prototype.propertyIsEnumerable;var tt=(s,e,t)=>e in s?X(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,_=(s,e)=>{for(var t in e||(e={}))et.call(e,t)&&tt(s,t,e[t]);if(Ze)for(var t of Ze(e))Kt.call(e,t)&&tt(s,t,e[t]);return s},W=(s,e)=>Ot(s,wt(e)),st=s=>X(s,"__esModule",{value:!0});var Bt=(s,e)=>{st(s);for(var t in e)X(s,t,{get:e[t],enumerable:!0})},qt=(s,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ut(e))!et.call(s,i)&&i!=="default"&&X(s,i,{get:()=>e[i],enumerable:!(t=_t(e,i))||t.enumerable});return s},D=s=>qt(st(X(s!=null?Lt(Vt(s)):{},"default",s&&s.__esModule&&"default"in s?{get:()=>s.default,enumerable:!0}:{value:s,enumerable:!0})),s);var S=(s,e,t)=>new Promise((i,o)=>{var r=M=>{try{n(t.next(M))}catch(R){o(R)}},a=M=>{try{n(t.throw(M))}catch(R){o(R)}},n=M=>M.done?i(M.value):Promise.resolve(M.value).then(r,a);n((t=t.apply(s,e)).next())});Bt(exports,{HMSAudioPluginType:()=>c.HMSAudioPluginType,HMSLogLevel:()=>c.HMSLogLevel,HMSMessageType:()=>ke,HMSNotificationSeverity:()=>P,HMSNotificationTypes:()=>m,HMSPlaylistType:()=>T,HMSReactiveStore:()=>L,HMSRoomState:()=>y,HMSStats:()=>ce,HMSVideoPluginCanvasContextType:()=>c.HMSVideoPluginCanvasContextType,HMSVideoPluginType:()=>c.HMSVideoPluginType,createDefaultStatsStore:()=>Z,createDefaultStoreState:()=>z,parsedUserAgent:()=>c.parsedUserAgent,selectAppData:()=>Rs,selectAppDataByPath:()=>Ps,selectAudioPlaylist:()=>Ue,selectAudioPlaylistTrackByPeerID:()=>Us,selectAudioTrackByID:()=>Is,selectAudioTrackByPeerID:()=>ht,selectAudioTrackVolume:()=>Ge,selectAudioVolumeByPeerID:()=>$s,selectAuxiliaryAudioByPeerID:()=>Os,selectAuxiliaryTracksByPeerID:()=>Cs,selectAvailableRoleNames:()=>ls,selectBroadcastMessages:()=>Rt,selectBroadcastMessagesUnreadCount:()=>Js,selectCameraStreamByPeerID:()=>bs,selectConnectionQualities:()=>Wt,selectConnectionQualityByPeerID:()=>Ls,selectDegradedTracks:()=>ns,selectDevices:()=>Gt,selectDidIJoinWithin:()=>pi,selectDominantSpeaker:()=>es,selectFullAppData:()=>ue,selectHLSState:()=>ps,selectHMSMessages:()=>ie,selectHMSMessagesCount:()=>xe,selectHMSStats:()=>Ct,selectIsAllowedToPublish:()=>ai,selectIsAllowedToSubscribe:()=>ds,selectIsAudioLocallyMuted:()=>Fe,selectIsConnectedToRoom:()=>ct,selectIsInPreview:()=>Ss,selectIsLocalAudioEnabled:()=>ts,selectIsLocalAudioPluginPresent:()=>di,selectIsLocalScreenShared:()=>pe,selectIsLocalVideoDisplayEnabled:()=>Ne,selectIsLocalVideoEnabled:()=>Me,selectIsLocalVideoPluginPresent:()=>li,selectIsLocallyMutedByPeerID:()=>qs,selectIsPeerAudioEnabled:()=>Ks,selectIsPeerVideoEnabled:()=>Bs,selectIsScreenShareLocallyMutedByPeerID:()=>js,selectIsSomeoneScreenSharing:()=>ss,selectLocalAudioTrackID:()=>A,selectLocalMediaSettings:()=>Ce,selectLocalPeer:()=>E,selectLocalPeerID:()=>q,selectLocalPeerName:()=>Yt,selectLocalPeerRole:()=>oe,selectLocalPeerRoleName:()=>Xt,selectLocalTrackIDs:()=>Ae,selectLocalVideoTrackID:()=>N,selectMessageIDsInOrder:()=>be,selectMessagesByPeerID:()=>Ys,selectMessagesByRole:()=>Xs,selectMessagesMap:()=>Ee,selectMessagesUnreadCountByPeerID:()=>Zs,selectMessagesUnreadCountByRole:()=>zs,selectPeerAudioByID:()=>xs,selectPeerByCondition:()=>ui,selectPeerByID:()=>x,selectPeerCount:()=>Qt,selectPeerMetadata:()=>ti,selectPeerName:()=>si,selectPeerNameByID:()=>Ds,selectPeerScreenSharing:()=>St,selectPeerSharingAudio:()=>is,selectPeerSharingAudioPlaylist:()=>as,selectPeerSharingVideoPlaylist:()=>rs,selectPeers:()=>F,selectPeersByCondition:()=>Mi,selectPeersByRole:()=>ei,selectPeersMap:()=>v,selectPeersScreenSharing:()=>os,selectPeersWithAudioStatus:()=>ii,selectPermissions:()=>Oe,selectRTMPState:()=>Ms,selectRecordingState:()=>us,selectRemotePeers:()=>Zt,selectRoleByRoleName:()=>ni,selectRoleChangeRequest:()=>ri,selectRolesMap:()=>V,selectRoom:()=>I,selectRoomID:()=>Ft,selectRoomStartTime:()=>ms,selectRoomStarted:()=>Le,selectRoomState:()=>b,selectScreenAudioTrackByID:()=>vs,selectScreenShareAudioByPeerID:()=>$e,selectScreenShareByPeerID:()=>Vs,selectScreenSharesByPeerId:()=>je,selectScreenVideoTrackByID:()=>Es,selectScreenshareAudioVolumeByPeerID:()=>Fs,selectSessionId:()=>Ts,selectSessionMetadata:()=>Hs,selectSimulcastLayerByTrack:()=>Gs,selectSpeakers:()=>nt,selectTrackAudioByID:()=>As,selectTrackByID:()=>ne,selectTracksMap:()=>H,selectUnreadHMSMessagesCount:()=>cs,selectVideoPlaylist:()=>Ve,selectVideoPlaylistAudioTrackByPeerID:()=>ws,selectVideoPlaylistVideoTrackByPeerID:()=>_s,selectVideoTrackByID:()=>qe,selectVideoTrackByPeerID:()=>gt});var At=D(require("immer")),Nt=D(require("zustand/vanilla")),xt=D(require("zustand/shallow")),fe=D(require("@100mslive/hms-video"));var y;(function(n){n.Disconnected="Disconnected",n.Preview="Preview",n.Connecting="Connecting",n.Connected="Connected",n.Reconnecting="Reconnecting",n.Disconnecting="Disconnecting",n.Failed="Failed"})(y||(y={}));var z=()=>({room:{id:"",isConnected:!1,name:"",peers:[],shareableLink:"",localPeer:"",hasWaitingRoom:!1,roomState:y.Disconnected,recording:{browser:{running:!1},server:{running:!1},hls:{running:!1}},rtmp:{running:!1},hls:{running:!1,variants:[]},sessionId:""},peers:{},tracks:{},playlist:{audio:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1},video:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1}},messages:{byID:{},allIDs:[]},speakers:{},connectionQualities:{},settings:{audioInputDeviceId:"",audioOutputDeviceId:"",videoInputDeviceId:""},devices:{audioInput:[],audioOutput:[],videoInput:[]},roles:{},roleChangeRequests:[],errors:[]}),Z=()=>({peerStats:{},trackStats:{},localPeer:{id:""}});var ke;(function(e){e.CHAT="chat"})(ke||(ke={}));var P;(function(t){t.INFO="info",t.ERROR="error"})(P||(P={}));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.TRACK_DESCRIPTION_CHANGED="TRACK_DESCRIPTION_CHANGED",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 T;(function(t){t.audio="audio",t.video="video"})(T||(T={}));var c=D(require("@100mslive/hms-video"));var U=D(require("@100mslive/hms-video"));var it=(s,e)=>{let t=ve(Object.keys(s),Object.keys(e));for(let i of t){let o=s[i],r=e[i];Pe(o,r)?(w(o.auxiliaryTracks,r.auxiliaryTracks)&&(r.auxiliaryTracks=o.auxiliaryTracks),Object.assign(o,r)):De(o,r)?delete s[i]:Ie(o,r)&&(s[i]=r)}},ot=(s,e)=>{let t=ve(Object.keys(s),Object.keys(e));for(let i of t){let o=s[i],r=e[i];Pe(o,r)?(jt(o,r),Object.assign(o,r)):De(o,r)?delete s[i]:Ie(o,r)&&(s[i]=r)}},Re=(s,e)=>{let t=ve(Object.keys(s),Object.keys(e));for(let i of t){let o=s[i],r=e[i];Pe(o,r)?Object.assign(o,r):De(o,r)?delete s[i]:Ie(o,r)&&(s[i]=r)}},jt=(s,e)=>{s.plugins&&w(s.plugins,e.plugins)&&(e.plugins=s.plugins),s.type==="video"&&s.layerDefinitions&&w(s.layerDefinitions,e.layerDefinitions)&&(e.layerDefinitions=s.layerDefinitions)},Pe=(s,e)=>s&&e,De=(s,e)=>s&&!e,Ie=(s,e)=>!s&&e,w=(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},ve=(s,e)=>{let t=new Set;for(let i of s)t.add(i);for(let i of e)t.add(i);return Array.from(t)};var h=class{static convertPeer(e){var t,i,o;return{id:e.peerId,name:e.name,roleName:(t=e.role)==null?void 0:t.name,isLocal:e.isLocal,videoTrack:(i=e.videoTrack)==null?void 0:i.trackId,audioTrack:(o=e.audioTrack)==null?void 0:o.trackId,auxiliaryTracks:e.auxiliaryTracks.map(r=>r.trackId),customerUserId:e.customerUserId,customerDescription:e.metadata,metadata:e.metadata,joinedAt:e.joinedAt}}static convertTrack(e,t){let i={id:e.trackId,source:e.source,type:e.type,enabled:e.enabled,displayEnabled:e.enabled,peerId:e.peerId||t};return this.enrichTrack(i,e),i}static enrichTrack(e,t){let i=t.getMediaTrackSettings();t instanceof U.HMSRemoteAudioTrack&&(e.volume=t.getVolume()||0),h.updateDeviceID(e,t),e.type==="video"&&(e.source==="screen"?e.displaySurface=i.displaySurface:e.source==="regular"&&(e.facingMode=i.facingMode),e.height=i.height,e.width=i.width,h.enrichVideoTrack(e,t)),h.enrichPluginsDetails(e,t)}static updateDeviceID(e,t){var i;t instanceof U.HMSLocalVideoTrack||t instanceof U.HMSLocalAudioTrack?e.deviceID=t.settings.deviceId:e.deviceID=(i=t.getMediaTrackSettings())==null?void 0:i.deviceId}static enrichVideoTrack(e,t){t instanceof U.HMSRemoteVideoTrack&&(e.layer=t.getSimulcastLayer(),e.degraded=t.degraded,w(t.getSimulcastDefinitions(),e.layerDefinitions)||(e.layerDefinitions=t.getSimulcastDefinitions()))}static enrichPluginsDetails(e,t){(t instanceof U.HMSLocalVideoTrack||t instanceof U.HMSLocalAudioTrack)&&(w(t.getPlugins(),e.plugins)||(e.plugins=t.getPlugins()))}static convertRoom(e){var r,a;let{recording:t,rtmp:i,hls:o}=h.convertRecordingStreamingState(e==null?void 0:e.recording,e==null?void 0:e.rtmp,e==null?void 0:e.hls);return{id:e.id,name:e.name,localPeer:(a=(r=e.localPeer)==null?void 0:r.peerId)!=null?a:"",hasWaitingRoom:e.hasWaitingRoom,shareableLink:e.shareableLink,recording:t,rtmp:i,hls:o,sessionId:e.sessionId,startedAt:e.startedAt,joinedAt:e.joinedAt,peerCount:e.peerCount}}static convertMessage(e){var t,i,o,r,a,n,M;return{sender:(t=e.sender)==null?void 0:t.peerId,senderName:(i=e.sender)==null?void 0:i.name,senderRole:(r=(o=e.sender)==null?void 0:o.role)==null?void 0:r.name,senderUserId:(a=e.sender)==null?void 0:a.customerUserId,recipientPeer:(n=e.recipientPeer)==null?void 0:n.peerId,recipientRoles:(M=e.recipientRoles)==null?void 0:M.map(R=>R.name),time:e.time,type:e.type,message:e.message}}static convertRoles(e){let t={};return e&&e.forEach(i=>{t[i.name]=i}),t}static convertRoleChangeRequest(e){var t;return{requestedBy:(t=e.requestedBy)==null?void 0:t.peerId,roleName:e.role.name,token:e.token}}static convertException(e){return{code:e.code,action:e.action,name:e.name,message:e.message,description:e.description,isTerminal:e.isTerminal,nativeError:e.nativeError,timestamp:new Date}}static convertDeviceChangeUpdate(e){let t={devices:e.devices,selection:e.selection,type:e.type};return e.error&&(t.error=this.convertException(e.error)),t}static convertPlaylist(e){let t=this.getConvertedPlaylistType(e,T.audio),i=this.getConvertedPlaylistType(e,T.video);return{audio:t,video:i}}static convertPlaylistItem(e,t){let i=t.type,o=e.getCurrentSelection(i),r=e.isPlaying(i),a=t.url===(o==null?void 0:o.url);return W(_({},t),{type:t.type,selected:a,playing:a&&r})}static getConvertedPlaylistType(e,t){let i={},o=e.getCurrentSelection(t),r=e.getCurrentProgress(t),a=e.getVolume(t),n=e.getList(t),M=e.getCurrentIndex(t);return e.getList(t).forEach(R=>{i[R.id]=h.convertPlaylistItem(e,R)}),{list:i,selection:{id:o==null?void 0:o.id,hasPrevious:M>0,hasNext:M<n.length-1},progress:r,volume:a,currentTime:e.getCurrentTime(t),playbackRate:e.getPlaybackRate(t)}}static convertRecordingStreamingState(e,t,i){var o;return{recording:{browser:_({running:!1},e==null?void 0:e.browser),server:_({running:!1},e==null?void 0:e.server),hls:_({running:!1},e==null?void 0:e.hls)},rtmp:_({running:!1},t),hls:{variants:((o=i==null?void 0:i.variants)==null?void 0:o.map(r=>r))||[],running:!!(i==null?void 0:i.running),error:i==null?void 0:i.error}}}};var u=D(require("reselect"));function $(s,e,t=$t){let i,o;if(e)for(let r of e.auxiliaryTracks){let a=s[r];t(a)&&(o=ee(a)?a:o,i=te(a)?a:i)}return{video:i,audio:o}}function ee(s){return s&&s.type==="audio"}function te(s){return s&&s.type==="video"}function $t(s){return s&&s.source==="screen"}function de(s){return s&&s.source==="audioplaylist"}function se(s){return s&&s.source==="videoplaylist"}function rt(s){return s?Boolean(s==null?void 0:s.degraded):!1}function Q(s,e){return e&&s.tracks[e]?s.tracks[e].enabled:!1}function at(s,e){return e&&s.tracks[e]?s.tracks[e].displayEnabled:!1}var I=s=>s.room,Ft=(0,u.createSelector)(I,s=>s.id),v=s=>s.peers,Ee=s=>s.messages.byID,be=s=>s.messages.allIDs,H=s=>s.tracks,Ce=s=>s.settings,ue=s=>s.appData,Gt=s=>s.devices,nt=s=>s.speakers,Wt=s=>s.connectionQualities,ct=(0,u.createSelector)([I],s=>s&&s.isConnected),Qt=(0,u.createSelector)([ct,I],(s,e)=>s?e.peerCount!==void 0?e.peerCount||1:e.peers.length:Math.max(e.peerCount!==void 0?e.peerCount:e.peers.length-1,0)),F=(0,u.createSelector)([I,v],(s,e)=>s.peers.map(t=>e[t])),Jt=(0,u.createSelector)(H,s=>Object.values(s)),E=(0,u.createSelector)(I,v,(s,e)=>e[s.localPeer]),q=(0,u.createSelector)(I,s=>s.localPeer),Yt=(0,u.createSelector)(E,s=>s==null?void 0:s.name),Xt=(0,u.createSelector)(E,s=>s==null?void 0:s.roleName),A=(0,u.createSelector)(E,s=>s==null?void 0:s.audioTrack),N=(0,u.createSelector)(E,s=>s==null?void 0:s.videoTrack),zt=(0,u.createSelector)(E,s=>s==null?void 0:s.auxiliaryTracks),Ae=(0,u.createSelector)([A,N,zt],(s,e,t)=>{let i=[...t];return s&&i.unshift(s),e&&i.unshift(e),i}),Zt=(0,u.createSelector)(F,s=>s.filter(e=>!e.isLocal)),es=(0,u.createSelector)(v,nt,(s,e)=>{let t=Object.entries(e).sort((i,o)=>{var n,M;let r=((n=i[1])==null?void 0:n.audioLevel)||0;return(((M=o[1])==null?void 0:M.audioLevel)||0)>r?1:-1});if(t.length>0&&t[0][1].audioLevel&&t[0][1].audioLevel>0){let i=t[0][1].peerID;if(i in s)return s[i]}return null}),ts=s=>{let e=E(s);return Q(s,e==null?void 0:e.audioTrack)},Me=s=>{let e=E(s);return Q(s,e==null?void 0:e.videoTrack)},Ne=s=>{let e=E(s);return at(s,e==null?void 0:e.videoTrack)},pe=(0,u.createSelector)(E,H,(s,e)=>{let{video:t,audio:i}=$(e,s);return!!(t||i)}),St=(0,u.createSelector)(v,H,(s,e)=>{let t;for(let i in s){let o=s[i],{video:r,audio:a}=$(e,o);if(r)return o;a&&!t&&(t=o)}return t}),ss=(0,u.createSelector)(St,s=>!!s),is=(0,u.createSelector)(v,H,(s,e)=>{for(let t in s){let i=s[t],{audio:o,video:r}=$(e,i);if(!r&&!!o)return i}}),os=(0,u.createSelector)(v,H,(s,e)=>{let t=[],i=[];for(let o in s){let r=s[o],{video:a,audio:n}=$(e,r);a?t.push(r):n&&i.push(r)}return t.concat(i)}),rs=(0,u.createSelector)(v,H,(s,e)=>{for(let t in e){let i=e[t];if(se(i)&&te(i)&&i.peerId)return s[i.peerId]}}),as=(0,u.createSelector)(v,H,(s,e)=>{for(let t in e){let i=e[t];if(de(i)&&i.peerId)return s[i.peerId]}}),ns=(0,u.createSelector)(Jt,s=>s.filter(rt)),xe=(0,u.createSelector)(be,s=>s.length),cs=(0,u.createSelector)(Ee,s=>Object.values(s).filter(e=>!e.read).length),ie=(0,u.createSelector)(be,Ee,(s,e)=>{let t=[];return s.forEach(i=>{t.push(e[i])}),t}),b=(0,u.createSelector)([I],s=>s&&s.roomState),Ss=(0,u.createSelector)(b,s=>s===y.Preview),Le=(0,u.createSelector)(I,s=>s.roomState!==y.Disconnected),V=s=>s.roles,ls=(0,u.createSelector)([V],s=>Object.keys(s)),oe=(0,u.createSelector)([E,V],(s,e)=>(s==null?void 0:s.roleName)?e[s.roleName]:null),ds=(0,u.createSelector)([oe],s=>{var e;return((e=s==null?void 0:s.subscribeParams)==null?void 0:e.subscribeToRoles)?s.subscribeParams.subscribeToRoles.length>0:!1}),Oe=(0,u.createSelector)(oe,s=>s==null?void 0:s.permissions),us=(0,u.createSelector)(I,s=>s.recording),Ms=(0,u.createSelector)(I,s=>s.rtmp),ps=(0,u.createSelector)(I,s=>s.hls),Ts=(0,u.createSelector)(I,s=>s.sessionId),ms=(0,u.createSelector)(I,s=>s.startedAt),Hs=s=>s.sessionMetadata;var _e=D(require("reselect"));var lt=(s=T.audio)=>e=>e.playlist[s].list,we=(s=T.audio)=>e=>e.playlist[s].selection,dt=(s=T.audio)=>e=>e.playlist[s].progress,ut=(s=T.audio)=>e=>e.playlist[s].currentTime,Mt=(s=T.audio)=>e=>e.playlist[s].playbackRate,pt=(s=T.audio)=>e=>e.playlist[s].volume,Tt=(s=T.audio)=>(0,_e.createSelector)(lt(s),e=>Object.values(e)),mt=(s=T.audio)=>(0,_e.createSelector)(lt(s),we(s),(e,t)=>{if(!!t.id)return e[t.id]}),Ue={selection:we(T.audio),progress:dt(T.audio),currentTime:ut(T.audio),playbackRate:Mt(T.audio),volume:pt(T.audio),list:Tt(T.audio),selectedItem:mt(T.audio)},Ve={selection:we(T.video),progress:dt(T.video),currentTime:ut(T.video),playbackRate:Mt(T.video),volume:pt(T.video),list:Tt(T.video),selectedItem:mt(T.video)};var g=D(require("reselect"));function d(s){return e=>t=>s(t,e)}var re="HMS-Store:",p=class{static v(e,...t){this.log(c.HMSLogLevel.VERBOSE,e,...t)}static d(...e){this.log(c.HMSLogLevel.DEBUG,...e)}static i(...e){this.log(c.HMSLogLevel.INFO,...e)}static w(...e){this.log(c.HMSLogLevel.WARN,...e)}static e(...e){this.log(c.HMSLogLevel.ERROR,...e)}static time(e){this.log(c.HMSLogLevel.TIME,"[HMSPerformanceTiming]",e)}static timeEnd(e){this.log(c.HMSLogLevel.TIMEEND,"[HMSPerformanceTiming]",e,e)}static cleanUp(){performance.clearMarks(),performance.clearMeasures()}static log(e,...t){if(!(this.level.valueOf()>e.valueOf()))switch(e){case c.HMSLogLevel.VERBOSE:{console.log(re,...t);break}case c.HMSLogLevel.DEBUG:{console.debug(re,...t);break}case c.HMSLogLevel.INFO:{console.info(re,...t);break}case c.HMSLogLevel.WARN:{console.warn(re,...t);break}case c.HMSLogLevel.ERROR:{console.error(re,...t);break}case c.HMSLogLevel.TIME:{performance.mark(t[1]);break}case c.HMSLogLevel.TIMEEND:{let i=t[0],o=t[1];try{let r=performance.measure(o,o);this.log(c.HMSLogLevel.DEBUG,i,o,r==null?void 0:r.duration),performance.clearMarks(o),performance.clearMeasures(o)}catch(r){this.log(c.HMSLogLevel.DEBUG,i,o,r)}break}}}};p.level=c.HMSLogLevel.VERBOSE;var Ke=(s,e)=>e,ae=(s,e)=>e,Ht=(s,e)=>e,gs=(s,e)=>e,C=(0,g.createSelector)([v,Ke],(s,e)=>e?s[e]:null),Be=(0,g.createSelector)([H,ae],(s,e)=>e?s[e]:null),hs=(0,g.createSelector)([H,ae],(s,e)=>{if(!e)return null;let t=s[e];return t.type==="video"?t:null}),ys=(0,g.createSelector)([H,ae],(s,e)=>{if(!e)return null;let t=s[e];return t.type==="audio"?t:null}),fs=(0,g.createSelector)([H,ae],(s,e)=>{if(!e)return null;let t=s[e];return t.type==="audio"&&t.source==="screen"?t:null}),ks=(0,g.createSelector)([H,ae],(s,e)=>{if(!e)return null;let t=s[e];return t.type==="video"&&t.source==="screen"?t:null}),x=d(C),Rs=d((0,g.createSelector)([ue,gs],(s,e)=>{if(!!s)return e?s[e]:s})),Ps=(...s)=>(0,g.createSelector)([ue],e=>{if(!!e){if(s&&s.length>0){let t=e;for(let i of s){if(!i)return t;t=t==null?void 0:t[i]}return t}return e}}),Ds=d((0,g.createSelector)(C,s=>s==null?void 0:s.name)),ne=d(Be),qe=d(hs),Is=d(ys),vs=d(fs),Es=d(ks),gt=d((s,e)=>{let t=C(s,e);if(t&&t.videoTrack&&t.videoTrack!=="")return s.tracks[t.videoTrack]}),ht=d((s,e)=>{let t=C(s,e);if(t&&t.audioTrack&&t.audioTrack!=="")return s.tracks[t.audioTrack]}),bs=gt,Cs=d((s,e)=>{let t=C(s,e);return(t==null?void 0:t.auxiliaryTracks.map(i=>s.tracks[i]))||[]}),yt=(s,e)=>e?s.speakers[e]:null,As=d((0,g.createSelector)(yt,s=>(s==null?void 0:s.audioLevel)||0)),Ns=(s,e)=>{let t=ht(e)(s);return yt(s,t==null?void 0:t.id)},xs=d((0,g.createSelector)(Ns,s=>(s==null?void 0:s.audioLevel)||0)),Ls=d((s,e)=>{if(e)return s.connectionQualities[e]}),Os=d((s,e)=>{let t=C(s,e);if(t){let i=t==null?void 0:t.auxiliaryTracks.find(o=>ee(s.tracks[o]));return i?s.tracks[i]:void 0}}),_s=d((0,g.createSelector)(H,C,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(i=>{let o=s[i];return se(o)&&te(o)});return t?s[t]:void 0})),ws=d((0,g.createSelector)(H,C,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(i=>{let o=s[i];return se(o)&&ee(o)});return t?s[t]:void 0})),Us=d((0,g.createSelector)(H,C,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(i=>{let o=s[i];return de(o)&&ee(o)});return t?s[t]:void 0})),je=d((0,g.createSelector)(H,C,(s,e)=>$(s,e))),Vs=s=>(0,g.createSelector)(je(s),e=>e.video),$e=s=>(0,g.createSelector)(je(s),e=>e.audio),Ks=d((s,e)=>{let t=C(s,e);return Q(s,t==null?void 0:t.audioTrack)}),Bs=d((s,e)=>{let t=C(s,e);return Q(s,t==null?void 0:t.videoTrack)}),Fe=d((s,e)=>{if(e&&s.tracks[e])return s.tracks[e].volume===0}),qs=d((s,e)=>{let t=C(s,e);return Fe(t==null?void 0:t.audioTrack)(s)}),js=d((s,e)=>{let t=$e(e)(s);return Fe(t==null?void 0:t.id)(s)}),Ge=d((s,e)=>{let t=Be(s,e);if(t){if(t.type!=="audio"){p.w("Please pass audio track here");return}return t.volume}}),$s=d((s,e)=>{let t=C(s,e);return Ge(t==null?void 0:t.audioTrack)(s)}),Fs=d((s,e)=>{let t=$e(e)(s);return Ge(t==null?void 0:t.id)(s)}),Gs=d((s,e)=>{let t=Be(s,e);if(t){if(t.type!=="video"){p.w("Please pass video track here");return}return t.layer}}),ft=(0,g.createSelector)([ie,q,Ke],(s,e,t)=>{if(!!t)return s.filter(i=>{var o;return!i.recipientPeer&&!((o=i.recipientRoles)==null?void 0:o.length)||i.sender&&![e,t].includes(i.sender)?!1:[e,t].includes(i.recipientPeer)})}),kt=(0,g.createSelector)([ie,Ht],(s,e)=>{if(!!e)return s.filter(t=>{var i,o;return((i=t.recipientRoles)==null?void 0:i.length)?(o=t.recipientRoles)==null?void 0:o.includes(e):!1})}),Rt=(0,g.createSelector)(ie,s=>s.filter(e=>{var t;return!e.recipientPeer&&!((t=e.recipientRoles)==null?void 0:t.length)})),Ws=(0,g.createSelector)([kt,Ht],s=>s?s.filter(e=>!e.read).length:0),Qs=(0,g.createSelector)([ft,Ke],s=>s?s.filter(e=>!e.read).length:0),Js=(0,g.createSelector)(Rt,s=>s.filter(e=>!e.read).length),Ys=d(ft),Xs=d(kt),zs=d(Ws),Zs=d(Qs),ei=s=>(0,g.createSelector)([F],e=>e.filter(t=>t.roleName===s)),ti=s=>(0,g.createSelector)(x(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),{}}}),si=s=>(0,g.createSelector)(x(s),e=>e==null?void 0:e.name);var Te=D(require("reselect")),ii=(0,Te.createSelector)([v,H],(s,e)=>Object.values(s).map(i=>{var o;return{peer:i,isAudioEnabled:i.audioTrack?(o=e[i.audioTrack])==null?void 0:o.enabled:!1}})),oi=s=>s.roleChangeRequests[0]||null,ri=(0,Te.createSelector)([oi,v,V],(s,e,t)=>s?{requestedBy:s.requestedBy?e[s.requestedBy]:void 0,role:t[s.roleName],token:s.token}:null),ai=(0,Te.createSelector)([oe],s=>{var o;let e=!1,t=!1,i=!1;return((o=s==null?void 0:s.publishParams)==null?void 0:o.allowed)&&(e=s.publishParams.allowed.includes("video"),t=s.publishParams.allowed.includes("audio"),i=s.publishParams.allowed.includes("screen")),{video:e,audio:t,screen:i}});var K=D(require("reselect"));var ni=s=>(0,K.createSelector)([V],e=>e[s]),ci=(0,K.createSelector)([N,H],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),Si=(0,K.createSelector)([A,H],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),li=s=>(0,K.createSelector)([ci],e=>e.includes(s)),di=s=>(0,K.createSelector)([Si],e=>e.includes(s)),ui=s=>(0,K.createSelector)(F,e=>e.find(s)),Mi=s=>(0,K.createSelector)(F,e=>e.filter(s)),pi=s=>(0,K.createSelector)(I,e=>e.joinedAt&&Date.now()-e.joinedAt.getTime()<=s);var G=D(require("@100mslive/hms-video"));var me=D(require("@100mslive/hms-video"));function Pt(s){return s instanceof me.HMSRemoteAudioTrack||s instanceof me.HMSRemoteVideoTrack}var He=class{constructor(e,t,i,o){this.playlistManager=e;this.syncPlaylistState=i;this.store=o;this.type=t}play(e){return S(this,null,function*(){if(!e){p.w("Please pass id to play");return}yield this.playlistManager.setEnabled(!0,{id:e,type:this.type})})}pause(){return S(this,null,function*(){let e=this.type===T.audio?Ue:Ve,t=this.store.getState(e.selection);if(!t.id){p.w("No item is currently playing to pause");return}yield this.playlistManager.setEnabled(!1,{id:t.id,type:this.type})})}playNext(){return S(this,null,function*(){yield this.playlistManager.playNext(this.type)})}playPrevious(){return S(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 S(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`)}removeItem(e){return S(this,null,function*(){let t=yield this.playlistManager.removeItem(e,this.type);return t&&this.syncPlaylistState(`remove${this.type}PlaylistItem`),t})}clearList(){return S(this,null,function*(){yield this.playlistManager.clearList(this.type),this.syncPlaylistState(`clear${this.type}Playlist`)})}};var ge={[c.HMSPeerUpdate.PEER_JOINED]:m.PEER_JOINED,[c.HMSPeerUpdate.PEER_LEFT]:m.PEER_LEFT,[c.HMSPeerUpdate.ROLE_UPDATED]:m.ROLE_UPDATED,[c.HMSPeerUpdate.NAME_UPDATED]:m.NAME_UPDATED,[c.HMSPeerUpdate.METADATA_UPDATED]:m.METADATA_UPDATED},he={[c.HMSTrackUpdate.TRACK_ADDED]:m.TRACK_ADDED,[c.HMSTrackUpdate.TRACK_REMOVED]:m.TRACK_REMOVED,[c.HMSTrackUpdate.TRACK_MUTED]:m.TRACK_MUTED,[c.HMSTrackUpdate.TRACK_UNMUTED]:m.TRACK_UNMUTED,[c.HMSTrackUpdate.TRACK_DEGRADED]:m.TRACK_DEGRADED,[c.HMSTrackUpdate.TRACK_RESTORED]:m.TRACK_RESTORED,[c.HMSTrackUpdate.TRACK_DESCRIPTION_CHANGED]:m.TRACK_DESCRIPTION_CHANGED};var We=class{constructor(e,t,i){this.hmsSDKTracks={};this.hmsSDKPeers={};this.isRoomJoinCalled=!1;this.ignoredMessageTypes=[];this.setProgress=({type:e,progress:t})=>{this.setState(i=>{i.playlist[e].progress=t,i.playlist[e].currentTime=this.sdk.getPlaylistManager().getCurrentTime(e)},"playlistProgress")};this.syncPlaylistState=e=>{this.setState(t=>{Object.assign(t.playlist,h.convertPlaylist(this.sdk.getPlaylistManager()))},e)};this.sendPeerUpdateNotification=(e,t)=>{let i=this.store.getState(x(t.peerId)),o=ge[e]||"peerUpdate";this.syncRoomState(o),i||(i=this.store.getState(x(t.peerId))),this.hmsNotifications.sendPeerUpdate(e,i)};this.setState=(e,t)=>this.store.namedSetState(e,t);this.store=e,this.sdk=t,this.hmsNotifications=i}refreshDevices(){return S(this,null,function*(){yield this.sdk.refreshDevices()})}unblockAudio(){return S(this,null,function*(){yield this.sdk.getAudioOutput().unblockAutoplay()})}setVolume(e,t){t?this.setTrackVolume(e,t):(this.sdk.getAudioOutput().setVolume(e),this.syncRoomState("setOutputVolume"))}setAudioOutputDevice(e){this.sdk.getAudioOutput().setDevice(e)&&this.setState(i=>{i.settings.audioOutputDeviceId=e},"setAudioOutputDevice")}setPreferredLayer(e,t){let i=this.hmsSDKTracks[e];i?i instanceof G.HMSRemoteVideoTrack?(i.preferLayer(t),this.updateVideoLayer(e,"setPreferredLayer")):p.w(`track ${e} is not an video track`):this.logPossibleInconsistency(`track ${e} not present, unable to set preffer layer`)}preview(e){return S(this,null,function*(){if(this.isRoomJoinCalled){this.logPossibleInconsistency("attempting to call preview after join was called");return}let t=this.store.getState(b);if(t===y.Preview||t===y.Connecting){this.logPossibleInconsistency("attempting to call preview while room is in preview/connecting");return}try{this.setState(i=>{i.room.roomState=y.Connecting},"connecting"),yield this.sdkPreviewWithListeners(e)}catch(i){throw p.e("Cannot show preview. Failed to connect to room - ",i),i}})}join(e){return S(this,null,function*(){if(this.isRoomJoinCalled){this.logPossibleInconsistency("room join is called again");return}try{this.isRoomJoinCalled=!0,this.setState(t=>{t.room.roomState=y.Connecting},"join"),yield this.sdkJoinWithListeners(e)}catch(t){throw this.isRoomJoinCalled=!1,p.e("Failed to connect to room - ",t),t}})}leave(){return S(this,null,function*(){if(!this.store.getState(Le)){this.logPossibleInconsistency("room leave is called when no room is connected");return}let t=this.store.getState(b);return this.setState(i=>{i.room.roomState=y.Disconnecting},"leaving"),this.sdk.leave().then(()=>{this.resetState("leave"),p.i("left room")}).catch(i=>{p.e("error in leaving room - ",i),this.setState(o=>{o.room.roomState=t},"revertLeave")})})}setScreenShareEnabled(e,t){return S(this,null,function*(){let i={audioOnly:!1,videoOnly:!1};typeof t=="object"?Object.assign(i,t):typeof t=="boolean"&&(i.audioOnly=t);try{e?yield this.startScreenShare(i):yield this.stopScreenShare()}catch(o){throw this.hmsNotifications.sendError(h.convertException(o)),o}})}addTrack(e,t="regular"){return S(this,null,function*(){yield this.sdk.addTrack(e,t),this.syncRoomState("addTrack")})}removeTrack(e){return S(this,null,function*(){yield this.sdk.removeTrack(e),this.syncRoomState("removeTrack")})}setLocalAudioEnabled(e){return S(this,null,function*(){let t=this.store.getState(A);t&&(yield this.setEnabledTrack(t,e))})}setLocalVideoEnabled(e){return S(this,null,function*(){let t=this.store.getState(N);t&&(yield this.setEnabledTrack(t,e))})}setEnabledTrack(e,t){return S(this,null,function*(){var r;if(((r=this.store.getState().tracks[e])==null?void 0:r.enabled)===t){this.logPossibleInconsistency(`local track[${e}] enabled state - ${t}`);return}this.setState(a=>{a.tracks[e]?a.tracks[e].displayEnabled=t:this.logPossibleInconsistency("track id not found for setEnabled")},"displayEnabled");try{yield this.setEnabledSDKTrack(e,t),this.syncRoomState("setEnabled")}catch(a){throw this.setState(n=>{n.tracks[e].displayEnabled=!t},"rollbackDisplayEnabled"),this.hmsNotifications.sendError(h.convertException(a)),a}let o=t?c.HMSTrackUpdate.TRACK_UNMUTED:c.HMSTrackUpdate.TRACK_MUTED;this.hmsNotifications.sendTrackUpdate(o,e)})}setAudioSettings(e){return S(this,null,function*(){let t=this.store.getState(A);t&&(yield this.setSDKLocalAudioTrackSettings(t,e),this.syncRoomState("setAudioSettings"))})}setVideoSettings(e){return S(this,null,function*(){let t=this.store.getState(N);t&&(yield this.setSDKLocalVideoTrackSettings(t,e),this.syncRoomState("setVideoSettings"))})}sendMessage(e){this.sendBroadcastMessage(e)}sendBroadcastMessage(e,t){return S(this,null,function*(){let i=yield this.sdk.sendBroadcastMessage(e,t);this.updateMessageInStore(i,{message:e,type:t})})}sendGroupMessage(e,t,i){return S(this,null,function*(){let o=this.store.getState(V),r=t.map(n=>o[n]),a=yield this.sdk.sendGroupMessage(e,r,i);this.updateMessageInStore(a,{message:e,recipientRoles:t,type:i})})}sendDirectMessage(e,t,i){return S(this,null,function*(){let o=this.hmsSDKPeers[t],r=yield this.sdk.sendDirectMessage(e,o,i);this.updateMessageInStore(r,{message:e,recipientPeer:o.peerId,type:i})})}updateMessageInStore(e,t){if(!e)throw p.w("sendMessage","Failed to send message",t),Error(`sendMessage Failed - ${JSON.stringify(t)}`);let i=h.convertMessage(e);return i.read=!0,i.senderName="You",i.ignored=this.ignoredMessageTypes.includes(i.type),this.putMessageInStore(i),i}setMessageRead(e,t){this.setState(i=>{t?i.messages.byID[t]?i.messages.byID[t].read=e:this.logPossibleInconsistency("no message with id is found"):i.messages.allIDs.forEach(o=>{i.messages.byID[o].read=e})},"setMessageRead")}attachVideo(e,t){return S(this,null,function*(){if(this.localAndVideoUnmuting(e))return new Promise(i=>{let o=this.store.subscribe(r=>S(this,null,function*(){r&&(yield this.attachVideoInternal(e,t),o(),i())}),Me)});yield this.attachVideoInternal(e,t)})}detachVideo(e,t){return S(this,null,function*(){let i=this.hmsSDKTracks[e];(i==null?void 0:i.type)==="video"?(i.removeSink(t),this.updateVideoLayer(e,"detachVideo")):(t&&(t.srcObject=null),this.logPossibleInconsistency("no video track found to remove sink"))})}addPluginToVideoTrack(e,t){return S(this,null,function*(){return this.addRemoveVideoPlugin(e,"add",t)})}addPluginToAudioTrack(e){return S(this,null,function*(){return this.addRemoveAudioPlugin(e,"add")})}validateVideoPluginSupport(e){let t={};if(t.isSupported=!1,!e)return p.w("no plugin passed in for checking support"),t.errMsg="no plugin passed in for checking support",t;let i=this.store.getState(N);if(!i)return p.w("video Track not added to local peer yet"),t.errMsg="call this function only after local peer has video track",t;let o=this.hmsSDKTracks[i];return o?t=o.validatePlugin(e):(p.w(`track ${i} not present, unable to validate plugin`),t.errMsg=`track ${i} not present, unable to validate plugin`),t}validateAudioPluginSupport(e){let t={};if(t.isSupported=!1,!e)return p.w('no plugin passed in for checking support"'),t.errMsg='no plugin passed in for checking support"',t;let i=this.store.getState(A);if(!i)return p.w("audio track not added to local peer yet"),t.errMsg="call this function only after local peer has audio track",t;let o=this.hmsSDKTracks[i];return o?t=o.validatePlugin(e):(p.w(`track ${i} not present, unable to validate plugin`),t.errMsg=`track ${i} not present, unable to validate plugin`),t}removePluginFromVideoTrack(e){return S(this,null,function*(){return this.addRemoveVideoPlugin(e,"remove")})}removePluginFromAudioTrack(e){return S(this,null,function*(){return this.addRemoveAudioPlugin(e,"remove")})}changeRole(e,t,i=!1){return S(this,null,function*(){let o=this.hmsSDKPeers[e];if(!o){this.logPossibleInconsistency(`Unknown peer ID given ${e} for changerole`);return}yield this.sdk.changeRole(o,t,i)})}acceptChangeRole(e){return S(this,null,function*(){let t=e.requestedBy?this.hmsSDKPeers[e.requestedBy.id]:void 0;t||p.w(`peer for which role change is requested no longer available - ${e.requestedBy}`);let i={requestedBy:t,role:e.role,token:e.token};yield this.sdk.acceptChangeRole(i),this.removeRoleChangeRequest(e)})}initAppData(e){this.setState(t=>{t.appData=e},"initAppData")}setAppData(e,t,i){let o=(t==null?void 0:t.constructor.name)==="Object";this.setState(r=>{if(r.appData)i&&o?Object.assign(r.appData[e],t):r.appData[e]=t;else{let a={[e]:t};r.appData=a}},`setAppData-${e}`)}rejectChangeRole(e){this.removeRoleChangeRequest(e)}endRoom(e,t){return S(this,null,function*(){let i=this.store.getState(Oe);if(!(i==null?void 0:i.endRoom)){p.w("You are not allowed to perform this action - endRoom");return}let o=this.store.getState(b);this.setState(r=>{r.room.roomState=y.Disconnecting},"endingRoom");try{yield this.sdk.endRoom(e,t),this.resetState("endRoom")}catch(r){p.e("error in ending room - ",r),this.setState(a=>{a.room.roomState=o},"revertEndRoom")}})}removePeer(e,t){return S(this,null,function*(){let i=this.hmsSDKPeers[e];if(i&&!i.isLocal)yield this.sdk.removePeer(i,t);else{this.logPossibleInconsistency(`No remote peer found for peerID - ${e}`);return}})}startRTMPOrRecording(e){return S(this,null,function*(){yield this.sdk.startRTMPOrRecording(e)})}stopRTMPAndRecording(){return S(this,null,function*(){yield this.sdk.stopRTMPAndRecording()})}startHLSStreaming(e){return S(this,null,function*(){yield this.sdk.startHLSStreaming(e)})}stopHLSStreaming(e){return S(this,null,function*(){yield this.sdk.stopHLSStreaming(e)})}sendHLSTimedMetadata(e){return S(this,null,function*(){yield this.sdk.sendHLSTimedMetadata(e)})}changeName(e){return S(this,null,function*(){yield this.sdk.changeName(e)})}changeMetadata(e){return S(this,null,function*(){typeof e!="string"&&(e=JSON.stringify(e)),yield this.sdk.changeMetadata(e)})}setSessionMetadata(i){return S(this,arguments,function*(e,t={localOnly:!1}){t.localOnly||(yield this.sdk.setSessionMetadata(e)),this.setState(o=>{o.sessionMetadata=e},`setSessionMetadata${t.localOnly?"LocalOnly":""}`)})}populateSessionMetadata(){return S(this,null,function*(){let e=yield this.sdk.getSessionMetadata();this.setState(t=>{t.sessionMetadata=e},"populateSessionMetadata")})}setRemoteTrackEnabled(e,t){return S(this,null,function*(){if(typeof e=="string"){let i=this.hmsSDKTracks[e];i&&Pt(i)?yield this.sdk.changeTrackState(i,t):this.logPossibleInconsistency(`No remote track with ID ${e} found for change track state`)}else Array.isArray(e)&&e.forEach(i=>this.setRemoteTrackEnabled(i,t))})}setRemoteTracksEnabled(e){return S(this,null,function*(){let t={enabled:e.enabled,type:e.type,source:e.source};if(e.roles){let i=this.store.getState(V);t.roles=e.roles.map(o=>i[o])}yield this.sdk.changeMultiTrackState(t)})}setLogLevel(e){p.level=e,this.sdk.setLogLevel(e)}ignoreMessageTypes(e,t=!1){if(t)this.ignoredMessageTypes=e;else for(let i of e)this.ignoredMessageTypes.includes(i)||this.ignoredMessageTypes.push(i)}resetState(e="resetState"){this.isRoomJoinCalled=!1,this.hmsSDKTracks={},p.cleanUp(),this.setState(t=>{Object.assign(t,z())},e)}sdkJoinWithListeners(e){return S(this,null,function*(){yield this.sdk.join(e,{onJoin:this.onJoin.bind(this),onRoomUpdate:this.onRoomUpdate.bind(this),onPeerUpdate:this.onPeerUpdate.bind(this),onTrackUpdate:this.onTrackUpdate.bind(this),onMessageReceived:this.onMessageReceived.bind(this),onError:this.onError.bind(this),onReconnected:this.onReconnected.bind(this),onReconnecting:this.onReconnecting.bind(this),onRoleChangeRequest:this.onRoleChangeRequest.bind(this),onRoleUpdate:this.onRoleUpdate.bind(this),onDeviceChange:this.onDeviceChange.bind(this),onChangeTrackStateRequest:this.onChangeTrackStateRequest.bind(this),onChangeMultiTrackStateRequest:this.onChangeMultiTrackStateRequest.bind(this),onRemovedFromRoom:this.onRemovedFromRoom.bind(this),onNetworkQuality:this.onNetworkQuality.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)}),this.sdk.addConnectionQualityListener({onConnectionQualityUpdate:this.onConnectionQualityUpdate.bind(this)})})}onRemovedFromRoom(e){var o;let t=this.store.getState(x((o=e.requestedBy)==null?void 0:o.peerId));this.hmsNotifications.sendLeaveRoom(W(_({},e),{requestedBy:t||void 0}));let i=e.roomEnded||!t?"roomEnded":"removedFromRoom";p.i(`resetting state after peer removed ${i}`,e),this.resetState(i)}onDeviceChange(e){let t=e.devices;if(!t)return;let i=this.store.getState(E);if(this.setState(o=>{w(o.devices.audioInput,t.audioInput)||(o.devices.audioInput=t.audioInput),w(o.devices.videoInput,t.videoInput)||(o.devices.videoInput=t.videoInput),w(o.devices.audioOutput,t.audioOutput)||(o.devices.audioOutput=t.audioOutput),this.hmsSDKPeers[i==null?void 0:i.id]&&Object.assign(o.settings,this.getMediaSettings(this.hmsSDKPeers[i==null?void 0:i.id]))},"deviceChange"),e.selection){let o=h.convertDeviceChangeUpdate(e);this.hmsNotifications.sendDeviceChange(o)}}sdkPreviewWithListeners(e){return S(this,null,function*(){yield this.sdk.preview(e,{onPreview:this.onPreview.bind(this),onError:this.onError.bind(this),onReconnected:this.onReconnected.bind(this),onReconnecting:this.onReconnecting.bind(this),onDeviceChange:this.onDeviceChange.bind(this),onRoomUpdate:this.onRoomUpdate.bind(this),onPeerUpdate:this.onPeerUpdate.bind(this),onNetworkQuality:this.onNetworkQuality.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})})}onNetworkQuality(e){this.setState(t=>{var o;let i=t.room.localPeer||((o=this.sdk.getLocalPeer())==null?void 0:o.peerId);i&&(t.connectionQualities[i]={peerID:i,downlinkQuality:e})},"ConnectionQuality")}startScreenShare(e){return S(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 S(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 S(this,null,function*(){let i=this.hmsSDKTracks[e];i&&i.type==="video"?(i.addSink(t),this.updateVideoLayer(e,"attachVideo")):this.logPossibleInconsistency("no video track found to add sink")})}syncRoomState(e){e=`${e}_fullSync`,p.time(`store-sync-${e}`);let t={},i=[],o={},r={},a={},n=this.sdk.getPeers();for(let k of n){let O=h.convertPeer(k);t[O.id]=O,i.push(O.id),this.hmsSDKPeers[O.id]=k;let Y=[k.audioTrack,k.videoTrack,...k.auxiliaryTracks];for(let le of Y){if(!le)continue;let ze=h.convertTrack(le);o[ze.id]=ze,r[le.trackId]=le}O.isLocal&&Object.assign(a,this.getMediaSettings(k))}let M=this.sdk.getRecordingState(),R=this.sdk.getRTMPState(),j=this.sdk.getHLSState();this.setState(k=>{k.room.peers=i;let O=k.peers,Y=k.tracks;it(O,t),ot(Y,o),Object.assign(k.settings,a),this.hmsSDKTracks=r,Object.assign(k.roles,h.convertRoles(this.sdk.getRoles())),Object.assign(k.playlist,h.convertPlaylist(this.sdk.getPlaylistManager())),Object.assign(k.room,h.convertRecordingStreamingState(M,R,j))},e),p.timeEnd(`store-sync-${e}`)}onPreview(e){this.setState(t=>{Object.assign(t.room,h.convertRoom(e)),t.room.roomState=y.Preview},"previewStart"),this.syncRoomState("previewSync")}onJoin(e){let t=this.sdk.getPlaylistManager();this.audioPlaylist=new He(t,T.audio,this.syncPlaylistState.bind(this),this.store),this.videoPlaylist=new He(t,T.video,this.syncRoomState.bind(this),this.store),this.syncRoomState("joinSync"),this.setState(i=>{Object.assign(i.room,h.convertRoom(e)),i.room.isConnected=!0,i.room.roomState=y.Connected},"joined"),t.onProgress(this.setProgress),t.onNewTrackStart(i=>{this.syncPlaylistState(`${i.type}PlaylistUpdate`)}),t.onPlaylistEnded(i=>{this.syncPlaylistState(`${i}PlaylistEnded`)}),t.onCurrentTrackEnded(i=>{this.hmsNotifications.sendPlaylistTrackEnded(h.convertPlaylistItem(t,i)),this.syncPlaylistState(`${i.type}PlaylistItemEnded`)})}onRoomUpdate(e,t){this.setState(i=>{Object.assign(i.room,h.convertRoom(t))},e)}onPeerUpdate(e,t){if(![c.HMSPeerUpdate.BECAME_DOMINANT_SPEAKER,c.HMSPeerUpdate.RESIGNED_DOMINANT_SPEAKER].includes(e)){if(Array.isArray(t)){this.syncRoomState("peersJoined");let i=[];for(let o of t){let r=this.store.getState(x(o.peerId));r&&i.push(r)}this.hmsNotifications.sendPeerList(i);return}this.sendPeerUpdateNotification(e,t)}}onTrackUpdate(e,t,i){if(e===c.HMSTrackUpdate.TRACK_REMOVED)this.hmsNotifications.sendTrackUpdate(e,t.trackId),this.handleTrackRemove(t,i);else{let o=he[e]||"trackUpdate";this.syncRoomState(o),this.hmsNotifications.sendTrackUpdate(e,t.trackId)}}onMessageReceived(e){let t=h.convertMessage(e);t.read=!1,t.ignored=this.ignoredMessageTypes.includes(t.type),this.putMessageInStore(t),this.hmsNotifications.sendMessageReceived(t)}putMessageInStore(e){e.ignored||this.setState(t=>{e.id=String(this.store.getState(xe)+1),t.messages.byID[e.id]=e,t.messages.allIDs.push(e.id)},"newMessage")}onAudioLevelUpdate(e){this.setState(t=>{let i={};e.forEach(r=>{if(!r.track||!r.peer)return;let a=r.track.trackId;i[a]=r.audioLevel,t.speakers[a]||(t.speakers[a]={audioLevel:r.audioLevel,peerID:r.peer.peerId,trackID:a})});let o=Object.entries(t.speakers);for(let[r,a]of o)a.audioLevel=i[r]||0,a.audioLevel===0&&delete t.speakers[r]},"audioLevel")}onConnectionQualityUpdate(e){this.setState(t=>{let i=new Set;e.forEach(r=>{let a=r.peerID;!a||(i.add(a),t.connectionQualities[a]?Object.assign(t.connectionQualities[a],r):t.connectionQualities[a]=r)});let o=Object.keys(t.connectionQualities);for(let r of o)i.has(r)||delete t.connectionQualities[r]},"connectionQuality")}onChangeTrackStateRequest(e){var r;let t=this.store.getState(x((r=e.requestedBy)==null?void 0:r.peerId)),i=this.getStoreLocalTrackIDfromSDKTrack(e.track),o=this.store.getState(ne(i));if(!o)return this.logPossibleInconsistency(`Not found track for which track state change was requested, ${e.track}`);e.enabled||this.syncRoomState("changeTrackStateRequest"),this.hmsNotifications.sendChangeTrackStateRequest({requestedBy:t||void 0,track:o,enabled:e.enabled})}onChangeMultiTrackStateRequest(e){var r;let t=this.store.getState(x((r=e.requestedBy)==null?void 0:r.peerId));e.enabled||this.syncRoomState("changeMultiTrackStateRequest");let i=[],o=this.store.getState(H);for(let a of e.tracks){let n=this.getStoreLocalTrackIDfromSDKTrack(a);n&&o[n]&&i.push(o[n])}this.hmsNotifications.sendChangeMultiTrackStateRequest({requestedBy:t||void 0,tracks:i,enabled:e.enabled,type:e.type,source:e.source})}onReconnected(){this.syncRoomState("reconnectedSync"),this.hmsNotifications.sendReconnected(),this.setState(e=>{e.room.roomState=e.room.isConnected?y.Connected:y.Preview},"reconnected")}onReconnecting(e){let t=h.convertException(e);p.e("Reconnection: received error from sdk",t),this.hmsNotifications.sendReconnecting(t),this.setState(i=>{i.room.roomState=y.Reconnecting,i.errors.push(t)},"reconnecting")}onError(e){let t=h.convertException(e);t.isTerminal?(this.leave().then(()=>p.e("error from SDK, left room.")),this.setState(i=>{i.room.roomState=y.Failed,i.errors.push(t)},"errorTerminal")):this.store.getState().errors.length<50&&this.setState(o=>{o.errors.push(t)},"error"),this.syncRoomState("errorSync"),this.hmsNotifications.sendError(t),p.e("received error from sdk",t instanceof G.HMSException?`${t}`:t)}updateVideoLayer(e,t){let i=this.hmsSDKTracks[e];if(i&&i instanceof G.HMSRemoteVideoTrack){let o=this.store.getState(qe(e));((o==null?void 0:o.layer)!==i.getSimulcastLayer()||(o==null?void 0:o.degraded)!==i.degraded)&&this.setState(a=>{let n=a.tracks[e];n.layer=i.getSimulcastLayer(),n.degraded=i.degraded},t)}}handleTrackRemove(e,t){this.setState(i=>{let o=i.peers[t.peerId],r=i.tracks,a=e.trackId;if(this.isSameStoreSDKTrack(a,o==null?void 0:o.audioTrack))o==null||delete o.audioTrack;else if(this.isSameStoreSDKTrack(a,o==null?void 0:o.videoTrack))o==null||delete o.videoTrack;else{let n=o==null?void 0:o.auxiliaryTracks.indexOf(a);n>-1&&this.isSameStoreSDKTrack(a,o==null?void 0:o.auxiliaryTracks[n])&&(o==null||o.auxiliaryTracks.splice(n,1))}delete r[a],delete this.hmsSDKTracks[a]},"trackRemoved")}setEnabledSDKTrack(e,t){return S(this,null,function*(){let i=this.hmsSDKTracks[e];i?yield i.setEnabled(t):this.logPossibleInconsistency(`track ${e} not present, unable to enabled/disable`)})}setSDKLocalVideoTrackSettings(e,t){return S(this,null,function*(){let i=this.hmsSDKTracks[e];i?yield i.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}setSDKLocalAudioTrackSettings(e,t){return S(this,null,function*(){let i=this.hmsSDKTracks[e];i?yield i.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}getMediaSettings(e){var r;let t=this.store.getState(Ce),i=e.audioTrack,o=e.videoTrack;return{audioInputDeviceId:(i==null?void 0:i.settings.deviceId)||t.audioInputDeviceId,videoInputDeviceId:(o==null?void 0:o.settings.deviceId)||t.videoInputDeviceId,audioOutputDeviceId:(r=this.sdk.getAudioOutput().getDevice())==null?void 0:r.deviceId}}setTrackVolume(e,t){let i=this.hmsSDKTracks[t];i?i instanceof G.HMSAudioTrack?(i.setVolume(e),this.setState(o=>{let r=o.tracks[t];r&&r.type==="audio"&&(r.volume=e)},"trackVolume")):p.w(`track ${t} is not an audio track`):this.logPossibleInconsistency(`track ${t} not present, unable to set volume`)}localAndVideoUnmuting(e){if(this.store.getState(E).videoTrack!==e)return!1;let i=this.store.getState(Ne),o=this.store.getState(Me);return i&&!o}logPossibleInconsistency(e){p.w("possible inconsistency detected - ",e)}addRemoveVideoPlugin(e,t,i){return S(this,null,function*(){if(!e){p.w("Invalid plugin received in store");return}let o=this.store.getState(N);if(o){let r=this.hmsSDKTracks[o];r?(t==="add"?yield r.addPlugin(e,i):t==="remove"&&(yield r.removePlugin(e)),this.syncRoomState(`${t}VideoPlugin`)):this.logPossibleInconsistency(`track ${o} not present, unable to remove plugin`)}})}addRemoveAudioPlugin(e,t){return S(this,null,function*(){if(!e){p.w("Invalid plugin received in store");return}let i=this.store.getState(A);if(i){let o=this.hmsSDKTracks[i];o?(t==="add"?yield o.addPlugin(e):t==="remove"&&(yield o.removePlugin(e)),this.syncRoomState(`${t}AudioPlugin`)):this.logPossibleInconsistency(`track ${i} not present, unable to remove plugin`)}})}isSameStoreSDKTrack(e,t){var i;return t?((i=this.hmsSDKTracks[t])==null?void 0:i.trackId)===e:!1}onRoleChangeRequest(e){this.setState(t=>{t.roleChangeRequests.length===0&&t.roleChangeRequests.push(h.convertRoleChangeRequest(e))},"roleChangeRequest")}removeRoleChangeRequest(e){this.setState(t=>{let i=t.roleChangeRequests.findIndex(o=>o.token===e.token);i!==-1&&t.roleChangeRequests.splice(i,1)},"removeRoleChangeRequest")}onRoleUpdate(){this.syncRoomState("roleUpdate")}getStoreLocalTrackIDfromSDKTrack(e){return this.store.getState(Ae).find(i=>this.hmsSDKTracks[i].trackId===e.trackId)}};var Dt=D(require("eventemitter2"));var Qe="hmsNotification",Je=class{constructor(e){this.id=0;this.onNotification=(e,t)=>{let i=o=>{if(t){let r;if(Array.isArray(t)?r=t.includes(o.type):r=t===o.type,!r)return}e(o)};return this.eventEmitter.addListener(Qe,i),()=>{this.eventEmitter.removeListener(Qe,i)}};this.store=e,this.eventEmitter=new Dt.EventEmitter2({maxListeners:Object.keys(m).length})}sendPlaylistTrackEnded(e){let t=this.createNotification(m.PLAYLIST_TRACK_ENDED,e,P.INFO);this.emitEvent(t)}sendDeviceChange(e){var i;let t=this.createNotification(m.DEVICE_CHANGE_UPDATE,e,e.error?P.ERROR:P.INFO,`Selected ${e.type} device - ${(i=e.selection)==null?void 0:i.label}`);this.emitEvent(t)}sendLeaveRoom(e){var o;let t=(o=e.requestedBy)==null?void 0:o.name,i=this.createNotification(e.roomEnded||!t?m.ROOM_ENDED:m.REMOVED_FROM_ROOM,e,P.INFO,`${e.roomEnded?"Room ended":"Removed from room"} ${t?`by ${t}`:""}`);this.emitEvent(i)}sendPeerList(e){let t=this.createNotification(m.PEER_LIST,e,P.INFO);this.emitEvent(t)}sendPeerUpdate(e,t){let i=this.store.getState(x(t==null?void 0:t.id))||t,o=ge[e];if(o){let r=this.createNotification(o,i,P.INFO);this.emitEvent(r)}}sendTrackUpdate(e,t){let i=this.store.getState(ne(t)),o=he[e];if(o){let r=this.createNotification(o,i,P.INFO);this.emitEvent(r)}}sendMessageReceived(e){let t=this.createNotification(m.NEW_MESSAGE,e,P.INFO);this.emitEvent(t)}sendError(e){let t=this.createNotification(m.ERROR,e,P.ERROR);this.emitEvent(t)}sendReconnecting(e){let t=this.createNotification(m.RECONNECTING,e,P.ERROR);this.emitEvent(t)}sendReconnected(){let e=this.createNotification(m.RECONNECTED,null,P.INFO);this.emitEvent(e)}sendChangeTrackStateRequest(e){let t=this.createNotification(m.CHANGE_TRACK_STATE_REQUEST,e,P.INFO);this.emitEvent(t)}sendChangeMultiTrackStateRequest(e){let t=this.createNotification(m.CHANGE_MULTI_TRACK_STATE_REQUEST,e,P.INFO);this.emitEvent(t)}emitEvent(e){this.eventEmitter.emit(Qe,e)}createNotification(e,t,i,o=""){return this.id++,{id:this.id,type:e,message:o,data:t,severity:i}}};var It=D(require("@100mslive/hms-video")),ye=s=>It.isBrowser?`${s} ${document.title}`:s;var vt=(s,e,t)=>{let i;t.getState(b)===y.Connected&&(i=Et(s,e,t)),t.subscribe(o=>{[y.Connected,y.Reconnecting].includes(o)?i||(i=Et(s,e,t)):i&&(Hi(e),i())},b)},Et=(s,e,t)=>{var r,a;let i=Ti(t,e);(r=s.getWebrtcInternals())==null||r.start();let o=(a=s.getWebrtcInternals())==null?void 0:a.onStatsChange(n=>mi(e,n,t));return()=>{i(),o&&o()}},Ti=(s,e)=>{let t,i,o;return s.getState(q)?e.namedSetState(r=>{r.localPeer.id=s.getState(q)},"localpeer-id"):t=s.subscribe(r=>{r&&e.namedSetState(a=>{a.localPeer.id=r},"localpeer-id")},q),s.getState(N)?e.namedSetState(r=>{r.localPeer.videoTrack=s.getState(N)},"localpeer-videotrack-id"):i=s.subscribe(r=>{r&&e.namedSetState(a=>{a.localPeer.videoTrack=r},"localpeer-videotrack-id")},N),s.getState(A)?e.namedSetState(r=>{r.localPeer.videoTrack=s.getState(A)},"localpeer-audiotrack-id"):o=s.subscribe(r=>{r&&e.namedSetState(a=>{a.localPeer.videoTrack=r},"localpeer-audiotrack-id")},A),()=>{t==null||t(),i==null||i(),o==null||o()}},mi=(s,e,t)=>{let i=t.getState(H);s.namedSetState(o=>{let r={},a=Object.keys(i);for(let R of a){let j=e.getTrackStats(R);j&&(r[R]=j)}Re(o.trackStats,r);let M={[t.getState(q)]:e.getLocalPeerStats()};Re(o.peerStats,M)},"webrtc-stats")},Hi=(s,e="resetState")=>{s.namedSetState(t=>{Object.assign(t,Z())},e)};var ce=class{constructor(e,t){this.hmsStore=e;this.sdk=t;this.store=L.createNewHMSStore(ye("HMSStatsStore"),Z),this.getState=this.store.getState,this.subscribe=this.store.subscribe,this.getPublishPeerConnection=()=>new Promise(i=>{var o,r;this.hmsStore.getState(b)==="Connected"?i((r=(o=this.sdk)==null?void 0:o.getWebrtcInternals())==null?void 0:r.getPublishPeerConnection()):this.hmsStore.subscribe(a=>{var n,M;a==="Connected"&&i((M=(n=this.sdk)==null?void 0:n.getWebrtcInternals())==null?void 0:M.getPublishPeerConnection())},b)}),this.getSubscribePeerConnection=()=>new Promise(i=>{var o,r;this.hmsStore.getState(b)==="Connected"?i((r=(o=this.sdk)==null?void 0:o.getWebrtcInternals())==null?void 0:r.getSubscribePeerConnection()):this.hmsStore.subscribe(a=>{var n,M;a==="Connected"&&i((M=(n=this.sdk)==null?void 0:n.getWebrtcInternals())==null?void 0:M.getSubscribePeerConnection())},b)}),!!this.sdk&&vt(this.sdk,this.store,this.hmsStore)}};var f=D(require("reselect"));var gi=s=>s.localPeer.id,hi=s=>s.localPeer.audioTrack,yi=s=>s.localPeer.videoTrack,fi=(s,e)=>e,ki=(s,e)=>e,Ye=s=>s.trackStats,bt=s=>s.peerStats,B=(0,f.createSelector)([bt,gi],(s,e)=>s[e]),Ri=(0,f.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.packetsLost}),Pi=(0,f.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.jitter}),Di=(0,f.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bitrate}),Ii=(0,f.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bitrate}),vi=(0,f.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.availableOutgoingBitrate}),Ei=(0,f.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.availableIncomingBitrate}),bi=(0,f.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bytesSent}),Ci=(0,f.createSelector)(B,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bytesReceived}),Ai=(0,f.createSelector)([bt,fi],(s,e)=>e?s[e]:void 0),J=(0,f.createSelector)([Ye,ki],(s,e)=>e?s[e]:void 0),Ni=d(Ai),xi=d(J),Li=d((0,f.createSelector)(J,s=>s==null?void 0:s.bitrate)),Oi=d((0,f.createSelector)(J,s=>s==null?void 0:s.bytesReceived)),_i=d((0,f.createSelector)(J,s=>s==null?void 0:s.framesPerSecond)),wi=d((0,f.createSelector)(J,s=>s==null?void 0:s.jitter)),Ui=d((0,f.createSelector)(J,s=>s==null?void 0:s.packetsLost)),Xe=(0,f.createSelector)([Ye,hi],(s,e)=>e?s[e]:void 0),Se=(0,f.createSelector)([Ye,yi],(s,e)=>e?s[e]:void 0),Vi=(0,f.createSelector)(Xe,s=>s==null?void 0:s.bitrate),Ki=(0,f.createSelector)(Se,s=>s==null?void 0:s.bitrate),Bi=(0,f.createSelector)(Xe,s=>s==null?void 0:s.bytesSent),qi=(0,f.createSelector)(Se,s=>s==null?void 0:s.bytesSent),ji=(0,f.createSelector)(Se,s=>s==null?void 0:s.framesPerSecond),$i=(0,f.createSelector)(Se,s=>s==null?void 0:s.qualityLimitationReason),Ct={localPeerStats:B,packetsLost:Ri,jitter:Pi,publishBitrate:Di,subscribeBitrate:Ii,availablePublishBitrate:vi,availableSubscribeBitrate:Ei,totalBytesSent:bi,totalBytesReceived:Ci,peerStatsByID:Ni,trackStatsByID:xi,bitrateByTrackID:Li,bytesReceivedByTrackID:Oi,framerateByTrackID:_i,jitterByTrackID:wi,packetsLostByTrackID:Ui,localAudioTrackStats:Xe,localVideoTrackStats:Se,localAudioTrackBitrate:Vi,localVideoTrackBitrate:Ki,localAudioTrackBytesSent:Bi,localVideoTrackBytesSent:qi,localVideoTrackFramerate:ji,localVideoTrackQualityLimitationReason:$i};var L=class{constructor(e,t,i){this.getStats=()=>(this.stats||(this.stats=new ce(this.store,this.sdk)),this.stats);e?this.store=e:this.store=L.createNewHMSStore(ye("HMSStore"),z),i?this.notifications=i:this.notifications=new Je(this.store),t?this.actions=t:(this.sdk=new fe.HMSSdk,this.actions=new We(this.store,this.sdk,this.notifications)),this.initialTriggerOnSubscribe=!1,fe.isBrowser&&(window.__hms=this)}triggerOnSubscribe(){this.initialTriggerOnSubscribe||(L.makeStoreTriggerOnSubscribe(this.store),this.initialTriggerOnSubscribe=!0)}getStore(){return this.store}getHMSActions(){return this.actions}getActions(){return this.actions}getNotifications(){return{onNotification:this.notifications.onNotification}}static createNewHMSStore(e,t){let i=(0,Nt.default)(()=>t()),o=i.setState;i.setState=n=>{let M=typeof n=="function"?(0,At.default)(n):n;o(M)};let r=i.getState;i.getState=n=>{if(n){let M=n.name||"byIDSelector";window.selectorsCount||(window.selectorsCount={}),window.selectorsCount[M]=(window.selectorsCount[M]||0)+1;let R=performance.now(),j=n(r()),k=performance.now()-R;return k>1&&(window.expensiveSelectors=window.expensiveSelectors||new Map,window.expensiveSelectors.set(M,k)),j}return r()},L.compareWithShallowCheckInSubscribe(i);let a=L.setUpDevtools(i,e);return W(_({},i),{namedSetState:a})}static makeStoreTriggerOnSubscribe(e){let t=e.subscribe;e.subscribe=(i,o,r)=>(i(e.getState(o),void 0),t(i,o,r))}static compareWithShallowCheckInSubscribe(e){let t=e.subscribe;e.subscribe=(i,o,r)=>(o||(o=a=>a),r=r||xt.default,t(i,o,r))}static setUpDevtools(e,t){let i;try{i=window.__REDUX_DEVTOOLS_EXTENSION__||window.top.__REDUX_DEVTOOLS_EXTENSION__}catch(a){}if(!i)return a=>{e.setState(a)};let o=i.connect(L.devtoolsOptions(t));o.prefix=t?`${t} > `:"";let r=e.setState;return e.setState=a=>{r(a),o.send(`${o.prefix}setState`,e.getState())},o.subscribe(L.devtoolsSubscribe(o,e,r)),o.send("setUpStore",e.getState()),(a,n)=>{r(a);let M=n||`${o.prefix}action`;o.send(M,e.getState())}}static devtoolsOptions(e){return{name:e,actionsBlacklist:["audioLevel","playlistProgress","connectionQuality"]}}static devtoolsSubscribe(e,t,i){return o=>{var r,a,n,M;if(o.type==="DISPATCH"&&o.state)["JUMP_TO_ACTION","JUMP_TO_STATE"].includes(o.payload.type)?i(JSON.parse(o.state)):t.setState(JSON.parse(o.state));else if(o.type==="DISPATCH"&&((r=o.payload)==null?void 0:r.type)==="COMMIT")e.init(t.getState());else if(o.type==="DISPATCH"&&((a=o.payload)==null?void 0:a.type)==="IMPORT_STATE"){let R=(n=o.payload.nextLiftedState)==null?void 0:n.actionsById;(((M=o.payload.nextLiftedState)==null?void 0:M.computedStates)||[]).forEach(({state:k},O)=>{let Y=R[O]||`${e.prefix}setState`;O===0?e.init(k):(i(k),e.send(Y,t.getState()))})}}}};
|
|
2
2
|
//# sourceMappingURL=index.cjs.js.map
|