@fishjam-cloud/react-client 0.7.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/DeviceManager.d.ts +13 -7
  2. package/dist/DeviceManager.d.ts.map +1 -1
  3. package/dist/DeviceManager.js +7 -18
  4. package/dist/constraints.d.ts +2 -3
  5. package/dist/constraints.d.ts.map +1 -1
  6. package/dist/constraints.js +9 -10
  7. package/dist/fishjamProvider.d.ts +8 -6
  8. package/dist/fishjamProvider.d.ts.map +1 -1
  9. package/dist/fishjamProvider.js +23 -8
  10. package/dist/hooks/deviceManagers/useAudioDeviceManager.d.ts +5 -1
  11. package/dist/hooks/deviceManagers/useAudioDeviceManager.d.ts.map +1 -1
  12. package/dist/hooks/deviceManagers/useAudioDeviceManager.js +4 -0
  13. package/dist/hooks/deviceManagers/useDeviceManager.d.ts +1 -1
  14. package/dist/hooks/deviceManagers/useDeviceManager.d.ts.map +1 -1
  15. package/dist/hooks/deviceManagers/useVideoDeviceManager.d.ts +5 -1
  16. package/dist/hooks/deviceManagers/useVideoDeviceManager.d.ts.map +1 -1
  17. package/dist/hooks/deviceManagers/useVideoDeviceManager.js +4 -0
  18. package/dist/hooks/public.d.ts +1 -3
  19. package/dist/hooks/public.d.ts.map +1 -1
  20. package/dist/hooks/public.js +1 -3
  21. package/dist/hooks/useConnection.d.ts +10 -2
  22. package/dist/hooks/useConnection.d.ts.map +1 -1
  23. package/dist/hooks/useConnection.js +8 -0
  24. package/dist/hooks/useDevices.d.ts +13 -1
  25. package/dist/hooks/useDevices.d.ts.map +1 -1
  26. package/dist/hooks/useDevices.js +18 -4
  27. package/dist/hooks/useFishjamClientState.d.ts +1 -2
  28. package/dist/hooks/useFishjamClientState.d.ts.map +1 -1
  29. package/dist/hooks/useFishjamClientState.js +0 -4
  30. package/dist/hooks/useFishjamClient_DO_NOT_USE.d.ts +6 -1
  31. package/dist/hooks/useFishjamClient_DO_NOT_USE.d.ts.map +1 -1
  32. package/dist/hooks/useFishjamClient_DO_NOT_USE.js +5 -0
  33. package/dist/hooks/useFishjamContext.d.ts +3 -3
  34. package/dist/hooks/useFishjamContext.d.ts.map +1 -1
  35. package/dist/hooks/usePeerStatus.d.ts +8 -0
  36. package/dist/hooks/usePeerStatus.d.ts.map +1 -0
  37. package/dist/hooks/{useParticipantStatus.js → usePeerStatus.js} +12 -12
  38. package/dist/hooks/usePeers.d.ts +10 -0
  39. package/dist/hooks/usePeers.d.ts.map +1 -0
  40. package/dist/hooks/{useParticipants.js → usePeers.js} +8 -5
  41. package/dist/hooks/useProcessedPreviewStream.d.ts +1 -1
  42. package/dist/hooks/useProcessedPreviewStream.d.ts.map +1 -1
  43. package/dist/hooks/useReconnection.d.ts +4 -0
  44. package/dist/hooks/useReconnection.d.ts.map +1 -1
  45. package/dist/hooks/useReconnection.js +4 -0
  46. package/dist/hooks/useScreenShare.d.ts +5 -1
  47. package/dist/hooks/useScreenShare.d.ts.map +1 -1
  48. package/dist/hooks/useScreenShare.js +5 -1
  49. package/dist/hooks/useStatus.d.ts +5 -1
  50. package/dist/hooks/useStatus.d.ts.map +1 -1
  51. package/dist/hooks/useStatus.js +4 -0
  52. package/dist/hooks/useTrackManager.d.ts +4 -4
  53. package/dist/hooks/useTrackManager.d.ts.map +1 -1
  54. package/dist/hooks/useTrackManager.js +3 -3
  55. package/dist/index.d.ts +3 -6
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +2 -3
  58. package/dist/mediaInitializer.d.ts +2 -2
  59. package/dist/mediaInitializer.d.ts.map +1 -1
  60. package/dist/types/internal.d.ts +129 -0
  61. package/dist/types/internal.d.ts.map +1 -0
  62. package/dist/types/public.d.ts +65 -0
  63. package/dist/types/public.d.ts.map +1 -0
  64. package/dist/utils/errors.d.ts +1 -1
  65. package/dist/utils/errors.d.ts.map +1 -1
  66. package/dist/utils/media.d.ts +3 -2
  67. package/dist/utils/media.d.ts.map +1 -1
  68. package/dist/utils/track.d.ts +2 -2
  69. package/dist/utils/track.d.ts.map +1 -1
  70. package/dist/utils/track.js +0 -2
  71. package/package.json +6 -6
  72. package/readme.md +20 -118
  73. package/dist/hooks/useParticipantStatus.d.ts +0 -8
  74. package/dist/hooks/useParticipantStatus.d.ts.map +0 -1
  75. package/dist/hooks/useParticipants.d.ts +0 -6
  76. package/dist/hooks/useParticipants.d.ts.map +0 -1
  77. package/dist/state.types.d.ts +0 -42
  78. package/dist/state.types.d.ts.map +0 -1
  79. package/dist/types.d.ts +0 -255
  80. package/dist/types.d.ts.map +0 -1
  81. /package/dist/{state.types.js → types/internal.js} +0 -0
  82. /package/dist/{types.js → types/public.js} +0 -0
