@100mslive/hms-video-store 0.10.8 → 0.10.10-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common/ui-logger.d.ts +1 -1
- package/dist/core/IHMSActions.d.ts +2 -0
- package/dist/core/hmsSDKStore/HMSInteractivityCenter.d.ts +18 -0
- package/dist/core/hmsSDKStore/HMSNotifications.d.ts +1 -0
- package/dist/core/hmsSDKStore/HMSSDKActions.d.ts +3 -0
- package/dist/core/hmsSDKStore/common/mapping.d.ts +4 -0
- package/dist/core/hmsSDKStore/sdkTypes.d.ts +3 -3
- package/dist/core/hmsSDKStore/sdkUtils/storeMergeUtils.d.ts +2 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/schema/notification.d.ts +16 -1
- package/dist/core/schema/schema.d.ts +2 -1
- package/dist/core/selectors/selectors.d.ts +2 -0
- package/dist/core/selectors/selectorsByID.d.ts +6 -0
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +3 -3
- package/dist/index.js +1 -1
- package/dist/index.js.map +3 -3
- package/package.json +3 -3
- package/src/common/ui-logger.ts +1 -1
- package/src/core/IHMSActions.ts +3 -0
- package/src/core/hmsSDKStore/HMSInteractivityCenter.ts +42 -0
- package/src/core/hmsSDKStore/HMSNotifications.ts +13 -2
- package/src/core/hmsSDKStore/HMSSDKActions.ts +28 -3
- package/src/core/hmsSDKStore/common/mapping.ts +10 -0
- package/src/core/hmsSDKStore/sdkTypes.ts +12 -0
- package/src/core/hmsSDKStore/sdkUtils/storeMergeUtils.ts +20 -1
- package/src/core/index.ts +4 -0
- package/src/core/schema/notification.ts +16 -0
- package/src/core/schema/schema.ts +3 -1
- package/src/core/selectors/selectors.ts +4 -0
- package/src/core/selectors/selectorsByID.ts +8 -0
- package/src/test/fakeStore/fakeHMSStore.ts +1 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { HLSTimedMetadata, HMSAudioPlugin, HMSAudioTrackSettings, HMSConfig, HMSLogLevel, HMSPluginSupportResult, HMSPreferredSimulcastLayer, HMSPreviewConfig, HMSScreenShareConfig, HMSVideoPlugin, HMSVideoTrackSettings, TokenRequest, TokenRequestOptions } from '@100mslive/hms-video';
|
|
2
|
+
import { IHMSInteractivityCenter } from './hmsSDKStore/HMSInteractivityCenter';
|
|
2
3
|
import { HLSConfig, RTMPRecordingConfig } from './hmsSDKStore/sdkTypes';
|
|
3
4
|
import { HMSChangeMultiTrackStateParams, HMSGenericTypes, HMSMessageID, HMSPeerID, HMSRoleName, HMSTrackID, HMSTrackSource, IHMSPlaylistActions, IHMSSessionStoreActions } from './schema';
|
|
4
5
|
import { HMSRoleChangeRequest } from './selectors';
|
|
@@ -425,4 +426,5 @@ export interface IHMSActions<T extends HMSGenericTypes = {
|
|
|
425
426
|
* is persisted throughout a session till the last peer leaves a room(cleared after the last peer leaves the room)
|
|
426
427
|
*/
|
|
427
428
|
sessionStore: IHMSSessionStoreActions<T['sessionStore']>;
|
|
429
|
+
interactivityCenter: IHMSInteractivityCenter;
|
|
428
430
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { HMSPollCreateParams, HMSPollQuestionCreateParams, HMSPollQuestionResponseCreateParams, HMSSdk } from '@100mslive/hms-video';
|
|
2
|
+
export interface IHMSInteractivityCenter {
|
|
3
|
+
createPoll(poll: HMSPollCreateParams): Promise<void>;
|
|
4
|
+
startPoll(poll: string | HMSPollCreateParams): Promise<void>;
|
|
5
|
+
stopPoll(poll: string): Promise<void>;
|
|
6
|
+
addQuestionsToPoll(pollID: string, questions: HMSPollQuestionCreateParams[]): Promise<void>;
|
|
7
|
+
addResponsesToPoll(pollID: string, responses: HMSPollQuestionResponseCreateParams[]): Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
export declare class HMSInteractivityCenter implements IHMSInteractivityCenter {
|
|
10
|
+
private sdk;
|
|
11
|
+
constructor(sdk: HMSSdk);
|
|
12
|
+
private get sdkInteractivityCenter();
|
|
13
|
+
createPoll(poll: HMSPollCreateParams): Promise<void>;
|
|
14
|
+
startPoll(poll: string | HMSPollCreateParams): Promise<void>;
|
|
15
|
+
stopPoll(poll: string): Promise<void>;
|
|
16
|
+
addQuestionsToPoll(poll: string, questions: HMSPollQuestionCreateParams[]): Promise<void>;
|
|
17
|
+
addResponsesToPoll(pollID: string, responses: HMSPollQuestionResponseCreateParams[]): Promise<void>;
|
|
18
|
+
}
|
|
@@ -22,6 +22,7 @@ export declare class HMSNotifications<T extends HMSGenericTypes = {
|
|
|
22
22
|
sendReconnected(): void;
|
|
23
23
|
sendChangeTrackStateRequest(request: HMSChangeTrackStateRequest): void;
|
|
24
24
|
sendChangeMultiTrackStateRequest(request: HMSChangeMultiTrackStateRequest): void;
|
|
25
|
+
sendPollUpdate(type: sdkTypes.HMSPollsUpdate, pollID: string): void;
|
|
25
26
|
private emitEvent;
|
|
26
27
|
private createNotification;
|
|
27
28
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { HMSAudioPlugin, HMSChangeMultiTrackStateRequest as SDKHMSChangeMultiTrackStateRequest, HMSChangeTrackStateRequest as SDKHMSChangeTrackStateRequest, HMSException as SDKHMSException, HMSLogLevel, HMSPluginSupportResult, HMSScreenShareConfig, HMSSdk, HMSTrack as SDKHMSTrack, HMSVideoPlugin } from '@100mslive/hms-video';
|
|
2
|
+
import { IHMSInteractivityCenter } from './HMSInteractivityCenter';
|
|
2
3
|
import { HMSNotifications } from './HMSNotifications';
|
|
3
4
|
import * as sdkTypes from './sdkTypes';
|
|
4
5
|
import { IHMSActions } from '../IHMSActions';
|
|
@@ -37,6 +38,7 @@ export declare class HMSSDKActions<T extends HMSGenericTypes = {
|
|
|
37
38
|
audioPlaylist: IHMSPlaylistActions;
|
|
38
39
|
videoPlaylist: IHMSPlaylistActions;
|
|
39
40
|
sessionStore: IHMSSessionStoreActions<T['sessionStore']>;
|
|
41
|
+
interactivityCenter: IHMSInteractivityCenter;
|
|
40
42
|
private beamSpeakerLabelsLogger?;
|
|
41
43
|
constructor(store: IHMSStore<T>, sdk: HMSSdk, notificationManager: HMSNotifications<T>);
|
|
42
44
|
refreshDevices(): Promise<void>;
|
|
@@ -107,6 +109,7 @@ export declare class HMSSDKActions<T extends HMSGenericTypes = {
|
|
|
107
109
|
private sdkPreviewWithListeners;
|
|
108
110
|
private onNetworkQuality;
|
|
109
111
|
private onSessionStoreUpdate;
|
|
112
|
+
private onPollsUpdate;
|
|
110
113
|
private startScreenShare;
|
|
111
114
|
private stopScreenShare;
|
|
112
115
|
private attachVideoInternal;
|
|
@@ -8,4 +8,8 @@ declare type TrackNotificationMap = {
|
|
|
8
8
|
[key in sdkTypes.HMSTrackUpdate]: HMSNotificationTypes;
|
|
9
9
|
};
|
|
10
10
|
export declare const TRACK_NOTIFICATION_TYPES: TrackNotificationMap;
|
|
11
|
+
declare type PollNotificationMap = {
|
|
12
|
+
[key in sdkTypes.HMSPollsUpdate]: HMSNotificationTypes;
|
|
13
|
+
};
|
|
14
|
+
export declare const POLL_NOTIFICATION_TYPES: PollNotificationMap;
|
|
11
15
|
export {};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { DeviceMap, DeviceType, HLSConfig, HLSMeetingURLVariant, HLSTimedMetadata, HMSAudioPlugin, HMSAudioPluginType, HMSAudioTrackSettings, HMSConfig, HMSConfigInitialSettings, HMSConnectionQuality, HMSDeviceChangeEvent, HMSException, HMSFrameworkInfo, HMSHLS, HMSLocalPeer, HMSLocalTrackStats, HMSLogLevel, HMSMessage, HMSPeer, HMSPeerStats, HMSPeerUpdate, HMSPlaylistItem, HMSPlaylistManager, HMSPlaylistProgressEvent, HMSPreferredSimulcastLayer, HMSPreviewConfig, HMSRecording, HMSRemotePeer, HMSRemoteTrackStats, HMSRole, HMSRoom, HMSRoomUpdate, HMSRTMP, HMSScreenShareConfig, HMSSimulcastLayer, HMSSimulcastLayerDefinition, HMSSpeaker, HMSTrackStats, HMSTrackUpdate, HMSVideoPlugin, HMSVideoPluginCanvasContextType, HMSVideoPluginType, HMSVideoTrackSettings, HMSWebrtcInternals, HMSWebrtcStats, parsedUserAgent, RID, RTMPRecordingConfig, ScreenCaptureHandle, simulcastMapping, TokenRequest, TokenRequestOptions } from '@100mslive/hms-video';
|
|
2
|
-
export { HMSException, HMSSimulcastLayer, HMSRoomUpdate, HMSPeerUpdate, HMSTrackUpdate, HMSLogLevel, HMSAudioPluginType, HMSVideoPluginType, HMSVideoPluginCanvasContextType, parsedUserAgent, simulcastMapping, DeviceType, };
|
|
3
|
-
export type { DeviceMap, HMSPeer, HMSRoom, HMSMessage, HMSSpeaker, HMSConfig, HMSConfigInitialSettings, HMSPreviewConfig, HMSAudioTrackSettings, HMSVideoTrackSettings, HMSRole, HMSLocalPeer, HMSRemotePeer, HMSSimulcastLayerDefinition, HMSDeviceChangeEvent, HMSPlaylistItem, HMSPlaylistManager, HMSPlaylistProgressEvent, RTMPRecordingConfig, HMSRecording, HMSRTMP, HMSWebrtcInternals, HMSWebrtcStats, HMSVideoPlugin, HMSAudioPlugin, HLSConfig, HLSTimedMetadata, HLSMeetingURLVariant, HMSHLS, HMSPeerStats, HMSTrackStats, HMSLocalTrackStats, HMSRemoteTrackStats, HMSConnectionQuality, HMSScreenShareConfig, HMSFrameworkInfo, RID, ScreenCaptureHandle, HMSPreferredSimulcastLayer, TokenRequest, TokenRequestOptions, };
|
|
1
|
+
import { DeviceMap, DeviceType, HLSConfig, HLSMeetingURLVariant, HLSTimedMetadata, HMSAudioPlugin, HMSAudioPluginType, HMSAudioTrackSettings, HMSConfig, HMSConfigInitialSettings, HMSConnectionQuality, HMSDeviceChangeEvent, HMSException, HMSFrameworkInfo, HMSHLS, HMSLocalPeer, HMSLocalTrackStats, HMSLogLevel, HMSMessage, HMSPeer, HMSPeerStats, HMSPeerUpdate, HMSPlaylistItem, HMSPlaylistManager, HMSPlaylistProgressEvent, HMSPoll, HMSPollCreateParams, HMSPollQuestionAnswer, HMSPollQuestionCreateParams, HMSPollQuestionType, HMSPollsUpdate, HMSPreferredSimulcastLayer, HMSPreviewConfig, HMSRecording, HMSRemotePeer, HMSRemoteTrackStats, HMSRole, HMSRoom, HMSRoomUpdate, HMSRTMP, HMSScreenShareConfig, HMSSimulcastLayer, HMSSimulcastLayerDefinition, HMSSpeaker, HMSTrackStats, HMSTrackUpdate, HMSVideoPlugin, HMSVideoPluginCanvasContextType, HMSVideoPluginType, HMSVideoTrackSettings, HMSWebrtcInternals, HMSWebrtcStats, parsedUserAgent, RID, RTMPRecordingConfig, ScreenCaptureHandle, simulcastMapping, TokenRequest, TokenRequestOptions } from '@100mslive/hms-video';
|
|
2
|
+
export { HMSException, HMSSimulcastLayer, HMSRoomUpdate, HMSPeerUpdate, HMSTrackUpdate, HMSPollsUpdate, HMSLogLevel, HMSAudioPluginType, HMSVideoPluginType, HMSVideoPluginCanvasContextType, parsedUserAgent, simulcastMapping, DeviceType, HMSPollQuestionType, };
|
|
3
|
+
export type { DeviceMap, HMSPeer, HMSRoom, HMSMessage, HMSSpeaker, HMSConfig, HMSConfigInitialSettings, HMSPreviewConfig, HMSAudioTrackSettings, HMSVideoTrackSettings, HMSRole, HMSLocalPeer, HMSRemotePeer, HMSSimulcastLayerDefinition, HMSDeviceChangeEvent, HMSPlaylistItem, HMSPlaylistManager, HMSPlaylistProgressEvent, RTMPRecordingConfig, HMSRecording, HMSRTMP, HMSWebrtcInternals, HMSWebrtcStats, HMSVideoPlugin, HMSAudioPlugin, HLSConfig, HLSTimedMetadata, HLSMeetingURLVariant, HMSHLS, HMSPeerStats, HMSTrackStats, HMSLocalTrackStats, HMSRemoteTrackStats, HMSConnectionQuality, HMSScreenShareConfig, HMSFrameworkInfo, RID, ScreenCaptureHandle, HMSPreferredSimulcastLayer, TokenRequest, TokenRequestOptions, HMSPoll, HMSPollCreateParams, HMSPollQuestionAnswer, HMSPollQuestionCreateParams, };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HMSLocalTrack as SDKHMSLocalTrack } from '@100mslive/hms-video';
|
|
1
|
+
import { HMSLocalTrack as SDKHMSLocalTrack, HMSPoll } from '@100mslive/hms-video';
|
|
2
2
|
import { HMSPeer, HMSPeerID, HMSTrack, HMSTrackID } from '../../schema';
|
|
3
3
|
import { HMSPeerStats, HMSTrackStats } from '../sdkTypes';
|
|
4
4
|
/**
|
|
@@ -13,6 +13,7 @@ import { HMSPeerStats, HMSTrackStats } from '../sdkTypes';
|
|
|
13
13
|
*/
|
|
14
14
|
export declare const mergeNewPeersInDraft: (draftPeers: Record<HMSPeerID, HMSPeer>, newPeers: Record<HMSPeerID, Partial<HMSPeer>>) => void;
|
|
15
15
|
export declare const mergeNewTracksInDraft: (draftTracks: Record<HMSTrackID, HMSTrack>, newTracks: Record<HMSTrackID, Partial<HMSTrack>>) => void;
|
|
16
|
+
export declare const mergeNewPollsInDraft: (draftPolls: Record<string, HMSPoll>, newPolls: Record<string, Partial<HMSPoll>>) => void;
|
|
16
17
|
export declare const mergeNewIndividualStatsInDraft: <TID extends string, T extends HMSTrackStats | HMSPeerStats>(draftStats: Record<TID, T | undefined>, newStats: Record<TID, Partial<T | undefined>>) => void;
|
|
17
18
|
export declare const mergeLocalTrackStats: (draftStats: Record<HMSTrackID, HMSTrackStats[] | undefined>, newStats: Record<HMSTrackID, Record<string, HMSTrackStats>>, tracks: SDKHMSLocalTrack[]) => void;
|
|
18
19
|
/**
|
package/dist/core/index.d.ts
CHANGED
|
@@ -5,4 +5,4 @@ export type { IHMSNotifications as HMSNotifications } from './schema/notificatio
|
|
|
5
5
|
export * from './selectors';
|
|
6
6
|
export { HMSLogLevel, HMSAudioPluginType, HMSVideoPluginType, HMSVideoPluginCanvasContextType, parsedUserAgent, simulcastMapping, DeviceType, } from './hmsSDKStore/sdkTypes';
|
|
7
7
|
export * from './webrtc-stats';
|
|
8
|
-
export type { HMSConfig, HMSPreviewConfig, HMSConfigInitialSettings, HMSAudioTrackSettings, HMSVideoTrackSettings, RTMPRecordingConfig, HMSPeerStats, HMSTrackStats, HMSLocalTrackStats, HMSRemoteTrackStats, HLSConfig, HLSMeetingURLVariant, HMSScreenShareConfig, ScreenCaptureHandle, HMSPreferredSimulcastLayer, TokenRequest, TokenRequestOptions, RID, } from './hmsSDKStore/sdkTypes';
|
|
8
|
+
export type { HMSConfig, HMSPreviewConfig, HMSConfigInitialSettings, HMSAudioTrackSettings, HMSVideoTrackSettings, RTMPRecordingConfig, HMSPeerStats, HMSTrackStats, HMSLocalTrackStats, HMSRemoteTrackStats, HLSConfig, HLSMeetingURLVariant, HMSScreenShareConfig, ScreenCaptureHandle, HMSPreferredSimulcastLayer, TokenRequest, TokenRequestOptions, RID, HMSPoll, HMSPollCreateParams, HMSPollQuestionCreateParams, HMSPollQuestionAnswer, } from './hmsSDKStore/sdkTypes';
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { HMSPoll } from '@100mslive/hms-video';
|
|
1
2
|
import { HMSDeviceChangeEvent } from './device-change';
|
|
2
3
|
import { HMSException } from './error';
|
|
3
4
|
import { HMSMessage } from './message';
|
|
@@ -54,6 +55,10 @@ export interface HMSReconnectionNotification extends BaseNotification {
|
|
|
54
55
|
type: HMSNotificationTypes.RECONNECTED | HMSNotificationTypes.RECONNECTING;
|
|
55
56
|
data: null;
|
|
56
57
|
}
|
|
58
|
+
export interface HMSPollNotification extends BaseNotification {
|
|
59
|
+
type: HMSNotificationTypes.POLL_STARTED | HMSNotificationTypes.POLL_STOPPED | HMSNotificationTypes.POLL_VOTES_UPDATED;
|
|
60
|
+
data: HMSPoll;
|
|
61
|
+
}
|
|
57
62
|
export declare type HMSNotification = HMSPeerNotification | HMSPeerListNotification | HMSTrackNotification | HMSMessageNotification | HMSExceptionNotification | HMSChangeTrackStateRequestNotification | HMSChangeMultiTrackStateRequestNotification | HMSLeaveRoomRequestNotification | HMSDeviceChangeEventNotification | HMSReconnectionNotification | HMSPlaylistItemNotification<any>;
|
|
58
63
|
export declare enum HMSNotificationSeverity {
|
|
59
64
|
INFO = "info",
|
|
@@ -82,7 +87,12 @@ export declare enum HMSNotificationTypes {
|
|
|
82
87
|
DEVICE_CHANGE_UPDATE = "DEVICE_CHANGE_UPDATE",
|
|
83
88
|
PLAYLIST_TRACK_ENDED = "PLAYLIST_TRACK_ENDED",
|
|
84
89
|
NAME_UPDATED = "NAME_UPDATED",
|
|
85
|
-
METADATA_UPDATED = "METADATA_UPDATED"
|
|
90
|
+
METADATA_UPDATED = "METADATA_UPDATED",
|
|
91
|
+
POLL_CREATED = "POLL_CREATED",
|
|
92
|
+
POLL_STARTED = "POLL_STARTED",
|
|
93
|
+
POLL_STOPPED = "POLL_STOPPED",
|
|
94
|
+
POLL_VOTES_UPDATED = "POLL_VOTES_UPDATED",
|
|
95
|
+
POLL_LIST = "POLL_LIST"
|
|
86
96
|
}
|
|
87
97
|
export declare type HMSNotificationMapping<T extends HMSNotificationTypes, C = any> = {
|
|
88
98
|
[HMSNotificationTypes.PEER_JOINED]: HMSPeerNotification;
|
|
@@ -109,6 +119,11 @@ export declare type HMSNotificationMapping<T extends HMSNotificationTypes, C = a
|
|
|
109
119
|
[HMSNotificationTypes.CHANGE_MULTI_TRACK_STATE_REQUEST]: HMSChangeMultiTrackStateRequestNotification;
|
|
110
120
|
[HMSNotificationTypes.RECONNECTED]: HMSReconnectionNotification;
|
|
111
121
|
[HMSNotificationTypes.RECONNECTING]: HMSReconnectionNotification;
|
|
122
|
+
[HMSNotificationTypes.POLL_STARTED]: HMSPollNotification;
|
|
123
|
+
[HMSNotificationTypes.POLL_STOPPED]: HMSPollNotification;
|
|
124
|
+
[HMSNotificationTypes.POLL_VOTES_UPDATED]: HMSPollNotification;
|
|
125
|
+
[HMSNotificationTypes.POLL_LIST]: HMSPollNotification;
|
|
126
|
+
[HMSNotificationTypes.POLL_CREATED]: HMSPollNotification;
|
|
112
127
|
}[T];
|
|
113
128
|
declare type MappedNotifications<Type extends HMSNotificationTypes[]> = {
|
|
114
129
|
[index in keyof Type]: HMSNotificationMapping<Type[index]>;
|
|
@@ -6,7 +6,7 @@ import { HMSRoleChangeStoreRequest } from './requests';
|
|
|
6
6
|
import { HMSRole } from './role';
|
|
7
7
|
import { HMSRoom } from './room';
|
|
8
8
|
import { HMSMediaSettings } from './settings';
|
|
9
|
-
import { DeviceMap, HMSConnectionQuality, HMSPeerStats, HMSTrackStats } from '../hmsSDKStore/sdkTypes';
|
|
9
|
+
import { DeviceMap, HMSConnectionQuality, HMSPeerStats, HMSPoll, HMSTrackStats } from '../hmsSDKStore/sdkTypes';
|
|
10
10
|
export interface HMSGenericTypes {
|
|
11
11
|
sessionStore: Record<string, any>;
|
|
12
12
|
}
|
|
@@ -39,6 +39,7 @@ export interface HMSStore<T extends HMSGenericTypes = {
|
|
|
39
39
|
};
|
|
40
40
|
errors: HMSException[];
|
|
41
41
|
sessionStore: T['sessionStore'];
|
|
42
|
+
polls: Record<string, HMSPoll>;
|
|
42
43
|
}
|
|
43
44
|
export interface HMSStatsStore {
|
|
44
45
|
remoteTrackStats: Record<HMSTrackID, HMSTrackStats | undefined>;
|
|
@@ -306,3 +306,5 @@ export declare const selectRoomStartTime: import("reselect").OutputSelector<HMSS
|
|
|
306
306
|
export declare const selectTemplateAppData: (store: HMSStore) => Record<string, string>;
|
|
307
307
|
/** @deprecated - use `selectSessionStore` instead */
|
|
308
308
|
export declare const selectSessionMetadata: (store: HMSStore) => any;
|
|
309
|
+
export declare const selectPollsMap: (store: HMSStore) => Record<string, import("@100mslive/hms-video/dist/interfaces/session-store/polls").HMSPoll>;
|
|
310
|
+
export declare const selectPolls: (store: HMSStore) => import("@100mslive/hms-video/dist/interfaces/session-store/polls").HMSPoll[];
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { HMSAudioTrack, HMSGenericTypes, HMSPeer, HMSPeerID, HMSRoleName, HMSScreenVideoTrack, HMSStore, HMSTrack, HMSVideoTrack } from '../schema';
|
|
2
|
+
export declare const selectPollByIDBare: import("reselect").OutputParametricSelector<HMSStore<{
|
|
3
|
+
sessionStore: Record<string, any>;
|
|
4
|
+
}>, string | undefined, import("@100mslive/hms-video").HMSPoll | null, (res1: Record<string, import("@100mslive/hms-video").HMSPoll>, res2: string | undefined) => import("@100mslive/hms-video").HMSPoll | null>;
|
|
2
5
|
/**
|
|
3
6
|
* Select the {@link HMSPeer} object given a peer ID.
|
|
4
7
|
*/
|
|
@@ -243,3 +246,6 @@ export declare const selectPeerMetadata: (peerId: HMSPeerID) => import("reselect
|
|
|
243
246
|
export declare const selectPeerName: (peerId: HMSPeerID) => import("reselect").OutputSelector<HMSStore<{
|
|
244
247
|
sessionStore: Record<string, any>;
|
|
245
248
|
}>, string | undefined, (res: HMSPeer | null) => string | undefined>;
|
|
249
|
+
export declare const selectPollByID: (id?: string | undefined) => import("./common").StoreSelector<HMSStore<{
|
|
250
|
+
sessionStore: Record<string, any>;
|
|
251
|
+
}>, import("@100mslive/hms-video").HMSPoll | null>;
|
package/dist/index.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var qt=Object.create;var Z=Object.defineProperty,jt=Object.defineProperties,Gt=Object.getOwnPropertyDescriptor,Ft=Object.getOwnPropertyDescriptors,$t=Object.getOwnPropertyNames,st=Object.getOwnPropertySymbols,Wt=Object.getPrototypeOf,it=Object.prototype.hasOwnProperty,Qt=Object.prototype.propertyIsEnumerable;var ot=(s,e,t)=>e in s?Z(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,K=(s,e)=>{for(var t in e||(e={}))it.call(e,t)&&ot(s,t,e[t]);if(st)for(var t of st(e))Qt.call(e,t)&&ot(s,t,e[t]);return s},Y=(s,e)=>jt(s,Ft(e)),rt=s=>Z(s,"__esModule",{value:!0});var Jt=(s,e)=>()=>(e||s((e={exports:{}}).exports,e),e.exports),Yt=(s,e)=>{rt(s);for(var t in e)Z(s,t,{get:e[t],enumerable:!0})},zt=(s,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of $t(e))!it.call(s,i)&&i!=="default"&&Z(s,i,{get:()=>e[i],enumerable:!(t=Gt(e,i))||t.enumerable});return s},P=s=>zt(rt(Z(s!=null?qt(Wt(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=u=>{try{n(t.next(u))}catch(I){o(I)}},a=u=>{try{n(t.throw(u))}catch(I){o(I)}},n=u=>u.done?i(u.value):Promise.resolve(u.value).then(r,a);n((t=t.apply(s,e)).next())});var wt=Jt((Cn,xi)=>{xi.exports={version:"0.10.8",license:"MIT",main:"dist/index.cjs.js",module:"dist/index.js",typings:"dist/index.d.ts",files:["dist","src"],engines:{node:">=12"},exports:{".":{require:"./dist/index.cjs.js",import:"./dist/index.js",default:"./dist/index.js"}},scripts:{prestart:"rm -rf dist && yarn types:build",start:'concurrently "yarn dev" "yarn types"',dev:"node ../../scripts/dev","build:only":"node ../../scripts/build",build:"yarn build:only && yarn types:build",types:"tsc -w","types:build":"tsc -p tsconfig.json",format:"prettier --write src/**/*.ts",test:"jest --maxWorkers=1","test:watch":"jest --watch","test:coverage":"jest --coverage",lint:"eslint -c ../../.eslintrc .","lint:fix":"yarn lint --fix",prepare:"yarn build",size:"size-limit",analyze:"size-limit --why",docs:"rm -rf ./docs && typedoc && rm -f ./docs/README.md && mkdir ./docs/home &&mv ./docs/modules.md ./docs/home/content.md && node ../../scripts/docs-store && npx prettier --write './docs/**/*'"},name:"@100mslive/hms-video-store",author:"100ms",sideEffects:!1,dependencies:{"@100mslive/hms-video":"0.9.8",eventemitter2:"^6.4.7",immer:"^9.0.6",reselect:"4.0.0",zustand:"3.5.7"},devDependencies:{"ts-node":"^10.4.0",tslib:"^2.2.0"},description:"This is an addon to the core sdk provided by 100ms. It abstracts away the intricacies of data management and provides a flux based reactive data store where data flows in only one direction.",repository:{type:"git",url:"git+https://github.com/100mslive/hms-video-store.git"},keywords:["video","webrtc","conferencing","100ms"],bugs:{url:"https://github.com/100mslive/hms-video-store/issues"},homepage:"https://github.com/100mslive/hms-video-store#readme",gitHead:"beb1f3143aaef4bcf8ca42bc48a97c4825dd5784"}});Yt(exports,{DeviceType:()=>S.DeviceType,HMSAudioPluginType:()=>S.HMSAudioPluginType,HMSLogLevel:()=>S.HMSLogLevel,HMSMessageType:()=>ve,HMSNotificationSeverity:()=>R,HMSNotificationTypes:()=>H,HMSPlaylistType:()=>T,HMSReactiveStore:()=>w,HMSRoomState:()=>g,HMSStats:()=>pe,HMSVideoPluginCanvasContextType:()=>S.HMSVideoPluginCanvasContextType,HMSVideoPluginType:()=>S.HMSVideoPluginType,createDefaultStatsStore:()=>te,createDefaultStoreState:()=>ee,parsedUserAgent:()=>S.parsedUserAgent,selectAppData:()=>ws,selectAppDataByPath:()=>_s,selectAudioPlaylist:()=>we,selectAudioPlaylistTrackByPeerID:()=>zs,selectAudioTrackByID:()=>Ks,selectAudioTrackByPeerID:()=>yt,selectAudioTrackVolume:()=>je,selectAudioVolumeByPeerID:()=>ii,selectAuxiliaryAudioByPeerID:()=>Qs,selectAuxiliaryTracksByPeerID:()=>js,selectAvailableRoleNames:()=>ys,selectBroadcastMessages:()=>vt,selectBroadcastMessagesUnreadCount:()=>ci,selectCameraStreamByPeerID:()=>qs,selectConnectionQualities:()=>ss,selectConnectionQualityByPeerID:()=>Ws,selectDegradedTracks:()=>ms,selectDevices:()=>ts,selectDidIJoinWithin:()=>bi,selectDominantSpeaker:()=>Ss,selectErrors:()=>ct,selectFullAppData:()=>Te,selectHLSState:()=>vs,selectHMSMessages:()=>ae,selectHMSMessagesCount:()=>Hs,selectHMSStats:()=>Bt,selectIsAllowedToPreviewMedia:()=>yi,selectIsAllowedToPublish:()=>fi,selectIsAllowedToSubscribe:()=>ks,selectIsAudioLocallyMuted:()=>qe,selectIsConnectedToRoom:()=>q,selectIsInPreview:()=>gs,selectIsLocalAudioEnabled:()=>ls,selectIsLocalAudioPluginPresent:()=>Di,selectIsLocalScreenShared:()=>He,selectIsLocalVideoDisplayEnabled:()=>Ae,selectIsLocalVideoEnabled:()=>me,selectIsLocalVideoPluginPresent:()=>vi,selectIsLocallyMutedByPeerID:()=>ti,selectIsPeerAudioEnabled:()=>Zs,selectIsPeerVideoEnabled:()=>ei,selectIsRoleAllowedToPublish:()=>ki,selectIsScreenShareLocallyMutedByPeerID:()=>si,selectIsSomeoneScreenSharing:()=>ds,selectLocalAudioTrackID:()=>x,selectLocalMediaSettings:()=>Ee,selectLocalPeer:()=>b,selectLocalPeerID:()=>F,selectLocalPeerName:()=>rs,selectLocalPeerRole:()=>ne,selectLocalPeerRoleName:()=>as,selectLocalTrackIDs:()=>be,selectLocalVideoTrackID:()=>A,selectMessageIDsInOrder:()=>Ie,selectMessagesByPeerID:()=>Si,selectMessagesByRole:()=>li,selectMessagesMap:()=>De,selectMessagesUnreadCountByPeerID:()=>ui,selectMessagesUnreadCountByRole:()=>di,selectPeerAudioByID:()=>$s,selectPeerByCondition:()=>Ii,selectPeerByID:()=>L,selectPeerCount:()=>is,selectPeerMetadata:()=>Ti,selectPeerName:()=>mi,selectPeerNameByID:()=>Us,selectPeerScreenSharing:()=>lt,selectPeerSharingAudio:()=>us,selectPeerSharingAudioPlaylist:()=>Ts,selectPeerSharingVideoPlaylist:()=>Ms,selectPeers:()=>V,selectPeersByCondition:()=>Ei,selectPeersByRole:()=>pi,selectPeersByRoles:()=>Mi,selectPeersMap:()=>D,selectPeersScreenSharing:()=>ps,selectPeersWithAudioStatus:()=>Hi,selectPermissions:()=>Ne,selectPreviewRole:()=>Ce,selectPreviewRoleName:()=>dt,selectRTMPState:()=>Ps,selectRecentError:()=>Zt,selectRecordingState:()=>Rs,selectRemotePeers:()=>cs,selectRoleByRoleName:()=>Dt,selectRoleChangeRequest:()=>gi,selectRolesMap:()=>O,selectRoom:()=>v,selectRoomID:()=>es,selectRoomStartTime:()=>Is,selectRoomStarted:()=>fs,selectRoomState:()=>C,selectScreenAudioTrackByID:()=>Vs,selectScreenShareAudioByPeerID:()=>Be,selectScreenShareByPeerID:()=>Xs,selectScreenSharesByPeerId:()=>Ve,selectScreenVideoTrackByID:()=>Bs,selectScreenshareAudioVolumeByPeerID:()=>oi,selectSessionId:()=>Ds,selectSessionMetadata:()=>bs,selectSessionStore:()=>Os,selectSimulcastLayerByTrack:()=>ri,selectSpeakers:()=>St,selectTemplateAppData:()=>Es,selectTrackAudioByID:()=>Gs,selectTrackByID:()=>le,selectTracksMap:()=>f,selectUnreadHMSMessagesCount:()=>hs,selectVideoPlaylist:()=>Oe,selectVideoPlaylistAudioTrackByPeerID:()=>Ys,selectVideoPlaylistVideoTrackByPeerID:()=>Js,selectVideoTrackByID:()=>Ke,selectVideoTrackByPeerID:()=>ft,simulcastMapping:()=>S.simulcastMapping});var g;(function(n){n.Disconnected="Disconnected",n.Preview="Preview",n.Connecting="Connecting",n.Connected="Connected",n.Reconnecting="Reconnecting",n.Disconnecting="Disconnecting",n.Failed="Failed"})(g||(g={}));var ee=()=>({room:{id:"",isConnected:!1,name:"",peers:[],localPeer:"",roomState:g.Disconnected,recording:{browser:{running:!1},server:{running:!1},hls:{running:!1}},rtmp:{running:!1},hls:{running:!1,variants:[]},sessionId:""},peers:{},tracks:{},playlist:{audio:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1},video:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1}},messages:{byID:{},allIDs:[]},speakers:{},connectionQualities:{},settings:{audioInputDeviceId:"",audioOutputDeviceId:"",videoInputDeviceId:""},devices:{audioInput:[],audioOutput:[],videoInput:[]},roles:{},roleChangeRequests:[],errors:[],sessionStore:{},templateAppData:{}}),te=()=>({peerStats:{},remoteTrackStats:{},localTrackStats:{},localPeer:{id:""}});var ve;(function(e){e.CHAT="chat"})(ve||(ve={}));var R;(function(t){t.INFO="info",t.ERROR="error"})(R||(R={}));var H;(function(d){d.PEER_JOINED="PEER_JOINED",d.PEER_LEFT="PEER_LEFT",d.PEER_LIST="PEER_LIST",d.NEW_MESSAGE="NEW_MESSAGE",d.ERROR="ERROR",d.RECONNECTING="RECONNECTING",d.RECONNECTED="RECONNECTED",d.TRACK_ADDED="TRACK_ADDED",d.TRACK_REMOVED="TRACK_REMOVED",d.TRACK_MUTED="TRACK_MUTED",d.TRACK_UNMUTED="TRACK_UNMUTED",d.TRACK_DEGRADED="TRACK_DEGRADED",d.TRACK_RESTORED="TRACK_RESTORED",d.TRACK_DESCRIPTION_CHANGED="TRACK_DESCRIPTION_CHANGED",d.ROLE_UPDATED="ROLE_UPDATED",d.CHANGE_TRACK_STATE_REQUEST="CHANGE_TRACK_STATE_REQUEST",d.CHANGE_MULTI_TRACK_STATE_REQUEST="CHANGE_MULTI_TRACK_STATE_REQUEST",d.ROOM_ENDED="ROOM_ENDED",d.REMOVED_FROM_ROOM="REMOVED_FROM_ROOM",d.DEVICE_CHANGE_UPDATE="DEVICE_CHANGE_UPDATE",d.PLAYLIST_TRACK_ENDED="PLAYLIST_TRACK_ENDED",d.NAME_UPDATED="NAME_UPDATED",d.METADATA_UPDATED="METADATA_UPDATED"})(H||(H={}));var T;(function(t){t.audio="audio",t.video="video"})(T||(T={}));var p=P(require("reselect"));function J(s,e){let t,i;if(e)for(let o of e.auxiliaryTracks){let r=s[o];Xt(r)&&(i=se(r)?r:i,t=ie(r)?r:t)}return{video:t,audio:i}}function se(s){return s&&s.type==="audio"}function ie(s){return s&&s.type==="video"}function Xt(s){return s&&s.source==="screen"}function Me(s){return s&&s.source==="audioplaylist"}function oe(s){return s&&s.source==="videoplaylist"}function at(s){return s?Boolean(s==null?void 0:s.degraded):!1}function z(s,e){return e&&s.tracks[e]?s.tracks[e].enabled:!1}function nt(s,e){return e&&s.tracks[e]?s.tracks[e].displayEnabled:!1}function re(s){var o;let e=!1,t=!1,i=!1;return((o=s==null?void 0:s.publishParams)==null?void 0:o.allowed)&&(e=s.publishParams.allowed.includes("video"),t=s.publishParams.allowed.includes("audio"),i=s.publishParams.allowed.includes("screen")),{video:e,audio:t,screen:i}}var v=s=>s.room,ct=s=>s.errors,Zt=(0,p.createSelector)(ct,s=>s.length===0?null:s.at(-1)),es=(0,p.createSelector)(v,s=>s.id),D=s=>s.peers,De=s=>s.messages.byID,Ie=s=>s.messages.allIDs,f=s=>s.tracks,Ee=s=>s.settings,Te=s=>s.appData,ts=s=>s.devices,St=s=>s.speakers,ss=s=>s.connectionQualities,q=(0,p.createSelector)([v],s=>s&&s.isConnected),is=(0,p.createSelector)([q,v],(s,e)=>s?e.peerCount!==void 0?e.peerCount||1:e.peers.length:Math.max(e.peerCount!==void 0?e.peerCount:e.peers.length-1,0)),V=(0,p.createSelector)([v,D],(s,e)=>s.peers.map(t=>e[t])),os=(0,p.createSelector)(f,s=>Object.values(s)),b=(0,p.createSelector)(v,D,(s,e)=>e[s.localPeer]),F=(0,p.createSelector)(v,s=>s.localPeer),rs=(0,p.createSelector)(b,s=>s==null?void 0:s.name),as=(0,p.createSelector)(b,s=>s==null?void 0:s.roleName),x=(0,p.createSelector)(b,s=>s==null?void 0:s.audioTrack),A=(0,p.createSelector)(b,s=>s==null?void 0:s.videoTrack),ns=(0,p.createSelector)(b,s=>s==null?void 0:s.auxiliaryTracks),be=(0,p.createSelector)([x,A,ns],(s,e,t)=>{let i=t?[...t]:[];return s&&i.unshift(s),e&&i.unshift(e),i}),cs=(0,p.createSelector)(V,s=>s.filter(e=>!e.isLocal)),Ss=(0,p.createSelector)(D,St,(s,e)=>{let t=Object.entries(e).sort((i,o)=>{var n,u;let r=((n=i[1])==null?void 0:n.audioLevel)||0;return(((u=o[1])==null?void 0:u.audioLevel)||0)>r?1:-1});if(t.length>0&&t[0][1].audioLevel&&t[0][1].audioLevel>0){let i=t[0][1].peerID;if(i in s)return s[i]}return null}),ls=s=>{let e=b(s);return z(s,e==null?void 0:e.audioTrack)},me=s=>{let e=b(s);return z(s,e==null?void 0:e.videoTrack)},Ae=s=>{let e=b(s);return nt(s,e==null?void 0:e.videoTrack)},He=(0,p.createSelector)(b,f,(s,e)=>{let{video:t,audio:i}=J(e,s);return!!(t||i)}),lt=(0,p.createSelector)(D,f,(s,e)=>{let t;for(let i in s){let o=s[i],{video:r,audio:a}=J(e,o);if(r)return o;a&&!t&&(t=o)}return t}),ds=(0,p.createSelector)(lt,s=>!!s),us=(0,p.createSelector)(D,f,(s,e)=>{for(let t in s){let i=s[t],{audio:o,video:r}=J(e,i);if(!r&&!!o)return i}}),ps=(0,p.createSelector)(D,f,(s,e)=>{let t=[],i=[];for(let o in s){let r=s[o],{video:a,audio:n}=J(e,r);a?t.push(r):n&&i.push(r)}return t.concat(i)}),Ms=(0,p.createSelector)(D,f,(s,e)=>{for(let t in e){let i=e[t];if(oe(i)&&ie(i)&&i.peerId)return s[i.peerId]}}),Ts=(0,p.createSelector)(D,f,(s,e)=>{for(let t in e){let i=e[t];if(Me(i)&&i.peerId)return s[i.peerId]}}),ms=(0,p.createSelector)(os,s=>s.filter(at)),Hs=(0,p.createSelector)(Ie,s=>s.length),hs=(0,p.createSelector)(De,s=>Object.values(s).filter(e=>!e.read).length),ae=(0,p.createSelector)(Ie,De,(s,e)=>{let t=[];return s.forEach(i=>{t.push(e[i])}),t}),C=(0,p.createSelector)([v],s=>s&&s.roomState),gs=(0,p.createSelector)(C,s=>s===g.Preview),fs=(0,p.createSelector)(v,s=>s.roomState!==g.Disconnected),O=s=>s.roles,ys=(0,p.createSelector)([O],s=>Object.keys(s)),ne=(0,p.createSelector)([b,O],(s,e)=>(s==null?void 0:s.roleName)?e[s.roleName]:null),dt=s=>{var e;return(e=s.preview)==null?void 0:e.asRole},Ce=(0,p.createSelector)([dt,O],(s,e)=>s?e[s]:null),ks=(0,p.createSelector)([ne],s=>{var e;return((e=s==null?void 0:s.subscribeParams)==null?void 0:e.subscribeToRoles)?s.subscribeParams.subscribeToRoles.length>0:!1}),Ne=(0,p.createSelector)(ne,s=>s==null?void 0:s.permissions),Rs=(0,p.createSelector)(v,s=>s.recording),Ps=(0,p.createSelector)(v,s=>s.rtmp),vs=(0,p.createSelector)(v,s=>s.hls),Ds=(0,p.createSelector)(v,s=>s.sessionId),Is=(0,p.createSelector)(v,s=>s.startedAt),Es=s=>s.templateAppData,bs=s=>s.sessionMetadata;var xe=P(require("reselect"));var ut=(s=T.audio)=>e=>e.playlist[s].list,Le=(s=T.audio)=>e=>e.playlist[s].selection,pt=(s=T.audio)=>e=>e.playlist[s].progress,Mt=(s=T.audio)=>e=>e.playlist[s].currentTime,Tt=(s=T.audio)=>e=>e.playlist[s].playbackRate,mt=(s=T.audio)=>e=>e.playlist[s].volume,Ht=(s=T.audio)=>(0,xe.createSelector)(ut(s),e=>Object.values(e)),ht=(s=T.audio)=>(0,xe.createSelector)(ut(s),Le(s),(e,t)=>{if(!!t.id)return e[t.id]}),we={selection:Le(T.audio),progress:pt(T.audio),currentTime:Mt(T.audio),playbackRate:Tt(T.audio),volume:mt(T.audio),list:Ht(T.audio),selectedItem:ht(T.audio)},Oe={selection:Le(T.video),progress:pt(T.video),currentTime:Mt(T.video),playbackRate:Tt(T.video),volume:mt(T.video),list:Ht(T.video),selectedItem:ht(T.video)};var h=P(require("reselect"));function M(s){return e=>t=>s(t,e)}var S=P(require("@100mslive/hms-video"));var ce="HMS-Store:",l=class{static v(e,...t){this.log(S.HMSLogLevel.VERBOSE,e,...t)}static d(...e){this.log(S.HMSLogLevel.DEBUG,...e)}static i(...e){this.log(S.HMSLogLevel.INFO,...e)}static w(...e){this.log(S.HMSLogLevel.WARN,...e)}static e(...e){this.log(S.HMSLogLevel.ERROR,...e)}static time(e){this.log(S.HMSLogLevel.TIME,"[HMSPerformanceTiming]",e)}static timeEnd(e){this.log(S.HMSLogLevel.TIMEEND,"[HMSPerformanceTiming]",e,e)}static cleanUp(){performance.clearMarks(),performance.clearMeasures()}static log(e,...t){if(!(this.level.valueOf()>e.valueOf()))switch(e){case S.HMSLogLevel.VERBOSE:{console.log(ce,...t);break}case S.HMSLogLevel.DEBUG:{console.debug(ce,...t);break}case S.HMSLogLevel.INFO:{console.info(ce,...t);break}case S.HMSLogLevel.WARN:{console.warn(ce,...t);break}case S.HMSLogLevel.ERROR:{console.error(ce,...t);break}case S.HMSLogLevel.TIME:{performance.mark(t[1]);break}case S.HMSLogLevel.TIMEEND:{let i=t[0],o=t[1];try{let r=performance.measure(o,o);this.log(S.HMSLogLevel.DEBUG,i,o,r==null?void 0:r.duration),performance.clearMarks(o),performance.clearMeasures(o)}catch(r){this.log(S.HMSLogLevel.DEBUG,i,o,r)}break}}}};l.level=S.HMSLogLevel.VERBOSE;var _e=(s,e)=>e,Se=(s,e)=>e,gt=(s,e)=>e,As=(s,e)=>e,N=(0,h.createSelector)([D,_e],(s,e)=>e?s[e]:null),Ue=(0,h.createSelector)([f,Se],(s,e)=>e?s[e]:null),Cs=(0,h.createSelector)([f,Se],(s,e)=>{if(!e)return null;let t=s[e];return(t==null?void 0:t.type)==="video"?t:null}),Ns=(0,h.createSelector)([f,Se],(s,e)=>{if(!e)return null;let t=s[e];return(t==null?void 0:t.type)==="audio"?t:null}),xs=(0,h.createSelector)([f,Se],(s,e)=>{if(!e)return null;let t=s[e];return(t==null?void 0:t.type)==="audio"&&(t==null?void 0:t.source)==="screen"?t:null}),Ls=(0,h.createSelector)([f,Se],(s,e)=>{if(!e)return null;let t=s[e];return(t==null?void 0:t.type)==="video"&&(t==null?void 0:t.source)==="screen"?t:null}),L=M(N),ws=M((0,h.createSelector)([Te,As],(s,e)=>{if(!!s)return e?s[e]:s}));function Os(s){return e=>{if(!!e.sessionStore)return s?e.sessionStore[s]:e.sessionStore}}var _s=(...s)=>(0,h.createSelector)([Te],e=>{if(!!e){if(s&&s.length>0){let t=e;for(let i of s){if(!i)return t;t=t==null?void 0:t[i]}return t}return e}}),Us=M((0,h.createSelector)(N,s=>s==null?void 0:s.name)),le=M(Ue),Ke=M(Cs),Ks=M(Ns),Vs=M(xs),Bs=M(Ls),ft=M((s,e)=>{let t=N(s,e);if(t&&t.videoTrack&&t.videoTrack!=="")return s.tracks[t.videoTrack]}),yt=M((s,e)=>{let t=N(s,e);if(t&&t.audioTrack&&t.audioTrack!=="")return s.tracks[t.audioTrack]}),qs=ft,js=M((s,e)=>{let t=N(s,e);return(t==null?void 0:t.auxiliaryTracks.map(i=>s.tracks[i]))||[]}),kt=(s,e)=>e?s.speakers[e]:null,Gs=M((0,h.createSelector)(kt,s=>(s==null?void 0:s.audioLevel)||0)),Fs=(s,e)=>{let t=yt(e)(s);return kt(s,t==null?void 0:t.id)},$s=M((0,h.createSelector)(Fs,s=>(s==null?void 0:s.audioLevel)||0)),Ws=M((s,e)=>{if(e)return s.connectionQualities[e]}),Qs=M((s,e)=>{let t=N(s,e);if(t){let i=t==null?void 0:t.auxiliaryTracks.find(o=>se(s.tracks[o]));return i?s.tracks[i]:void 0}}),Js=M((0,h.createSelector)(f,N,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(i=>{let o=s[i];return oe(o)&&ie(o)});return t?s[t]:void 0})),Ys=M((0,h.createSelector)(f,N,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(i=>{let o=s[i];return oe(o)&&se(o)});return t?s[t]:void 0})),zs=M((0,h.createSelector)(f,N,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(i=>{let o=s[i];return Me(o)&&se(o)});return t?s[t]:void 0})),Ve=M((0,h.createSelector)(f,N,(s,e)=>J(s,e))),Xs=s=>(0,h.createSelector)(Ve(s),e=>e.video),Be=s=>(0,h.createSelector)(Ve(s),e=>e.audio),Zs=M((s,e)=>{let t=N(s,e);return z(s,t==null?void 0:t.audioTrack)}),ei=M((s,e)=>{let t=N(s,e);return z(s,t==null?void 0:t.videoTrack)}),qe=M((s,e)=>{if(e&&s.tracks[e])return s.tracks[e].volume===0}),ti=M((s,e)=>{let t=N(s,e);return qe(t==null?void 0:t.audioTrack)(s)}),si=M((s,e)=>{let t=Be(e)(s);return qe(t==null?void 0:t.id)(s)}),je=M((s,e)=>{let t=Ue(s,e);if(t){if(t.type!=="audio"){l.w("Please pass audio track here");return}return t.volume}}),ii=M((s,e)=>{let t=N(s,e);return je(t==null?void 0:t.audioTrack)(s)}),oi=M((s,e)=>{let t=Be(e)(s);return je(t==null?void 0:t.id)(s)}),ri=M((s,e)=>{let t=Ue(s,e);if(t){if(t.type!=="video"){l.w("Please pass video track here");return}return t.layer}}),Rt=(0,h.createSelector)([ae,F,_e],(s,e,t)=>{if(!!t)return s.filter(i=>{var o;return!i.recipientPeer&&!((o=i.recipientRoles)==null?void 0:o.length)||i.sender&&![e,t].includes(i.sender)?!1:[e,t].includes(i.recipientPeer)})}),Pt=(0,h.createSelector)([ae,gt],(s,e)=>{if(!!e)return s.filter(t=>{var i,o;return((i=t.recipientRoles)==null?void 0:i.length)?(o=t.recipientRoles)==null?void 0:o.includes(e):!1})}),vt=(0,h.createSelector)(ae,s=>s.filter(e=>{var t;return!e.recipientPeer&&!((t=e.recipientRoles)==null?void 0:t.length)})),ai=(0,h.createSelector)([Pt,gt],s=>s?s.filter(e=>!e.read).length:0),ni=(0,h.createSelector)([Rt,_e],s=>s?s.filter(e=>!e.read).length:0),ci=(0,h.createSelector)(vt,s=>s.filter(e=>!e.read).length),Si=M(Rt),li=M(Pt),di=M(ai),ui=M(ni),pi=s=>(0,h.createSelector)([V],e=>e.filter(t=>t.roleName===s)),Mi=s=>(0,h.createSelector)([V],e=>e.filter(t=>t.roleName?s.includes(t.roleName):!1)),Ti=s=>(0,h.createSelector)(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),{}}}),mi=s=>(0,h.createSelector)(L(s),e=>e==null?void 0:e.name);var de=P(require("reselect"));var Hi=(0,de.createSelector)([D,f],(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}})),hi=s=>s.roleChangeRequests[0]||null,gi=(0,de.createSelector)([hi,D,O],(s,e,t)=>s?{requestedBy:s.requestedBy?e[s.requestedBy]:void 0,role:t[s.roleName],token:s.token}:null),fi=(0,de.createSelector)([ne],s=>re(s)),yi=(0,de.createSelector)([Ce],s=>re(s));var B=P(require("reselect"));var Dt=s=>(0,B.createSelector)([O],e=>e[s]),ki=s=>(0,B.createSelector)(Dt(s),e=>re(e)),Ri=(0,B.createSelector)([A,f],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),Pi=(0,B.createSelector)([x,f],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),vi=s=>(0,B.createSelector)([Ri],e=>e.includes(s)),Di=s=>(0,B.createSelector)([Pi],e=>e.includes(s)),Ii=s=>(0,B.createSelector)(V,e=>e.find(s)),Ei=s=>(0,B.createSelector)(V,e=>e.filter(s)),bi=s=>(0,B.createSelector)(v,e=>e.joinedAt&&Date.now()-e.joinedAt.getTime()<=s);var It=(s,e)=>{let t=he(Object.keys(s),Object.keys(e));for(let i of t){let o=s[i],r=e[i];X(o,r)?(_(o.auxiliaryTracks,r.auxiliaryTracks)&&(r.auxiliaryTracks=o.auxiliaryTracks),Object.assign(o,r)):$e(o,r)?delete s[i]:We(o,r)&&(s[i]=r)}},Et=(s,e)=>{let t=he(Object.keys(s),Object.keys(e));for(let i of t){let o=s[i],r=e[i];X(o,r)?(Fe(o,r),Object.assign(o,r)):$e(o,r)?delete s[i]:We(o,r)&&(s[i]=r)}},Ge=(s,e)=>{let t=he(Object.keys(s),Object.keys(e));for(let i of t){let o=s[i],r=e[i];X(o,r)?Object.assign(o,r):$e(o,r)?delete s[i]:We(o,r)&&(s[i]=r)}},bt=(s,e,t)=>{let i=t.reduce((r,a)=>(r[a.firstTrackId]=Object.values(e[a.getTrackIDBeingSent()]||{}).sort((n,u)=>!n.rid||!u.rid?0:n.rid<u.rid?-1:1),r),{}),o=he(Object.keys(s),Object.keys(i));for(let r of o){if(!i[r]){delete s[r];continue}s[r]=i[r]}},Fe=(s,e)=>{s.plugins&&_(s.plugins,e.plugins)&&(e.plugins=s.plugins),s.type==="video"&&s.layerDefinitions&&_(s.layerDefinitions,e.layerDefinitions)&&(e.layerDefinitions=s.layerDefinitions)},X=(s,e)=>s&&e,$e=(s,e)=>s&&!e,We=(s,e)=>!s&&e,_=(s,e)=>{if(s===e||s.length===0&&(e==null?void 0:e.length)===0)return!0;if(!s||!e||s.length!==e.length)return!1;for(let t=0;t<s.length;t++)if(s[t]!==e[t])return!1;return!0},he=(s,e)=>{let t=new Set;for(let i of s)t.add(i);for(let i of e)t.add(i);return Array.from(t)};var At=(s,e,t)=>{let i;t.getState(C)===g.Connected&&(i=Ct(s,e,t)),t.subscribe(o=>{[g.Connected,g.Reconnecting].includes(o)?i||(i=Ct(s,e,t)):[g.Disconnected,g.Failed].includes(o)&&i&&(Ni(e,o),i(),i=void 0)},C)},Ct=(s,e,t)=>{var r,a;let i=Ai(t,e);(r=s.getWebrtcInternals())==null||r.start();let o=(a=s.getWebrtcInternals())==null?void 0:a.onStatsChange(n=>Ci(e,n,t,s));return()=>{i(),o&&o()}},Ai=(s,e)=>{let t,i,o;return s.getState(F)?e.namedSetState(r=>{r.localPeer.id=s.getState(F)},"localpeer-id"):t=s.subscribe(r=>{r&&e.namedSetState(a=>{a.localPeer.id=r},"localpeer-id")},F),s.getState(A)?e.namedSetState(r=>{r.localPeer.videoTrack=s.getState(A)},"localpeer-videotrack-id"):i=s.subscribe(r=>{r&&e.namedSetState(a=>{a.localPeer.videoTrack=r},"localpeer-videotrack-id")},A),s.getState(x)?e.namedSetState(r=>{r.localPeer.audioTrack=s.getState(x)},"localpeer-audiotrack-id"):o=s.subscribe(r=>{r&&e.namedSetState(a=>{a.localPeer.audioTrack=r},"localpeer-audiotrack-id")},x),()=>{t==null||t(),i==null||i(),o==null||o()}},Ci=(s,e,t,i)=>{let o=t.getState(f);s.namedSetState(r=>{let a=t.getState(F),n={},u=Object.keys(o).filter($=>o[$].peerId!==a);for(let $ of u){let W=e.getRemoteTrackStats($);W&&(n[$]=W)}Ge(r.remoteTrackStats,n);let I={[a]:e.getLocalPeerStats()};Ge(r.peerStats,I),bt(r.localTrackStats,e.getLocalTrackStats(),i.store.getLocalPeerTracks())},"webrtc-stats")},Ni=(s,e="resetState")=>{s.namedSetState(t=>{Object.assign(t,te())},e)};var Nt=P(require("@100mslive/hms-video")),ge=s=>Nt.isBrowser?`${s} ${document.title}`:s;var Ot=P(require("immer")),_t=P(require("zustand/shallow")),Ut=P(require("zustand/vanilla")),Re=P(require("@100mslive/hms-video"));var xt=P(require("eventemitter2"));var fe={[S.HMSPeerUpdate.PEER_JOINED]:H.PEER_JOINED,[S.HMSPeerUpdate.PEER_LEFT]:H.PEER_LEFT,[S.HMSPeerUpdate.ROLE_UPDATED]:H.ROLE_UPDATED,[S.HMSPeerUpdate.NAME_UPDATED]:H.NAME_UPDATED,[S.HMSPeerUpdate.METADATA_UPDATED]:H.METADATA_UPDATED},ue={[S.HMSTrackUpdate.TRACK_ADDED]:H.TRACK_ADDED,[S.HMSTrackUpdate.TRACK_REMOVED]:H.TRACK_REMOVED,[S.HMSTrackUpdate.TRACK_MUTED]:H.TRACK_MUTED,[S.HMSTrackUpdate.TRACK_UNMUTED]:H.TRACK_UNMUTED,[S.HMSTrackUpdate.TRACK_DEGRADED]:H.TRACK_DEGRADED,[S.HMSTrackUpdate.TRACK_RESTORED]:H.TRACK_RESTORED,[S.HMSTrackUpdate.TRACK_DESCRIPTION_CHANGED]:H.TRACK_DESCRIPTION_CHANGED};var Qe="hmsNotification",Je=class{constructor(e){this.id=0;this.onNotification=(e,t)=>{let i=o=>{if(t){let r;if(Array.isArray(t)?r=t.includes(o.type):r=t===o.type,!r)return}e(o)};return this.eventEmitter.addListener(Qe,i),()=>{this.eventEmitter.removeListener(Qe,i)}};this.store=e,this.eventEmitter=new xt.EventEmitter2({maxListeners:Object.keys(H).length})}sendPlaylistTrackEnded(e){let t=this.createNotification(H.PLAYLIST_TRACK_ENDED,e,R.INFO);this.emitEvent(t)}sendDeviceChange(e){var i;let t=this.createNotification(H.DEVICE_CHANGE_UPDATE,e,e.error?R.ERROR:R.INFO,`Selected ${e.type} device - ${(i=e.selection)==null?void 0:i.label}`);this.emitEvent(t)}sendLeaveRoom(e){var o;let t=(o=e.requestedBy)==null?void 0:o.name,i=this.createNotification(e.roomEnded||!t?H.ROOM_ENDED:H.REMOVED_FROM_ROOM,e,R.INFO,`${e.roomEnded?"Room ended":"Removed from room"} ${t?`by ${t}`:""}`);this.emitEvent(i)}sendPeerList(e){let t=this.createNotification(H.PEER_LIST,e,R.INFO);this.emitEvent(t)}sendPeerUpdate(e,t){let i=this.store.getState(L(t==null?void 0:t.id))||t,o=fe[e];if(o){let r=this.createNotification(o,i,R.INFO);this.emitEvent(r)}}sendTrackUpdate(e,t){let i=this.store.getState(le(t)),o=ue[e];if(o){let r=this.createNotification(o,i,R.INFO);this.emitEvent(r)}}sendMessageReceived(e){let t=this.createNotification(H.NEW_MESSAGE,e,R.INFO);this.emitEvent(t)}sendError(e){let t=this.createNotification(H.ERROR,e,R.ERROR);this.emitEvent(t)}sendReconnecting(e){let t=this.createNotification(H.RECONNECTING,e,R.ERROR);this.emitEvent(t)}sendReconnected(){let e=this.createNotification(H.RECONNECTED,null,R.INFO);this.emitEvent(e)}sendChangeTrackStateRequest(e){let t=this.createNotification(H.CHANGE_TRACK_STATE_REQUEST,e,R.INFO);this.emitEvent(t)}sendChangeMultiTrackStateRequest(e){let t=this.createNotification(H.CHANGE_MULTI_TRACK_STATE_REQUEST,e,R.INFO);this.emitEvent(t)}emitEvent(e){this.eventEmitter.emit(Qe,e)}createNotification(e,t,i,o=""){return this.id++,{id:this.id,type:e,message:o,data:t,severity:i}}};var j=P(require("@100mslive/hms-video"));var ye=P(require("@100mslive/hms-video"));function Lt(s){return s instanceof ye.HMSRemoteAudioTrack||s instanceof ye.HMSRemoteVideoTrack}var E=P(require("@100mslive/hms-video"));var m=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,metadata:e.metadata,joinedAt:e.joinedAt}}static convertTrack(e,t){let i={id:e.trackId,source:e.source,type:e.type,enabled:e.enabled,displayEnabled:e.enabled,peerId:e.peerId||t};return this.enrichTrack(i,e),i}static enrichTrack(e,t){let i=t.getMediaTrackSettings();t instanceof E.HMSRemoteAudioTrack&&(e.volume=t.getVolume()||0),m.updateDeviceID(e,t),m.enrichLocalTrack(e,t),e.type==="video"&&(e.source==="screen"?(e.displaySurface=i.displaySurface,m.enrichScreenTrack(e,t)):e.source==="regular"&&(e.facingMode=i.facingMode),e.height=i.height,e.width=i.width,m.enrichVideoTrack(e,t)),m.enrichPluginsDetails(e,t)}static enrichLocalTrack(e,t){(t instanceof E.HMSLocalVideoTrack||t instanceof E.HMSLocalAudioTrack)&&(e.isPublished=t.isPublished)}static updateDeviceID(e,t){var i;t instanceof E.HMSLocalVideoTrack||t instanceof E.HMSLocalAudioTrack?e.deviceID=t.settings.deviceId:e.deviceID=(i=t.getMediaTrackSettings())==null?void 0:i.deviceId}static enrichVideoTrack(e,t){t instanceof E.HMSRemoteVideoTrack&&(e.layer=t.getLayer(),e.preferredLayer=t.getPreferredLayer(),e.degraded=t.degraded),(t instanceof E.HMSRemoteVideoTrack||t instanceof E.HMSLocalVideoTrack)&&(_(t.getSimulcastDefinitions(),e.layerDefinitions)||(e.layerDefinitions=t.getSimulcastDefinitions()))}static enrichScreenTrack(e,t){var i,o;if(t instanceof E.HMSLocalVideoTrack){let r=(i=t.getCaptureHandle)==null?void 0:i.call(t);(r==null?void 0:r.handle)!==((o=e.captureHandle)==null?void 0:o.handle)&&(e.captureHandle=r),t.isCurrentTab&&(e.displaySurface="selfBrowser")}}static enrichPluginsDetails(e,t){(t instanceof E.HMSLocalVideoTrack||t instanceof E.HMSLocalAudioTrack)&&(_(t.getPlugins(),e.plugins)||(e.plugins=t.getPlugins()))}static convertRoom(e,t){let{recording:i,rtmp:o,hls:r}=m.convertRecordingStreamingState(e==null?void 0:e.recording,e==null?void 0:e.rtmp,e==null?void 0:e.hls);return{id:e.id,name:e.name,localPeer:t,recording:i,rtmp:o,hls:r,sessionId:e.sessionId,startedAt:e.startedAt,joinedAt:e.joinedAt,peerCount:e.peerCount}}static convertMessage(e){var t,i,o,r,a,n,u;return{sender:(t=e.sender)==null?void 0:t.peerId,senderName:(i=e.sender)==null?void 0:i.name,senderRole:(r=(o=e.sender)==null?void 0:o.role)==null?void 0:r.name,senderUserId:(a=e.sender)==null?void 0:a.customerUserId,recipientPeer:(n=e.recipientPeer)==null?void 0:n.peerId,recipientRoles:(u=e.recipientRoles)==null?void 0:u.map(I=>I.name),time:e.time,type:e.type,message:e.message,id:e.id}}static convertRoles(e){let t={};return e&&e.forEach(i=>{t[i.name]=i}),t}static convertRoleChangeRequest(e){var t;return{requestedBy:(t=e.requestedBy)==null?void 0:t.peerId,roleName:e.role.name,token:e.token}}static convertException(e){return{code:e.code,action:e.action,name:e.name,message:e.message,description:e.description,isTerminal:e.isTerminal,nativeError:e.nativeError,timestamp:new Date}}static convertDeviceChangeUpdate(e){let t={devices:e.devices,selection:e.selection,type:e.type};return e.error&&(t.error=this.convertException(e.error)),t}static convertPlaylist(e){let t=this.getConvertedPlaylistType(e,T.audio),i=this.getConvertedPlaylistType(e,T.video);return{audio:t,video:i}}static convertPlaylistItem(e,t){let i=t.type,o=e.getCurrentSelection(i),r=e.isPlaying(i),a=t.url===(o==null?void 0:o.url);return Y(K({},t),{type:t.type,selected:a,playing:a&&r})}static getConvertedPlaylistType(e,t){let i={},o=e.getCurrentSelection(t),r=e.getCurrentProgress(t),a=e.getVolume(t),n=e.getList(t),u=e.getCurrentIndex(t);return e.getList(t).forEach(I=>{i[I.id]=m.convertPlaylistItem(e,I)}),{list:i,selection:{id:o==null?void 0:o.id,hasPrevious:u>0,hasNext:u<n.length-1},progress:r,volume:a,currentTime:e.getCurrentTime(t),playbackRate:e.getPlaybackRate(t)}}static convertRecordingStreamingState(e,t,i){var o;return{recording:{browser:K({running:!1},e==null?void 0:e.browser),server:K({running:!1},e==null?void 0:e.server),hls:K({running:!1},e==null?void 0:e.hls)},rtmp:K({running:!1},t),hls:{variants:((o=i==null?void 0:i.variants)==null?void 0:o.map(r=>r))||[],running:!!(i==null?void 0:i.running),error:i==null?void 0:i.error}}}};var ke=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){l.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===T.audio?we:Oe,t=this.store.getState(e.selection);if(!t.id){l.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`)}removeItem(e){return c(this,null,function*(){let t=yield this.playlistManager.removeItem(e,this.type);return t&&this.syncPlaylistState(`remove${this.type}PlaylistItem`),t})}clearList(){return c(this,null,function*(){yield this.playlistManager.clearList(this.type),this.syncPlaylistState(`clear${this.type}Playlist`)})}};var Ye=class{constructor(e,t){this.sdk=e;this.setLocally=t}get sdkSessionStore(){return this.sdk.getSessionStore()}set(e,t){return c(this,null,function*(){let{value:i}=yield this.sdkSessionStore.set(String(e),t);this.setLocally({key:e,value:i})})}observe(e){return c(this,null,function*(){let t=Array.isArray(e)?e.map(i=>String(i)):[String(e)];yield this.sdkSessionStore.observe(t)})}unobserve(e){return c(this,null,function*(){let t=Array.isArray(e)?e.map(i=>String(i)):[String(e)];yield this.sdkSessionStore.unobserve(t)})}};var ze=class{constructor(e,t){this.intervalMs=100,this.shouldMonitor=!1,this.hasStarted=!1,this.unsubs=[],this.analysers={},this.store=e,this.actions=t}start(){return c(this,null,function*(){if(this.hasStarted)return;this.hasStarted=!0,l.d("starting audio level monitor for remote peers",this.store);let e=this.store.getState(q);l.d("starting audio levels is connected to room",e),e&&(yield this.monitorAudioLevels());let t=this.store.subscribe(this.monitorAudioLevels.bind(this),q);this.unsubs.push(t)})}stop(){return c(this,null,function*(){!this.hasStarted||(this.hasStarted=!1,this.shouldMonitor=!1,this.unsubs.forEach(e=>e()),l.d("stopped audio level monitor for remote peers"))})}monitorAudioLevels(){return c(this,null,function*(){if(!this.store.getState(q)){this.shouldMonitor&&(l.i("room no longer connected, stopping audio level monitoring for remote"),this.shouldMonitor=!1);return}if(this.shouldMonitor)return;l.i("monitoring audio levels"),this.shouldMonitor=!0;let t=()=>{this.shouldMonitor?(this.logAllPeersAudioLevels(),setTimeout(t,this.intervalMs)):l.i("stopped monitoring audio levels")};setTimeout(t,1e3)})}logAllPeersAudioLevels(){return c(this,null,function*(){var o;if(!window.__triggerBeamEvent__)return;let t=this.store.getState(V).filter(r=>!!r.audioTrack),i=[];for(let r of t){let a=this.actions.hmsSDKTracks[r.audioTrack],n=(o=a==null?void 0:a.stream)==null?void 0:o.nativeStream;if(!!r.joinedAt&&n){let u=yield this.getAudioLevel(r,n);u.level>0&&i.push(u)}}if(i.length>0){let r={event:"app-audio-level",data:i};window.__triggerBeamEvent__(JSON.stringify(r))}})}getAudioLevel(e,t){return c(this,null,function*(){this.analysers[t.id]||(this.analysers[t.id]=this.createAnalyserNode(t));let i=this.analysers[t.id],o=this.calculateAudioLevel(i);return{peerId:e.id,peerName:e.name,level:o}})}createAnalyserNode(e){this.audioContext||(this.audioContext=new AudioContext);let t=this.audioContext.createAnalyser();return this.audioContext.createMediaStreamSource(e).connect(t),t}calculateAudioLevel(e){let t=new Uint8Array(e.fftSize);e.getByteTimeDomainData(t);let i=.009,o=i;for(let n of t)o=Math.max(o,(n-128)/128);let r=(Math.log(i)-Math.log(o))/Math.log(i);return Math.ceil(Math.min(Math.max(r*100,0),100))}};var Xe=class{constructor(e,t,i){this.hmsSDKTracks={};this.isRoomJoinCalled=!1;this.ignoredMessageTypes=[];this.setProgress=({type:e,progress:t})=>{this.setState(i=>{i.playlist[e].progress=t,i.playlist[e].currentTime=this.sdk.getPlaylistManager().getCurrentTime(e)},"playlistProgress")};this.syncPlaylistState=e=>{this.setState(t=>{Object.assign(t.playlist,m.convertPlaylist(this.sdk.getPlaylistManager()))},e)};this.sendPeerUpdateNotification=(e,t)=>{let i=this.store.getState(L(t.peerId)),o=fe[e]||"peerUpdate";if([S.HMSPeerUpdate.PEER_JOINED,S.HMSPeerUpdate.PEER_LEFT].includes(e))this.syncRoomState(o),i||(i=this.store.getState(L(t.peerId)));else{let r=m.convertPeer(t);this.setState(a=>{let n=a.peers[r.id];X(n,r)&&(_(n.auxiliaryTracks,r.auxiliaryTracks)&&(n.auxiliaryTracks=r.auxiliaryTracks),Object.assign(n,r)),i=r},o)}this.hmsNotifications.sendPeerUpdate(e,i)};this.getSDKHMSPeer=e=>this.sdk.getPeerMap()[e];this.setState=(e,t)=>this.store.namedSetState(e,t);this.store=e,this.sdk=t,this.hmsNotifications=i,this.sessionStore=new Ye(this.sdk,this.setSessionStoreValueLocally.bind(this))}refreshDevices(){return c(this,null,function*(){yield this.sdk.refreshDevices()})}unblockAudio(){return c(this,null,function*(){yield this.sdk.getAudioOutput().unblockAutoplay()})}setVolume(e,t){return c(this,null,function*(){t?yield this.setTrackVolume(e,t):(yield this.sdk.getAudioOutput().setVolume(e),this.syncRoomState("setOutputVolume"))})}setAudioOutputDevice(e){return c(this,null,function*(){(yield this.sdk.getAudioOutput().setDevice(e))&&this.setState(i=>{i.settings.audioOutputDeviceId=e},"setAudioOutputDevice")})}setPreferredLayer(e,t){return c(this,null,function*(){var o;let i=this.hmsSDKTracks[e];if(i)if(i instanceof j.HMSRemoteVideoTrack){if(t===j.HMSSimulcastLayer.NONE){l.d(`layer ${j.HMSSimulcastLayer.NONE} will be ignored`);return}if(((o=this.store.getState(Ke(e)))==null?void 0:o.preferredLayer)===t){l.d(`preferred layer is already ${t}`);return}this.setState(a=>{let n=a.tracks[e];n&&(n.preferredLayer=t)},"setPreferredLayer"),yield i.setPreferredLayer(t)}else l.d(`track ${e} is not a remote video track`);else this.logPossibleInconsistency(`track ${e} not present, unable to set preffer layer`)})}getAuthTokenByRoomCode(e,t){return this.sdk.getAuthTokenByRoomCode(e,t)}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(C);if(t===g.Preview||t===g.Connecting){this.logPossibleInconsistency("attempting to call preview while room is in preview/connecting");return}try{this.setState(i=>{i.room.roomState=g.Connecting},"connecting"),yield this.sdkPreviewWithListeners(e)}catch(i){throw l.e("Cannot show preview. Failed to connect to room - ",i),i}})}join(e){return c(this,null,function*(){if(this.isRoomJoinCalled){this.logPossibleInconsistency("room join is called again");return}try{this.isRoomJoinCalled=!0,this.setState(t=>{t.room.roomState=g.Connecting},"join"),yield this.sdkJoinWithListeners(e)}catch(t){throw this.isRoomJoinCalled=!1,l.e("Failed to connect to room - ",t),t}})}leave(){return c(this,null,function*(){let e=this.store.getState(q),t=!0;e||(t=!1,this.logPossibleInconsistency("room leave is called when no room is connected"));let i=this.store.getState(C);return this.setState(o=>{o.room.roomState=g.Disconnecting},"leaving"),this.sdk.leave(t).then(()=>{this.resetState("leave"),this.beamSpeakerLabelsLogger&&this.beamSpeakerLabelsLogger.stop().catch(l.e),l.i("left room")}).catch(o=>{l.e("error in leaving room - ",o),this.setState(r=>{r.room.roomState=i},"revertLeave")})})}setScreenShareEnabled(e,t){return c(this,null,function*(){typeof t=="boolean"&&(t={audioOnly:t});try{e?yield this.startScreenShare(t):yield this.stopScreenShare()}catch(i){throw this.hmsNotifications.sendError(m.convertException(i)),i}})}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(x);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 r;if(((r=this.store.getState().tracks[e])==null?void 0:r.enabled)===t){this.logPossibleInconsistency(`local track[${e}] enabled state - ${t}`);return}this.setState(a=>{a.tracks[e]?a.tracks[e].displayEnabled=t:this.logPossibleInconsistency("track id not found for setEnabled")},"displayEnabled");try{yield this.setEnabledSDKTrack(e,t),this.syncRoomState("setEnabled")}catch(a){throw this.setState(n=>{n.tracks[e].displayEnabled=!t},"rollbackDisplayEnabled"),this.hmsNotifications.sendError(m.convertException(a)),a}let o=t?S.HMSTrackUpdate.TRACK_UNMUTED:S.HMSTrackUpdate.TRACK_MUTED;this.hmsNotifications.sendTrackUpdate(o,e)})}setAudioSettings(e){return c(this,null,function*(){let t=this.store.getState(x);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"))})}switchCamera(){return c(this,null,function*(){let e=this.store.getState(A);if(e){let t=this.hmsSDKTracks[e];t&&(yield t.switchCamera(),this.syncRoomState("switchCamera"))}})}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(O),r=t.map(n=>o[n]),a=yield this.sdk.sendGroupMessage(e,r,i);this.updateMessageInStore(a,{message:e,recipientRoles:t,type:i})})}sendDirectMessage(e,t,i){return c(this,null,function*(){let o=this.getSDKHMSPeer(t);if(!o)throw l.w("sendMessage","Failed to send message"),Error(`sendMessage Failed - peer ${t} not found`);let r=yield this.sdk.sendDirectMessage(e,o,i);this.updateMessageInStore(r,{message:e,recipientPeer:o.peerId,type:i})})}updateMessageInStore(e,t){if(!e)throw l.w("sendMessage","Failed to send message",t),Error(`sendMessage Failed - ${JSON.stringify(t)}`);let i=m.convertMessage(e);return i.read=!0,i.senderName="You",i.ignored=this.ignoredMessageTypes.includes(i.type),this.putMessageInStore(i),i}setMessageRead(e,t){this.setState(i=>{t?i.messages.byID[t]?i.messages.byID[t].read=e:this.logPossibleInconsistency("no message with id is found"):i.messages.allIDs.forEach(o=>{i.messages.byID[o].read=e})},"setMessageRead")}attachVideo(e,t){return c(this,null,function*(){if(this.localAndVideoUnmuting(e))return new Promise(i=>{let o=this.store.subscribe(r=>c(this,null,function*(){r&&(yield this.attachVideoInternal(e,t),o(),i())}),me)});yield this.attachVideoInternal(e,t)})}detachVideo(e,t){return c(this,null,function*(){let i=this.hmsSDKTracks[e];(i==null?void 0:i.type)==="video"?yield this.sdk.detachVideo(i,t):(t&&(t.srcObject=null),l.d("possible inconsistency detected - no video track found to remove sink"))})}addPluginToVideoTrack(e,t){return c(this,null,function*(){return this.addRemoveVideoPlugin(e,"add",t)})}addPluginToAudioTrack(e){return c(this,null,function*(){return this.addRemoveAudioPlugin(e,"add")})}validateVideoPluginSupport(e){let t={};if(t.isSupported=!1,!e)return l.w("no plugin passed in for checking support"),t.errMsg="no plugin passed in for checking support",t;let i=this.store.getState(A);if(!i)return l.w("video Track not added to local peer yet"),t.errMsg="call this function only after local peer has video track",t;let o=this.hmsSDKTracks[i];return o?t=o.validatePlugin(e):(l.w(`track ${i} not present, unable to validate plugin`),t.errMsg=`track ${i} not present, unable to validate plugin`),t}validateAudioPluginSupport(e){let t={};if(t.isSupported=!1,!e)return l.w('no plugin passed in for checking support"'),t.errMsg='no plugin passed in for checking support"',t;let i=this.store.getState(x);if(!i)return l.w("audio track not added to local peer yet"),t.errMsg="call this function only after local peer has audio track",t;let o=this.hmsSDKTracks[i];return o?t=o.validatePlugin(e):(l.w(`track ${i} not present, unable to validate plugin`),t.errMsg=`track ${i} not present, unable to validate plugin`),t}removePluginFromVideoTrack(e){return c(this,null,function*(){return this.addRemoveVideoPlugin(e,"remove")})}removePluginFromAudioTrack(e){return c(this,null,function*(){return this.addRemoveAudioPlugin(e,"remove")})}changeRole(e,t,i=!1){return c(this,null,function*(){let o=this.getSDKHMSPeer(e);if(!o){this.logPossibleInconsistency(`Unknown peer ID given ${e} for changerole`);return}yield this.sdk.changeRoleOfPeer(o,t,i)})}changeRoleOfPeer(e,t,i=!1){return c(this,null,function*(){let o=this.getSDKHMSPeer(e);if(!o){this.logPossibleInconsistency(`Unknown peer ID given ${e} for changerole`);return}yield this.sdk.changeRoleOfPeer(o,t,i)})}changeRoleOfPeersWithRoles(e,t){return c(this,null,function*(){let i=this.sdk.getRoles().filter(o=>e.includes(o.name));yield this.sdk.changeRoleOfPeersWithRoles(i,t)})}acceptChangeRole(e){return c(this,null,function*(){let t=e.requestedBy?this.getSDKHMSPeer(e.requestedBy.id):void 0;t||l.w(`peer for which role change is requested no longer available - ${e.requestedBy}`);let i={requestedBy:t,role:e.role,token:e.token};yield this.sdk.acceptChangeRole(i),this.removeRoleChangeRequest(e)})}initAppData(e){this.setState(t=>{t.appData=e},"initAppData")}setAppData(e,t,i){let o=(t==null?void 0:t.constructor.name)==="Object";this.setState(r=>{if(r.appData)i&&o?Object.assign(r.appData[e],t):r.appData[e]=t;else{let a={[e]:t};r.appData=a}},`setAppData-${e}`)}rejectChangeRole(e){this.removeRoleChangeRequest(e)}endRoom(e,t){return c(this,null,function*(){let i=this.store.getState(Ne);if(!(i==null?void 0:i.endRoom)){l.w("You are not allowed to perform this action - endRoom");return}let o=this.store.getState(C);this.setState(r=>{r.room.roomState=g.Disconnecting},"endingRoom");try{yield this.sdk.endRoom(e,t),this.resetState("endRoom")}catch(r){l.e("error in ending room - ",r),this.setState(a=>{a.room.roomState=o},"revertEndRoom")}})}removePeer(e,t){return c(this,null,function*(){let i=this.getSDKHMSPeer(e);if(i&&!i.isLocal)yield this.sdk.removePeer(i,t);else{this.logPossibleInconsistency(`No remote peer found for peerID - ${e}`);return}})}startRTMPOrRecording(e){return c(this,null,function*(){yield this.sdk.startRTMPOrRecording(e)})}stopRTMPAndRecording(){return c(this,null,function*(){yield this.sdk.stopRTMPAndRecording()})}startHLSStreaming(e){return c(this,null,function*(){yield this.sdk.startHLSStreaming(e)})}stopHLSStreaming(e){return c(this,null,function*(){yield this.sdk.stopHLSStreaming(e)})}sendHLSTimedMetadata(e){return c(this,null,function*(){yield this.sdk.sendHLSTimedMetadata(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)})}setSessionMetadata(e){return c(this,null,function*(){yield this.sdk.setSessionMetadata(e),this.setState(t=>{t.sessionMetadata=e},"setSessionMetadata"),this.setSessionStoreValueLocally({key:"default",value:e},"setSessionMetadata")})}populateSessionMetadata(){return c(this,null,function*(){let e=yield this.sdk.getSessionMetadata();this.setState(t=>{t.sessionMetadata=e},"populateSessionMetadata"),this.setSessionStoreValueLocally({key:"default",value:e},"populateSessionmetadata")})}setRemoteTrackEnabled(e,t){return c(this,null,function*(){if(typeof e=="string"){let i=this.hmsSDKTracks[e];i&&Lt(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(O);t.roles=e.roles.map(o=>i[o])}yield this.sdk.changeMultiTrackState(t)})}setLogLevel(e){l.level=e,this.sdk.setLogLevel(e)}setFrameworkInfo(e){this.sdk.setFrameworkInfo(e)}ignoreMessageTypes(e,t=!1){if(t)this.ignoredMessageTypes=e;else for(let i of e)this.ignoredMessageTypes.includes(i)||this.ignoredMessageTypes.push(i)}enableBeamSpeakerLabelsLogging(){return c(this,null,function*(){this.beamSpeakerLabelsLogger||(l.i("enabling beam speaker labels logging"),this.beamSpeakerLabelsLogger=new ze(this.store,this),yield this.beamSpeakerLabelsLogger.start())})}resetState(e="resetState"){this.isRoomJoinCalled=!1,this.hmsSDKTracks={},l.cleanUp(),this.setState(t=>{Object.assign(t,ee())},e)}sdkJoinWithListeners(e){return c(this,null,function*(){yield this.sdk.join(e,{onJoin:this.onJoin.bind(this),onRoomUpdate:this.onRoomUpdate.bind(this),onPeerUpdate:this.onPeerUpdate.bind(this),onTrackUpdate:this.onTrackUpdate.bind(this),onMessageReceived:this.onMessageReceived.bind(this),onError:this.onError.bind(this),onReconnected:this.onReconnected.bind(this),onReconnecting:this.onReconnecting.bind(this),onRoleChangeRequest:this.onRoleChangeRequest.bind(this),onRoleUpdate:this.onRoleUpdate.bind(this),onDeviceChange:this.onDeviceChange.bind(this),onChangeTrackStateRequest:this.onChangeTrackStateRequest.bind(this),onChangeMultiTrackStateRequest:this.onChangeMultiTrackStateRequest.bind(this),onRemovedFromRoom:this.onRemovedFromRoom.bind(this),onNetworkQuality:this.onNetworkQuality.bind(this),onSessionStoreUpdate:this.onSessionStoreUpdate.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)}),this.sdk.addConnectionQualityListener({onConnectionQualityUpdate:this.onConnectionQualityUpdate.bind(this)})})}onRemovedFromRoom(e){var o;let t=this.store.getState(L((o=e.requestedBy)==null?void 0:o.peerId));this.hmsNotifications.sendLeaveRoom(Y(K({},e),{requestedBy:t||void 0}));let i=e.roomEnded||!t?"roomEnded":"removedFromRoom";l.i(`resetting state after peer removed ${i}`,e),this.resetState(i)}onDeviceChange(e){let t=e.devices;if(!t)return;let i=this.store.getState(b);if(this.setState(o=>{_(o.devices.audioInput,t.audioInput)||(o.devices.audioInput=t.audioInput),_(o.devices.videoInput,t.videoInput)||(o.devices.videoInput=t.videoInput),_(o.devices.audioOutput,t.audioOutput)||(o.devices.audioOutput=t.audioOutput);let r=this.sdk.getLocalPeer();(i==null?void 0:i.id)&&r&&Object.assign(o.settings,this.getMediaSettings(r))},"deviceChange"),e.selection){let o=m.convertDeviceChangeUpdate(e);this.hmsNotifications.sendDeviceChange(o)}}sdkPreviewWithListeners(e){return c(this,null,function*(){yield this.sdk.preview(e,{onPreview:this.onPreview.bind(this),onError:this.onError.bind(this),onReconnected:this.onReconnected.bind(this),onReconnecting:this.onReconnecting.bind(this),onDeviceChange:this.onDeviceChange.bind(this),onRoomUpdate:this.onRoomUpdate.bind(this),onPeerUpdate:this.onPeerUpdate.bind(this),onNetworkQuality:this.onNetworkQuality.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})})}onNetworkQuality(e){this.setState(t=>{var o;let i=t.room.localPeer||((o=this.sdk.getLocalPeer())==null?void 0:o.peerId);i&&(t.connectionQualities[i]={peerID:i,downlinkQuality:e})},"ConnectionQuality")}onSessionStoreUpdate(e){this.setSessionStoreValueLocally(e,"sessionStoreUpdate")}startScreenShare(e){return c(this,null,function*(){this.store.getState(He)?this.logPossibleInconsistency("start screenshare is called while it's on"):(yield this.sdk.startScreenShare(()=>this.syncRoomState("screenshareStopped"),e),this.syncRoomState("startScreenShare"))})}stopScreenShare(){return c(this,null,function*(){this.store.getState(He)?(yield this.sdk.stopScreenShare(),this.syncRoomState("stopScreenShare")):this.logPossibleInconsistency("stop screenshare is called while it's not on")})}attachVideoInternal(e,t){return c(this,null,function*(){let i=this.hmsSDKTracks[e];i&&i.type==="video"?yield this.sdk.attachVideo(i,t):this.logPossibleInconsistency("no video track found to add sink")})}syncRoomState(e){e=`${e}_fullSync`,l.time(`store-sync-${e}`);let t={},i=[],o={},r={},a={},n,u=this.sdk.getPeers();for(let y of u){let Q=m.convertPeer(y);t[Q.id]=Q,i.push(Q.id);let Pe=[y.audioTrack,y.videoTrack,...y.auxiliaryTracks];for(let U of Pe){if(!U)continue;let tt=m.convertTrack(U);o[tt.id]=tt,r[U.trackId]=U}if(y.isLocal){let U=y;n=this.getPreviewFields(U),Object.assign(a,this.getMediaSettings(U))}}let I=this.sdk.getRecordingState(),$=this.sdk.getRTMPState(),W=this.sdk.getHLSState();this.setState(y=>{var U;y.room.peers=i;let Q=y.peers,Pe=y.tracks;It(Q,t),Et(Pe,o),Object.assign(y.settings,a),this.hmsSDKTracks=r,((U=y.preview)==null?void 0:U.localPeer)&&(n==null?void 0:n.localPeer)?Object.assign(y.preview,n):y.preview=n,Object.assign(y.roles,m.convertRoles(this.sdk.getRoles())),Object.assign(y.playlist,m.convertPlaylist(this.sdk.getPlaylistManager())),Object.assign(y.room,m.convertRecordingStreamingState(I,$,W)),Object.assign(y.templateAppData,this.sdk.getTemplateAppData())},e),l.timeEnd(`store-sync-${e}`)}onPreview(e){this.setState(t=>{var i;Object.assign(t.room,m.convertRoom(e,(i=this.sdk.getLocalPeer())==null?void 0:i.peerId)),t.room.roomState=g.Preview},"previewStart"),this.syncRoomState("previewSync")}onJoin(e){let t=this.sdk.getPlaylistManager();this.audioPlaylist=new ke(t,T.audio,this.syncPlaylistState.bind(this),this.store),this.videoPlaylist=new ke(t,T.video,this.syncRoomState.bind(this),this.store),this.syncRoomState("joinSync"),this.setState(i=>{var o;Object.assign(i.room,m.convertRoom(e,(o=this.sdk.getLocalPeer())==null?void 0:o.peerId)),i.room.isConnected=!0,i.room.roomState=g.Connected},"joined"),t.onProgress(this.setProgress),t.onNewTrackStart(i=>{this.syncPlaylistState(`${i.type}PlaylistUpdate`)}),t.onPlaylistEnded(i=>{this.syncPlaylistState(`${i}PlaylistEnded`)}),t.onCurrentTrackEnded(i=>{this.hmsNotifications.sendPlaylistTrackEnded(m.convertPlaylistItem(t,i)),this.syncPlaylistState(`${i.type}PlaylistItemEnded`)})}onRoomUpdate(e,t){this.setState(i=>{var o;Object.assign(i.room,m.convertRoom(t,(o=this.sdk.getLocalPeer())==null?void 0:o.peerId))},e)}onPeerUpdate(e,t){if(![S.HMSPeerUpdate.BECAME_DOMINANT_SPEAKER,S.HMSPeerUpdate.RESIGNED_DOMINANT_SPEAKER].includes(e)){if(Array.isArray(t)){let i=this.store.getState(D),o=t.filter(a=>!i[a.peerId]);if(this.syncRoomState("peersJoined"),this.store.getState(q)){let a=[];for(let n of t){let u=this.store.getState(L(n.peerId));u&&a.push(u)}this.hmsNotifications.sendPeerList(a)}else o.forEach(a=>{let n=this.store.getState(L(a.peerId));n&&this.hmsNotifications.sendPeerUpdate(S.HMSPeerUpdate.PEER_JOINED,n)});return}this.sendPeerUpdateNotification(e,t)}}onTrackUpdate(e,t,i){if(e===S.HMSTrackUpdate.TRACK_REMOVED)this.hmsNotifications.sendTrackUpdate(e,t.trackId),this.handleTrackRemove(t,i);else if([S.HMSTrackUpdate.TRACK_ADDED,S.HMSTrackUpdate.TRACK_REMOVED].includes(e)){let o=ue[e];this.syncRoomState(o),this.hmsNotifications.sendTrackUpdate(e,t.trackId)}else{let o=ue[e]||"trackUpdate",r=m.convertTrack(t);this.setState(a=>{let n=a.tracks[r.id];X(n,r)&&(Fe(n,r),Object.assign(n,r))},o),this.hmsNotifications.sendTrackUpdate(e,t.trackId)}}onMessageReceived(e){let t=m.convertMessage(e);t.read=!1,t.ignored=this.ignoredMessageTypes.includes(t.type),this.putMessageInStore(t),this.hmsNotifications.sendMessageReceived(t)}putMessageInStore(e){e.ignored||this.setState(t=>{t.messages.byID[e.id]=e,t.messages.allIDs.push(e.id)},"newMessage")}onAudioLevelUpdate(e){this.setState(t=>{let i={};e.forEach(r=>{if(!r.track||!r.peer)return;let a=r.track.trackId;i[a]=r.audioLevel,t.speakers[a]||(t.speakers[a]={audioLevel:r.audioLevel,peerID:r.peer.peerId,trackID:a})});let o=Object.entries(t.speakers);for(let[r,a]of o)a.audioLevel=i[r]||0,a.audioLevel===0&&delete t.speakers[r]},"audioLevel")}onConnectionQualityUpdate(e){this.setState(t=>{let i=new Set;e.forEach(r=>{let a=r.peerID;!a||(i.add(a),t.connectionQualities[a]?Object.assign(t.connectionQualities[a],r):t.connectionQualities[a]=r)});let o=Object.keys(t.connectionQualities);for(let r of o)i.has(r)||delete t.connectionQualities[r]},"connectionQuality")}onChangeTrackStateRequest(e){var r;let t=this.store.getState(L((r=e.requestedBy)==null?void 0:r.peerId)),i=this.getStoreLocalTrackIDfromSDKTrack(e.track),o=this.store.getState(le(i));if(!o)return this.logPossibleInconsistency(`Not found track for which track state change was requested, ${e.track}`);e.enabled||this.syncRoomState("changeTrackStateRequest"),this.hmsNotifications.sendChangeTrackStateRequest({requestedBy:t||void 0,track:o,enabled:e.enabled})}onChangeMultiTrackStateRequest(e){var r;let t=this.store.getState(L((r=e.requestedBy)==null?void 0:r.peerId));e.enabled||this.syncRoomState("changeMultiTrackStateRequest");let i=[],o=this.store.getState(f);for(let a of e.tracks){let n=this.getStoreLocalTrackIDfromSDKTrack(a);n&&o[n]&&i.push(o[n])}this.hmsNotifications.sendChangeMultiTrackStateRequest({requestedBy:t||void 0,tracks:i,enabled:e.enabled,type:e.type,source:e.source})}onReconnected(){this.syncRoomState("reconnectedSync"),this.hmsNotifications.sendReconnected(),this.setState(e=>{e.room.roomState=e.room.isConnected?g.Connected:g.Preview},"reconnected")}onReconnecting(e){let t=m.convertException(e);l.e("Reconnection: received error from sdk",t),this.hmsNotifications.sendReconnecting(t),this.setState(i=>{i.room.roomState=g.Reconnecting,i.errors.push(t)},"reconnecting")}onError(e){let t=m.convertException(e);t.isTerminal?(this.leave().then(()=>l.e("error from SDK, left room.")),this.setState(i=>{i.room.roomState=g.Failed,i.errors.push(t)},"errorTerminal")):this.store.getState().errors.length<50&&this.setState(o=>{o.errors.push(t)},"error"),this.syncRoomState("errorSync"),this.hmsNotifications.sendError(t),l.e("received error from sdk",t instanceof j.HMSException?`${t}`:t)}handleTrackRemove(e,t){this.setState(i=>{let o=i.peers[t.peerId],r=i.tracks,a=e.trackId;if(this.isSameStoreSDKTrack(a,o==null?void 0:o.audioTrack))o==null||delete o.audioTrack;else if(this.isSameStoreSDKTrack(a,o==null?void 0:o.videoTrack))o==null||delete o.videoTrack;else{let n=o==null?void 0:o.auxiliaryTracks.indexOf(a);n>-1&&this.isSameStoreSDKTrack(a,o==null?void 0:o.auxiliaryTracks[n])&&(o==null||o.auxiliaryTracks.splice(n,1))}delete r[a],delete this.hmsSDKTracks[a]},"trackRemoved")}setEnabledSDKTrack(e,t){return 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(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}}getPreviewFields(e){var i,o;if(!e.isInPreview())return;let t=m.convertPeer(e);return{localPeer:t.id,audioTrack:t.audioTrack,videoTrack:t.videoTrack,asRole:((i=e.asRole)==null?void 0:i.name)||((o=e.role)==null?void 0:o.name)}}setTrackVolume(e,t){return c(this,null,function*(){let i=this.hmsSDKTracks[t];i?i instanceof j.HMSAudioTrack?(yield i.setVolume(e),this.setState(o=>{let r=o.tracks[t];r&&r.type==="audio"&&(r.volume=e)},"trackVolume")):l.w(`track ${t} is not an audio track`):this.logPossibleInconsistency(`track ${t} not present, unable to set volume`)})}localAndVideoUnmuting(e){let t=this.store.getState(b);if((t==null?void 0:t.videoTrack)!==e)return!1;let i=this.store.getState(Ae),o=this.store.getState(me);return i&&!o}logPossibleInconsistency(e){l.w("possible inconsistency detected - ",e)}addRemoveVideoPlugin(e,t,i){return c(this,null,function*(){if(!e){l.w("Invalid plugin received in store");return}let o=this.store.getState(A);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){l.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):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(m.convertRoleChangeRequest(e))},"roleChangeRequest")}removeRoleChangeRequest(e){this.setState(t=>{let i=t.roleChangeRequests.findIndex(o=>o.token===e.token);i!==-1&&t.roleChangeRequests.splice(i,1)},"removeRoleChangeRequest")}onRoleUpdate(){this.syncRoomState("roleUpdate")}getStoreLocalTrackIDfromSDKTrack(e){return this.store.getState(be).find(i=>this.hmsSDKTracks[i].trackId===e.trackId)}setSessionStoreValueLocally(e,t="setSessionStore"){let i=Array.isArray(e)?e:[e];this.setState(o=>{i.forEach(r=>{o.sessionStore[r.key]=r.value})},t)}};var w=class{constructor(e,t,i){this.getStats=()=>(this.stats||(this.stats=new pe(this.store,this.sdk)),this.stats);e?this.store=e:this.store=w.createNewHMSStore(ge("HMSStore"),ee),i?this.notifications=i:this.notifications=new Je(this.store),t?this.actions=t:(this.sdk=new Re.HMSSdk,this.actions=new Xe(this.store,this.sdk,this.notifications)),this.actions.setFrameworkInfo({type:"js",sdkVersion:wt().version}),this.initialTriggerOnSubscribe=!1,Re.isBrowser&&(window.__hms=this)}triggerOnSubscribe(){this.initialTriggerOnSubscribe||(w.makeStoreTriggerOnSubscribe(this.store),this.initialTriggerOnSubscribe=!0)}getStore(){return this.store}getHMSActions(){return this.actions}getActions(){return this.actions}getNotifications(){return{onNotification:this.notifications.onNotification}}static createNewHMSStore(e,t){let i=(0,Ut.default)(()=>t()),o=i.setState;i.setState=n=>{let u=typeof n=="function"?(0,Ot.produce)(n):n;o(u)};let r=i.getState;i.getState=n=>n?n(r()):r(),w.compareWithShallowCheckInSubscribe(i);let a=w.setUpDevtools(i,e);return Y(K({},i),{namedSetState:a})}static makeStoreTriggerOnSubscribe(e){let t=e.subscribe;e.subscribe=(i,o,r)=>(i(e.getState(o),void 0),t(i,o,r))}static compareWithShallowCheckInSubscribe(e){let t=e.subscribe;e.subscribe=(i,o,r)=>(o||(o=a=>a),r=r||_t.default,t(i,o,r))}static setUpDevtools(e,t){let i;try{i=window.__REDUX_DEVTOOLS_EXTENSION__||window.top.__REDUX_DEVTOOLS_EXTENSION__}catch(a){}if(!i)return a=>{e.setState(a)};let o=i.connect(w.devtoolsOptions(t));o.prefix=t?`${t} > `:"";let r=e.setState;return e.setState=a=>{r(a),o.send(`${o.prefix}setState`,e.getState())},o.subscribe(w.devtoolsSubscribe(o,e,r)),o.send("setUpStore",e.getState()),(a,n)=>{r(a);let u=n||`${o.prefix}action`;o.send(u,e.getState())}}static devtoolsOptions(e){return{name:e,actionsBlacklist:["audioLevel","playlistProgress","connectionQuality"]}}static devtoolsSubscribe(e,t,i){return o=>{var r,a,n,u;if(o.type==="DISPATCH"&&o.state)["JUMP_TO_ACTION","JUMP_TO_STATE"].includes(o.payload.type)?i(JSON.parse(o.state)):t.setState(JSON.parse(o.state));else if(o.type==="DISPATCH"&&((r=o.payload)==null?void 0:r.type)==="COMMIT")e.init(t.getState());else if(o.type==="DISPATCH"&&((a=o.payload)==null?void 0:a.type)==="IMPORT_STATE"){let I=(n=o.payload.nextLiftedState)==null?void 0:n.actionsById;(((u=o.payload.nextLiftedState)==null?void 0:u.computedStates)||[]).forEach(({state:W},y)=>{let Q=I[y]||`${e.prefix}setState`;y===0?e.init(W):(i(W),e.send(Q,t.getState()))})}}}};var pe=class{constructor(e,t){this.hmsStore=e;this.sdk=t;this.store=w.createNewHMSStore(ge("HMSStatsStore"),te),this.getState=this.store.getState,this.subscribe=this.store.subscribe,this.getPublishPeerConnection=()=>new Promise(i=>{var o,r;this.hmsStore.getState(C)==="Connected"?i((r=(o=this.sdk)==null?void 0:o.getWebrtcInternals())==null?void 0:r.getPublishPeerConnection()):this.hmsStore.subscribe(a=>{var n,u;a==="Connected"&&i((u=(n=this.sdk)==null?void 0:n.getWebrtcInternals())==null?void 0:u.getPublishPeerConnection())},C)}),this.getSubscribePeerConnection=()=>new Promise(i=>{var o,r;this.hmsStore.getState(C)==="Connected"?i((r=(o=this.sdk)==null?void 0:o.getWebrtcInternals())==null?void 0:r.getSubscribePeerConnection()):this.hmsStore.subscribe(a=>{var n,u;a==="Connected"&&i((u=(n=this.sdk)==null?void 0:n.getWebrtcInternals())==null?void 0:u.getSubscribePeerConnection())},C)}),!!this.sdk&&At(this.sdk,this.store,this.hmsStore)}};var k=P(require("reselect"));var Li=s=>s.localPeer.id,wi=s=>s.localPeer.audioTrack,Oi=s=>s.localPeer.videoTrack,_i=(s,e)=>e,Kt=(s,e)=>e,Ui=s=>s.remoteTrackStats,Vt=s=>s.peerStats,Ze=s=>s.localTrackStats,G=(0,k.createSelector)([Vt,Li],(s,e)=>s[e]),Ki=(0,k.createSelector)(G,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.packetsLost}),Vi=(0,k.createSelector)(G,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.jitter}),Bi=(0,k.createSelector)(G,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bitrate}),qi=(0,k.createSelector)(G,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bitrate}),ji=(0,k.createSelector)(G,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.availableOutgoingBitrate}),Gi=(0,k.createSelector)(G,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.availableIncomingBitrate}),Fi=(0,k.createSelector)(G,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bytesSent}),$i=(0,k.createSelector)(G,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bytesReceived}),Wi=(0,k.createSelector)([Vt,_i],(s,e)=>e?s[e]:void 0),Qi=(0,k.createSelector)([Ui,Kt],(s,e)=>e?s[e]:void 0),et=(0,k.createSelector)([Ze,Kt],(s,e)=>e?s[e]:void 0),Ji=M(Wi),Yi=M(Qi),zi=(0,k.createSelector)([Ze,wi],(s,e)=>{var t;return e?(t=s[e])==null?void 0:t[0]:void 0}),Xi=M((0,k.createSelector)(et,s=>s==null?void 0:s[0])),Zi=(0,k.createSelector)([Ze,Oi],(s,e)=>{var t;return e?(t=s[e])==null?void 0:t[0]:void 0}),eo=M((0,k.createSelector)(et,s=>s)),to=s=>M((0,k.createSelector)(et,e=>{let t=Object.keys(S.simulcastMapping).find(i=>S.simulcastMapping[i]===s);return s&&(e==null?void 0:e.find(i=>i.rid===t))||(e==null?void 0:e[0])})),Bt={localPeerStats:G,packetsLost:Ki,jitter:Vi,publishBitrate:Bi,subscribeBitrate:qi,availablePublishBitrate:ji,availableSubscribeBitrate:Gi,totalBytesSent:Fi,totalBytesReceived:$i,peerStatsByID:Ji,trackStatsByID:Yi,localAudioTrackStatsByID:Xi,localVideoTrackStatsByID:eo,localVideoTrackStatsByLayer:to,localAudioTrackStats:zi,localVideoTrackStats:Zi};
|
|
1
|
+
var Wt=Object.create;var Z=Object.defineProperty,Jt=Object.defineProperties,Yt=Object.getOwnPropertyDescriptor,zt=Object.getOwnPropertyDescriptors,Xt=Object.getOwnPropertyNames,at=Object.getOwnPropertySymbols,Zt=Object.getPrototypeOf,nt=Object.prototype.hasOwnProperty,es=Object.prototype.propertyIsEnumerable;var ct=(s,e,t)=>e in s?Z(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,E=(s,e)=>{for(var t in e||(e={}))nt.call(e,t)&&ct(s,t,e[t]);if(at)for(var t of at(e))es.call(e,t)&&ct(s,t,e[t]);return s},$=(s,e)=>Jt(s,zt(e)),lt=s=>Z(s,"__esModule",{value:!0});var ts=(s,e)=>()=>(e||s((e={exports:{}}).exports,e),e.exports),ss=(s,e)=>{lt(s);for(var t in e)Z(s,t,{get:e[t],enumerable:!0})},is=(s,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Xt(e))!nt.call(s,i)&&i!=="default"&&Z(s,i,{get:()=>e[i],enumerable:!(t=Yt(e,i))||t.enumerable});return s},v=s=>is(lt(Z(s!=null?Wt(Zt(s)):{},"default",s&&s.__esModule&&"default"in s?{get:()=>s.default,enumerable:!0}:{value:s,enumerable:!0})),s);var l=(s,e,t)=>new Promise((i,o)=>{var r=u=>{try{n(t.next(u))}catch(P){o(P)}},a=u=>{try{n(t.throw(u))}catch(P){o(P)}},n=u=>u.done?i(u.value):Promise.resolve(u.value).then(r,a);n((t=t.apply(s,e)).next())});var Bt=ts((Qn,Bi)=>{Bi.exports={version:"0.10.10-alpha.0",license:"MIT",main:"dist/index.cjs.js",module:"dist/index.js",typings:"dist/index.d.ts",files:["dist","src"],engines:{node:">=12"},exports:{".":{require:"./dist/index.cjs.js",import:"./dist/index.js",default:"./dist/index.js"}},scripts:{prestart:"rm -rf dist && yarn types:build",start:'concurrently "yarn dev" "yarn types"',dev:"node ../../scripts/dev","build:only":"node ../../scripts/build",build:"yarn build:only && yarn types:build",types:"tsc -w","types:build":"tsc -p tsconfig.json",format:"prettier --write src/**/*.ts",test:"jest --maxWorkers=1","test:watch":"jest --watch","test:coverage":"jest --coverage",lint:"eslint -c ../../.eslintrc .","lint:fix":"yarn lint --fix",prepare:"yarn build",size:"size-limit",analyze:"size-limit --why",docs:"rm -rf ./docs && typedoc && rm -f ./docs/README.md && mkdir ./docs/home &&mv ./docs/modules.md ./docs/home/content.md && node ../../scripts/docs-store && npx prettier --write './docs/**/*'"},name:"@100mslive/hms-video-store",author:"100ms",sideEffects:!1,dependencies:{"@100mslive/hms-video":"0.9.10-alpha.0",eventemitter2:"^6.4.7",immer:"^9.0.6",reselect:"4.0.0",zustand:"3.5.7"},devDependencies:{"ts-node":"^10.4.0",tslib:"^2.2.0"},description:"This is an addon to the core sdk provided by 100ms. It abstracts away the intricacies of data management and provides a flux based reactive data store where data flows in only one direction.",repository:{type:"git",url:"git+https://github.com/100mslive/hms-video-store.git"},keywords:["video","webrtc","conferencing","100ms"],bugs:{url:"https://github.com/100mslive/hms-video-store/issues"},homepage:"https://github.com/100mslive/hms-video-store#readme",gitHead:"58b4be0b49e2ba351bab98068b7983fa621a04e0"}});ss(exports,{DeviceType:()=>c.DeviceType,HMSAudioPluginType:()=>c.HMSAudioPluginType,HMSLogLevel:()=>c.HMSLogLevel,HMSMessageType:()=>Ie,HMSNotificationSeverity:()=>k,HMSNotificationTypes:()=>T,HMSPlaylistType:()=>m,HMSReactiveStore:()=>w,HMSRoomState:()=>g,HMSStats:()=>Me,HMSVideoPluginCanvasContextType:()=>c.HMSVideoPluginCanvasContextType,HMSVideoPluginType:()=>c.HMSVideoPluginType,createDefaultStatsStore:()=>te,createDefaultStoreState:()=>ee,parsedUserAgent:()=>c.parsedUserAgent,selectAppData:()=>js,selectAppDataByPath:()=>Fs,selectAudioPlaylist:()=>Ue,selectAudioPlaylistTrackByPeerID:()=>ri,selectAudioTrackByID:()=>$s,selectAudioTrackByPeerID:()=>Dt,selectAudioTrackVolume:()=>Qe,selectAudioVolumeByPeerID:()=>di,selectAuxiliaryAudioByPeerID:()=>si,selectAuxiliaryTracksByPeerID:()=>zs,selectAvailableRoleNames:()=>Is,selectBroadcastMessages:()=>At,selectBroadcastMessagesUnreadCount:()=>mi,selectCameraStreamByPeerID:()=>Ys,selectConnectionQualities:()=>cs,selectConnectionQualityByPeerID:()=>ti,selectDegradedTracks:()=>Ps,selectDevices:()=>ns,selectDidIJoinWithin:()=>wi,selectDominantSpeaker:()=>Ts,selectErrors:()=>ut,selectFullAppData:()=>me,selectHLSState:()=>Cs,selectHMSMessages:()=>ae,selectHMSMessagesCount:()=>ks,selectHMSStats:()=>$t,selectIsAllowedToPreviewMedia:()=>bi,selectIsAllowedToPublish:()=>Ei,selectIsAllowedToSubscribe:()=>Es,selectIsAudioLocallyMuted:()=>Fe,selectIsConnectedToRoom:()=>G,selectIsInPreview:()=>vs,selectIsLocalAudioEnabled:()=>ms,selectIsLocalAudioPluginPresent:()=>xi,selectIsLocalScreenShared:()=>he,selectIsLocalVideoDisplayEnabled:()=>Ne,selectIsLocalVideoEnabled:()=>He,selectIsLocalVideoPluginPresent:()=>Li,selectIsLocallyMutedByPeerID:()=>li,selectIsPeerAudioEnabled:()=>ni,selectIsPeerVideoEnabled:()=>ci,selectIsRoleAllowedToPublish:()=>Ai,selectIsScreenShareLocallyMutedByPeerID:()=>Si,selectIsSomeoneScreenSharing:()=>Hs,selectLocalAudioTrackID:()=>x,selectLocalMediaSettings:()=>Ae,selectLocalPeer:()=>A,selectLocalPeerID:()=>W,selectLocalPeerName:()=>ds,selectLocalPeerRole:()=>ne,selectLocalPeerRoleName:()=>us,selectLocalTrackIDs:()=>Ce,selectLocalVideoTrackID:()=>C,selectMessageIDsInOrder:()=>be,selectMessagesByPeerID:()=>Hi,selectMessagesByRole:()=>hi,selectMessagesMap:()=>Ee,selectMessagesUnreadCountByPeerID:()=>fi,selectMessagesUnreadCountByRole:()=>gi,selectPeerAudioByID:()=>ei,selectPeerByCondition:()=>Oi,selectPeerByID:()=>O,selectPeerCount:()=>ls,selectPeerMetadata:()=>ki,selectPeerName:()=>Ri,selectPeerNameByID:()=>Qs,selectPeerScreenSharing:()=>Mt,selectPeerSharingAudio:()=>hs,selectPeerSharingAudioPlaylist:()=>ys,selectPeerSharingVideoPlaylist:()=>fs,selectPeers:()=>q,selectPeersByCondition:()=>_i,selectPeersByRole:()=>yi,selectPeersByRoles:()=>Pi,selectPeersMap:()=>I,selectPeersScreenSharing:()=>gs,selectPeersWithAudioStatus:()=>vi,selectPermissions:()=>xe,selectPollByID:()=>$e,selectPollByIDBare:()=>Rt,selectPolls:()=>_s,selectPollsMap:()=>Oe,selectPreviewRole:()=>Le,selectPreviewRoleName:()=>Tt,selectRTMPState:()=>As,selectRecentError:()=>rs,selectRecordingState:()=>bs,selectRemotePeers:()=>Ms,selectRoleByRoleName:()=>Ct,selectRoleChangeRequest:()=>Ii,selectRolesMap:()=>U,selectRoom:()=>D,selectRoomID:()=>as,selectRoomStartTime:()=>Ls,selectRoomStarted:()=>Ds,selectRoomState:()=>N,selectScreenAudioTrackByID:()=>Ws,selectScreenShareAudioByPeerID:()=>Ge,selectScreenShareByPeerID:()=>ai,selectScreenSharesByPeerId:()=>je,selectScreenVideoTrackByID:()=>Js,selectScreenshareAudioVolumeByPeerID:()=>ui,selectSessionId:()=>Ns,selectSessionMetadata:()=>Os,selectSessionStore:()=>Gs,selectSimulcastLayerByTrack:()=>pi,selectSpeakers:()=>pt,selectTemplateAppData:()=>xs,selectTrackAudioByID:()=>Xs,selectTrackByID:()=>Se,selectTracksMap:()=>f,selectUnreadHMSMessagesCount:()=>Rs,selectVideoPlaylist:()=>Ke,selectVideoPlaylistAudioTrackByPeerID:()=>oi,selectVideoPlaylistVideoTrackByPeerID:()=>ii,selectVideoTrackByID:()=>qe,selectVideoTrackByPeerID:()=>vt,simulcastMapping:()=>c.simulcastMapping});var g;(function(n){n.Disconnected="Disconnected",n.Preview="Preview",n.Connecting="Connecting",n.Connected="Connected",n.Reconnecting="Reconnecting",n.Disconnecting="Disconnecting",n.Failed="Failed"})(g||(g={}));var ee=()=>({room:{id:"",isConnected:!1,name:"",peers:[],localPeer:"",roomState:g.Disconnected,recording:{browser:{running:!1},server:{running:!1},hls:{running:!1}},rtmp:{running:!1},hls:{running:!1,variants:[]},sessionId:""},peers:{},tracks:{},playlist:{audio:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1},video:{list:{},selection:{id:"",hasPrevious:!1,hasNext:!1},progress:0,volume:0,currentTime:0,playbackRate:1}},messages:{byID:{},allIDs:[]},speakers:{},connectionQualities:{},settings:{audioInputDeviceId:"",audioOutputDeviceId:"",videoInputDeviceId:""},devices:{audioInput:[],audioOutput:[],videoInput:[]},roles:{},roleChangeRequests:[],errors:[],sessionStore:{},templateAppData:{},polls:{}}),te=()=>({peerStats:{},remoteTrackStats:{},localTrackStats:{},localPeer:{id:""}});var Ie;(function(e){e.CHAT="chat"})(Ie||(Ie={}));var k;(function(t){t.INFO="info",t.ERROR="error"})(k||(k={}));var T;(function(S){S.PEER_JOINED="PEER_JOINED",S.PEER_LEFT="PEER_LEFT",S.PEER_LIST="PEER_LIST",S.NEW_MESSAGE="NEW_MESSAGE",S.ERROR="ERROR",S.RECONNECTING="RECONNECTING",S.RECONNECTED="RECONNECTED",S.TRACK_ADDED="TRACK_ADDED",S.TRACK_REMOVED="TRACK_REMOVED",S.TRACK_MUTED="TRACK_MUTED",S.TRACK_UNMUTED="TRACK_UNMUTED",S.TRACK_DEGRADED="TRACK_DEGRADED",S.TRACK_RESTORED="TRACK_RESTORED",S.TRACK_DESCRIPTION_CHANGED="TRACK_DESCRIPTION_CHANGED",S.ROLE_UPDATED="ROLE_UPDATED",S.CHANGE_TRACK_STATE_REQUEST="CHANGE_TRACK_STATE_REQUEST",S.CHANGE_MULTI_TRACK_STATE_REQUEST="CHANGE_MULTI_TRACK_STATE_REQUEST",S.ROOM_ENDED="ROOM_ENDED",S.REMOVED_FROM_ROOM="REMOVED_FROM_ROOM",S.DEVICE_CHANGE_UPDATE="DEVICE_CHANGE_UPDATE",S.PLAYLIST_TRACK_ENDED="PLAYLIST_TRACK_ENDED",S.NAME_UPDATED="NAME_UPDATED",S.METADATA_UPDATED="METADATA_UPDATED",S.POLL_CREATED="POLL_CREATED",S.POLL_STARTED="POLL_STARTED",S.POLL_STOPPED="POLL_STOPPED",S.POLL_VOTES_UPDATED="POLL_VOTES_UPDATED",S.POLL_LIST="POLL_LIST"})(T||(T={}));var m;(function(t){t.audio="audio",t.video="video"})(m||(m={}));var p=v(require("reselect"));function Y(s,e){let t,i;if(e)for(let o of e.auxiliaryTracks){let r=s[o];os(r)&&(i=se(r)?r:i,t=ie(r)?r:t)}return{video:t,audio:i}}function se(s){return s&&s.type==="audio"}function ie(s){return s&&s.type==="video"}function os(s){return s&&s.source==="screen"}function Te(s){return s&&s.source==="audioplaylist"}function oe(s){return s&&s.source==="videoplaylist"}function St(s){return s?Boolean(s==null?void 0:s.degraded):!1}function X(s,e){return e&&s.tracks[e]?s.tracks[e].enabled:!1}function dt(s,e){return e&&s.tracks[e]?s.tracks[e].displayEnabled:!1}function re(s){var o;let e=!1,t=!1,i=!1;return((o=s==null?void 0:s.publishParams)==null?void 0:o.allowed)&&(e=s.publishParams.allowed.includes("video"),t=s.publishParams.allowed.includes("audio"),i=s.publishParams.allowed.includes("screen")),{video:e,audio:t,screen:i}}var D=s=>s.room,ut=s=>s.errors,rs=(0,p.createSelector)(ut,s=>s.length===0?null:s.at(-1)),as=(0,p.createSelector)(D,s=>s.id),I=s=>s.peers,Ee=s=>s.messages.byID,be=s=>s.messages.allIDs,f=s=>s.tracks,Ae=s=>s.settings,me=s=>s.appData,ns=s=>s.devices,pt=s=>s.speakers,cs=s=>s.connectionQualities,G=(0,p.createSelector)([D],s=>s&&s.isConnected),ls=(0,p.createSelector)([G,D],(s,e)=>s?e.peerCount!==void 0?e.peerCount||1:e.peers.length:Math.max(e.peerCount!==void 0?e.peerCount:e.peers.length-1,0)),q=(0,p.createSelector)([D,I],(s,e)=>s.peers.map(t=>e[t])),Ss=(0,p.createSelector)(f,s=>Object.values(s)),A=(0,p.createSelector)(D,I,(s,e)=>e[s.localPeer]),W=(0,p.createSelector)(D,s=>s.localPeer),ds=(0,p.createSelector)(A,s=>s==null?void 0:s.name),us=(0,p.createSelector)(A,s=>s==null?void 0:s.roleName),x=(0,p.createSelector)(A,s=>s==null?void 0:s.audioTrack),C=(0,p.createSelector)(A,s=>s==null?void 0:s.videoTrack),ps=(0,p.createSelector)(A,s=>s==null?void 0:s.auxiliaryTracks),Ce=(0,p.createSelector)([x,C,ps],(s,e,t)=>{let i=t?[...t]:[];return s&&i.unshift(s),e&&i.unshift(e),i}),Ms=(0,p.createSelector)(q,s=>s.filter(e=>!e.isLocal)),Ts=(0,p.createSelector)(I,pt,(s,e)=>{let t=Object.entries(e).sort((i,o)=>{var n,u;let r=((n=i[1])==null?void 0:n.audioLevel)||0;return(((u=o[1])==null?void 0:u.audioLevel)||0)>r?1:-1});if(t.length>0&&t[0][1].audioLevel&&t[0][1].audioLevel>0){let i=t[0][1].peerID;if(i in s)return s[i]}return null}),ms=s=>{let e=A(s);return X(s,e==null?void 0:e.audioTrack)},He=s=>{let e=A(s);return X(s,e==null?void 0:e.videoTrack)},Ne=s=>{let e=A(s);return dt(s,e==null?void 0:e.videoTrack)},he=(0,p.createSelector)(A,f,(s,e)=>{let{video:t,audio:i}=Y(e,s);return!!(t||i)}),Mt=(0,p.createSelector)(I,f,(s,e)=>{let t;for(let i in s){let o=s[i],{video:r,audio:a}=Y(e,o);if(r)return o;a&&!t&&(t=o)}return t}),Hs=(0,p.createSelector)(Mt,s=>!!s),hs=(0,p.createSelector)(I,f,(s,e)=>{for(let t in s){let i=s[t],{audio:o,video:r}=Y(e,i);if(!r&&!!o)return i}}),gs=(0,p.createSelector)(I,f,(s,e)=>{let t=[],i=[];for(let o in s){let r=s[o],{video:a,audio:n}=Y(e,r);a?t.push(r):n&&i.push(r)}return t.concat(i)}),fs=(0,p.createSelector)(I,f,(s,e)=>{for(let t in e){let i=e[t];if(oe(i)&&ie(i)&&i.peerId)return s[i.peerId]}}),ys=(0,p.createSelector)(I,f,(s,e)=>{for(let t in e){let i=e[t];if(Te(i)&&i.peerId)return s[i.peerId]}}),Ps=(0,p.createSelector)(Ss,s=>s.filter(St)),ks=(0,p.createSelector)(be,s=>s.length),Rs=(0,p.createSelector)(Ee,s=>Object.values(s).filter(e=>!e.read).length),ae=(0,p.createSelector)(be,Ee,(s,e)=>{let t=[];return s.forEach(i=>{t.push(e[i])}),t}),N=(0,p.createSelector)([D],s=>s&&s.roomState),vs=(0,p.createSelector)(N,s=>s===g.Preview),Ds=(0,p.createSelector)(D,s=>s.roomState!==g.Disconnected),U=s=>s.roles,Is=(0,p.createSelector)([U],s=>Object.keys(s)),ne=(0,p.createSelector)([A,U],(s,e)=>(s==null?void 0:s.roleName)?e[s.roleName]:null),Tt=s=>{var e;return(e=s.preview)==null?void 0:e.asRole},Le=(0,p.createSelector)([Tt,U],(s,e)=>s?e[s]:null),Es=(0,p.createSelector)([ne],s=>{var e;return((e=s==null?void 0:s.subscribeParams)==null?void 0:e.subscribeToRoles)?s.subscribeParams.subscribeToRoles.length>0:!1}),xe=(0,p.createSelector)(ne,s=>s==null?void 0:s.permissions),bs=(0,p.createSelector)(D,s=>s.recording),As=(0,p.createSelector)(D,s=>s.rtmp),Cs=(0,p.createSelector)(D,s=>s.hls),Ns=(0,p.createSelector)(D,s=>s.sessionId),Ls=(0,p.createSelector)(D,s=>s.startedAt),xs=s=>s.templateAppData,Os=s=>s.sessionMetadata,Oe=s=>s.polls,_s=s=>Object.values(s.polls);var _e=v(require("reselect"));var mt=(s=m.audio)=>e=>e.playlist[s].list,we=(s=m.audio)=>e=>e.playlist[s].selection,Ht=(s=m.audio)=>e=>e.playlist[s].progress,ht=(s=m.audio)=>e=>e.playlist[s].currentTime,gt=(s=m.audio)=>e=>e.playlist[s].playbackRate,ft=(s=m.audio)=>e=>e.playlist[s].volume,yt=(s=m.audio)=>(0,_e.createSelector)(mt(s),e=>Object.values(e)),Pt=(s=m.audio)=>(0,_e.createSelector)(mt(s),we(s),(e,t)=>{if(!!t.id)return e[t.id]}),Ue={selection:we(m.audio),progress:Ht(m.audio),currentTime:ht(m.audio),playbackRate:gt(m.audio),volume:ft(m.audio),list:yt(m.audio),selectedItem:Pt(m.audio)},Ke={selection:we(m.video),progress:Ht(m.video),currentTime:ht(m.video),playbackRate:gt(m.video),volume:ft(m.video),list:yt(m.video),selectedItem:Pt(m.video)};var h=v(require("reselect"));function M(s){return e=>t=>s(t,e)}var c=v(require("@100mslive/hms-video"));var ce="HMS-Store:",d=class{static v(e,...t){this.log(c.HMSLogLevel.VERBOSE,e,...t)}static d(...e){this.log(c.HMSLogLevel.DEBUG,...e)}static i(...e){this.log(c.HMSLogLevel.INFO,...e)}static w(...e){this.log(c.HMSLogLevel.WARN,...e)}static e(...e){this.log(c.HMSLogLevel.ERROR,...e)}static time(e){this.log(c.HMSLogLevel.TIME,"[HMSPerformanceTiming]",e)}static timeEnd(e){this.log(c.HMSLogLevel.TIMEEND,"[HMSPerformanceTiming]",e,e)}static cleanup(){performance.clearMarks(),performance.clearMeasures()}static log(e,...t){if(!(this.level.valueOf()>e.valueOf()))switch(e){case c.HMSLogLevel.VERBOSE:{console.log(ce,...t);break}case c.HMSLogLevel.DEBUG:{console.debug(ce,...t);break}case c.HMSLogLevel.INFO:{console.info(ce,...t);break}case c.HMSLogLevel.WARN:{console.warn(ce,...t);break}case c.HMSLogLevel.ERROR:{console.error(ce,...t);break}case c.HMSLogLevel.TIME:{performance.mark(t[1]);break}case c.HMSLogLevel.TIMEEND:{let i=t[0],o=t[1];try{let r=performance.measure(o,o);this.log(c.HMSLogLevel.DEBUG,i,o,r==null?void 0:r.duration),performance.clearMarks(o),performance.clearMeasures(o)}catch(r){this.log(c.HMSLogLevel.DEBUG,i,o,r)}break}}}};d.level=c.HMSLogLevel.VERBOSE;var Ve=(s,e)=>e,le=(s,e)=>e,kt=(s,e)=>e,ws=(s,e)=>e,Us=(s,e)=>e,L=(0,h.createSelector)([I,Ve],(s,e)=>e?s[e]:null),Be=(0,h.createSelector)([f,le],(s,e)=>e?s[e]:null),Ks=(0,h.createSelector)([f,le],(s,e)=>{if(!e)return null;let t=s[e];return(t==null?void 0:t.type)==="video"?t:null}),Vs=(0,h.createSelector)([f,le],(s,e)=>{if(!e)return null;let t=s[e];return(t==null?void 0:t.type)==="audio"?t:null}),Bs=(0,h.createSelector)([f,le],(s,e)=>{if(!e)return null;let t=s[e];return(t==null?void 0:t.type)==="audio"&&(t==null?void 0:t.source)==="screen"?t:null}),qs=(0,h.createSelector)([f,le],(s,e)=>{if(!e)return null;let t=s[e];return(t==null?void 0:t.type)==="video"&&(t==null?void 0:t.source)==="screen"?t:null}),Rt=(0,h.createSelector)([Oe,Us],(s,e)=>e?s[e]:null),O=M(L),js=M((0,h.createSelector)([me,ws],(s,e)=>{if(!!s)return e?s[e]:s}));function Gs(s){return e=>{if(!!e.sessionStore)return s?e.sessionStore[s]:e.sessionStore}}var Fs=(...s)=>(0,h.createSelector)([me],e=>{if(!!e){if(s&&s.length>0){let t=e;for(let i of s){if(!i)return t;t=t==null?void 0:t[i]}return t}return e}}),Qs=M((0,h.createSelector)(L,s=>s==null?void 0:s.name)),Se=M(Be),qe=M(Ks),$s=M(Vs),Ws=M(Bs),Js=M(qs),vt=M((s,e)=>{let t=L(s,e);if(t&&t.videoTrack&&t.videoTrack!=="")return s.tracks[t.videoTrack]}),Dt=M((s,e)=>{let t=L(s,e);if(t&&t.audioTrack&&t.audioTrack!=="")return s.tracks[t.audioTrack]}),Ys=vt,zs=M((s,e)=>{let t=L(s,e);return(t==null?void 0:t.auxiliaryTracks.map(i=>s.tracks[i]))||[]}),It=(s,e)=>e?s.speakers[e]:null,Xs=M((0,h.createSelector)(It,s=>(s==null?void 0:s.audioLevel)||0)),Zs=(s,e)=>{let t=Dt(e)(s);return It(s,t==null?void 0:t.id)},ei=M((0,h.createSelector)(Zs,s=>(s==null?void 0:s.audioLevel)||0)),ti=M((s,e)=>{if(e)return s.connectionQualities[e]}),si=M((s,e)=>{let t=L(s,e);if(t){let i=t==null?void 0:t.auxiliaryTracks.find(o=>se(s.tracks[o]));return i?s.tracks[i]:void 0}}),ii=M((0,h.createSelector)(f,L,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(i=>{let o=s[i];return oe(o)&&ie(o)});return t?s[t]:void 0})),oi=M((0,h.createSelector)(f,L,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(i=>{let o=s[i];return oe(o)&&se(o)});return t?s[t]:void 0})),ri=M((0,h.createSelector)(f,L,(s,e)=>{let t=e==null?void 0:e.auxiliaryTracks.find(i=>{let o=s[i];return Te(o)&&se(o)});return t?s[t]:void 0})),je=M((0,h.createSelector)(f,L,(s,e)=>Y(s,e))),ai=s=>(0,h.createSelector)(je(s),e=>e.video),Ge=s=>(0,h.createSelector)(je(s),e=>e.audio),ni=M((s,e)=>{let t=L(s,e);return X(s,t==null?void 0:t.audioTrack)}),ci=M((s,e)=>{let t=L(s,e);return X(s,t==null?void 0:t.videoTrack)}),Fe=M((s,e)=>{if(e&&s.tracks[e])return s.tracks[e].volume===0}),li=M((s,e)=>{let t=L(s,e);return Fe(t==null?void 0:t.audioTrack)(s)}),Si=M((s,e)=>{let t=Ge(e)(s);return Fe(t==null?void 0:t.id)(s)}),Qe=M((s,e)=>{let t=Be(s,e);if(t){if(t.type!=="audio"){d.w("Please pass audio track here");return}return t.volume}}),di=M((s,e)=>{let t=L(s,e);return Qe(t==null?void 0:t.audioTrack)(s)}),ui=M((s,e)=>{let t=Ge(e)(s);return Qe(t==null?void 0:t.id)(s)}),pi=M((s,e)=>{let t=Be(s,e);if(t){if(t.type!=="video"){d.w("Please pass video track here");return}return t.layer}}),Et=(0,h.createSelector)([ae,W,Ve],(s,e,t)=>{if(!!t)return s.filter(i=>{var o;return!i.recipientPeer&&!((o=i.recipientRoles)==null?void 0:o.length)||i.sender&&![e,t].includes(i.sender)?!1:[e,t].includes(i.recipientPeer)})}),bt=(0,h.createSelector)([ae,kt],(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})}),At=(0,h.createSelector)(ae,s=>s.filter(e=>{var t;return!e.recipientPeer&&!((t=e.recipientRoles)==null?void 0:t.length)})),Mi=(0,h.createSelector)([bt,kt],s=>s?s.filter(e=>!e.read).length:0),Ti=(0,h.createSelector)([Et,Ve],s=>s?s.filter(e=>!e.read).length:0),mi=(0,h.createSelector)(At,s=>s.filter(e=>!e.read).length),Hi=M(Et),hi=M(bt),gi=M(Mi),fi=M(Ti),yi=s=>(0,h.createSelector)([q],e=>e.filter(t=>t.roleName===s)),Pi=s=>(0,h.createSelector)([q],e=>e.filter(t=>t.roleName?s.includes(t.roleName):!1)),ki=s=>(0,h.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),{}}}),Ri=s=>(0,h.createSelector)(O(s),e=>e==null?void 0:e.name),$e=M(Rt);var de=v(require("reselect"));var vi=(0,de.createSelector)([I,f],(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}})),Di=s=>s.roleChangeRequests[0]||null,Ii=(0,de.createSelector)([Di,I,U],(s,e,t)=>s?{requestedBy:s.requestedBy?e[s.requestedBy]:void 0,role:t[s.roleName],token:s.token}:null),Ei=(0,de.createSelector)([ne],s=>re(s)),bi=(0,de.createSelector)([Le],s=>re(s));var j=v(require("reselect"));var Ct=s=>(0,j.createSelector)([U],e=>e[s]),Ai=s=>(0,j.createSelector)(Ct(s),e=>re(e)),Ci=(0,j.createSelector)([C,f],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),Ni=(0,j.createSelector)([x,f],(s,e)=>{let t=null;return s&&(t=e[s]),(t==null?void 0:t.plugins)||[]}),Li=s=>(0,j.createSelector)([Ci],e=>e.includes(s)),xi=s=>(0,j.createSelector)([Ni],e=>e.includes(s)),Oi=s=>(0,j.createSelector)(q,e=>e.find(s)),_i=s=>(0,j.createSelector)(q,e=>e.filter(s)),wi=s=>(0,j.createSelector)(D,e=>e.joinedAt&&Date.now()-e.joinedAt.getTime()<=s);var Nt=(s,e)=>{let t=ue(Object.keys(s),Object.keys(e));for(let i of t){let o=s[i],r=e[i];z(o,r)?(_(o.auxiliaryTracks,r.auxiliaryTracks)&&(r.auxiliaryTracks=o.auxiliaryTracks),Object.assign(o,r)):Ye(o,r)?delete s[i]:ge(o,r)&&(s[i]=r)}},Lt=(s,e)=>{let t=ue(Object.keys(s),Object.keys(e));for(let i of t){let o=s[i],r=e[i];z(o,r)?(Je(o,r),Object.assign(o,r)):Ye(o,r)?delete s[i]:ge(o,r)&&(s[i]=r)}},xt=(s,e)=>{let t=ue(Object.keys(s),Object.keys(e));for(let i of t){let o=s[i],r=e[i];z(o,r)?(o.questions&&_(o.questions,r.questions)&&(r.questions=o.questions),Object.assign(o,r)):ge(o,r)&&(s[i]=r)}},We=(s,e)=>{let t=ue(Object.keys(s),Object.keys(e));for(let i of t){let o=s[i],r=e[i];z(o,r)?Object.assign(o,r):Ye(o,r)?delete s[i]:ge(o,r)&&(s[i]=r)}},Ot=(s,e,t)=>{let i=t.reduce((r,a)=>(r[a.firstTrackId]=Object.values(e[a.getTrackIDBeingSent()]||{}).sort((n,u)=>!n.rid||!u.rid?0:n.rid<u.rid?-1:1),r),{}),o=ue(Object.keys(s),Object.keys(i));for(let r of o){if(!i[r]){delete s[r];continue}s[r]=i[r]}},Je=(s,e)=>{s.plugins&&_(s.plugins,e.plugins)&&(e.plugins=s.plugins),s.type==="video"&&s.layerDefinitions&&_(s.layerDefinitions,e.layerDefinitions)&&(e.layerDefinitions=s.layerDefinitions)},z=(s,e)=>s&&e,Ye=(s,e)=>s&&!e,ge=(s,e)=>!s&&e,_=(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},ue=(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 _t=(s,e,t)=>{let i;t.getState(N)===g.Connected&&(i=wt(s,e,t)),t.subscribe(o=>{[g.Connected,g.Reconnecting].includes(o)?i||(i=wt(s,e,t)):[g.Disconnected,g.Failed].includes(o)&&i&&(Vi(e,o),i(),i=void 0)},N)},wt=(s,e,t)=>{var r,a;let i=Ui(t,e);(r=s.getWebrtcInternals())==null||r.start();let o=(a=s.getWebrtcInternals())==null?void 0:a.onStatsChange(n=>Ki(e,n,t,s));return()=>{i(),o&&o()}},Ui=(s,e)=>{let t,i,o;return s.getState(W)?e.namedSetState(r=>{r.localPeer.id=s.getState(W)},"localpeer-id"):t=s.subscribe(r=>{r&&e.namedSetState(a=>{a.localPeer.id=r},"localpeer-id")},W),s.getState(C)?e.namedSetState(r=>{r.localPeer.videoTrack=s.getState(C)},"localpeer-videotrack-id"):i=s.subscribe(r=>{r&&e.namedSetState(a=>{a.localPeer.videoTrack=r},"localpeer-videotrack-id")},C),s.getState(x)?e.namedSetState(r=>{r.localPeer.audioTrack=s.getState(x)},"localpeer-audiotrack-id"):o=s.subscribe(r=>{r&&e.namedSetState(a=>{a.localPeer.audioTrack=r},"localpeer-audiotrack-id")},x),()=>{t==null||t(),i==null||i(),o==null||o()}},Ki=(s,e,t,i)=>{let o=t.getState(f);s.namedSetState(r=>{let a=t.getState(W),n={},u=Object.keys(o).filter(K=>o[K].peerId!==a);for(let K of u){let V=e.getRemoteTrackStats(K);V&&(n[K]=V)}We(r.remoteTrackStats,n);let P={[a]:e.getLocalPeerStats()};We(r.peerStats,P),Ot(r.localTrackStats,e.getLocalTrackStats(),i.store.getLocalPeerTracks())},"webrtc-stats")},Vi=(s,e="resetState")=>{s.namedSetState(t=>{Object.assign(t,te())},e)};var Ut=v(require("@100mslive/hms-video")),fe=s=>Ut.isBrowser?`${s} ${document.title}`:s;var qt=v(require("immer")),jt=v(require("zustand/shallow")),Gt=v(require("zustand/vanilla")),ve=v(require("@100mslive/hms-video"));var Kt=v(require("eventemitter2"));var ye={[c.HMSPeerUpdate.PEER_JOINED]:T.PEER_JOINED,[c.HMSPeerUpdate.PEER_LEFT]:T.PEER_LEFT,[c.HMSPeerUpdate.ROLE_UPDATED]:T.ROLE_UPDATED,[c.HMSPeerUpdate.NAME_UPDATED]:T.NAME_UPDATED,[c.HMSPeerUpdate.METADATA_UPDATED]:T.METADATA_UPDATED},pe={[c.HMSTrackUpdate.TRACK_ADDED]:T.TRACK_ADDED,[c.HMSTrackUpdate.TRACK_REMOVED]:T.TRACK_REMOVED,[c.HMSTrackUpdate.TRACK_MUTED]:T.TRACK_MUTED,[c.HMSTrackUpdate.TRACK_UNMUTED]:T.TRACK_UNMUTED,[c.HMSTrackUpdate.TRACK_DEGRADED]:T.TRACK_DEGRADED,[c.HMSTrackUpdate.TRACK_RESTORED]:T.TRACK_RESTORED,[c.HMSTrackUpdate.TRACK_DESCRIPTION_CHANGED]:T.TRACK_DESCRIPTION_CHANGED},Pe={[c.HMSPollsUpdate.POLL_LIST]:T.POLL_LIST,[c.HMSPollsUpdate.POLL_CREATED]:T.POLL_CREATED,[c.HMSPollsUpdate.POLL_STARTED]:T.POLL_STARTED,[c.HMSPollsUpdate.POLL_STOPPED]:T.POLL_STOPPED,[c.HMSPollsUpdate.POLL_STATS_UPDATED]:T.POLL_VOTES_UPDATED};var ze="hmsNotification",Xe=class{constructor(e){this.id=0;this.onNotification=(e,t)=>{let i=o=>{if(t){let r;if(Array.isArray(t)?r=t.includes(o.type):r=t===o.type,!r)return}e(o)};return this.eventEmitter.addListener(ze,i),()=>{this.eventEmitter.removeListener(ze,i)}};this.store=e,this.eventEmitter=new Kt.EventEmitter2({maxListeners:Object.keys(T).length})}sendPlaylistTrackEnded(e){let t=this.createNotification(T.PLAYLIST_TRACK_ENDED,e,k.INFO);this.emitEvent(t)}sendDeviceChange(e){var i;let t=this.createNotification(T.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?T.ROOM_ENDED:T.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(T.PEER_LIST,e,k.INFO);this.emitEvent(t)}sendPeerUpdate(e,t){let i=this.store.getState(O(t==null?void 0:t.id))||t,o=ye[e];if(o){let r=this.createNotification(o,i,k.INFO);this.emitEvent(r)}}sendTrackUpdate(e,t){let i=this.store.getState(Se(t)),o=pe[e];if(o){let r=this.createNotification(o,i,k.INFO);this.emitEvent(r)}}sendMessageReceived(e){let t=this.createNotification(T.NEW_MESSAGE,e,k.INFO);this.emitEvent(t)}sendError(e){let t=this.createNotification(T.ERROR,e,k.ERROR);this.emitEvent(t)}sendReconnecting(e){let t=this.createNotification(T.RECONNECTING,e,k.ERROR);this.emitEvent(t)}sendReconnected(){let e=this.createNotification(T.RECONNECTED,null,k.INFO);this.emitEvent(e)}sendChangeTrackStateRequest(e){let t=this.createNotification(T.CHANGE_TRACK_STATE_REQUEST,e,k.INFO);this.emitEvent(t)}sendChangeMultiTrackStateRequest(e){let t=this.createNotification(T.CHANGE_MULTI_TRACK_STATE_REQUEST,e,k.INFO);this.emitEvent(t)}sendPollUpdate(e,t){let i=Pe[e],o=this.store.getState($e(t));if(i){let r=this.createNotification(i,o,k.INFO);this.emitEvent(r)}}emitEvent(e){this.eventEmitter.emit(ze,e)}createNotification(e,t,i,o=""){return this.id++,{id:this.id,type:e,message:o,data:t,severity:i}}};var F=v(require("@100mslive/hms-video"));var ke=v(require("@100mslive/hms-video"));function Vt(s){return s instanceof ke.HMSRemoteAudioTrack||s instanceof ke.HMSRemoteVideoTrack}var b=v(require("@100mslive/hms-video"));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,metadata:e.metadata,joinedAt:e.joinedAt}}static convertTrack(e,t){let i={id:e.trackId,source:e.source,type:e.type,enabled:e.enabled,displayEnabled:e.enabled,peerId:e.peerId||t};return this.enrichTrack(i,e),i}static enrichTrack(e,t){let i=t.getMediaTrackSettings();t instanceof b.HMSRemoteAudioTrack&&(e.volume=t.getVolume()||0),H.updateDeviceID(e,t),H.enrichLocalTrack(e,t),e.type==="video"&&(e.source==="screen"?(e.displaySurface=i.displaySurface,H.enrichScreenTrack(e,t)):e.source==="regular"&&(e.facingMode=i.facingMode),e.height=i.height,e.width=i.width,H.enrichVideoTrack(e,t)),H.enrichPluginsDetails(e,t)}static enrichLocalTrack(e,t){(t instanceof b.HMSLocalVideoTrack||t instanceof b.HMSLocalAudioTrack)&&(e.isPublished=t.isPublished)}static updateDeviceID(e,t){var i;t instanceof b.HMSLocalVideoTrack||t instanceof b.HMSLocalAudioTrack?e.deviceID=t.settings.deviceId:e.deviceID=(i=t.getMediaTrackSettings())==null?void 0:i.deviceId}static enrichVideoTrack(e,t){t instanceof b.HMSRemoteVideoTrack&&(e.layer=t.getLayer(),e.preferredLayer=t.getPreferredLayer(),e.degraded=t.degraded),(t instanceof b.HMSRemoteVideoTrack||t instanceof b.HMSLocalVideoTrack)&&(_(t.getSimulcastDefinitions(),e.layerDefinitions)||(e.layerDefinitions=t.getSimulcastDefinitions()))}static enrichScreenTrack(e,t){var i,o;if(t instanceof b.HMSLocalVideoTrack){let r=(i=t.getCaptureHandle)==null?void 0:i.call(t);(r==null?void 0:r.handle)!==((o=e.captureHandle)==null?void 0:o.handle)&&(e.captureHandle=r),t.isCurrentTab&&(e.displaySurface="selfBrowser")}}static enrichPluginsDetails(e,t){(t instanceof b.HMSLocalVideoTrack||t instanceof b.HMSLocalAudioTrack)&&(_(t.getPlugins(),e.plugins)||(e.plugins=t.getPlugins()))}static convertRoom(e,t){let{recording:i,rtmp:o,hls:r}=H.convertRecordingStreamingState(e==null?void 0:e.recording,e==null?void 0:e.rtmp,e==null?void 0:e.hls);return{id:e.id,name:e.name,localPeer:t,recording:i,rtmp:o,hls:r,sessionId:e.sessionId,startedAt:e.startedAt,joinedAt:e.joinedAt,peerCount:e.peerCount}}static convertMessage(e){var t,i,o,r,a,n,u;return{sender:(t=e.sender)==null?void 0:t.peerId,senderName:(i=e.sender)==null?void 0:i.name,senderRole:(r=(o=e.sender)==null?void 0:o.role)==null?void 0:r.name,senderUserId:(a=e.sender)==null?void 0:a.customerUserId,recipientPeer:(n=e.recipientPeer)==null?void 0:n.peerId,recipientRoles:(u=e.recipientRoles)==null?void 0:u.map(P=>P.name),time:e.time,type:e.type,message:e.message,id:e.id}}static convertRoles(e){let t={};return e&&e.forEach(i=>{t[i.name]=i}),t}static convertRoleChangeRequest(e){var t;return{requestedBy:(t=e.requestedBy)==null?void 0:t.peerId,roleName:e.role.name,token:e.token}}static convertException(e){return{code:e.code,action:e.action,name:e.name,message:e.message,description:e.description,isTerminal:e.isTerminal,nativeError:e.nativeError,timestamp:new Date}}static convertDeviceChangeUpdate(e){let t={devices:e.devices,selection:e.selection,type:e.type};return e.error&&(t.error=this.convertException(e.error)),t}static convertPlaylist(e){let t=this.getConvertedPlaylistType(e,m.audio),i=this.getConvertedPlaylistType(e,m.video);return{audio:t,video:i}}static convertPlaylistItem(e,t){let i=t.type,o=e.getCurrentSelection(i),r=e.isPlaying(i),a=t.url===(o==null?void 0:o.url);return $(E({},t),{type:t.type,selected:a,playing:a&&r})}static getConvertedPlaylistType(e,t){let i={},o=e.getCurrentSelection(t),r=e.getCurrentProgress(t),a=e.getVolume(t),n=e.getList(t),u=e.getCurrentIndex(t);return e.getList(t).forEach(P=>{i[P.id]=H.convertPlaylistItem(e,P)}),{list:i,selection:{id:o==null?void 0:o.id,hasPrevious:u>0,hasNext:u<n.length-1},progress:r,volume:a,currentTime:e.getCurrentTime(t),playbackRate:e.getPlaybackRate(t)}}static convertRecordingStreamingState(e,t,i){var o;return{recording:{browser:E({running:!1},e==null?void 0:e.browser),server:E({running:!1},e==null?void 0:e.server),hls:E({running:!1},e==null?void 0:e.hls)},rtmp:E({running:!1},t),hls:{variants:((o=i==null?void 0:i.variants)==null?void 0:o.map(r=>r))||[],running:!!(i==null?void 0:i.running),error:i==null?void 0:i.error}}}};var Ze=class{constructor(e){this.sdk=e}get sdkInteractivityCenter(){return this.sdk.getInteractivityCenter()}createPoll(e){return this.sdkInteractivityCenter.createPoll(e)}startPoll(e){return this.sdkInteractivityCenter.startPoll(e)}stopPoll(e){return this.sdkInteractivityCenter.stopPoll(e)}addQuestionsToPoll(e,t){return this.sdkInteractivityCenter.addQuestionsToPoll(e,t)}addResponsesToPoll(e,t){return this.sdkInteractivityCenter.addResponsesToPoll(e,t)}};var Re=class{constructor(e,t,i,o){this.playlistManager=e;this.syncPlaylistState=i;this.store=o;this.type=t}play(e){return l(this,null,function*(){if(!e){d.w("Please pass id to play");return}yield this.playlistManager.setEnabled(!0,{id:e,type:this.type})})}pause(){return l(this,null,function*(){let e=this.type===m.audio?Ue:Ke,t=this.store.getState(e.selection);if(!t.id){d.w("No item is currently playing to pause");return}yield this.playlistManager.setEnabled(!1,{id:t.id,type:this.type})})}playNext(){return l(this,null,function*(){yield this.playlistManager.playNext(this.type)})}playPrevious(){return l(this,null,function*(){yield this.playlistManager.playPrevious(this.type)})}seek(e){this.playlistManager.seek(e,this.type),this.syncPlaylistState(`seekOn${this.type}Playlist`)}seekTo(e){this.playlistManager.seekTo(e,this.type),this.syncPlaylistState(`seekToOn${this.type}Playlist`)}setVolume(e){this.playlistManager.setVolume(e,this.type),this.syncPlaylistState(`setVolumeOn${this.type}Playlist`)}setList(e){this.playlistManager.setList(e),this.syncPlaylistState(`setListOn${this.type}Playlist`)}stop(){return l(this,null,function*(){yield this.playlistManager.stop(this.type),this.syncPlaylistState(`stop${this.type}Playlist`)})}setIsAutoplayOn(e){this.playlistManager.setIsAutoplayOn(this.type,e)}setPlaybackRate(e){this.playlistManager.setPlaybackRate(this.type,e),this.syncPlaylistState(`set${this.type}PlaybackRate`)}removeItem(e){return l(this,null,function*(){let t=yield this.playlistManager.removeItem(e,this.type);return t&&this.syncPlaylistState(`remove${this.type}PlaylistItem`),t})}clearList(){return l(this,null,function*(){yield this.playlistManager.clearList(this.type),this.syncPlaylistState(`clear${this.type}Playlist`)})}};var et=class{constructor(e,t){this.sdk=e;this.setLocally=t}get sdkSessionStore(){return this.sdk.getSessionStore()}set(e,t){return l(this,null,function*(){let{value:i}=yield this.sdkSessionStore.set(String(e),t);this.setLocally({key:e,value:i})})}observe(e){return l(this,null,function*(){let t=Array.isArray(e)?e.map(i=>String(i)):[String(e)];yield this.sdkSessionStore.observe(t)})}unobserve(e){return l(this,null,function*(){let t=Array.isArray(e)?e.map(i=>String(i)):[String(e)];yield this.sdkSessionStore.unobserve(t)})}};var tt=class{constructor(e,t){this.intervalMs=100,this.shouldMonitor=!1,this.hasStarted=!1,this.unsubs=[],this.analysers={},this.store=e,this.actions=t}start(){return l(this,null,function*(){if(this.hasStarted)return;this.hasStarted=!0,d.d("starting audio level monitor for remote peers",this.store);let e=this.store.getState(G);d.d("starting audio levels is connected to room",e),e&&(yield this.monitorAudioLevels());let t=this.store.subscribe(this.monitorAudioLevels.bind(this),G);this.unsubs.push(t)})}stop(){return l(this,null,function*(){!this.hasStarted||(this.hasStarted=!1,this.shouldMonitor=!1,this.unsubs.forEach(e=>e()),d.d("stopped audio level monitor for remote peers"))})}monitorAudioLevels(){return l(this,null,function*(){if(!this.store.getState(G)){this.shouldMonitor&&(d.i("room no longer connected, stopping audio level monitoring for remote"),this.shouldMonitor=!1);return}if(this.shouldMonitor)return;d.i("monitoring audio levels"),this.shouldMonitor=!0;let t=()=>{this.shouldMonitor?(this.logAllPeersAudioLevels(),setTimeout(t,this.intervalMs)):d.i("stopped monitoring audio levels")};setTimeout(t,1e3)})}logAllPeersAudioLevels(){return l(this,null,function*(){var o;if(!window.__triggerBeamEvent__)return;let t=this.store.getState(q).filter(r=>!!r.audioTrack),i=[];for(let r of t){let a=this.actions.hmsSDKTracks[r.audioTrack],n=(o=a==null?void 0:a.stream)==null?void 0:o.nativeStream;if(!!r.joinedAt&&n){let u=yield this.getAudioLevel(r,n);u.level>0&&i.push(u)}}if(i.length>0){let r={event:"app-audio-level",data:i};window.__triggerBeamEvent__(JSON.stringify(r))}})}getAudioLevel(e,t){return l(this,null,function*(){this.analysers[t.id]||(this.analysers[t.id]=this.createAnalyserNode(t));let i=this.analysers[t.id],o=this.calculateAudioLevel(i);return{peerId:e.id,peerName:e.name,level:o}})}createAnalyserNode(e){this.audioContext||(this.audioContext=new AudioContext);let t=this.audioContext.createAnalyser();return this.audioContext.createMediaStreamSource(e).connect(t),t}calculateAudioLevel(e){let t=new Uint8Array(e.fftSize);e.getByteTimeDomainData(t);let i=.009,o=i;for(let n of t)o=Math.max(o,(n-128)/128);let r=(Math.log(i)-Math.log(o))/Math.log(i);return Math.ceil(Math.min(Math.max(r*100,0),100))}};var st=class{constructor(e,t,i){this.hmsSDKTracks={};this.isRoomJoinCalled=!1;this.ignoredMessageTypes=[];this.setProgress=({type:e,progress:t})=>{this.setState(i=>{i.playlist[e].progress=t,i.playlist[e].currentTime=this.sdk.getPlaylistManager().getCurrentTime(e)},"playlistProgress")};this.syncPlaylistState=e=>{this.setState(t=>{Object.assign(t.playlist,H.convertPlaylist(this.sdk.getPlaylistManager()))},e)};this.sendPeerUpdateNotification=(e,t)=>{let i=this.store.getState(O(t.peerId)),o=ye[e]||"peerUpdate";if([c.HMSPeerUpdate.PEER_JOINED,c.HMSPeerUpdate.PEER_LEFT].includes(e))this.syncRoomState(o),i||(i=this.store.getState(O(t.peerId)));else{let r=H.convertPeer(t);this.setState(a=>{let n=a.peers[r.id];z(n,r)&&(_(n.auxiliaryTracks,r.auxiliaryTracks)&&(n.auxiliaryTracks=r.auxiliaryTracks),Object.assign(n,r)),i=r},o)}this.hmsNotifications.sendPeerUpdate(e,i)};this.getSDKHMSPeer=e=>this.sdk.getPeerMap()[e];this.setState=(e,t)=>this.store.namedSetState(e,t);this.store=e,this.sdk=t,this.hmsNotifications=i,this.sessionStore=new et(this.sdk,this.setSessionStoreValueLocally.bind(this)),this.interactivityCenter=new Ze(this.sdk)}refreshDevices(){return l(this,null,function*(){yield this.sdk.refreshDevices()})}unblockAudio(){return l(this,null,function*(){yield this.sdk.getAudioOutput().unblockAutoplay()})}setVolume(e,t){return l(this,null,function*(){t?yield this.setTrackVolume(e,t):(yield this.sdk.getAudioOutput().setVolume(e),this.syncRoomState("setOutputVolume"))})}setAudioOutputDevice(e){return l(this,null,function*(){(yield this.sdk.getAudioOutput().setDevice(e))&&this.setState(i=>{i.settings.audioOutputDeviceId=e},"setAudioOutputDevice")})}setPreferredLayer(e,t){return l(this,null,function*(){var o;let i=this.hmsSDKTracks[e];if(i)if(i instanceof F.HMSRemoteVideoTrack){if(t===F.HMSSimulcastLayer.NONE){d.d(`layer ${F.HMSSimulcastLayer.NONE} will be ignored`);return}if(((o=this.store.getState(qe(e)))==null?void 0:o.preferredLayer)===t){d.d(`preferred layer is already ${t}`);return}this.setState(a=>{let n=a.tracks[e];n&&(n.preferredLayer=t)},"setPreferredLayer"),yield i.setPreferredLayer(t)}else d.d(`track ${e} is not a remote video track`);else this.logPossibleInconsistency(`track ${e} not present, unable to set preffer layer`)})}getAuthTokenByRoomCode(e,t){return this.sdk.getAuthTokenByRoomCode(e,t)}preview(e){return l(this,null,function*(){if(this.isRoomJoinCalled){this.logPossibleInconsistency("attempting to call preview after join was called");return}let t=this.store.getState(N);if(t===g.Preview||t===g.Connecting){this.logPossibleInconsistency("attempting to call preview while room is in preview/connecting");return}try{this.setState(i=>{i.room.roomState=g.Connecting},"connecting"),yield this.sdkPreviewWithListeners(e)}catch(i){throw d.e("Cannot show preview. Failed to connect to room - ",i),i}})}join(e){return l(this,null,function*(){if(this.isRoomJoinCalled){this.logPossibleInconsistency("room join is called again");return}try{this.isRoomJoinCalled=!0,this.setState(t=>{t.room.roomState=g.Connecting},"join"),yield this.sdkJoinWithListeners(e)}catch(t){throw this.isRoomJoinCalled=!1,d.e("Failed to connect to room - ",t),t}})}leave(){return l(this,null,function*(){let e=this.store.getState(G),t=!0;e||(t=!1,this.logPossibleInconsistency("room leave is called when no room is connected"));let i=this.store.getState(N);return this.setState(o=>{o.room.roomState=g.Disconnecting},"leaving"),this.sdk.leave(t).then(()=>{this.resetState("leave"),this.beamSpeakerLabelsLogger&&this.beamSpeakerLabelsLogger.stop().catch(d.e),d.i("left room")}).catch(o=>{d.e("error in leaving room - ",o),this.setState(r=>{r.room.roomState=i},"revertLeave")})})}setScreenShareEnabled(e,t){return l(this,null,function*(){typeof t=="boolean"&&(t={audioOnly:t});try{e?yield this.startScreenShare(t):yield this.stopScreenShare()}catch(i){throw this.hmsNotifications.sendError(H.convertException(i)),i}})}addTrack(e,t="regular"){return l(this,null,function*(){yield this.sdk.addTrack(e,t),this.syncRoomState("addTrack")})}removeTrack(e){return l(this,null,function*(){yield this.sdk.removeTrack(e),this.syncRoomState("removeTrack")})}setLocalAudioEnabled(e){return l(this,null,function*(){let t=this.store.getState(x);t&&(yield this.setEnabledTrack(t,e))})}setLocalVideoEnabled(e){return l(this,null,function*(){let t=this.store.getState(C);t&&(yield this.setEnabledTrack(t,e))})}setEnabledTrack(e,t){return l(this,null,function*(){var r;if(((r=this.store.getState().tracks[e])==null?void 0:r.enabled)===t){this.logPossibleInconsistency(`local track[${e}] enabled state - ${t}`);return}this.setState(a=>{a.tracks[e]?a.tracks[e].displayEnabled=t:this.logPossibleInconsistency("track id not found for setEnabled")},"displayEnabled");try{yield this.setEnabledSDKTrack(e,t),this.syncRoomState("setEnabled")}catch(a){throw this.setState(n=>{n.tracks[e].displayEnabled=!t},"rollbackDisplayEnabled"),this.hmsNotifications.sendError(H.convertException(a)),a}let o=t?c.HMSTrackUpdate.TRACK_UNMUTED:c.HMSTrackUpdate.TRACK_MUTED;this.hmsNotifications.sendTrackUpdate(o,e)})}setAudioSettings(e){return l(this,null,function*(){let t=this.store.getState(x);t&&(yield this.setSDKLocalAudioTrackSettings(t,e),this.syncRoomState("setAudioSettings"))})}setVideoSettings(e){return l(this,null,function*(){let t=this.store.getState(C);t&&(yield this.setSDKLocalVideoTrackSettings(t,e),this.syncRoomState("setVideoSettings"))})}switchCamera(){return l(this,null,function*(){let e=this.store.getState(C);if(e){let t=this.hmsSDKTracks[e];t&&(yield t.switchCamera(),this.syncRoomState("switchCamera"))}})}sendMessage(e){this.sendBroadcastMessage(e)}sendBroadcastMessage(e,t){return l(this,null,function*(){let i=yield this.sdk.sendBroadcastMessage(e,t);this.updateMessageInStore(i,{message:e,type:t})})}sendGroupMessage(e,t,i){return l(this,null,function*(){let o=this.store.getState(U),r=t.map(n=>o[n]),a=yield this.sdk.sendGroupMessage(e,r,i);this.updateMessageInStore(a,{message:e,recipientRoles:t,type:i})})}sendDirectMessage(e,t,i){return l(this,null,function*(){let o=this.getSDKHMSPeer(t);if(!o)throw d.w("sendMessage","Failed to send message"),Error(`sendMessage Failed - peer ${t} not found`);let r=yield this.sdk.sendDirectMessage(e,o,i);this.updateMessageInStore(r,{message:e,recipientPeer:o.peerId,type:i})})}updateMessageInStore(e,t){if(!e)throw d.w("sendMessage","Failed to send message",t),Error(`sendMessage Failed - ${JSON.stringify(t)}`);let i=H.convertMessage(e);return i.read=!0,i.senderName="You",i.ignored=this.ignoredMessageTypes.includes(i.type),this.putMessageInStore(i),i}setMessageRead(e,t){this.setState(i=>{t?i.messages.byID[t]?i.messages.byID[t].read=e:this.logPossibleInconsistency("no message with id is found"):i.messages.allIDs.forEach(o=>{i.messages.byID[o].read=e})},"setMessageRead")}attachVideo(e,t){return l(this,null,function*(){if(this.localAndVideoUnmuting(e))return new Promise(i=>{let o=this.store.subscribe(r=>l(this,null,function*(){r&&(yield this.attachVideoInternal(e,t),o(),i())}),He)});yield this.attachVideoInternal(e,t)})}detachVideo(e,t){return l(this,null,function*(){let i=this.hmsSDKTracks[e];(i==null?void 0:i.type)==="video"?yield this.sdk.detachVideo(i,t):(t&&(t.srcObject=null),d.d("possible inconsistency detected - no video track found to remove sink"))})}addPluginToVideoTrack(e,t){return l(this,null,function*(){return this.addRemoveVideoPlugin(e,"add",t)})}addPluginToAudioTrack(e){return l(this,null,function*(){return this.addRemoveAudioPlugin(e,"add")})}validateVideoPluginSupport(e){let t={};if(t.isSupported=!1,!e)return d.w("no plugin passed in for checking support"),t.errMsg="no plugin passed in for checking support",t;let i=this.store.getState(C);if(!i)return d.w("video Track not added to local peer yet"),t.errMsg="call this function only after local peer has video track",t;let o=this.hmsSDKTracks[i];return o?t=o.validatePlugin(e):(d.w(`track ${i} not present, unable to validate plugin`),t.errMsg=`track ${i} not present, unable to validate plugin`),t}validateAudioPluginSupport(e){let t={};if(t.isSupported=!1,!e)return d.w('no plugin passed in for checking support"'),t.errMsg='no plugin passed in for checking support"',t;let i=this.store.getState(x);if(!i)return d.w("audio track not added to local peer yet"),t.errMsg="call this function only after local peer has audio track",t;let o=this.hmsSDKTracks[i];return o?t=o.validatePlugin(e):(d.w(`track ${i} not present, unable to validate plugin`),t.errMsg=`track ${i} not present, unable to validate plugin`),t}removePluginFromVideoTrack(e){return l(this,null,function*(){return this.addRemoveVideoPlugin(e,"remove")})}removePluginFromAudioTrack(e){return l(this,null,function*(){return this.addRemoveAudioPlugin(e,"remove")})}changeRole(e,t,i=!1){return l(this,null,function*(){let o=this.getSDKHMSPeer(e);if(!o){this.logPossibleInconsistency(`Unknown peer ID given ${e} for changerole`);return}yield this.sdk.changeRoleOfPeer(o,t,i)})}changeRoleOfPeer(e,t,i=!1){return l(this,null,function*(){let o=this.getSDKHMSPeer(e);if(!o){this.logPossibleInconsistency(`Unknown peer ID given ${e} for changerole`);return}yield this.sdk.changeRoleOfPeer(o,t,i)})}changeRoleOfPeersWithRoles(e,t){return l(this,null,function*(){let i=this.sdk.getRoles().filter(o=>e.includes(o.name));yield this.sdk.changeRoleOfPeersWithRoles(i,t)})}acceptChangeRole(e){return l(this,null,function*(){let t=e.requestedBy?this.getSDKHMSPeer(e.requestedBy.id):void 0;t||d.w(`peer for which role change is requested no longer available - ${e.requestedBy}`);let i={requestedBy:t,role:e.role,token:e.token};yield this.sdk.acceptChangeRole(i),this.removeRoleChangeRequest(e)})}initAppData(e){this.setState(t=>{t.appData=e},"initAppData")}setAppData(e,t,i){let o=(t==null?void 0:t.constructor.name)==="Object";this.setState(r=>{if(r.appData)i&&o?Object.assign(r.appData[e],t):r.appData[e]=t;else{let a={[e]:t};r.appData=a}},`setAppData-${e}`)}rejectChangeRole(e){this.removeRoleChangeRequest(e)}endRoom(e,t){return l(this,null,function*(){let i=this.store.getState(xe);if(!(i==null?void 0:i.endRoom)){d.w("You are not allowed to perform this action - endRoom");return}let o=this.store.getState(N);this.setState(r=>{r.room.roomState=g.Disconnecting},"endingRoom");try{yield this.sdk.endRoom(e,t),this.resetState("endRoom")}catch(r){d.e("error in ending room - ",r),this.setState(a=>{a.room.roomState=o},"revertEndRoom")}})}removePeer(e,t){return l(this,null,function*(){let i=this.getSDKHMSPeer(e);if(i&&!i.isLocal)yield this.sdk.removePeer(i,t);else{this.logPossibleInconsistency(`No remote peer found for peerID - ${e}`);return}})}startRTMPOrRecording(e){return l(this,null,function*(){yield this.sdk.startRTMPOrRecording(e)})}stopRTMPAndRecording(){return l(this,null,function*(){yield this.sdk.stopRTMPAndRecording()})}startHLSStreaming(e){return l(this,null,function*(){yield this.sdk.startHLSStreaming(e)})}stopHLSStreaming(e){return l(this,null,function*(){yield this.sdk.stopHLSStreaming(e)})}sendHLSTimedMetadata(e){return l(this,null,function*(){yield this.sdk.sendHLSTimedMetadata(e)})}changeName(e){return l(this,null,function*(){yield this.sdk.changeName(e)})}changeMetadata(e){return l(this,null,function*(){typeof e!="string"&&(e=JSON.stringify(e)),yield this.sdk.changeMetadata(e)})}setSessionMetadata(e){return l(this,null,function*(){yield this.sdk.setSessionMetadata(e),this.setState(t=>{t.sessionMetadata=e},"setSessionMetadata"),this.setSessionStoreValueLocally({key:"default",value:e},"setSessionMetadata")})}populateSessionMetadata(){return l(this,null,function*(){let e=yield this.sdk.getSessionMetadata();this.setState(t=>{t.sessionMetadata=e},"populateSessionMetadata"),this.setSessionStoreValueLocally({key:"default",value:e},"populateSessionmetadata")})}setRemoteTrackEnabled(e,t){return l(this,null,function*(){if(typeof e=="string"){let i=this.hmsSDKTracks[e];i&&Vt(i)?yield this.sdk.changeTrackState(i,t):this.logPossibleInconsistency(`No remote track with ID ${e} found for change track state`)}else Array.isArray(e)&&e.forEach(i=>this.setRemoteTrackEnabled(i,t))})}setRemoteTracksEnabled(e){return l(this,null,function*(){let t={enabled:e.enabled,type:e.type,source:e.source};if(e.roles){let i=this.store.getState(U);t.roles=e.roles.map(o=>i[o])}yield this.sdk.changeMultiTrackState(t)})}setLogLevel(e){d.level=e,this.sdk.setLogLevel(e)}setFrameworkInfo(e){this.sdk.setFrameworkInfo(e)}ignoreMessageTypes(e,t=!1){if(t)this.ignoredMessageTypes=e;else for(let i of e)this.ignoredMessageTypes.includes(i)||this.ignoredMessageTypes.push(i)}enableBeamSpeakerLabelsLogging(){return l(this,null,function*(){this.beamSpeakerLabelsLogger||(d.i("enabling beam speaker labels logging"),this.beamSpeakerLabelsLogger=new tt(this.store,this),yield this.beamSpeakerLabelsLogger.start())})}resetState(e="resetState"){this.isRoomJoinCalled=!1,this.hmsSDKTracks={},d.cleanup(),this.setState(t=>{Object.assign(t,ee())},e)}sdkJoinWithListeners(e){return l(this,null,function*(){yield this.sdk.join(e,{onJoin:this.onJoin.bind(this),onRoomUpdate:this.onRoomUpdate.bind(this),onPeerUpdate:this.onPeerUpdate.bind(this),onTrackUpdate:this.onTrackUpdate.bind(this),onMessageReceived:this.onMessageReceived.bind(this),onError:this.onError.bind(this),onReconnected:this.onReconnected.bind(this),onReconnecting:this.onReconnecting.bind(this),onRoleChangeRequest:this.onRoleChangeRequest.bind(this),onRoleUpdate:this.onRoleUpdate.bind(this),onDeviceChange:this.onDeviceChange.bind(this),onChangeTrackStateRequest:this.onChangeTrackStateRequest.bind(this),onChangeMultiTrackStateRequest:this.onChangeMultiTrackStateRequest.bind(this),onRemovedFromRoom:this.onRemovedFromRoom.bind(this),onNetworkQuality:this.onNetworkQuality.bind(this),onSessionStoreUpdate:this.onSessionStoreUpdate.bind(this),onPollsUpdate:this.onPollsUpdate.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)}),this.sdk.addConnectionQualityListener({onConnectionQualityUpdate:this.onConnectionQualityUpdate.bind(this)})})}onRemovedFromRoom(e){var o;let t=this.store.getState(O((o=e.requestedBy)==null?void 0:o.peerId));this.hmsNotifications.sendLeaveRoom($(E({},e),{requestedBy:t||void 0}));let i=e.roomEnded||!t?"roomEnded":"removedFromRoom";d.i(`resetting state after peer removed ${i}`,e),this.resetState(i)}onDeviceChange(e){let t=e.devices;if(!t)return;let i=this.store.getState(A);if(this.setState(o=>{_(o.devices.audioInput,t.audioInput)||(o.devices.audioInput=t.audioInput),_(o.devices.videoInput,t.videoInput)||(o.devices.videoInput=t.videoInput),_(o.devices.audioOutput,t.audioOutput)||(o.devices.audioOutput=t.audioOutput);let r=this.sdk.getLocalPeer();(i==null?void 0:i.id)&&r&&Object.assign(o.settings,this.getMediaSettings(r))},"deviceChange"),e.selection){let o=H.convertDeviceChangeUpdate(e);this.hmsNotifications.sendDeviceChange(o)}}sdkPreviewWithListeners(e){return l(this,null,function*(){yield this.sdk.preview(e,{onPreview:this.onPreview.bind(this),onError:this.onError.bind(this),onReconnected:this.onReconnected.bind(this),onReconnecting:this.onReconnecting.bind(this),onDeviceChange:this.onDeviceChange.bind(this),onRoomUpdate:this.onRoomUpdate.bind(this),onPeerUpdate:this.onPeerUpdate.bind(this),onNetworkQuality:this.onNetworkQuality.bind(this)}),this.sdk.addAudioListener({onAudioLevelUpdate:this.onAudioLevelUpdate.bind(this)})})}onNetworkQuality(e){this.setState(t=>{var o;let i=t.room.localPeer||((o=this.sdk.getLocalPeer())==null?void 0:o.peerId);i&&(t.connectionQualities[i]={peerID:i,downlinkQuality:e})},"ConnectionQuality")}onSessionStoreUpdate(e){this.setSessionStoreValueLocally(e,"sessionStoreUpdate")}onPollsUpdate(e,t){let i=Pe[e];this.setState(o=>{let r=t.reduce((a,n)=>{var u;return a[n.id]=$(E({},n),{questions:(u=n.questions)==null?void 0:u.map(P=>{var K,V;return $(E({},P),{answer:P.answer?E({},P.answer):void 0,options:(K=P.options)==null?void 0:K.map(y=>E({},y)),responses:(V=P.responses)==null?void 0:V.map(y=>E({},y))})})}),a},{});xt(o.polls,r)},i),t.forEach(o=>this.hmsNotifications.sendPollUpdate(e,o.id))}startScreenShare(e){return l(this,null,function*(){this.store.getState(he)?this.logPossibleInconsistency("start screenshare is called while it's on"):(yield this.sdk.startScreenShare(()=>this.syncRoomState("screenshareStopped"),e),this.syncRoomState("startScreenShare"))})}stopScreenShare(){return l(this,null,function*(){this.store.getState(he)?(yield this.sdk.stopScreenShare(),this.syncRoomState("stopScreenShare")):this.logPossibleInconsistency("stop screenshare is called while it's not on")})}attachVideoInternal(e,t){return l(this,null,function*(){let i=this.hmsSDKTracks[e];i&&i.type==="video"?yield this.sdk.attachVideo(i,t):this.logPossibleInconsistency("no video track found to add sink")})}syncRoomState(e){e=`${e}_fullSync`,d.time(`store-sync-${e}`);let t={},i=[],o={},r={},a={},n,u=this.sdk.getPeers();for(let y of u){let J=H.convertPeer(y);t[J.id]=J,i.push(J.id);let De=[y.audioTrack,y.videoTrack,...y.auxiliaryTracks];for(let B of De){if(!B)continue;let rt=H.convertTrack(B);o[rt.id]=rt,r[B.trackId]=B}if(y.isLocal){let B=y;n=this.getPreviewFields(B),Object.assign(a,this.getMediaSettings(B))}}let P=this.sdk.getRecordingState(),K=this.sdk.getRTMPState(),V=this.sdk.getHLSState();this.setState(y=>{var B;y.room.peers=i;let J=y.peers,De=y.tracks;Nt(J,t),Lt(De,o),Object.assign(y.settings,a),this.hmsSDKTracks=r,((B=y.preview)==null?void 0:B.localPeer)&&(n==null?void 0:n.localPeer)?Object.assign(y.preview,n):y.preview=n,Object.assign(y.roles,H.convertRoles(this.sdk.getRoles())),Object.assign(y.playlist,H.convertPlaylist(this.sdk.getPlaylistManager())),Object.assign(y.room,H.convertRecordingStreamingState(P,K,V)),Object.assign(y.templateAppData,this.sdk.getTemplateAppData())},e),d.timeEnd(`store-sync-${e}`)}onPreview(e){this.setState(t=>{var i;Object.assign(t.room,H.convertRoom(e,(i=this.sdk.getLocalPeer())==null?void 0:i.peerId)),t.room.roomState=g.Preview},"previewStart"),this.syncRoomState("previewSync")}onJoin(e){let t=this.sdk.getPlaylistManager();this.audioPlaylist=new Re(t,m.audio,this.syncPlaylistState.bind(this),this.store),this.videoPlaylist=new Re(t,m.video,this.syncRoomState.bind(this),this.store),this.syncRoomState("joinSync"),this.setState(i=>{var o;Object.assign(i.room,H.convertRoom(e,(o=this.sdk.getLocalPeer())==null?void 0:o.peerId)),i.room.isConnected=!0,i.room.roomState=g.Connected},"joined"),t.onProgress(this.setProgress),t.onNewTrackStart(i=>{this.syncPlaylistState(`${i.type}PlaylistUpdate`)}),t.onPlaylistEnded(i=>{this.syncPlaylistState(`${i}PlaylistEnded`)}),t.onCurrentTrackEnded(i=>{this.hmsNotifications.sendPlaylistTrackEnded(H.convertPlaylistItem(t,i)),this.syncPlaylistState(`${i.type}PlaylistItemEnded`)})}onRoomUpdate(e,t){this.setState(i=>{var o;Object.assign(i.room,H.convertRoom(t,(o=this.sdk.getLocalPeer())==null?void 0:o.peerId))},e)}onPeerUpdate(e,t){if(![c.HMSPeerUpdate.BECAME_DOMINANT_SPEAKER,c.HMSPeerUpdate.RESIGNED_DOMINANT_SPEAKER].includes(e)){if(Array.isArray(t)){let i=this.store.getState(I),o=t.filter(a=>!i[a.peerId]);if(this.syncRoomState("peersJoined"),this.store.getState(G)){let a=[];for(let n of t){let u=this.store.getState(O(n.peerId));u&&a.push(u)}this.hmsNotifications.sendPeerList(a)}else o.forEach(a=>{let n=this.store.getState(O(a.peerId));n&&this.hmsNotifications.sendPeerUpdate(c.HMSPeerUpdate.PEER_JOINED,n)});return}this.sendPeerUpdateNotification(e,t)}}onTrackUpdate(e,t,i){if(e===c.HMSTrackUpdate.TRACK_REMOVED)this.hmsNotifications.sendTrackUpdate(e,t.trackId),this.handleTrackRemove(t,i);else if([c.HMSTrackUpdate.TRACK_ADDED,c.HMSTrackUpdate.TRACK_REMOVED].includes(e)){let o=pe[e];this.syncRoomState(o),this.hmsNotifications.sendTrackUpdate(e,t.trackId)}else{let o=pe[e]||"trackUpdate",r=H.convertTrack(t);this.setState(a=>{let n=a.tracks[r.id];z(n,r)&&(Je(n,r),Object.assign(n,r))},o),this.hmsNotifications.sendTrackUpdate(e,t.trackId)}}onMessageReceived(e){let t=H.convertMessage(e);t.read=!1,t.ignored=this.ignoredMessageTypes.includes(t.type),this.putMessageInStore(t),this.hmsNotifications.sendMessageReceived(t)}putMessageInStore(e){e.ignored||this.setState(t=>{t.messages.byID[e.id]=e,t.messages.allIDs.push(e.id)},"newMessage")}onAudioLevelUpdate(e){this.setState(t=>{let i={};e.forEach(r=>{if(!r.track||!r.peer)return;let a=r.track.trackId;i[a]=r.audioLevel,t.speakers[a]||(t.speakers[a]={audioLevel:r.audioLevel,peerID:r.peer.peerId,trackID:a})});let o=Object.entries(t.speakers);for(let[r,a]of o)a.audioLevel=i[r]||0,a.audioLevel===0&&delete t.speakers[r]},"audioLevel")}onConnectionQualityUpdate(e){this.setState(t=>{let i=new Set;e.forEach(r=>{let a=r.peerID;!a||(i.add(a),t.connectionQualities[a]?Object.assign(t.connectionQualities[a],r):t.connectionQualities[a]=r)});let o=Object.keys(t.connectionQualities);for(let r of o)i.has(r)||delete t.connectionQualities[r]},"connectionQuality")}onChangeTrackStateRequest(e){var r;let t=this.store.getState(O((r=e.requestedBy)==null?void 0:r.peerId)),i=this.getStoreLocalTrackIDfromSDKTrack(e.track),o=this.store.getState(Se(i));if(!o)return this.logPossibleInconsistency(`Not found track for which track state change was requested, ${e.track}`);e.enabled||this.syncRoomState("changeTrackStateRequest"),this.hmsNotifications.sendChangeTrackStateRequest({requestedBy:t||void 0,track:o,enabled:e.enabled})}onChangeMultiTrackStateRequest(e){var r;let t=this.store.getState(O((r=e.requestedBy)==null?void 0:r.peerId));e.enabled||this.syncRoomState("changeMultiTrackStateRequest");let i=[],o=this.store.getState(f);for(let a of e.tracks){let n=this.getStoreLocalTrackIDfromSDKTrack(a);n&&o[n]&&i.push(o[n])}this.hmsNotifications.sendChangeMultiTrackStateRequest({requestedBy:t||void 0,tracks:i,enabled:e.enabled,type:e.type,source:e.source})}onReconnected(){this.syncRoomState("reconnectedSync"),this.hmsNotifications.sendReconnected(),this.setState(e=>{e.room.roomState=e.room.isConnected?g.Connected:g.Preview},"reconnected")}onReconnecting(e){let t=H.convertException(e);d.e("Reconnection: received error from sdk",t),this.hmsNotifications.sendReconnecting(t),this.setState(i=>{i.room.roomState=g.Reconnecting,i.errors.push(t)},"reconnecting")}onError(e){let t=H.convertException(e);t.isTerminal?(this.leave().then(()=>d.e("error from SDK, left room.")),this.setState(i=>{i.room.roomState=g.Failed,i.errors.push(t)},"errorTerminal")):this.store.getState().errors.length<50&&this.setState(o=>{o.errors.push(t)},"error"),this.syncRoomState("errorSync"),this.hmsNotifications.sendError(t),d.e("received error from sdk",t instanceof F.HMSException?`${t}`:t)}handleTrackRemove(e,t){this.setState(i=>{let o=i.peers[t.peerId],r=i.tracks,a=e.trackId;if(this.isSameStoreSDKTrack(a,o==null?void 0:o.audioTrack))o==null||delete o.audioTrack;else if(this.isSameStoreSDKTrack(a,o==null?void 0:o.videoTrack))o==null||delete o.videoTrack;else{let n=o==null?void 0:o.auxiliaryTracks.indexOf(a);n>-1&&this.isSameStoreSDKTrack(a,o==null?void 0:o.auxiliaryTracks[n])&&(o==null||o.auxiliaryTracks.splice(n,1))}delete r[a],delete this.hmsSDKTracks[a]},"trackRemoved")}setEnabledSDKTrack(e,t){return l(this,null,function*(){let i=this.hmsSDKTracks[e];i?yield i.setEnabled(t):this.logPossibleInconsistency(`track ${e} not present, unable to enabled/disable`)})}setSDKLocalVideoTrackSettings(e,t){return l(this,null,function*(){let i=this.hmsSDKTracks[e];i?yield i.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}setSDKLocalAudioTrackSettings(e,t){return l(this,null,function*(){let i=this.hmsSDKTracks[e];i?yield i.setSettings(t):this.logPossibleInconsistency(`local track ${e} not present, unable to set settings`)})}getMediaSettings(e){var r;let t=this.store.getState(Ae),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}}getPreviewFields(e){var i,o;if(!e.isInPreview())return;let t=H.convertPeer(e);return{localPeer:t.id,audioTrack:t.audioTrack,videoTrack:t.videoTrack,asRole:((i=e.asRole)==null?void 0:i.name)||((o=e.role)==null?void 0:o.name)}}setTrackVolume(e,t){return l(this,null,function*(){let i=this.hmsSDKTracks[t];i?i instanceof F.HMSAudioTrack?(yield i.setVolume(e),this.setState(o=>{let r=o.tracks[t];r&&r.type==="audio"&&(r.volume=e)},"trackVolume")):d.w(`track ${t} is not an audio track`):this.logPossibleInconsistency(`track ${t} not present, unable to set volume`)})}localAndVideoUnmuting(e){let t=this.store.getState(A);if((t==null?void 0:t.videoTrack)!==e)return!1;let i=this.store.getState(Ne),o=this.store.getState(He);return i&&!o}logPossibleInconsistency(e){d.w("possible inconsistency detected - ",e)}addRemoveVideoPlugin(e,t,i){return l(this,null,function*(){if(!e){d.w("Invalid plugin received in store");return}let o=this.store.getState(C);if(o){let r=this.hmsSDKTracks[o];r?(t==="add"?yield r.addPlugin(e,i):t==="remove"&&(yield r.removePlugin(e)),this.syncRoomState(`${t}VideoPlugin`)):this.logPossibleInconsistency(`track ${o} not present, unable to remove plugin`)}})}addRemoveAudioPlugin(e,t){return l(this,null,function*(){if(!e){d.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):t==="remove"&&(yield o.removePlugin(e)),this.syncRoomState(`${t}AudioPlugin`)):this.logPossibleInconsistency(`track ${i} not present, unable to remove plugin`)}})}isSameStoreSDKTrack(e,t){var i;return t?((i=this.hmsSDKTracks[t])==null?void 0:i.trackId)===e:!1}onRoleChangeRequest(e){this.setState(t=>{t.roleChangeRequests.length===0&&t.roleChangeRequests.push(H.convertRoleChangeRequest(e))},"roleChangeRequest")}removeRoleChangeRequest(e){this.setState(t=>{let i=t.roleChangeRequests.findIndex(o=>o.token===e.token);i!==-1&&t.roleChangeRequests.splice(i,1)},"removeRoleChangeRequest")}onRoleUpdate(){this.syncRoomState("roleUpdate")}getStoreLocalTrackIDfromSDKTrack(e){return this.store.getState(Ce).find(i=>this.hmsSDKTracks[i].trackId===e.trackId)}setSessionStoreValueLocally(e,t="setSessionStore"){let i=Array.isArray(e)?e:[e];this.setState(o=>{i.forEach(r=>{o.sessionStore[r.key]=r.value})},t)}};var w=class{constructor(e,t,i){this.getStats=()=>(this.stats||(this.stats=new Me(this.store,this.sdk)),this.stats);e?this.store=e:this.store=w.createNewHMSStore(fe("HMSStore"),ee),i?this.notifications=i:this.notifications=new Xe(this.store),t?this.actions=t:(this.sdk=new ve.HMSSdk,this.actions=new st(this.store,this.sdk,this.notifications)),this.actions.setFrameworkInfo({type:"js",sdkVersion:Bt().version}),this.initialTriggerOnSubscribe=!1,ve.isBrowser&&(window.__hms=this)}triggerOnSubscribe(){this.initialTriggerOnSubscribe||(w.makeStoreTriggerOnSubscribe(this.store),this.initialTriggerOnSubscribe=!0)}getStore(){return this.store}getHMSActions(){return this.actions}getActions(){return this.actions}getNotifications(){return{onNotification:this.notifications.onNotification}}static createNewHMSStore(e,t){let i=(0,Gt.default)(()=>t()),o=i.setState;i.setState=n=>{let u=typeof n=="function"?(0,qt.produce)(n):n;o(u)};let r=i.getState;i.getState=n=>n?n(r()):r(),w.compareWithShallowCheckInSubscribe(i);let a=w.setUpDevtools(i,e);return $(E({},i),{namedSetState:a})}static makeStoreTriggerOnSubscribe(e){let t=e.subscribe;e.subscribe=(i,o,r)=>(i(e.getState(o),void 0),t(i,o,r))}static compareWithShallowCheckInSubscribe(e){let t=e.subscribe;e.subscribe=(i,o,r)=>(o||(o=a=>a),r=r||jt.default,t(i,o,r))}static setUpDevtools(e,t){let i;try{i=window.__REDUX_DEVTOOLS_EXTENSION__||window.top.__REDUX_DEVTOOLS_EXTENSION__}catch(a){}if(!i)return a=>{e.setState(a)};let o=i.connect(w.devtoolsOptions(t));o.prefix=t?`${t} > `:"";let r=e.setState;return e.setState=a=>{r(a),o.send(`${o.prefix}setState`,e.getState())},o.subscribe(w.devtoolsSubscribe(o,e,r)),o.send("setUpStore",e.getState()),(a,n)=>{r(a);let u=n||`${o.prefix}action`;o.send(u,e.getState())}}static devtoolsOptions(e){return{name:e,actionsBlacklist:["audioLevel","playlistProgress","connectionQuality"]}}static devtoolsSubscribe(e,t,i){return o=>{var r,a,n,u;if(o.type==="DISPATCH"&&o.state)["JUMP_TO_ACTION","JUMP_TO_STATE"].includes(o.payload.type)?i(JSON.parse(o.state)):t.setState(JSON.parse(o.state));else if(o.type==="DISPATCH"&&((r=o.payload)==null?void 0:r.type)==="COMMIT")e.init(t.getState());else if(o.type==="DISPATCH"&&((a=o.payload)==null?void 0:a.type)==="IMPORT_STATE"){let P=(n=o.payload.nextLiftedState)==null?void 0:n.actionsById;(((u=o.payload.nextLiftedState)==null?void 0:u.computedStates)||[]).forEach(({state:V},y)=>{let J=P[y]||`${e.prefix}setState`;y===0?e.init(V):(i(V),e.send(J,t.getState()))})}}}};var Me=class{constructor(e,t){this.hmsStore=e;this.sdk=t;this.store=w.createNewHMSStore(fe("HMSStatsStore"),te),this.getState=this.store.getState,this.subscribe=this.store.subscribe,this.getPublishPeerConnection=()=>new Promise(i=>{var o,r;this.hmsStore.getState(N)==="Connected"?i((r=(o=this.sdk)==null?void 0:o.getWebrtcInternals())==null?void 0:r.getPublishPeerConnection()):this.hmsStore.subscribe(a=>{var n,u;a==="Connected"&&i((u=(n=this.sdk)==null?void 0:n.getWebrtcInternals())==null?void 0:u.getPublishPeerConnection())},N)}),this.getSubscribePeerConnection=()=>new Promise(i=>{var o,r;this.hmsStore.getState(N)==="Connected"?i((r=(o=this.sdk)==null?void 0:o.getWebrtcInternals())==null?void 0:r.getSubscribePeerConnection()):this.hmsStore.subscribe(a=>{var n,u;a==="Connected"&&i((u=(n=this.sdk)==null?void 0:n.getWebrtcInternals())==null?void 0:u.getSubscribePeerConnection())},N)}),!!this.sdk&&_t(this.sdk,this.store,this.hmsStore)}};var R=v(require("reselect"));var qi=s=>s.localPeer.id,ji=s=>s.localPeer.audioTrack,Gi=s=>s.localPeer.videoTrack,Fi=(s,e)=>e,Ft=(s,e)=>e,Qi=s=>s.remoteTrackStats,Qt=s=>s.peerStats,it=s=>s.localTrackStats,Q=(0,R.createSelector)([Qt,qi],(s,e)=>s[e]),$i=(0,R.createSelector)(Q,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.packetsLost}),Wi=(0,R.createSelector)(Q,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.jitter}),Ji=(0,R.createSelector)(Q,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bitrate}),Yi=(0,R.createSelector)(Q,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bitrate}),zi=(0,R.createSelector)(Q,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.availableOutgoingBitrate}),Xi=(0,R.createSelector)(Q,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.availableIncomingBitrate}),Zi=(0,R.createSelector)(Q,s=>{var e;return(e=s==null?void 0:s.publish)==null?void 0:e.bytesSent}),eo=(0,R.createSelector)(Q,s=>{var e;return(e=s==null?void 0:s.subscribe)==null?void 0:e.bytesReceived}),to=(0,R.createSelector)([Qt,Fi],(s,e)=>e?s[e]:void 0),so=(0,R.createSelector)([Qi,Ft],(s,e)=>e?s[e]:void 0),ot=(0,R.createSelector)([it,Ft],(s,e)=>e?s[e]:void 0),io=M(to),oo=M(so),ro=(0,R.createSelector)([it,ji],(s,e)=>{var t;return e?(t=s[e])==null?void 0:t[0]:void 0}),ao=M((0,R.createSelector)(ot,s=>s==null?void 0:s[0])),no=(0,R.createSelector)([it,Gi],(s,e)=>{var t;return e?(t=s[e])==null?void 0:t[0]:void 0}),co=M((0,R.createSelector)(ot,s=>s)),lo=s=>M((0,R.createSelector)(ot,e=>{let t=Object.keys(c.simulcastMapping).find(i=>c.simulcastMapping[i]===s);return s&&(e==null?void 0:e.find(i=>i.rid===t))||(e==null?void 0:e[0])})),$t={localPeerStats:Q,packetsLost:$i,jitter:Wi,publishBitrate:Ji,subscribeBitrate:Yi,availablePublishBitrate:zi,availableSubscribeBitrate:Xi,totalBytesSent:Zi,totalBytesReceived:eo,peerStatsByID:io,trackStatsByID:oo,localAudioTrackStatsByID:ao,localVideoTrackStatsByID:co,localVideoTrackStatsByLayer:lo,localAudioTrackStats:ro,localVideoTrackStats:no};
|
|
2
2
|
//# sourceMappingURL=index.cjs.js.map
|