@fishjam-cloud/react-client 0.5.2 → 0.6.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.
Files changed (58) hide show
  1. package/dist/Client.d.ts +68 -69
  2. package/dist/Client.d.ts.map +1 -1
  3. package/dist/Client.js +9 -9
  4. package/dist/DeviceManager.d.ts +2 -1
  5. package/dist/DeviceManager.d.ts.map +1 -1
  6. package/dist/DeviceManager.js +3 -0
  7. package/dist/fishjamProvider.d.ts +12 -0
  8. package/dist/fishjamProvider.d.ts.map +1 -0
  9. package/dist/fishjamProvider.js +30 -0
  10. package/dist/hooks/clientState.d.ts +4 -0
  11. package/dist/hooks/clientState.d.ts.map +1 -0
  12. package/dist/hooks/clientState.js +81 -0
  13. package/dist/hooks/connection.d.ts +6 -0
  14. package/dist/hooks/connection.d.ts.map +1 -0
  15. package/dist/hooks/connection.js +28 -0
  16. package/dist/hooks/devices.d.ts +4 -0
  17. package/dist/hooks/devices.d.ts.map +1 -0
  18. package/dist/hooks/devices.js +9 -0
  19. package/dist/hooks/fishjamContext.d.ts +4 -0
  20. package/dist/hooks/fishjamContext.d.ts.map +1 -0
  21. package/dist/hooks/fishjamContext.js +8 -0
  22. package/dist/hooks/participants.d.ts +6 -0
  23. package/dist/hooks/participants.d.ts.map +1 -0
  24. package/dist/hooks/participants.js +13 -0
  25. package/dist/hooks/public.d.ts +7 -0
  26. package/dist/hooks/public.d.ts.map +1 -0
  27. package/dist/hooks/public.js +6 -0
  28. package/dist/hooks/screenShare.d.ts +3 -0
  29. package/dist/hooks/screenShare.d.ts.map +1 -0
  30. package/dist/{screenShareTrackManager.js → hooks/screenShare.js} +8 -6
  31. package/dist/hooks/setupMedia.d.ts +3 -0
  32. package/dist/hooks/setupMedia.d.ts.map +1 -0
  33. package/dist/hooks/setupMedia.js +200 -0
  34. package/dist/hooks/state.d.ts +6 -0
  35. package/dist/hooks/state.d.ts.map +1 -0
  36. package/dist/hooks/state.js +15 -0
  37. package/dist/index.d.ts +5 -3
  38. package/dist/index.d.ts.map +1 -1
  39. package/dist/index.js +2 -1
  40. package/dist/state.types.d.ts +18 -18
  41. package/dist/state.types.d.ts.map +1 -1
  42. package/dist/trackManager.d.ts +3 -3
  43. package/dist/trackManager.d.ts.map +1 -1
  44. package/dist/trackManager.js +30 -13
  45. package/dist/types.d.ts +48 -45
  46. package/dist/types.d.ts.map +1 -1
  47. package/dist/utils/track.d.ts +2 -1
  48. package/dist/utils/track.d.ts.map +1 -1
  49. package/package.json +4 -5
  50. package/readme.md +1 -15
  51. package/dist/create.d.ts +0 -10
  52. package/dist/create.d.ts.map +0 -1
  53. package/dist/create.js +0 -201
  54. package/dist/screenShareTrackManager.d.ts +0 -4
  55. package/dist/screenShareTrackManager.d.ts.map +0 -1
  56. package/dist/useSetupMedia.d.ts +0 -3
  57. package/dist/useSetupMedia.d.ts.map +0 -1
  58. package/dist/useSetupMedia.js +0 -206
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
- import type { JSX, ReactNode } from "react";
3
+ import type { JSX, PropsWithChildren } 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<TrackMetadata> = {
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<TrackMetadata> {
150
+ export interface TrackManager {
149
151
  initialize: (deviceId?: string) => Promise<void>;
150
152
  stop: () => Promise<void>;
151
- startStreaming: (trackMetadata?: TrackMetadata, simulcastConfig?: SimulcastConfig, maxBandwidth?: TrackBandwidthLimit) => Promise<string>;
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<TrackMetadata> | null;
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<TrackMetadata> = {
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<TrackMetadata> | null;
187
- audioBroadcast: Track<TrackMetadata> | null;
188
+ videoBroadcast: Track | null;
189
+ audioBroadcast: Track | null;
188
190
  setTracksMiddleware: (middleware: TracksMiddleware | null) => Promise<void>;
189
191
  currentTracksMiddleware: TracksMiddleware | null;
190
192
  };
@@ -192,39 +194,40 @@ export type Devices = {
192
194
  camera: UserMediaAPI;
193
195
  microphone: UserMediaAPI;
194
196
  };
195
- export type FishjamContextProviderProps = {
196
- children: ReactNode;
197
- };
198
197
  export type TracksMiddleware = (videoTrack: MediaStreamTrack, audioTrack: MediaStreamTrack | null) => [MediaStreamTrack, MediaStreamTrack | null];
199
- export type FishjamContextType<PeerMetadata, TrackMetadata> = {
200
- state: State<PeerMetadata, TrackMetadata>;
198
+ export type FishjamContextType = {
199
+ state: State;
201
200
  screenshareState: [ScreenshareState, React.Dispatch<React.SetStateAction<ScreenshareState>>];
202
- videoTrackManager: TrackManager<TrackMetadata>;
203
- audioTrackManager: TrackManager<TrackMetadata>;
204
- };
205
- export type UseConnect<PeerMetadata> = (config: ConnectConfig<PeerMetadata>) => () => void;
206
- type DistinguishedTracks<TrackMetadata> = {
207
- videoTracks: Track<TrackMetadata>[];
208
- audioTracks: Track<TrackMetadata>[];
209
- };
210
- export type PeerStateWithTracks<PeerMetadata, TrackMetadata> = PeerState<PeerMetadata, TrackMetadata> & DistinguishedTracks<TrackMetadata>;
211
- export type CreateFishjamClient<PeerMetadata, TrackMetadata> = {
212
- FishjamContextProvider: ({ children }: FishjamContextProviderProps) => JSX.Element;
213
- useConnect: () => (config: ConnectConfig<PeerMetadata>) => () => void;
201
+ videoTrackManager: TrackManager;
202
+ audioTrackManager: TrackManager;
203
+ };
204
+ export type ConnectConfig = Omit<TSClientConnectConfig<PeerMetadata>, "peerMetadata"> & {
205
+ peerMetadata?: PeerMetadata;
206
+ };
207
+ export type UseConnect = (config: ConnectConfig) => () => void;
208
+ type DistinguishedTracks = {
209
+ videoTracks: Track[];
210
+ audioTracks: Track[];
211
+ };
212
+ export type PeerStateWithTracks = PeerState & DistinguishedTracks;
213
+ export type Participiants = {
214
+ localParticipant: PeerStateWithTracks | null;
215
+ participants: PeerStateWithTracks[];
216
+ };
217
+ export type CreateFishjamClient = {
218
+ FishjamContextProvider: ({ children }: PropsWithChildren) => JSX.Element;
219
+ useConnect: () => (config: ConnectConfig) => () => void;
214
220
  useDisconnect: () => () => void;
215
221
  useStatus: () => PeerStatus;
216
- useSelector: <Result>(selector: Selector<PeerMetadata, TrackMetadata, Result>) => Result;
217
- useTracks: () => Record<TrackId, TrackWithOrigin<PeerMetadata, TrackMetadata>>;
218
- useSetupMedia: (config: UseSetupMediaConfig<TrackMetadata>) => UseSetupMediaResult;
219
- useCamera: () => Devices["camera"] & TrackManager<TrackMetadata>;
220
- useMicrophone: () => Devices["microphone"] & TrackManager<TrackMetadata>;
221
- useClient: () => Client<PeerMetadata, TrackMetadata>;
222
+ useSelector: <Result>(selector: Selector<Result>) => Result;
223
+ useTracks: () => Record<TrackId, TrackWithOrigin>;
224
+ useSetupMedia: (config: UseSetupMediaConfig) => UseSetupMediaResult;
225
+ useCamera: () => Devices["camera"] & TrackManager;
226
+ useMicrophone: () => Devices["microphone"] & TrackManager;
227
+ useClient: () => Client;
222
228
  useReconnection: () => UseReconnection;
223
- useParticipants: () => {
224
- localParticipant: PeerStateWithTracks<PeerMetadata, TrackMetadata> | null;
225
- participants: PeerStateWithTracks<PeerMetadata, TrackMetadata>[];
226
- };
227
- useScreenShare: () => ScreenshareApi<TrackMetadata>;
229
+ useParticipants: () => Participiants;
230
+ useScreenShare: () => ScreenshareApi;
228
231
  };
229
232
  export type TrackType = TrackKind | "audiovideo";
230
233
  export type MediaDeviceType = "displayMedia" | "userMedia";
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,IAAI,qBAAqB,EACtC,eAAe,EACf,mBAAmB,EACnB,SAAS,EACV,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EACV,SAAS,EACT,UAAU,EACV,QAAQ,EACR,KAAK,EACL,KAAK,EACL,OAAO,EACP,eAAe,EACf,eAAe,EAChB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,GAAG,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGvC,MAAM,MAAM,YAAY,GAAG;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,QAAQ,GAAG,YAAY,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;IACxE,MAAM,EAAE,OAAO,CAAC;IAEhB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,OAAO,GAAG,eAAe,GAAG,YAAY,CAAC;AAC5E,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,OAAO,GAAG,eAAe,GAAG,YAAY,CAAC;AAE1E,MAAM,MAAM,KAAK,GAAG;IAClB,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;IAClC,aAAa,EAAE,aAAa,CAAC;IAC7B,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,WAAW,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,qBAAqB,CAAC,EAAE,OAAO,GAAG,qBAAqB,CAAC;IACxD,qBAAqB,CAAC,EAAE,OAAO,GAAG,qBAAqB,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,gBAAgB,CAAC,EAAE,OAAO,GAAG,qBAAqB,CAAC;IACnD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,aAAa,EAAE,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IACrD,cAAc,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACjC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,sBAAsB,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAC3B;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,GACzB;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAEhC,MAAM,MAAM,cAAc,GAAG;IAAE,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;IAAC,UAAU,EAAE,eAAe,GAAG,IAAI,CAAA;CAAE,CAAC;AAExG,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE;QACN;;WAEG;QACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B;;WAEG;QACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;QACjC;;;WAGG;QACH,cAAc,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;QACtC;;;;WAIG;QACH,YAAY,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;QAEjC,gBAAgB,EAAE,OAAO,GAAG,qBAAqB,CAAC;QAClD,sBAAsB,CAAC,EAAE,eAAe,CAAC;QACzC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;KAC3C,CAAC;IACF,UAAU,EAAE;QACV;;WAEG;QACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B;;WAEG;QACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;QACjC;;;;WAIG;QACH,cAAc,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;QAEtC;;;;WAIG;QACH,YAAY,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;QAEjC,gBAAgB,EAAE,OAAO,GAAG,qBAAqB,CAAC;QAClD,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;KAC3C,CAAC;IACF,WAAW,EAAE;QACX;;WAEG;QACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B;;WAEG;QACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;QAEjC,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;KAC3C,CAAC;IACF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,MAAM,IAAI,CAAC;CAClB,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtD,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,SAAS,EAAE,MAAM,gBAAgB,EAAE,CAAC;IACpC,QAAQ,EAAE,MAAM;QAAE,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACxG,aAAa,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC;CACxC;AAED,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,KAAK,gBAAgB,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;AAEnG,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAC5C,GAAG,IAAI,CAAC;AAET,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,cAAc,EAAE,CAAC,eAAe,CAAC,EAAE,eAAe,EAAE,YAAY,CAAC,EAAE,mBAAmB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3G,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,kBAAkB,EAAE,CAAC,UAAU,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,sBAAsB,EAAE,eAAe,CAAC;IACxC,oBAAoB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,eAAe,EAAE,MAAM,KAAK,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;IACnC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,cAAc,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B,sBAAsB,EAAE,eAAe,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,cAAc,EAAE,CAAC,KAAK,CAAC,EAAE;QACvB,gBAAgB,CAAC,EAAE,OAAO,GAAG,qBAAqB,CAAC;QACnD,gBAAgB,CAAC,EAAE,OAAO,GAAG,qBAAqB,CAAC;KACpD,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpB,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACpC,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACpC,cAAc,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,mBAAmB,EAAE,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,uBAAuB,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAClD,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,YAAY,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,CAC7B,UAAU,EAAE,gBAAgB,EAC5B,UAAU,EAAE,gBAAgB,GAAG,IAAI,KAChC,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC,CAAC;AAEjD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,KAAK,EAAE,KAAK,CAAC;IACb,gBAAgB,EAAE,CAAC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC7F,iBAAiB,EAAE,YAAY,CAAC;IAChC,iBAAiB,EAAE,YAAY,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC,GAAG;IAAE,YAAY,CAAC,EAAE,YAAY,CAAA;CAAE,CAAC;AACxH,MAAM,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,aAAa,KAAK,MAAM,IAAI,CAAC;AAE/D,KAAK,mBAAmB,GAAG;IACzB,WAAW,EAAE,KAAK,EAAE,CAAC;IACrB,WAAW,EAAE,KAAK,EAAE,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,mBAAmB,CAAC;AAElE,MAAM,MAAM,aAAa,GAAG;IAC1B,gBAAgB,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC7C,YAAY,EAAE,mBAAmB,EAAE,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,sBAAsB,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,iBAAiB,KAAK,GAAG,CAAC,OAAO,CAAC;IACzE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,KAAK,MAAM,IAAI,CAAC;IACxD,aAAa,EAAE,MAAM,MAAM,IAAI,CAAC;IAChC,SAAS,EAAE,MAAM,UAAU,CAAC;IAC5B,WAAW,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC;IAC5D,SAAS,EAAE,MAAM,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAClD,aAAa,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,mBAAmB,CAAC;IACpE,SAAS,EAAE,MAAM,OAAO,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;IAClD,aAAa,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;IAC1D,SAAS,EAAE,MAAM,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,eAAe,CAAC;IACvC,eAAe,EAAE,MAAM,aAAa,CAAC;IACrC,cAAc,EAAE,MAAM,cAAc,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,YAAY,CAAC;AACjD,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG,WAAW,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { FishjamClient } from "@fishjam-cloud/ts-client";
2
2
  import type { Track } from "../state.types";
3
- export declare const getRemoteOrLocalTrack: <PeerMetadata, TrackMetadata>(tsClient: FishjamClient<PeerMetadata, TrackMetadata>, remoteOrLocalTrackId: string | null) => Track<TrackMetadata> | null;
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;AAsC5C,eAAO,MAAM,qBAAqB,GAAI,YAAY,EAAE,aAAa,YACrD,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,wBAC9B,MAAM,GAAG,IAAI,gCAKpC,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.2",
3
+ "version": "0.6.0",
4
4
  "description": "React client library for Fishjam Cloud",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Fishjam Cloud Team",
@@ -38,8 +38,7 @@
38
38
  "format:check": "prettier --check . --ignore-path ./.eslintignore",
39
39
  "lint": "eslint . --ext .ts,.tsx --fix",
40
40
  "lint:check": "eslint . --ext .ts,.tsx",
41
- "prepack": "yarn workspace @fishjam-cloud/ts-client build && yarn build",
42
- "typecheck": "tsc"
41
+ "prepack": "yarn workspace @fishjam-cloud/ts-client build && yarn build"
43
42
  },
44
43
  "devDependencies": {
45
44
  "@playwright/test": "^1.46.1",
@@ -50,11 +49,11 @@
50
49
  "react": "^18.2.0",
51
50
  "typed-emitter": "^2.1.0",
52
51
  "typedoc": "^0.26.6",
53
- "typedoc-plugin-mdn-links": "^3.2.9",
52
+ "typedoc-plugin-mdn-links": "^3.2.10",
54
53
  "typescript": "^5.5.4"
55
54
  },
56
55
  "dependencies": {
57
- "@fishjam-cloud/ts-client": "0.5.2",
56
+ "@fishjam-cloud/ts-client": "0.6.0",
58
57
  "events": "3.3.0",
59
58
  "lodash.isequal": "4.5.0"
60
59
  },
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
  }}
package/dist/create.d.ts DELETED
@@ -1,10 +0,0 @@
1
- import type { CreateConfig } from "@fishjam-cloud/ts-client";
2
- import type { DeviceManagerConfig, CreateFishjamClient } from "./types";
3
- /**
4
- * Create a client that can be used with a context.
5
- * Returns context provider, and two hooks to interact with the context.
6
- *
7
- * @returns ContextProvider, useSelector, useConnect
8
- */
9
- export declare function create<PeerMetadata, TrackMetadata>(config?: CreateConfig<PeerMetadata, TrackMetadata>, deviceManagerDefaultConfig?: DeviceManagerConfig): CreateFishjamClient<PeerMetadata, TrackMetadata>;
10
- //# sourceMappingURL=create.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../src/create.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAiB,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC5E,OAAO,KAAK,EACV,mBAAmB,EAEnB,mBAAmB,EAMpB,MAAM,SAAS,CAAC;AAuDjB;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,YAAY,EAAE,aAAa,EAChD,MAAM,CAAC,EAAE,YAAY,CAAC,YAAY,EAAE,aAAa,CAAC,EAClD,0BAA0B,CAAC,EAAE,mBAAmB,GAC/C,mBAAmB,CAAC,YAAY,EAAE,aAAa,CAAC,CA0LlD"}
package/dist/create.js DELETED
@@ -1,201 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { createContext, useCallback, useContext, useMemo, useRef, useState, useSyncExternalStore } from "react";
3
- import { Client } from "./Client";
4
- import { createUseSetupMediaHook } from "./useSetupMedia";
5
- import { useScreenShare as _useScreenShare } from "./screenShareTrackManager";
6
- import { useTrackManager } from "./trackManager";
7
- const eventNames = [
8
- "socketOpen",
9
- "socketError",
10
- "socketClose",
11
- "authSuccess",
12
- "authError",
13
- "disconnected",
14
- "joined",
15
- "joinError",
16
- "peerJoined",
17
- "peerUpdated",
18
- "peerLeft",
19
- "reconnected",
20
- "reconnectionRetriesLimitReached",
21
- "reconnectionStarted",
22
- "componentAdded",
23
- "componentUpdated",
24
- "componentRemoved",
25
- "trackReady",
26
- "trackAdded",
27
- "trackRemoved",
28
- "trackUpdated",
29
- "bandwidthEstimationChanged",
30
- "encodingChanged",
31
- "voiceActivityChanged",
32
- "deviceDisabled",
33
- "deviceEnabled",
34
- "managerInitialized",
35
- "managerStarted",
36
- "deviceStopped",
37
- "deviceReady",
38
- "devicesStarted",
39
- "devicesReady",
40
- "error",
41
- "targetTrackEncodingRequested",
42
- "localTrackAdded",
43
- "localTrackRemoved",
44
- "localTrackReplaced",
45
- "localTrackMuted",
46
- "localTrackUnmuted",
47
- "localTrackBandwidthSet",
48
- "localTrackEncodingBandwidthSet",
49
- "localTrackEncodingEnabled",
50
- "localTrackEncodingDisabled",
51
- "localPeerMetadataChanged",
52
- "localTrackMetadataChanged",
53
- "disconnectRequested",
54
- ];
55
- /**
56
- * Create a client that can be used with a context.
57
- * Returns context provider, and two hooks to interact with the context.
58
- *
59
- * @returns ContextProvider, useSelector, useConnect
60
- */
61
- export function create(config, deviceManagerDefaultConfig) {
62
- const FishjamContext = createContext(undefined);
63
- function FishjamContextProvider({ children }) {
64
- const memoClient = useMemo(() => {
65
- return new Client({
66
- clientConfig: config,
67
- deviceManagerDefaultConfig,
68
- });
69
- }, []);
70
- const clientRef = useRef(memoClient);
71
- const mutationRef = useRef(false);
72
- const subscribe = useCallback((subscribeCallback) => {
73
- const client = clientRef.current;
74
- const callback = () => {
75
- mutationRef.current = true;
76
- subscribeCallback();
77
- };
78
- eventNames.forEach((eventName) => client.on(eventName, callback));
79
- return () => {
80
- eventNames.forEach((eventName) => client.removeListener(eventName, callback));
81
- };
82
- }, []);
83
- const lastSnapshotRef = useRef(null);
84
- const getSnapshot = useCallback(() => {
85
- if (mutationRef.current || lastSnapshotRef.current === null) {
86
- const state = {
87
- remote: clientRef.current.peers,
88
- media: clientRef.current.media,
89
- bandwidthEstimation: clientRef.current.bandwidthEstimation,
90
- tracks: clientRef.current.peersTracks,
91
- local: clientRef.current.local,
92
- status: clientRef.current.status,
93
- devices: clientRef.current.devices,
94
- client: clientRef.current,
95
- reconnectionStatus: clientRef.current.reconnectionStatus,
96
- };
97
- lastSnapshotRef.current = state;
98
- mutationRef.current = false;
99
- }
100
- return lastSnapshotRef.current;
101
- }, []);
102
- const state = useSyncExternalStore(subscribe, getSnapshot);
103
- const tsClient = state.client.getTsClient();
104
- const screenshareState = useState(null);
105
- const videoTrackManager = useTrackManager({
106
- mediaManager: state.client.videoDeviceManager,
107
- tsClient,
108
- });
109
- const audioTrackManager = useTrackManager({
110
- mediaManager: state.client.audioDeviceManager,
111
- tsClient,
112
- });
113
- return (_jsx(FishjamContext.Provider, { value: { state, screenshareState, videoTrackManager, audioTrackManager }, children: children }));
114
- }
115
- function useFishjamContext() {
116
- const context = useContext(FishjamContext);
117
- if (!context)
118
- throw new Error("useFishjamContext must be used within a FishjamContextProvider");
119
- return context;
120
- }
121
- function useSelector(selector) {
122
- const { state } = useFishjamContext();
123
- return useMemo(() => selector(state), [selector, state]);
124
- }
125
- function useConnect() {
126
- const { state } = useFishjamContext();
127
- return useMemo(() => {
128
- return (config) => {
129
- state.client.connect(config);
130
- return () => {
131
- state.client.disconnect();
132
- };
133
- };
134
- }, [state.client]);
135
- }
136
- function useDisconnect() {
137
- const { state } = useFishjamContext();
138
- return useCallback(() => {
139
- state.client.disconnect();
140
- }, [state.client]);
141
- }
142
- function useStatus() {
143
- return useSelector((s) => s.status);
144
- }
145
- function useTracks() {
146
- return useSelector((s) => s.tracks);
147
- }
148
- function useClient() {
149
- return useSelector((s) => s.client);
150
- }
151
- function useCamera() {
152
- const { state, videoTrackManager } = useFishjamContext();
153
- return { ...state.devices.camera, ...videoTrackManager };
154
- }
155
- function useMicrophone() {
156
- const { state, audioTrackManager } = useFishjamContext();
157
- return { ...state.devices.microphone, ...audioTrackManager };
158
- }
159
- function useReconnection() {
160
- const { state } = useFishjamContext();
161
- return {
162
- status: state.reconnectionStatus,
163
- isReconnecting: state.reconnectionStatus === "reconnecting",
164
- isError: state.reconnectionStatus === "error",
165
- isIdle: state.reconnectionStatus === "idle",
166
- };
167
- }
168
- function getPeerWithDistinguishedTracks(peerState) {
169
- const localTracks = Object.values(peerState.tracks ?? {});
170
- const videoTracks = localTracks.filter(({ track }) => track?.kind === "video");
171
- const audioTracks = localTracks.filter(({ track }) => track?.kind === "audio");
172
- return { ...peerState, videoTracks, audioTracks };
173
- }
174
- function useParticipants() {
175
- const { state } = useFishjamContext();
176
- const localParticipant = state.local
177
- ? getPeerWithDistinguishedTracks(state.local)
178
- : null;
179
- const participants = Object.values(state.remote).map(getPeerWithDistinguishedTracks);
180
- return { localParticipant, participants };
181
- }
182
- function useScreenShare() {
183
- const { state, screenshareState } = useFishjamContext();
184
- return _useScreenShare(screenshareState, state.client.getTsClient());
185
- }
186
- return {
187
- FishjamContextProvider,
188
- useSelector,
189
- useConnect,
190
- useDisconnect,
191
- useStatus,
192
- useTracks,
193
- useSetupMedia: createUseSetupMediaHook(useFishjamContext),
194
- useParticipants,
195
- useScreenShare,
196
- useCamera,
197
- useMicrophone,
198
- useClient,
199
- useReconnection,
200
- };
201
- }
@@ -1,4 +0,0 @@
1
- import type { FishjamClient } from "@fishjam-cloud/ts-client";
2
- import type { ScreenshareApi, ScreenshareState } from "./types";
3
- export declare const useScreenShare: <PeerMetadata, TrackMetadata>([state, setState]: [ScreenshareState, React.Dispatch<React.SetStateAction<ScreenshareState>>], tsClient: FishjamClient<PeerMetadata, TrackMetadata>) => ScreenshareApi<TrackMetadata>;
4
- //# sourceMappingURL=screenShareTrackManager.d.ts.map
@@ -1 +0,0 @@
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;AASlF,eAAO,MAAM,cAAc,GAAI,YAAY,EAAE,aAAa,qBAErC,CAAC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC,YACnF,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,KACnD,cAAc,CAAC,aAAa,CAmG9B,CAAC"}
@@ -1,3 +0,0 @@
1
- import type { FishjamContextType, UseSetupMediaConfig, UseSetupMediaResult } from "./types";
2
- export declare const createUseSetupMediaHook: <PeerMetadata, TrackMetadata>(useFishjamContext: () => FishjamContextType<PeerMetadata, TrackMetadata>) => (config: UseSetupMediaConfig<TrackMetadata>) => UseSetupMediaResult;
3
- //# sourceMappingURL=useSetupMedia.d.ts.map
@@ -1 +0,0 @@
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,GAAI,YAAY,EAAE,aAAa,qBAC9C,MAAM,kBAAkB,CAAC,YAAY,EAAE,aAAa,CAAC,cAQxD,mBAAmB,CAAC,aAAa,CAAC,KAAG,mBAiQtD,CAAC"}