@@ -1,24 +1,24 @@
1
1
  import { useCallback, useEffect, useRef, useState } from "react";
2
- export const useParticipantStatus = (client) => {
3
- const [peerStatus, setParticipantStatusState] = useState("idle");
2
+ export const usePeerStatus = (client) => {
3
+ const [peerStatus, setPeerStatusState] = useState("idle");
4
4
  const peerStatusRef = useRef("idle");
5
- const setParticipantStatus = useCallback((status) => {
5
+ const setPeerStatus = useCallback((status) => {
6
6
  peerStatusRef.current = status;
7
- setParticipantStatusState(status);
8
- }, [setParticipantStatusState]);
9
- const getCurrentParticipantStatus = useCallback(() => peerStatusRef.current, []);
7
+ setPeerStatusState(status);
8
+ }, [setPeerStatusState]);
9
+ const getCurrentPeerStatus = useCallback(() => peerStatusRef.current, []);
10
10
  useEffect(() => {
11
11
  const setConnecting = () => {
12
- setParticipantStatus("connecting");
12
+ setPeerStatus("connecting");
13
13
  };
14
14
  const setError = () => {
15
- setParticipantStatus("error");
15
+ setPeerStatus("error");
16
16
  };
17
17
  const setJoined = () => {
18
- setParticipantStatus("connected");
18
+ setPeerStatus("connected");
19
19
  };
20
20
  const setDisconnected = () => {
21
- setParticipantStatus("idle");
21
+ setPeerStatus("idle");
22
22
  };
23
23
  client.on("connectionStarted", setConnecting);
24
24
  client.on("joined", setJoined);
@@ -34,6 +34,6 @@ export const useParticipantStatus = (client) => {
34
34
  client.off("connectionError", setError);
35
35
  client.off("disconnected", setDisconnected);
36
36
  };
37
- }, [client, setParticipantStatus]);
38
- return { peerStatus, getCurrentParticipantStatus };
37
+ }, [client, setPeerStatus]);
38
+ return { peerStatus, getCurrentPeerStatus };
39
39
  };
@@ -0,0 +1,10 @@
1
+ import type { PeerWithTracks } from "../types/public";
2
+ /**
3
+ *
4
+ * @category Connection
5
+ */
6
+ export declare function usePeers(): {
7
+ localPeer: PeerWithTracks | null;
8
+ peers: PeerWithTracks[];
9
+ };
10
+ //# sourceMappingURL=usePeers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePeers.d.ts","sourceRoot":"","sources":["../../src/hooks/usePeers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AActD;;;GAGG;AACH,wBAAgB,QAAQ;;;EAOvB"}
@@ -7,10 +7,13 @@ function getPeerWithDistinguishedTracks(peerState) {
7
7
  const screenShareAudioTrack = peerTracks.find(({ metadata }) => metadata?.type === "screenShareAudio");
8
8
  return { ...peerState, cameraTrack, microphoneTrack, screenShareVideoTrack, screenShareAudioTrack };
9
9
  }
