@fishjam-cloud/react-client 0.11.0 → 0.12.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 (48) hide show
  1. package/dist/FishjamProvider.d.ts +1 -2
  2. package/dist/FishjamProvider.d.ts.map +1 -1
  3. package/dist/FishjamProvider.js +0 -1
  4. package/dist/devices/DeviceManager.d.ts +2 -2
  5. package/dist/devices/DeviceManager.d.ts.map +1 -1
  6. package/dist/devices/mediaInitializer.d.ts +1 -1
  7. package/dist/devices/mediaInitializer.d.ts.map +1 -1
  8. package/dist/hooks/devices/useCamera.d.ts +9 -15
  9. package/dist/hooks/devices/useCamera.d.ts.map +1 -1
  10. package/dist/hooks/devices/useCamera.js +28 -1
  11. package/dist/hooks/devices/useInitializeDevices.d.ts +5 -9
  12. package/dist/hooks/devices/useInitializeDevices.d.ts.map +1 -1
  13. package/dist/hooks/devices/useInitializeDevices.js +6 -1
  14. package/dist/hooks/devices/useMicrophone.d.ts +11 -18
  15. package/dist/hooks/devices/useMicrophone.d.ts.map +1 -1
  16. package/dist/hooks/devices/useMicrophone.js +28 -2
  17. package/dist/hooks/internal/useFishjamClientState.d.ts +5 -4
  18. package/dist/hooks/internal/useFishjamClientState.d.ts.map +1 -1
  19. package/dist/hooks/internal/useFishjamClientState.js +2 -2
  20. package/dist/hooks/internal/useFishjamContext.d.ts +1 -1
  21. package/dist/hooks/internal/useFishjamContext.d.ts.map +1 -1
  22. package/dist/hooks/internal/useScreenshareManager.d.ts +38 -2
  23. package/dist/hooks/internal/useScreenshareManager.d.ts.map +1 -1
  24. package/dist/hooks/useConnection.d.ts +6 -13
  25. package/dist/hooks/useConnection.d.ts.map +1 -1
  26. package/dist/hooks/useConnection.js +14 -3
  27. package/dist/hooks/usePeers.d.ts +6 -17
  28. package/dist/hooks/usePeers.d.ts.map +1 -1
  29. package/dist/hooks/usePeers.js +15 -1
  30. package/dist/hooks/useScreenShare.d.ts +5 -12
  31. package/dist/hooks/useScreenShare.d.ts.map +1 -1
  32. package/dist/hooks/useScreenShare.js +34 -1
  33. package/dist/hooks/useUpdatePeerMetadata.d.ts +3 -0
  34. package/dist/hooks/useUpdatePeerMetadata.d.ts.map +1 -1
  35. package/dist/hooks/useUpdatePeerMetadata.js +6 -1
  36. package/dist/hooks/useVAD.d.ts +15 -2
  37. package/dist/hooks/useVAD.d.ts.map +1 -1
  38. package/dist/hooks/useVAD.js +12 -1
  39. package/dist/index.d.ts +8 -8
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/types/internal.d.ts +5 -12
  42. package/dist/types/internal.d.ts.map +1 -1
  43. package/dist/types/public.d.ts +17 -1
  44. package/dist/types/public.d.ts.map +1 -1
  45. package/dist/utils/errors.d.ts +1 -1
  46. package/dist/utils/errors.d.ts.map +1 -1
  47. package/dist/utils/track.d.ts.map +1 -1
  48. package/package.json +8 -8
