@100mslive/hms-video-store 0.10.0 → 0.10.1-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/controller/beam/BeamController.d.ts +5 -3
- package/dist/controller/beam/BeamSpeakerLabelsLogger.d.ts +3 -3
- package/dist/core/IHMSActions.d.ts +18 -5
- package/dist/core/IHMSStore.d.ts +7 -3
- package/dist/core/hmsSDKStore/HMSNotifications.d.ts +6 -4
- package/dist/core/hmsSDKStore/HMSPlaylist.d.ts +3 -3
- package/dist/core/hmsSDKStore/HMSReactiveStore.d.ts +7 -4
- package/dist/core/hmsSDKStore/HMSSDKActions.d.ts +9 -3
- package/dist/core/hmsSDKStore/HMSSessionStore.d.ts +11 -0
- package/dist/core/hmsSDKStore/internalTypes.d.ts +1 -1
- package/dist/core/schema/index.d.ts +1 -0
- package/dist/core/schema/schema.d.ts +9 -2
- package/dist/core/schema/session-store.d.ts +11 -0
- package/dist/core/selectors/derivedSelectors.d.ts +12 -4
- package/dist/core/selectors/selectors.d.ts +115 -39
- package/dist/core/selectors/selectorsByID.d.ts +137 -43
- package/dist/core/selectors/selectorsByReference.d.ts +21 -7
- 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/controller/beam/BeamController.ts +5 -5
- package/src/controller/beam/BeamSpeakerLabelsLogger.ts +5 -5
- package/src/core/IHMSActions.ts +18 -4
- package/src/core/IHMSStore.ts +5 -3
- package/src/core/hmsSDKStore/HMSNotifications.ts +6 -3
- package/src/core/hmsSDKStore/HMSPlaylist.ts +3 -3
- package/src/core/hmsSDKStore/HMSReactiveStore.ts +13 -11
- package/src/core/hmsSDKStore/HMSSDKActions.ts +46 -6
- package/src/core/hmsSDKStore/HMSSessionStore.ts +28 -0
- package/src/core/hmsSDKStore/internalTypes.ts +1 -1
- package/src/core/schema/index.ts +1 -0
- package/src/core/schema/schema.ts +9 -2
- package/src/core/schema/session-store.ts +11 -0
- package/src/core/selectors/selectors.ts +1 -1
- package/src/core/selectors/selectorsByID.ts +27 -0
- package/src/test/fakeStore/fakeHMSStore.ts +1 -0
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import { HMSNotifications, IHMSNotifications, IHMSStore } from '../../core';
|
|
1
|
+
import { HMSGenericTypes, HMSNotifications, IHMSNotifications, IHMSStore } from '../../core';
|
|
2
2
|
import { IHMSActions } from '../../core/IHMSActions';
|
|
3
3
|
import { IHMSStoreReadOnly } from '../../core/IHMSStore';
|
|
4
4
|
/**
|
|
5
5
|
* @internal
|
|
6
6
|
*/
|
|
7
|
-
export declare class BeamControllerStore {
|
|
7
|
+
export declare class BeamControllerStore<T extends HMSGenericTypes = {
|
|
8
|
+
sessionStore: Record<string, any>;
|
|
9
|
+
}> {
|
|
8
10
|
private readonly actions;
|
|
9
11
|
private readonly store;
|
|
10
12
|
private readonly notifications;
|
|
11
|
-
constructor(hmsStore: IHMSStore
|
|
13
|
+
constructor(hmsStore: IHMSStore<T>, hmsActions: IHMSActions<T>, hmsNotifications: HMSNotifications);
|
|
12
14
|
/**
|
|
13
15
|
* A reactive store which has a subscribe method you can use in combination with selectors
|
|
14
16
|
* to subscribe to a subset of the store. The store serves as a single source of truth for
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { HMSPeer, IHMSStore } from '../../core';
|
|
1
|
+
import { HMSGenericTypes, HMSPeer, IHMSStore } from '../../core';
|
|
2
2
|
import { IHMSActions } from '../../core/IHMSActions';
|
|
3
3
|
/**
|
|
4
4
|
* Log data of audio level and speaker speaking periodically to beam for transcript
|
|
5
5
|
* diarization.
|
|
6
6
|
*/
|
|
7
|
-
export declare class BeamSpeakerLabelsLogger {
|
|
7
|
+
export declare class BeamSpeakerLabelsLogger<T extends HMSGenericTypes> {
|
|
8
8
|
private audioContext?;
|
|
9
9
|
private readonly intervalMs;
|
|
10
10
|
private shouldMonitor;
|
|
@@ -13,7 +13,7 @@ export declare class BeamSpeakerLabelsLogger {
|
|
|
13
13
|
private readonly analysers;
|
|
14
14
|
private readonly store;
|
|
15
15
|
private actions;
|
|
16
|
-
constructor(store: IHMSStore
|
|
16
|
+
constructor(store: IHMSStore<T>, actions: IHMSActions<T>);
|
|
17
17
|
start(): Promise<void>;
|
|
18
18
|
stop(): Promise<void>;
|
|
19
19
|
monitorAudioLevels(): Promise<void>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { HLSTimedMetadata, HMSAudioPlugin, HMSAudioTrackSettings, HMSConfig, HMSLogLevel, HMSPluginSupportResult, HMSPreferredSimulcastLayer, HMSPreviewConfig, HMSScreenShareConfig, HMSVideoPlugin, HMSVideoTrackSettings, TokenRequest, TokenRequestOptions } from '@100mslive/hms-video';
|
|
2
2
|
import { HLSConfig, RTMPRecordingConfig } from './hmsSDKStore/sdkTypes';
|
|
3
|
-
import { HMSChangeMultiTrackStateParams, HMSMessageID, HMSPeerID, HMSRoleName, HMSTrackID, HMSTrackSource, IHMSPlaylistActions } from './schema';
|
|
3
|
+
import { HMSChangeMultiTrackStateParams, HMSGenericTypes, HMSMessageID, HMSPeerID, HMSRoleName, HMSTrackID, HMSTrackSource, IHMSPlaylistActions, IHMSSessionStoreActions } from './schema';
|
|
4
4
|
import { HMSRoleChangeRequest } from './selectors';
|
|
5
5
|
/**
|
|
6
6
|
* The below interface defines our SDK API Surface for taking room related actions.
|
|
@@ -18,7 +18,9 @@ import { HMSRoleChangeRequest } from './selectors';
|
|
|
18
18
|
*
|
|
19
19
|
* @category Core
|
|
20
20
|
*/
|
|
21
|
-
export interface IHMSActions {
|
|
21
|
+
export interface IHMSActions<T extends HMSGenericTypes = {
|
|
22
|
+
sessionStore: Record<string, any>;
|
|
23
|
+
}> {
|
|
22
24
|
preview(config: HMSPreviewConfig): Promise<void>;
|
|
23
25
|
/**
|
|
24
26
|
* join function can be used to join the room, if the room join is successful,
|
|
@@ -118,9 +120,13 @@ export interface IHMSActions {
|
|
|
118
120
|
/**
|
|
119
121
|
* Change settings of the local peer's video track
|
|
120
122
|
* @param settings HMSVideoTrackSettings
|
|
121
|
-
* `({ width, height, codec, maxFramerate, maxBitrate, deviceId, advanced })`
|
|
123
|
+
* `({ width, height, codec, maxFramerate, maxBitrate, deviceId, advanced, facingMode })`
|
|
122
124
|
*/
|
|
123
125
|
setVideoSettings(settings: Partial<HMSVideoTrackSettings>): Promise<void>;
|
|
126
|
+
/**
|
|
127
|
+
* Toggle the camera between front and back if the both the camera's exist
|
|
128
|
+
*/
|
|
129
|
+
switchCamera(): Promise<void>;
|
|
124
130
|
/**
|
|
125
131
|
* You can use the attach and detach video function
|
|
126
132
|
* to add/remove video from an element for a track ID. The benefit of using this
|
|
@@ -309,13 +315,13 @@ export interface IHMSActions {
|
|
|
309
315
|
* Session metadata is available to every peer in the room and is persisted throughout a session
|
|
310
316
|
* till the last peer leaves a room
|
|
311
317
|
*
|
|
312
|
-
* @
|
|
318
|
+
* @deprecated use `actions.sessionStore.set` instead
|
|
313
319
|
*/
|
|
314
320
|
setSessionMetadata(metadata: any): Promise<void>;
|
|
315
321
|
/**
|
|
316
322
|
* Fetch the current room metadata from the server and populate it in store
|
|
317
323
|
*
|
|
318
|
-
* @
|
|
324
|
+
* @deprecated use `actions.sessionStore.observe` instead
|
|
319
325
|
*/
|
|
320
326
|
populateSessionMetadata(): Promise<void>;
|
|
321
327
|
/**
|
|
@@ -412,4 +418,11 @@ export interface IHMSActions {
|
|
|
412
418
|
* @alpha
|
|
413
419
|
*/
|
|
414
420
|
enableBeamSpeakerLabelsLogging(): Promise<void>;
|
|
421
|
+
/**
|
|
422
|
+
* actions that can be performed on the real-time key-value store
|
|
423
|
+
*
|
|
424
|
+
* Values in the session store are available to every peer in the room(who have observed the relevant keys) and
|
|
425
|
+
* is persisted throughout a session till the last peer leaves a room(cleared after the last peer leaves the room)
|
|
426
|
+
*/
|
|
427
|
+
sessionStore: IHMSSessionStoreActions<T['sessionStore']>;
|
|
415
428
|
}
|
package/dist/core/IHMSStore.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { State, StateSelector, StoreApi, Subscribe } from 'zustand/vanilla';
|
|
7
7
|
import { NamedSetState } from './hmsSDKStore/internalTypes';
|
|
8
|
-
import { HMSStatsStore, HMSStore } from './schema';
|
|
8
|
+
import { HMSGenericTypes, HMSStatsStore, HMSStore } from './schema';
|
|
9
9
|
/**
|
|
10
10
|
* HMS Reactive store can be used to subscribe to different parts of the store using selectors
|
|
11
11
|
* and get a callback when the value changes.
|
|
@@ -50,7 +50,9 @@ export declare type IStoreReadOnly<T extends State> = Omit<IStore<T>, 'setState'
|
|
|
50
50
|
* HMS Reactive store can be used to subscribe to different parts of the store using selectors
|
|
51
51
|
* and get a callback when the value changes.
|
|
52
52
|
*/
|
|
53
|
-
export interface IHMSStore extends
|
|
53
|
+
export interface IHMSStore<T extends HMSGenericTypes = {
|
|
54
|
+
sessionStore: Record<string, any>;
|
|
55
|
+
}> extends IStore<HMSStore<T>> {
|
|
54
56
|
}
|
|
55
57
|
/**
|
|
56
58
|
* HMS store can be used to:
|
|
@@ -66,7 +68,9 @@ export interface IHMSStore extends IStore<HMSStore> {
|
|
|
66
68
|
*
|
|
67
69
|
* @category Core
|
|
68
70
|
*/
|
|
69
|
-
export interface IHMSStoreReadOnly extends
|
|
71
|
+
export interface IHMSStoreReadOnly<T extends HMSGenericTypes = {
|
|
72
|
+
sessionStore: Record<string, any>;
|
|
73
|
+
}> extends IStoreReadOnly<HMSStore<T>> {
|
|
70
74
|
}
|
|
71
75
|
export interface IHMSStatsStore extends IStore<HMSStatsStore> {
|
|
72
76
|
}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import * as sdkTypes from './sdkTypes';
|
|
2
2
|
import { IHMSStore } from '../IHMSStore';
|
|
3
|
-
import { HMSChangeMultiTrackStateRequest, HMSChangeTrackStateRequest, HMSDeviceChangeEvent, HMSException, HMSLeaveRoomRequest, HMSMessage, HMSPeer, HMSPlaylistItem, HMSTrackID } from '../schema';
|
|
3
|
+
import { HMSChangeMultiTrackStateRequest, HMSChangeTrackStateRequest, HMSDeviceChangeEvent, HMSException, HMSGenericTypes, HMSLeaveRoomRequest, HMSMessage, HMSPeer, HMSPlaylistItem, HMSTrackID } from '../schema';
|
|
4
4
|
import { HMSNotificationCallback, HMSNotificationTypeParam, IHMSNotifications } from '../schema/notification';
|
|
5
|
-
export declare class HMSNotifications
|
|
5
|
+
export declare class HMSNotifications<T extends HMSGenericTypes = {
|
|
6
|
+
sessionStore: Record<string, any>;
|
|
7
|
+
}> implements IHMSNotifications {
|
|
6
8
|
private id;
|
|
7
9
|
private eventEmitter;
|
|
8
10
|
private store;
|
|
9
|
-
constructor(store: IHMSStore);
|
|
10
|
-
onNotification: <
|
|
11
|
+
constructor(store: IHMSStore<T>);
|
|
12
|
+
onNotification: <T_1 extends HMSNotificationTypeParam>(cb: HMSNotificationCallback<T_1>, type?: T_1 | undefined) => () => void;
|
|
11
13
|
sendPlaylistTrackEnded<T>(item: HMSPlaylistItem<T>): void;
|
|
12
14
|
sendDeviceChange(request: HMSDeviceChangeEvent): void;
|
|
13
15
|
sendLeaveRoom(request: HMSLeaveRoomRequest): void;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { HMSPlaylistManager } from './sdkTypes';
|
|
2
2
|
import { IHMSStore } from '../IHMSStore';
|
|
3
|
-
import { HMSPlaylistItem, HMSPlaylistType, IHMSPlaylistActions } from '../schema';
|
|
4
|
-
export declare class HMSPlaylist implements IHMSPlaylistActions {
|
|
3
|
+
import { HMSGenericTypes, HMSPlaylistItem, HMSPlaylistType, IHMSPlaylistActions } from '../schema';
|
|
4
|
+
export declare class HMSPlaylist<T extends HMSGenericTypes> implements IHMSPlaylistActions {
|
|
5
5
|
private playlistManager;
|
|
6
6
|
private syncPlaylistState;
|
|
7
7
|
private store;
|
|
8
8
|
private type;
|
|
9
|
-
constructor(playlistManager: HMSPlaylistManager, type: HMSPlaylistType, syncPlaylistState: (action: string) => void, store: IHMSStore);
|
|
9
|
+
constructor(playlistManager: HMSPlaylistManager, type: HMSPlaylistType, syncPlaylistState: (action: string) => void, store: IHMSStore<T>);
|
|
10
10
|
play(id: string): Promise<void>;
|
|
11
11
|
pause(): Promise<void>;
|
|
12
12
|
playNext(): Promise<void>;
|
|
@@ -3,6 +3,7 @@ import { HMSNotifications } from './HMSNotifications';
|
|
|
3
3
|
import { BeamControllerStore } from '../../controller/beam/BeamController';
|
|
4
4
|
import { IHMSActions } from '../IHMSActions';
|
|
5
5
|
import { IHMSStatsStoreReadOnly, IHMSStore, IHMSStoreReadOnly, IStore } from '../IHMSStore';
|
|
6
|
+
import { HMSGenericTypes } from '../schema';
|
|
6
7
|
import { IHMSNotifications } from '../schema/notification';
|
|
7
8
|
declare global {
|
|
8
9
|
interface Window {
|
|
@@ -11,7 +12,9 @@ declare global {
|
|
|
11
12
|
__triggerBeamEvent__: (args: any) => void;
|
|
12
13
|
}
|
|
13
14
|
}
|
|
14
|
-
export declare class HMSReactiveStore {
|
|
15
|
+
export declare class HMSReactiveStore<T extends HMSGenericTypes = {
|
|
16
|
+
sessionStore: Record<string, any>;
|
|
17
|
+
}> {
|
|
15
18
|
private readonly sdk?;
|
|
16
19
|
private readonly actions;
|
|
17
20
|
private readonly store;
|
|
@@ -19,7 +22,7 @@ export declare class HMSReactiveStore {
|
|
|
19
22
|
private stats?;
|
|
20
23
|
/** @TODO store flag for both HMSStore and HMSInternalsStore */
|
|
21
24
|
private initialTriggerOnSubscribe;
|
|
22
|
-
constructor(hmsStore?: IHMSStore
|
|
25
|
+
constructor(hmsStore?: IHMSStore<T>, hmsActions?: IHMSActions<T>, hmsNotifications?: HMSNotifications<T>);
|
|
23
26
|
/**
|
|
24
27
|
* By default store.subscribe does not call the handler with the current state at time of subscription,
|
|
25
28
|
* this behaviour can be modified by calling this function. What it means is that instead of calling the
|
|
@@ -42,12 +45,12 @@ export declare class HMSReactiveStore {
|
|
|
42
45
|
*
|
|
43
46
|
* @deprecated use getActions
|
|
44
47
|
*/
|
|
45
|
-
getHMSActions(): IHMSActions
|
|
48
|
+
getHMSActions(): IHMSActions<T>;
|
|
46
49
|
/**
|
|
47
50
|
* Any action which may modify the store or may need to talk to the SDK will happen
|
|
48
51
|
* through the IHMSActions instance returned by this
|
|
49
52
|
*/
|
|
50
|
-
getActions(): IHMSActions
|
|
53
|
+
getActions(): IHMSActions<T>;
|
|
51
54
|
/**
|
|
52
55
|
* This return notification handler function to which you can pass your callback to
|
|
53
56
|
* receive notifications like peer joined, peer left, etc. to show in your UI or use
|
|
@@ -3,7 +3,7 @@ import { HMSNotifications } from './HMSNotifications';
|
|
|
3
3
|
import * as sdkTypes from './sdkTypes';
|
|
4
4
|
import { IHMSActions } from '../IHMSActions';
|
|
5
5
|
import { IHMSStore } from '../IHMSStore';
|
|
6
|
-
import { HMSChangeMultiTrackStateParams, HMSMessage, HMSRoleName, HMSTrackID, HMSTrackSource, IHMSPlaylistActions } from '../schema';
|
|
6
|
+
import { HMSChangeMultiTrackStateParams, HMSGenericTypes, HMSMessage, HMSRoleName, HMSTrackID, HMSTrackSource, IHMSPlaylistActions, IHMSSessionStoreActions } from '../schema';
|
|
7
7
|
import { HMSRoleChangeRequest } from '../selectors';
|
|
8
8
|
/**
|
|
9
9
|
* This class implements the IHMSActions interface for 100ms SDK. It connects with SDK
|
|
@@ -25,7 +25,9 @@ import { HMSRoleChangeRequest } from '../selectors';
|
|
|
25
25
|
* 5. State is immutable, a new copy with new references is created when there is a change,
|
|
26
26
|
* if you try to modify state outside of setState, there'll be an error.
|
|
27
27
|
*/
|
|
28
|
-
export declare class HMSSDKActions
|
|
28
|
+
export declare class HMSSDKActions<T extends HMSGenericTypes = {
|
|
29
|
+
sessionStore: Record<string, any>;
|
|
30
|
+
}> implements IHMSActions<T> {
|
|
29
31
|
private hmsSDKTracks;
|
|
30
32
|
private hmsSDKPeers;
|
|
31
33
|
private readonly sdk;
|
|
@@ -35,8 +37,9 @@ export declare class HMSSDKActions implements IHMSActions {
|
|
|
35
37
|
private ignoredMessageTypes;
|
|
36
38
|
audioPlaylist: IHMSPlaylistActions;
|
|
37
39
|
videoPlaylist: IHMSPlaylistActions;
|
|
40
|
+
sessionStore: IHMSSessionStoreActions<T['sessionStore']>;
|
|
38
41
|
private beamSpeakerLabelsLogger?;
|
|
39
|
-
constructor(store: IHMSStore
|
|
42
|
+
constructor(store: IHMSStore<T>, sdk: HMSSdk, notificationManager: HMSNotifications<T>);
|
|
40
43
|
refreshDevices(): Promise<void>;
|
|
41
44
|
unblockAudio(): Promise<void>;
|
|
42
45
|
setVolume(value: number, trackId?: HMSTrackID): Promise<void>;
|
|
@@ -54,6 +57,7 @@ export declare class HMSSDKActions implements IHMSActions {
|
|
|
54
57
|
setEnabledTrack(trackID: string, enabled: boolean): Promise<void>;
|
|
55
58
|
setAudioSettings(settings: Partial<sdkTypes.HMSAudioTrackSettings>): Promise<void>;
|
|
56
59
|
setVideoSettings(settings: Partial<sdkTypes.HMSVideoTrackSettings>): Promise<void>;
|
|
60
|
+
switchCamera(): Promise<void>;
|
|
57
61
|
sendMessage(message: string): void;
|
|
58
62
|
sendBroadcastMessage(message: string, type?: string): Promise<void>;
|
|
59
63
|
sendGroupMessage(message: string, roles: string[], type?: string): Promise<void>;
|
|
@@ -103,6 +107,7 @@ export declare class HMSSDKActions implements IHMSActions {
|
|
|
103
107
|
private onDeviceChange;
|
|
104
108
|
private sdkPreviewWithListeners;
|
|
105
109
|
private onNetworkQuality;
|
|
110
|
+
private onSessionStoreUpdate;
|
|
106
111
|
private startScreenShare;
|
|
107
112
|
private stopScreenShare;
|
|
108
113
|
private attachVideoInternal;
|
|
@@ -167,6 +172,7 @@ export declare class HMSSDKActions implements IHMSActions {
|
|
|
167
172
|
private setProgress;
|
|
168
173
|
private syncPlaylistState;
|
|
169
174
|
private sendPeerUpdateNotification;
|
|
175
|
+
private setSessionStoreValueLocally;
|
|
170
176
|
/**
|
|
171
177
|
* setState is separate so any future changes to how state change can be done from one place.
|
|
172
178
|
* @param fn
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { HMSSdk, SessionStoreUpdate } from '@100mslive/hms-video';
|
|
2
|
+
import { IHMSSessionStoreActions } from '../schema';
|
|
3
|
+
export declare class HMSSessionStore<T extends Record<string, any>> implements IHMSSessionStoreActions<T> {
|
|
4
|
+
private sdk;
|
|
5
|
+
private setLocally;
|
|
6
|
+
constructor(sdk: HMSSdk, setLocally: (updates: SessionStoreUpdate | SessionStoreUpdate[], actionName?: string) => void);
|
|
7
|
+
private get sdkSessionStore();
|
|
8
|
+
set<K extends keyof T>(key: K, value?: T[K]): Promise<void>;
|
|
9
|
+
observe(keys: keyof T | Array<keyof T>): Promise<void>;
|
|
10
|
+
unobserve(keys: keyof T | Array<keyof T>): Promise<void>;
|
|
11
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { PartialState, State } from 'zustand/vanilla';
|
|
2
2
|
export declare type NamedSetState<T extends State> = {
|
|
3
|
-
<K1 extends keyof T, K2 extends keyof T = K1, K3 extends keyof T = K2, K4 extends keyof T = K3>(partial: PartialState<T, K1, K2, K3, K4>, name
|
|
3
|
+
<K1 extends keyof T, K2 extends keyof T = K1, K3 extends keyof T = K2, K4 extends keyof T = K3>(partial: PartialState<T, K1, K2, K3, K4>, name: string): void;
|
|
4
4
|
};
|
|
@@ -7,7 +7,12 @@ import { HMSRole } from './role';
|
|
|
7
7
|
import { HMSRoom } from './room';
|
|
8
8
|
import { HMSMediaSettings } from './settings';
|
|
9
9
|
import { DeviceMap, HMSConnectionQuality, HMSPeerStats, HMSTrackStats } from '../hmsSDKStore/sdkTypes';
|
|
10
|
-
export interface
|
|
10
|
+
export interface HMSGenericTypes {
|
|
11
|
+
sessionStore: Record<string, any>;
|
|
12
|
+
}
|
|
13
|
+
export interface HMSStore<T extends HMSGenericTypes = {
|
|
14
|
+
sessionStore: Record<string, any>;
|
|
15
|
+
}> {
|
|
11
16
|
room: HMSRoom;
|
|
12
17
|
peers: Record<HMSPeerID, HMSPeer>;
|
|
13
18
|
speakers: Record<HMSTrackID, HMSSpeaker>;
|
|
@@ -23,6 +28,7 @@ export interface HMSStore {
|
|
|
23
28
|
roles: Record<string, HMSRole>;
|
|
24
29
|
appData?: Record<string, any>;
|
|
25
30
|
roleChangeRequests: HMSRoleChangeStoreRequest[];
|
|
31
|
+
/** @deprecated use `sessionStore` instead */
|
|
26
32
|
sessionMetadata?: any;
|
|
27
33
|
preview?: {
|
|
28
34
|
localPeer?: HMSPeerID;
|
|
@@ -31,6 +37,7 @@ export interface HMSStore {
|
|
|
31
37
|
audioTrack?: HMSTrackID;
|
|
32
38
|
};
|
|
33
39
|
errors: HMSException[];
|
|
40
|
+
sessionStore: T['sessionStore'];
|
|
34
41
|
}
|
|
35
42
|
export interface HMSStatsStore {
|
|
36
43
|
remoteTrackStats: Record<HMSTrackID, HMSTrackStats | undefined>;
|
|
@@ -45,5 +52,5 @@ export interface HMSStatsStore {
|
|
|
45
52
|
/**
|
|
46
53
|
* @internal
|
|
47
54
|
*/
|
|
48
|
-
export declare const createDefaultStoreState: () => HMSStore
|
|
55
|
+
export declare const createDefaultStoreState: <T extends HMSGenericTypes>() => HMSStore<T>;
|
|
49
56
|
export declare const createDefaultStatsStore: () => HMSStatsStore;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface IHMSSessionStoreActions<T> {
|
|
2
|
+
set<K extends keyof T>(key: K, value?: T[K]): Promise<void>;
|
|
3
|
+
/**
|
|
4
|
+
* observe a particular key or set of keys to receive updates of its latest value when its changed
|
|
5
|
+
*/
|
|
6
|
+
observe(keys: keyof T | Array<keyof T>): Promise<void>;
|
|
7
|
+
/**
|
|
8
|
+
* unobserve a particular key or set of keys to stop receiving updates of its latest value
|
|
9
|
+
*/
|
|
10
|
+
unobserve(keys: keyof T | Array<keyof T>): Promise<void>;
|
|
11
|
+
}
|
|
@@ -13,16 +13,24 @@ export interface HMSRoleChangeRequest {
|
|
|
13
13
|
role: HMSRole;
|
|
14
14
|
token: string;
|
|
15
15
|
}
|
|
16
|
-
export declare const selectPeersWithAudioStatus: import("reselect").OutputSelector<HMSStore
|
|
16
|
+
export declare const selectPeersWithAudioStatus: import("reselect").OutputSelector<HMSStore<{
|
|
17
|
+
sessionStore: Record<string, any>;
|
|
18
|
+
}>, HMSPeerWithMuteStatus[], (res1: Record<string, HMSPeer>, res2: Record<string, import("../schema").HMSTrack>) => HMSPeerWithMuteStatus[]>;
|
|
17
19
|
/**
|
|
18
20
|
* Select the role change request received for your local peer.
|
|
19
21
|
*/
|
|
20
|
-
export declare const selectRoleChangeRequest: import("reselect").OutputSelector<HMSStore
|
|
22
|
+
export declare const selectRoleChangeRequest: import("reselect").OutputSelector<HMSStore<{
|
|
23
|
+
sessionStore: Record<string, any>;
|
|
24
|
+
}>, HMSRoleChangeRequest | null, (res1: import("../schema").HMSRoleChangeStoreRequest, res2: Record<string, HMSPeer>, res3: Record<string, HMSRole>) => HMSRoleChangeRequest | null>;
|
|
21
25
|
/**
|
|
22
26
|
* Select what streams is the local peer allowed to publish from video, audio and screenshare.
|
|
23
27
|
*/
|
|
24
|
-
export declare const selectIsAllowedToPublish: import("reselect").OutputSelector<HMSStore
|
|
28
|
+
export declare const selectIsAllowedToPublish: import("reselect").OutputSelector<HMSStore<{
|
|
29
|
+
sessionStore: Record<string, any>;
|
|
30
|
+
}>, import("../schema").HMSPublishAllowed, (res: HMSRole | null) => import("../schema").HMSPublishAllowed>;
|
|
25
31
|
/**
|
|
26
32
|
* Select what streams is the local peer allowed to preview from video, audio
|
|
27
33
|
*/
|
|
28
|
-
export declare const selectIsAllowedToPreviewMedia: import("reselect").OutputSelector<HMSStore
|
|
34
|
+
export declare const selectIsAllowedToPreviewMedia: import("reselect").OutputSelector<HMSStore<{
|
|
35
|
+
sessionStore: Record<string, any>;
|
|
36
|
+
}>, import("../schema").HMSPublishAllowed, (res: HMSRole | null) => import("../schema").HMSPublishAllowed>;
|