10
- export function useParticipants() {
10
+ /**
11
+ *
12
+ * @category Connection
13
+ */
14
+ export function usePeers() {
11
15
  const { clientState } = useFishjamContext();
12
- const { localPeer, peers } = clientState;
13
- const localParticipant = localPeer ? getPeerWithDistinguishedTracks(localPeer) : null;
14
- const participants = Object.values(peers).map(getPeerWithDistinguishedTracks);
15
- return { localParticipant, participants };
16
+ const localPeer = clientState.localPeer ? getPeerWithDistinguishedTracks(clientState.localPeer) : null;
17
+ const peers = Object.values(clientState.peers).map(getPeerWithDistinguishedTracks);
18
+ return { localPeer, peers };
16
19
  }
@@ -1,3 +1,3 @@
1
- import type { TrackManager } from "../types";
1
+ import type { TrackManager } from "../types/internal";
2
2
  export declare function useProcessedPreviewStream(trackManager: TrackManager, deviceTrack: MediaStreamTrack | null | undefined): MediaStream | null;
3
3
  //# sourceMappingURL=useProcessedPreviewStream.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useProcessedPreviewStream.d.ts","sourceRoot":"","sources":["../../src/hooks/useProcessedPreviewStream.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,sBAiBjD"}
1
+ {"version":3,"file":"useProcessedPreviewStream.d.ts","sourceRoot":"","sources":["../../src/hooks/useProcessedPreviewStream.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,wBAAgB,yBAAyB,CACvC,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,sBAiBjD"}
@@ -1,3 +1,7 @@
1
1
  import type { ReconnectionStatus } from "@fishjam-cloud/ts-client";
2
+ /**
3
+ *
4
+ * @category Connection
5
+ */
2
6
  export declare const useReconnection: () => ReconnectionStatus;
3
7
  //# sourceMappingURL=useReconnection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useReconnection.d.ts","sourceRoot":"","sources":["../../src/hooks/useReconnection.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,eAAO,MAAM,eAAe,QAAO,kBA6BlC,CAAC"}
1
+ {"version":3,"file":"useReconnection.d.ts","sourceRoot":"","sources":["../../src/hooks/useReconnection.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAO,kBA6BlC,CAAC"}
@@ -1,5 +1,9 @@
1
1
  import { useEffect, useState } from "react";
2
2
  import { useFishjamContext } from "./useFishjamContext";
3
+ /**
4
+ *
5
+ * @category Connection
6
+ */
3
7
  export const useReconnection = () => {
4
8
  const { fishjamClientRef } = useFishjamContext();
5
9
  const [reconnectionStatus, setReconnectionStatus] = useState("idle");
@@ -1,3 +1,7 @@
1
- import type { ScreenshareApi } from "../types";
1
+ import type { ScreenshareApi } from "../types/public";
2
+ /**
3
+ *
4
+ * @category Screenshare
5
+ */
2
6
  export declare const useScreenShare: () => ScreenshareApi;
3
7
  //# sourceMappingURL=useScreenShare.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useScreenShare.d.ts","sourceRoot":"","sources":["../../src/hooks/useScreenShare.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAoB,MAAM,UAAU,CAAC;AAUjE,eAAO,MAAM,cAAc,QAAO,cA0IjC,CAAC"}
1
+ {"version":3,"file":"useScreenShare.d.ts","sourceRoot":"","sources":["../../src/hooks/useScreenShare.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAoB,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAQxE;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAO,cA0IjC,CAAC"}
@@ -6,6 +6,10 @@ const getTracks = (stream) => {
6
6
  const audio = stream.getAudioTracks()[0] ?? null;
7
7
  return [video, audio];
8
8
  };
9
+ /**
10
+ *
11
+ * @category Screenshare
12
+ */
9
13
  export const useScreenShare = () => {
10
14
  const ctx = useFishjamContext();
11
15
  const [state, setState] = ctx.screenShareState;
@@ -14,7 +18,7 @@ export const useScreenShare = () => {
14
18
  const tsClient = fishjamClientRef.current;
15
19
  const stream = state.stream ?? null;
16
20
  const [videoTrack, audioTrack] = stream ? getTracks(stream) : [null, null];
17
- const getDisplayName = () => tsClient.getLocalPeer()?.metadata?.displayName;
21
+ const getDisplayName = () => tsClient.getLocalPeer()?.metadata?.peer?.displayName;
18
22
  const startStreaming = async (props) => {
19
23
  const stream = await navigator.mediaDevices.getDisplayMedia({
20
24
  video: props?.videoConstraints ?? true,
@@ -1,2 +1,6 @@
1
- export declare function useStatus(): import("..").ParticipantStatus;
1
+ /**
2
+ *
3
+ * @category Connection
4
+ */
5
+ export declare function useStatus(): import("..").PeerStatus;
2
6
  //# sourceMappingURL=useStatus.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useStatus.d.ts","sourceRoot":"","sources":["../../src/hooks/useStatus.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS,mCAExB"}
1
+ {"version":3,"file":"useStatus.d.ts","sourceRoot":"","sources":["../../src/hooks/useStatus.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,SAAS,4BAExB"}
@@ -1,4 +1,8 @@
1
1
  import { useFishjamContext } from "./useFishjamContext";
2
+ /**
3
+ *
4
+ * @category Connection
5
+ */
2
6
  export function useStatus() {
3
7
  return useFishjamContext().peerStatus;
4
8
  }
@@ -1,11 +1,11 @@
1
1
  import type { FishjamClient } from "@fishjam-cloud/ts-client";
2
- import type { MediaManager, PeerMetadata, TrackManager, TrackMetadata } from "../types";
3
- import type { ParticipantStatus } from "../state.types";
2
+ import type { MediaManager, PeerMetadata, TrackManager, TrackMetadata } from "../types/internal";
3
+ import type { PeerStatus } from "../types/public";
4
4
  interface TrackManagerConfig {
5
5
  mediaManager: MediaManager;
6
6
  tsClient: FishjamClient<PeerMetadata, TrackMetadata>;
7
- getCurrentParticipantStatus: () => ParticipantStatus;
7
+ getCurrentPeerStatus: () => PeerStatus;
8
8
  }
9
- export declare const useTrackManager: ({ mediaManager, tsClient, getCurrentParticipantStatus, }: TrackManagerConfig) => TrackManager;
9
+ export declare const useTrackManager: ({ mediaManager, tsClient, getCurrentPeerStatus }: TrackManagerConfig) => TrackManager;
10
10
  export {};
11
11
  //# sourceMappingURL=useTrackManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTrackManager.d.ts","sourceRoot":"","sources":["../../src/hooks/useTrackManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAwC,MAAM,0BAA0B,CAAC;AACpG,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAc,YAAY,EAAE,aAAa,EAAmB,MAAM,UAAU,CAAC;AAGrH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAExD,UAAU,kBAAkB;IAC1B,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IACrD,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;CACtD;AAOD,eAAO,MAAM,eAAe,6DAIzB,kBAAkB,KAAG,YA2MvB,CAAC"}
1
+ {"version":3,"file":"useTrackManager.d.ts","sourceRoot":"","sources":["../../src/hooks/useTrackManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAwC,MAAM,0BAA0B,CAAC;AACpG,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGjG,OAAO,KAAK,EAAE,UAAU,EAA+B,MAAM,iBAAiB,CAAC;AAE/E,UAAU,kBAAkB;IAC1B,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IACrD,oBAAoB,EAAE,MAAM,UAAU,CAAC;CACxC;AAOD,eAAO,MAAM,eAAe,qDAAsD,kBAAkB,KAAG,YA2MtG,CAAC"}
@@ -4,7 +4,7 @@ const TRACK_TYPE_TO_DEVICE = {
4
4
  video: "camera",
5
5
  audio: "microphone",
6
6
  };
7
- export const useTrackManager = ({ mediaManager, tsClient, getCurrentParticipantStatus, }) => {
7
+ export const useTrackManager = ({ mediaManager, tsClient, getCurrentPeerStatus }) => {
8
8
  const [currentTrackId, setCurrentTrackId] = useState(null);
9
9
  const [paused, setPaused] = useState(false);
10
10
  const clearMiddlewareFnRef = useRef(null);
@@ -56,7 +56,7 @@ export const useTrackManager = ({ mediaManager, tsClient, getCurrentParticipantS
56
56
  return track.trackId;
57
57
  // see `getRemoteOrLocalTrackContext()` explanation
58
58
  setCurrentTrackId(media.track.id);
59
- const displayName = tsClient.getLocalPeer()?.metadata?.displayName;
59
+ const displayName = tsClient.getLocalPeer()?.metadata?.peer?.displayName;
60
60
  const trackMetadata = { ...metadata, displayName, paused: false };
61
61
  const processedTrack = clearAndGetProcessedTrack(media.track);
62
62
  const remoteTrackId = await tsClient.addTrack(processedTrack, trackMetadata, simulcastConfig, maxBandwidth);
@@ -107,7 +107,7 @@ export const useTrackManager = ({ mediaManager, tsClient, getCurrentParticipantS
107
107
  mediaManager.enable();
108
108
  }
109
109
  const stream = async () => {
110
- if (getCurrentParticipantStatus() !== "connected")
110
+ if (getCurrentPeerStatus() !== "connected")
111
111
  return;
112
112
  if (currentTrack?.trackId) {
113
113
  await resumeStreaming();
package/dist/index.d.ts CHANGED
@@ -1,9 +1,6 @@
1
- export * from "./hooks/public";
2
- export * from "./fishjamProvider";
3
- export type { PeerState, Track, PeerId, TrackId, TrackWithOrigin, Origin, ParticipantStatus } from "./state.types";
4
- export type { DeviceManagerConfig, Participiants, StorageConfig, Devices, Device, AudioDevice, UseSetupMediaResult, UseSetupMediaConfig, ScreenshareApi, UseConnect, ConnectConfig, TrackMiddleware, PeerStateWithTracks, TrackMetadata, // only for compatibility reasons, will be removed in: FCE-415
5
- PeerMetadata, } from "./types";
1
+ export { useConnect, useDisconnect, useReconnection, useCamera, useMicrophone, useInitializeDevices, usePeers, useScreenShare, useStatus, } from "./hooks/public";
2
+ export { FishjamProvider } from "./fishjamProvider";
3
+ export { Track, TrackMiddleware, TracksMiddleware, PeerStatus, ToggleMode, Device, AudioDevice, PeerWithTracks, ConnectConfig, PersistLastDeviceHandlers, ScreenshareApi, } from "./types/public";
6
4
  export { AUDIO_TRACK_CONSTRAINTS, VIDEO_TRACK_CONSTRAINTS, SCREEN_SHARING_MEDIA_CONSTRAINTS } from "./constraints";
7
5
  export type { Peer, MessageEvents, CreateConfig, TrackBandwidthLimit, SimulcastBandwidthLimit, BandwidthLimit, WebRTCEndpointEvents, TrackContextEvents, Endpoint, SimulcastConfig, TrackContext, VadStatus, EncodingReason, MetadataParser, AuthErrorReason, Encoding, } from "@fishjam-cloud/ts-client";
8
- export { FishjamClient } from "@fishjam-cloud/ts-client";
9
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAElC,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEnH,YAAY,EACV,mBAAmB,EACnB,aAAa,EACb,aAAa,EACb,OAAO,EACP,MAAM,EACN,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,UAAU,EACV,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,aAAa,EAAE,8DAA8D;AAC7E,YAAY,GACb,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,gCAAgC,EAAE,MAAM,eAAe,CAAC;AAEnH,YAAY,EACV,IAAI,EACJ,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,uBAAuB,EACvB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,SAAS,EACT,cAAc,EACd,cAAc,EACd,eAAe,EACf,QAAQ,GACT,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,aAAa,EACb,eAAe,EACf,SAAS,EACT,aAAa,EACb,oBAAoB,EACpB,QAAQ,EACR,cAAc,EACd,SAAS,GACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EACL,KAAK,EACL,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,MAAM,EACN,WAAW,EACX,cAAc,EACd,aAAa,EACb,yBAAyB,EACzB,cAAc,GACf,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,gCAAgC,EAAE,MAAM,eAAe,CAAC;AAEnH,YAAY,EACV,IAAI,EACJ,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,uBAAuB,EACvB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,SAAS,EACT,cAAc,EACd,cAAc,EACd,eAAe,EACf,QAAQ,GACT,MAAM,0BAA0B,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,3 @@
1
- export * from "./hooks/public";
2
- export * from "./fishjamProvider";
1
+ export { useConnect, useDisconnect, useReconnection, useCamera, useMicrophone, useInitializeDevices, usePeers, useScreenShare, useStatus, } from "./hooks/public";
2
+ export { FishjamProvider } from "./fishjamProvider";
3
3
  export { AUDIO_TRACK_CONSTRAINTS, VIDEO_TRACK_CONSTRAINTS, SCREEN_SHARING_MEDIA_CONSTRAINTS } from "./constraints";
4
- export { FishjamClient } from "@fishjam-cloud/ts-client";
@@ -1,9 +1,9 @@
1
- import type { DeviceError } from "./types";
1
+ import type { DeviceError } from "./types/internal";
2
2
  type AudioVideo<T> = {
3
3
  audio: T;
4
4
  video: T;
5
5
  };
6
- type MediaConstraints = AudioVideo<MediaTrackConstraints | undefined>;
6
+ type MediaConstraints = AudioVideo<MediaTrackConstraints | undefined | boolean>;
7
7
  type PreviousDevices = AudioVideo<MediaDeviceInfo | null>;
8
8
  export declare const getAvailableMedia: (constraints: MediaStreamConstraints, deviceErrors?: AudioVideo<DeviceError | null>) => Promise<[MediaStream | null, AudioVideo<DeviceError | null>]>;
9
9
  export declare const getCorrectedResult: (stream: MediaStream, deviceErrors: AudioVideo<DeviceError | null>, devices: MediaDeviceInfo[], constraints: MediaConstraints, previousDevices: PreviousDevices) => Promise<[MediaStream | null, AudioVideo<DeviceError | null>]>;
@@ -1 +1 @@
1
- {"version":3,"file":"mediaInitializer.d.ts","sourceRoot":"","sources":["../src/mediaInitializer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAS3C,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,CAAC,CAAC;AAEtE,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/mediaInitializer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AASpD,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"}
@@ -0,0 +1,129 @@
1
+ import type { SimulcastConfig, TrackBandwidthLimit } from "@fishjam-cloud/ts-client";
2
+ import type { ToggleMode, Track, TrackMiddleware, TracksMiddleware } from "./public";
3
+ export type TrackId = string;
4
+ export type PeerId = string;
5
+ export type PeerState = {
6
+ id: PeerId;
7
+ metadata: {
8
+ peer?: PeerMetadata;
9
+ server: Record<string, unknown>;
10
+ };
11
+ tracks: Record<TrackId, Track>;
12
+ };
13
+ export type PeerMetadata = {
14
+ displayName?: string;
15
+ };
16
+ export type TrackMetadata = {
17
+ type: "camera" | "microphone" | "screenShareVideo" | "screenShareAudio";
18
+ paused: boolean;
19
+ displayName?: string;
20
+ };
21
+ export type DevicesStatus = "OK" | "Error" | "Not requested" | "Requesting";
22
+ export type MediaStatus = "OK" | "Error" | "Not requested" | "Requesting";
23
+ export type DeviceManagerStatus = "uninitialized" | "initializing" | "initialized" | "error";
24
+ export interface DeviceManagerState {
25
+ deviceState: DeviceState;
26
+ status: DeviceManagerStatus;
27
+ tracks: MediaStreamTrack[];
28
+ }
29
+ export type Media = {
30
+ stream: MediaStream | null;
31
+ track: MediaStreamTrack | null;
32
+ enabled: boolean;
33
+ deviceInfo: MediaDeviceInfo | null;
34
+ };
35
+ export type DeviceState = {
36
+ media: Media | null;
37
+ mediaStatus: MediaStatus;
38
+ devices: MediaDeviceInfo[] | null;
39
+ devicesStatus: DevicesStatus;
40
+ error: DeviceError | null;
41
+ };
42
+ export type MediaState = {
43
+ video: DeviceState;
44
+ audio: DeviceState;
45
+ };
46
+ export type DeviceManagerInitConfig = {
47
+ videoTrackConstraints?: boolean | MediaTrackConstraints;
48
+ audioTrackConstraints?: boolean | MediaTrackConstraints;
49
+ };
50
+ export type DeviceManagerStartConfig = {
51
+ audioDeviceId?: string | boolean;
52
+ videoDeviceId?: string | boolean;
53
+ };
54
+ export type DeviceError = {
55
+ name: "OverconstrainedError";
56
+ } | {
57
+ name: "NotAllowedError";
58
+ } | {
59
+ name: "NotFoundError";
60
+ } | {
61
+ name: "UNHANDLED_ERROR";
62
+ };
63
+ export type CurrentDevices = {
64
+ videoinput: MediaDeviceInfo | null;
65
+ audioinput: MediaDeviceInfo | null;
66
+ };
67
+ export interface MediaManager {
68
+ start: (deviceId?: string) => Promise<void>;
69
+ stop: () => Promise<void>;
70
+ disable: () => void;
71
+ enable: () => void;
72
+ getTracks: () => MediaStreamTrack[];
73
+ getMedia: () => {
74
+ stream: MediaStream | null;
75
+ track: MediaStreamTrack | null;
76
+ enabled: boolean;
77
+ } | null;
78
+ getDeviceType: () => "audio" | "video";
79
+ }
80
+ export type ScreenShareState = ({
81
+ stream: MediaStream;
82
+ trackIds: {
83
+ videoId: string;
84
+ audioId?: string;
85
+ };
86
+ } | {
87
+ stream: null;
88
+ trackIds: null;
89
+ }) & {
90
+ tracksMiddleware?: TracksMiddleware | null;
91
+ };
92
+ export interface TrackManager {
93
+ initialize: (deviceId?: string) => Promise<void>;
94
+ stop: () => Promise<void>;
95
+ startStreaming: (simulcastConfig?: SimulcastConfig, maxBandwidth?: TrackBandwidthLimit) => Promise<string>;
96
+ stopStreaming: () => Promise<void>;
97
+ pauseStreaming: () => Promise<void>;
98
+ resumeStreaming: () => Promise<void>;
99
+ paused: boolean;
100
+ disableTrack: () => void;
101
+ enableTrack: () => void;
102
+ setTrackMiddleware: (middleware: TrackMiddleware) => Promise<void>;
103
+ currentTrackMiddleware: TrackMiddleware;
104
+ refreshStreamedTrack: () => Promise<void>;
105
+ currentTrack: Track | null;
106
+ /**
107
+ * Toggles the media stream state based on the provided mode.
108
+ * Either initiates or terminates the device or enables or disables the stream.
109
+ *
110
+ * @param {ToggleMode} [mode] - The toggle mode, either "hard" or "soft". Defaults to "hard".
111
+ *
112
+ * - **Hard Mode** - Turns the physical device on and off.
113
+ * - If started: disables the media stream, pauses streaming, and stops the device.
114
+ * - If stopped: starts the device and begins (or resumes) streaming.
115
+ *
116
+ * - **Soft Mode** - Enables and disables the media stream. Starts the device if needed.
117
+ * - If enabled: disables the media stream and pauses streaming, but does not stop the device.
118
+ * - If disabled: enables the media stream and starts (or resumes) streaming.
119
+ * - If stopped: starts the device, enables the media stream, and starts (or resumes) streaming.
120
+ */
121
+ toggle: (mode?: ToggleMode) => Promise<void>;
122
+ }
123
+ export type DistinguishedTracks = {
124
+ cameraTrack?: Track;
125
+ microphoneTrack?: Track;
126
+ screenShareVideoTrack?: Track;
127
+ screenShareAudioTrack?: Track;
128
+ };
129
+ //# sourceMappingURL=internal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../src/types/internal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import type { Encoding, SimulcastConfig, ConnectConfig as TSClientConnectConfig, VadStatus } from "@fishjam-cloud/ts-client";
2
+ import type { DeviceManagerStatus, DistinguishedTracks, PeerMetadata, PeerState, TrackId, TrackManager, TrackMetadata } from "./internal";
3
+ export type Track = {
4
+ stream: MediaStream | null;
5
+ encoding: Encoding | null;
6
+ trackId: TrackId;
7
+ metadata?: TrackMetadata;
8
+ simulcastConfig: SimulcastConfig | null;
9
+ vadStatus: VadStatus;
10
+ track: MediaStreamTrack | null;
11
+ };
12
+ export type TrackMiddleware = ((track: MediaStreamTrack | null) => {
13
+ track: MediaStreamTrack | null;
14
+ onClear?: () => void;
15
+ }) | null;
16
+ export type TracksMiddleware = (videoTrack: MediaStreamTrack, audioTrack: MediaStreamTrack | null) => {
17
+ videoTrack: MediaStreamTrack;
18
+ audioTrack: MediaStreamTrack | null;
19
+ onClear: () => void;
20
+ };
21
+ /**
22
+ * Represents the possible statuses of a peer connection.
23
+ *
24
+ * idle - Peer is not connected, either never connected or successfully disconnected.
25
+ * connecting - Peer is in the process of connecting.
26
+ * connected - Peer has successfully connected.
27
+ * error - There was an error in the connection process.
28
+ */
29
+ export type PeerStatus = "connecting" | "connected" | "error" | "idle";
30
+ export type ToggleMode = "soft" | "hard";
31
+ export type Device = {
32
+ isStreaming: boolean;
33
+ status: DeviceManagerStatus;
34
+ trackId: TrackId | null;
35
+ track: MediaStreamTrack | null;
36
+ stream: MediaStream | null;
37
+ devices: MediaDeviceInfo[];
38
+ activeDevice: MediaDeviceInfo | null;
39
+ } & Omit<TrackManager, "currentTrack">;
40
+ export type AudioDevice = Device & {
41
+ isAudioPlaying: boolean;
42
+ };
43
+ export type PeerWithTracks = PeerState & DistinguishedTracks;
44
+ export type ConnectConfig = Omit<TSClientConnectConfig<PeerMetadata>, "peerMetadata"> & {
45
+ peerMetadata?: PeerMetadata;
46
+ };
47
+ export type PersistLastDeviceHandlers = {
48
+ getLastDevice: (() => MediaDeviceInfo | null) | null;
49
+ saveLastDevice: (info: MediaDeviceInfo) => void;
50
+ };
51
+ export type ScreenshareApi = {
52
+ startStreaming: (props?: {
53
+ audioConstraints?: boolean | MediaTrackConstraints;
54
+ videoConstraints?: boolean | MediaTrackConstraints;
55
+ }) => Promise<void>;
56
+ stopStreaming: () => Promise<void>;
57
+ stream: MediaStream | null;
58
+ videoTrack: MediaStreamTrack | null;
59
+ audioTrack: MediaStreamTrack | null;
60
+ videoBroadcast: Track | null;
61
+ audioBroadcast: Track | null;
62
+ setTracksMiddleware: (middleware: TracksMiddleware | null) => Promise<void>;
63
+ currentTracksMiddleware: TracksMiddleware | null;
64
+ };
65
+ //# sourceMappingURL=public.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/types/public.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { DeviceError } from "../types";
1
+ import type { DeviceError } from "../types/internal";
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,UAAU,CAAC;AAE5C,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,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,4 +1,5 @@
1
- import type { CurrentDevices, DeviceError, DeviceState, StorageConfig } from "../types";
1
+ import type { CurrentDevices, DeviceError, DeviceState } from "../types/internal";
2
+ import type { PersistLastDeviceHandlers } from "../types/public";
2
3
  export declare const removeSpecifiedDeviceFromConstraints: (trackConstraints?: boolean | MediaTrackConstraints) => boolean | MediaTrackConstraints | undefined;
3
4
  export declare const REQUESTING = "Requesting";
4
5
  export declare const NOT_REQUESTED = "Not requested";
@@ -8,5 +9,5 @@ export declare const isDeviceDifferentFromLastSession: (lastDevice: MediaDeviceI
8
9
  export declare const isAnyDeviceDifferentFromLastSession: (lastVideoDevice: MediaDeviceInfo | null, lastAudioDevice: MediaDeviceInfo | null, currentDevices: CurrentDevices | null) => boolean;
9
10
  export declare const stopTracks: (requestedDevices: MediaStream) => void;
10
11
  export declare const prepareDeviceState: (stream: MediaStream | null, track: MediaStreamTrack | null, devices: MediaDeviceInfo[], error: DeviceError | null, shouldAsk: boolean) => DeviceState;
11
- export declare const getLocalStorageConfig: (deviceType: "audio" | "video") => StorageConfig;
12
+ export declare const getLocalStorageConfig: (deviceType: "audio" | "video") => PersistLastDeviceHandlers;
12
13
  //# sourceMappingURL=media.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/utils/media.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAiB,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAIvG,eAAO,MAAM,oCAAoC,sBAC5B,OAAO,GAAG,qBAAqB,KACjD,OAAO,GAAG,qBAAqB,GAAG,SAKpC,CAAC;AAEF,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAE7C,eAAO,MAAM,aAAa,kBAAmB,MAAM,GAAG,IAAI,WAAW,eAAe,EAAE,KAAG,eAAe,GAAG,IACpB,CAAC;AAExF,eAAO,MAAM,yBAAyB,qBAClB,WAAW,oBACX,eAAe,EAAE,KAClC,cAcF,CAAC;AAEF,eAAO,MAAM,gCAAgC,eAC/B,eAAe,GAAG,IAAI,iBACnB,eAAe,GAAG,IAAI,mBAC2E,CAAC;AAEnH,eAAO,MAAM,mCAAmC,oBAC7B,eAAe,GAAG,IAAI,mBACtB,eAAe,GAAG,IAAI,kBACvB,cAAc,GAAG,IAAI,KACpC,OAMA,CAAC;AAEJ,eAAO,MAAM,UAAU,qBAAsB,WAAW,SAIvD,CAAC;AAQF,eAAO,MAAM,kBAAkB,WACrB,WAAW,GAAG,IAAI,SACnB,gBAAgB,GAAG,IAAI,WACrB,eAAe,EAAE,SACnB,WAAW,GAAG,IAAI,aACd,OAAO,KACjB,WAgBF,CAAC;AAEF,eAAO,MAAM,qBAAqB,eAAgB,OAAO,GAAG,OAAO,KAAG,aAMrE,CAAC"}
1
+ {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/utils/media.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAiB,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGjG,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAEjE,eAAO,MAAM,oCAAoC,sBAC5B,OAAO,GAAG,qBAAqB,KACjD,OAAO,GAAG,qBAAqB,GAAG,SAKpC,CAAC;AAEF,eAAO,MAAM,UAAU,eAAe,CAAC;AACvC,eAAO,MAAM,aAAa,kBAAkB,CAAC;AAE7C,eAAO,MAAM,aAAa,kBAAmB,MAAM,GAAG,IAAI,WAAW,eAAe,EAAE,KAAG,eAAe,GAAG,IACpB,CAAC;AAExF,eAAO,MAAM,yBAAyB,qBAClB,WAAW,oBACX,eAAe,EAAE,KAClC,cAcF,CAAC;AAEF,eAAO,MAAM,gCAAgC,eAC/B,eAAe,GAAG,IAAI,iBACnB,eAAe,GAAG,IAAI,mBAC2E,CAAC;AAEnH,eAAO,MAAM,mCAAmC,oBAC7B,eAAe,GAAG,IAAI,mBACtB,eAAe,GAAG,IAAI,kBACvB,cAAc,GAAG,IAAI,KACpC,OAMA,CAAC;AAEJ,eAAO,MAAM,UAAU,qBAAsB,WAAW,SAIvD,CAAC;AAQF,eAAO,MAAM,kBAAkB,WACrB,WAAW,GAAG,IAAI,SACnB,gBAAgB,GAAG,IAAI,WACrB,eAAe,EAAE,SACnB,WAAW,GAAG,IAAI,aACd,OAAO,KACjB,WAgBF,CAAC;AAEF,eAAO,MAAM,qBAAqB,eAAgB,OAAO,GAAG,OAAO,KAAG,yBAMrE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { FishjamClient } from "@fishjam-cloud/ts-client";
2
- import type { Track } from "../state.types";
3
- import type { PeerMetadata, TrackMetadata } from "../types";
2
+ import type { PeerMetadata, TrackMetadata } from "../types/internal";
3
+ import type { Track } from "../types/public";
4
4
  export declare const getRemoteOrLocalTrack: (tsClient: FishjamClient<PeerMetadata, TrackMetadata>, remoteOrLocalTrackId: string | null) => Track | null;
5
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;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"}
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,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAoC7C,eAAO,MAAM,qBAAqB,aACtB,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,wBAC9B,MAAM,GAAG,IAAI,iBAKpC,CAAC"}
@@ -19,7 +19,6 @@ const getRemoteOrLocalTrackContext = (tsClient, remoteOrLocalTrackId) => {
19
19
  return trackByLocalId ? trackByLocalId : null;
20
20
  };
21
21
  const getTrackFromContext = (context) => ({
22
- rawMetadata: context.rawMetadata,
23
22
  metadata: context.metadata,
24
23
  trackId: context.trackId,
25
24
  stream: context.stream,
@@ -27,7 +26,6 @@ const getTrackFromContext = (context) => ({
27
26
  encoding: context.encoding || null,
28
27
  vadStatus: context.vadStatus,
29
28
  track: context.track,
30
- metadataParsingError: context.metadataParsingError,
31
29
  });
32
30
  export const getRemoteOrLocalTrack = (tsClient, remoteOrLocalTrackId) => {
33
31
  const context = getRemoteOrLocalTrackContext(tsClient, remoteOrLocalTrackId);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fishjam-cloud/react-client",
3
- "version": "0.7.0",
3
+ "version": "0.7.1",
4
4
  "description": "React client library for Fishjam Cloud",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Fishjam Cloud 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.47.1",
41
+ "@playwright/test": "^1.47.2",
42
42
  "@types/events": "^3.0.3",
43
43
  "@types/lodash.isequal": "^4.5.8",
44
- "@types/node": "^22.5.5",
45
- "@types/react": "^18.3.6",
44
+ "@types/node": "^22.7.4",
45
+ "@types/react": "^18.3.10",
46
46
  "react": "^18.2.0",
47
47
  "typed-emitter": "^2.1.0",
48
48
  "typedoc": "^0.26.7",
49
- "typedoc-plugin-mdn-links": "^3.2.12",
49
+ "typedoc-plugin-mdn-links": "^3.3.2",
50
50
  "typescript": "^5.6.2"
51
51
  },
52
52
  "dependencies": {
53
- "@fishjam-cloud/ts-client": "0.7.0",
53
+ "@fishjam-cloud/ts-client": "0.7.1",
54
54
  "events": "3.3.0",
55
55
  "lodash.isequal": "4.5.0"
56
56
  },