@fishjam-cloud/react-client 0.5.2 → 0.5.5
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/Client.d.ts +66 -67
- package/dist/Client.d.ts.map +1 -1
- package/dist/Client.js +9 -9
- package/dist/DeviceManager.d.ts +2 -1
- package/dist/DeviceManager.d.ts.map +1 -1
- package/dist/DeviceManager.js +3 -0
- package/dist/create.d.ts +2 -2
- package/dist/create.d.ts.map +1 -1
- package/dist/create.js +2 -8
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/screenShareTrackManager.d.ts +2 -2
- package/dist/screenShareTrackManager.d.ts.map +1 -1
- package/dist/screenShareTrackManager.js +2 -2
- package/dist/state.types.d.ts +18 -18
- package/dist/state.types.d.ts.map +1 -1
- package/dist/trackManager.d.ts +3 -3
- package/dist/trackManager.d.ts.map +1 -1
- package/dist/trackManager.js +23 -6
- package/dist/types.d.ts +41 -36
- package/dist/types.d.ts.map +1 -1
- package/dist/useSetupMedia.d.ts +1 -1
- package/dist/useSetupMedia.d.ts.map +1 -1
- package/dist/useSetupMedia.js +8 -13
- package/dist/utils/track.d.ts +2 -1
- package/dist/utils/track.d.ts.map +1 -1
- package/package.json +3 -3
- package/readme.md +1 -15
package/dist/Client.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import type TypedEmitter from "typed-emitter";
|
|
2
|
-
import type { AuthErrorReason, BandwidthLimit, Component,
|
|
2
|
+
import type { AuthErrorReason, BandwidthLimit, Component, CreateConfig, MessageEvents, Peer, ReconnectionStatus, SimulcastConfig, TrackBandwidthLimit, TrackContext, Encoding } from "@fishjam-cloud/ts-client";
|
|
3
3
|
import { FishjamClient } from "@fishjam-cloud/ts-client";
|
|
4
4
|
import type { PeerId, PeerState, PeerStatus, TrackId, TrackWithOrigin } from "./state.types";
|
|
5
|
-
import type { DeviceManagerConfig, DeviceManagerInitConfig, DeviceManagerStartConfig, Devices, DeviceState, MediaDeviceType, MediaState, TrackType } from "./types";
|
|
5
|
+
import type { ConnectConfig, DeviceManagerConfig, DeviceManagerInitConfig, DeviceManagerStartConfig, Devices, DeviceState, MediaDeviceType, MediaState, PeerMetadata, TrackMetadata, TrackType } from "./types";
|
|
6
6
|
import type { DeviceManagerEvents } from "./DeviceManager";
|
|
7
7
|
import { DeviceManager } from "./DeviceManager";
|
|
8
|
-
export type ClientApi
|
|
9
|
-
local: PeerState
|
|
10
|
-
peers: Record<PeerId, PeerState
|
|
11
|
-
peersTracks: Record<TrackId, TrackWithOrigin
|
|
12
|
-
components: Record<PeerId, PeerState
|
|
13
|
-
componentsTracks: Record<TrackId, TrackWithOrigin
|
|
8
|
+
export type ClientApi = {
|
|
9
|
+
local: PeerState | null;
|
|
10
|
+
peers: Record<PeerId, PeerState>;
|
|
11
|
+
peersTracks: Record<TrackId, TrackWithOrigin>;
|
|
12
|
+
components: Record<PeerId, PeerState>;
|
|
13
|
+
componentsTracks: Record<TrackId, TrackWithOrigin>;
|
|
14
14
|
bandwidthEstimation: bigint;
|
|
15
15
|
status: PeerStatus;
|
|
16
16
|
media: MediaState | null;
|
|
@@ -21,37 +21,37 @@ type DeviceTypeInfo = {
|
|
|
21
21
|
mediaDeviceType: MediaDeviceType;
|
|
22
22
|
trackType: TrackType;
|
|
23
23
|
};
|
|
24
|
-
export interface ClientEvents
|
|
24
|
+
export interface ClientEvents {
|
|
25
25
|
/**
|
|
26
26
|
* Emitted when the websocket connection is closed
|
|
27
27
|
*
|
|
28
28
|
* @param {CloseEvent} event - Close event object from the websocket
|
|
29
29
|
*/
|
|
30
|
-
socketClose: (event: CloseEvent, client: ClientApi
|
|
30
|
+
socketClose: (event: CloseEvent, client: ClientApi) => void;
|
|
31
31
|
/**
|
|
32
32
|
* Emitted when occurs an error in the websocket connection
|
|
33
33
|
*
|
|
34
34
|
* @param {Event} event - Event object from the websocket
|
|
35
35
|
*/
|
|
36
|
-
socketError: (event: Event, client: ClientApi
|
|
36
|
+
socketError: (event: Event, client: ClientApi) => void;
|
|
37
37
|
/**
|
|
38
38
|
* Emitted when the websocket connection is opened
|
|
39
39
|
*
|
|
40
40
|
* @param {Event} event - Event object from the websocket
|
|
41
41
|
*/
|
|
42
|
-
socketOpen: (event: Event, client: ClientApi
|
|
42
|
+
socketOpen: (event: Event, client: ClientApi) => void;
|
|
43
43
|
/** Emitted when authentication is successful */
|
|
44
|
-
authSuccess: (client: ClientApi
|
|
44
|
+
authSuccess: (client: ClientApi) => void;
|
|
45
45
|
/** Emitted when authentication fails */
|
|
46
|
-
authError: (reason: AuthErrorReason, client: ClientApi
|
|
46
|
+
authError: (reason: AuthErrorReason, client: ClientApi) => void;
|
|
47
47
|
/** Emitted when the connection is closed */
|
|
48
|
-
disconnected: (client: ClientApi
|
|
48
|
+
disconnected: (client: ClientApi) => void;
|
|
49
49
|
/** Emitted on successful reconnection */
|
|
50
|
-
reconnected: (client: ClientApi
|
|
50
|
+
reconnected: (client: ClientApi) => void;
|
|
51
51
|
/** Emitted when the process of reconnection starts */
|
|
52
|
-
reconnectionStarted: (client: ClientApi
|
|
52
|
+
reconnectionStarted: (client: ClientApi) => void;
|
|
53
53
|
/** Emitted when the maximum number of reconnection retries is reached */
|
|
54
|
-
reconnectionRetriesLimitReached: (client: ClientApi
|
|
54
|
+
reconnectionRetriesLimitReached: (client: ClientApi) => void;
|
|
55
55
|
/**
|
|
56
56
|
* Called when peer was accepted.
|
|
57
57
|
*/
|
|
@@ -59,112 +59,112 @@ export interface ClientEvents<PeerMetadata, TrackMetadata> {
|
|
|
59
59
|
peerId: string;
|
|
60
60
|
peers: Peer<PeerMetadata, TrackMetadata>[];
|
|
61
61
|
components: Component<PeerMetadata, TrackMetadata>[];
|
|
62
|
-
}, client: ClientApi
|
|
62
|
+
}, client: ClientApi) => void;
|
|
63
63
|
/**
|
|
64
64
|
* Called when peer was not accepted
|
|
65
65
|
* @param metadata - Pass through for client application to communicate further actions to frontend
|
|
66
66
|
*/
|
|
67
|
-
joinError: (metadata: any, client: ClientApi
|
|
67
|
+
joinError: (metadata: any, client: ClientApi) => void;
|
|
68
68
|
/**
|
|
69
69
|
* Called when data in a new track arrives.
|
|
70
70
|
*
|
|
71
71
|
* This callback is always called after {@link MessageEvents.trackAdded}.
|
|
72
72
|
* It informs user that data related to the given track arrives and can be played or displayed.
|
|
73
73
|
*/
|
|
74
|
-
trackReady: (ctx: TrackContext<PeerMetadata, TrackMetadata>, client: ClientApi
|
|
74
|
+
trackReady: (ctx: TrackContext<PeerMetadata, TrackMetadata>, client: ClientApi) => void;
|
|
75
75
|
/**
|
|
76
76
|
* Called each time the peer which was already in the room, adds new track. Fields track and stream will be set to null.
|
|
77
77
|
* These fields will be set to non-null value in {@link MessageEvents.trackReady}
|
|
78
78
|
*/
|
|
79
|
-
trackAdded: (ctx: TrackContext<PeerMetadata, TrackMetadata>, client: ClientApi
|
|
79
|
+
trackAdded: (ctx: TrackContext<PeerMetadata, TrackMetadata>, client: ClientApi) => void;
|
|
80
80
|
/**
|
|
81
81
|
* Called when some track will no longer be sent.
|
|
82
82
|
*
|
|
83
83
|
* It will also be called before {@link MessageEvents.peerLeft} for each track of this peer.
|
|
84
84
|
*/
|
|
85
|
-
trackRemoved: (ctx: TrackContext<PeerMetadata, TrackMetadata>, client: ClientApi
|
|
85
|
+
trackRemoved: (ctx: TrackContext<PeerMetadata, TrackMetadata>, client: ClientApi) => void;
|
|
86
86
|
/**
|
|
87
87
|
* Called each time peer has its track metadata updated.
|
|
88
88
|
*/
|
|
89
|
-
trackUpdated: (ctx: TrackContext<PeerMetadata, TrackMetadata>, client: ClientApi
|
|
89
|
+
trackUpdated: (ctx: TrackContext<PeerMetadata, TrackMetadata>, client: ClientApi) => void;
|
|
90
90
|
/**
|
|
91
91
|
* Called each time new peer joins the room.
|
|
92
92
|
*/
|
|
93
|
-
peerJoined: (peer: Peer<PeerMetadata, TrackMetadata>, client: ClientApi
|
|
93
|
+
peerJoined: (peer: Peer<PeerMetadata, TrackMetadata>, client: ClientApi) => void;
|
|
94
94
|
/**
|
|
95
95
|
* Called each time peer leaves the room.
|
|
96
96
|
*/
|
|
97
|
-
peerLeft: (peer: Peer<PeerMetadata, TrackMetadata>, client: ClientApi
|
|
97
|
+
peerLeft: (peer: Peer<PeerMetadata, TrackMetadata>, client: ClientApi) => void;
|
|
98
98
|
/**
|
|
99
99
|
* Called each time peer has its metadata updated.
|
|
100
100
|
*/
|
|
101
|
-
peerUpdated: (peer: Peer<PeerMetadata, TrackMetadata>, client: ClientApi
|
|
101
|
+
peerUpdated: (peer: Peer<PeerMetadata, TrackMetadata>, client: ClientApi) => void;
|
|
102
102
|
/**
|
|
103
103
|
* Called each time new Component is added to the room.
|
|
104
104
|
*/
|
|
105
|
-
componentAdded: (peer: Component<PeerMetadata, TrackMetadata>, client: ClientApi
|
|
105
|
+
componentAdded: (peer: Component<PeerMetadata, TrackMetadata>, client: ClientApi) => void;
|
|
106
106
|
/**
|
|
107
107
|
* Called each time Component is removed from the room.
|
|
108
108
|
*/
|
|
109
|
-
componentRemoved: (peer: Component<PeerMetadata, TrackMetadata>, client: ClientApi
|
|
109
|
+
componentRemoved: (peer: Component<PeerMetadata, TrackMetadata>, client: ClientApi) => void;
|
|
110
110
|
/**
|
|
111
111
|
* Called each time Component has its metadata updated.
|
|
112
112
|
*/
|
|
113
|
-
componentUpdated: (peer: Component<PeerMetadata, TrackMetadata>, client: ClientApi
|
|
113
|
+
componentUpdated: (peer: Component<PeerMetadata, TrackMetadata>, client: ClientApi) => void;
|
|
114
114
|
/**
|
|
115
115
|
* Called in case of errors related to multimedia session e.g. ICE connection.
|
|
116
116
|
*/
|
|
117
|
-
connectionError: (error: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["connectionError"]>[0], client: ClientApi
|
|
117
|
+
connectionError: (error: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["connectionError"]>[0], client: ClientApi) => void;
|
|
118
118
|
/**
|
|
119
119
|
* Called every time the server estimates client's bandiwdth.
|
|
120
120
|
*
|
|
121
121
|
* @param {bigint} estimation - client's available incoming bitrate estimated
|
|
122
122
|
* by the server. It's measured in bits per second.
|
|
123
123
|
*/
|
|
124
|
-
bandwidthEstimationChanged: (estimation: bigint, client: ClientApi
|
|
125
|
-
encodingChanged: (context: TrackContext<PeerMetadata, TrackMetadata>, client: ClientApi
|
|
124
|
+
bandwidthEstimationChanged: (estimation: bigint, client: ClientApi) => void;
|
|
125
|
+
encodingChanged: (context: TrackContext<PeerMetadata, TrackMetadata>, client: ClientApi) => void;
|
|
126
126
|
/**
|
|
127
127
|
* Emitted every time an update about voice activity is received from the server.
|
|
128
128
|
*/
|
|
129
|
-
voiceActivityChanged: (context: TrackContext<PeerMetadata, TrackMetadata>, client: ClientApi
|
|
130
|
-
managerStarted: (event: Parameters<DeviceManagerEvents["managerInitialized"]>[0] & DeviceTypeInfo, client: ClientApi
|
|
129
|
+
voiceActivityChanged: (context: TrackContext<PeerMetadata, TrackMetadata>, client: ClientApi) => void;
|
|
130
|
+
managerStarted: (event: Parameters<DeviceManagerEvents["managerInitialized"]>[0] & DeviceTypeInfo, client: ClientApi) => void;
|
|
131
131
|
managerInitialized: (event: {
|
|
132
132
|
audio?: DeviceState;
|
|
133
133
|
video?: DeviceState;
|
|
134
|
-
}, client: ClientApi
|
|
135
|
-
deviceReady: (event: Parameters<DeviceManagerEvents["deviceReady"]>[0] & DeviceTypeInfo, client: ClientApi
|
|
136
|
-
devicesStarted: (event: Parameters<DeviceManagerEvents["devicesStarted"]>[0] & DeviceTypeInfo, client: ClientApi
|
|
137
|
-
devicesReady: (event: Parameters<DeviceManagerEvents["devicesReady"]>[0] & DeviceTypeInfo, client: ClientApi
|
|
138
|
-
deviceStopped: (event: DeviceTypeInfo, client: ClientApi
|
|
139
|
-
deviceEnabled: (event: DeviceTypeInfo, client: ClientApi
|
|
140
|
-
deviceDisabled: (event: DeviceTypeInfo, client: ClientApi
|
|
141
|
-
error: (arg: any, client: ClientApi
|
|
142
|
-
targetTrackEncodingRequested: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["targetTrackEncodingRequested"]>[0], client: ClientApi
|
|
143
|
-
localTrackAdded: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackAdded"]>[0], client: ClientApi
|
|
144
|
-
localTrackRemoved: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackRemoved"]>[0], client: ClientApi
|
|
145
|
-
localTrackReplaced: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackReplaced"]>[0], client: ClientApi
|
|
146
|
-
localTrackMuted: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackMuted"]>[0], client: ClientApi
|
|
147
|
-
localTrackUnmuted: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackUnmuted"]>[0], client: ClientApi
|
|
148
|
-
localTrackBandwidthSet: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackBandwidthSet"]>[0], client: ClientApi
|
|
149
|
-
localTrackEncodingBandwidthSet: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackEncodingBandwidthSet"]>[0], client: ClientApi
|
|
150
|
-
localTrackEncodingEnabled: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackEncodingEnabled"]>[0], client: ClientApi
|
|
151
|
-
localTrackEncodingDisabled: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackEncodingDisabled"]>[0], client: ClientApi
|
|
152
|
-
localPeerMetadataChanged: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localPeerMetadataChanged"]>[0], client: ClientApi
|
|
153
|
-
localTrackMetadataChanged: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackMetadataChanged"]>[0], client: ClientApi
|
|
154
|
-
disconnectRequested: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["disconnectRequested"]>[0], client: ClientApi
|
|
134
|
+
}, client: ClientApi) => void;
|
|
135
|
+
deviceReady: (event: Parameters<DeviceManagerEvents["deviceReady"]>[0] & DeviceTypeInfo, client: ClientApi) => void;
|
|
136
|
+
devicesStarted: (event: Parameters<DeviceManagerEvents["devicesStarted"]>[0] & DeviceTypeInfo, client: ClientApi) => void;
|
|
137
|
+
devicesReady: (event: Parameters<DeviceManagerEvents["devicesReady"]>[0] & DeviceTypeInfo, client: ClientApi) => void;
|
|
138
|
+
deviceStopped: (event: DeviceTypeInfo, client: ClientApi) => void;
|
|
139
|
+
deviceEnabled: (event: DeviceTypeInfo, client: ClientApi) => void;
|
|
140
|
+
deviceDisabled: (event: DeviceTypeInfo, client: ClientApi) => void;
|
|
141
|
+
error: (arg: any, client: ClientApi) => void;
|
|
142
|
+
targetTrackEncodingRequested: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["targetTrackEncodingRequested"]>[0], client: ClientApi) => void;
|
|
143
|
+
localTrackAdded: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackAdded"]>[0], client: ClientApi) => void;
|
|
144
|
+
localTrackRemoved: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackRemoved"]>[0], client: ClientApi) => void;
|
|
145
|
+
localTrackReplaced: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackReplaced"]>[0], client: ClientApi) => void;
|
|
146
|
+
localTrackMuted: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackMuted"]>[0], client: ClientApi) => void;
|
|
147
|
+
localTrackUnmuted: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackUnmuted"]>[0], client: ClientApi) => void;
|
|
148
|
+
localTrackBandwidthSet: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackBandwidthSet"]>[0], client: ClientApi) => void;
|
|
149
|
+
localTrackEncodingBandwidthSet: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackEncodingBandwidthSet"]>[0], client: ClientApi) => void;
|
|
150
|
+
localTrackEncodingEnabled: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackEncodingEnabled"]>[0], client: ClientApi) => void;
|
|
151
|
+
localTrackEncodingDisabled: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackEncodingDisabled"]>[0], client: ClientApi) => void;
|
|
152
|
+
localPeerMetadataChanged: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localPeerMetadataChanged"]>[0], client: ClientApi) => void;
|
|
153
|
+
localTrackMetadataChanged: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["localTrackMetadataChanged"]>[0], client: ClientApi) => void;
|
|
154
|
+
disconnectRequested: (event: Parameters<MessageEvents<PeerMetadata, TrackMetadata>["disconnectRequested"]>[0], client: ClientApi) => void;
|
|
155
155
|
}
|
|
156
156
|
export type ReactClientCreteConfig<PeerMetadata, TrackMetadata> = {
|
|
157
157
|
clientConfig?: CreateConfig<PeerMetadata, TrackMetadata>;
|
|
158
158
|
deviceManagerDefaultConfig?: DeviceManagerConfig;
|
|
159
159
|
};
|
|
160
|
-
declare const Client_base: new
|
|
161
|
-
export declare class Client
|
|
160
|
+
declare const Client_base: new () => TypedEmitter<Required<ClientEvents>>;
|
|
161
|
+
export declare class Client extends Client_base {
|
|
162
162
|
private readonly tsClient;
|
|
163
|
-
local: PeerState
|
|
164
|
-
peers: Record<PeerId, PeerState
|
|
165
|
-
components: Record<PeerId, PeerState
|
|
166
|
-
peersTracks: Record<TrackId, TrackWithOrigin
|
|
167
|
-
componentsTracks: Record<TrackId, TrackWithOrigin
|
|
163
|
+
local: PeerState | null;
|
|
164
|
+
peers: Record<PeerId, PeerState>;
|
|
165
|
+
components: Record<PeerId, PeerState>;
|
|
166
|
+
peersTracks: Record<TrackId, TrackWithOrigin>;
|
|
167
|
+
componentsTracks: Record<TrackId, TrackWithOrigin>;
|
|
168
168
|
bandwidthEstimation: bigint;
|
|
169
169
|
status: PeerStatus;
|
|
170
170
|
media: MediaState | null;
|
|
@@ -172,13 +172,14 @@ export declare class Client<PeerMetadata, TrackMetadata> extends Client_base<Pee
|
|
|
172
172
|
reconnectionStatus: ReconnectionStatus;
|
|
173
173
|
videoDeviceManager: DeviceManager;
|
|
174
174
|
audioDeviceManager: DeviceManager;
|
|
175
|
+
private initialized;
|
|
175
176
|
constructor(config?: ReactClientCreteConfig<PeerMetadata, TrackMetadata>);
|
|
176
177
|
setDeviceManagerConfig(config: DeviceManagerConfig): void;
|
|
177
178
|
private trackContextToTrack;
|
|
178
179
|
getTsClient: () => FishjamClient<PeerMetadata, TrackMetadata>;
|
|
179
|
-
connect(config: ConnectConfig
|
|
180
|
+
connect(config: ConnectConfig): void;
|
|
180
181
|
disconnect(): void;
|
|
181
|
-
addTrack(track: MediaStreamTrack,
|
|
182
|
+
addTrack(track: MediaStreamTrack, simulcastConfig?: SimulcastConfig, maxBandwidth?: TrackBandwidthLimit): Promise<string>;
|
|
182
183
|
removeTrack(trackId: string): Promise<void>;
|
|
183
184
|
replaceTrack(trackId: string, newTrack: MediaStreamTrack | null): Promise<void>;
|
|
184
185
|
getStatistics(selector?: MediaStreamTrack | null): Promise<RTCStatsReport>;
|
|
@@ -188,8 +189,6 @@ export declare class Client<PeerMetadata, TrackMetadata> extends Client_base<Pee
|
|
|
188
189
|
setTargetTrackEncoding(trackId: string, encoding: Encoding): void;
|
|
189
190
|
enableTrackEncoding(trackId: string, encoding: Encoding): Promise<void>;
|
|
190
191
|
disableTrackEncoding(trackId: string, encoding: Encoding): Promise<void>;
|
|
191
|
-
updatePeerMetadata: (peerMetadata: PeerMetadata) => void;
|
|
192
|
-
updateTrackMetadata: (trackId: string, trackMetadata: TrackMetadata) => void;
|
|
193
192
|
isReconnecting: () => boolean;
|
|
194
193
|
initializeDevices: (config?: DeviceManagerInitConfig) => Promise<void>;
|
|
195
194
|
startDevices: (config: DeviceManagerStartConfig) => Promise<void>;
|
package/dist/Client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../src/Client.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,SAAS,EACT,
|
|
1
|
+
{"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../src/Client.ts"],"names":[],"mappings":"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"}
|
package/dist/Client.js
CHANGED
|
@@ -16,6 +16,7 @@ export class Client extends EventEmitter {
|
|
|
16
16
|
reconnectionStatus = "idle";
|
|
17
17
|
videoDeviceManager;
|
|
18
18
|
audioDeviceManager;
|
|
19
|
+
initialized = false;
|
|
19
20
|
constructor(config) {
|
|
20
21
|
super();
|
|
21
22
|
this.tsClient = new FishjamClient(config?.clientConfig);
|
|
@@ -292,14 +293,14 @@ export class Client extends EventEmitter {
|
|
|
292
293
|
getTsClient = () => this.tsClient;
|
|
293
294
|
connect(config) {
|
|
294
295
|
this.status = "connecting";
|
|
295
|
-
this.tsClient.connect(config);
|
|
296
|
+
this.tsClient.connect({ ...config, peerMetadata: config?.peerMetadata ?? {} });
|
|
296
297
|
}
|
|
297
298
|
disconnect() {
|
|
298
299
|
this.status = null;
|
|
299
300
|
this.tsClient.disconnect();
|
|
300
301
|
}
|
|
301
|
-
addTrack(track,
|
|
302
|
-
return this.tsClient.addTrack(track,
|
|
302
|
+
addTrack(track, simulcastConfig = { enabled: false, activeEncodings: [], disabledEncodings: [] }, maxBandwidth = 0) {
|
|
303
|
+
return this.tsClient.addTrack(track, undefined, simulcastConfig, maxBandwidth);
|
|
303
304
|
}
|
|
304
305
|
removeTrack(trackId) {
|
|
305
306
|
return this.tsClient.removeTrack(trackId);
|
|
@@ -328,16 +329,15 @@ export class Client extends EventEmitter {
|
|
|
328
329
|
disableTrackEncoding(trackId, encoding) {
|
|
329
330
|
return this.tsClient.disableTrackEncoding(trackId, encoding);
|
|
330
331
|
}
|
|
331
|
-
updatePeerMetadata = (peerMetadata) => {
|
|
332
|
-
this.tsClient.updatePeerMetadata(peerMetadata);
|
|
333
|
-
};
|
|
334
|
-
updateTrackMetadata = (trackId, trackMetadata) => {
|
|
335
|
-
this.tsClient.updateTrackMetadata(trackId, trackMetadata);
|
|
336
|
-
};
|
|
337
332
|
isReconnecting = () => {
|
|
338
333
|
return this.tsClient.isReconnecting();
|
|
339
334
|
};
|
|
340
335
|
initializeDevices = async (config) => {
|
|
336
|
+
// This function should be called only once.
|
|
337
|
+
// Any subsequent calls to this function will be ignored.
|
|
338
|
+
if (this.initialized)
|
|
339
|
+
return;
|
|
340
|
+
this.initialized = true;
|
|
341
341
|
const constraints = {
|
|
342
342
|
video: this.videoDeviceManager.getConstraints(config?.videoTrackConstraints),
|
|
343
343
|
audio: this.audioDeviceManager.getConstraints(config?.audioTrackConstraints),
|
package/dist/DeviceManager.d.ts
CHANGED
|
@@ -26,7 +26,7 @@ export declare class DeviceManager extends DeviceManager_base implements MediaMa
|
|
|
26
26
|
private constraints;
|
|
27
27
|
private storageConfig;
|
|
28
28
|
private status;
|
|
29
|
-
private deviceType;
|
|
29
|
+
private readonly deviceType;
|
|
30
30
|
deviceState: DeviceState;
|
|
31
31
|
constructor(deviceType: "audio" | "video", defaultConfig?: DeviceManagerConfig);
|
|
32
32
|
private createStorageConfig;
|
|
@@ -43,6 +43,7 @@ export declare class DeviceManager extends DeviceManager_base implements MediaMa
|
|
|
43
43
|
stop(): Promise<void>;
|
|
44
44
|
disable(): void;
|
|
45
45
|
enable(): void;
|
|
46
|
+
getDeviceType: () => "audio" | "video";
|
|
46
47
|
setConfig(storage?: boolean | StorageConfig, constraints?: boolean | MediaTrackConstraints): void;
|
|
47
48
|
}
|
|
48
49
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeviceManager.d.ts","sourceRoot":"","sources":["../src/DeviceManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAK1G,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAI9C,MAAM,MAAM,mBAAmB,GAAG;IAChC,cAAc,EAAE,CACd,KAAK,EAAE,WAAW,GAAG;QACnB,WAAW,EAAE,qBAAqB,GAAG,SAAS,CAAC;KAChD,EACD,KAAK,EAAE,WAAW,KACf,IAAI,CAAC;IACV,kBAAkB,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACjD,cAAc,EAAE,CAAC,KAAK,EAAE;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,EAAE,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC7G,WAAW,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,WAAW,CAAA;KAAE,EAAE,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC1E,YAAY,EAAE,CAAC,KAAK,EAAE,WAAW,GAAG;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,EAAE,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACxF,aAAa,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC5C,aAAa,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC5C,cAAc,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAE7C,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAAG,cAAc,GAAG,aAAa,GAAG,OAAO,CAAC;4CAGxD,YAAY,CAAC,mBAAmB,CAAC;AADtE,qBAAa,aACX,SAAQ,kBACR,YAAW,YAAY;IAEvB,OAAO,CAAC,WAAW,CAAoC;IACvD,OAAO,CAAC,aAAa,CAAuB;IAE5C,OAAO,CAAC,MAAM,CAAwC;IACtD,OAAO,CAAC,UAAU,CAAoB;
|
|
1
|
+
{"version":3,"file":"DeviceManager.d.ts","sourceRoot":"","sources":["../src/DeviceManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAK1G,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAI9C,MAAM,MAAM,mBAAmB,GAAG;IAChC,cAAc,EAAE,CACd,KAAK,EAAE,WAAW,GAAG;QACnB,WAAW,EAAE,qBAAqB,GAAG,SAAS,CAAC;KAChD,EACD,KAAK,EAAE,WAAW,KACf,IAAI,CAAC;IACV,kBAAkB,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACjD,cAAc,EAAE,CAAC,KAAK,EAAE;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,EAAE,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC7G,WAAW,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,WAAW,CAAA;KAAE,EAAE,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC1E,YAAY,EAAE,CAAC,KAAK,EAAE,WAAW,GAAG;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,EAAE,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACxF,aAAa,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC5C,aAAa,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC5C,cAAc,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAE7C,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAAG,cAAc,GAAG,aAAa,GAAG,OAAO,CAAC;4CAGxD,YAAY,CAAC,mBAAmB,CAAC;AADtE,qBAAa,aACX,SAAQ,kBACR,YAAW,YAAY;IAEvB,OAAO,CAAC,WAAW,CAAoC;IACvD,OAAO,CAAC,aAAa,CAAuB;IAE5C,OAAO,CAAC,MAAM,CAAwC;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAExC,WAAW,EAAE,WAAW,CAM7B;gBAEU,UAAU,EAAE,OAAO,GAAG,OAAO,EAAE,aAAa,CAAC,EAAE,mBAAmB;IAS9E,OAAO,CAAC,mBAAmB;IAMpB,SAAS,IAAI,mBAAmB;IAIhC,cAAc,CACnB,kBAAkB,EAAE,OAAO,GAAG,qBAAqB,GAAG,SAAS,GAC9D,qBAAqB,GAAG,SAAS;IAO7B,QAAQ,uCAAgC;IAExC,SAAS,2BAKd;IAEK,UAAU,WACP,WAAW,GAAG,IAAI,SACnB,gBAAgB,GAAG,IAAI,WACrB,eAAe,EAAE,kBACV,OAAO,UAChB,WAAW,GAAG,IAAI,iBAWzB;IAEF,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,YAAY,CAIlB;IAEK,aAAa,IAAI,eAAe,GAAG,IAAI;IAI9C,OAAO,CAAC,cAAc;IAMT,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO;IA4EjC,IAAI;IAOV,OAAO;IAWP,MAAM;IAWN,aAAa,0BAElB;IAEK,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,aAAa,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,qBAAqB;CAIlG"}
|
package/dist/DeviceManager.js
CHANGED
|
@@ -150,6 +150,9 @@ export class DeviceManager extends EventEmitter {
|
|
|
150
150
|
this.deviceState.media.enabled = true;
|
|
151
151
|
this.emit("deviceEnabled", this.deviceState);
|
|
152
152
|
}
|
|
153
|
+
getDeviceType = () => {
|
|
154
|
+
return this.deviceType;
|
|
155
|
+
};
|
|
153
156
|
setConfig(storage, constraints) {
|
|
154
157
|
this.storageConfig = this.createStorageConfig(storage);
|
|
155
158
|
this.constraints = constraints ? toMediaTrackConstraints(constraints) : undefined;
|
package/dist/create.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
+
import type { CreateFishjamClient, DeviceManagerConfig, PeerMetadata, TrackMetadata } from "./types";
|
|
1
2
|
import type { CreateConfig } from "@fishjam-cloud/ts-client";
|
|
2
|
-
import type { DeviceManagerConfig, CreateFishjamClient } from "./types";
|
|
3
3
|
/**
|
|
4
4
|
* Create a client that can be used with a context.
|
|
5
5
|
* Returns context provider, and two hooks to interact with the context.
|
|
6
6
|
*
|
|
7
7
|
* @returns ContextProvider, useSelector, useConnect
|
|
8
8
|
*/
|
|
9
|
-
export declare function create
|
|
9
|
+
export declare function create(config?: CreateConfig<PeerMetadata, TrackMetadata>, deviceManagerDefaultConfig?: DeviceManagerConfig): CreateFishjamClient;
|
|
10
10
|
//# sourceMappingURL=create.d.ts.map
|
package/dist/create.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../src/create.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../src/create.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,mBAAmB,EACnB,mBAAmB,EAGnB,YAAY,EAIZ,aAAa,EAGd,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAuD7D;;;;;GAKG;AACH,wBAAgB,MAAM,CACpB,MAAM,CAAC,EAAE,YAAY,CAAC,YAAY,EAAE,aAAa,CAAC,EAClD,0BAA0B,CAAC,EAAE,mBAAmB,GAC/C,mBAAmB,CA+KrB"}
|
package/dist/create.js
CHANGED
|
@@ -61,12 +61,7 @@ const eventNames = [
|
|
|
61
61
|
export function create(config, deviceManagerDefaultConfig) {
|
|
62
62
|
const FishjamContext = createContext(undefined);
|
|
63
63
|
function FishjamContextProvider({ children }) {
|
|
64
|
-
const memoClient = useMemo(() => {
|
|
65
|
-
return new Client({
|
|
66
|
-
clientConfig: config,
|
|
67
|
-
deviceManagerDefaultConfig,
|
|
68
|
-
});
|
|
69
|
-
}, []);
|
|
64
|
+
const memoClient = useMemo(() => new Client({ clientConfig: config, deviceManagerDefaultConfig }), []);
|
|
70
65
|
const clientRef = useRef(memoClient);
|
|
71
66
|
const mutationRef = useRef(false);
|
|
72
67
|
const subscribe = useCallback((subscribeCallback) => {
|
|
@@ -83,7 +78,7 @@ export function create(config, deviceManagerDefaultConfig) {
|
|
|
83
78
|
const lastSnapshotRef = useRef(null);
|
|
84
79
|
const getSnapshot = useCallback(() => {
|
|
85
80
|
if (mutationRef.current || lastSnapshotRef.current === null) {
|
|
86
|
-
|
|
81
|
+
lastSnapshotRef.current = {
|
|
87
82
|
remote: clientRef.current.peers,
|
|
88
83
|
media: clientRef.current.media,
|
|
89
84
|
bandwidthEstimation: clientRef.current.bandwidthEstimation,
|
|
@@ -94,7 +89,6 @@ export function create(config, deviceManagerDefaultConfig) {
|
|
|
94
89
|
client: clientRef.current,
|
|
95
90
|
reconnectionStatus: clientRef.current.reconnectionStatus,
|
|
96
91
|
};
|
|
97
|
-
lastSnapshotRef.current = state;
|
|
98
92
|
mutationRef.current = false;
|
|
99
93
|
}
|
|
100
94
|
return lastSnapshotRef.current;
|
package/dist/index.d.ts
CHANGED
|
@@ -2,8 +2,9 @@ export { create } from "./create";
|
|
|
2
2
|
export { Client } from "./Client";
|
|
3
3
|
export type { ClientEvents } from "./Client";
|
|
4
4
|
export type { PeerState, Track, PeerId, TrackId, TrackWithOrigin, Origin, PeerStatus, Selector, State, SetStore, } from "./state.types";
|
|
5
|
-
export type { DeviceManagerConfig, StorageConfig, Devices, UserMediaAPI, UseSetupMediaResult, UseSetupMediaConfig, CreateFishjamClient, ScreenshareApi, UseConnect, TrackManager, TrackMiddleware,
|
|
5
|
+
export type { DeviceManagerConfig, StorageConfig, Devices, UserMediaAPI, UseSetupMediaResult, UseSetupMediaConfig, CreateFishjamClient, ScreenshareApi, UseConnect, ConnectConfig, TrackManager, TrackMiddleware, TrackMetadata, // only for compatibility reasons, will be removed in: FCE-415
|
|
6
|
+
PeerMetadata, } from "./types";
|
|
6
7
|
export { AUDIO_TRACK_CONSTRAINTS, VIDEO_TRACK_CONSTRAINTS, SCREEN_SHARING_MEDIA_CONSTRAINTS } from "./constraints";
|
|
7
|
-
export type { Peer, MessageEvents, CreateConfig, TrackBandwidthLimit, SimulcastBandwidthLimit, BandwidthLimit, WebRTCEndpointEvents, TrackContextEvents, Endpoint, SimulcastConfig, TrackContext, VadStatus, EncodingReason, MetadataParser,
|
|
8
|
+
export type { Peer, MessageEvents, CreateConfig, TrackBandwidthLimit, SimulcastBandwidthLimit, BandwidthLimit, WebRTCEndpointEvents, TrackContextEvents, Endpoint, SimulcastConfig, TrackContext, VadStatus, EncodingReason, MetadataParser, AuthErrorReason, Encoding, } from "@fishjam-cloud/ts-client";
|
|
8
9
|
export { FishjamClient } from "@fishjam-cloud/ts-client";
|
|
9
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,YAAY,EACV,SAAS,EACT,KAAK,EACL,MAAM,EACN,OAAO,EACP,eAAe,EACf,MAAM,EACN,UAAU,EACV,QAAQ,EACR,KAAK,EACL,QAAQ,GACT,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,OAAO,EACP,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,UAAU,EACV,YAAY,EACZ,eAAe,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,YAAY,EACV,SAAS,EACT,KAAK,EACL,MAAM,EACN,OAAO,EACP,eAAe,EACf,MAAM,EACN,UAAU,EACV,QAAQ,EACR,KAAK,EACL,QAAQ,GACT,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,OAAO,EACP,YAAY,EACZ,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,UAAU,EACV,aAAa,EACb,YAAY,EACZ,eAAe,EACf,aAAa,EAAE,8DAA8D;AAC7E,YAAY,GACb,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,gCAAgC,EAAE,MAAM,eAAe,CAAC;AAEnH,YAAY,EACV,IAAI,EACJ,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,uBAAuB,EACvB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,SAAS,EACT,cAAc,EACd,cAAc,EACd,eAAe,EACf,QAAQ,GACT,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { FishjamClient } from "@fishjam-cloud/ts-client";
|
|
2
|
-
import type { ScreenshareApi, ScreenshareState } from "./types";
|
|
3
|
-
export declare const useScreenShare:
|
|
2
|
+
import type { PeerMetadata, ScreenshareApi, ScreenshareState, TrackMetadata } from "./types";
|
|
3
|
+
export declare const useScreenShare: ([state, setState]: [ScreenshareState, React.Dispatch<React.SetStateAction<ScreenshareState>>], tsClient: FishjamClient<PeerMetadata, TrackMetadata>) => ScreenshareApi;
|
|
4
4
|
//# sourceMappingURL=screenShareTrackManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screenShareTrackManager.d.ts","sourceRoot":"","sources":["../src/screenShareTrackManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9D,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAoB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"screenShareTrackManager.d.ts","sourceRoot":"","sources":["../src/screenShareTrackManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9D,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAoB,MAAM,SAAS,CAAC;AAS/G,eAAO,MAAM,cAAc,sBAEN,CAAC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC,YACnF,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,KACnD,cAmGF,CAAC"}
|
|
@@ -14,9 +14,9 @@ export const useScreenShare = (
|
|
|
14
14
|
audio: props?.audioConstraints ?? true,
|
|
15
15
|
});
|
|
16
16
|
const [video, audio] = getTracks(stream);
|
|
17
|
-
const addTrackPromises = [tsClient.addTrack(video
|
|
17
|
+
const addTrackPromises = [tsClient.addTrack(video)];
|
|
18
18
|
if (audio)
|
|
19
|
-
addTrackPromises.push(tsClient.addTrack(audio
|
|
19
|
+
addTrackPromises.push(tsClient.addTrack(audio));
|
|
20
20
|
const [videoId, audioId] = await Promise.all(addTrackPromises);
|
|
21
21
|
setState({ stream, trackIds: { videoId, audioId } });
|
|
22
22
|
};
|
package/dist/state.types.d.ts
CHANGED
|
@@ -1,36 +1,36 @@
|
|
|
1
1
|
import type { Encoding, VadStatus, SimulcastConfig, ReconnectionStatus } from "@fishjam-cloud/ts-client";
|
|
2
|
-
import type { MediaState } from "./types";
|
|
2
|
+
import type { MediaState, PeerMetadata, TrackMetadata } from "./types";
|
|
3
3
|
import type { Devices } from "./types";
|
|
4
4
|
import type { Client } from "./Client";
|
|
5
5
|
export type TrackId = string;
|
|
6
6
|
export type PeerId = string;
|
|
7
|
-
export type Track
|
|
7
|
+
export type Track = {
|
|
8
8
|
stream: MediaStream | null;
|
|
9
9
|
encoding: Encoding | null;
|
|
10
10
|
trackId: TrackId;
|
|
11
11
|
metadata?: TrackMetadata;
|
|
12
|
-
rawMetadata:
|
|
12
|
+
rawMetadata: Record<string, unknown>;
|
|
13
13
|
metadataParsingError?: any;
|
|
14
14
|
simulcastConfig: SimulcastConfig | null;
|
|
15
15
|
vadStatus: VadStatus;
|
|
16
16
|
track: MediaStreamTrack | null;
|
|
17
17
|
};
|
|
18
|
-
export interface Origin
|
|
18
|
+
export interface Origin {
|
|
19
19
|
id: string;
|
|
20
20
|
type: string;
|
|
21
|
-
metadata?:
|
|
22
|
-
rawMetadata:
|
|
21
|
+
metadata?: PeerMetadata;
|
|
22
|
+
rawMetadata: Record<string, unknown>;
|
|
23
23
|
metadataParsingError?: any;
|
|
24
24
|
}
|
|
25
|
-
export type TrackWithOrigin
|
|
26
|
-
origin: Origin
|
|
25
|
+
export type TrackWithOrigin = Track & {
|
|
26
|
+
origin: Origin;
|
|
27
27
|
};
|
|
28
|
-
export type PeerState
|
|
28
|
+
export type PeerState = {
|
|
29
29
|
id: PeerId;
|
|
30
30
|
metadata?: PeerMetadata;
|
|
31
|
-
rawMetadata:
|
|
31
|
+
rawMetadata: Record<string, unknown>;
|
|
32
32
|
metadataParsingError?: any;
|
|
33
|
-
tracks: Record<TrackId, Track
|
|
33
|
+
tracks: Record<TrackId, Track>;
|
|
34
34
|
};
|
|
35
35
|
export type PeerStatus = "connecting" | "connected" | "authenticated" | "joined" | "error" | "closed" | null;
|
|
36
36
|
export type UseReconnection = {
|
|
@@ -39,17 +39,17 @@ export type UseReconnection = {
|
|
|
39
39
|
isError: boolean;
|
|
40
40
|
isIdle: boolean;
|
|
41
41
|
};
|
|
42
|
-
export type State
|
|
43
|
-
local: PeerState
|
|
44
|
-
remote: Record<PeerId, PeerState
|
|
45
|
-
tracks: Record<TrackId, TrackWithOrigin
|
|
42
|
+
export type State = {
|
|
43
|
+
local: PeerState | null;
|
|
44
|
+
remote: Record<PeerId, PeerState>;
|
|
45
|
+
tracks: Record<TrackId, TrackWithOrigin>;
|
|
46
46
|
bandwidthEstimation: bigint;
|
|
47
47
|
status: PeerStatus;
|
|
48
48
|
media: MediaState | null;
|
|
49
49
|
devices: Devices;
|
|
50
|
-
client: Client
|
|
50
|
+
client: Client;
|
|
51
51
|
reconnectionStatus: ReconnectionStatus;
|
|
52
52
|
};
|
|
53
|
-
export type SetStore
|
|
54
|
-
export type Selector<
|
|
53
|
+
export type SetStore = (setter: (prevState: State) => State) => void;
|
|
54
|
+
export type Selector<Result> = (snapshot: State) => Result;
|
|
55
55
|
//# sourceMappingURL=state.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.types.d.ts","sourceRoot":"","sources":["../src/state.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACzG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"state.types.d.ts","sourceRoot":"","sources":["../src/state.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACzG,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAC7B,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC;AAE5B,MAAM,MAAM,KAAK,GAAG;IAClB,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,oBAAoB,CAAC,EAAE,GAAG,CAAC;IAC3B,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,oBAAoB,CAAC,EAAE,GAAG,CAAC;CAC5B;AAED,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG;IACpC,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,oBAAoB,CAAC,EAAE,GAAG,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,WAAW,GAAG,eAAe,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,IAAI,CAAC;AAE7G,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IAClB,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACzC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,kBAAkB,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,KAAK,KAAK,KAAK,KAAK,IAAI,CAAC;AAErE,MAAM,MAAM,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,MAAM,CAAC"}
|
package/dist/trackManager.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { FishjamClient } from "@fishjam-cloud/ts-client";
|
|
2
|
-
import type { MediaManager, TrackManager } from "./types";
|
|
3
|
-
interface TrackManagerConfig
|
|
2
|
+
import type { MediaManager, PeerMetadata, TrackManager, TrackMetadata } from "./types";
|
|
3
|
+
interface TrackManagerConfig {
|
|
4
4
|
mediaManager: MediaManager;
|
|
5
5
|
tsClient: FishjamClient<PeerMetadata, TrackMetadata>;
|
|
6
6
|
}
|
|
7
|
-
export declare const useTrackManager:
|
|
7
|
+
export declare const useTrackManager: ({ mediaManager, tsClient }: TrackManagerConfig) => TrackManager;
|
|
8
8
|
export {};
|
|
9
9
|
//# sourceMappingURL=trackManager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trackManager.d.ts","sourceRoot":"","sources":["../src/trackManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAwC,MAAM,0BAA0B,CAAC;AACpG,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAmB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"trackManager.d.ts","sourceRoot":"","sources":["../src/trackManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAwC,MAAM,0BAA0B,CAAC;AACpG,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAmB,MAAM,SAAS,CAAC;AAKxG,UAAU,kBAAkB;IAC1B,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;CACtD;AAOD,eAAO,MAAM,eAAe,+BAAgC,kBAAkB,KAAG,YA6IhF,CAAC"}
|
package/dist/trackManager.js
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
import { getRemoteOrLocalTrack } from "./utils/track";
|
|
2
2
|
import { useEffect, useState } from "react";
|
|
3
|
-
|
|
3
|
+
const TRACK_TYPE_TO_DEVICE = {
|
|
4
|
+
video: "camera",
|
|
5
|
+
audio: "microphone",
|
|
6
|
+
};
|
|
7
|
+
export const useTrackManager = ({ mediaManager, tsClient }) => {
|
|
4
8
|
const [currentTrackId, setCurrentTrackId] = useState(null);
|
|
9
|
+
const [paused, setPaused] = useState(false);
|
|
5
10
|
const [currentTrackMiddleware, setCurrentTrackMiddleware] = useState(null);
|
|
11
|
+
const type = TRACK_TYPE_TO_DEVICE[mediaManager.getDeviceType()];
|
|
12
|
+
const getMetadata = () => ({ type, paused });
|
|
6
13
|
useEffect(() => {
|
|
7
14
|
const disconnectedHandler = () => {
|
|
8
15
|
setCurrentTrackId(null);
|
|
@@ -38,7 +45,7 @@ export const useTrackManager = ({ mediaManager, tsClient, }) => {
|
|
|
38
45
|
async function stop() {
|
|
39
46
|
mediaManager?.stop();
|
|
40
47
|
}
|
|
41
|
-
async function startStreaming(
|
|
48
|
+
async function startStreaming(simulcastConfig, maxBandwidth) {
|
|
42
49
|
if (currentTrackId)
|
|
43
50
|
throw Error("Track already added");
|
|
44
51
|
const media = mediaManager.getMedia();
|
|
@@ -49,8 +56,10 @@ export const useTrackManager = ({ mediaManager, tsClient, }) => {
|
|
|
49
56
|
return track.trackId;
|
|
50
57
|
// see `getRemoteOrLocalTrackContext()` explanation
|
|
51
58
|
setCurrentTrackId(media.track.id);
|
|
59
|
+
const trackMetadata = { ...getMetadata(), paused: false };
|
|
52
60
|
const remoteTrackId = await tsClient.addTrack(media.track, trackMetadata, simulcastConfig, maxBandwidth);
|
|
53
61
|
setCurrentTrackId(remoteTrackId);
|
|
62
|
+
setPaused(false);
|
|
54
63
|
return remoteTrackId;
|
|
55
64
|
}
|
|
56
65
|
async function refreshStreamedTrack() {
|
|
@@ -63,18 +72,25 @@ export const useTrackManager = ({ mediaManager, tsClient, }) => {
|
|
|
63
72
|
function stopStreaming() {
|
|
64
73
|
const prevTrack = getPreviousTrack();
|
|
65
74
|
setCurrentTrackId(null);
|
|
75
|
+
setPaused(true);
|
|
66
76
|
return tsClient.removeTrack(prevTrack.trackId);
|
|
67
77
|
}
|
|
68
|
-
function pauseStreaming() {
|
|
78
|
+
async function pauseStreaming() {
|
|
69
79
|
const prevTrack = getPreviousTrack();
|
|
70
|
-
|
|
80
|
+
setPaused(true);
|
|
81
|
+
await tsClient.replaceTrack(prevTrack.trackId, null);
|
|
82
|
+
const trackMetadata = { ...getMetadata(), paused: true };
|
|
83
|
+
return tsClient.updateTrackMetadata(prevTrack.trackId, trackMetadata);
|
|
71
84
|
}
|
|
72
|
-
function resumeStreaming() {
|
|
85
|
+
async function resumeStreaming() {
|
|
73
86
|
const prevTrack = getPreviousTrack();
|
|
74
87
|
const media = mediaManager.getMedia();
|
|
75
88
|
if (!media)
|
|
76
89
|
throw Error("Device is unavailable");
|
|
77
|
-
|
|
90
|
+
setPaused(false);
|
|
91
|
+
await tsClient.replaceTrack(prevTrack.trackId, media.track);
|
|
92
|
+
const trackMetadata = { ...getMetadata(), paused: false };
|
|
93
|
+
return tsClient.updateTrackMetadata(prevTrack.trackId, trackMetadata);
|
|
78
94
|
}
|
|
79
95
|
function disableTrack() {
|
|
80
96
|
return mediaManager.disable();
|
|
@@ -95,5 +111,6 @@ export const useTrackManager = ({ mediaManager, tsClient, }) => {
|
|
|
95
111
|
enableTrack,
|
|
96
112
|
currentTrackMiddleware,
|
|
97
113
|
refreshStreamedTrack,
|
|
114
|
+
paused,
|
|
98
115
|
};
|
|
99
116
|
};
|
package/dist/types.d.ts
CHANGED
|
@@ -1,7 +1,15 @@
|
|
|
1
|
-
import type { ConnectConfig, SimulcastConfig, TrackBandwidthLimit, TrackKind } from "@fishjam-cloud/ts-client";
|
|
1
|
+
import type { ConnectConfig as TSClientConnectConfig, SimulcastConfig, TrackBandwidthLimit, TrackKind } from "@fishjam-cloud/ts-client";
|
|
2
2
|
import type { PeerState, PeerStatus, Selector, State, Track, TrackId, TrackWithOrigin, UseReconnection } from "./state.types";
|
|
3
3
|
import type { JSX, ReactNode } from "react";
|
|
4
4
|
import type { Client } from "./Client";
|
|
5
|
+
export type PeerMetadata = {
|
|
6
|
+
displayName?: string;
|
|
7
|
+
};
|
|
8
|
+
export type TrackMetadata = {
|
|
9
|
+
type: "camera" | "microphone" | "screenShareVideo" | "screenShareAudio";
|
|
10
|
+
paused: boolean;
|
|
11
|
+
displayName?: string;
|
|
12
|
+
};
|
|
5
13
|
export type DevicesStatus = "OK" | "Error" | "Not requested" | "Requesting";
|
|
6
14
|
export type MediaStatus = "OK" | "Error" | "Not requested" | "Requesting";
|
|
7
15
|
export type Media = {
|
|
@@ -47,15 +55,11 @@ export type DeviceError = {
|
|
|
47
55
|
} | {
|
|
48
56
|
name: "UNHANDLED_ERROR";
|
|
49
57
|
};
|
|
50
|
-
export type Errors = {
|
|
51
|
-
audio?: DeviceError | null;
|
|
52
|
-
video?: DeviceError | null;
|
|
53
|
-
};
|
|
54
58
|
export type CurrentDevices = {
|
|
55
59
|
videoinput: MediaDeviceInfo | null;
|
|
56
60
|
audioinput: MediaDeviceInfo | null;
|
|
57
61
|
};
|
|
58
|
-
export type UseSetupMediaConfig
|
|
62
|
+
export type UseSetupMediaConfig = {
|
|
59
63
|
camera: {
|
|
60
64
|
/**
|
|
61
65
|
* Determines whether broadcasting should start when the user connects to the server with an active camera stream.
|
|
@@ -77,7 +81,6 @@ export type UseSetupMediaConfig<TrackMetadata> = {
|
|
|
77
81
|
*/
|
|
78
82
|
onDeviceStop?: "remove" | "mute";
|
|
79
83
|
trackConstraints: boolean | MediaTrackConstraints;
|
|
80
|
-
defaultTrackMetadata?: TrackMetadata;
|
|
81
84
|
defaultSimulcastConfig?: SimulcastConfig;
|
|
82
85
|
defaultMaxBandwidth?: TrackBandwidthLimit;
|
|
83
86
|
};
|
|
@@ -103,7 +106,6 @@ export type UseSetupMediaConfig<TrackMetadata> = {
|
|
|
103
106
|
*/
|
|
104
107
|
onDeviceStop?: "remove" | "mute";
|
|
105
108
|
trackConstraints: boolean | MediaTrackConstraints;
|
|
106
|
-
defaultTrackMetadata?: TrackMetadata;
|
|
107
109
|
defaultMaxBandwidth?: TrackBandwidthLimit;
|
|
108
110
|
};
|
|
109
111
|
screenShare: {
|
|
@@ -115,7 +117,6 @@ export type UseSetupMediaConfig<TrackMetadata> = {
|
|
|
115
117
|
* Determines whether broadcasting should start when the user initiates the camera and is connected to the server.
|
|
116
118
|
*/
|
|
117
119
|
broadcastOnDeviceStart?: boolean;
|
|
118
|
-
defaultTrackMetadata?: TrackMetadata;
|
|
119
120
|
defaultMaxBandwidth?: TrackBandwidthLimit;
|
|
120
121
|
};
|
|
121
122
|
startOnMount?: boolean;
|
|
@@ -135,6 +136,7 @@ export interface MediaManager {
|
|
|
135
136
|
track: MediaStreamTrack | null;
|
|
136
137
|
enabled: boolean;
|
|
137
138
|
} | null;
|
|
139
|
+
getDeviceType: () => "audio" | "video";
|
|
138
140
|
}
|
|
139
141
|
export type TrackMiddleware = ((track: MediaStreamTrack | null) => MediaStreamTrack | null) | null;
|
|
140
142
|
export type ScreenshareState = {
|
|
@@ -145,19 +147,20 @@ export type ScreenshareState = {
|
|
|
145
147
|
};
|
|
146
148
|
tracksMiddleware?: TracksMiddleware | null;
|
|
147
149
|
} | null;
|
|
148
|
-
export interface TrackManager
|
|
150
|
+
export interface TrackManager {
|
|
149
151
|
initialize: (deviceId?: string) => Promise<void>;
|
|
150
152
|
stop: () => Promise<void>;
|
|
151
|
-
startStreaming: (
|
|
153
|
+
startStreaming: (simulcastConfig?: SimulcastConfig, maxBandwidth?: TrackBandwidthLimit) => Promise<string>;
|
|
152
154
|
stopStreaming: () => Promise<void>;
|
|
153
155
|
pauseStreaming: () => Promise<void>;
|
|
154
156
|
resumeStreaming: () => Promise<void>;
|
|
157
|
+
paused: boolean;
|
|
155
158
|
disableTrack: () => void;
|
|
156
159
|
enableTrack: () => void;
|
|
157
160
|
setTrackMiddleware: (middleware: TrackMiddleware) => Promise<void>;
|
|
158
161
|
currentTrackMiddleware: TrackMiddleware;
|
|
159
162
|
refreshStreamedTrack: () => Promise<void>;
|
|
160
|
-
getCurrentTrack: () => Track
|
|
163
|
+
getCurrentTrack: () => Track | null;
|
|
161
164
|
}
|
|
162
165
|
export type UserMediaAPI = {
|
|
163
166
|
status: DevicesStatus | null;
|
|
@@ -173,9 +176,8 @@ export type TrackManagerState = {
|
|
|
173
176
|
currentTrackId: TrackId | null;
|
|
174
177
|
currentTrackMiddleware: TrackMiddleware;
|
|
175
178
|
};
|
|
176
|
-
export type ScreenshareApi
|
|
179
|
+
export type ScreenshareApi = {
|
|
177
180
|
startStreaming: (props?: {
|
|
178
|
-
metadata?: TrackMetadata;
|
|
179
181
|
audioConstraints?: boolean | MediaTrackConstraints;
|
|
180
182
|
videoConstraints?: boolean | MediaTrackConstraints;
|
|
181
183
|
}) => Promise<void>;
|
|
@@ -183,8 +185,8 @@ export type ScreenshareApi<TrackMetadata> = {
|
|
|
183
185
|
stream: MediaStream | null;
|
|
184
186
|
videoTrack: MediaStreamTrack | null;
|
|
185
187
|
audioTrack: MediaStreamTrack | null;
|
|
186
|
-
videoBroadcast: Track
|
|
187
|
-
audioBroadcast: Track
|
|
188
|
+
videoBroadcast: Track | null;
|
|
189
|
+
audioBroadcast: Track | null;
|
|
188
190
|
setTracksMiddleware: (middleware: TracksMiddleware | null) => Promise<void>;
|
|
189
191
|
currentTracksMiddleware: TracksMiddleware | null;
|
|
190
192
|
};
|
|
@@ -196,35 +198,38 @@ export type FishjamContextProviderProps = {
|
|
|
196
198
|
children: ReactNode;
|
|
197
199
|
};
|
|
198
200
|
export type TracksMiddleware = (videoTrack: MediaStreamTrack, audioTrack: MediaStreamTrack | null) => [MediaStreamTrack, MediaStreamTrack | null];
|
|
199
|
-
export type FishjamContextType
|
|
200
|
-
state: State
|
|
201
|
+
export type FishjamContextType = {
|
|
202
|
+
state: State;
|
|
201
203
|
screenshareState: [ScreenshareState, React.Dispatch<React.SetStateAction<ScreenshareState>>];
|
|
202
|
-
videoTrackManager: TrackManager
|
|
203
|
-
audioTrackManager: TrackManager
|
|
204
|
+
videoTrackManager: TrackManager;
|
|
205
|
+
audioTrackManager: TrackManager;
|
|
206
|
+
};
|
|
207
|
+
export type ConnectConfig = Omit<TSClientConnectConfig<PeerMetadata>, "peerMetadata"> & {
|
|
208
|
+
peerMetadata?: PeerMetadata;
|
|
204
209
|
};
|
|
205
|
-
export type UseConnect
|
|
206
|
-
type DistinguishedTracks
|
|
207
|
-
videoTracks: Track
|
|
208
|
-
audioTracks: Track
|
|
210
|
+
export type UseConnect = (config: ConnectConfig) => () => void;
|
|
211
|
+
type DistinguishedTracks = {
|
|
212
|
+
videoTracks: Track[];
|
|
213
|
+
audioTracks: Track[];
|
|
209
214
|
};
|
|
210
|
-
export type PeerStateWithTracks
|
|
211
|
-
export type CreateFishjamClient
|
|
215
|
+
export type PeerStateWithTracks = PeerState & DistinguishedTracks;
|
|
216
|
+
export type CreateFishjamClient = {
|
|
212
217
|
FishjamContextProvider: ({ children }: FishjamContextProviderProps) => JSX.Element;
|
|
213
|
-
useConnect: () => (config: ConnectConfig
|
|
218
|
+
useConnect: () => (config: ConnectConfig) => () => void;
|
|
214
219
|
useDisconnect: () => () => void;
|
|
215
220
|
useStatus: () => PeerStatus;
|
|
216
|
-
useSelector: <Result>(selector: Selector<
|
|
217
|
-
useTracks: () => Record<TrackId, TrackWithOrigin
|
|
218
|
-
useSetupMedia: (config: UseSetupMediaConfig
|
|
219
|
-
useCamera: () => Devices["camera"] & TrackManager
|
|
220
|
-
useMicrophone: () => Devices["microphone"] & TrackManager
|
|
221
|
-
useClient: () => Client
|
|
221
|
+
useSelector: <Result>(selector: Selector<Result>) => Result;
|
|
222
|
+
useTracks: () => Record<TrackId, TrackWithOrigin>;
|
|
223
|
+
useSetupMedia: (config: UseSetupMediaConfig) => UseSetupMediaResult;
|
|
224
|
+
useCamera: () => Devices["camera"] & TrackManager;
|
|
225
|
+
useMicrophone: () => Devices["microphone"] & TrackManager;
|
|
226
|
+
useClient: () => Client;
|
|
222
227
|
useReconnection: () => UseReconnection;
|
|
223
228
|
useParticipants: () => {
|
|
224
|
-
localParticipant: PeerStateWithTracks
|
|
225
|
-
participants: PeerStateWithTracks
|
|
229
|
+
localParticipant: PeerStateWithTracks | null;
|
|
230
|
+
participants: PeerStateWithTracks[];
|
|
226
231
|
};
|
|
227
|
-
useScreenShare: () => ScreenshareApi
|
|
232
|
+
useScreenShare: () => ScreenshareApi;
|
|
228
233
|
};
|
|
229
234
|
export type TrackType = TrackKind | "audiovideo";
|
|
230
235
|
export type MediaDeviceType = "displayMedia" | "userMedia";
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/useSetupMedia.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { FishjamContextType, UseSetupMediaConfig, UseSetupMediaResult } from "./types";
|
|
2
|
-
export declare const createUseSetupMediaHook:
|
|
2
|
+
export declare const createUseSetupMediaHook: (useFishjamContext: () => FishjamContextType) => (config: UseSetupMediaConfig) => UseSetupMediaResult;
|
|
3
3
|
//# sourceMappingURL=useSetupMedia.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSetupMedia.d.ts","sourceRoot":"","sources":["../src/useSetupMedia.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAK5F,eAAO,MAAM,uBAAuB,
|
|
1
|
+
{"version":3,"file":"useSetupMedia.d.ts","sourceRoot":"","sources":["../src/useSetupMedia.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAK5F,eAAO,MAAM,uBAAuB,sBAAuB,MAAM,kBAAkB,cAOjE,mBAAmB,KAAG,mBA+OvC,CAAC"}
|
package/dist/useSetupMedia.js
CHANGED
|
@@ -14,13 +14,10 @@ export const createUseSetupMediaHook = (useFishjamContext) => {
|
|
|
14
14
|
useEffect(() => {
|
|
15
15
|
if (!configRef.current.startOnMount)
|
|
16
16
|
return;
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
videoTrackConstraints: configRef?.current.camera.trackConstraints,
|
|
22
|
-
});
|
|
23
|
-
}
|
|
17
|
+
state.client.initializeDevices({
|
|
18
|
+
audioTrackConstraints: configRef?.current.microphone.trackConstraints,
|
|
19
|
+
videoTrackConstraints: configRef?.current.camera.trackConstraints,
|
|
20
|
+
});
|
|
24
21
|
// eslint-disable-next-line
|
|
25
22
|
}, []);
|
|
26
23
|
useEffect(() => {
|
|
@@ -33,7 +30,7 @@ export const createUseSetupMediaHook = (useFishjamContext) => {
|
|
|
33
30
|
if (!stream && config.broadcastOnDeviceStart) {
|
|
34
31
|
pending = true;
|
|
35
32
|
await videoTrackManager
|
|
36
|
-
.startStreaming(config.
|
|
33
|
+
.startStreaming(config.defaultSimulcastConfig, config.defaultMaxBandwidth)
|
|
37
34
|
.finally(() => {
|
|
38
35
|
pending = false;
|
|
39
36
|
});
|
|
@@ -102,7 +99,7 @@ export const createUseSetupMediaHook = (useFishjamContext) => {
|
|
|
102
99
|
const stream = camera.stream;
|
|
103
100
|
const config = configRef.current.camera;
|
|
104
101
|
if (stream && config.broadcastOnConnect) {
|
|
105
|
-
await videoTrackManager.startStreaming(config.
|
|
102
|
+
await videoTrackManager.startStreaming(config.defaultSimulcastConfig, config.defaultMaxBandwidth);
|
|
106
103
|
}
|
|
107
104
|
};
|
|
108
105
|
state.client.on("joined", broadcastCameraOnConnect);
|
|
@@ -119,9 +116,7 @@ export const createUseSetupMediaHook = (useFishjamContext) => {
|
|
|
119
116
|
if (isBroadcastedTrackChanged(client, pending)) {
|
|
120
117
|
if (!stream && config.broadcastOnDeviceStart) {
|
|
121
118
|
pending = true;
|
|
122
|
-
await audioTrackManager
|
|
123
|
-
.startStreaming(config.defaultTrackMetadata, undefined, config.defaultMaxBandwidth)
|
|
124
|
-
.finally(() => {
|
|
119
|
+
await audioTrackManager.startStreaming(undefined, config.defaultMaxBandwidth).finally(() => {
|
|
125
120
|
pending = false;
|
|
126
121
|
});
|
|
127
122
|
}
|
|
@@ -188,7 +183,7 @@ export const createUseSetupMediaHook = (useFishjamContext) => {
|
|
|
188
183
|
const config = configRef.current.microphone;
|
|
189
184
|
const microphone = client.devices.microphone;
|
|
190
185
|
if (microphone.stream && config.broadcastOnConnect) {
|
|
191
|
-
await audioTrackManager.startStreaming(
|
|
186
|
+
await audioTrackManager.startStreaming(undefined, config.defaultMaxBandwidth);
|
|
192
187
|
}
|
|
193
188
|
};
|
|
194
189
|
state.client.on("joined", broadcastMicrophoneOnConnect);
|
package/dist/utils/track.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { FishjamClient } from "@fishjam-cloud/ts-client";
|
|
2
2
|
import type { Track } from "../state.types";
|
|
3
|
-
|
|
3
|
+
import type { PeerMetadata, TrackMetadata } from "../types";
|
|
4
|
+
export declare const getRemoteOrLocalTrack: (tsClient: FishjamClient<PeerMetadata, TrackMetadata>, remoteOrLocalTrackId: string | null) => Track | null;
|
|
4
5
|
//# sourceMappingURL=track.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"track.d.ts","sourceRoot":"","sources":["../../src/utils/track.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"track.d.ts","sourceRoot":"","sources":["../../src/utils/track.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAsC5D,eAAO,MAAM,qBAAqB,aACtB,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,wBAC9B,MAAM,GAAG,IAAI,iBAKpC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fishjam-cloud/react-client",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.5",
|
|
4
4
|
"description": "React client library for Fishjam Cloud",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Fishjam Cloud Team",
|
|
@@ -50,11 +50,11 @@
|
|
|
50
50
|
"react": "^18.2.0",
|
|
51
51
|
"typed-emitter": "^2.1.0",
|
|
52
52
|
"typedoc": "^0.26.6",
|
|
53
|
-
"typedoc-plugin-mdn-links": "^3.2.
|
|
53
|
+
"typedoc-plugin-mdn-links": "^3.2.10",
|
|
54
54
|
"typescript": "^5.5.4"
|
|
55
55
|
},
|
|
56
56
|
"dependencies": {
|
|
57
|
-
"@fishjam-cloud/ts-client": "0.5.
|
|
57
|
+
"@fishjam-cloud/ts-client": "0.5.5",
|
|
58
58
|
"events": "3.3.0",
|
|
59
59
|
"lodash.isequal": "4.5.0"
|
|
60
60
|
},
|
package/readme.md
CHANGED
|
@@ -61,22 +61,9 @@ import { SCREEN_SHARING_MEDIA_CONSTRAINTS } from "@fishjam-cloud/react-client";
|
|
|
61
61
|
import { create } from "@fishjam-cloud/react-client";
|
|
62
62
|
import { useState } from "react";
|
|
63
63
|
|
|
64
|
-
// Example metadata types for peer and track
|
|
65
|
-
// You can define your own metadata types just make sure they are serializable
|
|
66
|
-
export type PeerMetadata = {
|
|
67
|
-
name: string;
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
export type TrackMetadata = {
|
|
71
|
-
type: "camera" | "screen";
|
|
72
|
-
};
|
|
73
|
-
|
|
74
64
|
// Create a Fishjam client instance
|
|
75
65
|
// remember to use FishjamContextProvider
|
|
76
|
-
export const { useApi, useTracks, useStatus, useConnect, useDisconnect, FishjamContextProvider } = create
|
|
77
|
-
PeerMetadata,
|
|
78
|
-
TrackMetadata
|
|
79
|
-
>();
|
|
66
|
+
export const { useApi, useTracks, useStatus, useConnect, useDisconnect, FishjamContextProvider } = create();
|
|
80
67
|
|
|
81
68
|
export const App = () => {
|
|
82
69
|
const [token, setToken] = useState("");
|
|
@@ -96,7 +83,6 @@ export const App = () => {
|
|
|
96
83
|
onClick={() => {
|
|
97
84
|
if (!token || token === "") throw Error("Token is empty");
|
|
98
85
|
connect({
|
|
99
|
-
peerMetadata: { name: "John Doe" }, // example metadata
|
|
100
86
|
token: token,
|
|
101
87
|
});
|
|
102
88
|
}}
|