@100mslive/hms-video-store 0.2.84-alpha.5 → 0.2.86-alpha.1

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.
@@ -231,16 +231,15 @@ export interface IHMSActions {
231
231
  stopRTMPAndRecording(): Promise<void>;
232
232
  /**
233
233
  * If you want to start HLS streaming.
234
- * @param params.meetingURL This is the meeting url which is opened in a headless chrome instance for streaming and recording.
234
+ * @param params.variants.meetingURL This is the meeting url which is opened in a headless chrome instance for generating the HLS feed.
235
235
  * Make sure this url leads the joiner straight to the room without any preview screen or requiring additional clicks.
236
- * @alpha
236
+ * Note that streaming of only one url is currently supported and only the first variant passed will be honored.
237
237
  */
238
238
  startHLSStreaming(params: HLSConfig): Promise<void>;
239
239
  /**
240
- * If you want to stop HLS streaming.
241
- * @alpha
240
+ * If you want to stop HLS streaming. The passed in arguments is not considered at the moment, and everything related to HLS is stopped.
242
241
  */
243
- stopHLSStreaming(): Promise<void>;
242
+ stopHLSStreaming(params?: HLSConfig): Promise<void>;
244
243
  /**
245
244
  * If you want to update the name of peer.
246
245
  * @beta
@@ -1,17 +1,17 @@
1
- import { HMSStore } from './schema';
2
- import { StateSelector, StoreApi, Subscribe } from 'zustand/vanilla';
1
+ import { HMSStore, HMSInternalsStore } from './schema';
2
+ import { StateSelector, StoreApi, Subscribe, State } from 'zustand/vanilla';
3
3
  import { NamedSetState } from './hmsSDKStore/internalTypes';
4
4
  /**
5
5
  * HMS Reactive store can be used to subscribe to different parts of the store using selectors
6
6
  * and get a callback when the value changes.
7
7
  */
8
- export interface IHMSStore extends StoreApi<HMSStore> {
8
+ export interface IStore<T extends State> extends StoreApi<T> {
9
9
  /**
10
10
  * Get a part of store using a selector which is true at the current point of time.
11
11
  *
12
12
  * Usage: `store.getState(selectDominantSpeaker);`
13
13
  */
14
- getState: GetState<HMSStore>;
14
+ getState: GetState<T>;
15
15
  /**
16
16
  * Subscribe to a part of store using selectors, whenever the subscribed part changes, the callback
17
17
  * is called with both the latest and previous value of the changed part.
@@ -24,18 +24,18 @@ export interface IHMSStore extends StoreApi<HMSStore> {
24
24
  * store.subscribe(onSpeakerUpdate, selectDominantSpeaker);
25
25
  * ```
26
26
  */
27
- subscribe: Subscribe<HMSStore>;
27
+ subscribe: Subscribe<T>;
28
28
  /**
29
29
  * @private
30
30
  * @internal
31
31
  * @privateRemarks
32
32
  * wraps setState to take an additional action name parameter which can show up in redux devtools.
33
33
  */
34
- namedSetState: NamedSetState<HMSStore>;
34
+ namedSetState: NamedSetState<T>;
35
35
  }
36
- export interface GetState<T> {
36
+ export interface GetState<T extends State> {
37
37
  (): T;
38
- <StateSlice>(selector?: StateSelector<HMSStore, StateSlice>): StateSlice;
38
+ <StateSlice>(selector?: StateSelector<T, StateSlice>): StateSlice;
39
39
  }
40
40
  /**
41
41
  * HMS store can be used to:
@@ -51,4 +51,26 @@ export interface GetState<T> {
51
51
  *
52
52
  * @category Core
53
53
  */
54
- export declare type IHMSStoreReadOnly = Omit<IHMSStore, 'setState' | 'namedSetState' | 'destroy'>;
54
+ export declare type IStoreReadOnly<T extends State> = Omit<IStore<T>, 'setState' | 'namedSetState' | 'destroy'>;
55
+ /**
56
+ * HMS Reactive store can be used to subscribe to different parts of the store using selectors
57
+ * and get a callback when the value changes.
58
+ */
59
+ export declare type IHMSStore = IStore<HMSStore>;
60
+ /**
61
+ * HMS store can be used to:
62
+ * - Get a part of the current store or state(getState)
63
+ * - Subscribe to different parts of the store using selectors and execute a callback when the value changes.
64
+ *
65
+ * Both getState and subscribe use selectors to query a part the store.
66
+ *
67
+ *
68
+ * Selectors are functions with HMSStore as an argument and returns a part of the store.
69
+ *
70
+ * **StoreSelector** is a type alias for this type of function.
71
+ *
72
+ * @category Core
73
+ */
74
+ export declare type IHMSStoreReadOnly = IStoreReadOnly<HMSStore>;
75
+ export declare type IHMSInternalsStore = IStore<HMSInternalsStore>;
76
+ export declare type IHMSInternalsStoreReadOnly = IStoreReadOnly<HMSInternalsStore>;
@@ -1,11 +1,17 @@
1
+ import { State } from 'zustand/vanilla';
1
2
  import { IHMSActions } from '../IHMSActions';
3
+ import { IStore } from '../IHMSStore';
2
4
  import { IHMSStore, IHMSStoreReadOnly } from '../IHMSStore';
3
5
  import { HMSNotifications } from './HMSNotifications';
4
6
  import { IHMSNotifications } from '../IHMSNotifications';
7
+ import { HMSWebrtcInternals } from '../webrtc-internals';
5
8
  export declare class HMSReactiveStore {
9
+ private readonly sdk?;
6
10
  private readonly actions;
7
11
  private readonly store;
8
12
  private readonly notifications;
13
+ private webrtcInternals?;
14
+ /** @TODO store flag for both HMSStore and HMSInternalsStore */
9
15
  private initialTriggerOnSubscribe;
10
16
  constructor(hmsStore?: IHMSStore, hmsActions?: IHMSActions, hmsNotifications?: HMSNotifications);
11
17
  /**
@@ -36,13 +42,18 @@ export declare class HMSReactiveStore {
36
42
  */
37
43
  getNotifications(): IHMSNotifications;
38
44
  /**
45
+ * @alpha
39
46
  * @internal
40
47
  */
41
- static createNewHMSStore(): IHMSStore;
48
+ getWebrtcInternals: () => HMSWebrtcInternals;
42
49
  /**
43
50
  * @internal
44
51
  */
45
- static makeStoreTriggerOnSubscribe(store: IHMSStore): void;
52
+ static createNewHMSStore<T extends State>(storeName: string, defaultCreatorFn: () => T): IStore<T>;
53
+ /**
54
+ * @internal
55
+ */
56
+ static makeStoreTriggerOnSubscribe<T extends State>(store: IStore<T>): void;
46
57
  /**
47
58
  * use shallow equality check by default for subscribe to optimize for array/object selectors.
48
59
  * by default zustand does only reference matching so something like, getPeers for eg. would trigger
@@ -75,7 +75,7 @@ export declare class HMSSDKActions implements IHMSActions {
75
75
  startRTMPOrRecording(params: sdkTypes.RTMPRecordingConfig): Promise<void>;
76
76
  stopRTMPAndRecording(): Promise<void>;
77
77
  startHLSStreaming(params: sdkTypes.HLSConfig): Promise<void>;
78
- stopHLSStreaming(): Promise<void>;
78
+ stopHLSStreaming(params?: sdkTypes.HLSConfig): Promise<void>;
79
79
  changeName(name: string): Promise<void>;
80
80
  changeMetadata(metadata: string | any): Promise<void>;
81
81
  setRemoteTrackEnabled(trackID: HMSTrackID | HMSTrackID[], enabled: boolean): Promise<void>;
@@ -1,4 +1,4 @@
1
- import { HMSRoleChangeRequest as SDKHMSRoleChangeRequest, HMSTrack as SDKHMSTrack } from '@100mslive/hms-video';
1
+ import { HMSPeerConnectionStats, HMSRoleChangeRequest as SDKHMSRoleChangeRequest, HMSTrack as SDKHMSTrack } from '@100mslive/hms-video';
2
2
  import { HMSDeviceChangeEvent, HMSException, HMSMessage, HMSPeer, HMSPeerID, HMSPlaylistItem, HMSRole, HMSRoleChangeStoreRequest, HMSRoleName, HMSRoom, HMSTrack } from '../schema';
3
3
  import * as sdkTypes from './sdkTypes';
4
4
  export declare class SDKToHMS {
@@ -41,8 +41,9 @@ export declare class SDKToHMS {
41
41
  };
42
42
  };
43
43
  static convertPlaylistItem<T>(playlistManager: sdkTypes.HMSPlaylistManager, playlistItem: sdkTypes.HMSPlaylistItem<T>): HMSPlaylistItem<T>;
44
+ static convertConnectionStats(stats: HMSPeerConnectionStats): any;
44
45
  private static getConvertedPlaylistType;
45
- static convertRecordingRTMPState(recording: sdkTypes.HMSRecording | undefined, rtmp: sdkTypes.HMSRTMP | undefined, hls: sdkTypes.HMSHLS | undefined): {
46
+ static convertRecordingStreamingState(recording: sdkTypes.HMSRecording | undefined, rtmp: sdkTypes.HMSRTMP | undefined, hls: sdkTypes.HMSHLS | undefined): {
46
47
  recording: sdkTypes.HMSRecording;
47
48
  rtmp: sdkTypes.HMSRTMP;
48
49
  hls: sdkTypes.HMSHLS;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Check only for presence(not truthy) of a value.
3
+ * Use in places where 0, false need to be considered valid.
4
+ */
5
+ export declare function isPresent(value: any): boolean;
@@ -1,3 +1,3 @@
1
- import { HMSException, HMSSimulcastLayer, HMSPeerUpdate, HMSRoomUpdate, HMSTrackUpdate, HMSAudioTrackSettings, HMSVideoTrackSettings, HMSPeer, HMSRoom, HMSMessage, HMSConfig, HMSSpeaker, HMSRole, HMSLocalPeer, HMSRemotePeer, SimulcastLayerDefinition, DeviceMap, HMSLogLevel, HMSDeviceChangeEvent, HMSPlaylistItem, HMSPlaylistManager, HMSPlaylistProgressEvent, RTMPRecordingConfig, HMSRecording, HMSRTMP, HMSAudioPluginType, HMSVideoPluginType, HMSVideoPlugin, HMSAudioPlugin, HLSConfig, HMSHLS } from '@100mslive/hms-video';
1
+ import { HMSException, HMSSimulcastLayer, HMSPeerUpdate, HMSRoomUpdate, HMSTrackUpdate, HMSAudioTrackSettings, HMSVideoTrackSettings, HMSPeer, HMSRoom, HMSMessage, HMSConfig, HMSSpeaker, HMSRole, HMSLocalPeer, HMSRemotePeer, SimulcastLayerDefinition, DeviceMap, HMSLogLevel, HMSDeviceChangeEvent, HMSPlaylistItem, HMSPlaylistManager, HMSPlaylistProgressEvent, RTMPRecordingConfig, HMSRecording, HMSRTMP, HMSWebrtcInternals, HMSWebrtcStats, HMSPeerConnectionStats, HMSAudioPluginType, HMSVideoPluginType, HMSVideoPlugin, HMSAudioPlugin, HLSConfig, HMSHLS } from '@100mslive/hms-video';
2
2
  export { HMSException, HMSSimulcastLayer, HMSRoomUpdate, HMSPeerUpdate, HMSTrackUpdate, HMSLogLevel, HMSAudioPluginType, HMSVideoPluginType, };
3
- export type { DeviceMap, HMSPeer, HMSRoom, HMSMessage, HMSSpeaker, HMSConfig, HMSAudioTrackSettings, HMSVideoTrackSettings, HMSRole, HMSLocalPeer, HMSRemotePeer, SimulcastLayerDefinition, HMSDeviceChangeEvent, HMSPlaylistItem, HMSPlaylistManager, HMSPlaylistProgressEvent, RTMPRecordingConfig, HMSRecording, HMSRTMP, HMSVideoPlugin, HMSAudioPlugin, HLSConfig, HMSHLS, };
3
+ export type { DeviceMap, HMSPeer, HMSRoom, HMSMessage, HMSSpeaker, HMSConfig, HMSAudioTrackSettings, HMSVideoTrackSettings, HMSRole, HMSLocalPeer, HMSRemotePeer, SimulcastLayerDefinition, HMSDeviceChangeEvent, HMSPlaylistItem, HMSPlaylistManager, HMSPlaylistProgressEvent, RTMPRecordingConfig, HMSRecording, HMSRTMP, HMSWebrtcInternals, HMSWebrtcStats, HMSPeerConnectionStats, HMSVideoPlugin, HMSAudioPlugin, HLSConfig, HMSHLS, };
@@ -1,4 +1,4 @@
1
- import { HMSPeer, HMSPeerID, HMSTrack, HMSTrackID } from '../../schema';
1
+ import { HMSPeer, HMSPeerID, HMSTrack, HMSTrackID, HMSPeerStats, HMSTrackStats } from '../../schema';
2
2
  /**
3
3
  * updates draftPeers with newPeers ensuring minimal reference changes
4
4
  * @remarks
@@ -11,4 +11,5 @@ import { HMSPeer, HMSPeerID, HMSTrack, HMSTrackID } from '../../schema';
11
11
  */
12
12
  export declare const mergeNewPeersInDraft: (draftPeers: Record<HMSPeerID, HMSPeer>, newPeers: Record<HMSPeerID, Partial<HMSPeer>>) => void;
13
13
  export declare const mergeNewTracksInDraft: (draftTracks: Record<HMSTrackID, HMSTrack>, newTracks: Record<HMSTrackID, Partial<HMSTrack>>) => void;
14
+ export declare const mergeNewIndividualStatsInDraft: <TID extends string, T extends HMSTrackStats | HMSPeerStats>(draftStats: Record<TID, T | undefined>, newStats: Record<TID, Partial<T | undefined>>) => void;
14
15
  export declare const areArraysEqual: <T>(arr1: T[], arr2?: T[] | undefined) => boolean;
@@ -1,4 +1,4 @@
1
- export type { IHMSStore, IHMSStoreReadOnly as HMSStoreWrapper, GetState } from './IHMSStore';
1
+ export type { IStore, IStoreReadOnly, IHMSStore, IHMSStoreReadOnly as HMSStoreWrapper, GetState, IHMSInternalsStore, IHMSInternalsStoreReadOnly as HMSInternalsStoreWrapper, } from './IHMSStore';
2
2
  export type { IHMSActions as HMSActions } from './IHMSActions';
3
3
  export type { IHMSNotifications as HMSNotifications } from './IHMSNotifications';
4
4
  export type { HMSNotificationCallback } from './IHMSNotifications';
@@ -6,4 +6,5 @@ export { HMSReactiveStore } from './hmsSDKStore/HMSReactiveStore';
6
6
  export * from './schema';
7
7
  export * from './selectors';
8
8
  export { HMSLogLevel, HMSAudioPluginType, HMSVideoPluginType } from './hmsSDKStore/sdkTypes';
9
+ export * from './webrtc-internals';
9
10
  export type { HMSConfig, HMSAudioTrackSettings, HMSVideoTrackSettings, HMSSimulcastLayer, SimulcastLayerDefinition, DeviceMap, RTMPRecordingConfig, HMSRecording, HMSRTMP, } from './hmsSDKStore/sdkTypes';
@@ -9,3 +9,4 @@ export * from './error';
9
9
  export * from './requests';
10
10
  export * from './device-change';
11
11
  export * from './playlist';
12
+ export * from './webrtc-stats';
@@ -22,5 +22,5 @@ export interface HMSRoom {
22
22
  rtmp: HMSRTMP;
23
23
  hls: HMSHLS;
24
24
  sessionId: string;
25
- startedAt?: number;
25
+ startedAt?: Date;
26
26
  }
@@ -7,6 +7,7 @@ import { HMSRole } from './role';
7
7
  import { HMSRoleChangeStoreRequest } from './requests';
8
8
  import { HMSException } from './error';
9
9
  import { HMSPlaylist } from './playlist';
10
+ import { HMSPeerConnectionStats, HMSPeerStats, HMSTrackStats } from './webrtc-stats';
10
11
  export interface HMSStore {
11
12
  room: HMSRoom;
12
13
  peers: Record<HMSPeerID, HMSPeer>;
@@ -23,7 +24,21 @@ export interface HMSStore {
23
24
  roleChangeRequests: HMSRoleChangeStoreRequest[];
24
25
  errors: HMSException[];
25
26
  }
27
+ export interface HMSInternalsStore {
28
+ publishStats?: HMSPeerConnectionStats;
29
+ subscribeStats?: HMSPeerConnectionStats;
30
+ packetsLost: number;
31
+ jitter: number;
32
+ trackStats: Record<HMSTrackID, HMSTrackStats | undefined>;
33
+ peerStats: Record<HMSPeerID, HMSPeerStats | undefined>;
34
+ localPeer: {
35
+ id: HMSPeerID;
36
+ videoTrack?: HMSTrackID;
37
+ audioTrack?: HMSTrackID;
38
+ };
39
+ }
26
40
  /**
27
41
  * @internal
28
42
  */
29
43
  export declare const createDefaultStoreState: () => HMSStore;
44
+ export declare const createDefaultInternalsStore: () => HMSInternalsStore;
@@ -0,0 +1,29 @@
1
+ import { HMSPeerConnectionStats as SDKHMSPeerConnectionStats } from '@100mslive/hms-video';
2
+ declare type WithBitrate = {
3
+ bitrate: number;
4
+ };
5
+ /**
6
+ * Missing properties in TS eventhough WebRTC supports it.
7
+ * Ref: https://www.w3.org/TR/webrtc-stats/#summary
8
+ */
9
+ declare type MissingRTCTrackStats = {
10
+ bytesReceived?: number;
11
+ framesPerSecond?: number;
12
+ bytesSent?: number;
13
+ jitter?: number;
14
+ packetsLost?: number;
15
+ qualityLimitationReason?: string;
16
+ };
17
+ export declare type HMSPeerConnectionStats = Pick<SDKHMSPeerConnectionStats, 'type' | 'packetsLost' | 'jitter'>;
18
+ export declare type HMSTrackStats = RTCRtpStreamStats & {
19
+ peerID?: string;
20
+ peerName?: string;
21
+ } & WithBitrate & MissingRTCTrackStats;
22
+ export declare type HMSInboundTrackStats = HMSTrackStats & RTCInboundRtpStreamStats;
23
+ export declare type HMSOutboundTrackStats = HMSTrackStats & RTCOutboundRtpStreamStats;
24
+ export declare type RTCTrackStats = RTCInboundRtpStreamStats | RTCOutboundRtpStreamStats;
25
+ export declare type HMSPeerStats = {
26
+ publish?: RTCIceCandidatePairStats & WithBitrate;
27
+ subscribe?: RTCIceCandidatePairStats & WithBitrate;
28
+ };
29
+ export {};
@@ -0,0 +1,16 @@
1
+ import { HMSInternalsStore, HMSStore } from '../schema';
2
+ export declare type StoreTypes = HMSStore | HMSInternalsStore;
3
+ declare type byIDSelector<S extends StoreTypes, T> = (store: S, id?: string) => T;
4
+ /**
5
+ * StoreSelector is a function that takes in {@link HMSStore} as argument
6
+ * and returns a part of the store that is queried using the selector.
7
+ * @typeParam T Part of the store that you wish to query.
8
+ */
9
+ export declare type StoreSelector<S extends StoreTypes, T> = (store: S) => T;
10
+ /**
11
+ * takes in a normal selector which has store and id as input and curries it to make it easier to use.
12
+ * Before: store.getState((store) => normalSelector(store, peerID))
13
+ * After: store.getState(curriedSelector(peerID))
14
+ */
15
+ export declare function byIDCurry<S extends StoreTypes, T>(selector: byIDSelector<S, T>): (id?: string) => StoreSelector<S, T>;
16
+ export {};
@@ -185,4 +185,4 @@ export declare const selectRecordingState: import("reselect").OutputSelector<HMS
185
185
  export declare const selectRTMPState: import("reselect").OutputSelector<HMSStore, import("../../../../hms-video-web/dist/interfaces/room").HMSRTMP, (res: HMSRoom) => import("../../../../hms-video-web/dist/interfaces/room").HMSRTMP>;
186
186
  export declare const selectHLSState: import("reselect").OutputSelector<HMSStore, import("../../../../hms-video-web/dist/interfaces/room").HMSHLS, (res: HMSRoom) => import("../../../../hms-video-web/dist/interfaces/room").HMSHLS>;
187
187
  export declare const selectSessionId: import("reselect").OutputSelector<HMSStore, string, (res: HMSRoom) => string>;
188
- export declare const selectRoomStartTime: import("reselect").OutputSelector<HMSStore, number | undefined, (res: HMSRoom) => number | undefined>;
188
+ export declare const selectRoomStartTime: import("reselect").OutputSelector<HMSStore, Date | undefined, (res: HMSRoom) => Date | undefined>;
@@ -1,55 +1,49 @@
1
1
  import { HMSPeerID, HMSRoleName, HMSStore, HMSTrack } from '../schema';
2
- /**
3
- * StoreSelector is a function that takes in {@link HMSStore} as argument
4
- * and returns a part of the store that is queried using the selector.
5
- * @typeParam T Part of the store that you wish to query.
6
- */
7
- export declare type StoreSelector<T> = (store: HMSStore) => T;
8
2
  /**
9
3
  * Select the {@link HMSPeer} object given a peer ID.
10
4
  */
11
- export declare const selectPeerByID: (id?: string | undefined) => StoreSelector<import("../schema").HMSPeer | null>;
5
+ export declare const selectPeerByID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, import("../schema").HMSPeer | null>;
12
6
  /**
13
7
  * Select the name of a {@link HMSPeer} given a peer ID.
14
8
  */
15
- export declare const selectPeerNameByID: (id?: string | undefined) => StoreSelector<string | undefined>;
9
+ export declare const selectPeerNameByID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, string | undefined>;
16
10
  /**
17
11
  * Select the {@link HMSTrack} object given a track ID.
18
12
  */
19
- export declare const selectTrackByID: (id?: string | undefined) => StoreSelector<HMSTrack | null>;
13
+ export declare const selectTrackByID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, HMSTrack | null>;
20
14
  /**
21
15
  * Select the primary video track of a peer given a peer ID.
22
16
  */
23
- export declare const selectVideoTrackByPeerID: (id?: string | undefined) => StoreSelector<HMSTrack | undefined>;
17
+ export declare const selectVideoTrackByPeerID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, HMSTrack | undefined>;
24
18
  /**
25
19
  * Select the primary audio track of a peer given a peer ID.
26
20
  */
27
- export declare const selectAudioTrackByPeerID: (id?: string | undefined) => StoreSelector<HMSTrack | undefined>;
21
+ export declare const selectAudioTrackByPeerID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, HMSTrack | undefined>;
28
22
  /**
29
23
  * Select the camera stream of a peer given a peer ID.
30
24
  * This is the primary video track of a peer.
31
25
  */
32
- export declare const selectCameraStreamByPeerID: (id?: string | undefined) => StoreSelector<HMSTrack | undefined>;
26
+ export declare const selectCameraStreamByPeerID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, HMSTrack | undefined>;
33
27
  /**
34
28
  * Select an array of auxiliary tracks of a peer given a peer ID.
35
29
  */
36
- export declare const selectAuxiliaryTracksByPeerID: (id?: string | undefined) => StoreSelector<HMSTrack[]>;
30
+ export declare const selectAuxiliaryTracksByPeerID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, HMSTrack[]>;
37
31
  /**
38
32
  * Select the audio level of a track given a track ID.
39
33
  */
40
- export declare const selectTrackAudioByID: (id?: string | undefined) => StoreSelector<number>;
34
+ export declare const selectTrackAudioByID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, number>;
41
35
  /**
42
36
  * Select audio level of audioTrack of a peer given a peer IDß.
43
37
  */
44
- export declare const selectPeerAudioByID: (id?: string | undefined) => StoreSelector<number>;
38
+ export declare const selectPeerAudioByID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, number>;
45
39
  /**
46
40
  * Select the first auxiliary audio track of a peer given a peer ID.
47
41
  */
48
- export declare const selectAuxiliaryAudioByPeerID: (id?: string | undefined) => StoreSelector<HMSTrack | undefined>;
49
- export declare const selectVideoPlaylistVideoTrackByPeerID: (id?: string | undefined) => StoreSelector<HMSTrack | undefined>;
50
- export declare const selectVideoPlaylistAudioTrackByPeerID: (id?: string | undefined) => StoreSelector<HMSTrack | undefined>;
51
- export declare const selectAudioPlaylistTrackByPeerID: (id?: string | undefined) => StoreSelector<HMSTrack | undefined>;
52
- export declare const selectScreenSharesByPeerId: (id?: string | undefined) => StoreSelector<{
42
+ export declare const selectAuxiliaryAudioByPeerID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, HMSTrack | undefined>;
43
+ export declare const selectVideoPlaylistVideoTrackByPeerID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, HMSTrack | undefined>;
44
+ export declare const selectVideoPlaylistAudioTrackByPeerID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, HMSTrack | undefined>;
45
+ export declare const selectAudioPlaylistTrackByPeerID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, HMSTrack | undefined>;
46
+ export declare const selectScreenSharesByPeerId: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, {
53
47
  video: HMSTrack | undefined;
54
48
  audio: HMSTrack | undefined;
55
49
  }>;
@@ -70,23 +64,23 @@ export declare const selectScreenShareAudioByPeerID: (id?: string | undefined) =
70
64
  /**
71
65
  * Select a boolean denoting whether a peer has unmuted audio and sharing it to other peers.
72
66
  */
73
- export declare const selectIsPeerAudioEnabled: (id?: string | undefined) => StoreSelector<boolean>;
67
+ export declare const selectIsPeerAudioEnabled: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, boolean>;
74
68
  /**
75
69
  * Select a boolean denoting whether a peer has unmuted video and sharing it to other peers.
76
70
  */
77
- export declare const selectIsPeerVideoEnabled: (id?: string | undefined) => StoreSelector<boolean>;
71
+ export declare const selectIsPeerVideoEnabled: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, boolean>;
78
72
  /**
79
73
  * Select a boolean denoting whether you've muted an audio track locally(only for you) given a track ID.
80
74
  */
81
- export declare const selectIsAudioLocallyMuted: (id?: string | undefined) => StoreSelector<boolean | undefined>;
75
+ export declare const selectIsAudioLocallyMuted: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, boolean | undefined>;
82
76
  /**
83
77
  * Select a boolean denoting whether you've muted the primary audio track of a peer locally(only for you) given a peer ID.
84
78
  */
85
- export declare const selectIsLocallyMutedByPeerID: (id?: string | undefined) => StoreSelector<boolean | undefined>;
79
+ export declare const selectIsLocallyMutedByPeerID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, boolean | undefined>;
86
80
  /**
87
81
  * Select a boolean denoting whether you've muted the screen share audio track of a peer locally(only for you) given a peer ID.
88
82
  */
89
- export declare const selectIsScreenShareLocallyMutedByPeerID: (id?: string | undefined) => StoreSelector<boolean | undefined>;
83
+ export declare const selectIsScreenShareLocallyMutedByPeerID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, boolean | undefined>;
90
84
  /**
91
85
  * Select the local audio volume of an audio track given a track ID.
92
86
  *
@@ -94,25 +88,25 @@ export declare const selectIsScreenShareLocallyMutedByPeerID: (id?: string | und
94
88
  * - Audio Level measures the audio of a track and it comes from 100ms's servers.
95
89
  * - Volume is how loud you hear the audio of a track, this is controlled by you at the client side.
96
90
  */
97
- export declare const selectAudioTrackVolume: (id?: string | undefined) => StoreSelector<number | undefined>;
91
+ export declare const selectAudioTrackVolume: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, number | undefined>;
98
92
  /**
99
93
  * Select the local audio volume of the primary audio track of a peer given a peer ID.
100
94
  */
101
- export declare const selectAudioVolumeByPeerID: (id?: string | undefined) => StoreSelector<number | undefined>;
95
+ export declare const selectAudioVolumeByPeerID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, number | undefined>;
102
96
  /**
103
97
  * Select the local audio volume of the screen share of a peer given a peer ID.
104
98
  */
105
- export declare const selectScreenshareAudioVolumeByPeerID: (id?: string | undefined) => StoreSelector<number | undefined>;
99
+ export declare const selectScreenshareAudioVolumeByPeerID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, number | undefined>;
106
100
  /**
107
101
  * Select the current simulcast layer of a track given a track ID.
108
102
  */
109
- export declare const selectSimulcastLayerByTrack: (id?: string | undefined) => StoreSelector<import("../../../../hms-video-web/dist").HMSSimulcastLayer | undefined>;
103
+ export declare const selectSimulcastLayerByTrack: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, import("../../../../hms-video-web/dist").HMSSimulcastLayer | undefined>;
110
104
  export declare const selectBroadcastMessages: import("reselect").OutputSelector<HMSStore, import("../schema").HMSMessage[], (res: import("../schema").HMSMessage[]) => import("../schema").HMSMessage[]>;
111
105
  export declare const selectBroadcastMessagesUnreadCount: import("reselect").OutputSelector<HMSStore, number, (res: import("../schema").HMSMessage[]) => number>;
112
- export declare const selectMessagesByPeerID: (id?: string | undefined) => StoreSelector<import("../schema").HMSMessage[] | undefined>;
113
- export declare const selectMessagesByRole: (id?: string | undefined) => StoreSelector<import("../schema").HMSMessage[] | undefined>;
114
- export declare const selectMessagesUnreadCountByRole: (id?: string | undefined) => StoreSelector<number>;
115
- export declare const selectMessagesUnreadCountByPeerID: (id?: string | undefined) => StoreSelector<number>;
106
+ export declare const selectMessagesByPeerID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, import("../schema").HMSMessage[] | undefined>;
107
+ export declare const selectMessagesByRole: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, import("../schema").HMSMessage[] | undefined>;
108
+ export declare const selectMessagesUnreadCountByRole: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, number>;
109
+ export declare const selectMessagesUnreadCountByPeerID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore, number>;
116
110
  /**
117
111
  * Select an array of peers of a particular role
118
112
  * @param role HMSRoleName
@@ -0,0 +1,13 @@
1
+ import { HMSSdk } from '@100mslive/hms-video';
2
+ import { Subscribe } from 'zustand/vanilla';
3
+ import { HMSInternalsStore, IHMSStore, HMSInternalsStoreWrapper, GetState } from '..';
4
+ export declare class HMSWebrtcInternals implements HMSInternalsStoreWrapper {
5
+ private hmsStore;
6
+ private sdk?;
7
+ readonly getState: GetState<HMSInternalsStore>;
8
+ readonly subscribe: Subscribe<HMSInternalsStore>;
9
+ readonly getPublishPeerConnection: () => Promise<RTCPeerConnection | undefined>;
10
+ readonly getSubscribePeerConnection: () => Promise<RTCPeerConnection | undefined>;
11
+ private readonly store;
12
+ constructor(hmsStore: IHMSStore, sdk?: HMSSdk | undefined);
13
+ }
@@ -0,0 +1,2 @@
1
+ export { HMSWebrtcInternals } from './HMSWebrtcInternals';
2
+ export * as selectHMSStats from './selectors';
@@ -0,0 +1,73 @@
1
+ import { HMSInternalsStore } from '../schema';
2
+ /**
3
+ * The total number of packets lost during the call
4
+ */
5
+ export declare const packetsLost: (store: HMSInternalsStore) => number;
6
+ export declare const jitter: (store: HMSInternalsStore) => number;
7
+ /**
8
+ * Local peer stats selectors
9
+ */
10
+ export declare const localPeerStats: import("reselect").OutputSelector<HMSInternalsStore, import("../schema").HMSPeerStats | undefined, (res1: Record<string, import("../schema").HMSPeerStats | undefined>, res2: string) => import("../schema").HMSPeerStats | undefined>;
11
+ /**
12
+ * The bitrate at which all the local tracks are being published at
13
+ */
14
+ export declare const publishBitrate: import("reselect").OutputSelector<HMSInternalsStore, number | undefined, (res: import("../schema").HMSPeerStats | undefined) => number | undefined>;
15
+ /**
16
+ * The bitrate at which all the remote tracks are being received at
17
+ */
18
+ export declare const subscribeBitrate: import("reselect").OutputSelector<HMSInternalsStore, number | undefined, (res: import("../schema").HMSPeerStats | undefined) => number | undefined>;
19
+ /**
20
+ * The total bitrate available for publishing
21
+ */
22
+ export declare const availablePublishBitrate: import("reselect").OutputSelector<HMSInternalsStore, number | undefined, (res: import("../schema").HMSPeerStats | undefined) => number | undefined>;
23
+ /**
24
+ * The total bitrate available for subscribing to remote peers
25
+ */
26
+ export declare const availableSubscribeBitrate: import("reselect").OutputSelector<HMSInternalsStore, number | undefined, (res: import("../schema").HMSPeerStats | undefined) => number | undefined>;
27
+ /**
28
+ * The total bytes sent by the local peer
29
+ */
30
+ export declare const totalBytesSent: import("reselect").OutputSelector<HMSInternalsStore, number | undefined, (res: import("../schema").HMSPeerStats | undefined) => number | undefined>;
31
+ /**
32
+ * The total bytes received by the local peer
33
+ */
34
+ export declare const totalBytesReceived: import("reselect").OutputSelector<HMSInternalsStore, number | undefined, (res: import("../schema").HMSPeerStats | undefined) => number | undefined>;
35
+ /**
36
+ * Stats(bitrate, bytes sent/received, etc...) for a single peer given the peer ID
37
+ */
38
+ export declare const peerStatsByID: (id?: string | undefined) => import("../selectors/common").StoreSelector<HMSInternalsStore, import("../schema").HMSPeerStats | undefined>;
39
+ /**
40
+ * Stats(bitrate, bytes sent/received, framerate, FPS, etc...) for a single track
41
+ */
42
+ export declare const trackStatsByID: (id?: string | undefined) => import("../selectors/common").StoreSelector<HMSInternalsStore, import("../schema").HMSTrackStats | undefined>;
43
+ /**
44
+ * The bitrate at which the track's data is being received
45
+ */
46
+ export declare const bitrateByTrackID: (id?: string | undefined) => import("../selectors/common").StoreSelector<HMSInternalsStore, number | undefined>;
47
+ /**
48
+ * Bytes received from a particular track
49
+ */
50
+ export declare const bytesReceivedByTrackID: (id?: string | undefined) => import("../selectors/common").StoreSelector<HMSInternalsStore, number | undefined>;
51
+ /**
52
+ * The framerate(frames per second) of a particular video track
53
+ */
54
+ export declare const framerateByTrackID: (id?: string | undefined) => import("../selectors/common").StoreSelector<HMSInternalsStore, number | undefined>;
55
+ /**
56
+ * The jitter faced while receiving a particular track
57
+ */
58
+ export declare const jitterByTrackID: (id?: string | undefined) => import("../selectors/common").StoreSelector<HMSInternalsStore, number | undefined>;
59
+ /**
60
+ * The number of packets lost while receiving a particular track
61
+ */
62
+ export declare const packetsLostByTrackID: (id?: string | undefined) => import("../selectors/common").StoreSelector<HMSInternalsStore, number | undefined>;
63
+ /**
64
+ * Local track stats selectors
65
+ */
66
+ export declare const localAudioTrackStats: import("reselect").OutputSelector<HMSInternalsStore, import("../schema").HMSTrackStats | undefined, (res1: Record<string, import("../schema").HMSTrackStats | undefined>, res2: string | undefined) => import("../schema").HMSTrackStats | undefined>;
67
+ export declare const localVideoTrackStats: import("reselect").OutputSelector<HMSInternalsStore, import("../schema").HMSTrackStats | undefined, (res1: Record<string, import("../schema").HMSTrackStats | undefined>, res2: string | undefined) => import("../schema").HMSTrackStats | undefined>;
68
+ export declare const localAudioTrackBitrate: import("reselect").OutputSelector<HMSInternalsStore, number | undefined, (res: import("../schema").HMSTrackStats | undefined) => number | undefined>;
69
+ export declare const localVideoTrackBitrate: import("reselect").OutputSelector<HMSInternalsStore, number | undefined, (res: import("../schema").HMSTrackStats | undefined) => number | undefined>;
70
+ export declare const localAudioTrackBytesSent: import("reselect").OutputSelector<HMSInternalsStore, number | undefined, (res: import("../schema").HMSTrackStats | undefined) => number | undefined>;
71
+ export declare const localVideoTrackBytesSent: import("reselect").OutputSelector<HMSInternalsStore, number | undefined, (res: import("../schema").HMSTrackStats | undefined) => number | undefined>;
72
+ export declare const localVideoTrackFramerate: import("reselect").OutputSelector<HMSInternalsStore, number | undefined, (res: import("../schema").HMSTrackStats | undefined) => number | undefined>;
73
+ export declare const localVideoTrackQualityLimitationReason: import("reselect").OutputSelector<HMSInternalsStore, string | undefined, (res: import("../schema").HMSTrackStats | undefined) => string | undefined>;
@@ -0,0 +1,3 @@
1
+ import { HMSSdk } from '@100mslive/hms-video';
2
+ import { IHMSStore, IHMSInternalsStore } from '../IHMSStore';
3
+ export declare const subscribeToSdkWebrtcStats: (sdk: HMSSdk, webrtcStore: IHMSInternalsStore, store: IHMSStore) => void;
@@ -1 +1 @@
1
- var ht=Object.create;var $=Object.defineProperty,gt=Object.defineProperties,Tt=Object.getOwnPropertyDescriptor,yt=Object.getOwnPropertyDescriptors,Ht=Object.getOwnPropertyNames,xe=Object.getOwnPropertySymbols,ft=Object.getPrototypeOf,Oe=Object.prototype.hasOwnProperty,kt=Object.prototype.propertyIsEnumerable;var we=(s,e,t)=>e in s?$(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,_=(s,e)=>{for(var t in e||(e={}))Oe.call(e,t)&&we(s,t,e[t]);if(xe)for(var t of xe(e))kt.call(e,t)&&we(s,t,e[t]);return s},K=(s,e)=>gt(s,yt(e)),Ne=s=>$(s,"__esModule",{value:!0});var Pt=(s,e)=>{Ne(s);for(var t in e)$(s,t,{get:e[t],enumerable:!0})},Rt=(s,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ht(e))!Oe.call(s,i)&&i!=="default"&&$(s,i,{get:()=>e[i],enumerable:!(t=Tt(e,i))||t.enumerable});return s},R=s=>Rt(Ne($(s!=null?ht(ft(s)):{},"default",s&&s.__esModule&&"default"in s?{get:()=>s.default,enumerable:!0}:{value:s,enumerable:!0})),s);var c=(s,e,t)=>new Promise((i,o)=>{var r=h=>{try{u(t.next(h))}catch(P){o(P)}},n=h=>{try{u(t.throw(h))}catch(P){o(P)}},u=h=>h.done?i(h.value):Promise.resolve(h.value).then(r,n);u((t=t.apply(s,e)).next())});Pt(exports,{HMSAudioPluginType:()=>a.HMSAudioPluginType,HMSLogLevel:()=>a.HMSLogLevel,HMSMessageType:()=>ce,HMSNotificationSeverity:()=>k,HMSNotificationTypes:()=>M,HMSPlaylistType:()=>S,HMSReactiveStore:()=>O,HMSRoomState:()=>H,HMSVideoPluginType:()=>a.HMSVideoPluginType,createDefaultStoreState:()=>F,selectAudioPlaylist:()=>He,selectAudioPlaylistTrackByPeerID:()=>ns,selectAudioTrackByPeerID:()=>st,selectAudioTrackVolume:()=>Ie,selectAudioVolumeByPeerID:()=>us,selectAuxiliaryAudioByPeerID:()=>is,selectAuxiliaryTracksByPeerID:()=>Zt,selectAvailableRoleNames:()=>$t,selectBroadcastMessages:()=>nt,selectBroadcastMessagesUnreadCount:()=>gs,selectCameraStreamByPeerID:()=>zt,selectDegradedTracks:()=>Vt,selectDevices:()=>It,selectDominantSpeaker:()=>xt,selectHLSState:()=>Jt,selectHMSMessages:()=>W,selectHMSMessagesCount:()=>me,selectIsAllowedToPublish:()=>Is,selectIsAllowedToSubscribe:()=>Ft,selectIsAudioLocallyMuted:()=>De,selectIsConnectedToRoom:()=>Et,selectIsInPreview:()=>qt,selectIsLocalAudioEnabled:()=>Ot,selectIsLocalAudioPluginPresent:()=>Ls,selectIsLocalScreenShared:()=>ie,selectIsLocalVideoDisplayEnabled:()=>Me,selectIsLocalVideoEnabled:()=>se,selectIsLocalVideoPluginPresent:()=>Cs,selectIsLocallyMutedByPeerID:()=>ds,selectIsPeerAudioEnabled:()=>cs,selectIsPeerVideoEnabled:()=>ls,selectIsScreenShareLocallyMutedByPeerID:()=>Ss,selectIsSomeoneScreenSharing:()=>wt,selectLocalAudioTrackID:()=>w,selectLocalMediaSettings:()=>Se,selectLocalPeer:()=>E,selectLocalPeerID:()=>ue,selectLocalPeerRole:()=>Y,selectLocalTrackIDs:()=>pe,selectLocalVideoTrackID:()=>N,selectMessageIDsInOrder:()=>de,selectMessagesByPeerID:()=>Ts,selectMessagesByRole:()=>ys,selectMessagesMap:()=>le,selectMessagesUnreadCountByPeerID:()=>fs,selectMessagesUnreadCountByRole:()=>Hs,selectPeerAudioByID:()=>ss,selectPeerByID:()=>b,selectPeerCount:()=>bt,selectPeerMetadata:()=>Ps,selectPeerNameByID:()=>Xt,selectPeerScreenSharing:()=>je,selectPeerSharingAudio:()=>Nt,selectPeerSharingAudioPlaylist:()=>Kt,selectPeerSharingVideoPlaylist:()=>_t,selectPeers:()=>te,selectPeersByRole:()=>ks,selectPeersMap:()=>v,selectPeersScreenSharing:()=>Ut,selectPeersWithAudioStatus:()=>Rs,selectPermissions:()=>ge,selectRTMPState:()=>jt,selectRecordingState:()=>Gt,selectRemotePeers:()=>Lt,selectRoleByRoleName:()=>Es,selectRoleChangeRequest:()=>Ds,selectRolesMap:()=>x,selectRoom:()=>I,selectRoomStartTime:()=>Yt,selectRoomStarted:()=>he,selectRoomState:()=>oe,selectScreenShareAudioByPeerID:()=>ve,selectScreenShareByPeerID:()=>as,selectScreenSharesByPeerId:()=>Re,selectScreenshareAudioVolumeByPeerID:()=>ps,selectSessionId:()=>Wt,selectSimulcastLayerByTrack:()=>Ms,selectSpeakers:()=>Ge,selectTrackAudioByID:()=>es,selectTrackByID:()=>X,selectTracksMap:()=>T,selectUnreadHMSMessagesCount:()=>Bt,selectVideoPlaylist:()=>fe,selectVideoPlaylistAudioTrackByPeerID:()=>rs,selectVideoPlaylistVideoTrackByPeerID:()=>os,selectVideoTrackByPeerID:()=>tt});var ut=R(require("immer")),pt=R(require("zustand/vanilla")),Mt=R(require("zustand/shallow")),mt=R(require("@100mslive/hms-video"));var H;(function(n){n.Disconnected="Disconnected",n.Preview="Preview",n.Connecting="Connecting",n.Connected="Connected",n.Reconnecting="Reconnecting",n.Failed="Failed"})(H||(H={}));var F=()=>({room:{id:"",isConnected:!1,name:"",peers:[],shareableLink:"",localPeer:"",hasWaitingRoom:!1,roomState:H.Disconnected,recording:{browser:{running:!1},server:{running:!1}},rtmp:{running:!1},hls:{running:!1,url:""},sessionId:""},peers:{},tracks:{},playlist:{audio:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1},video:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1}},messages:{byID:{},allIDs:[]},speakers:{},settings:{audioInputDeviceId:"",audioOutputDeviceId:"",videoInputDeviceId:""},devices:{audioInput:[],audioOutput:[],videoInput:[]},roles:{},roleChangeRequests:[],errors:[]});var ce;(function(e){e.CHAT="chat"})(ce||(ce={}));var k;(function(i){i.INFO="info",i.ERROR="error",i.CRITICAL="critical"})(k||(k={}));var M;(function(l){l.PEER_JOINED="PEER_JOINED",l.PEER_LEFT="PEER_LEFT",l.PEER_LIST="PEER_LIST",l.NEW_MESSAGE="NEW_MESSAGE",l.ERROR="ERROR",l.RECONNECTING="RECONNECTING",l.RECONNECTED="RECONNECTED",l.TRACK_ADDED="TRACK_ADDED",l.TRACK_REMOVED="TRACK_REMOVED",l.TRACK_MUTED="TRACK_MUTED",l.TRACK_UNMUTED="TRACK_UNMUTED",l.TRACK_DEGRADED="TRACK_DEGRADED",l.TRACK_RESTORED="TRACK_RESTORED",l.ROLE_CHANGE_REQUEST="ROLE_CHANGE_REQUEST",l.ROLE_UPDATED="ROLE_UPDATED",l.CHANGE_TRACK_STATE_REQUEST="CHANGE_TRACK_STATE_REQUEST",l.CHANGE_MULTI_TRACK_STATE_REQUEST="CHANGE_MULTI_TRACK_STATE_REQUEST",l.ROOM_ENDED="ROOM_ENDED",l.REMOVED_FROM_ROOM="REMOVED_FROM_ROOM",l.DEVICE_CHANGE_UPDATE="DEVICE_CHANGE_UPDATE",l.PLAYLIST_TRACK_ENDED="PLAYLIST_TRACK_ENDED",l.NAME_UPDATED="NAME_UPDATED",l.METADATA_UPDATED="METADATA_UPDATED"})(M||(M={}));var S;(function(t){t.audio="audio",t.video="video"})(S||(S={}));var a=R(require("@100mslive/hms-video"));var L=R(require("@100mslive/hms-video"));var Ue=(s,e)=>{let t=qe(Object.keys(s),Object.keys(e));for(let i of t){let o=s[i],r=e[i];Ke(o,r)?(C(o.auxiliaryTracks,r.auxiliaryTracks)&&(r.auxiliaryTracks=o.auxiliaryTracks),Object.assign(o,r)):Ve(o,r)?delete s[i]:Be(o,r)&&(s[i]=r)}},_e=(s,e)=>{let t=qe(Object.keys(s),Object.keys(e));for(let i of t){let o=s[i],r=e[i];Ke(o,r)?(vt(o,r),Object.assign(o,r)):Ve(o,r)?delete s[i]:Be(o,r)&&(s[i]=r)}},vt=(s,e)=>{s.plugins&&C(s.plugins,e.plugins)&&(e.plugins=s.plugins),s.layerDefinitions&&C(s.layerDefinitions,e.layerDefinitions)&&(e.layerDefinitions=s.layerDefinitions)},Ke=(s,e)=>s&&e,Ve=(s,e)=>s&&!e,Be=(s,e)=>!s&&e,C=(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},qe=(s,e)=>{let t=new Set;for(let i of s)t.add(i);for(let i of e)t.add(i);return Array.from(t)};var g=class{static convertPeer(e){var t,i,o;return{id:e.peerId,name:e.name,roleName:(t=e.role)==null?void 0:t.name,isLocal:e.isLocal,videoTrack:(i=e.videoTrack)==null?void 0:i.trackId,audioTrack:(o=e.audioTrack)==null?void 0:o.trackId,auxiliaryTracks:e.auxiliaryTracks.map(r=>r.trackId),customerUserId:e.customerUserId,customerDescription:e.metadata,metadata:e.metadata}}static convertTrack(e,t){let i={id:e.trackId,source:e.source,type:e.type,enabled:e.enabled,displayEnabled:e.enabled,peerId:e.peerId||t};return this.enrichTrack(i,e),i}static enrichTrack(e,t){let i=t.getMediaTrackSettings();e.source==="screen"&&e.type==="video"&&(e.displaySurface=i.displaySurface),e.height=i.height,e.width=i.width,t instanceof L.HMSRemoteAudioTrack&&(e.volume=t.getVolume()||0),g.updateDeviceID(e,t),g.enrichVideoTrack(e,t),g.enrichPluginsDetails(e,t)}static updateDeviceID(e,t){var i;t instanceof L.HMSLocalVideoTrack||t instanceof L.HMSLocalAudioTrack?e.deviceID=t.settings.deviceId:e.deviceID=(i=t.getMediaTrackSettings())==null?void 0:i.deviceId}static enrichVideoTrack(e,t){t instanceof L.HMSRemoteVideoTrack&&(e.layer=t.getSimulcastLayer(),e.degraded=t.degraded,C(t.getSimulcastDefinitions(),e.layerDefinitions)||(e.layerDefinitions=t.getSimulcastDefinitions()))}static enrichPluginsDetails(e,t){(t instanceof L.HMSLocalVideoTrack||t instanceof L.HMSLocalAudioTrack)&&(C(t.getPlugins(),e.plugins)||(e.plugins=t.getPlugins()))}static convertRoom(e){var t,i,o,r,n,u,h;return{id:e.id,name:e.name,localPeer:(i=(t=e.localPeer)==null?void 0:t.peerId)!=null?i:"",hasWaitingRoom:e.hasWaitingRoom,shareableLink:e.shareableLink,recording:{browser:{running:!!((o=e.recording)==null?void 0:o.browser.running)},server:{running:!!((r=e.recording)==null?void 0:r.server.running)}},rtmp:{running:!!((n=e.rtmp)==null?void 0:n.running)},hls:{running:!!((u=e.hls)==null?void 0:u.running),url:((h=e.hls)==null?void 0:h.url)||""},sessionId:e.sessionId,startedAt:e.startedAt}}static convertMessage(e){var t,i,o;return{sender:e.sender.peerId,senderName:e.sender.name,senderRole:(t=e.sender.role)==null?void 0:t.name,senderUserId:e.sender.customerUserId,recipientPeer:(i=e.recipientPeer)==null?void 0:i.peerId,recipientRoles:(o=e.recipientRoles)==null?void 0:o.map(r=>r.name),time:e.time,type:e.type,message:e.message}}static convertRoles(e){let t={};return e&&e.forEach(i=>{t[i.name]=i}),t}static convertRoleChangeRequest(e){return{requestedBy:e.requestedBy.peerId,roleName:e.role.name,token:e.token}}static convertException(e){return{code:e.code,action:e.action,name:e.name,message:e.message,description:e.description,isTerminal:e.isTerminal,nativeError:e.nativeError,timestamp:new Date}}static convertDeviceChangeUpdate(e){let t={devices:e.devices,selection:e.selection,type:e.type};return e.error&&(t.error=this.convertException(e.error)),t}static convertPlaylist(e){let t=this.getConvertedPlaylistType(e,S.audio),i=this.getConvertedPlaylistType(e,S.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 K(_({},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),u=e.getList(t),h=e.getCurrentIndex(t);return e.getList(t).forEach(P=>{i[P.id]=g.convertPlaylistItem(e,P)}),{list:i,selection:{id:o==null?void 0:o.id,hasPrevious:h>0,hasNext:h<u.length-1},progress:r,volume:n,currentTime:e.getCurrentTime(t),playbackRate:e.getPlaybackRate(t)}}static convertRecordingRTMPState(e,t,i){var o,r;return{recording:{browser:{running:!!((o=e==null?void 0:e.browser)==null?void 0:o.running)},server:{running:!!((r=e==null?void 0:e.server)==null?void 0:r.running)}},rtmp:{running:!!(t==null?void 0:t.running)},hls:{url:(i==null?void 0:i.url)||"",running:!!(i==null?void 0:i.running)}}}};var d=R(require("reselect"));function U(s,e,t=Dt){let i,o;if(e)for(let r of e.auxiliaryTracks){let n=s[r];t(n)&&(o=G(n)?n:o,i=j(n)?n:i)}return{video:i,audio:o}}function G(s){return s&&s.type==="audio"}function j(s){return s&&s.type==="video"}function Dt(s){return s&&s.source==="screen"}function ee(s){return s&&s.source==="audioplaylist"}function J(s){return s&&s.source==="videoplaylist"}function $e(s){return Boolean(s==null?void 0:s.degraded)}function V(s,e){return e&&s.tracks[e]?s.tracks[e].enabled:!1}function Fe(s,e){return e&&s.tracks[e]?s.tracks[e].displayEnabled:!1}var I=s=>s.room,v=s=>s.peers,le=s=>s.messages.byID,de=s=>s.messages.allIDs,T=s=>s.tracks,Se=s=>s.settings,It=s=>s.devices,Ge=s=>s.speakers,Et=(0,d.createSelector)([I],s=>s&&s.isConnected),bt=(0,d.createSelector)(I,s=>s.peers.length),te=(0,d.createSelector)([I,v],(s,e)=>s.peers.map(t=>e[t])),At=(0,d.createSelector)(T,s=>Object.values(s)),E=(0,d.createSelector)(I,v,(s,e)=>e[s.localPeer]),ue=(0,d.createSelector)(I,s=>s.localPeer),w=(0,d.createSelector)(E,s=>s==null?void 0:s.audioTrack),N=(0,d.createSelector)(E,s=>s==null?void 0:s.videoTrack),Ct=(0,d.createSelector)(E,s=>s==null?void 0:s.auxiliaryTracks),pe=(0,d.createSelector)([w,N,Ct],(s,e,t)=>{let i=[...t];return s&&i.unshift(s),e&&i.unshift(e),i}),Lt=(0,d.createSelector)(te,s=>s.filter(e=>!e.isLocal)),xt=(0,d.createSelector)(v,Ge,(s,e)=>{let t=Object.entries(e).sort((i,o)=>{var u,h;let r=((u=i[1])==null?void 0:u.audioLevel)||0;return(((h=o[1])==null?void 0:h.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}),Ot=s=>{let e=E(s);return V(s,e==null?void 0:e.audioTrack)},se=s=>{let e=E(s);return V(s,e==null?void 0:e.videoTrack)},Me=s=>{let e=E(s);return Fe(s,e==null?void 0:e.videoTrack)},ie=(0,d.createSelector)(E,T,(s,e)=>{let{video:t,audio:i}=U(e,s);return!!(t||i)}),je=(0,d.createSelector)(v,T,(s,e)=>{let t;for(let i in s){let o=s[i],{video:r,audio:n}=U(e,o);if(r)return o;n&&!t&&(t=o)}return t}),wt=(0,d.createSelector)(je,s=>!!s),Nt=(0,d.createSelector)(v,T,(s,e)=>{for(let t in s){let i=s[t],{audio:o,video:r}=U(e,i);if(!r&&!!o)return i}}),Ut=(0,d.createSelector)(v,T,(s,e)=>{let t=[],i=[];for(let o in s){let r=s[o],{video:n,audio:u}=U(e,r);n?t.push(r):u&&i.push(r)}return t.concat(i)}),_t=(0,d.createSelector)(v,T,(s,e)=>{for(let t in e){let i=e[t];if(J(i)&&j(i)&&i.peerId)return s[i.peerId]}}),Kt=(0,d.createSelector)(v,T,(s,e)=>{for(let t in e){let i=e[t];if(ee(i)&&i.peerId)return s[i.peerId]}}),Vt=(0,d.createSelector)(At,s=>s.filter($e)),me=(0,d.createSelector)(de,s=>s.length),Bt=(0,d.createSelector)(le,s=>Object.values(s).filter(e=>!e.read).length),W=(0,d.createSelector)(de,le,(s,e)=>{let t=[];return s.forEach(i=>{t.push(e[i])}),t}),oe=(0,d.createSelector)([I],s=>s&&s.roomState),qt=(0,d.createSelector)(oe,s=>s===H.Preview),he=(0,d.createSelector)(I,s=>s.roomState!==H.Disconnected),x=s=>s.roles,$t=(0,d.createSelector)([x],s=>Object.keys(s)),Y=(0,d.createSelector)([E,x],(s,e)=>(s==null?void 0:s.roleName)?e[s.roleName]:null),Ft=(0,d.createSelector)([Y],s=>{var e;return((e=s==null?void 0:s.subscribeParams)==null?void 0:e.subscribeToRoles)?s.subscribeParams.subscribeToRoles.length>0:!1}),ge=(0,d.createSelector)(Y,s=>s==null?void 0:s.permissions),Gt=(0,d.createSelector)(I,s=>s.recording),jt=(0,d.createSelector)(I,s=>s.rtmp),Jt=(0,d.createSelector)(I,s=>s.hls),Wt=(0,d.createSelector)(I,s=>s.sessionId),Yt=(0,d.createSelector)(I,s=>s.startedAt);var Te=R(require("reselect"));var Je=(s=S.audio)=>e=>e.playlist[s].list,ye=(s=S.audio)=>e=>e.playlist[s].selection,We=(s=S.audio)=>e=>e.playlist[s].progress,Ye=(s=S.audio)=>e=>e.playlist[s].currentTime,Qe=(s=S.audio)=>e=>e.playlist[s].playbackRate,Xe=(s=S.audio)=>e=>e.playlist[s].volume,ze=(s=S.audio)=>(0,Te.createSelector)(Je(s),e=>Object.values(e)),Ze=(s=S.audio)=>(0,Te.createSelector)(Je(s),ye(s),(e,t)=>{if(!!t.id)return e[t.id]}),He={selection:ye(S.audio),progress:We(S.audio),currentTime:Ye(S.audio),playbackRate:Qe(S.audio),volume:Xe(S.audio),list:ze(S.audio),selectedItem:Ze(S.audio)},fe={selection:ye(S.video),progress:We(S.video),currentTime:Ye(S.video),playbackRate:Qe(S.video),volume:Xe(S.video),list:ze(S.video),selectedItem:Ze(S.video)};var y=R(require("reselect"));var Q="HMS-Store:",p=class{static v(e,...t){this.log(a.HMSLogLevel.VERBOSE,e,...t)}static d(...e){this.log(a.HMSLogLevel.DEBUG,...e)}static i(...e){this.log(a.HMSLogLevel.INFO,...e)}static w(...e){this.log(a.HMSLogLevel.WARN,...e)}static e(...e){this.log(a.HMSLogLevel.ERROR,...e)}static time(e){this.log(a.HMSLogLevel.TIME,"[HMSPerformanceTiming]",e)}static timeEnd(e){this.log(a.HMSLogLevel.TIMEEND,"[HMSPerformanceTiming]",e,e)}static cleanUp(){performance.clearMarks(),performance.clearMeasures()}static log(e,...t){if(!(this.level.valueOf()>e.valueOf()))switch(e){case a.HMSLogLevel.VERBOSE:{console.log(Q,...t);break}case a.HMSLogLevel.DEBUG:{console.debug(Q,...t);break}case a.HMSLogLevel.INFO:{console.info(Q,...t);break}case a.HMSLogLevel.WARN:{console.warn(Q,...t);break}case a.HMSLogLevel.ERROR:{console.error(Q,...t);break}case a.HMSLogLevel.TIME:{performance.mark(t[1]);break}case a.HMSLogLevel.TIMEEND:{let i=t[0],o=t[1];try{let r=performance.measure(o,o);this.log(a.HMSLogLevel.DEBUG,i,o,r==null?void 0:r.duration),performance.clearMarks(o),performance.clearMeasures(o)}catch(r){this.log(a.HMSLogLevel.DEBUG,i,o,r)}break}}}};p.level=a.HMSLogLevel.VERBOSE;function m(s){return e=>t=>s(t,e)}var ke=(s,e)=>e,Qt=(s,e)=>e,et=(s,e)=>e,D=(0,y.createSelector)([v,ke],(s,e)=>e?s[e]:null),Pe=(0,y.createSelector)([T,Qt],(s,e)=>e?s[e]:null),b=m(D),Xt=m((0,y.createSelector)(D,s=>s==null?void 0:s.name)),X=m(Pe),tt=m((s,e)=>{let t=D(s,e);if(t&&t.videoTrack&&t.videoTrack!=="")return s.tracks[t.videoTrack]}),st=m((s,e)=>{let t=D(s,e);if(t&&t.audioTrack&&t.audioTrack!=="")return s.tracks[t.audioTrack]}),zt=tt,Zt=m((s,e)=>{let t=D(s,e);return(t==null?void 0:t.auxiliaryTracks.map(i=>s.tracks[i]))||[]}),it=(s,e)=>e?s.speakers[e]:null,es=m((0,y.createSelector)(it,s=>(s==null?void 0:s.audioLevel)||0)),ts=(s,e)=>{let t=st(e)(s);return it(s,t==null?void 0:t.id)},ss=m((0,y.createSelector)(ts,s=>(s==null?void 0:s.audioLevel)||0)),is=m((s,e)=>{let t=D(s,e);if(t){let i=t==null?void 0:t.auxiliaryTracks.find(o=>G(s.tracks[o]));return i?s.tracks[i]:void 0}}),os=m((0,y.createSelector)(T,D,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(i=>{let o=s[i];return J(o)&&j(o)});return t?s[t]:void 0})),rs=m((0,y.createSelector)(T,D,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(i=>{let o=s[i];return J(o)&&G(o)});return t?s[t]:void 0})),ns=m((0,y.createSelector)(T,D,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(i=>{let o=s[i];return ee(o)&&G(o)});return t?s[t]:void 0})),Re=m((0,y.createSelector)(T,D,(s,e)=>U(s,e))),as=s=>(0,y.createSelector)(Re(s),e=>e.video),ve=s=>(0,y.createSelector)(Re(s),e=>e.audio),cs=m((s,e)=>{let t=D(s,e);return V(s,t==null?void 0:t.audioTrack)}),ls=m((s,e)=>{let t=D(s,e);return V(s,t==null?void 0:t.videoTrack)}),De=m((s,e)=>{if(e&&s.tracks[e])return s.tracks[e].volume===0}),ds=m((s,e)=>{let t=D(s,e);return De(t==null?void 0:t.audioTrack)(s)}),Ss=m((s,e)=>{let t=ve(e)(s);return De(t==null?void 0:t.id)(s)}),Ie=m((s,e)=>{let t=Pe(s,e);if(t){if(t.type!=="audio"){p.w("Please pass audio track here");return}return t.volume}}),us=m((s,e)=>{let t=D(s,e);return Ie(t==null?void 0:t.audioTrack)(s)}),ps=m((s,e)=>{let t=ve(e)(s);return Ie(t==null?void 0:t.id)(s)}),Ms=m((s,e)=>{let t=Pe(s,e);if(t){if(t.type!=="video"){p.w("Please pass video track here");return}return t.layer}}),ot=(0,y.createSelector)([W,ue,ke],(s,e,t)=>{if(!!t)return s.filter(i=>{var o;return!i.recipientPeer&&!((o=i.recipientRoles)==null?void 0:o.length)||![e,t].includes(i.sender)?!1:[e,t].includes(i.recipientPeer)})}),rt=(0,y.createSelector)([W,et],(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})}),nt=(0,y.createSelector)(W,s=>s.filter(e=>{var t;return!e.recipientPeer&&!((t=e.recipientRoles)==null?void 0:t.length)})),ms=(0,y.createSelector)([rt,et],s=>s?s.filter(e=>!e.read).length:0),hs=(0,y.createSelector)([ot,ke],s=>s?s.filter(e=>!e.read).length:0),gs=(0,y.createSelector)(nt,s=>s.filter(e=>!e.read).length),Ts=m(ot),ys=m(rt),Hs=m(ms),fs=m(hs),ks=s=>(0,y.createSelector)([te],e=>e.filter(t=>t.roleName===s)),Ps=s=>(0,y.createSelector)(b(s),e=>{try{return(e==null?void 0:e.metadata)&&e.metadata!==""?JSON.parse(e.metadata):{}}catch(t){return console.error("cannot parse peer metadata",t),{}}});var re=R(require("reselect")),Rs=(0,re.createSelector)([v,T],(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}})),vs=s=>s.roleChangeRequests[0]||null,Ds=(0,re.createSelector)([vs,v,x],(s,e,t)=>s?{requestedBy:e[s.requestedBy],role:t[s.roleName],token:s.token}:null),Is=(0,re.createSelector)([Y],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 B=R(require("reselect"));var Es=s=>(0,B.createSelector)([x],e=>e[s]),bs=(0,B.createSelector)([N,T],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),As=(0,B.createSelector)([w,T],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),Cs=s=>(0,B.createSelector)([bs],e=>e.includes(s)),Ls=s=>(0,B.createSelector)([As],e=>e.includes(s));var z=R(require("@100mslive/hms-video"));var ne=R(require("@100mslive/hms-video"));function at(s){return s instanceof ne.HMSRemoteAudioTrack||s instanceof ne.HMSRemoteVideoTrack}var ae=class{constructor(e,t,i,o){this.playlistManager=e;this.syncPlaylistState=i;this.store=o;this.type=t}play(e){return c(this,null,function*(){if(!e){p.w("Please pass id to play");return}yield this.playlistManager.setEnabled(!0,{id:e,type:this.type})})}pause(){return c(this,null,function*(){let e=this.type===S.audio?He:fe,t=this.store.getState(e.selection);if(!t.id){p.w("No item is currently playing to pause");return}yield this.playlistManager.setEnabled(!1,{id:t.id,type:this.type})})}playNext(){return c(this,null,function*(){yield this.playlistManager.playNext(this.type)})}playPrevious(){return c(this,null,function*(){yield this.playlistManager.playPrevious(this.type)})}seek(e){this.playlistManager.seek(e,this.type),this.syncPlaylistState(`seekOn${this.type}Playlist`)}seekTo(e){this.playlistManager.seekTo(e,this.type),this.syncPlaylistState(`seekToOn${this.type}Playlist`)}setVolume(e){this.playlistManager.setVolume(e,this.type),this.syncPlaylistState(`setVolumeOn${this.type}Playlist`)}setList(e){this.playlistManager.setList(e),this.syncPlaylistState(`setListOn${this.type}Playlist`)}stop(){return c(this,null,function*(){yield this.playlistManager.stop(this.type),this.syncPlaylistState(`stop${this.type}Playlist`)})}setIsAutoplayOn(e){this.playlistManager.setIsAutoplayOn(this.type,e)}setPlaybackRate(e){this.playlistManager.setPlaybackRate(this.type,e),this.syncPlaylistState(`set${this.type}PlaybackRate`)}};var ct={[a.HMSPeerUpdate.PEER_JOINED]:M.PEER_JOINED,[a.HMSPeerUpdate.PEER_LEFT]:M.PEER_LEFT,[a.HMSPeerUpdate.ROLE_UPDATED]:M.ROLE_UPDATED,[a.HMSPeerUpdate.AUDIO_TOGGLED]:"PEER_AUDIO_UPDATED",[a.HMSPeerUpdate.VIDEO_TOGGLED]:"PEER_VIDEO_UPDATED",[a.HMSPeerUpdate.NAME_UPDATED]:M.NAME_UPDATED,[a.HMSPeerUpdate.METADATA_UPDATED]:M.METADATA_UPDATED},lt={[a.HMSTrackUpdate.TRACK_ADDED]:M.TRACK_ADDED,[a.HMSTrackUpdate.TRACK_REMOVED]:M.TRACK_REMOVED,[a.HMSTrackUpdate.TRACK_MUTED]:M.TRACK_MUTED,[a.HMSTrackUpdate.TRACK_UNMUTED]:M.TRACK_UNMUTED,[a.HMSTrackUpdate.TRACK_DEGRADED]:M.TRACK_DEGRADED,[a.HMSTrackUpdate.TRACK_RESTORED]:M.TRACK_RESTORED},dt={[a.HMSPeerUpdate.PEER_JOINED]:"peerJoined",[a.HMSPeerUpdate.PEER_LEFT]:"peerLeft",[a.HMSPeerUpdate.NAME_UPDATED]:"peerNameUpdated",[a.HMSPeerUpdate.METADATA_UPDATED]:"peerMetadataUpdated"};var Ee=class{constructor(e,t,i){this.hmsSDKTracks={};this.hmsSDKPeers={};this.isRoomJoinCalled=!1;this.setProgress=({type:e,progress:t})=>{this.setState(i=>{i.playlist[e].progress=t,i.playlist[e].currentTime=this.sdk.getPlaylistManager().getCurrentTime(e)},"playlistProgress")};this.syncPlaylistState=e=>{this.setState(t=>{Object.assign(t.playlist,g.convertPlaylist(this.sdk.getPlaylistManager()))},e)};this.sendPeerUpdateNotification=(e,t)=>{let i=this.store.getState(b(t.peerId)),o="peerUpdate";o=dt[e],this.syncRoomState(o),i||(i=this.store.getState(b(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}unblockAudio(){return c(this,null,function*(){yield this.sdk.getAudioOutput().unblockAutoplay()})}setVolume(e,t){t?this.setTrackVolume(e,t):(this.sdk.getAudioOutput().setVolume(e),this.syncRoomState("setOutputVolume"))}setAudioOutputDevice(e){this.sdk.getAudioOutput().setDevice(e)&&this.setState(i=>{i.settings.audioOutputDeviceId=e},"setAudioOutputDevice")}setPreferredLayer(e,t){let i=this.hmsSDKTracks[e];i?i instanceof z.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 c(this,null,function*(){if(this.isRoomJoinCalled){this.logPossibleInconsistency("attempting to call preview after join was called");return}let t=this.store.getState(oe);if(t===H.Preview||t===H.Connecting){this.logPossibleInconsistency("attempting to call preview while room is in preview/connecting");return}try{this.setState(i=>{i.room.roomState=H.Connecting},"connecting"),yield this.sdkPreviewWithListeners(e)}catch(i){throw p.e("Cannot show preview. Failed to connect to room - ",i),i}})}join(e){if(this.isRoomJoinCalled){this.logPossibleInconsistency("room join is called again");return}try{this.sdkJoinWithListeners(e),this.isRoomJoinCalled=!0,this.setState(t=>{t.room.roomState=H.Connecting},"join")}catch(t){throw this.isRoomJoinCalled=!1,p.e("Failed to connect to room - ",t),t}}leave(){return c(this,null,function*(){if(!this.store.getState(he)){this.logPossibleInconsistency("room leave is called when no room is connected");return}return this.sdk.leave().then(()=>{this.resetState("leave"),p.i("left room")}).catch(t=>{p.e("error in leaving room - ",t)})})}setScreenShareEnabled(e,t){return c(this,null,function*(){e?yield this.startScreenShare(t):yield this.stopScreenShare()})}addTrack(e,t="regular"){return c(this,null,function*(){yield this.sdk.addTrack(e,t),this.syncRoomState("addTrack")})}removeTrack(e){return c(this,null,function*(){yield this.sdk.removeTrack(e),this.syncRoomState("removeTrack")})}setLocalAudioEnabled(e){return c(this,null,function*(){let t=this.store.getState(w);t&&(yield this.setEnabledTrack(t,e))})}setLocalVideoEnabled(e){return c(this,null,function*(){let t=this.store.getState(N);t&&(yield this.setEnabledTrack(t,e))})}setEnabledTrack(e,t){return c(this,null,function*(){var r;if(((r=this.store.getState().tracks[e])==null?void 0:r.enabled)===t){this.logPossibleInconsistency(`local track[${e}] enabled state - ${t}`);return}this.setState(n=>{n.tracks[e]?n.tracks[e].displayEnabled=t:this.logPossibleInconsistency("track id not found for setEnabled")},"displayEnabled");try{yield this.setEnabledSDKTrack(e,t),this.syncRoomState("setEnabled")}catch(n){throw this.setState(u=>{u.tracks[e].displayEnabled=!t},"rollbackDisplayEnabled"),this.hmsNotifications.sendError(g.convertException(n)),n}let o=t?a.HMSTrackUpdate.TRACK_UNMUTED:a.HMSTrackUpdate.TRACK_MUTED;this.hmsNotifications.sendTrackUpdate(o,e)})}setAudioSettings(e){return c(this,null,function*(){let t=this.store.getState(w);t&&(yield this.setSDKLocalAudioTrackSettings(t,e),this.syncRoomState("setAudioSettings"))})}setVideoSettings(e){return c(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 c(this,null,function*(){let i=yield this.sdk.sendBroadcastMessage(e,t);this.updateMessageInStore(i,{message:e,type:t})})}sendGroupMessage(e,t,i){return c(this,null,function*(){let o=this.store.getState(x),r=t.map(u=>o[u]),n=yield this.sdk.sendGroupMessage(e,r,i);this.updateMessageInStore(n,{message:e,recipientRoles:t,type:i})})}sendDirectMessage(e,t,i){return c(this,null,function*(){let o=this.hmsSDKPeers[t],r=yield this.sdk.sendDirectMessage(e,o,i);this.updateMessageInStore(r,{message:e,recipientPeer:o.peerId,type:i})})}updateMessageInStore(e,t){if(!e)throw p.w("sendMessage","Failed to send message",t),Error(`sendMessage Failed - ${JSON.stringify(t)}`);let i=g.convertMessage(e);return i.read=!0,i.senderName="You",this.onHMSMessage(i),i}setMessageRead(e,t){this.setState(i=>{t?i.messages.byID[t]?i.messages.byID[t].read=e:this.logPossibleInconsistency("no message with id is found"):i.messages.allIDs.forEach(o=>{i.messages.byID[o].read=e})},"setMessageRead")}attachVideo(e,t){return c(this,null,function*(){if(this.localAndVideoUnmuting(e))return new Promise(i=>{let o=this.store.subscribe(r=>c(this,null,function*(){r&&(yield this.attachVideoInternal(e,t),o(),i())}),se)});yield this.attachVideoInternal(e,t)})}detachVideo(e,t){return c(this,null,function*(){let i=this.hmsSDKTracks[e];i&&i.type==="video"?(yield i.removeSink(t),this.updateVideoLayer(e,"detachVideo")):this.logPossibleInconsistency("no video track found to remove sink")})}addPluginToVideoTrack(e,t){return c(this,null,function*(){return this.addRemoveVideoPlugin(e,"add",t)})}addPluginToAudioTrack(e){return c(this,null,function*(){return this.addRemoveAudioPlugin(e,"add")})}removePluginFromVideoTrack(e){return c(this,null,function*(){return this.addRemoveVideoPlugin(e,"remove")})}removePluginFromAudioTrack(e){return c(this,null,function*(){return this.addRemoveAudioPlugin(e,"remove")})}changeRole(e,t,i=!1){return c(this,null,function*(){let o=this.hmsSDKPeers[e];if(!o){this.logPossibleInconsistency(`Unknown peer ID given ${e} for changerole`);return}yield this.sdk.changeRole(o,t,i)})}acceptChangeRole(e){return c(this,null,function*(){let t=e.requestedBy?this.hmsSDKPeers[e.requestedBy.id]:void 0;t||p.w(`peer for which role change is requested no longer available - ${e.requestedBy}`);let i={requestedBy:t,role:e.role,token:e.token};yield this.sdk.acceptChangeRole(i),this.removeRoleChangeRequest(e)})}rejectChangeRole(e){this.removeRoleChangeRequest(e)}endRoom(e,t){return c(this,null,function*(){let i=this.store.getState(ge);if(!(i==null?void 0:i.endRoom)){p.w("You are not allowed to perform this action - endRoom");return}yield this.sdk.endRoom(e,t)})}removePeer(e,t){return c(this,null,function*(){let i=this.hmsSDKPeers[e];if(i&&!i.isLocal)yield this.sdk.removePeer(i,t);else{this.logPossibleInconsistency(`No remote peer found for peerID - ${e}`);return}})}startRTMPOrRecording(e){return c(this,null,function*(){yield this.sdk.startRTMPOrRecording(e)})}stopRTMPAndRecording(){return c(this,null,function*(){yield this.sdk.stopRTMPAndRecording()})}startHLSStreaming(e){return c(this,null,function*(){yield this.sdk.startHLSStreaming(e)})}stopHLSStreaming(){return c(this,null,function*(){yield this.sdk.stopHLSStreaming()})}changeName(e){return c(this,null,function*(){yield this.sdk.changeName(e)})}changeMetadata(e){return c(this,null,function*(){typeof e!="string"&&(e=JSON.stringify(e)),yield this.sdk.changeMetadata(e)})}setRemoteTrackEnabled(e,t){return c(this,null,function*(){if(typeof e=="string"){let i=this.hmsSDKTracks[e];i&&at(i)?yield this.sdk.changeTrackState(i,t):this.logPossibleInconsistency(`No remote track with ID ${e} found for change track state`)}else Array.isArray(e)&&e.forEach(i=>this.setRemoteTrackEnabled(i,t))})}setRemoteTracksEnabled(e){return c(this,null,function*(){let t={enabled:e.enabled,type:e.type,source:e.source};if(e.roles){let i=this.store.getState(x);t.roles=e.roles.map(o=>i[o])}yield this.sdk.changeMultiTrackState(t)})}setLogLevel(e){p.level=e,this.sdk.setLogLevel(e)}resetState(e="resetState"){this.setState(t=>{Object.assign(t,F())},e),this.isRoomJoinCalled=!1,this.hmsSDKTracks={},p.cleanUp()}sdkJoinWithListeners(e){this.sdk.join(e,{onJoin:this.onJoin.bind(this),onRoomUpdate:this.onRoomUpdate.bind(this),onPeerUpdate:this.onPeerUpdate.bind(this),onTrackUpdate:this.onTrackUpdate.bind(this),onMessageReceived:this.onMessageReceived.bind(this),onError:this.onError.bind(this),onReconnected:this.onReconnected.bind(this),onReconnecting:this.onReconnecting.bind(this),onRoleChangeRequest:this.onRoleChangeRequest.bind(this),onRoleUpdate:this.onRoleUpdate.bind(this),onDeviceChange:this.onDeviceChange.bind(this),onChangeTrackStateRequest:this.onChangeTrackStateRequest.bind(this),onChangeMultiTrackStateRequest:this.onChangeMultiTrackStateRequest.bind(this),onRemovedFromRoom:this.onRemovedFromRoom.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})}onRemovedFromRoom(e){var i;let t=this.store.getState(b((i=e.requestedBy)==null?void 0:i.peerId));this.hmsNotifications.sendLeaveRoom(K(_({},e),{requestedBy:t||void 0})),p.i("resetting state after peer removed",e),this.resetState(e.roomEnded||!t?"roomEnded":"removedFromRoom")}onDeviceChange(e){let t=e.devices;if(!t)return;let i=this.store.getState(E);if(this.setState(o=>{C(o.devices.audioInput,t.audioInput)||(o.devices.audioInput=t.audioInput),C(o.devices.videoInput,t.videoInput)||(o.devices.videoInput=t.videoInput),C(o.devices.audioOutput,t.audioOutput)||(o.devices.audioOutput=t.audioOutput),this.hmsSDKPeers[i==null?void 0:i.id]&&Object.assign(o.settings,this.getMediaSettings(this.hmsSDKPeers[i==null?void 0:i.id]))},"deviceChange"),e.selection){let o=g.convertDeviceChangeUpdate(e);this.hmsNotifications.sendDeviceChange(o)}}sdkPreviewWithListeners(e){return c(this,null,function*(){yield this.sdk.preview(e,{onPreview:this.onPreview.bind(this),onError:this.onError.bind(this),onDeviceChange:this.onDeviceChange.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})})}startScreenShare(e){return c(this,null,function*(){this.store.getState(ie)?this.logPossibleInconsistency("start screenshare is called while it's on"):(yield this.sdk.startScreenShare(()=>this.syncRoomState("screenshareStopped"),e),this.syncRoomState("startScreenShare"))})}stopScreenShare(){return c(this,null,function*(){this.store.getState(ie)?(yield this.sdk.stopScreenShare(),this.syncRoomState("stopScreenShare")):this.logPossibleInconsistency("stop screenshare is called while it's not on")})}attachVideoInternal(e,t){return c(this,null,function*(){let i=this.hmsSDKTracks[e];i&&i.type==="video"?(yield i.addSink(t),this.updateVideoLayer(e,"attachVideo")):this.logPossibleInconsistency("no video track found to add sink")})}syncRoomState(e){p.time(`store-sync-${e}`);let t={},i=[],o={},r={},n={},u=this.sdk.getPeers();for(let f of u){let A=g.convertPeer(f);t[A.id]=A,i.push(A.id),this.hmsSDKPeers[A.id]=f;let q=[f.audioTrack,f.videoTrack,...f.auxiliaryTracks];for(let Z of q){if(!Z)continue;let Le=g.convertTrack(Z);o[Le.id]=Le,r[Z.trackId]=Z}A.isLocal&&Object.assign(n,this.getMediaSettings(f))}let h=this.sdk.getRecordingState(),P=this.sdk.getRTMPState(),Ce=this.sdk.getHLSState();this.setState(f=>{f.room.peers=i;let A=f.peers,q=f.tracks;Ue(A,t),_e(q,o),Object.assign(f.settings,n),this.hmsSDKTracks=r,Object.assign(f.roles,g.convertRoles(this.sdk.getRoles())),Object.assign(f.playlist,g.convertPlaylist(this.sdk.getPlaylistManager())),Object.assign(f.room,g.convertRecordingRTMPState(h,P,Ce))},e),p.timeEnd(`store-sync-${e}`)}onPreview(e){this.setState(t=>{Object.assign(t.room,g.convertRoom(e)),t.room.roomState=H.Preview},"previewStart"),this.syncRoomState("previewSync")}onJoin(e){let t=this.sdk.getPlaylistManager();this.audioPlaylist=new ae(t,S.audio,this.syncPlaylistState.bind(this),this.store),this.videoPlaylist=new ae(t,S.video,this.syncRoomState.bind(this),this.store),this.syncRoomState("joinSync"),this.setState(i=>{Object.assign(i.room,g.convertRoom(e)),i.room.isConnected=!0,i.room.roomState=H.Connected},"joined"),t.onProgress(this.setProgress),t.onNewTrackStart(i=>{this.syncPlaylistState(`${i.type}PlaylistUpdate`)}),t.onPlaylistEnded(i=>{this.syncPlaylistState(`${i}PlaylistEnded`)}),t.onCurrentTrackEnded(i=>{this.hmsNotifications.sendPlaylistTrackEnded(g.convertPlaylistItem(t,i)),this.syncPlaylistState(`${i.type}PlaylistItemEnded`)})}onRoomUpdate(e,t){this.setState(i=>{Object.assign(i.room,g.convertRoom(t))},"RoomUpdate")}onPeerUpdate(e,t){if(![a.HMSPeerUpdate.BECAME_DOMINANT_SPEAKER,a.HMSPeerUpdate.RESIGNED_DOMINANT_SPEAKER].includes(e)){if(Array.isArray(t)){this.syncRoomState("peersJoined");let i=[];for(let o of t){let r=this.store.getState(b(o.peerId));r&&i.push(r)}this.hmsNotifications.sendPeerList(i);return}this.sendPeerUpdateNotification(e,t)}}onTrackUpdate(e,t,i){if(e===a.HMSTrackUpdate.TRACK_REMOVED)this.hmsNotifications.sendTrackUpdate(e,t.trackId),this.handleTrackRemove(t,i);else{let o=e===a.HMSTrackUpdate.TRACK_ADDED?"trackAdded":"trackUpdate";this.syncRoomState(o),this.hmsNotifications.sendTrackUpdate(e,t.trackId)}}onMessageReceived(e){let t=g.convertMessage(e);t.read=!1,this.onHMSMessage(t),this.hmsNotifications.sendMessageReceived(t)}onHMSMessage(e){this.setState(t=>{e.id=String(this.store.getState(me)+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")}onChangeTrackStateRequest(e){let t=this.store.getState(b(e.requestedBy.peerId)),i=this.getStoreLocalTrackIDfromSDKTrack(e.track),o=this.store.getState(X(i));if(!t)return this.logPossibleInconsistency(`Not found peer who requested track state change, ${e.requestedBy}`);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,track:o,enabled:e.enabled})}onChangeMultiTrackStateRequest(e){let t=this.store.getState(b(e.requestedBy.peerId));if(!t)return this.logPossibleInconsistency(`Not found peer who requested track state change, ${e.requestedBy}`);e.enabled||this.syncRoomState("changeMultiTrackStateRequest");let i=[],o=this.store.getState(T);for(let r of e.tracks){let n=this.getStoreLocalTrackIDfromSDKTrack(r);n&&o[n]&&i.push(o[n])}this.hmsNotifications.sendChangeMultiTrackStateRequest({requestedBy:t,tracks:i,enabled:e.enabled,type:e.type,source:e.source})}onReconnected(){this.syncRoomState("reconnectedSync"),this.hmsNotifications.sendReconnected(),this.setState(e=>{e.room.roomState=H.Connected},"reconnected")}onReconnecting(e){let t=g.convertException(e);p.e("Reconnection: received error from sdk",t),this.hmsNotifications.sendReconnecting(t),this.setState(i=>{i.room.roomState=H.Reconnecting,i.errors.push(t)},"reconnecting")}onError(e){let t=g.convertException(e);t.isTerminal?(this.leave().then(()=>p.e("error from SDK, left room.")),this.setState(i=>{i.room.roomState=H.Failed,i.errors.push(t)},"errorTerminal")):this.store.getState().errors.length<50&&this.setState(o=>{o.errors.push(t)},"error"),this.hmsNotifications.sendError(t),p.e("received error from sdk",t)}updateVideoLayer(e,t){let i=this.hmsSDKTracks[e];i&&i instanceof z.HMSRemoteVideoTrack&&this.setState(o=>{o.tracks[e].layer=i.getSimulcastLayer()},t)}handleTrackRemove(e,t){this.setState(i=>{let o=i.peers[t.peerId],r=i.tracks,n=e.trackId;if(this.isSameStoreSDKTrack(n,o==null?void 0:o.audioTrack))o==null||delete o.audioTrack;else if(this.isSameStoreSDKTrack(n,o==null?void 0:o.videoTrack))o==null||delete o.videoTrack;else{let u=o==null?void 0:o.auxiliaryTracks.indexOf(n);u>-1&&this.isSameStoreSDKTrack(n,o==null?void 0:o.auxiliaryTracks[u])&&(o==null||o.auxiliaryTracks.splice(u,1))}delete r[n],delete this.hmsSDKTracks[n]},"trackRemoved")}setEnabledSDKTrack(e,t){return c(this,null,function*(){let i=this.hmsSDKTracks[e];i?yield i.setEnabled(t):this.logPossibleInconsistency(`track ${e} not present, unable to enabled/disable`)})}setSDKLocalVideoTrackSettings(e,t){return c(this,null,function*(){let i=this.hmsSDKTracks[e];i?yield i.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}setSDKLocalAudioTrackSettings(e,t){return c(this,null,function*(){let i=this.hmsSDKTracks[e];i?yield i.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}getMediaSettings(e){var r;let t=this.store.getState(Se),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 z.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(Me),o=this.store.getState(se);return i&&!o}logPossibleInconsistency(e){p.w("possible inconsistency detected - ",e)}addRemoveVideoPlugin(e,t,i){return c(this,null,function*(){if(!e){p.w("Invalid plugin received in store");return}let o=this.store.getState(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 c(this,null,function*(){if(!e){p.w("Invalid plugin received in store");return}let i=this.store.getState(w);if(i){let o=this.hmsSDKTracks[i];o?(t==="add"?yield o.addPlugin(e):t==="remove"&&(yield o.removePlugin(e)),this.syncRoomState(`${t}AudioPlugin`)):this.logPossibleInconsistency(`track ${i} not present, unable to remove plugin`)}})}isSameStoreSDKTrack(e,t){var i;return t?((i=this.hmsSDKTracks[t])==null?void 0:i.trackId)===e:!1}onRoleChangeRequest(e){this.setState(t=>{t.roleChangeRequests.length===0&&t.roleChangeRequests.push(g.convertRoleChangeRequest(e))},"roleChangeRequest")}removeRoleChangeRequest(e){this.setState(t=>{let i=t.roleChangeRequests.findIndex(o=>o.token===e.token);i!==-1&&t.roleChangeRequests.splice(i,1)},"removeRoleChangeRequest")}onRoleUpdate(){this.syncRoomState("roleUpdate")}getStoreLocalTrackIDfromSDKTrack(e){return this.store.getState(pe).find(i=>this.hmsSDKTracks[i].trackId===e.trackId)}};var St=R(require("eventemitter2"));var be="hmsNotification",Ae=class{constructor(e){this.id=0;this.onNotification=e=>(this.eventEmitter.addListener(be,e),()=>{this.eventEmitter.removeListener(be,e)});this.store=e,this.eventEmitter=new St.EventEmitter2}sendPlaylistTrackEnded(e){let t=this.createNotification(M.PLAYLIST_TRACK_ENDED,e,k.INFO);this.emitEvent(t)}sendDeviceChange(e){var i;let t=this.createNotification(M.DEVICE_CHANGE_UPDATE,e,e.error?k.ERROR:k.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,k.INFO,`${e.roomEnded?"Room ended":"Removed from room"} ${t?`by ${t}`:""}`);this.emitEvent(i)}sendPeerList(e){let t=this.createNotification(M.PEER_LIST,e,k.INFO);this.emitEvent(t)}sendPeerUpdate(e,t){let i=this.store.getState(b(t==null?void 0:t.id))||t,o=ct[e];if(o){let r=this.createNotification(o,i,k.INFO);this.emitEvent(r)}}sendTrackUpdate(e,t){let i=this.store.getState(X(t)),o=lt[e];if(o){let r=this.createNotification(o,i,k.INFO);this.emitEvent(r)}}sendMessageReceived(e){let t=this.createNotification(M.NEW_MESSAGE,e,k.INFO);this.emitEvent(t)}sendError(e){let t=this.createNotification(M.ERROR,e,k.ERROR);this.emitEvent(t)}sendReconnecting(e){let t=this.createNotification(M.RECONNECTING,e,k.ERROR);this.emitEvent(t)}sendReconnected(){let e=this.createNotification(M.RECONNECTED,null,k.INFO);this.emitEvent(e)}sendChangeTrackStateRequest(e){let t=this.createNotification(M.CHANGE_TRACK_STATE_REQUEST,e,k.INFO);this.emitEvent(t)}sendChangeMultiTrackStateRequest(e){let t=this.createNotification(M.CHANGE_MULTI_TRACK_STATE_REQUEST,e,k.INFO);this.emitEvent(t)}emitEvent(e){this.eventEmitter.emit(be,e)}createNotification(e,t,i,o=""){return this.id++,{id:this.id,type:e,message:o,data:t,severity:i}}};var O=class{constructor(e,t,i){e?this.store=e:this.store=O.createNewHMSStore(),i?this.notifications=i:this.notifications=new Ae(this.store),t?this.actions=t:this.actions=new Ee(this.store,new mt.HMSSdk,this.notifications),this.initialTriggerOnSubscribe=!1}triggerOnSubscribe(){this.initialTriggerOnSubscribe||(O.makeStoreTriggerOnSubscribe(this.store),this.initialTriggerOnSubscribe=!0)}getStore(){return this.store}getHMSActions(){return this.actions}getNotifications(){return{onNotification:this.notifications.onNotification}}static createNewHMSStore(){let e=(0,pt.default)(()=>F()),t=e.setState;e.setState=r=>{let n=typeof r=="function"?(0,ut.default)(r):r;t(n)};let i=e.getState;e.getState=r=>{if(r){let n=r.name||"byIDSelector";window.selectorsCount||(window.selectorsCount={}),window.selectorsCount[n]=(window.selectorsCount[n]||0)+1;let u=performance.now(),h=r(i()),P=performance.now()-u;return P>1&&(window.expensiveSelectors=window.expensiveSelectors||new Map,window.expensiveSelectors.set(n,P)),h}return i()},O.useShallowCheckInSubscribe(e);let o=O.setUpDevtools(e,"HMSStore");return K(_({},e),{namedSetState:o})}static makeStoreTriggerOnSubscribe(e){let t=e.subscribe;e.subscribe=(i,o,r)=>(i(e.getState(o),void 0),t(i,o,r))}static useShallowCheckInSubscribe(e){let t=e.subscribe;e.subscribe=(i,o,r)=>(o||(o=n=>n),r=r||Mt.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(O.devtoolsOptions(t));o.prefix=t?`${t} > `:"";let r=e.setState;return e.setState=n=>{r(n),o.send(`${o.prefix}setState`,e.getState())},o.subscribe(O.devtoolsSubscribe(o,e,r)),o.send("setUpStore",e.getState()),(n,u)=>{r(n);let h=u||`${o.prefix}action`;o.send(h,e.getState())}}static devtoolsOptions(e){return{name:e,actionsBlacklist:["audioLevel","playlistProgress"]}}static devtoolsSubscribe(e,t,i){return o=>{var r,n,u,h;if(o.type==="DISPATCH"&&o.state)["JUMP_TO_ACTION","JUMP_TO_STATE"].includes(o.payload.type)?i(JSON.parse(o.state)):t.setState(JSON.parse(o.state));else if(o.type==="DISPATCH"&&((r=o.payload)==null?void 0:r.type)==="COMMIT")e.init(t.getState());else if(o.type==="DISPATCH"&&((n=o.payload)==null?void 0:n.type)==="IMPORT_STATE"){let P=(u=o.payload.nextLiftedState)==null?void 0:u.actionsById;(((h=o.payload.nextLiftedState)==null?void 0:h.computedStates)||[]).forEach(({state:f},A)=>{let q=P[A]||`${e.prefix}setState`;A===0?e.init(f):(i(f),e.send(q,t.getState()))})}}}};
1
+ var Lt=Object.create;var J=Object.defineProperty,Ot=Object.defineProperties,wt=Object.getOwnPropertyDescriptor,Nt=Object.getOwnPropertyDescriptors,Ut=Object.getOwnPropertyNames,Qe=Object.getOwnPropertySymbols,_t=Object.getPrototypeOf,ze=Object.prototype.hasOwnProperty,Kt=Object.prototype.propertyIsEnumerable;var Xe=(s,e,t)=>e in s?J(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,V=(s,e)=>{for(var t in e||(e={}))ze.call(e,t)&&Xe(s,t,e[t]);if(Qe)for(var t of Qe(e))Kt.call(e,t)&&Xe(s,t,e[t]);return s},j=(s,e)=>Ot(s,Nt(e)),Ze=s=>J(s,"__esModule",{value:!0});var et=(s,e)=>{Ze(s);for(var t in e)J(s,t,{get:e[t],enumerable:!0})},Vt=(s,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Ut(e))!ze.call(s,r)&&r!=="default"&&J(s,r,{get:()=>e[r],enumerable:!(t=wt(e,r))||t.enumerable});return s},R=s=>Vt(Ze(J(s!=null?Lt(_t(s)):{},"default",s&&s.__esModule&&"default"in s?{get:()=>s.default,enumerable:!0}:{value:s,enumerable:!0})),s);var c=(s,e,t)=>new Promise((r,i)=>{var o=d=>{try{S(t.next(d))}catch(I){i(I)}},n=d=>{try{S(t.throw(d))}catch(I){i(I)}},S=d=>d.done?r(d.value):Promise.resolve(d.value).then(o,n);S((t=t.apply(s,e)).next())});et(exports,{HMSAudioPluginType:()=>a.HMSAudioPluginType,HMSLogLevel:()=>a.HMSLogLevel,HMSMessageType:()=>ge,HMSNotificationSeverity:()=>P,HMSNotificationTypes:()=>h,HMSPlaylistType:()=>M,HMSReactiveStore:()=>L,HMSRoomState:()=>y,HMSVideoPluginType:()=>a.HMSVideoPluginType,HMSWebrtcInternals:()=>oe,createDefaultInternalsStore:()=>Q,createDefaultStoreState:()=>Y,selectAudioPlaylist:()=>Le,selectAudioPlaylistTrackByPeerID:()=>fs,selectAudioTrackByPeerID:()=>ht,selectAudioTrackVolume:()=>Be,selectAudioVolumeByPeerID:()=>Ds,selectAuxiliaryAudioByPeerID:()=>Ts,selectAuxiliaryTracksByPeerID:()=>Ms,selectAvailableRoleNames:()=>os,selectBroadcastMessages:()=>yt,selectBroadcastMessagesUnreadCount:()=>xs,selectCameraStreamByPeerID:()=>ps,selectDegradedTracks:()=>ss,selectDevices:()=>jt,selectDominantSpeaker:()=>Yt,selectHLSState:()=>ls,selectHMSMessages:()=>ee,selectHMSMessagesCount:()=>be,selectHMSStats:()=>he,selectIsAllowedToPublish:()=>qs,selectIsAllowedToSubscribe:()=>ns,selectIsAudioLocallyMuted:()=>Ve,selectIsConnectedToRoom:()=>Wt,selectIsInPreview:()=>is,selectIsLocalAudioEnabled:()=>Qt,selectIsLocalAudioPluginPresent:()=>Gs,selectIsLocalScreenShared:()=>ue,selectIsLocalVideoDisplayEnabled:()=>De,selectIsLocalVideoEnabled:()=>de,selectIsLocalVideoPluginPresent:()=>Fs,selectIsLocallyMutedByPeerID:()=>Rs,selectIsPeerAudioEnabled:()=>Ps,selectIsPeerVideoEnabled:()=>Is,selectIsScreenShareLocallyMutedByPeerID:()=>vs,selectIsSomeoneScreenSharing:()=>zt,selectLocalAudioTrackID:()=>C,selectLocalMediaSettings:()=>Re,selectLocalPeer:()=>E,selectLocalPeerID:()=>K,selectLocalPeerRole:()=>te,selectLocalTrackIDs:()=>ve,selectLocalVideoTrackID:()=>A,selectMessageIDsInOrder:()=>Ie,selectMessagesByPeerID:()=>Ls,selectMessagesByRole:()=>Os,selectMessagesMap:()=>Pe,selectMessagesUnreadCountByPeerID:()=>Ns,selectMessagesUnreadCountByRole:()=>ws,selectPeerAudioByID:()=>gs,selectPeerByID:()=>O,selectPeerCount:()=>$t,selectPeerMetadata:()=>_s,selectPeerNameByID:()=>Ue,selectPeerScreenSharing:()=>nt,selectPeerSharingAudio:()=>Xt,selectPeerSharingAudioPlaylist:()=>ts,selectPeerSharingVideoPlaylist:()=>es,selectPeers:()=>Se,selectPeersByRole:()=>Us,selectPeersMap:()=>v,selectPeersScreenSharing:()=>Zt,selectPeersWithAudioStatus:()=>Ks,selectPermissions:()=>Ce,selectRTMPState:()=>cs,selectRecordingState:()=>as,selectRemotePeers:()=>Jt,selectRoleByRoleName:()=>js,selectRoleChangeRequest:()=>Bs,selectRolesMap:()=>_,selectRoom:()=>b,selectRoomStartTime:()=>ds,selectRoomStarted:()=>Ee,selectRoomState:()=>x,selectScreenShareAudioByPeerID:()=>Ke,selectScreenShareByPeerID:()=>ks,selectScreenSharesByPeerId:()=>_e,selectScreenshareAudioVolumeByPeerID:()=>bs,selectSessionId:()=>Ss,selectSimulcastLayerByTrack:()=>Es,selectSpeakers:()=>ot,selectTrackAudioByID:()=>ms,selectTrackByID:()=>re,selectTracksMap:()=>T,selectUnreadHMSMessagesCount:()=>rs,selectVideoPlaylist:()=>Oe,selectVideoPlaylistAudioTrackByPeerID:()=>ys,selectVideoPlaylistVideoTrackByPeerID:()=>Hs,selectVideoTrackByPeerID:()=>mt});var Et=R(require("immer")),Ct=R(require("zustand/vanilla")),At=R(require("zustand/shallow")),xt=R(require("@100mslive/hms-video"));var y;(function(n){n.Disconnected="Disconnected",n.Preview="Preview",n.Connecting="Connecting",n.Connected="Connected",n.Reconnecting="Reconnecting",n.Failed="Failed"})(y||(y={}));var Y=()=>({room:{id:"",isConnected:!1,name:"",peers:[],shareableLink:"",localPeer:"",hasWaitingRoom:!1,roomState:y.Disconnected,recording:{browser:{running:!1},server:{running:!1}},rtmp:{running:!1},hls:{running:!1,variants:[]},sessionId:""},peers:{},tracks:{},playlist:{audio:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1},video:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1}},messages:{byID:{},allIDs:[]},speakers:{},settings:{audioInputDeviceId:"",audioOutputDeviceId:"",videoInputDeviceId:""},devices:{audioInput:[],audioOutput:[],videoInput:[]},roles:{},roleChangeRequests:[],errors:[]}),Q=()=>({jitter:0,packetsLost:0,peerStats:{},trackStats:{},localPeer:{id:""}});var ge;(function(e){e.CHAT="chat"})(ge||(ge={}));var P;(function(r){r.INFO="info",r.ERROR="error",r.CRITICAL="critical"})(P||(P={}));var h;(function(l){l.PEER_JOINED="PEER_JOINED",l.PEER_LEFT="PEER_LEFT",l.PEER_LIST="PEER_LIST",l.NEW_MESSAGE="NEW_MESSAGE",l.ERROR="ERROR",l.RECONNECTING="RECONNECTING",l.RECONNECTED="RECONNECTED",l.TRACK_ADDED="TRACK_ADDED",l.TRACK_REMOVED="TRACK_REMOVED",l.TRACK_MUTED="TRACK_MUTED",l.TRACK_UNMUTED="TRACK_UNMUTED",l.TRACK_DEGRADED="TRACK_DEGRADED",l.TRACK_RESTORED="TRACK_RESTORED",l.ROLE_CHANGE_REQUEST="ROLE_CHANGE_REQUEST",l.ROLE_UPDATED="ROLE_UPDATED",l.CHANGE_TRACK_STATE_REQUEST="CHANGE_TRACK_STATE_REQUEST",l.CHANGE_MULTI_TRACK_STATE_REQUEST="CHANGE_MULTI_TRACK_STATE_REQUEST",l.ROOM_ENDED="ROOM_ENDED",l.REMOVED_FROM_ROOM="REMOVED_FROM_ROOM",l.DEVICE_CHANGE_UPDATE="DEVICE_CHANGE_UPDATE",l.PLAYLIST_TRACK_ENDED="PLAYLIST_TRACK_ENDED",l.NAME_UPDATED="NAME_UPDATED",l.METADATA_UPDATED="METADATA_UPDATED"})(h||(h={}));var M;(function(t){t.audio="audio",t.video="video"})(M||(M={}));var a=R(require("@100mslive/hms-video"));var U=R(require("@100mslive/hms-video"));var tt=(s,e)=>{let t=ke(Object.keys(s),Object.keys(e));for(let r of t){let i=s[r],o=e[r];He(i,o)?(N(i.auxiliaryTracks,o.auxiliaryTracks)&&(o.auxiliaryTracks=i.auxiliaryTracks),Object.assign(i,o)):ye(i,o)?delete s[r]:fe(i,o)&&(s[r]=o)}},st=(s,e)=>{let t=ke(Object.keys(s),Object.keys(e));for(let r of t){let i=s[r],o=e[r];He(i,o)?(Bt(i,o),Object.assign(i,o)):ye(i,o)?delete s[r]:fe(i,o)&&(s[r]=o)}},Te=(s,e)=>{let t=ke(Object.keys(s),Object.keys(e));for(let r of t){let i=s[r],o=e[r];He(i,o)?Object.assign(i,o):ye(i,o)?delete s[r]:fe(i,o)&&(s[r]=o)}},Bt=(s,e)=>{s.plugins&&N(s.plugins,e.plugins)&&(e.plugins=s.plugins),s.layerDefinitions&&N(s.layerDefinitions,e.layerDefinitions)&&(e.layerDefinitions=s.layerDefinitions)},He=(s,e)=>s&&e,ye=(s,e)=>s&&!e,fe=(s,e)=>!s&&e,N=(s,e)=>{if(s===e||s.length===0&&(e==null?void 0:e.length)===0)return!0;if(!s||!e||s.length!==e.length)return!1;for(let t=0;t<s.length;t++)if(s[t]!==e[t])return!1;return!0},ke=(s,e)=>{let t=new Set;for(let r of s)t.add(r);for(let r of e)t.add(r);return Array.from(t)};var g=class{static convertPeer(e){var t,r,i;return{id:e.peerId,name:e.name,roleName:(t=e.role)==null?void 0:t.name,isLocal:e.isLocal,videoTrack:(r=e.videoTrack)==null?void 0:r.trackId,audioTrack:(i=e.audioTrack)==null?void 0:i.trackId,auxiliaryTracks:e.auxiliaryTracks.map(o=>o.trackId),customerUserId:e.customerUserId,customerDescription:e.metadata,metadata:e.metadata}}static convertTrack(e,t){let r={id:e.trackId,source:e.source,type:e.type,enabled:e.enabled,displayEnabled:e.enabled,peerId:e.peerId||t};return this.enrichTrack(r,e),r}static enrichTrack(e,t){let r=t.getMediaTrackSettings();e.source==="screen"&&e.type==="video"&&(e.displaySurface=r.displaySurface),e.height=r.height,e.width=r.width,t instanceof U.HMSRemoteAudioTrack&&(e.volume=t.getVolume()||0),g.updateDeviceID(e,t),g.enrichVideoTrack(e,t),g.enrichPluginsDetails(e,t)}static updateDeviceID(e,t){var r;t instanceof U.HMSLocalVideoTrack||t instanceof U.HMSLocalAudioTrack?e.deviceID=t.settings.deviceId:e.deviceID=(r=t.getMediaTrackSettings())==null?void 0:r.deviceId}static enrichVideoTrack(e,t){t instanceof U.HMSRemoteVideoTrack&&(e.layer=t.getSimulcastLayer(),e.degraded=t.degraded,N(t.getSimulcastDefinitions(),e.layerDefinitions)||(e.layerDefinitions=t.getSimulcastDefinitions()))}static enrichPluginsDetails(e,t){(t instanceof U.HMSLocalVideoTrack||t instanceof U.HMSLocalAudioTrack)&&(N(t.getPlugins(),e.plugins)||(e.plugins=t.getPlugins()))}static convertRoom(e){var t,r,i,o,n,S,d;return{id:e.id,name:e.name,localPeer:(r=(t=e.localPeer)==null?void 0:t.peerId)!=null?r:"",hasWaitingRoom:e.hasWaitingRoom,shareableLink:e.shareableLink,recording:{browser:{running:!!((i=e.recording)==null?void 0:i.browser.running)},server:{running:!!((o=e.recording)==null?void 0:o.server.running)}},rtmp:{running:!!((n=e.rtmp)==null?void 0:n.running)},hls:{running:!!((S=e.hls)==null?void 0:S.running),variants:((d=e.hls)==null?void 0:d.variants)||[]},sessionId:e.sessionId,startedAt:e.startedAt&&new Date(e.startedAt)}}static convertMessage(e){var t,r,i;return{sender:e.sender.peerId,senderName:e.sender.name,senderRole:(t=e.sender.role)==null?void 0:t.name,senderUserId:e.sender.customerUserId,recipientPeer:(r=e.recipientPeer)==null?void 0:r.peerId,recipientRoles:(i=e.recipientRoles)==null?void 0:i.map(o=>o.name),time:e.time,type:e.type,message:e.message}}static convertRoles(e){let t={};return e&&e.forEach(r=>{t[r.name]=r}),t}static convertRoleChangeRequest(e){return{requestedBy:e.requestedBy.peerId,roleName:e.role.name,token:e.token}}static convertException(e){return{code:e.code,action:e.action,name:e.name,message:e.message,description:e.description,isTerminal:e.isTerminal,nativeError:e.nativeError,timestamp:new Date}}static convertDeviceChangeUpdate(e){let t={devices:e.devices,selection:e.selection,type:e.type};return e.error&&(t.error=this.convertException(e.error)),t}static convertPlaylist(e){let t=this.getConvertedPlaylistType(e,M.audio),r=this.getConvertedPlaylistType(e,M.video);return{audio:t,video:r}}static convertPlaylistItem(e,t){let r=t.type,i=e.getCurrentSelection(r),o=e.isPlaying(r),n=t.url===(i==null?void 0:i.url);return j(V({},t),{type:t.type,selected:n,playing:n&&o})}static convertConnectionStats(e){let t=V({},e);return delete t.rawStatsArray,delete t.rawStats,t}static getConvertedPlaylistType(e,t){let r={},i=e.getCurrentSelection(t),o=e.getCurrentProgress(t),n=e.getVolume(t),S=e.getList(t),d=e.getCurrentIndex(t);return e.getList(t).forEach(I=>{r[I.id]=g.convertPlaylistItem(e,I)}),{list:r,selection:{id:i==null?void 0:i.id,hasPrevious:d>0,hasNext:d<S.length-1},progress:o,volume:n,currentTime:e.getCurrentTime(t),playbackRate:e.getPlaybackRate(t)}}static convertRecordingStreamingState(e,t,r){var i,o;return{recording:{browser:{running:!!((i=e==null?void 0:e.browser)==null?void 0:i.running)},server:{running:!!((o=e==null?void 0:e.server)==null?void 0:o.running)}},rtmp:{running:!!(t==null?void 0:t.running)},hls:{variants:(r==null?void 0:r.variants)||[],running:!!(r==null?void 0:r.running)}}}};var u=R(require("reselect"));function B(s,e,t=qt){let r,i;if(e)for(let o of e.auxiliaryTracks){let n=s[o];t(n)&&(i=z(n)?n:i,r=X(n)?n:r)}return{video:r,audio:i}}function z(s){return s&&s.type==="audio"}function X(s){return s&&s.type==="video"}function qt(s){return s&&s.source==="screen"}function le(s){return s&&s.source==="audioplaylist"}function Z(s){return s&&s.source==="videoplaylist"}function rt(s){return Boolean(s==null?void 0:s.degraded)}function W(s,e){return e&&s.tracks[e]?s.tracks[e].enabled:!1}function it(s,e){return e&&s.tracks[e]?s.tracks[e].displayEnabled:!1}var b=s=>s.room,v=s=>s.peers,Pe=s=>s.messages.byID,Ie=s=>s.messages.allIDs,T=s=>s.tracks,Re=s=>s.settings,jt=s=>s.devices,ot=s=>s.speakers,Wt=(0,u.createSelector)([b],s=>s&&s.isConnected),$t=(0,u.createSelector)(b,s=>s.peers.length),Se=(0,u.createSelector)([b,v],(s,e)=>s.peers.map(t=>e[t])),Ft=(0,u.createSelector)(T,s=>Object.values(s)),E=(0,u.createSelector)(b,v,(s,e)=>e[s.localPeer]),K=(0,u.createSelector)(b,s=>s.localPeer),C=(0,u.createSelector)(E,s=>s==null?void 0:s.audioTrack),A=(0,u.createSelector)(E,s=>s==null?void 0:s.videoTrack),Gt=(0,u.createSelector)(E,s=>s==null?void 0:s.auxiliaryTracks),ve=(0,u.createSelector)([C,A,Gt],(s,e,t)=>{let r=[...t];return s&&r.unshift(s),e&&r.unshift(e),r}),Jt=(0,u.createSelector)(Se,s=>s.filter(e=>!e.isLocal)),Yt=(0,u.createSelector)(v,ot,(s,e)=>{let t=Object.entries(e).sort((r,i)=>{var S,d;let o=((S=r[1])==null?void 0:S.audioLevel)||0;return(((d=i[1])==null?void 0:d.audioLevel)||0)>o?1:-1});if(t.length>0&&t[0][1].audioLevel&&t[0][1].audioLevel>0){let r=t[0][1].peerID;if(r in s)return s[r]}return null}),Qt=s=>{let e=E(s);return W(s,e==null?void 0:e.audioTrack)},de=s=>{let e=E(s);return W(s,e==null?void 0:e.videoTrack)},De=s=>{let e=E(s);return it(s,e==null?void 0:e.videoTrack)},ue=(0,u.createSelector)(E,T,(s,e)=>{let{video:t,audio:r}=B(e,s);return!!(t||r)}),nt=(0,u.createSelector)(v,T,(s,e)=>{let t;for(let r in s){let i=s[r],{video:o,audio:n}=B(e,i);if(o)return i;n&&!t&&(t=i)}return t}),zt=(0,u.createSelector)(nt,s=>!!s),Xt=(0,u.createSelector)(v,T,(s,e)=>{for(let t in s){let r=s[t],{audio:i,video:o}=B(e,r);if(!o&&!!i)return r}}),Zt=(0,u.createSelector)(v,T,(s,e)=>{let t=[],r=[];for(let i in s){let o=s[i],{video:n,audio:S}=B(e,o);n?t.push(o):S&&r.push(o)}return t.concat(r)}),es=(0,u.createSelector)(v,T,(s,e)=>{for(let t in e){let r=e[t];if(Z(r)&&X(r)&&r.peerId)return s[r.peerId]}}),ts=(0,u.createSelector)(v,T,(s,e)=>{for(let t in e){let r=e[t];if(le(r)&&r.peerId)return s[r.peerId]}}),ss=(0,u.createSelector)(Ft,s=>s.filter(rt)),be=(0,u.createSelector)(Ie,s=>s.length),rs=(0,u.createSelector)(Pe,s=>Object.values(s).filter(e=>!e.read).length),ee=(0,u.createSelector)(Ie,Pe,(s,e)=>{let t=[];return s.forEach(r=>{t.push(e[r])}),t}),x=(0,u.createSelector)([b],s=>s&&s.roomState),is=(0,u.createSelector)(x,s=>s===y.Preview),Ee=(0,u.createSelector)(b,s=>s.roomState!==y.Disconnected),_=s=>s.roles,os=(0,u.createSelector)([_],s=>Object.keys(s)),te=(0,u.createSelector)([E,_],(s,e)=>(s==null?void 0:s.roleName)?e[s.roleName]:null),ns=(0,u.createSelector)([te],s=>{var e;return((e=s==null?void 0:s.subscribeParams)==null?void 0:e.subscribeToRoles)?s.subscribeParams.subscribeToRoles.length>0:!1}),Ce=(0,u.createSelector)(te,s=>s==null?void 0:s.permissions),as=(0,u.createSelector)(b,s=>s.recording),cs=(0,u.createSelector)(b,s=>s.rtmp),ls=(0,u.createSelector)(b,s=>s.hls),Ss=(0,u.createSelector)(b,s=>s.sessionId),ds=(0,u.createSelector)(b,s=>s.startedAt);var Ae=R(require("reselect"));var at=(s=M.audio)=>e=>e.playlist[s].list,xe=(s=M.audio)=>e=>e.playlist[s].selection,ct=(s=M.audio)=>e=>e.playlist[s].progress,lt=(s=M.audio)=>e=>e.playlist[s].currentTime,St=(s=M.audio)=>e=>e.playlist[s].playbackRate,dt=(s=M.audio)=>e=>e.playlist[s].volume,ut=(s=M.audio)=>(0,Ae.createSelector)(at(s),e=>Object.values(e)),pt=(s=M.audio)=>(0,Ae.createSelector)(at(s),xe(s),(e,t)=>{if(!!t.id)return e[t.id]}),Le={selection:xe(M.audio),progress:ct(M.audio),currentTime:lt(M.audio),playbackRate:St(M.audio),volume:dt(M.audio),list:ut(M.audio),selectedItem:pt(M.audio)},Oe={selection:xe(M.video),progress:ct(M.video),currentTime:lt(M.video),playbackRate:St(M.video),volume:dt(M.video),list:ut(M.video),selectedItem:pt(M.video)};var k=R(require("reselect"));function p(s){return e=>t=>s(t,e)}var se="HMS-Store:",m=class{static v(e,...t){this.log(a.HMSLogLevel.VERBOSE,e,...t)}static d(...e){this.log(a.HMSLogLevel.DEBUG,...e)}static i(...e){this.log(a.HMSLogLevel.INFO,...e)}static w(...e){this.log(a.HMSLogLevel.WARN,...e)}static e(...e){this.log(a.HMSLogLevel.ERROR,...e)}static time(e){this.log(a.HMSLogLevel.TIME,"[HMSPerformanceTiming]",e)}static timeEnd(e){this.log(a.HMSLogLevel.TIMEEND,"[HMSPerformanceTiming]",e,e)}static cleanUp(){performance.clearMarks(),performance.clearMeasures()}static log(e,...t){if(!(this.level.valueOf()>e.valueOf()))switch(e){case a.HMSLogLevel.VERBOSE:{console.log(se,...t);break}case a.HMSLogLevel.DEBUG:{console.debug(se,...t);break}case a.HMSLogLevel.INFO:{console.info(se,...t);break}case a.HMSLogLevel.WARN:{console.warn(se,...t);break}case a.HMSLogLevel.ERROR:{console.error(se,...t);break}case a.HMSLogLevel.TIME:{performance.mark(t[1]);break}case a.HMSLogLevel.TIMEEND:{let r=t[0],i=t[1];try{let o=performance.measure(i,i);this.log(a.HMSLogLevel.DEBUG,r,i,o==null?void 0:o.duration),performance.clearMarks(i),performance.clearMeasures(i)}catch(o){this.log(a.HMSLogLevel.DEBUG,r,i,o)}break}}}};m.level=a.HMSLogLevel.VERBOSE;var we=(s,e)=>e,us=(s,e)=>e,Mt=(s,e)=>e,D=(0,k.createSelector)([v,we],(s,e)=>e?s[e]:null),Ne=(0,k.createSelector)([T,us],(s,e)=>e?s[e]:null),O=p(D),Ue=p((0,k.createSelector)(D,s=>s==null?void 0:s.name)),re=p(Ne),mt=p((s,e)=>{let t=D(s,e);if(t&&t.videoTrack&&t.videoTrack!=="")return s.tracks[t.videoTrack]}),ht=p((s,e)=>{let t=D(s,e);if(t&&t.audioTrack&&t.audioTrack!=="")return s.tracks[t.audioTrack]}),ps=mt,Ms=p((s,e)=>{let t=D(s,e);return(t==null?void 0:t.auxiliaryTracks.map(r=>s.tracks[r]))||[]}),gt=(s,e)=>e?s.speakers[e]:null,ms=p((0,k.createSelector)(gt,s=>(s==null?void 0:s.audioLevel)||0)),hs=(s,e)=>{let t=ht(e)(s);return gt(s,t==null?void 0:t.id)},gs=p((0,k.createSelector)(hs,s=>(s==null?void 0:s.audioLevel)||0)),Ts=p((s,e)=>{let t=D(s,e);if(t){let r=t==null?void 0:t.auxiliaryTracks.find(i=>z(s.tracks[i]));return r?s.tracks[r]:void 0}}),Hs=p((0,k.createSelector)(T,D,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let i=s[r];return Z(i)&&X(i)});return t?s[t]:void 0})),ys=p((0,k.createSelector)(T,D,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let i=s[r];return Z(i)&&z(i)});return t?s[t]:void 0})),fs=p((0,k.createSelector)(T,D,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let i=s[r];return le(i)&&z(i)});return t?s[t]:void 0})),_e=p((0,k.createSelector)(T,D,(s,e)=>B(s,e))),ks=s=>(0,k.createSelector)(_e(s),e=>e.video),Ke=s=>(0,k.createSelector)(_e(s),e=>e.audio),Ps=p((s,e)=>{let t=D(s,e);return W(s,t==null?void 0:t.audioTrack)}),Is=p((s,e)=>{let t=D(s,e);return W(s,t==null?void 0:t.videoTrack)}),Ve=p((s,e)=>{if(e&&s.tracks[e])return s.tracks[e].volume===0}),Rs=p((s,e)=>{let t=D(s,e);return Ve(t==null?void 0:t.audioTrack)(s)}),vs=p((s,e)=>{let t=Ke(e)(s);return Ve(t==null?void 0:t.id)(s)}),Be=p((s,e)=>{let t=Ne(s,e);if(t){if(t.type!=="audio"){m.w("Please pass audio track here");return}return t.volume}}),Ds=p((s,e)=>{let t=D(s,e);return Be(t==null?void 0:t.audioTrack)(s)}),bs=p((s,e)=>{let t=Ke(e)(s);return Be(t==null?void 0:t.id)(s)}),Es=p((s,e)=>{let t=Ne(s,e);if(t){if(t.type!=="video"){m.w("Please pass video track here");return}return t.layer}}),Tt=(0,k.createSelector)([ee,K,we],(s,e,t)=>{if(!!t)return s.filter(r=>{var i;return!r.recipientPeer&&!((i=r.recipientRoles)==null?void 0:i.length)||![e,t].includes(r.sender)?!1:[e,t].includes(r.recipientPeer)})}),Ht=(0,k.createSelector)([ee,Mt],(s,e)=>{if(!!e)return s.filter(t=>{var r,i;return((r=t.recipientRoles)==null?void 0:r.length)?(i=t.recipientRoles)==null?void 0:i.includes(e):!1})}),yt=(0,k.createSelector)(ee,s=>s.filter(e=>{var t;return!e.recipientPeer&&!((t=e.recipientRoles)==null?void 0:t.length)})),Cs=(0,k.createSelector)([Ht,Mt],s=>s?s.filter(e=>!e.read).length:0),As=(0,k.createSelector)([Tt,we],s=>s?s.filter(e=>!e.read).length:0),xs=(0,k.createSelector)(yt,s=>s.filter(e=>!e.read).length),Ls=p(Tt),Os=p(Ht),ws=p(Cs),Ns=p(As),Us=s=>(0,k.createSelector)([Se],e=>e.filter(t=>t.roleName===s)),_s=s=>(0,k.createSelector)(O(s),e=>{try{return(e==null?void 0:e.metadata)&&e.metadata!==""?JSON.parse(e.metadata):{}}catch(t){return console.error("cannot parse peer metadata",t),{}}});var pe=R(require("reselect")),Ks=(0,pe.createSelector)([v,T],(s,e)=>Object.values(s).map(r=>{var i;return{peer:r,isAudioEnabled:r.audioTrack?(i=e[r.audioTrack])==null?void 0:i.enabled:!1}})),Vs=s=>s.roleChangeRequests[0]||null,Bs=(0,pe.createSelector)([Vs,v,_],(s,e,t)=>s?{requestedBy:e[s.requestedBy],role:t[s.roleName],token:s.token}:null),qs=(0,pe.createSelector)([te],s=>{var i;let e=!1,t=!1,r=!1;return((i=s==null?void 0:s.publishParams)==null?void 0:i.allowed)&&(e=s.publishParams.allowed.includes("video"),t=s.publishParams.allowed.includes("audio"),r=s.publishParams.allowed.includes("screen")),{video:e,audio:t,screen:r}});var $=R(require("reselect"));var js=s=>(0,$.createSelector)([_],e=>e[s]),Ws=(0,$.createSelector)([A,T],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),$s=(0,$.createSelector)([C,T],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),Fs=s=>(0,$.createSelector)([Ws],e=>e.includes(s)),Gs=s=>(0,$.createSelector)([$s],e=>e.includes(s));var ie=R(require("@100mslive/hms-video"));var Me=R(require("@100mslive/hms-video"));function ft(s){return s instanceof Me.HMSRemoteAudioTrack||s instanceof Me.HMSRemoteVideoTrack}var me=class{constructor(e,t,r,i){this.playlistManager=e;this.syncPlaylistState=r;this.store=i;this.type=t}play(e){return c(this,null,function*(){if(!e){m.w("Please pass id to play");return}yield this.playlistManager.setEnabled(!0,{id:e,type:this.type})})}pause(){return c(this,null,function*(){let e=this.type===M.audio?Le:Oe,t=this.store.getState(e.selection);if(!t.id){m.w("No item is currently playing to pause");return}yield this.playlistManager.setEnabled(!1,{id:t.id,type:this.type})})}playNext(){return c(this,null,function*(){yield this.playlistManager.playNext(this.type)})}playPrevious(){return c(this,null,function*(){yield this.playlistManager.playPrevious(this.type)})}seek(e){this.playlistManager.seek(e,this.type),this.syncPlaylistState(`seekOn${this.type}Playlist`)}seekTo(e){this.playlistManager.seekTo(e,this.type),this.syncPlaylistState(`seekToOn${this.type}Playlist`)}setVolume(e){this.playlistManager.setVolume(e,this.type),this.syncPlaylistState(`setVolumeOn${this.type}Playlist`)}setList(e){this.playlistManager.setList(e),this.syncPlaylistState(`setListOn${this.type}Playlist`)}stop(){return c(this,null,function*(){yield this.playlistManager.stop(this.type),this.syncPlaylistState(`stop${this.type}Playlist`)})}setIsAutoplayOn(e){this.playlistManager.setIsAutoplayOn(this.type,e)}setPlaybackRate(e){this.playlistManager.setPlaybackRate(this.type,e),this.syncPlaylistState(`set${this.type}PlaybackRate`)}};var kt={[a.HMSPeerUpdate.PEER_JOINED]:h.PEER_JOINED,[a.HMSPeerUpdate.PEER_LEFT]:h.PEER_LEFT,[a.HMSPeerUpdate.ROLE_UPDATED]:h.ROLE_UPDATED,[a.HMSPeerUpdate.AUDIO_TOGGLED]:"PEER_AUDIO_UPDATED",[a.HMSPeerUpdate.VIDEO_TOGGLED]:"PEER_VIDEO_UPDATED",[a.HMSPeerUpdate.NAME_UPDATED]:h.NAME_UPDATED,[a.HMSPeerUpdate.METADATA_UPDATED]:h.METADATA_UPDATED},Pt={[a.HMSTrackUpdate.TRACK_ADDED]:h.TRACK_ADDED,[a.HMSTrackUpdate.TRACK_REMOVED]:h.TRACK_REMOVED,[a.HMSTrackUpdate.TRACK_MUTED]:h.TRACK_MUTED,[a.HMSTrackUpdate.TRACK_UNMUTED]:h.TRACK_UNMUTED,[a.HMSTrackUpdate.TRACK_DEGRADED]:h.TRACK_DEGRADED,[a.HMSTrackUpdate.TRACK_RESTORED]:h.TRACK_RESTORED},It={[a.HMSPeerUpdate.PEER_JOINED]:"peerJoined",[a.HMSPeerUpdate.PEER_LEFT]:"peerLeft",[a.HMSPeerUpdate.NAME_UPDATED]:"peerNameUpdated",[a.HMSPeerUpdate.METADATA_UPDATED]:"peerMetadataUpdated"};var qe=class{constructor(e,t,r){this.hmsSDKTracks={};this.hmsSDKPeers={};this.isRoomJoinCalled=!1;this.setProgress=({type:e,progress:t})=>{this.setState(r=>{r.playlist[e].progress=t,r.playlist[e].currentTime=this.sdk.getPlaylistManager().getCurrentTime(e)},"playlistProgress")};this.syncPlaylistState=e=>{this.setState(t=>{Object.assign(t.playlist,g.convertPlaylist(this.sdk.getPlaylistManager()))},e)};this.sendPeerUpdateNotification=(e,t)=>{let r=this.store.getState(O(t.peerId)),i="peerUpdate";i=It[e],this.syncRoomState(i),r||(r=this.store.getState(O(t.peerId))),this.hmsNotifications.sendPeerUpdate(e,r)};this.setState=(e,t)=>this.store.namedSetState(e,t);this.store=e,this.sdk=t,this.hmsNotifications=r}unblockAudio(){return c(this,null,function*(){yield this.sdk.getAudioOutput().unblockAutoplay()})}setVolume(e,t){t?this.setTrackVolume(e,t):(this.sdk.getAudioOutput().setVolume(e),this.syncRoomState("setOutputVolume"))}setAudioOutputDevice(e){this.sdk.getAudioOutput().setDevice(e)&&this.setState(r=>{r.settings.audioOutputDeviceId=e},"setAudioOutputDevice")}setPreferredLayer(e,t){let r=this.hmsSDKTracks[e];r?r instanceof ie.HMSRemoteVideoTrack?(r.preferLayer(t),this.updateVideoLayer(e,"setPreferredLayer")):m.w(`track ${e} is not an video track`):this.logPossibleInconsistency(`track ${e} not present, unable to set preffer layer`)}preview(e){return c(this,null,function*(){if(this.isRoomJoinCalled){this.logPossibleInconsistency("attempting to call preview after join was called");return}let t=this.store.getState(x);if(t===y.Preview||t===y.Connecting){this.logPossibleInconsistency("attempting to call preview while room is in preview/connecting");return}try{this.setState(r=>{r.room.roomState=y.Connecting},"connecting"),yield this.sdkPreviewWithListeners(e)}catch(r){throw m.e("Cannot show preview. Failed to connect to room - ",r),r}})}join(e){if(this.isRoomJoinCalled){this.logPossibleInconsistency("room join is called again");return}try{this.sdkJoinWithListeners(e),this.isRoomJoinCalled=!0,this.setState(t=>{t.room.roomState=y.Connecting},"join")}catch(t){throw this.isRoomJoinCalled=!1,m.e("Failed to connect to room - ",t),t}}leave(){return c(this,null,function*(){if(!this.store.getState(Ee)){this.logPossibleInconsistency("room leave is called when no room is connected");return}return this.sdk.leave().then(()=>{this.resetState("leave"),m.i("left room")}).catch(t=>{m.e("error in leaving room - ",t)})})}setScreenShareEnabled(e,t){return c(this,null,function*(){e?yield this.startScreenShare(t):yield this.stopScreenShare()})}addTrack(e,t="regular"){return c(this,null,function*(){yield this.sdk.addTrack(e,t),this.syncRoomState("addTrack")})}removeTrack(e){return c(this,null,function*(){yield this.sdk.removeTrack(e),this.syncRoomState("removeTrack")})}setLocalAudioEnabled(e){return c(this,null,function*(){let t=this.store.getState(C);t&&(yield this.setEnabledTrack(t,e))})}setLocalVideoEnabled(e){return c(this,null,function*(){let t=this.store.getState(A);t&&(yield this.setEnabledTrack(t,e))})}setEnabledTrack(e,t){return c(this,null,function*(){var o;if(((o=this.store.getState().tracks[e])==null?void 0:o.enabled)===t){this.logPossibleInconsistency(`local track[${e}] enabled state - ${t}`);return}this.setState(n=>{n.tracks[e]?n.tracks[e].displayEnabled=t:this.logPossibleInconsistency("track id not found for setEnabled")},"displayEnabled");try{yield this.setEnabledSDKTrack(e,t),this.syncRoomState("setEnabled")}catch(n){throw this.setState(S=>{S.tracks[e].displayEnabled=!t},"rollbackDisplayEnabled"),this.hmsNotifications.sendError(g.convertException(n)),n}let i=t?a.HMSTrackUpdate.TRACK_UNMUTED:a.HMSTrackUpdate.TRACK_MUTED;this.hmsNotifications.sendTrackUpdate(i,e)})}setAudioSettings(e){return c(this,null,function*(){let t=this.store.getState(C);t&&(yield this.setSDKLocalAudioTrackSettings(t,e),this.syncRoomState("setAudioSettings"))})}setVideoSettings(e){return c(this,null,function*(){let t=this.store.getState(A);t&&(yield this.setSDKLocalVideoTrackSettings(t,e),this.syncRoomState("setVideoSettings"))})}sendMessage(e){this.sendBroadcastMessage(e)}sendBroadcastMessage(e,t){return c(this,null,function*(){let r=yield this.sdk.sendBroadcastMessage(e,t);this.updateMessageInStore(r,{message:e,type:t})})}sendGroupMessage(e,t,r){return c(this,null,function*(){let i=this.store.getState(_),o=t.map(S=>i[S]),n=yield this.sdk.sendGroupMessage(e,o,r);this.updateMessageInStore(n,{message:e,recipientRoles:t,type:r})})}sendDirectMessage(e,t,r){return c(this,null,function*(){let i=this.hmsSDKPeers[t],o=yield this.sdk.sendDirectMessage(e,i,r);this.updateMessageInStore(o,{message:e,recipientPeer:i.peerId,type:r})})}updateMessageInStore(e,t){if(!e)throw m.w("sendMessage","Failed to send message",t),Error(`sendMessage Failed - ${JSON.stringify(t)}`);let r=g.convertMessage(e);return r.read=!0,r.senderName="You",this.onHMSMessage(r),r}setMessageRead(e,t){this.setState(r=>{t?r.messages.byID[t]?r.messages.byID[t].read=e:this.logPossibleInconsistency("no message with id is found"):r.messages.allIDs.forEach(i=>{r.messages.byID[i].read=e})},"setMessageRead")}attachVideo(e,t){return c(this,null,function*(){if(this.localAndVideoUnmuting(e))return new Promise(r=>{let i=this.store.subscribe(o=>c(this,null,function*(){o&&(yield this.attachVideoInternal(e,t),i(),r())}),de)});yield this.attachVideoInternal(e,t)})}detachVideo(e,t){return c(this,null,function*(){let r=this.hmsSDKTracks[e];r&&r.type==="video"?(yield r.removeSink(t),this.updateVideoLayer(e,"detachVideo")):this.logPossibleInconsistency("no video track found to remove sink")})}addPluginToVideoTrack(e,t){return c(this,null,function*(){return this.addRemoveVideoPlugin(e,"add",t)})}addPluginToAudioTrack(e){return c(this,null,function*(){return this.addRemoveAudioPlugin(e,"add")})}removePluginFromVideoTrack(e){return c(this,null,function*(){return this.addRemoveVideoPlugin(e,"remove")})}removePluginFromAudioTrack(e){return c(this,null,function*(){return this.addRemoveAudioPlugin(e,"remove")})}changeRole(e,t,r=!1){return c(this,null,function*(){let i=this.hmsSDKPeers[e];if(!i){this.logPossibleInconsistency(`Unknown peer ID given ${e} for changerole`);return}yield this.sdk.changeRole(i,t,r)})}acceptChangeRole(e){return c(this,null,function*(){let t=e.requestedBy?this.hmsSDKPeers[e.requestedBy.id]:void 0;t||m.w(`peer for which role change is requested no longer available - ${e.requestedBy}`);let r={requestedBy:t,role:e.role,token:e.token};yield this.sdk.acceptChangeRole(r),this.removeRoleChangeRequest(e)})}rejectChangeRole(e){this.removeRoleChangeRequest(e)}endRoom(e,t){return c(this,null,function*(){let r=this.store.getState(Ce);if(!(r==null?void 0:r.endRoom)){m.w("You are not allowed to perform this action - endRoom");return}yield this.sdk.endRoom(e,t)})}removePeer(e,t){return c(this,null,function*(){let r=this.hmsSDKPeers[e];if(r&&!r.isLocal)yield this.sdk.removePeer(r,t);else{this.logPossibleInconsistency(`No remote peer found for peerID - ${e}`);return}})}startRTMPOrRecording(e){return c(this,null,function*(){yield this.sdk.startRTMPOrRecording(e)})}stopRTMPAndRecording(){return c(this,null,function*(){yield this.sdk.stopRTMPAndRecording()})}startHLSStreaming(e){return c(this,null,function*(){yield this.sdk.startHLSStreaming(e)})}stopHLSStreaming(e){return c(this,null,function*(){yield this.sdk.stopHLSStreaming(e)})}changeName(e){return c(this,null,function*(){yield this.sdk.changeName(e)})}changeMetadata(e){return c(this,null,function*(){typeof e!="string"&&(e=JSON.stringify(e)),yield this.sdk.changeMetadata(e)})}setRemoteTrackEnabled(e,t){return c(this,null,function*(){if(typeof e=="string"){let r=this.hmsSDKTracks[e];r&&ft(r)?yield this.sdk.changeTrackState(r,t):this.logPossibleInconsistency(`No remote track with ID ${e} found for change track state`)}else Array.isArray(e)&&e.forEach(r=>this.setRemoteTrackEnabled(r,t))})}setRemoteTracksEnabled(e){return c(this,null,function*(){let t={enabled:e.enabled,type:e.type,source:e.source};if(e.roles){let r=this.store.getState(_);t.roles=e.roles.map(i=>r[i])}yield this.sdk.changeMultiTrackState(t)})}setLogLevel(e){m.level=e,this.sdk.setLogLevel(e)}resetState(e="resetState"){this.setState(t=>{Object.assign(t,Y())},e),this.isRoomJoinCalled=!1,this.hmsSDKTracks={},m.cleanUp()}sdkJoinWithListeners(e){this.sdk.join(e,{onJoin:this.onJoin.bind(this),onRoomUpdate:this.onRoomUpdate.bind(this),onPeerUpdate:this.onPeerUpdate.bind(this),onTrackUpdate:this.onTrackUpdate.bind(this),onMessageReceived:this.onMessageReceived.bind(this),onError:this.onError.bind(this),onReconnected:this.onReconnected.bind(this),onReconnecting:this.onReconnecting.bind(this),onRoleChangeRequest:this.onRoleChangeRequest.bind(this),onRoleUpdate:this.onRoleUpdate.bind(this),onDeviceChange:this.onDeviceChange.bind(this),onChangeTrackStateRequest:this.onChangeTrackStateRequest.bind(this),onChangeMultiTrackStateRequest:this.onChangeMultiTrackStateRequest.bind(this),onRemovedFromRoom:this.onRemovedFromRoom.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})}onRemovedFromRoom(e){var r;let t=this.store.getState(O((r=e.requestedBy)==null?void 0:r.peerId));this.hmsNotifications.sendLeaveRoom(j(V({},e),{requestedBy:t||void 0})),m.i("resetting state after peer removed",e),this.resetState(e.roomEnded||!t?"roomEnded":"removedFromRoom")}onDeviceChange(e){let t=e.devices;if(!t)return;let r=this.store.getState(E);if(this.setState(i=>{N(i.devices.audioInput,t.audioInput)||(i.devices.audioInput=t.audioInput),N(i.devices.videoInput,t.videoInput)||(i.devices.videoInput=t.videoInput),N(i.devices.audioOutput,t.audioOutput)||(i.devices.audioOutput=t.audioOutput),this.hmsSDKPeers[r==null?void 0:r.id]&&Object.assign(i.settings,this.getMediaSettings(this.hmsSDKPeers[r==null?void 0:r.id]))},"deviceChange"),e.selection){let i=g.convertDeviceChangeUpdate(e);this.hmsNotifications.sendDeviceChange(i)}}sdkPreviewWithListeners(e){return c(this,null,function*(){yield this.sdk.preview(e,{onPreview:this.onPreview.bind(this),onError:this.onError.bind(this),onDeviceChange:this.onDeviceChange.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})})}startScreenShare(e){return c(this,null,function*(){this.store.getState(ue)?this.logPossibleInconsistency("start screenshare is called while it's on"):(yield this.sdk.startScreenShare(()=>this.syncRoomState("screenshareStopped"),e),this.syncRoomState("startScreenShare"))})}stopScreenShare(){return c(this,null,function*(){this.store.getState(ue)?(yield this.sdk.stopScreenShare(),this.syncRoomState("stopScreenShare")):this.logPossibleInconsistency("stop screenshare is called while it's not on")})}attachVideoInternal(e,t){return c(this,null,function*(){let r=this.hmsSDKTracks[e];r&&r.type==="video"?(yield r.addSink(t),this.updateVideoLayer(e,"attachVideo")):this.logPossibleInconsistency("no video track found to add sink")})}syncRoomState(e){m.time(`store-sync-${e}`);let t={},r=[],i={},o={},n={},S=this.sdk.getPeers();for(let f of S){let w=g.convertPeer(f);t[w.id]=w,r.push(w.id),this.hmsSDKPeers[w.id]=f;let G=[f.audioTrack,f.videoTrack,...f.auxiliaryTracks];for(let ce of G){if(!ce)continue;let Ye=g.convertTrack(ce);i[Ye.id]=Ye,o[ce.trackId]=ce}w.isLocal&&Object.assign(n,this.getMediaSettings(f))}let d=this.sdk.getRecordingState(),I=this.sdk.getRTMPState(),ae=this.sdk.getHLSState();this.setState(f=>{f.room.peers=r;let w=f.peers,G=f.tracks;tt(w,t),st(G,i),Object.assign(f.settings,n),this.hmsSDKTracks=o,Object.assign(f.roles,g.convertRoles(this.sdk.getRoles())),Object.assign(f.playlist,g.convertPlaylist(this.sdk.getPlaylistManager())),Object.assign(f.room,g.convertRecordingStreamingState(d,I,ae))},e),m.timeEnd(`store-sync-${e}`)}onPreview(e){this.setState(t=>{Object.assign(t.room,g.convertRoom(e)),t.room.roomState=y.Preview},"previewStart"),this.syncRoomState("previewSync")}onJoin(e){let t=this.sdk.getPlaylistManager();this.audioPlaylist=new me(t,M.audio,this.syncPlaylistState.bind(this),this.store),this.videoPlaylist=new me(t,M.video,this.syncRoomState.bind(this),this.store),this.syncRoomState("joinSync"),this.setState(r=>{Object.assign(r.room,g.convertRoom(e)),r.room.isConnected=!0,r.room.roomState=y.Connected},"joined"),t.onProgress(this.setProgress),t.onNewTrackStart(r=>{this.syncPlaylistState(`${r.type}PlaylistUpdate`)}),t.onPlaylistEnded(r=>{this.syncPlaylistState(`${r}PlaylistEnded`)}),t.onCurrentTrackEnded(r=>{this.hmsNotifications.sendPlaylistTrackEnded(g.convertPlaylistItem(t,r)),this.syncPlaylistState(`${r.type}PlaylistItemEnded`)})}onRoomUpdate(e,t){this.setState(r=>{Object.assign(r.room,g.convertRoom(t))},"RoomUpdate")}onPeerUpdate(e,t){if(![a.HMSPeerUpdate.BECAME_DOMINANT_SPEAKER,a.HMSPeerUpdate.RESIGNED_DOMINANT_SPEAKER].includes(e)){if(Array.isArray(t)){this.syncRoomState("peersJoined");let r=[];for(let i of t){let o=this.store.getState(O(i.peerId));o&&r.push(o)}this.hmsNotifications.sendPeerList(r);return}this.sendPeerUpdateNotification(e,t)}}onTrackUpdate(e,t,r){if(e===a.HMSTrackUpdate.TRACK_REMOVED)this.hmsNotifications.sendTrackUpdate(e,t.trackId),this.handleTrackRemove(t,r);else{let i=e===a.HMSTrackUpdate.TRACK_ADDED?"trackAdded":"trackUpdate";this.syncRoomState(i),this.hmsNotifications.sendTrackUpdate(e,t.trackId)}}onMessageReceived(e){let t=g.convertMessage(e);t.read=!1,this.onHMSMessage(t),this.hmsNotifications.sendMessageReceived(t)}onHMSMessage(e){this.setState(t=>{e.id=String(this.store.getState(be)+1),t.messages.byID[e.id]=e,t.messages.allIDs.push(e.id)},"newMessage")}onAudioLevelUpdate(e){this.setState(t=>{let r={};e.forEach(o=>{if(!o.track||!o.peer)return;let n=o.track.trackId;r[n]=o.audioLevel,t.speakers[n]||(t.speakers[n]={audioLevel:o.audioLevel,peerID:o.peer.peerId,trackID:n})});let i=Object.entries(t.speakers);for(let[o,n]of i)n.audioLevel=r[o]||0,n.audioLevel===0&&delete t.speakers[o]},"audioLevel")}onChangeTrackStateRequest(e){let t=this.store.getState(O(e.requestedBy.peerId)),r=this.getStoreLocalTrackIDfromSDKTrack(e.track),i=this.store.getState(re(r));if(!t)return this.logPossibleInconsistency(`Not found peer who requested track state change, ${e.requestedBy}`);if(!i)return this.logPossibleInconsistency(`Not found track for which track state change was requested, ${e.track}`);e.enabled||this.syncRoomState("changeTrackStateRequest"),this.hmsNotifications.sendChangeTrackStateRequest({requestedBy:t,track:i,enabled:e.enabled})}onChangeMultiTrackStateRequest(e){let t=this.store.getState(O(e.requestedBy.peerId));if(!t)return this.logPossibleInconsistency(`Not found peer who requested track state change, ${e.requestedBy}`);e.enabled||this.syncRoomState("changeMultiTrackStateRequest");let r=[],i=this.store.getState(T);for(let o of e.tracks){let n=this.getStoreLocalTrackIDfromSDKTrack(o);n&&i[n]&&r.push(i[n])}this.hmsNotifications.sendChangeMultiTrackStateRequest({requestedBy:t,tracks:r,enabled:e.enabled,type:e.type,source:e.source})}onReconnected(){this.syncRoomState("reconnectedSync"),this.hmsNotifications.sendReconnected(),this.setState(e=>{e.room.roomState=y.Connected},"reconnected")}onReconnecting(e){let t=g.convertException(e);m.e("Reconnection: received error from sdk",t),this.hmsNotifications.sendReconnecting(t),this.setState(r=>{r.room.roomState=y.Reconnecting,r.errors.push(t)},"reconnecting")}onError(e){let t=g.convertException(e);t.isTerminal?(this.leave().then(()=>m.e("error from SDK, left room.")),this.setState(r=>{r.room.roomState=y.Failed,r.errors.push(t)},"errorTerminal")):this.store.getState().errors.length<50&&this.setState(i=>{i.errors.push(t)},"error"),this.hmsNotifications.sendError(t),m.e("received error from sdk",t)}updateVideoLayer(e,t){let r=this.hmsSDKTracks[e];r&&r instanceof ie.HMSRemoteVideoTrack&&this.setState(i=>{i.tracks[e].layer=r.getSimulcastLayer()},t)}handleTrackRemove(e,t){this.setState(r=>{let i=r.peers[t.peerId],o=r.tracks,n=e.trackId;if(this.isSameStoreSDKTrack(n,i==null?void 0:i.audioTrack))i==null||delete i.audioTrack;else if(this.isSameStoreSDKTrack(n,i==null?void 0:i.videoTrack))i==null||delete i.videoTrack;else{let S=i==null?void 0:i.auxiliaryTracks.indexOf(n);S>-1&&this.isSameStoreSDKTrack(n,i==null?void 0:i.auxiliaryTracks[S])&&(i==null||i.auxiliaryTracks.splice(S,1))}delete o[n],delete this.hmsSDKTracks[n]},"trackRemoved")}setEnabledSDKTrack(e,t){return c(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setEnabled(t):this.logPossibleInconsistency(`track ${e} not present, unable to enabled/disable`)})}setSDKLocalVideoTrackSettings(e,t){return c(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}setSDKLocalAudioTrackSettings(e,t){return c(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}getMediaSettings(e){var o;let t=this.store.getState(Re),r=e.audioTrack,i=e.videoTrack;return{audioInputDeviceId:(r==null?void 0:r.settings.deviceId)||t.audioInputDeviceId,videoInputDeviceId:(i==null?void 0:i.settings.deviceId)||t.videoInputDeviceId,audioOutputDeviceId:(o=this.sdk.getAudioOutput().getDevice())==null?void 0:o.deviceId}}setTrackVolume(e,t){let r=this.hmsSDKTracks[t];r?r instanceof ie.HMSAudioTrack?(r.setVolume(e),this.setState(i=>{let o=i.tracks[t];o&&(o.volume=e)},"trackVolume")):m.w(`track ${t} is not an audio track`):this.logPossibleInconsistency(`track ${t} not present, unable to set volume`)}localAndVideoUnmuting(e){if(this.store.getState(E).videoTrack!==e)return!1;let r=this.store.getState(De),i=this.store.getState(de);return r&&!i}logPossibleInconsistency(e){m.w("possible inconsistency detected - ",e)}addRemoveVideoPlugin(e,t,r){return c(this,null,function*(){if(!e){m.w("Invalid plugin received in store");return}let i=this.store.getState(A);if(i){let o=this.hmsSDKTracks[i];o?(t==="add"?yield o.addPlugin(e,r):t==="remove"&&(yield o.removePlugin(e)),this.syncRoomState(`${t}VideoPlugin`)):this.logPossibleInconsistency(`track ${i} not present, unable to remove plugin`)}})}addRemoveAudioPlugin(e,t){return c(this,null,function*(){if(!e){m.w("Invalid plugin received in store");return}let r=this.store.getState(C);if(r){let i=this.hmsSDKTracks[r];i?(t==="add"?yield i.addPlugin(e):t==="remove"&&(yield i.removePlugin(e)),this.syncRoomState(`${t}AudioPlugin`)):this.logPossibleInconsistency(`track ${r} not present, unable to remove plugin`)}})}isSameStoreSDKTrack(e,t){var r;return t?((r=this.hmsSDKTracks[t])==null?void 0:r.trackId)===e:!1}onRoleChangeRequest(e){this.setState(t=>{t.roleChangeRequests.length===0&&t.roleChangeRequests.push(g.convertRoleChangeRequest(e))},"roleChangeRequest")}removeRoleChangeRequest(e){this.setState(t=>{let r=t.roleChangeRequests.findIndex(i=>i.token===e.token);r!==-1&&t.roleChangeRequests.splice(r,1)},"removeRoleChangeRequest")}onRoleUpdate(){this.syncRoomState("roleUpdate")}getStoreLocalTrackIDfromSDKTrack(e){return this.store.getState(ve).find(r=>this.hmsSDKTracks[r].trackId===e.trackId)}};var Rt=R(require("eventemitter2"));var je="hmsNotification",We=class{constructor(e){this.id=0;this.onNotification=e=>(this.eventEmitter.addListener(je,e),()=>{this.eventEmitter.removeListener(je,e)});this.store=e,this.eventEmitter=new Rt.EventEmitter2}sendPlaylistTrackEnded(e){let t=this.createNotification(h.PLAYLIST_TRACK_ENDED,e,P.INFO);this.emitEvent(t)}sendDeviceChange(e){var r;let t=this.createNotification(h.DEVICE_CHANGE_UPDATE,e,e.error?P.ERROR:P.INFO,`Selected ${e.type} device - ${(r=e.selection)==null?void 0:r.label}`);this.emitEvent(t)}sendLeaveRoom(e){var i;let t=(i=e.requestedBy)==null?void 0:i.name,r=this.createNotification(e.roomEnded||!t?h.ROOM_ENDED:h.REMOVED_FROM_ROOM,e,P.INFO,`${e.roomEnded?"Room ended":"Removed from room"} ${t?`by ${t}`:""}`);this.emitEvent(r)}sendPeerList(e){let t=this.createNotification(h.PEER_LIST,e,P.INFO);this.emitEvent(t)}sendPeerUpdate(e,t){let r=this.store.getState(O(t==null?void 0:t.id))||t,i=kt[e];if(i){let o=this.createNotification(i,r,P.INFO);this.emitEvent(o)}}sendTrackUpdate(e,t){let r=this.store.getState(re(t)),i=Pt[e];if(i){let o=this.createNotification(i,r,P.INFO);this.emitEvent(o)}}sendMessageReceived(e){let t=this.createNotification(h.NEW_MESSAGE,e,P.INFO);this.emitEvent(t)}sendError(e){let t=this.createNotification(h.ERROR,e,P.ERROR);this.emitEvent(t)}sendReconnecting(e){let t=this.createNotification(h.RECONNECTING,e,P.ERROR);this.emitEvent(t)}sendReconnected(){let e=this.createNotification(h.RECONNECTED,null,P.INFO);this.emitEvent(e)}sendChangeTrackStateRequest(e){let t=this.createNotification(h.CHANGE_TRACK_STATE_REQUEST,e,P.INFO);this.emitEvent(t)}sendChangeMultiTrackStateRequest(e){let t=this.createNotification(h.CHANGE_MULTI_TRACK_STATE_REQUEST,e,P.INFO);this.emitEvent(t)}emitEvent(e){this.eventEmitter.emit(je,e)}createNotification(e,t,r,i=""){return this.id++,{id:this.id,type:e,message:i,data:t,severity:r}}};function $e(s){return s!=null}var vt=(s,e,t)=>{let r;t.getState(x)===y.Connected&&(r=Dt(s,e,t)),t.subscribe(i=>{[y.Connected,y.Reconnecting].includes(i)?r||(r=Dt(s,e,t)):r&&(Zs(e),r())},x)},Dt=(s,e,t)=>{var o;let r=Js(t,e),i=(o=s.getWebrtcInternals())==null?void 0:o.onStatsChange(n=>Ys(e,n,t));return()=>{r(),i&&i()}},Js=(s,e)=>{let t,r,i;return s.getState(K)?e.namedSetState(o=>{o.localPeer.id=s.getState(K)},"localpeer-id"):t=s.subscribe(o=>{o&&e.namedSetState(n=>{n.localPeer.id=o},"localpeer-id")},K),s.getState(A)?e.namedSetState(o=>{o.localPeer.videoTrack=s.getState(A)},"localpeer-videotrack-id"):r=s.subscribe(o=>{o&&e.namedSetState(n=>{n.localPeer.videoTrack=o},"localpeer-videotrack-id")},A),s.getState(C)?e.namedSetState(o=>{o.localPeer.videoTrack=s.getState(C)},"localpeer-audiotrack-id"):i=s.subscribe(o=>{o&&e.namedSetState(n=>{n.localPeer.videoTrack=o},"localpeer-audiotrack-id")},C),()=>{t==null||t(),r==null||r(),i==null||i()}},Ys=(s,e,t)=>{let r=t.getState(T);s.namedSetState(i=>{i.jitter=e.getJitter(),i.packetsLost=e.getPacketsLost();let o={},n=Object.keys(r);for(let d of n){let I=e.getTrackStats(d);I&&(o[d]=Xs(t,r[d],I,i.trackStats[d]))}Te(i.trackStats,o);let S=Qs(t,i.peerStats[t.getState(K)],e.getLocalPeerStats());Te(i.peerStats,S)},"webrtc-stats")},Qs=(s,e,t)=>{let r={},i=s.getState(K);return r[i]||(r[i]={}),e?r[i]=zs(t,e):(t.publish&&(r[i].publish=Object.assign(t.publish,{bitrate:0})),t.subscribe&&(r[i].subscribe=Object.assign(t.subscribe,{bitrate:0}))),r},zs=(s,e)=>{let t=Fe("bytesSent",s.publish,e==null?void 0:e.publish),r=Fe("bytesReceived",s.subscribe,e==null?void 0:e.subscribe),i=Object.assign(s.publish,{bitrate:t}),o=Object.assign(s.subscribe,{bitrate:r});return{publish:i,subscribe:o}},Xs=(s,e,t,r)=>{let i=Fe((t==null?void 0:t.type)==="outbound-rtp"?"bytesSent":"bytesReceived",t,r);return Object.assign(t,{peerID:e.peerId,peerName:s.getState(Ue(e.peerId)),bitrate:i})},Fe=(s,e,t)=>{let r=e&&e[s],i=t?t[s]:null;return e&&t&&$e(r)&&$e(i)?(r-i)/(e.timestamp-t.timestamp)*1e3*8:0},Zs=(s,e="resetState")=>{s.namedSetState(t=>{Object.assign(t,Q())},e)};var oe=class{constructor(e,t){this.hmsStore=e;this.sdk=t;this.store=L.createNewHMSStore("HMSInternalsStore",Q),this.getState=this.store.getState,this.subscribe=this.store.subscribe,this.getPublishPeerConnection=()=>new Promise(r=>{var i,o;this.hmsStore.getState(x)==="Connected"?r((o=(i=this.sdk)==null?void 0:i.getWebrtcInternals())==null?void 0:o.getPublishPeerConnection()):this.hmsStore.subscribe(n=>{var S,d;n==="Connected"&&r((d=(S=this.sdk)==null?void 0:S.getWebrtcInternals())==null?void 0:d.getPublishPeerConnection())},x)}),this.getSubscribePeerConnection=()=>new Promise(r=>{var i,o;this.hmsStore.getState(x)==="Connected"?r((o=(i=this.sdk)==null?void 0:i.getWebrtcInternals())==null?void 0:o.getSubscribePeerConnection()):this.hmsStore.subscribe(n=>{var S,d;n==="Connected"&&r((d=(S=this.sdk)==null?void 0:S.getWebrtcInternals())==null?void 0:d.getSubscribePeerConnection())},x)}),!!this.sdk&&vt(this.sdk,this.store,this.hmsStore)}};var he={};et(he,{availablePublishBitrate:()=>lr,availableSubscribeBitrate:()=>Sr,bitrateByTrackID:()=>hr,bytesReceivedByTrackID:()=>gr,framerateByTrackID:()=>Tr,jitter:()=>tr,jitterByTrackID:()=>Hr,localAudioTrackBitrate:()=>fr,localAudioTrackBytesSent:()=>Pr,localAudioTrackStats:()=>Je,localPeerStats:()=>q,localVideoTrackBitrate:()=>kr,localVideoTrackBytesSent:()=>Ir,localVideoTrackFramerate:()=>Rr,localVideoTrackQualityLimitationReason:()=>vr,localVideoTrackStats:()=>ne,packetsLost:()=>er,packetsLostByTrackID:()=>yr,peerStatsByID:()=>Mr,publishBitrate:()=>ar,subscribeBitrate:()=>cr,totalBytesReceived:()=>ur,totalBytesSent:()=>dr,trackStatsByID:()=>mr});var H=R(require("reselect"));var er=s=>s.packetsLost,tr=s=>s.jitter,sr=s=>s.localPeer.id,rr=s=>s.localPeer.audioTrack,ir=s=>s.localPeer.videoTrack,or=(s,e)=>e,nr=(s,e)=>e,Ge=s=>s.trackStats,bt=s=>s.peerStats,q=(0,H.createSelector)([bt,sr],(s,e)=>s[e]),ar=(0,H.createSelector)(q,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bitrate}),cr=(0,H.createSelector)(q,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bitrate}),lr=(0,H.createSelector)(q,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.availableOutgoingBitrate}),Sr=(0,H.createSelector)(q,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.availableIncomingBitrate}),dr=(0,H.createSelector)(q,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bytesSent}),ur=(0,H.createSelector)(q,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bytesReceived}),pr=(0,H.createSelector)([bt,or],(s,e)=>e?s[e]:void 0),F=(0,H.createSelector)([Ge,nr],(s,e)=>e?s[e]:void 0),Mr=p(pr),mr=p(F),hr=p((0,H.createSelector)(F,s=>s==null?void 0:s.bitrate)),gr=p((0,H.createSelector)(F,s=>s==null?void 0:s.bytesReceived)),Tr=p((0,H.createSelector)(F,s=>s==null?void 0:s.framesPerSecond)),Hr=p((0,H.createSelector)(F,s=>s==null?void 0:s.jitter)),yr=p((0,H.createSelector)(F,s=>s==null?void 0:s.packetsLost)),Je=(0,H.createSelector)([Ge,rr],(s,e)=>e?s[e]:void 0),ne=(0,H.createSelector)([Ge,ir],(s,e)=>e?s[e]:void 0),fr=(0,H.createSelector)(Je,s=>s==null?void 0:s.bitrate),kr=(0,H.createSelector)(ne,s=>s==null?void 0:s.bitrate),Pr=(0,H.createSelector)(Je,s=>s==null?void 0:s.bytesSent),Ir=(0,H.createSelector)(ne,s=>s==null?void 0:s.bytesSent),Rr=(0,H.createSelector)(ne,s=>s==null?void 0:s.framesPerSecond),vr=(0,H.createSelector)(ne,s=>s==null?void 0:s.qualityLimitationReason);var L=class{constructor(e,t,r){this.getWebrtcInternals=()=>(this.webrtcInternals||(this.webrtcInternals=new oe(this.store,this.sdk)),this.webrtcInternals);e?this.store=e:this.store=L.createNewHMSStore("HMSStore",Y),r?this.notifications=r:this.notifications=new We(this.store),t?this.actions=t:(this.sdk=new xt.HMSSdk,this.actions=new qe(this.store,this.sdk,this.notifications)),this.initialTriggerOnSubscribe=!1}triggerOnSubscribe(){this.initialTriggerOnSubscribe||(L.makeStoreTriggerOnSubscribe(this.store),this.initialTriggerOnSubscribe=!0)}getStore(){return this.store}getHMSActions(){return this.actions}getNotifications(){return{onNotification:this.notifications.onNotification}}static createNewHMSStore(e,t){let r=(0,Ct.default)(()=>t()),i=r.setState;r.setState=S=>{let d=typeof S=="function"?(0,Et.default)(S):S;i(d)};let o=r.getState;r.getState=S=>{if(S){let d=S.name||"byIDSelector";window.selectorsCount||(window.selectorsCount={}),window.selectorsCount[d]=(window.selectorsCount[d]||0)+1;let I=performance.now(),ae=S(o()),f=performance.now()-I;return f>1&&(window.expensiveSelectors=window.expensiveSelectors||new Map,window.expensiveSelectors.set(d,f)),ae}return o()},L.useShallowCheckInSubscribe(r);let n=L.setUpDevtools(r,e);return j(V({},r),{namedSetState:n})}static makeStoreTriggerOnSubscribe(e){let t=e.subscribe;e.subscribe=(r,i,o)=>(r(e.getState(i),void 0),t(r,i,o))}static useShallowCheckInSubscribe(e){let t=e.subscribe;e.subscribe=(r,i,o)=>(i||(i=n=>n),o=o||At.default,t(r,i,o))}static setUpDevtools(e,t){let r;try{r=window.__REDUX_DEVTOOLS_EXTENSION__||window.top.__REDUX_DEVTOOLS_EXTENSION__}catch(n){}if(!r)return n=>{e.setState(n)};let i=r.connect(L.devtoolsOptions(t));i.prefix=t?`${t} > `:"";let o=e.setState;return e.setState=n=>{o(n),i.send(`${i.prefix}setState`,e.getState())},i.subscribe(L.devtoolsSubscribe(i,e,o)),i.send("setUpStore",e.getState()),(n,S)=>{o(n);let d=S||`${i.prefix}action`;i.send(d,e.getState())}}static devtoolsOptions(e){return{name:e,actionsBlacklist:["audioLevel","playlistProgress"]}}static devtoolsSubscribe(e,t,r){return i=>{var o,n,S,d;if(i.type==="DISPATCH"&&i.state)["JUMP_TO_ACTION","JUMP_TO_STATE"].includes(i.payload.type)?r(JSON.parse(i.state)):t.setState(JSON.parse(i.state));else if(i.type==="DISPATCH"&&((o=i.payload)==null?void 0:o.type)==="COMMIT")e.init(t.getState());else if(i.type==="DISPATCH"&&((n=i.payload)==null?void 0:n.type)==="IMPORT_STATE"){let I=(S=i.payload.nextLiftedState)==null?void 0:S.actionsById;(((d=i.payload.nextLiftedState)==null?void 0:d.computedStates)||[]).forEach(({state:f},w)=>{let G=I[w]||`${e.prefix}setState`;w===0?e.init(f):(r(f),e.send(G,t.getState()))})}}}};
@@ -1 +1 @@
1
- var ot=Object.defineProperty,rt=Object.defineProperties;var nt=Object.getOwnPropertyDescriptors;var pe=Object.getOwnPropertySymbols;var at=Object.prototype.hasOwnProperty,ct=Object.prototype.propertyIsEnumerable;var Me=(s,e,t)=>e in s?ot(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,_=(s,e)=>{for(var t in e||(e={}))at.call(e,t)&&Me(s,t,e[t]);if(pe)for(var t of pe(e))ct.call(e,t)&&Me(s,t,e[t]);return s},K=(s,e)=>rt(s,nt(e));var a=(s,e,t)=>new Promise((i,o)=>{var r=m=>{try{S(t.next(m))}catch(R){o(R)}},n=m=>{try{S(t.throw(m))}catch(R){o(R)}},S=m=>m.done?i(m.value):Promise.resolve(m.value).then(r,n);S((t=t.apply(s,e)).next())});import xt from"immer";import Ot from"zustand/vanilla";import wt from"zustand/shallow";import{HMSSdk as Nt}from"@100mslive/hms-video";var f;(function(n){n.Disconnected="Disconnected",n.Preview="Preview",n.Connecting="Connecting",n.Connected="Connected",n.Reconnecting="Reconnecting",n.Failed="Failed"})(f||(f={}));var W=()=>({room:{id:"",isConnected:!1,name:"",peers:[],shareableLink:"",localPeer:"",hasWaitingRoom:!1,roomState:f.Disconnected,recording:{browser:{running:!1},server:{running:!1}},rtmp:{running:!1},hls:{running:!1,url:""},sessionId:""},peers:{},tracks:{},playlist:{audio:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1},video:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1}},messages:{byID:{},allIDs:[]},speakers:{},settings:{audioInputDeviceId:"",audioOutputDeviceId:"",videoInputDeviceId:""},devices:{audioInput:[],audioOutput:[],videoInput:[]},roles:{},roleChangeRequests:[],errors:[]});var me;(function(e){e.CHAT="chat"})(me||(me={}));var k;(function(i){i.INFO="info",i.ERROR="error",i.CRITICAL="critical"})(k||(k={}));var p;(function(c){c.PEER_JOINED="PEER_JOINED",c.PEER_LEFT="PEER_LEFT",c.PEER_LIST="PEER_LIST",c.NEW_MESSAGE="NEW_MESSAGE",c.ERROR="ERROR",c.RECONNECTING="RECONNECTING",c.RECONNECTED="RECONNECTED",c.TRACK_ADDED="TRACK_ADDED",c.TRACK_REMOVED="TRACK_REMOVED",c.TRACK_MUTED="TRACK_MUTED",c.TRACK_UNMUTED="TRACK_UNMUTED",c.TRACK_DEGRADED="TRACK_DEGRADED",c.TRACK_RESTORED="TRACK_RESTORED",c.ROLE_CHANGE_REQUEST="ROLE_CHANGE_REQUEST",c.ROLE_UPDATED="ROLE_UPDATED",c.CHANGE_TRACK_STATE_REQUEST="CHANGE_TRACK_STATE_REQUEST",c.CHANGE_MULTI_TRACK_STATE_REQUEST="CHANGE_MULTI_TRACK_STATE_REQUEST",c.ROOM_ENDED="ROOM_ENDED",c.REMOVED_FROM_ROOM="REMOVED_FROM_ROOM",c.DEVICE_CHANGE_UPDATE="DEVICE_CHANGE_UPDATE",c.PLAYLIST_TRACK_ENDED="PLAYLIST_TRACK_ENDED",c.NAME_UPDATED="NAME_UPDATED",c.METADATA_UPDATED="METADATA_UPDATED"})(p||(p={}));var d;(function(t){t.audio="audio",t.video="video"})(d||(d={}));import{HMSException as jt,HMSSimulcastLayer as Jt,HMSPeerUpdate as P,HMSRoomUpdate as Wt,HMSTrackUpdate as I,HMSLogLevel as T,HMSAudioPluginType as lt,HMSVideoPluginType as dt}from"@100mslive/hms-video";import{HMSLocalAudioTrack as ke,HMSLocalVideoTrack as Pe,HMSRemoteAudioTrack as ut,HMSRemoteVideoTrack as pt}from"@100mslive/hms-video";var he=(s,e)=>{let t=fe(Object.keys(s),Object.keys(e));for(let i of t){let o=s[i],r=e[i];Te(o,r)?(C(o.auxiliaryTracks,r.auxiliaryTracks)&&(r.auxiliaryTracks=o.auxiliaryTracks),Object.assign(o,r)):ye(o,r)?delete s[i]:He(o,r)&&(s[i]=r)}},ge=(s,e)=>{let t=fe(Object.keys(s),Object.keys(e));for(let i of t){let o=s[i],r=e[i];Te(o,r)?(St(o,r),Object.assign(o,r)):ye(o,r)?delete s[i]:He(o,r)&&(s[i]=r)}},St=(s,e)=>{s.plugins&&C(s.plugins,e.plugins)&&(e.plugins=s.plugins),s.layerDefinitions&&C(s.layerDefinitions,e.layerDefinitions)&&(e.layerDefinitions=s.layerDefinitions)},Te=(s,e)=>s&&e,ye=(s,e)=>s&&!e,He=(s,e)=>!s&&e,C=(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},fe=(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}}static convertTrack(e,t){let i={id:e.trackId,source:e.source,type:e.type,enabled:e.enabled,displayEnabled:e.enabled,peerId:e.peerId||t};return this.enrichTrack(i,e),i}static enrichTrack(e,t){let i=t.getMediaTrackSettings();e.source==="screen"&&e.type==="video"&&(e.displaySurface=i.displaySurface),e.height=i.height,e.width=i.width,t instanceof ut&&(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 Pe||t instanceof ke?e.deviceID=t.settings.deviceId:e.deviceID=(i=t.getMediaTrackSettings())==null?void 0:i.deviceId}static enrichVideoTrack(e,t){t instanceof pt&&(e.layer=t.getSimulcastLayer(),e.degraded=t.degraded,C(t.getSimulcastDefinitions(),e.layerDefinitions)||(e.layerDefinitions=t.getSimulcastDefinitions()))}static enrichPluginsDetails(e,t){(t instanceof Pe||t instanceof ke)&&(C(t.getPlugins(),e.plugins)||(e.plugins=t.getPlugins()))}static convertRoom(e){var t,i,o,r,n,S,m;return{id:e.id,name:e.name,localPeer:(i=(t=e.localPeer)==null?void 0:t.peerId)!=null?i:"",hasWaitingRoom:e.hasWaitingRoom,shareableLink:e.shareableLink,recording:{browser:{running:!!((o=e.recording)==null?void 0:o.browser.running)},server:{running:!!((r=e.recording)==null?void 0:r.server.running)}},rtmp:{running:!!((n=e.rtmp)==null?void 0:n.running)},hls:{running:!!((S=e.hls)==null?void 0:S.running),url:((m=e.hls)==null?void 0:m.url)||""},sessionId:e.sessionId,startedAt:e.startedAt}}static convertMessage(e){var t,i,o;return{sender:e.sender.peerId,senderName:e.sender.name,senderRole:(t=e.sender.role)==null?void 0:t.name,senderUserId:e.sender.customerUserId,recipientPeer:(i=e.recipientPeer)==null?void 0:i.peerId,recipientRoles:(o=e.recipientRoles)==null?void 0:o.map(r=>r.name),time:e.time,type:e.type,message:e.message}}static convertRoles(e){let t={};return e&&e.forEach(i=>{t[i.name]=i}),t}static convertRoleChangeRequest(e){return{requestedBy:e.requestedBy.peerId,roleName:e.role.name,token:e.token}}static convertException(e){return{code:e.code,action:e.action,name:e.name,message:e.message,description:e.description,isTerminal:e.isTerminal,nativeError:e.nativeError,timestamp:new Date}}static convertDeviceChangeUpdate(e){let t={devices:e.devices,selection:e.selection,type:e.type};return e.error&&(t.error=this.convertException(e.error)),t}static convertPlaylist(e){let t=this.getConvertedPlaylistType(e,d.audio),i=this.getConvertedPlaylistType(e,d.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 K(_({},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),S=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<S.length-1},progress:r,volume:n,currentTime:e.getCurrentTime(t),playbackRate:e.getPlaybackRate(t)}}static convertRecordingRTMPState(e,t,i){var o,r;return{recording:{browser:{running:!!((o=e==null?void 0:e.browser)==null?void 0:o.running)},server:{running:!!((r=e==null?void 0:e.server)==null?void 0:r.running)}},rtmp:{running:!!(t==null?void 0:t.running)},hls:{url:(i==null?void 0:i.url)||"",running:!!(i==null?void 0:i.running)}}}};import{createSelector as l}from"reselect";function w(s,e,t=Mt){let i,o;if(e)for(let r of e.auxiliaryTracks){let n=s[r];t(n)&&(o=q(n)?n:o,i=$(n)?n:i)}return{video:i,audio:o}}function q(s){return s&&s.type==="audio"}function $(s){return s&&s.type==="video"}function Mt(s){return s&&s.source==="screen"}function Y(s){return s&&s.source==="audioplaylist"}function F(s){return s&&s.source==="videoplaylist"}function Re(s){return Boolean(s==null?void 0:s.degraded)}function V(s,e){return e&&s.tracks[e]?s.tracks[e].enabled:!1}function ve(s,e){return e&&s.tracks[e]?s.tracks[e].displayEnabled:!1}var E=s=>s.room,D=s=>s.peers,De=s=>s.messages.byID,Ie=s=>s.messages.allIDs,g=s=>s.tracks,Ee=s=>s.settings,js=s=>s.devices,mt=s=>s.speakers,Js=l([E],s=>s&&s.isConnected),Ws=l(E,s=>s.peers.length),ee=l([E,D],(s,e)=>s.peers.map(t=>e[t])),ht=l(g,s=>Object.values(s)),b=l(E,D,(s,e)=>e[s.localPeer]),be=l(E,s=>s.localPeer),N=l(b,s=>s==null?void 0:s.audioTrack),U=l(b,s=>s==null?void 0:s.videoTrack),gt=l(b,s=>s==null?void 0:s.auxiliaryTracks),Ae=l([N,U,gt],(s,e,t)=>{let i=[...t];return s&&i.unshift(s),e&&i.unshift(e),i}),Ys=l(ee,s=>s.filter(e=>!e.isLocal)),Qs=l(D,mt,(s,e)=>{let t=Object.entries(e).sort((i,o)=>{var S,m;let r=((S=i[1])==null?void 0:S.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}),Xs=s=>{let e=b(s);return V(s,e==null?void 0:e.audioTrack)},te=s=>{let e=b(s);return V(s,e==null?void 0:e.videoTrack)},Ce=s=>{let e=b(s);return ve(s,e==null?void 0:e.videoTrack)},se=l(b,g,(s,e)=>{let{video:t,audio:i}=w(e,s);return!!(t||i)}),Tt=l(D,g,(s,e)=>{let t;for(let i in s){let o=s[i],{video:r,audio:n}=w(e,o);if(r)return o;n&&!t&&(t=o)}return t}),zs=l(Tt,s=>!!s),Zs=l(D,g,(s,e)=>{for(let t in s){let i=s[t],{audio:o,video:r}=w(e,i);if(!r&&!!o)return i}}),ei=l(D,g,(s,e)=>{let t=[],i=[];for(let o in s){let r=s[o],{video:n,audio:S}=w(e,r);n?t.push(r):S&&i.push(r)}return t.concat(i)}),ti=l(D,g,(s,e)=>{for(let t in e){let i=e[t];if(F(i)&&$(i)&&i.peerId)return s[i.peerId]}}),si=l(D,g,(s,e)=>{for(let t in e){let i=e[t];if(Y(i)&&i.peerId)return s[i.peerId]}}),ii=l(ht,s=>s.filter(Re)),Le=l(Ie,s=>s.length),oi=l(De,s=>Object.values(s).filter(e=>!e.read).length),Q=l(Ie,De,(s,e)=>{let t=[];return s.forEach(i=>{t.push(e[i])}),t}),ie=l([E],s=>s&&s.roomState),ri=l(ie,s=>s===f.Preview),xe=l(E,s=>s.roomState!==f.Disconnected),x=s=>s.roles,ni=l([x],s=>Object.keys(s)),X=l([b,x],(s,e)=>(s==null?void 0:s.roleName)?e[s.roleName]:null),ai=l([X],s=>{var e;return((e=s==null?void 0:s.subscribeParams)==null?void 0:e.subscribeToRoles)?s.subscribeParams.subscribeToRoles.length>0:!1}),Oe=l(X,s=>s==null?void 0:s.permissions),ci=l(E,s=>s.recording),li=l(E,s=>s.rtmp),di=l(E,s=>s.hls),Si=l(E,s=>s.sessionId),ui=l(E,s=>s.startedAt);import{createSelector as we}from"reselect";var Ne=(s=d.audio)=>e=>e.playlist[s].list,oe=(s=d.audio)=>e=>e.playlist[s].selection,Ue=(s=d.audio)=>e=>e.playlist[s].progress,_e=(s=d.audio)=>e=>e.playlist[s].currentTime,Ke=(s=d.audio)=>e=>e.playlist[s].playbackRate,Ve=(s=d.audio)=>e=>e.playlist[s].volume,Be=(s=d.audio)=>we(Ne(s),e=>Object.values(e)),qe=(s=d.audio)=>we(Ne(s),oe(s),(e,t)=>{if(!!t.id)return e[t.id]}),$e={selection:oe(d.audio),progress:Ue(d.audio),currentTime:_e(d.audio),playbackRate:Ke(d.audio),volume:Ve(d.audio),list:Be(d.audio),selectedItem:qe(d.audio)},Fe={selection:oe(d.video),progress:Ue(d.video),currentTime:_e(d.video),playbackRate:Ke(d.video),volume:Ve(d.video),list:Be(d.video),selectedItem:qe(d.video)};import{createSelector as y}from"reselect";var G="HMS-Store:",u=class{static v(e,...t){this.log(T.VERBOSE,e,...t)}static d(...e){this.log(T.DEBUG,...e)}static i(...e){this.log(T.INFO,...e)}static w(...e){this.log(T.WARN,...e)}static e(...e){this.log(T.ERROR,...e)}static time(e){this.log(T.TIME,"[HMSPerformanceTiming]",e)}static timeEnd(e){this.log(T.TIMEEND,"[HMSPerformanceTiming]",e,e)}static cleanUp(){performance.clearMarks(),performance.clearMeasures()}static log(e,...t){if(!(this.level.valueOf()>e.valueOf()))switch(e){case T.VERBOSE:{console.log(G,...t);break}case T.DEBUG:{console.debug(G,...t);break}case T.INFO:{console.info(G,...t);break}case T.WARN:{console.warn(G,...t);break}case T.ERROR:{console.error(G,...t);break}case T.TIME:{performance.mark(t[1]);break}case T.TIMEEND:{let i=t[0],o=t[1];try{let r=performance.measure(o,o);this.log(T.DEBUG,i,o,r==null?void 0:r.duration),performance.clearMarks(o),performance.clearMeasures(o)}catch(r){this.log(T.DEBUG,i,o,r)}break}}}};u.level=T.VERBOSE;function M(s){return e=>t=>s(t,e)}var re=(s,e)=>e,yt=(s,e)=>e,Ge=(s,e)=>e,v=y([D,re],(s,e)=>e?s[e]:null),ne=y([g,yt],(s,e)=>e?s[e]:null),L=M(v),vi=M(y(v,s=>s==null?void 0:s.name)),z=M(ne),Ht=M((s,e)=>{let t=v(s,e);if(t&&t.videoTrack&&t.videoTrack!=="")return s.tracks[t.videoTrack]}),ft=M((s,e)=>{let t=v(s,e);if(t&&t.audioTrack&&t.audioTrack!=="")return s.tracks[t.audioTrack]}),Di=Ht,Ii=M((s,e)=>{let t=v(s,e);return(t==null?void 0:t.auxiliaryTracks.map(i=>s.tracks[i]))||[]}),je=(s,e)=>e?s.speakers[e]:null,Ei=M(y(je,s=>(s==null?void 0:s.audioLevel)||0)),kt=(s,e)=>{let t=ft(e)(s);return je(s,t==null?void 0:t.id)},bi=M(y(kt,s=>(s==null?void 0:s.audioLevel)||0)),Ai=M((s,e)=>{let t=v(s,e);if(t){let i=t==null?void 0:t.auxiliaryTracks.find(o=>q(s.tracks[o]));return i?s.tracks[i]:void 0}}),Ci=M(y(g,v,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(i=>{let o=s[i];return F(o)&&$(o)});return t?s[t]:void 0})),Li=M(y(g,v,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(i=>{let o=s[i];return F(o)&&q(o)});return t?s[t]:void 0})),xi=M(y(g,v,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(i=>{let o=s[i];return Y(o)&&q(o)});return t?s[t]:void 0})),Je=M(y(g,v,(s,e)=>w(s,e))),Oi=s=>y(Je(s),e=>e.video),We=s=>y(Je(s),e=>e.audio),wi=M((s,e)=>{let t=v(s,e);return V(s,t==null?void 0:t.audioTrack)}),Ni=M((s,e)=>{let t=v(s,e);return V(s,t==null?void 0:t.videoTrack)}),Ye=M((s,e)=>{if(e&&s.tracks[e])return s.tracks[e].volume===0}),Ui=M((s,e)=>{let t=v(s,e);return Ye(t==null?void 0:t.audioTrack)(s)}),_i=M((s,e)=>{let t=We(e)(s);return Ye(t==null?void 0:t.id)(s)}),Qe=M((s,e)=>{let t=ne(s,e);if(t){if(t.type!=="audio"){u.w("Please pass audio track here");return}return t.volume}}),Ki=M((s,e)=>{let t=v(s,e);return Qe(t==null?void 0:t.audioTrack)(s)}),Vi=M((s,e)=>{let t=We(e)(s);return Qe(t==null?void 0:t.id)(s)}),Bi=M((s,e)=>{let t=ne(s,e);if(t){if(t.type!=="video"){u.w("Please pass video track here");return}return t.layer}}),Xe=y([Q,be,re],(s,e,t)=>{if(!!t)return s.filter(i=>{var o;return!i.recipientPeer&&!((o=i.recipientRoles)==null?void 0:o.length)||![e,t].includes(i.sender)?!1:[e,t].includes(i.recipientPeer)})}),ze=y([Q,Ge],(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})}),Pt=y(Q,s=>s.filter(e=>{var t;return!e.recipientPeer&&!((t=e.recipientRoles)==null?void 0:t.length)})),Rt=y([ze,Ge],s=>s?s.filter(e=>!e.read).length:0),vt=y([Xe,re],s=>s?s.filter(e=>!e.read).length:0),qi=y(Pt,s=>s.filter(e=>!e.read).length),$i=M(Xe),Fi=M(ze),Gi=M(Rt),ji=M(vt),Ji=s=>y([ee],e=>e.filter(t=>t.roleName===s)),Wi=s=>y(L(s),e=>{try{return(e==null?void 0:e.metadata)&&e.metadata!==""?JSON.parse(e.metadata):{}}catch(t){return console.error("cannot parse peer metadata",t),{}}});import{createSelector as ae}from"reselect";var zi=ae([D,g],(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}})),Dt=s=>s.roleChangeRequests[0]||null,Zi=ae([Dt,D,x],(s,e,t)=>s?{requestedBy:e[s.requestedBy],role:t[s.roleName],token:s.token}:null),eo=ae([X],s=>{var o;let e=!1,t=!1,i=!1;return((o=s==null?void 0:s.publishParams)==null?void 0:o.allowed)&&(e=s.publishParams.allowed.includes("video"),t=s.publishParams.allowed.includes("audio"),i=s.publishParams.allowed.includes("screen")),{video:e,audio:t,screen:i}});import{createSelector as j}from"reselect";var oo=s=>j([x],e=>e[s]),It=j([U,g],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),Et=j([N,g],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),ro=s=>j([It],e=>e.includes(s)),no=s=>j([Et],e=>e.includes(s));import{HMSAudioTrack as Ct,HMSRemoteVideoTrack as it}from"@100mslive/hms-video";import{HMSRemoteAudioTrack as bt,HMSRemoteVideoTrack as At}from"@100mslive/hms-video";function Ze(s){return s instanceof bt||s instanceof At}var Z=class{constructor(e,t,i,o){this.playlistManager=e;this.syncPlaylistState=i;this.store=o;this.type=t}play(e){return a(this,null,function*(){if(!e){u.w("Please pass id to play");return}yield this.playlistManager.setEnabled(!0,{id:e,type:this.type})})}pause(){return a(this,null,function*(){let e=this.type===d.audio?$e:Fe,t=this.store.getState(e.selection);if(!t.id){u.w("No item is currently playing to pause");return}yield this.playlistManager.setEnabled(!1,{id:t.id,type:this.type})})}playNext(){return a(this,null,function*(){yield this.playlistManager.playNext(this.type)})}playPrevious(){return a(this,null,function*(){yield this.playlistManager.playPrevious(this.type)})}seek(e){this.playlistManager.seek(e,this.type),this.syncPlaylistState(`seekOn${this.type}Playlist`)}seekTo(e){this.playlistManager.seekTo(e,this.type),this.syncPlaylistState(`seekToOn${this.type}Playlist`)}setVolume(e){this.playlistManager.setVolume(e,this.type),this.syncPlaylistState(`setVolumeOn${this.type}Playlist`)}setList(e){this.playlistManager.setList(e),this.syncPlaylistState(`setListOn${this.type}Playlist`)}stop(){return a(this,null,function*(){yield this.playlistManager.stop(this.type),this.syncPlaylistState(`stop${this.type}Playlist`)})}setIsAutoplayOn(e){this.playlistManager.setIsAutoplayOn(this.type,e)}setPlaybackRate(e){this.playlistManager.setPlaybackRate(this.type,e),this.syncPlaylistState(`set${this.type}PlaybackRate`)}};var et={[P.PEER_JOINED]:p.PEER_JOINED,[P.PEER_LEFT]:p.PEER_LEFT,[P.ROLE_UPDATED]:p.ROLE_UPDATED,[P.AUDIO_TOGGLED]:"PEER_AUDIO_UPDATED",[P.VIDEO_TOGGLED]:"PEER_VIDEO_UPDATED",[P.NAME_UPDATED]:p.NAME_UPDATED,[P.METADATA_UPDATED]:p.METADATA_UPDATED},tt={[I.TRACK_ADDED]:p.TRACK_ADDED,[I.TRACK_REMOVED]:p.TRACK_REMOVED,[I.TRACK_MUTED]:p.TRACK_MUTED,[I.TRACK_UNMUTED]:p.TRACK_UNMUTED,[I.TRACK_DEGRADED]:p.TRACK_DEGRADED,[I.TRACK_RESTORED]:p.TRACK_RESTORED},st={[P.PEER_JOINED]:"peerJoined",[P.PEER_LEFT]:"peerLeft",[P.NAME_UPDATED]:"peerNameUpdated",[P.METADATA_UPDATED]:"peerMetadataUpdated"};var ce=class{constructor(e,t,i){this.hmsSDKTracks={};this.hmsSDKPeers={};this.isRoomJoinCalled=!1;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(L(t.peerId)),o="peerUpdate";o=st[e],this.syncRoomState(o),i||(i=this.store.getState(L(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}unblockAudio(){return a(this,null,function*(){yield this.sdk.getAudioOutput().unblockAutoplay()})}setVolume(e,t){t?this.setTrackVolume(e,t):(this.sdk.getAudioOutput().setVolume(e),this.syncRoomState("setOutputVolume"))}setAudioOutputDevice(e){this.sdk.getAudioOutput().setDevice(e)&&this.setState(i=>{i.settings.audioOutputDeviceId=e},"setAudioOutputDevice")}setPreferredLayer(e,t){let i=this.hmsSDKTracks[e];i?i instanceof it?(i.preferLayer(t),this.updateVideoLayer(e,"setPreferredLayer")):u.w(`track ${e} is not an video track`):this.logPossibleInconsistency(`track ${e} not present, unable to set preffer layer`)}preview(e){return a(this,null,function*(){if(this.isRoomJoinCalled){this.logPossibleInconsistency("attempting to call preview after join was called");return}let t=this.store.getState(ie);if(t===f.Preview||t===f.Connecting){this.logPossibleInconsistency("attempting to call preview while room is in preview/connecting");return}try{this.setState(i=>{i.room.roomState=f.Connecting},"connecting"),yield this.sdkPreviewWithListeners(e)}catch(i){throw u.e("Cannot show preview. Failed to connect to room - ",i),i}})}join(e){if(this.isRoomJoinCalled){this.logPossibleInconsistency("room join is called again");return}try{this.sdkJoinWithListeners(e),this.isRoomJoinCalled=!0,this.setState(t=>{t.room.roomState=f.Connecting},"join")}catch(t){throw this.isRoomJoinCalled=!1,u.e("Failed to connect to room - ",t),t}}leave(){return a(this,null,function*(){if(!this.store.getState(xe)){this.logPossibleInconsistency("room leave is called when no room is connected");return}return this.sdk.leave().then(()=>{this.resetState("leave"),u.i("left room")}).catch(t=>{u.e("error in leaving room - ",t)})})}setScreenShareEnabled(e,t){return a(this,null,function*(){e?yield this.startScreenShare(t):yield this.stopScreenShare()})}addTrack(e,t="regular"){return a(this,null,function*(){yield this.sdk.addTrack(e,t),this.syncRoomState("addTrack")})}removeTrack(e){return a(this,null,function*(){yield this.sdk.removeTrack(e),this.syncRoomState("removeTrack")})}setLocalAudioEnabled(e){return a(this,null,function*(){let t=this.store.getState(N);t&&(yield this.setEnabledTrack(t,e))})}setLocalVideoEnabled(e){return a(this,null,function*(){let t=this.store.getState(U);t&&(yield this.setEnabledTrack(t,e))})}setEnabledTrack(e,t){return a(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(S=>{S.tracks[e].displayEnabled=!t},"rollbackDisplayEnabled"),this.hmsNotifications.sendError(h.convertException(n)),n}let o=t?I.TRACK_UNMUTED:I.TRACK_MUTED;this.hmsNotifications.sendTrackUpdate(o,e)})}setAudioSettings(e){return a(this,null,function*(){let t=this.store.getState(N);t&&(yield this.setSDKLocalAudioTrackSettings(t,e),this.syncRoomState("setAudioSettings"))})}setVideoSettings(e){return a(this,null,function*(){let t=this.store.getState(U);t&&(yield this.setSDKLocalVideoTrackSettings(t,e),this.syncRoomState("setVideoSettings"))})}sendMessage(e){this.sendBroadcastMessage(e)}sendBroadcastMessage(e,t){return a(this,null,function*(){let i=yield this.sdk.sendBroadcastMessage(e,t);this.updateMessageInStore(i,{message:e,type:t})})}sendGroupMessage(e,t,i){return a(this,null,function*(){let o=this.store.getState(x),r=t.map(S=>o[S]),n=yield this.sdk.sendGroupMessage(e,r,i);this.updateMessageInStore(n,{message:e,recipientRoles:t,type:i})})}sendDirectMessage(e,t,i){return a(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 u.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",this.onHMSMessage(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 a(this,null,function*(){if(this.localAndVideoUnmuting(e))return new Promise(i=>{let o=this.store.subscribe(r=>a(this,null,function*(){r&&(yield this.attachVideoInternal(e,t),o(),i())}),te)});yield this.attachVideoInternal(e,t)})}detachVideo(e,t){return a(this,null,function*(){let i=this.hmsSDKTracks[e];i&&i.type==="video"?(yield i.removeSink(t),this.updateVideoLayer(e,"detachVideo")):this.logPossibleInconsistency("no video track found to remove sink")})}addPluginToVideoTrack(e,t){return a(this,null,function*(){return this.addRemoveVideoPlugin(e,"add",t)})}addPluginToAudioTrack(e){return a(this,null,function*(){return this.addRemoveAudioPlugin(e,"add")})}removePluginFromVideoTrack(e){return a(this,null,function*(){return this.addRemoveVideoPlugin(e,"remove")})}removePluginFromAudioTrack(e){return a(this,null,function*(){return this.addRemoveAudioPlugin(e,"remove")})}changeRole(e,t,i=!1){return a(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 a(this,null,function*(){let t=e.requestedBy?this.hmsSDKPeers[e.requestedBy.id]:void 0;t||u.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)})}rejectChangeRole(e){this.removeRoleChangeRequest(e)}endRoom(e,t){return a(this,null,function*(){let i=this.store.getState(Oe);if(!(i==null?void 0:i.endRoom)){u.w("You are not allowed to perform this action - endRoom");return}yield this.sdk.endRoom(e,t)})}removePeer(e,t){return a(this,null,function*(){let 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 a(this,null,function*(){yield this.sdk.startRTMPOrRecording(e)})}stopRTMPAndRecording(){return a(this,null,function*(){yield this.sdk.stopRTMPAndRecording()})}startHLSStreaming(e){return a(this,null,function*(){yield this.sdk.startHLSStreaming(e)})}stopHLSStreaming(){return a(this,null,function*(){yield this.sdk.stopHLSStreaming()})}changeName(e){return a(this,null,function*(){yield this.sdk.changeName(e)})}changeMetadata(e){return a(this,null,function*(){typeof e!="string"&&(e=JSON.stringify(e)),yield this.sdk.changeMetadata(e)})}setRemoteTrackEnabled(e,t){return a(this,null,function*(){if(typeof e=="string"){let i=this.hmsSDKTracks[e];i&&Ze(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 a(this,null,function*(){let t={enabled:e.enabled,type:e.type,source:e.source};if(e.roles){let i=this.store.getState(x);t.roles=e.roles.map(o=>i[o])}yield this.sdk.changeMultiTrackState(t)})}setLogLevel(e){u.level=e,this.sdk.setLogLevel(e)}resetState(e="resetState"){this.setState(t=>{Object.assign(t,W())},e),this.isRoomJoinCalled=!1,this.hmsSDKTracks={},u.cleanUp()}sdkJoinWithListeners(e){this.sdk.join(e,{onJoin:this.onJoin.bind(this),onRoomUpdate:this.onRoomUpdate.bind(this),onPeerUpdate:this.onPeerUpdate.bind(this),onTrackUpdate:this.onTrackUpdate.bind(this),onMessageReceived:this.onMessageReceived.bind(this),onError:this.onError.bind(this),onReconnected:this.onReconnected.bind(this),onReconnecting:this.onReconnecting.bind(this),onRoleChangeRequest:this.onRoleChangeRequest.bind(this),onRoleUpdate:this.onRoleUpdate.bind(this),onDeviceChange:this.onDeviceChange.bind(this),onChangeTrackStateRequest:this.onChangeTrackStateRequest.bind(this),onChangeMultiTrackStateRequest:this.onChangeMultiTrackStateRequest.bind(this),onRemovedFromRoom:this.onRemovedFromRoom.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})}onRemovedFromRoom(e){var i;let t=this.store.getState(L((i=e.requestedBy)==null?void 0:i.peerId));this.hmsNotifications.sendLeaveRoom(K(_({},e),{requestedBy:t||void 0})),u.i("resetting state after peer removed",e),this.resetState(e.roomEnded||!t?"roomEnded":"removedFromRoom")}onDeviceChange(e){let t=e.devices;if(!t)return;let i=this.store.getState(b);if(this.setState(o=>{C(o.devices.audioInput,t.audioInput)||(o.devices.audioInput=t.audioInput),C(o.devices.videoInput,t.videoInput)||(o.devices.videoInput=t.videoInput),C(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 a(this,null,function*(){yield this.sdk.preview(e,{onPreview:this.onPreview.bind(this),onError:this.onError.bind(this),onDeviceChange:this.onDeviceChange.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})})}startScreenShare(e){return a(this,null,function*(){this.store.getState(se)?this.logPossibleInconsistency("start screenshare is called while it's on"):(yield this.sdk.startScreenShare(()=>this.syncRoomState("screenshareStopped"),e),this.syncRoomState("startScreenShare"))})}stopScreenShare(){return a(this,null,function*(){this.store.getState(se)?(yield this.sdk.stopScreenShare(),this.syncRoomState("stopScreenShare")):this.logPossibleInconsistency("stop screenshare is called while it's not on")})}attachVideoInternal(e,t){return a(this,null,function*(){let i=this.hmsSDKTracks[e];i&&i.type==="video"?(yield i.addSink(t),this.updateVideoLayer(e,"attachVideo")):this.logPossibleInconsistency("no video track found to add sink")})}syncRoomState(e){u.time(`store-sync-${e}`);let t={},i=[],o={},r={},n={},S=this.sdk.getPeers();for(let H of S){let A=h.convertPeer(H);t[A.id]=A,i.push(A.id),this.hmsSDKPeers[A.id]=H;let B=[H.audioTrack,H.videoTrack,...H.auxiliaryTracks];for(let J of B){if(!J)continue;let ue=h.convertTrack(J);o[ue.id]=ue,r[J.trackId]=J}A.isLocal&&Object.assign(n,this.getMediaSettings(H))}let m=this.sdk.getRecordingState(),R=this.sdk.getRTMPState(),Se=this.sdk.getHLSState();this.setState(H=>{H.room.peers=i;let A=H.peers,B=H.tracks;he(A,t),ge(B,o),Object.assign(H.settings,n),this.hmsSDKTracks=r,Object.assign(H.roles,h.convertRoles(this.sdk.getRoles())),Object.assign(H.playlist,h.convertPlaylist(this.sdk.getPlaylistManager())),Object.assign(H.room,h.convertRecordingRTMPState(m,R,Se))},e),u.timeEnd(`store-sync-${e}`)}onPreview(e){this.setState(t=>{Object.assign(t.room,h.convertRoom(e)),t.room.roomState=f.Preview},"previewStart"),this.syncRoomState("previewSync")}onJoin(e){let t=this.sdk.getPlaylistManager();this.audioPlaylist=new Z(t,d.audio,this.syncPlaylistState.bind(this),this.store),this.videoPlaylist=new Z(t,d.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=f.Connected},"joined"),t.onProgress(this.setProgress),t.onNewTrackStart(i=>{this.syncPlaylistState(`${i.type}PlaylistUpdate`)}),t.onPlaylistEnded(i=>{this.syncPlaylistState(`${i}PlaylistEnded`)}),t.onCurrentTrackEnded(i=>{this.hmsNotifications.sendPlaylistTrackEnded(h.convertPlaylistItem(t,i)),this.syncPlaylistState(`${i.type}PlaylistItemEnded`)})}onRoomUpdate(e,t){this.setState(i=>{Object.assign(i.room,h.convertRoom(t))},"RoomUpdate")}onPeerUpdate(e,t){if(![P.BECAME_DOMINANT_SPEAKER,P.RESIGNED_DOMINANT_SPEAKER].includes(e)){if(Array.isArray(t)){this.syncRoomState("peersJoined");let i=[];for(let o of t){let r=this.store.getState(L(o.peerId));r&&i.push(r)}this.hmsNotifications.sendPeerList(i);return}this.sendPeerUpdateNotification(e,t)}}onTrackUpdate(e,t,i){if(e===I.TRACK_REMOVED)this.hmsNotifications.sendTrackUpdate(e,t.trackId),this.handleTrackRemove(t,i);else{let o=e===I.TRACK_ADDED?"trackAdded":"trackUpdate";this.syncRoomState(o),this.hmsNotifications.sendTrackUpdate(e,t.trackId)}}onMessageReceived(e){let t=h.convertMessage(e);t.read=!1,this.onHMSMessage(t),this.hmsNotifications.sendMessageReceived(t)}onHMSMessage(e){this.setState(t=>{e.id=String(this.store.getState(Le)+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")}onChangeTrackStateRequest(e){let t=this.store.getState(L(e.requestedBy.peerId)),i=this.getStoreLocalTrackIDfromSDKTrack(e.track),o=this.store.getState(z(i));if(!t)return this.logPossibleInconsistency(`Not found peer who requested track state change, ${e.requestedBy}`);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,track:o,enabled:e.enabled})}onChangeMultiTrackStateRequest(e){let t=this.store.getState(L(e.requestedBy.peerId));if(!t)return this.logPossibleInconsistency(`Not found peer who requested track state change, ${e.requestedBy}`);e.enabled||this.syncRoomState("changeMultiTrackStateRequest");let i=[],o=this.store.getState(g);for(let r of e.tracks){let n=this.getStoreLocalTrackIDfromSDKTrack(r);n&&o[n]&&i.push(o[n])}this.hmsNotifications.sendChangeMultiTrackStateRequest({requestedBy:t,tracks:i,enabled:e.enabled,type:e.type,source:e.source})}onReconnected(){this.syncRoomState("reconnectedSync"),this.hmsNotifications.sendReconnected(),this.setState(e=>{e.room.roomState=f.Connected},"reconnected")}onReconnecting(e){let t=h.convertException(e);u.e("Reconnection: received error from sdk",t),this.hmsNotifications.sendReconnecting(t),this.setState(i=>{i.room.roomState=f.Reconnecting,i.errors.push(t)},"reconnecting")}onError(e){let t=h.convertException(e);t.isTerminal?(this.leave().then(()=>u.e("error from SDK, left room.")),this.setState(i=>{i.room.roomState=f.Failed,i.errors.push(t)},"errorTerminal")):this.store.getState().errors.length<50&&this.setState(o=>{o.errors.push(t)},"error"),this.hmsNotifications.sendError(t),u.e("received error from sdk",t)}updateVideoLayer(e,t){let i=this.hmsSDKTracks[e];i&&i instanceof it&&this.setState(o=>{o.tracks[e].layer=i.getSimulcastLayer()},t)}handleTrackRemove(e,t){this.setState(i=>{let o=i.peers[t.peerId],r=i.tracks,n=e.trackId;if(this.isSameStoreSDKTrack(n,o==null?void 0:o.audioTrack))o==null||delete o.audioTrack;else if(this.isSameStoreSDKTrack(n,o==null?void 0:o.videoTrack))o==null||delete o.videoTrack;else{let S=o==null?void 0:o.auxiliaryTracks.indexOf(n);S>-1&&this.isSameStoreSDKTrack(n,o==null?void 0:o.auxiliaryTracks[S])&&(o==null||o.auxiliaryTracks.splice(S,1))}delete r[n],delete this.hmsSDKTracks[n]},"trackRemoved")}setEnabledSDKTrack(e,t){return a(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 a(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 a(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(Ee),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 Ct?(i.setVolume(e),this.setState(o=>{let r=o.tracks[t];r&&(r.volume=e)},"trackVolume")):u.w(`track ${t} is not an audio track`):this.logPossibleInconsistency(`track ${t} not present, unable to set volume`)}localAndVideoUnmuting(e){if(this.store.getState(b).videoTrack!==e)return!1;let i=this.store.getState(Ce),o=this.store.getState(te);return i&&!o}logPossibleInconsistency(e){u.w("possible inconsistency detected - ",e)}addRemoveVideoPlugin(e,t,i){return a(this,null,function*(){if(!e){u.w("Invalid plugin received in store");return}let o=this.store.getState(U);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 a(this,null,function*(){if(!e){u.w("Invalid plugin received in store");return}let i=this.store.getState(N);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)}};import{EventEmitter2 as Lt}from"eventemitter2";var le="hmsNotification",de=class{constructor(e){this.id=0;this.onNotification=e=>(this.eventEmitter.addListener(le,e),()=>{this.eventEmitter.removeListener(le,e)});this.store=e,this.eventEmitter=new Lt}sendPlaylistTrackEnded(e){let t=this.createNotification(p.PLAYLIST_TRACK_ENDED,e,k.INFO);this.emitEvent(t)}sendDeviceChange(e){var i;let t=this.createNotification(p.DEVICE_CHANGE_UPDATE,e,e.error?k.ERROR:k.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?p.ROOM_ENDED:p.REMOVED_FROM_ROOM,e,k.INFO,`${e.roomEnded?"Room ended":"Removed from room"} ${t?`by ${t}`:""}`);this.emitEvent(i)}sendPeerList(e){let t=this.createNotification(p.PEER_LIST,e,k.INFO);this.emitEvent(t)}sendPeerUpdate(e,t){let i=this.store.getState(L(t==null?void 0:t.id))||t,o=et[e];if(o){let r=this.createNotification(o,i,k.INFO);this.emitEvent(r)}}sendTrackUpdate(e,t){let i=this.store.getState(z(t)),o=tt[e];if(o){let r=this.createNotification(o,i,k.INFO);this.emitEvent(r)}}sendMessageReceived(e){let t=this.createNotification(p.NEW_MESSAGE,e,k.INFO);this.emitEvent(t)}sendError(e){let t=this.createNotification(p.ERROR,e,k.ERROR);this.emitEvent(t)}sendReconnecting(e){let t=this.createNotification(p.RECONNECTING,e,k.ERROR);this.emitEvent(t)}sendReconnected(){let e=this.createNotification(p.RECONNECTED,null,k.INFO);this.emitEvent(e)}sendChangeTrackStateRequest(e){let t=this.createNotification(p.CHANGE_TRACK_STATE_REQUEST,e,k.INFO);this.emitEvent(t)}sendChangeMultiTrackStateRequest(e){let t=this.createNotification(p.CHANGE_MULTI_TRACK_STATE_REQUEST,e,k.INFO);this.emitEvent(t)}emitEvent(e){this.eventEmitter.emit(le,e)}createNotification(e,t,i,o=""){return this.id++,{id:this.id,type:e,message:o,data:t,severity:i}}};var O=class{constructor(e,t,i){e?this.store=e:this.store=O.createNewHMSStore(),i?this.notifications=i:this.notifications=new de(this.store),t?this.actions=t:this.actions=new ce(this.store,new Nt,this.notifications),this.initialTriggerOnSubscribe=!1}triggerOnSubscribe(){this.initialTriggerOnSubscribe||(O.makeStoreTriggerOnSubscribe(this.store),this.initialTriggerOnSubscribe=!0)}getStore(){return this.store}getHMSActions(){return this.actions}getNotifications(){return{onNotification:this.notifications.onNotification}}static createNewHMSStore(){let e=Ot(()=>W()),t=e.setState;e.setState=r=>{let n=typeof r=="function"?xt(r):r;t(n)};let i=e.getState;e.getState=r=>{if(r){let n=r.name||"byIDSelector";window.selectorsCount||(window.selectorsCount={}),window.selectorsCount[n]=(window.selectorsCount[n]||0)+1;let S=performance.now(),m=r(i()),R=performance.now()-S;return R>1&&(window.expensiveSelectors=window.expensiveSelectors||new Map,window.expensiveSelectors.set(n,R)),m}return i()},O.useShallowCheckInSubscribe(e);let o=O.setUpDevtools(e,"HMSStore");return K(_({},e),{namedSetState:o})}static makeStoreTriggerOnSubscribe(e){let t=e.subscribe;e.subscribe=(i,o,r)=>(i(e.getState(o),void 0),t(i,o,r))}static useShallowCheckInSubscribe(e){let t=e.subscribe;e.subscribe=(i,o,r)=>(o||(o=n=>n),r=r||wt,t(i,o,r))}static setUpDevtools(e,t){let i;try{i=window.__REDUX_DEVTOOLS_EXTENSION__||window.top.__REDUX_DEVTOOLS_EXTENSION__}catch(n){}if(!i)return n=>{e.setState(n)};let o=i.connect(O.devtoolsOptions(t));o.prefix=t?`${t} > `:"";let r=e.setState;return e.setState=n=>{r(n),o.send(`${o.prefix}setState`,e.getState())},o.subscribe(O.devtoolsSubscribe(o,e,r)),o.send("setUpStore",e.getState()),(n,S)=>{r(n);let m=S||`${o.prefix}action`;o.send(m,e.getState())}}static devtoolsOptions(e){return{name:e,actionsBlacklist:["audioLevel","playlistProgress"]}}static devtoolsSubscribe(e,t,i){return o=>{var r,n,S,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"&&((n=o.payload)==null?void 0:n.type)==="IMPORT_STATE"){let R=(S=o.payload.nextLiftedState)==null?void 0:S.actionsById;(((m=o.payload.nextLiftedState)==null?void 0:m.computedStates)||[]).forEach(({state:H},A)=>{let B=R[A]||`${e.prefix}setState`;A===0?e.init(H):(i(H),e.send(B,t.getState()))})}}}};export{lt as HMSAudioPluginType,T as HMSLogLevel,me as HMSMessageType,k as HMSNotificationSeverity,p as HMSNotificationTypes,d as HMSPlaylistType,O as HMSReactiveStore,f as HMSRoomState,dt as HMSVideoPluginType,W as createDefaultStoreState,$e as selectAudioPlaylist,xi as selectAudioPlaylistTrackByPeerID,ft as selectAudioTrackByPeerID,Qe as selectAudioTrackVolume,Ki as selectAudioVolumeByPeerID,Ai as selectAuxiliaryAudioByPeerID,Ii as selectAuxiliaryTracksByPeerID,ni as selectAvailableRoleNames,Pt as selectBroadcastMessages,qi as selectBroadcastMessagesUnreadCount,Di as selectCameraStreamByPeerID,ii as selectDegradedTracks,js as selectDevices,Qs as selectDominantSpeaker,di as selectHLSState,Q as selectHMSMessages,Le as selectHMSMessagesCount,eo as selectIsAllowedToPublish,ai as selectIsAllowedToSubscribe,Ye as selectIsAudioLocallyMuted,Js as selectIsConnectedToRoom,ri as selectIsInPreview,Xs as selectIsLocalAudioEnabled,no as selectIsLocalAudioPluginPresent,se as selectIsLocalScreenShared,Ce as selectIsLocalVideoDisplayEnabled,te as selectIsLocalVideoEnabled,ro as selectIsLocalVideoPluginPresent,Ui as selectIsLocallyMutedByPeerID,wi as selectIsPeerAudioEnabled,Ni as selectIsPeerVideoEnabled,_i as selectIsScreenShareLocallyMutedByPeerID,zs as selectIsSomeoneScreenSharing,N as selectLocalAudioTrackID,Ee as selectLocalMediaSettings,b as selectLocalPeer,be as selectLocalPeerID,X as selectLocalPeerRole,Ae as selectLocalTrackIDs,U as selectLocalVideoTrackID,Ie as selectMessageIDsInOrder,$i as selectMessagesByPeerID,Fi as selectMessagesByRole,De as selectMessagesMap,ji as selectMessagesUnreadCountByPeerID,Gi as selectMessagesUnreadCountByRole,bi as selectPeerAudioByID,L as selectPeerByID,Ws as selectPeerCount,Wi as selectPeerMetadata,vi as selectPeerNameByID,Tt as selectPeerScreenSharing,Zs as selectPeerSharingAudio,si as selectPeerSharingAudioPlaylist,ti as selectPeerSharingVideoPlaylist,ee as selectPeers,Ji as selectPeersByRole,D as selectPeersMap,ei as selectPeersScreenSharing,zi as selectPeersWithAudioStatus,Oe as selectPermissions,li as selectRTMPState,ci as selectRecordingState,Ys as selectRemotePeers,oo as selectRoleByRoleName,Zi as selectRoleChangeRequest,x as selectRolesMap,E as selectRoom,ui as selectRoomStartTime,xe as selectRoomStarted,ie as selectRoomState,We as selectScreenShareAudioByPeerID,Oi as selectScreenShareByPeerID,Je as selectScreenSharesByPeerId,Vi as selectScreenshareAudioVolumeByPeerID,Si as selectSessionId,Bi as selectSimulcastLayerByTrack,mt as selectSpeakers,Ei as selectTrackAudioByID,z as selectTrackByID,g as selectTracksMap,oi as selectUnreadHMSMessagesCount,Fe as selectVideoPlaylist,Li as selectVideoPlaylistAudioTrackByPeerID,Ci as selectVideoPlaylistVideoTrackByPeerID,Ht as selectVideoTrackByPeerID};
1
+ var le=Object.defineProperty,ft=Object.defineProperties;var kt=Object.getOwnPropertyDescriptors;var Ae=Object.getOwnPropertySymbols;var Pt=Object.prototype.hasOwnProperty,It=Object.prototype.propertyIsEnumerable;var xe=(s,e,t)=>e in s?le(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,V=(s,e)=>{for(var t in e||(e={}))Pt.call(e,t)&&xe(s,t,e[t]);if(Ae)for(var t of Ae(e))It.call(e,t)&&xe(s,t,e[t]);return s},j=(s,e)=>ft(s,kt(e)),Rt=s=>le(s,"__esModule",{value:!0});var vt=(s,e)=>{Rt(s);for(var t in e)le(s,t,{get:e[t],enumerable:!0})};var a=(s,e,t)=>new Promise((r,i)=>{var o=S=>{try{l(t.next(S))}catch(P){i(P)}},n=S=>{try{l(t.throw(S))}catch(P){i(P)}},l=S=>S.done?r(S.value):Promise.resolve(S.value).then(o,n);l((t=t.apply(s,e)).next())});import Cs from"immer";import As from"zustand/vanilla";import xs from"zustand/shallow";import{HMSSdk as Ls}from"@100mslive/hms-video";var H;(function(n){n.Disconnected="Disconnected",n.Preview="Preview",n.Connecting="Connecting",n.Connected="Connected",n.Reconnecting="Reconnecting",n.Failed="Failed"})(H||(H={}));var te=()=>({room:{id:"",isConnected:!1,name:"",peers:[],shareableLink:"",localPeer:"",hasWaitingRoom:!1,roomState:H.Disconnected,recording:{browser:{running:!1},server:{running:!1}},rtmp:{running:!1},hls:{running:!1,variants:[]},sessionId:""},peers:{},tracks:{},playlist:{audio:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1},video:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1}},messages:{byID:{},allIDs:[]},speakers:{},settings:{audioInputDeviceId:"",audioOutputDeviceId:"",videoInputDeviceId:""},devices:{audioInput:[],audioOutput:[],videoInput:[]},roles:{},roleChangeRequests:[],errors:[]}),se=()=>({jitter:0,packetsLost:0,peerStats:{},trackStats:{},localPeer:{id:""}});var Le;(function(e){e.CHAT="chat"})(Le||(Le={}));var I;(function(r){r.INFO="info",r.ERROR="error",r.CRITICAL="critical"})(I||(I={}));var m;(function(c){c.PEER_JOINED="PEER_JOINED",c.PEER_LEFT="PEER_LEFT",c.PEER_LIST="PEER_LIST",c.NEW_MESSAGE="NEW_MESSAGE",c.ERROR="ERROR",c.RECONNECTING="RECONNECTING",c.RECONNECTED="RECONNECTED",c.TRACK_ADDED="TRACK_ADDED",c.TRACK_REMOVED="TRACK_REMOVED",c.TRACK_MUTED="TRACK_MUTED",c.TRACK_UNMUTED="TRACK_UNMUTED",c.TRACK_DEGRADED="TRACK_DEGRADED",c.TRACK_RESTORED="TRACK_RESTORED",c.ROLE_CHANGE_REQUEST="ROLE_CHANGE_REQUEST",c.ROLE_UPDATED="ROLE_UPDATED",c.CHANGE_TRACK_STATE_REQUEST="CHANGE_TRACK_STATE_REQUEST",c.CHANGE_MULTI_TRACK_STATE_REQUEST="CHANGE_MULTI_TRACK_STATE_REQUEST",c.ROOM_ENDED="ROOM_ENDED",c.REMOVED_FROM_ROOM="REMOVED_FROM_ROOM",c.DEVICE_CHANGE_UPDATE="DEVICE_CHANGE_UPDATE",c.PLAYLIST_TRACK_ENDED="PLAYLIST_TRACK_ENDED",c.NAME_UPDATED="NAME_UPDATED",c.METADATA_UPDATED="METADATA_UPDATED"})(m||(m={}));var p;(function(t){t.audio="audio",t.video="video"})(p||(p={}));import{HMSException as js,HMSSimulcastLayer as Ws,HMSPeerUpdate as R,HMSRoomUpdate as $s,HMSTrackUpdate as b,HMSLogLevel as f,HMSAudioPluginType as Dt,HMSVideoPluginType as bt}from"@100mslive/hms-video";import{HMSLocalAudioTrack as Ne,HMSLocalVideoTrack as Ue,HMSRemoteAudioTrack as Ct,HMSRemoteVideoTrack as At}from"@100mslive/hms-video";var Oe=(s,e)=>{let t=Me(Object.keys(s),Object.keys(e));for(let r of t){let i=s[r],o=e[r];de(i,o)?(N(i.auxiliaryTracks,o.auxiliaryTracks)&&(o.auxiliaryTracks=i.auxiliaryTracks),Object.assign(i,o)):ue(i,o)?delete s[r]:pe(i,o)&&(s[r]=o)}},we=(s,e)=>{let t=Me(Object.keys(s),Object.keys(e));for(let r of t){let i=s[r],o=e[r];de(i,o)?(Et(i,o),Object.assign(i,o)):ue(i,o)?delete s[r]:pe(i,o)&&(s[r]=o)}},Se=(s,e)=>{let t=Me(Object.keys(s),Object.keys(e));for(let r of t){let i=s[r],o=e[r];de(i,o)?Object.assign(i,o):ue(i,o)?delete s[r]:pe(i,o)&&(s[r]=o)}},Et=(s,e)=>{s.plugins&&N(s.plugins,e.plugins)&&(e.plugins=s.plugins),s.layerDefinitions&&N(s.layerDefinitions,e.layerDefinitions)&&(e.layerDefinitions=s.layerDefinitions)},de=(s,e)=>s&&e,ue=(s,e)=>s&&!e,pe=(s,e)=>!s&&e,N=(s,e)=>{if(s===e||s.length===0&&(e==null?void 0:e.length)===0)return!0;if(!s||!e||s.length!==e.length)return!1;for(let t=0;t<s.length;t++)if(s[t]!==e[t])return!1;return!0},Me=(s,e)=>{let t=new Set;for(let r of s)t.add(r);for(let r of e)t.add(r);return Array.from(t)};var h=class{static convertPeer(e){var t,r,i;return{id:e.peerId,name:e.name,roleName:(t=e.role)==null?void 0:t.name,isLocal:e.isLocal,videoTrack:(r=e.videoTrack)==null?void 0:r.trackId,audioTrack:(i=e.audioTrack)==null?void 0:i.trackId,auxiliaryTracks:e.auxiliaryTracks.map(o=>o.trackId),customerUserId:e.customerUserId,customerDescription:e.metadata,metadata:e.metadata}}static convertTrack(e,t){let r={id:e.trackId,source:e.source,type:e.type,enabled:e.enabled,displayEnabled:e.enabled,peerId:e.peerId||t};return this.enrichTrack(r,e),r}static enrichTrack(e,t){let r=t.getMediaTrackSettings();e.source==="screen"&&e.type==="video"&&(e.displaySurface=r.displaySurface),e.height=r.height,e.width=r.width,t instanceof Ct&&(e.volume=t.getVolume()||0),h.updateDeviceID(e,t),h.enrichVideoTrack(e,t),h.enrichPluginsDetails(e,t)}static updateDeviceID(e,t){var r;t instanceof Ue||t instanceof Ne?e.deviceID=t.settings.deviceId:e.deviceID=(r=t.getMediaTrackSettings())==null?void 0:r.deviceId}static enrichVideoTrack(e,t){t instanceof At&&(e.layer=t.getSimulcastLayer(),e.degraded=t.degraded,N(t.getSimulcastDefinitions(),e.layerDefinitions)||(e.layerDefinitions=t.getSimulcastDefinitions()))}static enrichPluginsDetails(e,t){(t instanceof Ue||t instanceof Ne)&&(N(t.getPlugins(),e.plugins)||(e.plugins=t.getPlugins()))}static convertRoom(e){var t,r,i,o,n,l,S;return{id:e.id,name:e.name,localPeer:(r=(t=e.localPeer)==null?void 0:t.peerId)!=null?r:"",hasWaitingRoom:e.hasWaitingRoom,shareableLink:e.shareableLink,recording:{browser:{running:!!((i=e.recording)==null?void 0:i.browser.running)},server:{running:!!((o=e.recording)==null?void 0:o.server.running)}},rtmp:{running:!!((n=e.rtmp)==null?void 0:n.running)},hls:{running:!!((l=e.hls)==null?void 0:l.running),variants:((S=e.hls)==null?void 0:S.variants)||[]},sessionId:e.sessionId,startedAt:e.startedAt&&new Date(e.startedAt)}}static convertMessage(e){var t,r,i;return{sender:e.sender.peerId,senderName:e.sender.name,senderRole:(t=e.sender.role)==null?void 0:t.name,senderUserId:e.sender.customerUserId,recipientPeer:(r=e.recipientPeer)==null?void 0:r.peerId,recipientRoles:(i=e.recipientRoles)==null?void 0:i.map(o=>o.name),time:e.time,type:e.type,message:e.message}}static convertRoles(e){let t={};return e&&e.forEach(r=>{t[r.name]=r}),t}static convertRoleChangeRequest(e){return{requestedBy:e.requestedBy.peerId,roleName:e.role.name,token:e.token}}static convertException(e){return{code:e.code,action:e.action,name:e.name,message:e.message,description:e.description,isTerminal:e.isTerminal,nativeError:e.nativeError,timestamp:new Date}}static convertDeviceChangeUpdate(e){let t={devices:e.devices,selection:e.selection,type:e.type};return e.error&&(t.error=this.convertException(e.error)),t}static convertPlaylist(e){let t=this.getConvertedPlaylistType(e,p.audio),r=this.getConvertedPlaylistType(e,p.video);return{audio:t,video:r}}static convertPlaylistItem(e,t){let r=t.type,i=e.getCurrentSelection(r),o=e.isPlaying(r),n=t.url===(i==null?void 0:i.url);return j(V({},t),{type:t.type,selected:n,playing:n&&o})}static convertConnectionStats(e){let t=V({},e);return delete t.rawStatsArray,delete t.rawStats,t}static getConvertedPlaylistType(e,t){let r={},i=e.getCurrentSelection(t),o=e.getCurrentProgress(t),n=e.getVolume(t),l=e.getList(t),S=e.getCurrentIndex(t);return e.getList(t).forEach(P=>{r[P.id]=h.convertPlaylistItem(e,P)}),{list:r,selection:{id:i==null?void 0:i.id,hasPrevious:S>0,hasNext:S<l.length-1},progress:o,volume:n,currentTime:e.getCurrentTime(t),playbackRate:e.getPlaybackRate(t)}}static convertRecordingStreamingState(e,t,r){var i,o;return{recording:{browser:{running:!!((i=e==null?void 0:e.browser)==null?void 0:i.running)},server:{running:!!((o=e==null?void 0:e.server)==null?void 0:o.running)}},rtmp:{running:!!(t==null?void 0:t.running)},hls:{variants:(r==null?void 0:r.variants)||[],running:!!(r==null?void 0:r.running)}}}};import{createSelector as d}from"reselect";function B(s,e,t=xt){let r,i;if(e)for(let o of e.auxiliaryTracks){let n=s[o];t(n)&&(i=G(n)?n:i,r=J(n)?n:r)}return{video:r,audio:i}}function G(s){return s&&s.type==="audio"}function J(s){return s&&s.type==="video"}function xt(s){return s&&s.source==="screen"}function re(s){return s&&s.source==="audioplaylist"}function Y(s){return s&&s.source==="videoplaylist"}function _e(s){return Boolean(s==null?void 0:s.degraded)}function W(s,e){return e&&s.tracks[e]?s.tracks[e].enabled:!1}function Ke(s,e){return e&&s.tracks[e]?s.tracks[e].displayEnabled:!1}var E=s=>s.room,D=s=>s.peers,Ve=s=>s.messages.byID,Be=s=>s.messages.allIDs,g=s=>s.tracks,qe=s=>s.settings,Gr=s=>s.devices,Lt=s=>s.speakers,Jr=d([E],s=>s&&s.isConnected),Yr=d(E,s=>s.peers.length),me=d([E,D],(s,e)=>s.peers.map(t=>e[t])),Ot=d(g,s=>Object.values(s)),C=d(E,D,(s,e)=>e[s.localPeer]),K=d(E,s=>s.localPeer),A=d(C,s=>s==null?void 0:s.audioTrack),x=d(C,s=>s==null?void 0:s.videoTrack),wt=d(C,s=>s==null?void 0:s.auxiliaryTracks),je=d([A,x,wt],(s,e,t)=>{let r=[...t];return s&&r.unshift(s),e&&r.unshift(e),r}),Qr=d(me,s=>s.filter(e=>!e.isLocal)),zr=d(D,Lt,(s,e)=>{let t=Object.entries(e).sort((r,i)=>{var l,S;let o=((l=r[1])==null?void 0:l.audioLevel)||0;return(((S=i[1])==null?void 0:S.audioLevel)||0)>o?1:-1});if(t.length>0&&t[0][1].audioLevel&&t[0][1].audioLevel>0){let r=t[0][1].peerID;if(r in s)return s[r]}return null}),Xr=s=>{let e=C(s);return W(s,e==null?void 0:e.audioTrack)},he=s=>{let e=C(s);return W(s,e==null?void 0:e.videoTrack)},We=s=>{let e=C(s);return Ke(s,e==null?void 0:e.videoTrack)},ge=d(C,g,(s,e)=>{let{video:t,audio:r}=B(e,s);return!!(t||r)}),Nt=d(D,g,(s,e)=>{let t;for(let r in s){let i=s[r],{video:o,audio:n}=B(e,i);if(o)return i;n&&!t&&(t=i)}return t}),Zr=d(Nt,s=>!!s),ei=d(D,g,(s,e)=>{for(let t in s){let r=s[t],{audio:i,video:o}=B(e,r);if(!o&&!!i)return r}}),ti=d(D,g,(s,e)=>{let t=[],r=[];for(let i in s){let o=s[i],{video:n,audio:l}=B(e,o);n?t.push(o):l&&r.push(o)}return t.concat(r)}),si=d(D,g,(s,e)=>{for(let t in e){let r=e[t];if(Y(r)&&J(r)&&r.peerId)return s[r.peerId]}}),ri=d(D,g,(s,e)=>{for(let t in e){let r=e[t];if(re(r)&&r.peerId)return s[r.peerId]}}),ii=d(Ot,s=>s.filter(_e)),$e=d(Be,s=>s.length),oi=d(Ve,s=>Object.values(s).filter(e=>!e.read).length),ie=d(Be,Ve,(s,e)=>{let t=[];return s.forEach(r=>{t.push(e[r])}),t}),L=d([E],s=>s&&s.roomState),ni=d(L,s=>s===H.Preview),Fe=d(E,s=>s.roomState!==H.Disconnected),_=s=>s.roles,ai=d([_],s=>Object.keys(s)),oe=d([C,_],(s,e)=>(s==null?void 0:s.roleName)?e[s.roleName]:null),ci=d([oe],s=>{var e;return((e=s==null?void 0:s.subscribeParams)==null?void 0:e.subscribeToRoles)?s.subscribeParams.subscribeToRoles.length>0:!1}),Ge=d(oe,s=>s==null?void 0:s.permissions),li=d(E,s=>s.recording),Si=d(E,s=>s.rtmp),di=d(E,s=>s.hls),ui=d(E,s=>s.sessionId),pi=d(E,s=>s.startedAt);import{createSelector as Je}from"reselect";var Ye=(s=p.audio)=>e=>e.playlist[s].list,Te=(s=p.audio)=>e=>e.playlist[s].selection,Qe=(s=p.audio)=>e=>e.playlist[s].progress,ze=(s=p.audio)=>e=>e.playlist[s].currentTime,Xe=(s=p.audio)=>e=>e.playlist[s].playbackRate,Ze=(s=p.audio)=>e=>e.playlist[s].volume,et=(s=p.audio)=>Je(Ye(s),e=>Object.values(e)),tt=(s=p.audio)=>Je(Ye(s),Te(s),(e,t)=>{if(!!t.id)return e[t.id]}),st={selection:Te(p.audio),progress:Qe(p.audio),currentTime:ze(p.audio),playbackRate:Xe(p.audio),volume:Ze(p.audio),list:et(p.audio),selectedItem:tt(p.audio)},rt={selection:Te(p.video),progress:Qe(p.video),currentTime:ze(p.video),playbackRate:Xe(p.video),volume:Ze(p.video),list:et(p.video),selectedItem:tt(p.video)};import{createSelector as k}from"reselect";function u(s){return e=>t=>s(t,e)}var Q="HMS-Store:",M=class{static v(e,...t){this.log(f.VERBOSE,e,...t)}static d(...e){this.log(f.DEBUG,...e)}static i(...e){this.log(f.INFO,...e)}static w(...e){this.log(f.WARN,...e)}static e(...e){this.log(f.ERROR,...e)}static time(e){this.log(f.TIME,"[HMSPerformanceTiming]",e)}static timeEnd(e){this.log(f.TIMEEND,"[HMSPerformanceTiming]",e,e)}static cleanUp(){performance.clearMarks(),performance.clearMeasures()}static log(e,...t){if(!(this.level.valueOf()>e.valueOf()))switch(e){case f.VERBOSE:{console.log(Q,...t);break}case f.DEBUG:{console.debug(Q,...t);break}case f.INFO:{console.info(Q,...t);break}case f.WARN:{console.warn(Q,...t);break}case f.ERROR:{console.error(Q,...t);break}case f.TIME:{performance.mark(t[1]);break}case f.TIMEEND:{let r=t[0],i=t[1];try{let o=performance.measure(i,i);this.log(f.DEBUG,r,i,o==null?void 0:o.duration),performance.clearMarks(i),performance.clearMeasures(i)}catch(o){this.log(f.DEBUG,r,i,o)}break}}}};M.level=f.VERBOSE;var He=(s,e)=>e,Ut=(s,e)=>e,it=(s,e)=>e,v=k([D,He],(s,e)=>e?s[e]:null),ye=k([g,Ut],(s,e)=>e?s[e]:null),U=u(v),ot=u(k(v,s=>s==null?void 0:s.name)),ne=u(ye),_t=u((s,e)=>{let t=v(s,e);if(t&&t.videoTrack&&t.videoTrack!=="")return s.tracks[t.videoTrack]}),Kt=u((s,e)=>{let t=v(s,e);if(t&&t.audioTrack&&t.audioTrack!=="")return s.tracks[t.audioTrack]}),bi=_t,Ei=u((s,e)=>{let t=v(s,e);return(t==null?void 0:t.auxiliaryTracks.map(r=>s.tracks[r]))||[]}),nt=(s,e)=>e?s.speakers[e]:null,Ci=u(k(nt,s=>(s==null?void 0:s.audioLevel)||0)),Vt=(s,e)=>{let t=Kt(e)(s);return nt(s,t==null?void 0:t.id)},Ai=u(k(Vt,s=>(s==null?void 0:s.audioLevel)||0)),xi=u((s,e)=>{let t=v(s,e);if(t){let r=t==null?void 0:t.auxiliaryTracks.find(i=>G(s.tracks[i]));return r?s.tracks[r]:void 0}}),Li=u(k(g,v,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let i=s[r];return Y(i)&&J(i)});return t?s[t]:void 0})),Oi=u(k(g,v,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let i=s[r];return Y(i)&&G(i)});return t?s[t]:void 0})),wi=u(k(g,v,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(r=>{let i=s[r];return re(i)&&G(i)});return t?s[t]:void 0})),at=u(k(g,v,(s,e)=>B(s,e))),Ni=s=>k(at(s),e=>e.video),ct=s=>k(at(s),e=>e.audio),Ui=u((s,e)=>{let t=v(s,e);return W(s,t==null?void 0:t.audioTrack)}),_i=u((s,e)=>{let t=v(s,e);return W(s,t==null?void 0:t.videoTrack)}),lt=u((s,e)=>{if(e&&s.tracks[e])return s.tracks[e].volume===0}),Ki=u((s,e)=>{let t=v(s,e);return lt(t==null?void 0:t.audioTrack)(s)}),Vi=u((s,e)=>{let t=ct(e)(s);return lt(t==null?void 0:t.id)(s)}),St=u((s,e)=>{let t=ye(s,e);if(t){if(t.type!=="audio"){M.w("Please pass audio track here");return}return t.volume}}),Bi=u((s,e)=>{let t=v(s,e);return St(t==null?void 0:t.audioTrack)(s)}),qi=u((s,e)=>{let t=ct(e)(s);return St(t==null?void 0:t.id)(s)}),ji=u((s,e)=>{let t=ye(s,e);if(t){if(t.type!=="video"){M.w("Please pass video track here");return}return t.layer}}),dt=k([ie,K,He],(s,e,t)=>{if(!!t)return s.filter(r=>{var i;return!r.recipientPeer&&!((i=r.recipientRoles)==null?void 0:i.length)||![e,t].includes(r.sender)?!1:[e,t].includes(r.recipientPeer)})}),ut=k([ie,it],(s,e)=>{if(!!e)return s.filter(t=>{var r,i;return((r=t.recipientRoles)==null?void 0:r.length)?(i=t.recipientRoles)==null?void 0:i.includes(e):!1})}),Bt=k(ie,s=>s.filter(e=>{var t;return!e.recipientPeer&&!((t=e.recipientRoles)==null?void 0:t.length)})),qt=k([ut,it],s=>s?s.filter(e=>!e.read).length:0),jt=k([dt,He],s=>s?s.filter(e=>!e.read).length:0),Wi=k(Bt,s=>s.filter(e=>!e.read).length),$i=u(dt),Fi=u(ut),Gi=u(qt),Ji=u(jt),Yi=s=>k([me],e=>e.filter(t=>t.roleName===s)),Qi=s=>k(U(s),e=>{try{return(e==null?void 0:e.metadata)&&e.metadata!==""?JSON.parse(e.metadata):{}}catch(t){return console.error("cannot parse peer metadata",t),{}}});import{createSelector as fe}from"reselect";var eo=fe([D,g],(s,e)=>Object.values(s).map(r=>{var i;return{peer:r,isAudioEnabled:r.audioTrack?(i=e[r.audioTrack])==null?void 0:i.enabled:!1}})),Wt=s=>s.roleChangeRequests[0]||null,to=fe([Wt,D,_],(s,e,t)=>s?{requestedBy:e[s.requestedBy],role:t[s.roleName],token:s.token}:null),so=fe([oe],s=>{var i;let e=!1,t=!1,r=!1;return((i=s==null?void 0:s.publishParams)==null?void 0:i.allowed)&&(e=s.publishParams.allowed.includes("video"),t=s.publishParams.allowed.includes("audio"),r=s.publishParams.allowed.includes("screen")),{video:e,audio:t,screen:r}});import{createSelector as z}from"reselect";var no=s=>z([_],e=>e[s]),$t=z([x,g],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),Ft=z([A,g],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),ao=s=>z([$t],e=>e.includes(s)),co=s=>z([Ft],e=>e.includes(s));import{HMSAudioTrack as Yt,HMSRemoteVideoTrack as gt}from"@100mslive/hms-video";import{HMSRemoteAudioTrack as Gt,HMSRemoteVideoTrack as Jt}from"@100mslive/hms-video";function pt(s){return s instanceof Gt||s instanceof Jt}var ae=class{constructor(e,t,r,i){this.playlistManager=e;this.syncPlaylistState=r;this.store=i;this.type=t}play(e){return a(this,null,function*(){if(!e){M.w("Please pass id to play");return}yield this.playlistManager.setEnabled(!0,{id:e,type:this.type})})}pause(){return a(this,null,function*(){let e=this.type===p.audio?st:rt,t=this.store.getState(e.selection);if(!t.id){M.w("No item is currently playing to pause");return}yield this.playlistManager.setEnabled(!1,{id:t.id,type:this.type})})}playNext(){return a(this,null,function*(){yield this.playlistManager.playNext(this.type)})}playPrevious(){return a(this,null,function*(){yield this.playlistManager.playPrevious(this.type)})}seek(e){this.playlistManager.seek(e,this.type),this.syncPlaylistState(`seekOn${this.type}Playlist`)}seekTo(e){this.playlistManager.seekTo(e,this.type),this.syncPlaylistState(`seekToOn${this.type}Playlist`)}setVolume(e){this.playlistManager.setVolume(e,this.type),this.syncPlaylistState(`setVolumeOn${this.type}Playlist`)}setList(e){this.playlistManager.setList(e),this.syncPlaylistState(`setListOn${this.type}Playlist`)}stop(){return a(this,null,function*(){yield this.playlistManager.stop(this.type),this.syncPlaylistState(`stop${this.type}Playlist`)})}setIsAutoplayOn(e){this.playlistManager.setIsAutoplayOn(this.type,e)}setPlaybackRate(e){this.playlistManager.setPlaybackRate(this.type,e),this.syncPlaylistState(`set${this.type}PlaybackRate`)}};var Mt={[R.PEER_JOINED]:m.PEER_JOINED,[R.PEER_LEFT]:m.PEER_LEFT,[R.ROLE_UPDATED]:m.ROLE_UPDATED,[R.AUDIO_TOGGLED]:"PEER_AUDIO_UPDATED",[R.VIDEO_TOGGLED]:"PEER_VIDEO_UPDATED",[R.NAME_UPDATED]:m.NAME_UPDATED,[R.METADATA_UPDATED]:m.METADATA_UPDATED},mt={[b.TRACK_ADDED]:m.TRACK_ADDED,[b.TRACK_REMOVED]:m.TRACK_REMOVED,[b.TRACK_MUTED]:m.TRACK_MUTED,[b.TRACK_UNMUTED]:m.TRACK_UNMUTED,[b.TRACK_DEGRADED]:m.TRACK_DEGRADED,[b.TRACK_RESTORED]:m.TRACK_RESTORED},ht={[R.PEER_JOINED]:"peerJoined",[R.PEER_LEFT]:"peerLeft",[R.NAME_UPDATED]:"peerNameUpdated",[R.METADATA_UPDATED]:"peerMetadataUpdated"};var ke=class{constructor(e,t,r){this.hmsSDKTracks={};this.hmsSDKPeers={};this.isRoomJoinCalled=!1;this.setProgress=({type:e,progress:t})=>{this.setState(r=>{r.playlist[e].progress=t,r.playlist[e].currentTime=this.sdk.getPlaylistManager().getCurrentTime(e)},"playlistProgress")};this.syncPlaylistState=e=>{this.setState(t=>{Object.assign(t.playlist,h.convertPlaylist(this.sdk.getPlaylistManager()))},e)};this.sendPeerUpdateNotification=(e,t)=>{let r=this.store.getState(U(t.peerId)),i="peerUpdate";i=ht[e],this.syncRoomState(i),r||(r=this.store.getState(U(t.peerId))),this.hmsNotifications.sendPeerUpdate(e,r)};this.setState=(e,t)=>this.store.namedSetState(e,t);this.store=e,this.sdk=t,this.hmsNotifications=r}unblockAudio(){return a(this,null,function*(){yield this.sdk.getAudioOutput().unblockAutoplay()})}setVolume(e,t){t?this.setTrackVolume(e,t):(this.sdk.getAudioOutput().setVolume(e),this.syncRoomState("setOutputVolume"))}setAudioOutputDevice(e){this.sdk.getAudioOutput().setDevice(e)&&this.setState(r=>{r.settings.audioOutputDeviceId=e},"setAudioOutputDevice")}setPreferredLayer(e,t){let r=this.hmsSDKTracks[e];r?r instanceof gt?(r.preferLayer(t),this.updateVideoLayer(e,"setPreferredLayer")):M.w(`track ${e} is not an video track`):this.logPossibleInconsistency(`track ${e} not present, unable to set preffer layer`)}preview(e){return a(this,null,function*(){if(this.isRoomJoinCalled){this.logPossibleInconsistency("attempting to call preview after join was called");return}let t=this.store.getState(L);if(t===H.Preview||t===H.Connecting){this.logPossibleInconsistency("attempting to call preview while room is in preview/connecting");return}try{this.setState(r=>{r.room.roomState=H.Connecting},"connecting"),yield this.sdkPreviewWithListeners(e)}catch(r){throw M.e("Cannot show preview. Failed to connect to room - ",r),r}})}join(e){if(this.isRoomJoinCalled){this.logPossibleInconsistency("room join is called again");return}try{this.sdkJoinWithListeners(e),this.isRoomJoinCalled=!0,this.setState(t=>{t.room.roomState=H.Connecting},"join")}catch(t){throw this.isRoomJoinCalled=!1,M.e("Failed to connect to room - ",t),t}}leave(){return a(this,null,function*(){if(!this.store.getState(Fe)){this.logPossibleInconsistency("room leave is called when no room is connected");return}return this.sdk.leave().then(()=>{this.resetState("leave"),M.i("left room")}).catch(t=>{M.e("error in leaving room - ",t)})})}setScreenShareEnabled(e,t){return a(this,null,function*(){e?yield this.startScreenShare(t):yield this.stopScreenShare()})}addTrack(e,t="regular"){return a(this,null,function*(){yield this.sdk.addTrack(e,t),this.syncRoomState("addTrack")})}removeTrack(e){return a(this,null,function*(){yield this.sdk.removeTrack(e),this.syncRoomState("removeTrack")})}setLocalAudioEnabled(e){return a(this,null,function*(){let t=this.store.getState(A);t&&(yield this.setEnabledTrack(t,e))})}setLocalVideoEnabled(e){return a(this,null,function*(){let t=this.store.getState(x);t&&(yield this.setEnabledTrack(t,e))})}setEnabledTrack(e,t){return a(this,null,function*(){var o;if(((o=this.store.getState().tracks[e])==null?void 0:o.enabled)===t){this.logPossibleInconsistency(`local track[${e}] enabled state - ${t}`);return}this.setState(n=>{n.tracks[e]?n.tracks[e].displayEnabled=t:this.logPossibleInconsistency("track id not found for setEnabled")},"displayEnabled");try{yield this.setEnabledSDKTrack(e,t),this.syncRoomState("setEnabled")}catch(n){throw this.setState(l=>{l.tracks[e].displayEnabled=!t},"rollbackDisplayEnabled"),this.hmsNotifications.sendError(h.convertException(n)),n}let i=t?b.TRACK_UNMUTED:b.TRACK_MUTED;this.hmsNotifications.sendTrackUpdate(i,e)})}setAudioSettings(e){return a(this,null,function*(){let t=this.store.getState(A);t&&(yield this.setSDKLocalAudioTrackSettings(t,e),this.syncRoomState("setAudioSettings"))})}setVideoSettings(e){return a(this,null,function*(){let t=this.store.getState(x);t&&(yield this.setSDKLocalVideoTrackSettings(t,e),this.syncRoomState("setVideoSettings"))})}sendMessage(e){this.sendBroadcastMessage(e)}sendBroadcastMessage(e,t){return a(this,null,function*(){let r=yield this.sdk.sendBroadcastMessage(e,t);this.updateMessageInStore(r,{message:e,type:t})})}sendGroupMessage(e,t,r){return a(this,null,function*(){let i=this.store.getState(_),o=t.map(l=>i[l]),n=yield this.sdk.sendGroupMessage(e,o,r);this.updateMessageInStore(n,{message:e,recipientRoles:t,type:r})})}sendDirectMessage(e,t,r){return a(this,null,function*(){let i=this.hmsSDKPeers[t],o=yield this.sdk.sendDirectMessage(e,i,r);this.updateMessageInStore(o,{message:e,recipientPeer:i.peerId,type:r})})}updateMessageInStore(e,t){if(!e)throw M.w("sendMessage","Failed to send message",t),Error(`sendMessage Failed - ${JSON.stringify(t)}`);let r=h.convertMessage(e);return r.read=!0,r.senderName="You",this.onHMSMessage(r),r}setMessageRead(e,t){this.setState(r=>{t?r.messages.byID[t]?r.messages.byID[t].read=e:this.logPossibleInconsistency("no message with id is found"):r.messages.allIDs.forEach(i=>{r.messages.byID[i].read=e})},"setMessageRead")}attachVideo(e,t){return a(this,null,function*(){if(this.localAndVideoUnmuting(e))return new Promise(r=>{let i=this.store.subscribe(o=>a(this,null,function*(){o&&(yield this.attachVideoInternal(e,t),i(),r())}),he)});yield this.attachVideoInternal(e,t)})}detachVideo(e,t){return a(this,null,function*(){let r=this.hmsSDKTracks[e];r&&r.type==="video"?(yield r.removeSink(t),this.updateVideoLayer(e,"detachVideo")):this.logPossibleInconsistency("no video track found to remove sink")})}addPluginToVideoTrack(e,t){return a(this,null,function*(){return this.addRemoveVideoPlugin(e,"add",t)})}addPluginToAudioTrack(e){return a(this,null,function*(){return this.addRemoveAudioPlugin(e,"add")})}removePluginFromVideoTrack(e){return a(this,null,function*(){return this.addRemoveVideoPlugin(e,"remove")})}removePluginFromAudioTrack(e){return a(this,null,function*(){return this.addRemoveAudioPlugin(e,"remove")})}changeRole(e,t,r=!1){return a(this,null,function*(){let i=this.hmsSDKPeers[e];if(!i){this.logPossibleInconsistency(`Unknown peer ID given ${e} for changerole`);return}yield this.sdk.changeRole(i,t,r)})}acceptChangeRole(e){return a(this,null,function*(){let t=e.requestedBy?this.hmsSDKPeers[e.requestedBy.id]:void 0;t||M.w(`peer for which role change is requested no longer available - ${e.requestedBy}`);let r={requestedBy:t,role:e.role,token:e.token};yield this.sdk.acceptChangeRole(r),this.removeRoleChangeRequest(e)})}rejectChangeRole(e){this.removeRoleChangeRequest(e)}endRoom(e,t){return a(this,null,function*(){let r=this.store.getState(Ge);if(!(r==null?void 0:r.endRoom)){M.w("You are not allowed to perform this action - endRoom");return}yield this.sdk.endRoom(e,t)})}removePeer(e,t){return a(this,null,function*(){let r=this.hmsSDKPeers[e];if(r&&!r.isLocal)yield this.sdk.removePeer(r,t);else{this.logPossibleInconsistency(`No remote peer found for peerID - ${e}`);return}})}startRTMPOrRecording(e){return a(this,null,function*(){yield this.sdk.startRTMPOrRecording(e)})}stopRTMPAndRecording(){return a(this,null,function*(){yield this.sdk.stopRTMPAndRecording()})}startHLSStreaming(e){return a(this,null,function*(){yield this.sdk.startHLSStreaming(e)})}stopHLSStreaming(e){return a(this,null,function*(){yield this.sdk.stopHLSStreaming(e)})}changeName(e){return a(this,null,function*(){yield this.sdk.changeName(e)})}changeMetadata(e){return a(this,null,function*(){typeof e!="string"&&(e=JSON.stringify(e)),yield this.sdk.changeMetadata(e)})}setRemoteTrackEnabled(e,t){return a(this,null,function*(){if(typeof e=="string"){let r=this.hmsSDKTracks[e];r&&pt(r)?yield this.sdk.changeTrackState(r,t):this.logPossibleInconsistency(`No remote track with ID ${e} found for change track state`)}else Array.isArray(e)&&e.forEach(r=>this.setRemoteTrackEnabled(r,t))})}setRemoteTracksEnabled(e){return a(this,null,function*(){let t={enabled:e.enabled,type:e.type,source:e.source};if(e.roles){let r=this.store.getState(_);t.roles=e.roles.map(i=>r[i])}yield this.sdk.changeMultiTrackState(t)})}setLogLevel(e){M.level=e,this.sdk.setLogLevel(e)}resetState(e="resetState"){this.setState(t=>{Object.assign(t,te())},e),this.isRoomJoinCalled=!1,this.hmsSDKTracks={},M.cleanUp()}sdkJoinWithListeners(e){this.sdk.join(e,{onJoin:this.onJoin.bind(this),onRoomUpdate:this.onRoomUpdate.bind(this),onPeerUpdate:this.onPeerUpdate.bind(this),onTrackUpdate:this.onTrackUpdate.bind(this),onMessageReceived:this.onMessageReceived.bind(this),onError:this.onError.bind(this),onReconnected:this.onReconnected.bind(this),onReconnecting:this.onReconnecting.bind(this),onRoleChangeRequest:this.onRoleChangeRequest.bind(this),onRoleUpdate:this.onRoleUpdate.bind(this),onDeviceChange:this.onDeviceChange.bind(this),onChangeTrackStateRequest:this.onChangeTrackStateRequest.bind(this),onChangeMultiTrackStateRequest:this.onChangeMultiTrackStateRequest.bind(this),onRemovedFromRoom:this.onRemovedFromRoom.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})}onRemovedFromRoom(e){var r;let t=this.store.getState(U((r=e.requestedBy)==null?void 0:r.peerId));this.hmsNotifications.sendLeaveRoom(j(V({},e),{requestedBy:t||void 0})),M.i("resetting state after peer removed",e),this.resetState(e.roomEnded||!t?"roomEnded":"removedFromRoom")}onDeviceChange(e){let t=e.devices;if(!t)return;let r=this.store.getState(C);if(this.setState(i=>{N(i.devices.audioInput,t.audioInput)||(i.devices.audioInput=t.audioInput),N(i.devices.videoInput,t.videoInput)||(i.devices.videoInput=t.videoInput),N(i.devices.audioOutput,t.audioOutput)||(i.devices.audioOutput=t.audioOutput),this.hmsSDKPeers[r==null?void 0:r.id]&&Object.assign(i.settings,this.getMediaSettings(this.hmsSDKPeers[r==null?void 0:r.id]))},"deviceChange"),e.selection){let i=h.convertDeviceChangeUpdate(e);this.hmsNotifications.sendDeviceChange(i)}}sdkPreviewWithListeners(e){return a(this,null,function*(){yield this.sdk.preview(e,{onPreview:this.onPreview.bind(this),onError:this.onError.bind(this),onDeviceChange:this.onDeviceChange.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})})}startScreenShare(e){return a(this,null,function*(){this.store.getState(ge)?this.logPossibleInconsistency("start screenshare is called while it's on"):(yield this.sdk.startScreenShare(()=>this.syncRoomState("screenshareStopped"),e),this.syncRoomState("startScreenShare"))})}stopScreenShare(){return a(this,null,function*(){this.store.getState(ge)?(yield this.sdk.stopScreenShare(),this.syncRoomState("stopScreenShare")):this.logPossibleInconsistency("stop screenshare is called while it's not on")})}attachVideoInternal(e,t){return a(this,null,function*(){let r=this.hmsSDKTracks[e];r&&r.type==="video"?(yield r.addSink(t),this.updateVideoLayer(e,"attachVideo")):this.logPossibleInconsistency("no video track found to add sink")})}syncRoomState(e){M.time(`store-sync-${e}`);let t={},r=[],i={},o={},n={},l=this.sdk.getPeers();for(let y of l){let w=h.convertPeer(y);t[w.id]=w,r.push(w.id),this.hmsSDKPeers[w.id]=y;let F=[y.audioTrack,y.videoTrack,...y.auxiliaryTracks];for(let ee of F){if(!ee)continue;let Ce=h.convertTrack(ee);i[Ce.id]=Ce,o[ee.trackId]=ee}w.isLocal&&Object.assign(n,this.getMediaSettings(y))}let S=this.sdk.getRecordingState(),P=this.sdk.getRTMPState(),Z=this.sdk.getHLSState();this.setState(y=>{y.room.peers=r;let w=y.peers,F=y.tracks;Oe(w,t),we(F,i),Object.assign(y.settings,n),this.hmsSDKTracks=o,Object.assign(y.roles,h.convertRoles(this.sdk.getRoles())),Object.assign(y.playlist,h.convertPlaylist(this.sdk.getPlaylistManager())),Object.assign(y.room,h.convertRecordingStreamingState(S,P,Z))},e),M.timeEnd(`store-sync-${e}`)}onPreview(e){this.setState(t=>{Object.assign(t.room,h.convertRoom(e)),t.room.roomState=H.Preview},"previewStart"),this.syncRoomState("previewSync")}onJoin(e){let t=this.sdk.getPlaylistManager();this.audioPlaylist=new ae(t,p.audio,this.syncPlaylistState.bind(this),this.store),this.videoPlaylist=new ae(t,p.video,this.syncRoomState.bind(this),this.store),this.syncRoomState("joinSync"),this.setState(r=>{Object.assign(r.room,h.convertRoom(e)),r.room.isConnected=!0,r.room.roomState=H.Connected},"joined"),t.onProgress(this.setProgress),t.onNewTrackStart(r=>{this.syncPlaylistState(`${r.type}PlaylistUpdate`)}),t.onPlaylistEnded(r=>{this.syncPlaylistState(`${r}PlaylistEnded`)}),t.onCurrentTrackEnded(r=>{this.hmsNotifications.sendPlaylistTrackEnded(h.convertPlaylistItem(t,r)),this.syncPlaylistState(`${r.type}PlaylistItemEnded`)})}onRoomUpdate(e,t){this.setState(r=>{Object.assign(r.room,h.convertRoom(t))},"RoomUpdate")}onPeerUpdate(e,t){if(![R.BECAME_DOMINANT_SPEAKER,R.RESIGNED_DOMINANT_SPEAKER].includes(e)){if(Array.isArray(t)){this.syncRoomState("peersJoined");let r=[];for(let i of t){let o=this.store.getState(U(i.peerId));o&&r.push(o)}this.hmsNotifications.sendPeerList(r);return}this.sendPeerUpdateNotification(e,t)}}onTrackUpdate(e,t,r){if(e===b.TRACK_REMOVED)this.hmsNotifications.sendTrackUpdate(e,t.trackId),this.handleTrackRemove(t,r);else{let i=e===b.TRACK_ADDED?"trackAdded":"trackUpdate";this.syncRoomState(i),this.hmsNotifications.sendTrackUpdate(e,t.trackId)}}onMessageReceived(e){let t=h.convertMessage(e);t.read=!1,this.onHMSMessage(t),this.hmsNotifications.sendMessageReceived(t)}onHMSMessage(e){this.setState(t=>{e.id=String(this.store.getState($e)+1),t.messages.byID[e.id]=e,t.messages.allIDs.push(e.id)},"newMessage")}onAudioLevelUpdate(e){this.setState(t=>{let r={};e.forEach(o=>{if(!o.track||!o.peer)return;let n=o.track.trackId;r[n]=o.audioLevel,t.speakers[n]||(t.speakers[n]={audioLevel:o.audioLevel,peerID:o.peer.peerId,trackID:n})});let i=Object.entries(t.speakers);for(let[o,n]of i)n.audioLevel=r[o]||0,n.audioLevel===0&&delete t.speakers[o]},"audioLevel")}onChangeTrackStateRequest(e){let t=this.store.getState(U(e.requestedBy.peerId)),r=this.getStoreLocalTrackIDfromSDKTrack(e.track),i=this.store.getState(ne(r));if(!t)return this.logPossibleInconsistency(`Not found peer who requested track state change, ${e.requestedBy}`);if(!i)return this.logPossibleInconsistency(`Not found track for which track state change was requested, ${e.track}`);e.enabled||this.syncRoomState("changeTrackStateRequest"),this.hmsNotifications.sendChangeTrackStateRequest({requestedBy:t,track:i,enabled:e.enabled})}onChangeMultiTrackStateRequest(e){let t=this.store.getState(U(e.requestedBy.peerId));if(!t)return this.logPossibleInconsistency(`Not found peer who requested track state change, ${e.requestedBy}`);e.enabled||this.syncRoomState("changeMultiTrackStateRequest");let r=[],i=this.store.getState(g);for(let o of e.tracks){let n=this.getStoreLocalTrackIDfromSDKTrack(o);n&&i[n]&&r.push(i[n])}this.hmsNotifications.sendChangeMultiTrackStateRequest({requestedBy:t,tracks:r,enabled:e.enabled,type:e.type,source:e.source})}onReconnected(){this.syncRoomState("reconnectedSync"),this.hmsNotifications.sendReconnected(),this.setState(e=>{e.room.roomState=H.Connected},"reconnected")}onReconnecting(e){let t=h.convertException(e);M.e("Reconnection: received error from sdk",t),this.hmsNotifications.sendReconnecting(t),this.setState(r=>{r.room.roomState=H.Reconnecting,r.errors.push(t)},"reconnecting")}onError(e){let t=h.convertException(e);t.isTerminal?(this.leave().then(()=>M.e("error from SDK, left room.")),this.setState(r=>{r.room.roomState=H.Failed,r.errors.push(t)},"errorTerminal")):this.store.getState().errors.length<50&&this.setState(i=>{i.errors.push(t)},"error"),this.hmsNotifications.sendError(t),M.e("received error from sdk",t)}updateVideoLayer(e,t){let r=this.hmsSDKTracks[e];r&&r instanceof gt&&this.setState(i=>{i.tracks[e].layer=r.getSimulcastLayer()},t)}handleTrackRemove(e,t){this.setState(r=>{let i=r.peers[t.peerId],o=r.tracks,n=e.trackId;if(this.isSameStoreSDKTrack(n,i==null?void 0:i.audioTrack))i==null||delete i.audioTrack;else if(this.isSameStoreSDKTrack(n,i==null?void 0:i.videoTrack))i==null||delete i.videoTrack;else{let l=i==null?void 0:i.auxiliaryTracks.indexOf(n);l>-1&&this.isSameStoreSDKTrack(n,i==null?void 0:i.auxiliaryTracks[l])&&(i==null||i.auxiliaryTracks.splice(l,1))}delete o[n],delete this.hmsSDKTracks[n]},"trackRemoved")}setEnabledSDKTrack(e,t){return a(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setEnabled(t):this.logPossibleInconsistency(`track ${e} not present, unable to enabled/disable`)})}setSDKLocalVideoTrackSettings(e,t){return a(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}setSDKLocalAudioTrackSettings(e,t){return a(this,null,function*(){let r=this.hmsSDKTracks[e];r?yield r.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}getMediaSettings(e){var o;let t=this.store.getState(qe),r=e.audioTrack,i=e.videoTrack;return{audioInputDeviceId:(r==null?void 0:r.settings.deviceId)||t.audioInputDeviceId,videoInputDeviceId:(i==null?void 0:i.settings.deviceId)||t.videoInputDeviceId,audioOutputDeviceId:(o=this.sdk.getAudioOutput().getDevice())==null?void 0:o.deviceId}}setTrackVolume(e,t){let r=this.hmsSDKTracks[t];r?r instanceof Yt?(r.setVolume(e),this.setState(i=>{let o=i.tracks[t];o&&(o.volume=e)},"trackVolume")):M.w(`track ${t} is not an audio track`):this.logPossibleInconsistency(`track ${t} not present, unable to set volume`)}localAndVideoUnmuting(e){if(this.store.getState(C).videoTrack!==e)return!1;let r=this.store.getState(We),i=this.store.getState(he);return r&&!i}logPossibleInconsistency(e){M.w("possible inconsistency detected - ",e)}addRemoveVideoPlugin(e,t,r){return a(this,null,function*(){if(!e){M.w("Invalid plugin received in store");return}let i=this.store.getState(x);if(i){let o=this.hmsSDKTracks[i];o?(t==="add"?yield o.addPlugin(e,r):t==="remove"&&(yield o.removePlugin(e)),this.syncRoomState(`${t}VideoPlugin`)):this.logPossibleInconsistency(`track ${i} not present, unable to remove plugin`)}})}addRemoveAudioPlugin(e,t){return a(this,null,function*(){if(!e){M.w("Invalid plugin received in store");return}let r=this.store.getState(A);if(r){let i=this.hmsSDKTracks[r];i?(t==="add"?yield i.addPlugin(e):t==="remove"&&(yield i.removePlugin(e)),this.syncRoomState(`${t}AudioPlugin`)):this.logPossibleInconsistency(`track ${r} not present, unable to remove plugin`)}})}isSameStoreSDKTrack(e,t){var r;return t?((r=this.hmsSDKTracks[t])==null?void 0:r.trackId)===e:!1}onRoleChangeRequest(e){this.setState(t=>{t.roleChangeRequests.length===0&&t.roleChangeRequests.push(h.convertRoleChangeRequest(e))},"roleChangeRequest")}removeRoleChangeRequest(e){this.setState(t=>{let r=t.roleChangeRequests.findIndex(i=>i.token===e.token);r!==-1&&t.roleChangeRequests.splice(r,1)},"removeRoleChangeRequest")}onRoleUpdate(){this.syncRoomState("roleUpdate")}getStoreLocalTrackIDfromSDKTrack(e){return this.store.getState(je).find(r=>this.hmsSDKTracks[r].trackId===e.trackId)}};import{EventEmitter2 as Qt}from"eventemitter2";var Pe="hmsNotification",Ie=class{constructor(e){this.id=0;this.onNotification=e=>(this.eventEmitter.addListener(Pe,e),()=>{this.eventEmitter.removeListener(Pe,e)});this.store=e,this.eventEmitter=new Qt}sendPlaylistTrackEnded(e){let t=this.createNotification(m.PLAYLIST_TRACK_ENDED,e,I.INFO);this.emitEvent(t)}sendDeviceChange(e){var r;let t=this.createNotification(m.DEVICE_CHANGE_UPDATE,e,e.error?I.ERROR:I.INFO,`Selected ${e.type} device - ${(r=e.selection)==null?void 0:r.label}`);this.emitEvent(t)}sendLeaveRoom(e){var i;let t=(i=e.requestedBy)==null?void 0:i.name,r=this.createNotification(e.roomEnded||!t?m.ROOM_ENDED:m.REMOVED_FROM_ROOM,e,I.INFO,`${e.roomEnded?"Room ended":"Removed from room"} ${t?`by ${t}`:""}`);this.emitEvent(r)}sendPeerList(e){let t=this.createNotification(m.PEER_LIST,e,I.INFO);this.emitEvent(t)}sendPeerUpdate(e,t){let r=this.store.getState(U(t==null?void 0:t.id))||t,i=Mt[e];if(i){let o=this.createNotification(i,r,I.INFO);this.emitEvent(o)}}sendTrackUpdate(e,t){let r=this.store.getState(ne(t)),i=mt[e];if(i){let o=this.createNotification(i,r,I.INFO);this.emitEvent(o)}}sendMessageReceived(e){let t=this.createNotification(m.NEW_MESSAGE,e,I.INFO);this.emitEvent(t)}sendError(e){let t=this.createNotification(m.ERROR,e,I.ERROR);this.emitEvent(t)}sendReconnecting(e){let t=this.createNotification(m.RECONNECTING,e,I.ERROR);this.emitEvent(t)}sendReconnected(){let e=this.createNotification(m.RECONNECTED,null,I.INFO);this.emitEvent(e)}sendChangeTrackStateRequest(e){let t=this.createNotification(m.CHANGE_TRACK_STATE_REQUEST,e,I.INFO);this.emitEvent(t)}sendChangeMultiTrackStateRequest(e){let t=this.createNotification(m.CHANGE_MULTI_TRACK_STATE_REQUEST,e,I.INFO);this.emitEvent(t)}emitEvent(e){this.eventEmitter.emit(Pe,e)}createNotification(e,t,r,i=""){return this.id++,{id:this.id,type:e,message:i,data:t,severity:r}}};function Re(s){return s!=null}var Tt=(s,e,t)=>{let r;t.getState(L)===H.Connected&&(r=Ht(s,e,t)),t.subscribe(i=>{[H.Connected,H.Reconnecting].includes(i)?r||(r=Ht(s,e,t)):r&&(ss(e),r())},L)},Ht=(s,e,t)=>{var o;let r=zt(t,e),i=(o=s.getWebrtcInternals())==null?void 0:o.onStatsChange(n=>Xt(e,n,t));return()=>{r(),i&&i()}},zt=(s,e)=>{let t,r,i;return s.getState(K)?e.namedSetState(o=>{o.localPeer.id=s.getState(K)},"localpeer-id"):t=s.subscribe(o=>{o&&e.namedSetState(n=>{n.localPeer.id=o},"localpeer-id")},K),s.getState(x)?e.namedSetState(o=>{o.localPeer.videoTrack=s.getState(x)},"localpeer-videotrack-id"):r=s.subscribe(o=>{o&&e.namedSetState(n=>{n.localPeer.videoTrack=o},"localpeer-videotrack-id")},x),s.getState(A)?e.namedSetState(o=>{o.localPeer.videoTrack=s.getState(A)},"localpeer-audiotrack-id"):i=s.subscribe(o=>{o&&e.namedSetState(n=>{n.localPeer.videoTrack=o},"localpeer-audiotrack-id")},A),()=>{t==null||t(),r==null||r(),i==null||i()}},Xt=(s,e,t)=>{let r=t.getState(g);s.namedSetState(i=>{i.jitter=e.getJitter(),i.packetsLost=e.getPacketsLost();let o={},n=Object.keys(r);for(let S of n){let P=e.getTrackStats(S);P&&(o[S]=ts(t,r[S],P,i.trackStats[S]))}Se(i.trackStats,o);let l=Zt(t,i.peerStats[t.getState(K)],e.getLocalPeerStats());Se(i.peerStats,l)},"webrtc-stats")},Zt=(s,e,t)=>{let r={},i=s.getState(K);return r[i]||(r[i]={}),e?r[i]=es(t,e):(t.publish&&(r[i].publish=Object.assign(t.publish,{bitrate:0})),t.subscribe&&(r[i].subscribe=Object.assign(t.subscribe,{bitrate:0}))),r},es=(s,e)=>{let t=ve("bytesSent",s.publish,e==null?void 0:e.publish),r=ve("bytesReceived",s.subscribe,e==null?void 0:e.subscribe),i=Object.assign(s.publish,{bitrate:t}),o=Object.assign(s.subscribe,{bitrate:r});return{publish:i,subscribe:o}},ts=(s,e,t,r)=>{let i=ve((t==null?void 0:t.type)==="outbound-rtp"?"bytesSent":"bytesReceived",t,r);return Object.assign(t,{peerID:e.peerId,peerName:s.getState(ot(e.peerId)),bitrate:i})},ve=(s,e,t)=>{let r=e&&e[s],i=t?t[s]:null;return e&&t&&Re(r)&&Re(i)?(r-i)/(e.timestamp-t.timestamp)*1e3*8:0},ss=(s,e="resetState")=>{s.namedSetState(t=>{Object.assign(t,se())},e)};var ce=class{constructor(e,t){this.hmsStore=e;this.sdk=t;this.store=O.createNewHMSStore("HMSInternalsStore",se),this.getState=this.store.getState,this.subscribe=this.store.subscribe,this.getPublishPeerConnection=()=>new Promise(r=>{var i,o;this.hmsStore.getState(L)==="Connected"?r((o=(i=this.sdk)==null?void 0:i.getWebrtcInternals())==null?void 0:o.getPublishPeerConnection()):this.hmsStore.subscribe(n=>{var l,S;n==="Connected"&&r((S=(l=this.sdk)==null?void 0:l.getWebrtcInternals())==null?void 0:S.getPublishPeerConnection())},L)}),this.getSubscribePeerConnection=()=>new Promise(r=>{var i,o;this.hmsStore.getState(L)==="Connected"?r((o=(i=this.sdk)==null?void 0:i.getWebrtcInternals())==null?void 0:o.getSubscribePeerConnection()):this.hmsStore.subscribe(n=>{var l,S;n==="Connected"&&r((S=(l=this.sdk)==null?void 0:l.getWebrtcInternals())==null?void 0:S.getSubscribePeerConnection())},L)}),!!this.sdk&&Tt(this.sdk,this.store,this.hmsStore)}};var Ee={};vt(Ee,{availablePublishBitrate:()=>us,availableSubscribeBitrate:()=>ps,bitrateByTrackID:()=>Hs,bytesReceivedByTrackID:()=>ys,framerateByTrackID:()=>fs,jitter:()=>is,jitterByTrackID:()=>ks,localAudioTrackBitrate:()=>Is,localAudioTrackBytesSent:()=>vs,localAudioTrackStats:()=>be,localPeerStats:()=>q,localVideoTrackBitrate:()=>Rs,localVideoTrackBytesSent:()=>Ds,localVideoTrackFramerate:()=>bs,localVideoTrackQualityLimitationReason:()=>Es,localVideoTrackStats:()=>X,packetsLost:()=>rs,packetsLostByTrackID:()=>Ps,peerStatsByID:()=>gs,publishBitrate:()=>Ss,subscribeBitrate:()=>ds,totalBytesReceived:()=>ms,totalBytesSent:()=>Ms,trackStatsByID:()=>Ts});import{createSelector as T}from"reselect";var rs=s=>s.packetsLost,is=s=>s.jitter,os=s=>s.localPeer.id,ns=s=>s.localPeer.audioTrack,as=s=>s.localPeer.videoTrack,cs=(s,e)=>e,ls=(s,e)=>e,De=s=>s.trackStats,yt=s=>s.peerStats,q=T([yt,os],(s,e)=>s[e]),Ss=T(q,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bitrate}),ds=T(q,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bitrate}),us=T(q,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.availableOutgoingBitrate}),ps=T(q,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.availableIncomingBitrate}),Ms=T(q,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bytesSent}),ms=T(q,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bytesReceived}),hs=T([yt,cs],(s,e)=>e?s[e]:void 0),$=T([De,ls],(s,e)=>e?s[e]:void 0),gs=u(hs),Ts=u($),Hs=u(T($,s=>s==null?void 0:s.bitrate)),ys=u(T($,s=>s==null?void 0:s.bytesReceived)),fs=u(T($,s=>s==null?void 0:s.framesPerSecond)),ks=u(T($,s=>s==null?void 0:s.jitter)),Ps=u(T($,s=>s==null?void 0:s.packetsLost)),be=T([De,ns],(s,e)=>e?s[e]:void 0),X=T([De,as],(s,e)=>e?s[e]:void 0),Is=T(be,s=>s==null?void 0:s.bitrate),Rs=T(X,s=>s==null?void 0:s.bitrate),vs=T(be,s=>s==null?void 0:s.bytesSent),Ds=T(X,s=>s==null?void 0:s.bytesSent),bs=T(X,s=>s==null?void 0:s.framesPerSecond),Es=T(X,s=>s==null?void 0:s.qualityLimitationReason);var O=class{constructor(e,t,r){this.getWebrtcInternals=()=>(this.webrtcInternals||(this.webrtcInternals=new ce(this.store,this.sdk)),this.webrtcInternals);e?this.store=e:this.store=O.createNewHMSStore("HMSStore",te),r?this.notifications=r:this.notifications=new Ie(this.store),t?this.actions=t:(this.sdk=new Ls,this.actions=new ke(this.store,this.sdk,this.notifications)),this.initialTriggerOnSubscribe=!1}triggerOnSubscribe(){this.initialTriggerOnSubscribe||(O.makeStoreTriggerOnSubscribe(this.store),this.initialTriggerOnSubscribe=!0)}getStore(){return this.store}getHMSActions(){return this.actions}getNotifications(){return{onNotification:this.notifications.onNotification}}static createNewHMSStore(e,t){let r=As(()=>t()),i=r.setState;r.setState=l=>{let S=typeof l=="function"?Cs(l):l;i(S)};let o=r.getState;r.getState=l=>{if(l){let S=l.name||"byIDSelector";window.selectorsCount||(window.selectorsCount={}),window.selectorsCount[S]=(window.selectorsCount[S]||0)+1;let P=performance.now(),Z=l(o()),y=performance.now()-P;return y>1&&(window.expensiveSelectors=window.expensiveSelectors||new Map,window.expensiveSelectors.set(S,y)),Z}return o()},O.useShallowCheckInSubscribe(r);let n=O.setUpDevtools(r,e);return j(V({},r),{namedSetState:n})}static makeStoreTriggerOnSubscribe(e){let t=e.subscribe;e.subscribe=(r,i,o)=>(r(e.getState(i),void 0),t(r,i,o))}static useShallowCheckInSubscribe(e){let t=e.subscribe;e.subscribe=(r,i,o)=>(i||(i=n=>n),o=o||xs,t(r,i,o))}static setUpDevtools(e,t){let r;try{r=window.__REDUX_DEVTOOLS_EXTENSION__||window.top.__REDUX_DEVTOOLS_EXTENSION__}catch(n){}if(!r)return n=>{e.setState(n)};let i=r.connect(O.devtoolsOptions(t));i.prefix=t?`${t} > `:"";let o=e.setState;return e.setState=n=>{o(n),i.send(`${i.prefix}setState`,e.getState())},i.subscribe(O.devtoolsSubscribe(i,e,o)),i.send("setUpStore",e.getState()),(n,l)=>{o(n);let S=l||`${i.prefix}action`;i.send(S,e.getState())}}static devtoolsOptions(e){return{name:e,actionsBlacklist:["audioLevel","playlistProgress"]}}static devtoolsSubscribe(e,t,r){return i=>{var o,n,l,S;if(i.type==="DISPATCH"&&i.state)["JUMP_TO_ACTION","JUMP_TO_STATE"].includes(i.payload.type)?r(JSON.parse(i.state)):t.setState(JSON.parse(i.state));else if(i.type==="DISPATCH"&&((o=i.payload)==null?void 0:o.type)==="COMMIT")e.init(t.getState());else if(i.type==="DISPATCH"&&((n=i.payload)==null?void 0:n.type)==="IMPORT_STATE"){let P=(l=i.payload.nextLiftedState)==null?void 0:l.actionsById;(((S=i.payload.nextLiftedState)==null?void 0:S.computedStates)||[]).forEach(({state:y},w)=>{let F=P[w]||`${e.prefix}setState`;w===0?e.init(y):(r(y),e.send(F,t.getState()))})}}}};export{Dt as HMSAudioPluginType,f as HMSLogLevel,Le as HMSMessageType,I as HMSNotificationSeverity,m as HMSNotificationTypes,p as HMSPlaylistType,O as HMSReactiveStore,H as HMSRoomState,bt as HMSVideoPluginType,ce as HMSWebrtcInternals,se as createDefaultInternalsStore,te as createDefaultStoreState,st as selectAudioPlaylist,wi as selectAudioPlaylistTrackByPeerID,Kt as selectAudioTrackByPeerID,St as selectAudioTrackVolume,Bi as selectAudioVolumeByPeerID,xi as selectAuxiliaryAudioByPeerID,Ei as selectAuxiliaryTracksByPeerID,ai as selectAvailableRoleNames,Bt as selectBroadcastMessages,Wi as selectBroadcastMessagesUnreadCount,bi as selectCameraStreamByPeerID,ii as selectDegradedTracks,Gr as selectDevices,zr as selectDominantSpeaker,di as selectHLSState,ie as selectHMSMessages,$e as selectHMSMessagesCount,Ee as selectHMSStats,so as selectIsAllowedToPublish,ci as selectIsAllowedToSubscribe,lt as selectIsAudioLocallyMuted,Jr as selectIsConnectedToRoom,ni as selectIsInPreview,Xr as selectIsLocalAudioEnabled,co as selectIsLocalAudioPluginPresent,ge as selectIsLocalScreenShared,We as selectIsLocalVideoDisplayEnabled,he as selectIsLocalVideoEnabled,ao as selectIsLocalVideoPluginPresent,Ki as selectIsLocallyMutedByPeerID,Ui as selectIsPeerAudioEnabled,_i as selectIsPeerVideoEnabled,Vi as selectIsScreenShareLocallyMutedByPeerID,Zr as selectIsSomeoneScreenSharing,A as selectLocalAudioTrackID,qe as selectLocalMediaSettings,C as selectLocalPeer,K as selectLocalPeerID,oe as selectLocalPeerRole,je as selectLocalTrackIDs,x as selectLocalVideoTrackID,Be as selectMessageIDsInOrder,$i as selectMessagesByPeerID,Fi as selectMessagesByRole,Ve as selectMessagesMap,Ji as selectMessagesUnreadCountByPeerID,Gi as selectMessagesUnreadCountByRole,Ai as selectPeerAudioByID,U as selectPeerByID,Yr as selectPeerCount,Qi as selectPeerMetadata,ot as selectPeerNameByID,Nt as selectPeerScreenSharing,ei as selectPeerSharingAudio,ri as selectPeerSharingAudioPlaylist,si as selectPeerSharingVideoPlaylist,me as selectPeers,Yi as selectPeersByRole,D as selectPeersMap,ti as selectPeersScreenSharing,eo as selectPeersWithAudioStatus,Ge as selectPermissions,Si as selectRTMPState,li as selectRecordingState,Qr as selectRemotePeers,no as selectRoleByRoleName,to as selectRoleChangeRequest,_ as selectRolesMap,E as selectRoom,pi as selectRoomStartTime,Fe as selectRoomStarted,L as selectRoomState,ct as selectScreenShareAudioByPeerID,Ni as selectScreenShareByPeerID,at as selectScreenSharesByPeerId,qi as selectScreenshareAudioVolumeByPeerID,ui as selectSessionId,ji as selectSimulcastLayerByTrack,Lt as selectSpeakers,Ci as selectTrackAudioByID,ne as selectTrackByID,g as selectTracksMap,oi as selectUnreadHMSMessagesCount,rt as selectVideoPlaylist,Oi as selectVideoPlaylistAudioTrackByPeerID,Li as selectVideoPlaylistVideoTrackByPeerID,_t as selectVideoTrackByPeerID};
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.2.84-alpha.5",
2
+ "version": "0.2.86-alpha.1",
3
3
  "license": "MIT",
4
4
  "main": "dist/hms-video-store.cjs.js",
5
5
  "typings": "dist/index.d.ts",
@@ -33,7 +33,7 @@
33
33
  "module": "dist/hms-video-store.esm.js",
34
34
  "sideEffects": false,
35
35
  "dependencies": {
36
- "@100mslive/hms-video": "0.1.38-alpha.4",
36
+ "@100mslive/hms-video": "0.1.40-alpha.0",
37
37
  "eventemitter2": "^6.4.5",
38
38
  "immer": "^9.0.6",
39
39
  "reselect": "4.0.0",
@@ -59,5 +59,5 @@
59
59
  "url": "https://github.com/100mslive/hms-video-store/issues"
60
60
  },
61
61
  "homepage": "https://github.com/100mslive/hms-video-store#readme",
62
- "gitHead": "1ecfe98e0764b6c6739ddf1037a91fb0c7e5633d"
62
+ "gitHead": "981347850b3255def493b88a6cb99ddeec55fbf3"
63
63
  }