@@ -13,7 +13,7 @@ export interface FishjamProviderProps extends PropsWithChildren {
13
13
  /**
14
14
  * Set preferred constraints.
15
15
  * @param {MediaStreamConstraints} constraints - The media stream constraints as defined by the Web API.
16
- * @external {@link https://udn.realityripple.com/docs/Web/API/MediaStreamConstraints MediaStreamConstraints}
16
+ * @see {@link https://udn.realityripple.com/docs/Web/API/MediaStreamConstraints MediaStreamConstraints}
17
17
  */
18
18
  constraints?: Pick<MediaStreamConstraints, "audio" | "video">;
19
19
  /**
@@ -37,7 +37,6 @@ export interface FishjamProviderProps extends PropsWithChildren {
37
37
  /**
38
38
  * Provides the Fishjam Context
39
39
  * @category Components
40
- * @param
41
40
  */
42
41
  export declare function FishjamProvider(props: FishjamProviderProps): import("react/jsx-runtime").JSX.Element;
43
42
  //# sourceMappingURL=FishjamProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FishjamProvider.d.ts","sourceRoot":"","sources":["../src/FishjamProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,KAAK,iBAAiB,EAAU,MAAM,OAAO,CAAC;AAUvD,OAAO,KAAK,EAAE,eAAe,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG/F;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC7D;;;OAGG;IACH,SAAS,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC;IACtC;;;;OAIG;IACH,WAAW,CAAC,EAAE,IAAI,CAAC,sBAAsB,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC;IAC9D;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,GAAG,yBAAyB,CAAC;IACxD;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAC3C;;OAEG;IACH,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B;;OAEG;IACH,WAAW,CAAC,EAAE,YAAY,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,2CA8D1D"}
1
+ {"version":3,"file":"FishjamProvider.d.ts","sourceRoot":"","sources":["../src/FishjamProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,KAAK,iBAAiB,EAAU,MAAM,OAAO,CAAC;AAUvD,OAAO,KAAK,EAAE,eAAe,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG/F;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,iBAAiB;IAC7D;;;OAGG;IACH,SAAS,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC;IACtC;;;;OAIG;IACH,WAAW,CAAC,EAAE,IAAI,CAAC,sBAAsB,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC;IAC9D;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,GAAG,yBAAyB,CAAC;IACxD;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAC3C;;OAEG;IACH,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B;;OAEG;IACH,WAAW,CAAC,EAAE,YAAY,CAAC;CAC5B;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,2CA8D1D"}
@@ -12,7 +12,6 @@ import { mergeWithDefaultBandwitdthLimits } from "./utils/bandwidth";
12
12
  /**
13
13
  * Provides the Fishjam Context
14
14
  * @category Components
15
- * @param
16
15
  */
17
16
  export function FishjamProvider(props) {
18
17
  const fishjamClientRef = useRef(new FishjamClient({ reconnect: props.reconnect }));
@@ -1,6 +1,6 @@
1
1
  import type TypedEmitter from "typed-emitter";
2
- import type { DeviceError, DeviceManagerStatus, DeviceState, Media, MediaManager } from "../types/internal";
3
- import type { DeviceType, PersistLastDeviceHandlers, TrackMiddleware } from "../types/public";
2
+ import type { DeviceManagerStatus, DeviceState, Media, MediaManager } from "../types/internal";
3
+ import type { DeviceError, DeviceType, PersistLastDeviceHandlers, TrackMiddleware } from "../types/public";
4
4
  export type DeviceManagerEvents = {
5
5
  managerStarted: (event: DeviceState & {
6
6
  constraints: MediaTrackConstraints | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"DeviceManager.d.ts","sourceRoot":"","sources":["../../src/devices/DeviceManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DeviceManager.d.ts","sourceRoot":"","sources":["../../src/devices/DeviceManager.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { DeviceError } from "../types/internal";
1
+ import type { DeviceError } from "../types/public";
2
2
  type AudioVideo<T> = {
3
3
  audio: T;
4
4
  video: T;
@@ -1 +1 @@
1
- {"version":3,"file":"mediaInitializer.d.ts","sourceRoot":"","sources":["../../src/devices/mediaInitializer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrE,KAAK,UAAU,CAAC,CAAC,IAAI;IAAE,KAAK,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AAE5C,KAAK,gBAAgB,GAAG,UAAU,CAAC,qBAAqB,GAAG,SAAS,GAAG,OAAO,CAAC,CAAC;AAEhF,KAAK,eAAe,GAAG,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;AAsB1D,eAAO,MAAM,iBAAiB,gBACf,sBAAsB,iBACrB,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,KAC3C,OAAO,CAAC,CAAC,WAAW,GAAG,IAAI,EAAE,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAuB9D,CAAC;AAIF,eAAO,MAAM,kBAAkB,WACrB,WAAW,gBACL,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,WACnC,eAAe,EAAE,eACb,gBAAgB,mBACZ,eAAe,KAC/B,OAAO,CAAC,CAAC,WAAW,GAAG,IAAI,EAAE,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAsB9D,CAAC"}
1
+ {"version":3,"file":"mediaInitializer.d.ts","sourceRoot":"","sources":["../../src/devices/mediaInitializer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAInD,KAAK,UAAU,CAAC,CAAC,IAAI;IAAE,KAAK,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AAE5C,KAAK,gBAAgB,GAAG,UAAU,CAAC,qBAAqB,GAAG,SAAS,GAAG,OAAO,CAAC,CAAC;AAEhF,KAAK,eAAe,GAAG,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;AAsB1D,eAAO,MAAM,iBAAiB,gBACf,sBAAsB,iBACrB,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,KAC3C,OAAO,CAAC,CAAC,WAAW,GAAG,IAAI,EAAE,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAuB9D,CAAC;AAIF,eAAO,MAAM,kBAAkB,WACrB,WAAW,gBACL,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,WACnC,eAAe,EAAE,eACb,gBAAgB,mBACZ,eAAe,KAC/B,OAAO,CAAC,CAAC,WAAW,GAAG,IAAI,EAAE,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,CAsB9D,CAAC"}
@@ -1,21 +1,20 @@
1
- import type { DeviceError } from "../../types/internal";
2
- import type { DeviceItem, TrackMiddleware } from "../../types/public";
3
1
  /**
2
+ * This hook can toggle camera on/off, change camera, provides current camera and other.
4
3
  * @category Devices
5
4
  */
6
- export type UseCameraResult = {
5
+ export declare function useCamera(): {
7
6
  /**
8
7
  * Toggles current camera on/off
9
8
  */
10
- toggleCamera: () => void;
9
+ toggleCamera: () => Promise<void>;
11
10
  /**
12
11
  * Selects the camera device
13
12
  */
14
- selectCamera: (deviceId: string) => void;
13
+ selectCamera: (deviceId?: string) => Promise<void>;
15
14
  /**
16
15
  * Indicates which camera is now turned on and streaming
17
16
  */
18
- activeCamera: DeviceItem | null;
17
+ activeCamera: import("../..").DeviceItem | null;
19
18
  /**
20
19
  * Indicates whether the microphone is streaming video
21
20
  */
@@ -27,23 +26,18 @@ export type UseCameraResult = {
27
26
  /**
28
27
  * The currently set camera middleware function
29
28
  */
30
- currentCameraMiddleware: TrackMiddleware;
29
+ currentCameraMiddleware: import("../..").TrackMiddleware;
31
30
  /**
32
31
  * Sets the camera middleware
33
32
  */
34
- setCameraTrackMiddleware: (middleware: TrackMiddleware | null) => Promise<void>;
33
+ setCameraTrackMiddleware: (middleware: import("../..").TrackMiddleware | null) => Promise<void>;
35
34
  /**
36
35
  * List of available camera devices
37
36
  */
38
- cameraDevices: DeviceItem[];
37
+ cameraDevices: import("../..").DeviceItem[];
39
38
  /**
40
39
  * Possible error thrown while setting up the camera
41
40
  */
42
- cameraDeviceError: DeviceError | null;
41
+ cameraDeviceError: import("../..").DeviceError | null;
43
42
  };
44
- /**
45
- *
46
- * @category Devices
47
- */
48
- export declare function useCamera(): UseCameraResult;
49
43
  //# sourceMappingURL=useCamera.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCamera.d.ts","sourceRoot":"","sources":["../../../src/hooks/devices/useCamera.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAItE;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B;;OAEG;IACH,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB;;OAEG;IACH,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC;;OAEG;IACH,YAAY,EAAE,UAAU,GAAG,IAAI,CAAC;IAChC;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,YAAY,EAAE,WAAW,GAAG,IAAI,CAAC;IACjC;;OAEG;IACH,uBAAuB,EAAE,eAAe,CAAC;IACzC;;OAEG;IACH,wBAAwB,EAAE,CAAC,UAAU,EAAE,eAAe,GAAG,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChF;;OAEG;IACH,aAAa,EAAE,UAAU,EAAE,CAAC;IAC5B;;OAEG;IACH,iBAAiB,EAAE,WAAW,GAAG,IAAI,CAAC;CACvC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,SAAS,IAAI,eAAe,CAe3C"}
1
+ {"version":3,"file":"useCamera.d.ts","sourceRoot":"","sources":["../../../src/hooks/devices/useCamera.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,SAAS;IAKrB;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;EAGN"}
@@ -1,21 +1,48 @@
1
1
  import { useDeviceApi } from "../internal/device/useDeviceApi";
2
2
  import { useFishjamContext } from "../internal/useFishjamContext";
3
3
  /**
4
- *
4
+ * This hook can toggle camera on/off, change camera, provides current camera and other.
5
5
  * @category Devices
6
6
  */
7
7
  export function useCamera() {
8
8
  const { videoTrackManager, videoDeviceManagerRef } = useFishjamContext();
9
9
  const deviceApi = useDeviceApi({ deviceManager: videoDeviceManagerRef.current });
10
10
  return {
11
+ /**
12
+ * Toggles current camera on/off
13
+ */
11
14
  toggleCamera: videoTrackManager.toggleDevice,
15
+ /**
16
+ * Selects the camera device
17
+ */
12
18
  selectCamera: videoTrackManager.selectDevice,
19
+ /**
20
+ * Indicates which camera is now turned on and streaming
21
+ */
13
22
  activeCamera: deviceApi.activeDevice,
23
+ /**
24
+ * Indicates whether the microphone is streaming video
25
+ */
14
26
  isCameraOn: !!deviceApi.mediaStream,
27
+ /**
28
+ * The MediaStream object containing the current stream
29
+ */
15
30
  cameraStream: deviceApi.mediaStream,
31
+ /**
32
+ * The currently set camera middleware function
33
+ */
16
34
  currentCameraMiddleware: deviceApi.currentMiddleware,
35
+ /**
36
+ * Sets the camera middleware
37
+ */
17
38
  setCameraTrackMiddleware: videoTrackManager.setTrackMiddleware,
39
+ /**
40
+ * List of available camera devices
41
+ */
18
42
  cameraDevices: deviceApi.devices,
43
+ /**
44
+ * Possible error thrown while setting up the camera
45
+ */
19
46
  cameraDeviceError: deviceApi.deviceError,
20
47
  };
21
48
  }
@@ -1,19 +1,15 @@
1
- /**
2
- * @category Devices
3
- */
4
1
  export type UseInitializeDevicesParams = {
5
2
  enableVideo?: boolean;
6
3
  enableAudio?: boolean;
7
4
  };
8
5
  /**
6
+ * Hook allows you to initialize access to the devices before joining the room.
9
7
  * @category Devices
10
8
  */
11
- export type UseInitializeDevicesResult = {
9
+ export declare const useInitializeDevices: () => {
10
+ /**
11
+ * Initialize access to the devices before joining the room
12
+ */
12
13
  initializeDevices: (params?: UseInitializeDevicesParams) => Promise<void>;
13
14
  };
14
- /**
15
- * Hook allows you to initialize access to the devices before joining the room.
16
- * @category Devices
17
- */
18
- export declare const useInitializeDevices: () => UseInitializeDevicesResult;
19
15
  //# sourceMappingURL=useInitializeDevices.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useInitializeDevices.d.ts","sourceRoot":"","sources":["../../../src/hooks/devices/useInitializeDevices.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACvC,iBAAiB,EAAE,CAAC,MAAM,CAAC,EAAE,0BAA0B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3E,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,QAAO,0BAwDvC,CAAC"}
1
+ {"version":3,"file":"useInitializeDevices.d.ts","sourceRoot":"","sources":["../../../src/hooks/devices/useInitializeDevices.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,0BAA0B,GAAG;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB;IAwD7B;;OAEG;iCAvD8B,0BAA0B,KAAK,OAAO,CAAC,IAAI,CAAC;CA0DhF,CAAC"}
@@ -37,5 +37,10 @@ export const useInitializeDevices = () => {
37
37
  videoManager.initialize(stream, stream?.getVideoTracks()?.[0] ?? null, videoDevices, !!constraints.video, deviceErrors.video);
38
38
  audioManager.initialize(stream, stream?.getAudioTracks()?.[0] ?? null, audioDevices, !!constraints.audio, deviceErrors.audio);
39
39
  }, [videoDeviceManagerRef, audioDeviceManagerRef, hasDevicesBeenInitializedRef]);
40
- return { initializeDevices };
40
+ return {
41
+ /**
42
+ * Initialize access to the devices before joining the room
43
+ */
44
+ initializeDevices,
45
+ };
41
46
  };
@@ -1,27 +1,25 @@
1
- import type { DeviceError } from "../../types/internal";
2
- import type { DeviceItem, TrackMiddleware } from "../../types/public";
3
1
  /**
2
+ * Manage microphone
4
3
  * @category Devices
5
4
  */
6
- export type UseMicrophoneResult = {
5
+ export declare function useMicrophone(): {
7
6
  /** Toggles current microphone on/off */
8
- toggleMicrophone: () => void;
7
+ toggleMicrophone: () => Promise<void>;
9
8
  /** Mutes/unmutes the microphone */
10
- toggleMicrophoneMute: () => void;
9
+ toggleMicrophoneMute: () => Promise<void>;
11
10
  /** Selects the microphone device */
12
- selectMicrophone: (deviceId: string) => void;
11
+ selectMicrophone: (deviceId?: string) => Promise<void>;
13
12
  /**
14
13
  * Indicates which microphone is now turned on and streaming audio
15
14
  */
16
- activeMicrophone: DeviceItem | null;
15
+ activeMicrophone: import("../..").DeviceItem | null;
17
16
  /**
18
17
  * Indicates whether the microphone is streaming audio
19
18
  */
20
19
  isMicrophoneOn: boolean;
21
20
  /**
22
21
  * Indicates whether the microphone is muted
23
- */
24
- isMicrophoneMuted: boolean;
22
+ */ isMicrophoneMuted: boolean;
25
23
  /**
26
24
  * The MediaStream object containing the current audio stream
27
25
  */
@@ -29,23 +27,18 @@ export type UseMicrophoneResult = {
29
27
  /**
30
28
  * The currently set microphone middleware function
31
29
  */
32
- currentMicrophoneMiddleware: TrackMiddleware;
30
+ currentMicrophoneMiddleware: import("../..").TrackMiddleware;
33
31
  /**
34
32
  * Sets the microphone middleware
35
33
  */
36
- setMicrophoneTrackMiddleware: (middleware: TrackMiddleware | null) => Promise<void>;
34
+ setMicrophoneTrackMiddleware: (middleware: import("../..").TrackMiddleware | null) => Promise<void>;
37
35
  /**
38
36
  * List of available microphone devices
39
37
  */
40
- microphoneDevices: DeviceItem[];
38
+ microphoneDevices: import("../..").DeviceItem[];
41
39
  /**
42
40
  * Possible error thrown while setting up the microphone
43
41
  */
44
- microphoneDeviceError: DeviceError | null;
42
+ microphoneDeviceError: import("../..").DeviceError | null;
45
43
  };
46
- /**
47
- *
48
- * @category Devices
49
- */
50
- export declare function useMicrophone(): UseMicrophoneResult;
51
44
  //# sourceMappingURL=useMicrophone.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMicrophone.d.ts","sourceRoot":"","sources":["../../../src/hooks/devices/useMicrophone.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAItE;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,wCAAwC;IACxC,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,mCAAmC;IACnC,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,oCAAoC;IACpC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C;;OAEG;IACH,gBAAgB,EAAE,UAAU,GAAG,IAAI,CAAC;IACpC;;OAEG;IACH,cAAc,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,iBAAiB,EAAE,OAAO,CAAC;IAC3B;;OAEG;IACH,gBAAgB,EAAE,WAAW,GAAG,IAAI,CAAC;IACrC;;OAEG;IACH,2BAA2B,EAAE,eAAe,CAAC;IAC7C;;OAEG;IACH,4BAA4B,EAAE,CAAC,UAAU,EAAE,eAAe,GAAG,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpF;;OAEG;IACH,iBAAiB,EAAE,UAAU,EAAE,CAAC;IAChC;;OAEG;IACH,qBAAqB,EAAE,WAAW,GAAG,IAAI,CAAC;CAC3C,CAAC;AAEF;;;GAGG;AACH,wBAAgB,aAAa,IAAI,mBAAmB,CAiBnD"}
1
+ {"version":3,"file":"useMicrophone.d.ts","sourceRoot":"","sources":["../../../src/hooks/devices/useMicrophone.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,aAAa;IAKzB,wCAAwC;;IAExC,mCAAmC;;IAEnC,oCAAoC;;IAEpC;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;IACH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;EAGN"}
@@ -1,23 +1,49 @@
1
1
  import { useDeviceApi } from "../internal/device/useDeviceApi";
2
2
  import { useFishjamContext } from "../internal/useFishjamContext";
3
3
  /**
4
- *
4
+ * Manage microphone
5
5
  * @category Devices
6
6
  */
7
7
  export function useMicrophone() {
8
8
  const { audioTrackManager, audioDeviceManagerRef } = useFishjamContext();
9
9
  const deviceApi = useDeviceApi({ deviceManager: audioDeviceManagerRef.current });
10
10
  return {
11
+ /** Toggles current microphone on/off */
11
12
  toggleMicrophone: audioTrackManager.toggleDevice,
13
+ /** Mutes/unmutes the microphone */
12
14
  toggleMicrophoneMute: audioTrackManager.toggleMute,
15
+ /** Selects the microphone device */
13
16
  selectMicrophone: audioTrackManager.selectDevice,
17
+ /**
18
+ * Indicates which microphone is now turned on and streaming audio
19
+ */
14
20
  activeMicrophone: deviceApi.activeDevice,
21
+ /**
22
+ * Indicates whether the microphone is streaming audio
23
+ */
15
24
  isMicrophoneOn: !!deviceApi.mediaStream,
16
- isMicrophoneMuted: audioTrackManager.paused,
25
+ /**
26
+ * Indicates whether the microphone is muted
27
+ */ isMicrophoneMuted: audioTrackManager.paused,
28
+ /**
29
+ * The MediaStream object containing the current audio stream
30
+ */
17
31
  microphoneStream: deviceApi.mediaStream,
32
+ /**
33
+ * The currently set microphone middleware function
34
+ */
18
35
  currentMicrophoneMiddleware: deviceApi.currentMiddleware,
36
+ /**
37
+ * Sets the microphone middleware
38
+ */
19
39
  setMicrophoneTrackMiddleware: audioTrackManager.setTrackMiddleware,
40
+ /**
41
+ * List of available microphone devices
42
+ */
20
43
  microphoneDevices: deviceApi.devices,
44
+ /**
45
+ * Possible error thrown while setting up the microphone
46
+ */
21
47
  microphoneDeviceError: deviceApi.deviceError,
22
48
  };
23
49
  }
@@ -1,9 +1,10 @@
1
- import type { Component, FishjamClient, GenericMetadata, Peer } from "@fishjam-cloud/ts-client";
2
- import type { PeerId } from "../../types/internal";
1
+ import type { Component, FishjamClient, GenericMetadata } from "@fishjam-cloud/ts-client";
2
+ import type { BrandedPeer } from "../../types/internal";
3
+ import type { PeerId } from "../../types/public";
3
4
  export interface FishjamClientState<P = GenericMetadata, S = GenericMetadata> {
4
- peers: Record<PeerId, Peer<P, S>>;
5
+ peers: Record<PeerId, BrandedPeer<P, S>>;
5
6
  components: Record<string, Component>;
6
- localPeer: Peer<P, S> | null;
7
+ localPeer: BrandedPeer<P, S> | null;
7
8
  isReconnecting: boolean;
8
9
  }
9
10
  export declare function useFishjamClientState<P, S>(fishjamClient: FishjamClient<P, S>): FishjamClientState<P, S>;
@@ -1 +1 @@
1
- {"version":3,"file":"useFishjamClientState.d.ts","sourceRoot":"","sources":["../../../src/hooks/internal/useFishjamClientState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAiB,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAG/G,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AA0CnD,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,eAAe,EAAE,CAAC,GAAG,eAAe;IAC1E,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtC,SAAS,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,OAAO,CAAC;CACzB;AAMD,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAwCxG"}
1
+ {"version":3,"file":"useFishjamClientState.d.ts","sourceRoot":"","sources":["../../../src/hooks/internal/useFishjamClientState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAiB,MAAM,0BAA0B,CAAC;AAGzG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AA0CjD,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,eAAe,EAAE,CAAC,GAAG,eAAe;IAC1E,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACtC,SAAS,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IACpC,cAAc,EAAE,OAAO,CAAC;CACzB;AAMD,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAwCxG"}
@@ -63,9 +63,9 @@ export function useFishjamClientState(fishjamClient) {
63
63
  const localPeer = client.getLocalPeer();
64
64
  const isReconnecting = client.isReconnecting();
65
65
  lastSnapshotRef.current = {
66
- peers,
66
+ peers: peers,
67
67
  components,
68
- localPeer,
68
+ localPeer: localPeer,
69
69
  isReconnecting,
70
70
  };
71
71
  mutationRef.current = false;
@@ -3,8 +3,8 @@ import { type MutableRefObject } from "react";
3
3
  import type { DeviceManager } from "../../devices/DeviceManager";
4
4
  import type { TrackManager } from "../../types/internal";
5
5
  import type { BandwidthLimits, PeerStatus } from "../../types/public";
6
- import type { UseScreenshareResult } from "../useScreenShare";
7
6
  import type { FishjamClientState } from "./useFishjamClientState";
7
+ import type { UseScreenshareResult } from "./useScreenshareManager";
8
8
  export type FishjamContextType = {
9
9
  fishjamClientRef: MutableRefObject<FishjamClient>;
10
10
  videoDeviceManagerRef: MutableRefObject<DeviceManager>;
@@ -1 +1 @@
1
- {"version":3,"file":"useFishjamContext.d.ts","sourceRoot":"","sources":["../../../src/hooks/internal/useFishjamContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAiB,KAAK,gBAAgB,EAAc,MAAM,OAAO,CAAC;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,gBAAgB,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAClD,qBAAqB,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;IACvD,qBAAqB,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;IACvD,4BAA4B,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACxD,kBAAkB,EAAE,oBAAoB,CAAC;IACzC,UAAU,EAAE,UAAU,CAAC;IACvB,iBAAiB,EAAE,YAAY,CAAC;IAChC,iBAAiB,EAAE,YAAY,CAAC;IAChC,WAAW,EAAE,kBAAkB,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;CAClC,CAAC;AAEF,eAAO,MAAM,cAAc,oDAAiD,CAAC;AAE7E,wBAAgB,iBAAiB,IAGb,kBAAkB,CACrC"}
1
+ {"version":3,"file":"useFishjamContext.d.ts","sourceRoot":"","sources":["../../../src/hooks/internal/useFishjamContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAiB,KAAK,gBAAgB,EAAc,MAAM,OAAO,CAAC;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,gBAAgB,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;IAClD,qBAAqB,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;IACvD,qBAAqB,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;IACvD,4BAA4B,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACxD,kBAAkB,EAAE,oBAAoB,CAAC;IACzC,UAAU,EAAE,UAAU,CAAC;IACvB,iBAAiB,EAAE,YAAY,CAAC;IAChC,iBAAiB,EAAE,YAAY,CAAC;IAChC,WAAW,EAAE,kBAAkB,CAAC;IAChC,eAAe,EAAE,eAAe,CAAC;CAClC,CAAC;AAEF,eAAO,MAAM,cAAc,oDAAiD,CAAC;AAE7E,wBAAgB,iBAAiB,IAGb,kBAAkB,CACrC"}
@@ -1,6 +1,42 @@
1
1
  import type { FishjamClient } from "@fishjam-cloud/ts-client";
2
- import type { PeerStatus } from "../../types/public";
3
- import type { UseScreenshareResult } from "../useScreenShare";
2
+ import type { PeerStatus, TracksMiddleware } from "../../types/public";
3
+ export type UseScreenshareResult = {
4
+ /**
5
+ * Invokes the screen sharing prompt in the user's browser and starts streaming upon approval.
6
+ */
7
+ startStreaming: (props?: {
8
+ audioConstraints?: boolean | MediaTrackConstraints;
9
+ videoConstraints?: boolean | MediaTrackConstraints;
10
+ }) => Promise<void>;
11
+ /**
12
+ * Stops the stream and cancels browser screen sharing.
13
+ */
14
+ stopStreaming: () => Promise<void>;
15
+ /**
16
+ * The MediaStream object containing both tracks.
17
+ */
18
+ stream: MediaStream | null;
19
+ /**
20
+ * The separate video MediaStreamTrack.
21
+ */
22
+ videoTrack: MediaStreamTrack | null;
23
+ /**
24
+ * The separate audio MediaStreamTrack.
25
+ */
26
+ audioTrack: MediaStreamTrack | null;
27
+ /**
28
+ * The middleware currently assigned to process the tracks.
29
+ * A screenshare may include both audio and video tracks, and this middleware is capable of processing
30
+ * each track type.
31
+ */
32
+ currentTracksMiddleware: TracksMiddleware | null;
33
+ /**
34
+ * Sets the middleware responsible for processing the tracks.
35
+ * @param middleware The middleware to set, which can be a TracksMiddleware instance or null to remove the middleware.
36
+ * @returns A Promise that resolves once the middleware is successfully set.
37
+ */
38
+ setTracksMiddleware: (middleware: TracksMiddleware | null) => Promise<void>;
39
+ };
4
40
  interface ScreenShareManagerProps {
5
41
  fishjamClient: FishjamClient;
6
42
  getCurrentPeerStatus: () => PeerStatus;
@@ -1 +1 @@
1
- {"version":3,"file":"useScreenshareManager.d.ts","sourceRoot":"","sources":["../../../src/hooks/internal/useScreenshareManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAI9D,OAAO,KAAK,EAAE,UAAU,EAAoB,MAAM,oBAAoB,CAAC;AACvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,UAAU,uBAAuB;IAC/B,aAAa,EAAE,aAAa,CAAC;IAC7B,oBAAoB,EAAE,MAAM,UAAU,CAAC;CACxC;AAED,eAAO,MAAM,qBAAqB,6CAG/B,uBAAuB,KAAG,oBAmI5B,CAAC"}
1
+ {"version":3,"file":"useScreenshareManager.d.ts","sourceRoot":"","sources":["../../../src/hooks/internal/useScreenshareManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAI9D,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEvE,MAAM,MAAM,oBAAoB,GAAG;IACjC;;OAEG;IACH,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;;OAEG;IACH,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC;;OAEG;IACH,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B;;OAEG;IACH,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACpC;;OAEG;IACH,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACpC;;;;OAIG;IACH,uBAAuB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACjD;;;;OAIG;IACH,mBAAmB,EAAE,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7E,CAAC;AAEF,UAAU,uBAAuB;IAC/B,aAAa,EAAE,aAAa,CAAC;IAC7B,oBAAoB,EAAE,MAAM,UAAU,CAAC;CACxC;AAED,eAAO,MAAM,qBAAqB,6CAG/B,uBAAuB,KAAG,oBAmI5B,CAAC"}
@@ -15,15 +15,15 @@ export interface JoinRoomConfig<PeerMetadata extends GenericMetadata = GenericMe
15
15
  peerMetadata?: PeerMetadata;
16
16
  }
17
17
  /**
18
+ * Hook allows to join or leave a room and check the current connection status.
18
19
  * @category Connection
20
+ * @group Hooks
19
21
  */
20
- export interface UseConnectionResult {
22
+ export declare function useConnection(): {
21
23
  /**
22
24
  * Join room and start streaming camera and microphone
23
- *
24
- * @param {JoinRoomConfig}
25
25
  */
26
- joinRoom: <PeerMetadata extends GenericMetadata = GenericMetadata>(config: JoinRoomConfig<PeerMetadata>) => Promise<void>;
26
+ joinRoom: <PeerMetadata extends GenericMetadata = GenericMetadata>({ url, peerToken, peerMetadata, }: JoinRoomConfig<PeerMetadata>) => Promise<void>;
27
27
  /**
28
28
  * Leave room and stop streaming
29
29
  */
@@ -34,13 +34,6 @@ export interface UseConnectionResult {
34
34
  peerStatus: PeerStatus;
35
35
  /**
36
36
  * Current reconnection status
37
- */
38
- reconnectionStatus: ReconnectionStatus;
39
- }
40
- /**
41
- * Hook allows to join or leave a room and check the current connection status.
42
- * @category Connection
43
- * @returns {UseConnectionResult}
44
- */
45
- export declare function useConnection(): UseConnectionResult;
37
+ */ reconnectionStatus: ReconnectionStatus;
38
+ };
46
39
  //# sourceMappingURL=useConnection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useConnection.d.ts","sourceRoot":"","sources":["../../src/hooks/useConnection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAGpF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIlD,MAAM,WAAW,cAAc,CAAC,YAAY,SAAS,eAAe,GAAG,eAAe;IACpF;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,QAAQ,EAAE,CAAC,YAAY,SAAS,eAAe,GAAG,eAAe,EAC/D,MAAM,EAAE,cAAc,CAAC,YAAY,CAAC,KACjC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB;;OAEG;IACH,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB;;OAEG;IACH,UAAU,EAAE,UAAU,CAAC;IACvB;;OAEG;IACH,kBAAkB,EAAE,kBAAkB,CAAC;CACxC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,mBAAmB,CAuBnD"}
1
+ {"version":3,"file":"useConnection.d.ts","sourceRoot":"","sources":["../../src/hooks/useConnection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAGpF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIlD,MAAM,WAAW,cAAc,CAAC,YAAY,SAAS,eAAe,GAAG,eAAe;IACpF;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAgB,aAAa;IAsBzB;;OAEG;eAjBF,YAAY,SAAS,eAAe,uDAIlC,cAAc,CAAC,YAAY,CAAC;IAe/B;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;EAEN"}
@@ -4,21 +4,32 @@ import { useReconnection } from "./internal/useReconnection";
4
4
  /**
5
5
  * Hook allows to join or leave a room and check the current connection status.
6
6
  * @category Connection
7
- * @returns {UseConnectionResult}
7
+ * @group Hooks
8
8
  */
9
9
  export function useConnection() {
10
10
  const context = useFishjamContext();
11
11
  const client = context.fishjamClientRef.current;
12
12
  const reconnectionStatus = useReconnection();
13
- const joinRoom = useCallback(({ url, peerToken, peerMetadata }) => client.connect({ url, token: peerToken, peerMetadata: peerMetadata ?? {} }), [client]);
13
+ const joinRoom = useCallback(({ url, peerToken, peerMetadata, }) => client.connect({ url, token: peerToken, peerMetadata: peerMetadata ?? {} }), [client]);
14
14
  const leaveRoom = useCallback(() => {
15
15
  client.disconnect();
16
16
  }, [client]);
17
17
  const peerStatus = context.peerStatus;
18
18
  return {
19
+ /**
20
+ * Join room and start streaming camera and microphone
21
+ */
19
22
  joinRoom,
23
+ /**
24
+ * Leave room and stop streaming
25
+ */
20
26
  leaveRoom,
27
+ /**
28
+ * Current peer connection status
29
+ */
21
30
  peerStatus,
22
- reconnectionStatus,
31
+ /**
32
+ * Current reconnection status
33
+ */ reconnectionStatus,
23
34
  };
24
35
  }
@@ -1,9 +1,7 @@
1
1
  import type { Metadata } from "@fishjam-cloud/ts-client";
2
- import type { PeerId } from "../types/internal";
3
- import type { Track } from "../types/public";
2
+ import type { PeerId, Track } from "../types/public";
4
3
  /**
5
4
  *
6
- * @category Connection
7
5
  * @typeParam PeerMetadata Type of metadata set by peer while connecting to a room.
8
6
  * @typeParam ServerMetadata Type of metadata set by the server while creating a peer.
9
7
  */
@@ -17,21 +15,21 @@ export type PeerWithTracks<PeerMetadata, ServerMetadata> = {
17
15
  screenShareAudioTrack?: Track;
18
16
  };
19
17
  /**
18
+ * Hook allows to access id, tracks and metadata of the local and remote peers.
20
19
  *
21
20
  * @category Connection
21
+ * @group Hooks
22
22
  * @typeParam PeerMetadata Type of metadata set by peer while connecting to a room.
23
23
  * @typeParam ServerMetadata Type of metadata set by the server while creating a peer.
24
24
  */
25
- export type UsePeersResult<PeerMetadata, ServerMetadata> = {
25
+ export declare function usePeers<PeerMetadata = Record<string, unknown>, ServerMetadata = Record<string, unknown>>(): {
26
26
  /**
27
27
  * The local peer with distinguished tracks (camera, microphone, screen share).
28
28
  * Will be null if the local peer is not found.
29
- */
30
- localPeer: PeerWithTracks<PeerMetadata, ServerMetadata> | null;
29
+ */ localPeer: PeerWithTracks<PeerMetadata, ServerMetadata> | null;
31
30
  /**
32
31
  * Array of remote peers with distinguished tracks (camera, microphone, screen share).
33
- */
34
- remotePeers: PeerWithTracks<PeerMetadata, ServerMetadata>[];
32
+ */ remotePeers: PeerWithTracks<PeerMetadata, ServerMetadata>[];
35
33
  /**
36
34
  * @deprecated Use remotePeers instead
37
35
  * Legacy array containing remote peers.
@@ -39,13 +37,4 @@ export type UsePeersResult<PeerMetadata, ServerMetadata> = {
39
37
  */
40
38
  peers: PeerWithTracks<PeerMetadata, ServerMetadata>[];
41
39
  };
42
- /**
43
- * Hook allows to access id, tracks and metadata of the local and remote peers.
44
- *
45
- * @category Connection
46
- * @group Hooks
47
- * @typeParam PeerMetadata Type of metadata set by peer while connecting to a room.
48
- * @typeParam ServerMetadata Type of metadata set by the server while creating a peer.
49
- */
50
- export declare function usePeers<PeerMetadata = Record<string, unknown>, ServerMetadata = Record<string, unknown>>(): UsePeersResult<PeerMetadata, ServerMetadata>;
51
40
  //# sourceMappingURL=usePeers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePeers.d.ts","sourceRoot":"","sources":["../../src/hooks/usePeers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,QAAQ,EAIT,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAG7C;;;;;GAKG;AACH,MAAM,MAAM,cAAc,CAAC,YAAY,EAAE,cAAc,IAAI;IACzD,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAClD,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,eAAe,CAAC,EAAE,KAAK,CAAC;IACxB,qBAAqB,CAAC,EAAE,KAAK,CAAC;IAC9B,qBAAqB,CAAC,EAAE,KAAK,CAAC;CAC/B,CAAC;AAgCF;;;;;GAKG;AACH,MAAM,MAAM,cAAc,CAAC,YAAY,EAAE,cAAc,IAAI;IACzD;;;OAGG;IACH,SAAS,EAAE,cAAc,CAAC,YAAY,EAAE,cAAc,CAAC,GAAG,IAAI,CAAC;IAE/D;;OAEG;IACH,WAAW,EAAE,cAAc,CAAC,YAAY,EAAE,cAAc,CAAC,EAAE,CAAC;IAE5D;;;;OAIG;IACH,KAAK,EAAE,cAAc,CAAC,YAAY,EAAE,cAAc,CAAC,EAAE,CAAC;CACvD,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CACtB,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KACrC,cAAc,CAAC,YAAY,EAAE,cAAc,CAAC,CAYhD"}
1
+ {"version":3,"file":"usePeers.d.ts","sourceRoot":"","sources":["../../src/hooks/usePeers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAuB,QAAQ,EAAqC,MAAM,0BAA0B,CAAC;AAGjH,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAW,MAAM,iBAAiB,CAAC;AAG9D;;;;GAIG;AACH,MAAM,MAAM,cAAc,CAAC,YAAY,EAAE,cAAc,IAAI;IACzD,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,QAAQ,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAClD,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,eAAe,CAAC,EAAE,KAAK,CAAC;IACxB,qBAAqB,CAAC,EAAE,KAAK,CAAC;IAC9B,qBAAqB,CAAC,EAAE,KAAK,CAAC;CAC/B,CAAC;AAgCF;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAcrG;;;OAGG;IACH;;OAEG;IACH;;;;OAIG;;EAGN"}
@@ -39,5 +39,19 @@ export function usePeers() {
39
39
  ? getPeerWithDistinguishedTracks(clientState.localPeer)
40
40
  : null;
41
41
  const remotePeers = Object.values(clientState.peers).map((peer) => getPeerWithDistinguishedTracks(peer));
42
- return { localPeer, remotePeers, peers: remotePeers };
42
+ return {
43
+ /**
44
+ * The local peer with distinguished tracks (camera, microphone, screen share).
45
+ * Will be null if the local peer is not found.
46
+ */ localPeer,
47
+ /**
48
+ * Array of remote peers with distinguished tracks (camera, microphone, screen share).
49
+ */ remotePeers,
50
+ /**
51
+ * @deprecated Use remotePeers instead
52
+ * Legacy array containing remote peers.
53
+ * This property will be removed in future versions.
54
+ */
55
+ peers: remotePeers,
56
+ };
43
57
  }
@@ -1,10 +1,9 @@
1
- import type { TracksMiddleware } from "../types/public";
2
1
  /**
3
- *
2
+ * Hook to enable screen sharing within a room and manage the existing stream.
4
3
  * @category Devices
5
- * @group Types
4
+ * @group Hooks
6
5
  */
7
- export type UseScreenshareResult = {
6
+ export declare const useScreenShare: () => {
8
7
  /**
9
8
  * Invokes the screen sharing prompt in the user's browser and starts streaming upon approval.
10
9
  */
@@ -33,18 +32,12 @@ export type UseScreenshareResult = {
33
32
  * A screenshare may include both audio and video tracks, and this middleware is capable of processing
34
33
  * each track type.
35
34
  */
36
- currentTracksMiddleware: TracksMiddleware | null;
35
+ currentTracksMiddleware: import("..").TracksMiddleware | null;
37
36
  /**
38
37
  * Sets the middleware responsible for processing the tracks.
39
38
  * @param middleware The middleware to set, which can be a TracksMiddleware instance or null to remove the middleware.
40
39
  * @returns A Promise that resolves once the middleware is successfully set.
41
40
  */
42
- setTracksMiddleware: (middleware: TracksMiddleware | null) => Promise<void>;
41
+ setTracksMiddleware: (middleware: import("..").TracksMiddleware | null) => Promise<void>;
43
42
  };
44
- /**
45
- * Hook to enable screen sharing within a room and manage the existing stream.
46
- * @category Devices
47
- * @group Hooks
48
- */
49
- export declare const useScreenShare: () => UseScreenshareResult;
50
43
  //# sourceMappingURL=useScreenShare.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useScreenShare.d.ts","sourceRoot":"","sources":["../../src/hooks/useScreenShare.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGxD;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC;;OAEG;IACH,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;;OAEG;IACH,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC;;OAEG;IACH,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B;;OAEG;IACH,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACpC;;OAEG;IACH,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACpC;;;;OAIG;IACH,uBAAuB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACjD;;;;OAIG;IACH,mBAAmB,EAAE,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,4BAI1B,CAAC"}
1
+ {"version":3,"file":"useScreenShare.d.ts","sourceRoot":"","sources":["../../src/hooks/useScreenShare.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,cAAc;IAIvB;;OAEG;;wBAC2C,CAAC;wBAEP,CAAA;;IADxC;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;;;OAIG;;IAEH;;;;OAIG;;CAGN,CAAC"}
@@ -6,5 +6,38 @@ import { useFishjamContext } from "./internal/useFishjamContext";
6
6
  */
7
7
  export const useScreenShare = () => {
8
8
  const { screenShareManager } = useFishjamContext();
9
- return screenShareManager;
9
+ return {
10
+ /**
11
+ * Invokes the screen sharing prompt in the user's browser and starts streaming upon approval.
12
+ */
13
+ startStreaming: screenShareManager.startStreaming,
14
+ /**
15
+ * Stops the stream and cancels browser screen sharing.
16
+ */
17
+ stopStreaming: screenShareManager.stopStreaming,
18
+ /**
19
+ * The MediaStream object containing both tracks.
20
+ */
21
+ stream: screenShareManager.stream,
22
+ /**
23
+ * The separate video MediaStreamTrack.
24
+ */
25
+ videoTrack: screenShareManager.videoTrack,
26
+ /**
27
+ * The separate audio MediaStreamTrack.
28
+ */
29
+ audioTrack: screenShareManager.audioTrack,
30
+ /**
31
+ * The middleware currently assigned to process the tracks.
32
+ * A screenshare may include both audio and video tracks, and this middleware is capable of processing
33
+ * each track type.
34
+ */
35
+ currentTracksMiddleware: screenShareManager.currentTracksMiddleware,
36
+ /**
37
+ * Sets the middleware responsible for processing the tracks.
38
+ * @param middleware The middleware to set, which can be a TracksMiddleware instance or null to remove the middleware.
39
+ * @returns A Promise that resolves once the middleware is successfully set.
40
+ */
41
+ setTracksMiddleware: screenShareManager.setTracksMiddleware,
42
+ };
10
43
  };
@@ -6,6 +6,9 @@ import type { GenericMetadata } from "@fishjam-cloud/ts-client";
6
6
  * @returns
7
7
  */
8
8
  export declare const useUpdatePeerMetadata: <PeerMetadata extends GenericMetadata = GenericMetadata>() => {
9
+ /**
10
+ * Updates metadata visible to other peers
11
+ */
9
12
  updatePeerMetadata: (peerMetadata: PeerMetadata) => void;
10
13
  };
11
14
  //# sourceMappingURL=useUpdatePeerMetadata.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useUpdatePeerMetadata.d.ts","sourceRoot":"","sources":["../../src/hooks/useUpdatePeerMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAKhE;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,YAAY,SAAS,eAAe;uCAIvD,YAAY;CAO9B,CAAC"}
1
+ {"version":3,"file":"useUpdatePeerMetadata.d.ts","sourceRoot":"","sources":["../../src/hooks/useUpdatePeerMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAKhE;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,YAAY,SAAS,eAAe;IAWtE;;OAEG;uCATY,YAAY;CAY9B,CAAC"}
@@ -11,5 +11,10 @@ export const useUpdatePeerMetadata = () => {
11
11
  const updatePeerMetadata = useCallback((peerMetadata) => {
12
12
  fishjamClientRef.current.updatePeerMetadata(peerMetadata);
13
13
  }, [fishjamClientRef]);
14
- return { updatePeerMetadata };
14
+ return {
15
+ /**
16
+ * Updates metadata visible to other peers
17
+ */
18
+ updatePeerMetadata,
19
+ };
15
20
  };
@@ -1,9 +1,22 @@
1
- import type { PeerId } from "../types/internal";
1
+ import type { PeerId } from "../types/public";
2
2
  /**
3
+ * Voice activity detection. Use this hook to check if voice is detected in audio track for given peer(s).
4
+ *
5
+ * Example usage:
6
+ * ```tsx
7
+ * function WhoIsTalkingComponent({ peerIds }: { peerIds: PeerId[] }) {
8
+ * const peersInfo = useVAD({peerIds});
9
+ * const activePeers = (Object.keys(peersInfo) as PeerId[]).filter((peerId) => peersInfo[peerId]);
10
+ *
11
+ * return `Now talking: ${activePeers.join(", ")}`;
12
+ * }
13
+ * ```
3
14
  * @param peerIds List of ids of peers to subscribe to for voice activity detection notifications.
4
15
  * @category Connection
5
16
  * @group Hooks
6
17
  * @returns Each key is a peerId and the boolean value indicates if voice activity is currently detected for that peer.
7
18
  */
8
- export declare const useVAD: (peerIds: PeerId[]) => Record<PeerId, boolean>;
19
+ export declare const useVAD: ({ peerIds }: {
20
+ peerIds: ReadonlyArray<PeerId>;
21
+ }) => Record<PeerId, boolean>;
9
22
  //# sourceMappingURL=useVAD.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useVAD.d.ts","sourceRoot":"","sources":["../../src/hooks/useVAD.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAW,MAAM,mBAAmB,CAAC;AAIzD;;;;;GAKG;AACH,eAAO,MAAM,MAAM,YAAa,MAAM,EAAE,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAgEhE,CAAC"}
1
+ {"version":3,"file":"useVAD.d.ts","sourceRoot":"","sources":["../../src/hooks/useVAD.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAW,MAAM,iBAAiB,CAAC;AAIvD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,MAAM,gBAAiB;IAAE,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CAAE,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAgE9F,CAAC"}
@@ -2,12 +2,23 @@ import { useEffect, useMemo, useState } from "react";
2
2
  import { useFishjamClientState } from "./internal/useFishjamClientState";
3
3
  import { useFishjamContext } from "./internal/useFishjamContext";
4
4
  /**
5
+ * Voice activity detection. Use this hook to check if voice is detected in audio track for given peer(s).
6
+ *
7
+ * Example usage:
8
+ * ```tsx
9
+ * function WhoIsTalkingComponent({ peerIds }: { peerIds: PeerId[] }) {
10
+ * const peersInfo = useVAD({peerIds});
11
+ * const activePeers = (Object.keys(peersInfo) as PeerId[]).filter((peerId) => peersInfo[peerId]);
12
+ *
13
+ * return `Now talking: ${activePeers.join(", ")}`;
14
+ * }
15
+ * ```
5
16
  * @param peerIds List of ids of peers to subscribe to for voice activity detection notifications.
6
17
  * @category Connection
7
18
  * @group Hooks
8
19
  * @returns Each key is a peerId and the boolean value indicates if voice activity is currently detected for that peer.
9
20
  */
10
- export const useVAD = (peerIds) => {
21
+ export const useVAD = ({ peerIds }) => {
11
22
  const { fishjamClientRef } = useFishjamContext();
12
23
  const { peers } = useFishjamClientState(fishjamClientRef.current);
13
24
  const micTracksWithSelectedPeerIds = useMemo(() => Object.values(peers)
package/dist/index.d.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  export { FishjamProvider, type FishjamProviderProps } from "./FishjamProvider";
2
- export { useCamera, type UseCameraResult } from "./hooks/devices/useCamera";
3
- export { useInitializeDevices, type UseInitializeDevicesResult } from "./hooks/devices/useInitializeDevices";
4
- export { useMicrophone, type UseMicrophoneResult } from "./hooks/devices/useMicrophone";
5
- export { type JoinRoomConfig, useConnection, type UseConnectionResult } from "./hooks/useConnection";
6
- export { type PeerWithTracks, usePeers, type UsePeersResult } from "./hooks/usePeers";
7
- export { useScreenShare, type UseScreenshareResult } from "./hooks/useScreenShare";
2
+ export { useCamera } from "./hooks/devices/useCamera";
3
+ export { useInitializeDevices, UseInitializeDevicesParams } from "./hooks/devices/useInitializeDevices";
4
+ export { useMicrophone } from "./hooks/devices/useMicrophone";
5
+ export { type JoinRoomConfig, useConnection } from "./hooks/useConnection";
6
+ export { type PeerWithTracks, usePeers } from "./hooks/usePeers";
7
+ export { useScreenShare } from "./hooks/useScreenShare";
8
8
  export { useUpdatePeerMetadata } from "./hooks/useUpdatePeerMetadata";
9
9
  export { useVAD } from "./hooks/useVAD";
10
- export type { DeviceItem, PeerStatus, PersistLastDeviceHandlers, StreamConfig, Track, TrackMiddleware, TracksMiddleware, } from "./types/public";
11
- export type { AuthErrorReason, Metadata, ReconnectConfig, ReconnectionStatus, SimulcastBandwidthLimit, SimulcastConfig, TrackBandwidthLimit, } from "@fishjam-cloud/ts-client";
10
+ export type { BandwidthLimits, Brand, DeviceError, DeviceItem, PeerId, PeerStatus, PersistLastDeviceHandlers, SimulcastBandwidthLimits, StreamConfig, Track, TrackId, TrackMiddleware, TracksMiddleware, } from "./types/public";
11
+ export type { AuthErrorReason, JoinErrorReason, Metadata, ReconnectConfig, ReconnectionStatus, SimulcastBandwidthLimit, SimulcastConfig, TrackBandwidthLimit, } from "@fishjam-cloud/ts-client";
12
12
  export { Variant } from "@fishjam-cloud/ts-client";
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,KAAK,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAC7G,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACxF,OAAO,EAAE,KAAK,cAAc,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACrG,OAAO,EAAE,KAAK,cAAc,EAAE,QAAQ,EAAE,KAAK,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,YAAY,EACV,UAAU,EACV,UAAU,EACV,yBAAyB,EACzB,YAAY,EACZ,KAAK,EACL,eAAe,EACf,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,eAAe,EACf,QAAQ,EACR,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,eAAe,EACf,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AACxG,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,KAAK,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,KAAK,cAAc,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,YAAY,EACV,eAAe,EACf,KAAK,EACL,WAAW,EACX,UAAU,EACV,MAAM,EACN,UAAU,EACV,yBAAyB,EACzB,wBAAwB,EACxB,YAAY,EACZ,KAAK,EACL,OAAO,EACP,eAAe,EACf,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,eAAe,EACf,eAAe,EACf,QAAQ,EACR,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,eAAe,EACf,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC"}
@@ -1,6 +1,5 @@
1
- import type { DeviceType, Track, TrackMiddleware, TracksMiddleware } from "./public";
2
- export type TrackId = string;
3
- export type PeerId = string;
1
+ import type { Peer } from "@fishjam-cloud/ts-client";
2
+ import type { DeviceError, DeviceType, PeerId, Track, TrackMiddleware, TracksMiddleware } from "./public";
4
3
  export type DevicesStatus = "OK" | "Error" | "Not requested" | "Requesting";
5
4
  export type MediaStatus = "OK" | "Error" | "Not requested" | "Requesting";
6
5
  export type DeviceManagerStatus = "uninitialized" | "initializing" | "initialized" | "error";
@@ -23,15 +22,6 @@ export type DeviceState = {
23
22
  error: DeviceError | null;
24
23
  currentMiddleware: TrackMiddleware | null;
25
24
  };
26
- export type DeviceError = {
27
- name: "OverconstrainedError";
28
- } | {
29
- name: "NotAllowedError";
30
- } | {
31
- name: "NotFoundError";
32
- } | {
33
- name: "UNHANDLED_ERROR";
34
- };
35
25
  export type CurrentDevices = {
36
26
  videoinput: MediaDeviceInfo | null;
37
27
  audioinput: MediaDeviceInfo | null;
@@ -85,4 +75,7 @@ export interface TrackManager {
85
75
  */
86
76
  toggleDevice: () => Promise<void>;
87
77
  }
78
+ export type BrandedPeer<P, S> = Omit<Peer<P, S>, "id"> & {
79
+ id: PeerId;
80
+ };
88
81
  //# sourceMappingURL=internal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/types/internal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/types/internal.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
1
  import type { SimulcastConfig, TrackMetadata, Variant } from "@fishjam-cloud/ts-client";
2
- import type { DeviceError, DeviceManagerStatus, TrackId } from "./internal";
2
+ import type { DeviceManagerStatus } from "./internal";
3
+ export type TrackId = Brand<string, "TrackId">;
4
+ export type PeerId = Brand<string, "PeerId">;
3
5
  export type Track = {
4
6
  stream: MediaStream | null;
5
7
  encoding: Variant | null;
@@ -57,4 +59,18 @@ export type BandwidthLimits = {
57
59
  simulcast: SimulcastBandwidthLimits;
58
60
  };
59
61
  export type DeviceType = "audio" | "video";
62
+ export type DeviceError = {
63
+ name: "OverconstrainedError";
64
+ } | {
65
+ name: "NotAllowedError";
66
+ } | {
67
+ name: "NotFoundError";
68
+ } | {
69
+ name: "UNHANDLED_ERROR";
70
+ };
71
+ declare const brand: unique symbol;
72
+ export type Brand<T, TBrand extends string> = T & {
73
+ [brand]: TBrand;
74
+ };
75
+ export {};
60
76
  //# sourceMappingURL=public.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/types/public.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAExF,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5E,MAAM,MAAM,KAAK,GAAG;IAClB,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,KAAK;IAAE,KAAK,EAAE,gBAAgB,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC,GAAG,IAAI,CAAC;AAEtH,MAAM,MAAM,gBAAgB,GAAG,CAC7B,UAAU,EAAE,gBAAgB,EAC5B,UAAU,EAAE,gBAAgB,GAAG,IAAI,KAChC;IAAE,UAAU,EAAE,gBAAgB,CAAC;IAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC;AAEhG;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAEvE,MAAM,MAAM,UAAU,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7D,MAAM,MAAM,MAAM,GAAG;IACnB,YAAY,EAAE,mBAAmB,CAAC;IAClC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,YAAY,EAAE,UAAU,GAAG,IAAI,CAAC;IAChC,iBAAiB,EAAE,eAAe,CAAC;IACnC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,aAAa,EAAE,MAAM,eAAe,GAAG,IAAI,CAAC;IAC5C,cAAc,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IAAE,SAAS,CAAC,EAAE,OAAO,EAAE,GAAG,KAAK,CAAA;CAAE,CAAC;AAE7D,MAAM,MAAM,eAAe,GAAG;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,wBAAwB,CAAA;CAAE,CAAC;AAE5F,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/types/public.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAExF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAC/C,MAAM,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAE7C,MAAM,MAAM,KAAK,GAAG;IAClB,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,EAAE,gBAAgB,KAAK;IAAE,KAAK,EAAE,gBAAgB,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC,GAAG,IAAI,CAAC;AAEtH,MAAM,MAAM,gBAAgB,GAAG,CAC7B,UAAU,EAAE,gBAAgB,EAC5B,UAAU,EAAE,gBAAgB,GAAG,IAAI,KAChC;IAAE,UAAU,EAAE,gBAAgB,CAAC;IAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC;AAEhG;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,GAAG,YAAY,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAEvE,MAAM,MAAM,UAAU,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7D,MAAM,MAAM,MAAM,GAAG;IACnB,YAAY,EAAE,mBAAmB,CAAC;IAClC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,YAAY,EAAE,UAAU,GAAG,IAAI,CAAC;IAChC,iBAAiB,EAAE,eAAe,CAAC;IACnC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;IAChC,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,aAAa,EAAE,MAAM,eAAe,GAAG,IAAI,CAAC;IAC5C,cAAc,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IAAE,SAAS,CAAC,EAAE,OAAO,EAAE,GAAG,KAAK,CAAA;CAAE,CAAC;AAE7D,MAAM,MAAM,eAAe,GAAG;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,wBAAwB,CAAA;CAAE,CAAC;AAE5F,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;AAE3C,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,OAAO,CAAC,MAAM,KAAK,EAAE,OAAO,MAAM,CAAC;AACnC,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,MAAM,SAAS,MAAM,IAAI,CAAC,GAAG;IAAE,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { DeviceError } from "../types/internal";
1
+ import type { DeviceError } from "../types/public";
2
2
  export declare const PERMISSION_DENIED: DeviceError;
3
3
  export declare const OVERCONSTRAINED_ERROR: DeviceError;
4
4
  export declare const NOT_FOUND_ERROR: DeviceError;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,eAAO,MAAM,iBAAiB,EAAE,WAAyC,CAAC;AAC1E,eAAO,MAAM,qBAAqB,EAAE,WAA8C,CAAC;AACnF,eAAO,MAAM,eAAe,EAAE,WAAuC,CAAC;AACtE,eAAO,MAAM,eAAe,EAAE,WAAyC,CAAC;AAIxE,eAAO,MAAM,mBAAmB,UAAW,OAAO,KAAG,WAAW,GAAG,IAelE,CAAC"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,eAAO,MAAM,iBAAiB,EAAE,WAAyC,CAAC;AAC1E,eAAO,MAAM,qBAAqB,EAAE,WAA8C,CAAC;AACnF,eAAO,MAAM,eAAe,EAAE,WAAuC,CAAC;AACtE,eAAO,MAAM,eAAe,EAAE,WAAyC,CAAC;AAIxE,eAAO,MAAM,mBAAmB,UAAW,OAAO,KAAG,WAAW,GAAG,IAelE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"track.d.ts","sourceRoot":"","sources":["../../src/utils/track.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAA+B,MAAM,0BAA0B,CAAC;AAC5G,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAmC9D,eAAO,MAAM,qBAAqB,aAAc,aAAa,wBAAwB,MAAM,GAAG,IAAI,iBAIjG,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,gBAAgB,EACvB,iBAAiB,EAAE,MAAM,MAAM,GAAG,SAAS,EAC3C,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,QAQ9B;AAOD,eAAO,MAAM,8BAA8B,cAC9B,OAAO,EAAE,GAAG,KAAK,GAAG,SAAS,mBACvB,eAAe,oFAcjC,CAAC"}
1
+ {"version":3,"file":"track.d.ts","sourceRoot":"","sources":["../../src/utils/track.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAA+B,MAAM,0BAA0B,CAAC;AAC5G,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,KAAK,EAAE,eAAe,EAAE,KAAK,EAAW,MAAM,iBAAiB,CAAC;AAmCvE,eAAO,MAAM,qBAAqB,aAAc,aAAa,wBAAwB,MAAM,GAAG,IAAI,iBAIjG,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,gBAAgB,EACvB,iBAAiB,EAAE,MAAM,MAAM,GAAG,SAAS,EAC3C,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,QAQ9B;AAOD,eAAO,MAAM,8BAA8B,cAC9B,OAAO,EAAE,GAAG,KAAK,GAAG,SAAS,mBACvB,eAAe,oFAcjC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fishjam-cloud/react-client",
3
- "version": "0.11.0",
3
+ "version": "0.12.0",
4
4
  "description": "React client library for Fishjam",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Fishjam Team",
@@ -38,19 +38,19 @@
38
38
  "prepack": "yarn workspace @fishjam-cloud/ts-client build && yarn build"
39
39
  },
40
40
  "devDependencies": {
41
- "@playwright/test": "^1.49.1",
41
+ "@playwright/test": "^1.50.0",
42
42
  "@types/events": "^3.0.3",
43
43
  "@types/lodash.isequal": "^4.5.8",
44
- "@types/node": "^22.10.2",
45
- "@types/react": "^19.0.1",
44
+ "@types/node": "^22.12.0",
45
+ "@types/react": "^19.0.8",
46
46
  "react": "^19.0.0",
47
47
  "typed-emitter": "^2.1.0",
48
- "typedoc": "^0.27.5",
49
- "typedoc-plugin-mdn-links": "^4.0.5",
50
- "typescript": "^5.7.2"
48
+ "typedoc": "^0.27.6",
49
+ "typedoc-plugin-mdn-links": "^4.0.10",
50
+ "typescript": "^5.7.3"
51
51
  },
52
52
  "dependencies": {
53
- "@fishjam-cloud/ts-client": "0.11.0",
53
+ "@fishjam-cloud/ts-client": "0.12.0",
54
54
  "events": "3.3.0",
55
55
  "lodash.isequal": "4.5.0"
56
56
  },