@fishjam-cloud/react-client 0.14.0 → 0.15.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 (115) hide show
  1. package/dist/FishjamProvider.d.ts.map +1 -1
  2. package/dist/FishjamProvider.js +37 -41
  3. package/dist/contexts/camera.d.ts +8 -0
  4. package/dist/contexts/camera.d.ts.map +1 -0
  5. package/dist/contexts/camera.js +2 -0
  6. package/dist/contexts/fishjamClient.d.ts +4 -0
  7. package/dist/contexts/fishjamClient.d.ts.map +1 -0
  8. package/dist/contexts/fishjamClient.js +2 -0
  9. package/dist/contexts/fishjamState.d.ts +3 -0
  10. package/dist/contexts/fishjamState.d.ts.map +1 -0
  11. package/dist/contexts/fishjamState.js +2 -0
  12. package/dist/contexts/initDevices.d.ts +3 -0
  13. package/dist/contexts/initDevices.d.ts.map +1 -0
  14. package/dist/contexts/initDevices.js +2 -0
  15. package/dist/contexts/microphone.d.ts +8 -0
  16. package/dist/contexts/microphone.d.ts.map +1 -0
  17. package/dist/contexts/microphone.js +2 -0
  18. package/dist/contexts/peerStatus.d.ts +3 -0
  19. package/dist/contexts/peerStatus.d.ts.map +1 -0
  20. package/dist/contexts/peerStatus.js +2 -0
  21. package/dist/contexts/screenshare.d.ts +3 -0
  22. package/dist/contexts/screenshare.d.ts.map +1 -0
  23. package/dist/contexts/screenshare.js +2 -0
  24. package/dist/debug.d.ts +2 -0
  25. package/dist/debug.d.ts.map +1 -0
  26. package/dist/debug.js +1 -0
  27. package/dist/devices/constraints.d.ts.map +1 -1
  28. package/dist/devices/mediaInitializer.d.ts +7 -6
  29. package/dist/devices/mediaInitializer.d.ts.map +1 -1
  30. package/dist/devices/mediaInitializer.js +14 -15
  31. package/dist/hooks/devices/useCamera.d.ts +2 -2
  32. package/dist/hooks/devices/useCamera.d.ts.map +1 -1
  33. package/dist/hooks/devices/useCamera.js +18 -10
  34. package/dist/hooks/devices/useInitializeDevices.d.ts +1 -6
  35. package/dist/hooks/devices/useInitializeDevices.d.ts.map +1 -1
  36. package/dist/hooks/devices/useInitializeDevices.js +5 -45
  37. package/dist/hooks/devices/useMicrophone.d.ts +2 -2
  38. package/dist/hooks/devices/useMicrophone.d.ts.map +1 -1
  39. package/dist/hooks/devices/useMicrophone.js +19 -11
  40. package/dist/hooks/internal/devices/useDeviceManager.d.ts +29 -0
  41. package/dist/hooks/internal/devices/useDeviceManager.d.ts.map +1 -0
  42. package/dist/hooks/internal/devices/useDeviceManager.js +95 -0
  43. package/dist/hooks/internal/devices/useHandleStreamEnd.d.ts +9 -0
  44. package/dist/hooks/internal/devices/useHandleStreamEnd.d.ts.map +1 -0
  45. package/dist/hooks/internal/devices/useHandleStreamEnd.js +13 -0
  46. package/dist/hooks/internal/devices/useMediaDevices.d.ts +16 -0
  47. package/dist/hooks/internal/devices/useMediaDevices.d.ts.map +1 -0
  48. package/dist/hooks/internal/devices/useMediaDevices.js +108 -0
  49. package/dist/hooks/internal/usePeerStatus.d.ts +1 -4
  50. package/dist/hooks/internal/usePeerStatus.d.ts.map +1 -1
  51. package/dist/hooks/internal/usePeerStatus.js +3 -9
  52. package/dist/hooks/internal/useReconnection.d.ts.map +1 -1
  53. package/dist/hooks/internal/useReconnection.js +5 -3
  54. package/dist/hooks/internal/useScreenshareManager.d.ts +3 -3
  55. package/dist/hooks/internal/useScreenshareManager.d.ts.map +1 -1
  56. package/dist/hooks/internal/useScreenshareManager.js +25 -9
  57. package/dist/hooks/internal/useTrackManager.d.ts +6 -6
  58. package/dist/hooks/internal/useTrackManager.d.ts.map +1 -1
  59. package/dist/hooks/internal/useTrackManager.js +99 -108
  60. package/dist/hooks/internal/useTrackMiddleware.d.ts +7 -0
  61. package/dist/hooks/internal/useTrackMiddleware.d.ts.map +1 -0
  62. package/dist/hooks/internal/useTrackMiddleware.js +26 -0
  63. package/dist/hooks/useConnection.d.ts +4 -4
  64. package/dist/hooks/useConnection.d.ts.map +1 -1
  65. package/dist/hooks/useConnection.js +10 -6
  66. package/dist/hooks/usePeers.d.ts.map +1 -1
  67. package/dist/hooks/usePeers.js +5 -2
  68. package/dist/hooks/useScreenShare.d.ts.map +1 -1
  69. package/dist/hooks/useScreenShare.js +5 -2
  70. package/dist/hooks/useStatistics.d.ts +4 -0
  71. package/dist/hooks/useStatistics.d.ts.map +1 -0
  72. package/dist/hooks/useStatistics.js +13 -0
  73. package/dist/hooks/useUpdatePeerMetadata.d.ts.map +1 -1
  74. package/dist/hooks/useUpdatePeerMetadata.js +5 -3
  75. package/dist/hooks/useVAD.d.ts.map +1 -1
  76. package/dist/hooks/useVAD.js +7 -7
  77. package/dist/index.d.ts +2 -2
  78. package/dist/index.d.ts.map +1 -1
  79. package/dist/index.js +1 -1
  80. package/dist/types/internal.d.ts +9 -40
  81. package/dist/types/internal.d.ts.map +1 -1
  82. package/dist/types/public.d.ts +11 -13
  83. package/dist/types/public.d.ts.map +1 -1
  84. package/dist/utils/bandwidth.d.ts.map +1 -1
  85. package/dist/utils/errors.d.ts +1 -1
  86. package/dist/utils/errors.d.ts.map +1 -1
  87. package/dist/utils/errors.js +2 -2
  88. package/dist/utils/localStorage.d.ts +3 -2
  89. package/dist/utils/localStorage.d.ts.map +1 -1
  90. package/dist/utils/localStorage.js +3 -14
  91. package/dist/utils/track.d.ts +3 -1
  92. package/dist/utils/track.d.ts.map +1 -1
  93. package/dist/utils/track.js +16 -4
  94. package/package.json +11 -11
  95. package/dist/devices/DeviceManager.d.ts +0 -65
  96. package/dist/devices/DeviceManager.d.ts.map +0 -1
  97. package/dist/devices/DeviceManager.js +0 -188
  98. package/dist/devices/MiddlewareManager.d.ts +0 -9
  99. package/dist/devices/MiddlewareManager.d.ts.map +0 -1
  100. package/dist/devices/MiddlewareManager.js +0 -26
  101. package/dist/hooks/internal/device/useDeviceApi.d.ts +0 -8
  102. package/dist/hooks/internal/device/useDeviceApi.d.ts.map +0 -1
  103. package/dist/hooks/internal/device/useDeviceApi.js +0 -28
  104. package/dist/hooks/internal/device/useDeviceManager.d.ts +0 -4
  105. package/dist/hooks/internal/device/useDeviceManager.d.ts.map +0 -1
  106. package/dist/hooks/internal/device/useDeviceManager.js +0 -41
  107. package/dist/hooks/internal/useFishjamClient_DO_NOT_USE.d.ts +0 -7
  108. package/dist/hooks/internal/useFishjamClient_DO_NOT_USE.d.ts.map +0 -1
  109. package/dist/hooks/internal/useFishjamClient_DO_NOT_USE.js +0 -11
  110. package/dist/hooks/internal/useFishjamContext.d.ts +0 -22
  111. package/dist/hooks/internal/useFishjamContext.d.ts.map +0 -1
  112. package/dist/hooks/internal/useFishjamContext.js +0 -8
  113. package/dist/internal.d.ts +0 -2
  114. package/dist/internal.d.ts.map +0 -1
  115. package/dist/internal.js +0 -1
@@ -1,134 +1,124 @@
1
- import { Variant } from "@fishjam-cloud/ts-client";
2
- import { useCallback, useEffect, useRef, useState } from "react";
1
+ import { TrackTypeError, Variant } from "@fishjam-cloud/ts-client";
2
+ import { useCallback, useEffect, useRef } from "react";
3
3
  import { getConfigAndBandwidthFromProps, getRemoteOrLocalTrack } from "../../utils/track";
4
- const TRACK_TYPE_TO_DEVICE = {
5
- video: "camera",
6
- audio: "microphone",
7
- };
8
- const getDeviceType = (mediaManager) => TRACK_TYPE_TO_DEVICE[mediaManager.getDeviceType()];
9
- export const useTrackManager = ({ mediaManager, tsClient, getCurrentPeerStatus, bandwidthLimits, streamConfig, devicesInitializationRef, }) => {
4
+ export const useTrackManager = ({ deviceManager, tsClient, peerStatus, bandwidthLimits, streamConfig, type, }) => {
10
5
  const currentTrackIdRef = useRef(null);
11
- const [paused, setPaused] = useState(false);
12
- async function setTrackMiddleware(middleware) {
13
- mediaManager.setTrackMiddleware(middleware);
14
- await refreshStreamedTrack();
15
- }
16
- async function selectDevice(deviceId) {
17
- await mediaManager?.start(deviceId);
18
- const currentTrackId = currentTrackIdRef.current;
6
+ const { startDevice, stopDevice, enableDevice, disableDevice, deviceTrack, applyMiddleware, currentMiddleware } = deviceManager;
7
+ const getCurrentTrackId = useCallback(() => {
8
+ const refTrackId = currentTrackIdRef.current;
9
+ if (!refTrackId)
10
+ return null;
11
+ const currentTrack = getRemoteOrLocalTrack(tsClient, refTrackId);
12
+ return currentTrack?.trackId ?? null;
13
+ }, [tsClient]);
14
+ const selectDevice = useCallback(async (deviceId) => {
15
+ const [newTrack, error] = await startDevice(deviceId);
16
+ if (error)
17
+ return error;
18
+ const currentTrackId = getCurrentTrackId();
19
19
  if (!currentTrackId)
20
20
  return;
21
- const newTrack = mediaManager.getMedia()?.track ?? null;
22
21
  await tsClient.replaceTrack(currentTrackId, newTrack);
23
- }
24
- const getCurrentTrackId = useCallback(() => getRemoteOrLocalTrack(tsClient, currentTrackIdRef.current)?.trackId, [tsClient]);
25
- const startStreaming = useCallback(async (props = { simulcast: [Variant.VARIANT_LOW, Variant.VARIANT_MEDIUM, Variant.VARIANT_HIGH] }) => {
26
- const currentTrackId = currentTrackIdRef.current;
27
- if (currentTrackId)
28
- throw Error("Track already added");
29
- const media = mediaManager.getMedia();
30
- if (!media || !media.stream || !media.track)
31
- throw Error("Device is unavailable");
32
- const track = getRemoteOrLocalTrack(tsClient, currentTrackId);
33
- if (track)
34
- return track.trackId;
35
- // see `getRemoteOrLocalTrackContext()` explanation
36
- currentTrackIdRef.current = media.track.id;
37
- const deviceType = getDeviceType(mediaManager);
38
- const trackMetadata = { type: deviceType, paused: false };
22
+ }, [getCurrentTrackId, startDevice, tsClient]);
23
+ const setTrackMiddleware = useCallback(async (middleware) => {
24
+ const processedTrack = applyMiddleware(middleware);
25
+ const currentTrackId = getCurrentTrackId();
26
+ if (!currentTrackId)
27
+ return;
28
+ await tsClient.replaceTrack(currentTrackId, processedTrack);
29
+ }, [applyMiddleware, getCurrentTrackId, tsClient]);
30
+ const startStreaming = useCallback(async (track, props = { simulcast: [Variant.VARIANT_LOW, Variant.VARIANT_MEDIUM, Variant.VARIANT_HIGH] }) => {
31
+ // temporarily setting the local trackId until we have the remoteTrackId
32
+ currentTrackIdRef.current = track.id;
33
+ const trackMetadata = { type, paused: false };
39
34
  const displayName = tsClient.getLocalPeer()?.metadata?.peer?.displayName;
40
35
  if (typeof displayName === "string") {
41
36
  trackMetadata.displayName = displayName;
42
37
  }
43
38
  const [maxBandwidth, simulcastConfig] = getConfigAndBandwidthFromProps(props.simulcast, bandwidthLimits);
44
- const remoteTrackId = await tsClient.addTrack(media.track, trackMetadata, simulcastConfig, maxBandwidth);
45
- currentTrackIdRef.current = remoteTrackId;
46
- setPaused(false);
47
- return remoteTrackId;
48
- }, [mediaManager, tsClient, bandwidthLimits]);
49
- const refreshStreamedTrack = useCallback(async () => {
50
- const trackId = getCurrentTrackId();
51
- if (!trackId)
52
- return;
53
- const newTrack = mediaManager.getMedia()?.track ?? null;
54
- if (!newTrack)
55
- throw Error("New track is empty");
56
- return tsClient.replaceTrack(trackId, newTrack);
57
- }, [getCurrentTrackId, mediaManager, tsClient]);
58
- const pauseStreaming = useCallback(async () => {
59
- const trackId = getCurrentTrackId();
60
- if (!trackId)
39
+ try {
40
+ const remoteTrackId = await tsClient.addTrack(track, trackMetadata, simulcastConfig, maxBandwidth);
41
+ currentTrackIdRef.current = remoteTrackId;
42
+ }
43
+ catch (err) {
44
+ if (err instanceof TrackTypeError) {
45
+ console.warn(err.message);
46
+ currentTrackIdRef.current = null;
47
+ }
48
+ throw err;
49
+ }
50
+ }, [tsClient, type, bandwidthLimits]);
51
+ const pauseStreaming = useCallback(async (trackId) => {
52
+ if (peerStatus !== "connected")
61
53
  return;
62
- setPaused(true);
63
54
  await tsClient.replaceTrack(trackId, null);
64
- const deviceType = getDeviceType(mediaManager);
65
- const trackMetadata = { type: deviceType, paused: true };
66
- return tsClient.updateTrackMetadata(trackId, trackMetadata);
67
- }, [mediaManager, getCurrentTrackId, tsClient]);
68
- const resumeStreaming = useCallback(async () => {
69
- const trackId = getCurrentTrackId();
70
- if (!trackId)
55
+ return tsClient.updateTrackMetadata(trackId, { type, paused: true });
56
+ }, [tsClient, type, peerStatus]);
57
+ const resumeStreaming = useCallback(async (trackId, track) => {
58
+ if (peerStatus !== "connected")
71
59
  return;
72
- const media = mediaManager.getMedia();
73
- const deviceType = getDeviceType(mediaManager);
74
- if (!media)
75
- throw Error("Device is unavailable");
76
- setPaused(false);
77
- await tsClient.replaceTrack(trackId, media.track);
78
- const trackMetadata = { type: deviceType, paused: false };
79
- return tsClient.updateTrackMetadata(trackId, trackMetadata);
80
- }, [mediaManager, tsClient, getCurrentTrackId]);
81
- const stream = useCallback(async () => {
82
- if (getCurrentPeerStatus() !== "connected")
60
+ await tsClient.replaceTrack(trackId, track);
61
+ return tsClient.updateTrackMetadata(trackId, { type, paused: false });
62
+ }, [peerStatus, tsClient, type]);
63
+ /**
64
+ * @see {@link TrackManager#toggleMute} for more details.
65
+ */
66
+ const toggleMute = useCallback(async () => {
67
+ const isTrackCurrentlyEnabled = Boolean(deviceTrack?.enabled);
68
+ const currentTrackId = getCurrentTrackId();
69
+ if (!currentTrackId) {
70
+ console.warn("Toggling mute is only possible while connected to a room.");
83
71
  return;
84
- const trackId = getRemoteOrLocalTrack(tsClient, currentTrackIdRef.current)?.trackId;
85
- if (trackId) {
86
- await resumeStreaming();
87
72
  }
88
- else {
89
- await startStreaming();
73
+ if (isTrackCurrentlyEnabled) {
74
+ disableDevice();
75
+ await pauseStreaming(currentTrackId);
90
76
  }
91
- }, [tsClient, getCurrentPeerStatus, resumeStreaming, startStreaming]);
92
- const toggle = useCallback(async (mode) => {
93
- await devicesInitializationRef.current;
94
- const mediaStream = mediaManager.getMedia()?.stream;
95
- const track = mediaManager.getMedia()?.track ?? null;
96
- const enabled = Boolean(track?.enabled);
97
- const trackId = getRemoteOrLocalTrack(tsClient, currentTrackIdRef.current)?.trackId;
98
- if (mediaStream && enabled) {
99
- mediaManager.disable();
100
- if (trackId) {
101
- await pauseStreaming();
102
- }
103
- if (mode === "hard") {
104
- mediaManager.stop();
105
- }
77
+ else if (deviceTrack) {
78
+ enableDevice();
79
+ await resumeStreaming(currentTrackId, deviceTrack);
106
80
  }
107
- else if (mediaStream && !enabled) {
108
- mediaManager.enable();
109
- await stream();
110
- }
111
- else {
112
- await mediaManager.start();
113
- await stream();
114
- }
115
- }, [devicesInitializationRef, mediaManager, tsClient, pauseStreaming, stream]);
116
- /**
117
- * @see {@link TrackManager#toggleMute} for more details.
118
- */
119
- const toggleMute = useCallback(() => toggle("soft"), [toggle]);
81
+ }, [deviceTrack, getCurrentTrackId, disableDevice, pauseStreaming, enableDevice, resumeStreaming]);
120
82
  /**
121
83
  * @see {@link TrackManager#toggleDevice} for more details.
122
84
  */
123
- const toggleDevice = useCallback(() => toggle("hard"), [toggle]);
85
+ const toggleDevice = useCallback(async () => {
86
+ const currentTrackId = getCurrentTrackId();
87
+ if (deviceTrack) {
88
+ stopDevice();
89
+ if (currentTrackId) {
90
+ pauseStreaming(currentTrackId);
91
+ }
92
+ }
93
+ else {
94
+ const [newTrack, error] = await startDevice();
95
+ if (error)
96
+ return error;
97
+ if (currentTrackId) {
98
+ await resumeStreaming(currentTrackId, newTrack);
99
+ }
100
+ else if (peerStatus === "connected") {
101
+ await startStreaming(newTrack, streamConfig);
102
+ }
103
+ }
104
+ }, [
105
+ getCurrentTrackId,
106
+ deviceTrack,
107
+ stopDevice,
108
+ pauseStreaming,
109
+ startDevice,
110
+ peerStatus,
111
+ resumeStreaming,
112
+ startStreaming,
113
+ streamConfig,
114
+ ]);
124
115
  useEffect(() => {
125
116
  const onJoinedRoom = () => {
126
- if (mediaManager.getMedia()?.track) {
127
- startStreaming(streamConfig);
117
+ if (deviceTrack) {
118
+ startStreaming(deviceTrack, streamConfig);
128
119
  }
129
120
  };
130
121
  const onLeftRoom = () => {
131
- setPaused(true);
132
122
  currentTrackIdRef.current = null;
133
123
  };
134
124
  tsClient.on("joined", onJoinedRoom);
@@ -137,9 +127,10 @@ export const useTrackManager = ({ mediaManager, tsClient, getCurrentPeerStatus,
137
127
  tsClient.off("joined", onJoinedRoom);
138
128
  tsClient.off("disconnected", onLeftRoom);
139
129
  };
140
- }, [mediaManager, startStreaming, tsClient, streamConfig]);
130
+ }, [deviceTrack, startStreaming, tsClient, streamConfig]);
141
131
  return {
142
- paused,
132
+ deviceTrack,
133
+ currentMiddleware,
143
134
  setTrackMiddleware,
144
135
  selectDevice,
145
136
  toggleMute,
@@ -0,0 +1,7 @@
1
+ import type { TrackMiddleware } from "../../types/public";
2
+ export declare const useTrackMiddleware: (rawTrack: MediaStreamTrack | null) => {
3
+ processedTrack: MediaStreamTrack | null;
4
+ applyMiddleware: (newMiddleware: TrackMiddleware) => MediaStreamTrack | null;
5
+ currentMiddleware: TrackMiddleware;
6
+ };
7
+ //# sourceMappingURL=useTrackMiddleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTrackMiddleware.d.ts","sourceRoot":"","sources":["../../../src/hooks/internal/useTrackMiddleware.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,eAAO,MAAM,kBAAkB,GAAI,UAAU,gBAAgB,GAAG,IAAI;;qCAchD,eAAe;;CAkBlC,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { useCallback, useEffect, useRef, useState } from "react";
2
+ export const useTrackMiddleware = (rawTrack) => {
3
+ const [currentMiddleware, setMiddleware] = useState(null);
4
+ const [processedTrack, setProcessedTrack] = useState(null);
5
+ const cleanupRef = useRef(undefined);
6
+ useEffect(() => {
7
+ if (!rawTrack && processedTrack) {
8
+ processedTrack.stop();
9
+ cleanupRef.current?.();
10
+ setProcessedTrack(null);
11
+ }
12
+ }, [rawTrack, processedTrack]);
13
+ const applyMiddleware = useCallback((newMiddleware) => {
14
+ cleanupRef.current?.();
15
+ setMiddleware(() => newMiddleware);
16
+ if (newMiddleware && rawTrack) {
17
+ const { track, onClear } = newMiddleware(rawTrack);
18
+ cleanupRef.current = onClear;
19
+ setProcessedTrack(track);
20
+ return track;
21
+ }
22
+ setProcessedTrack(null);
23
+ return rawTrack;
24
+ }, [rawTrack]);
25
+ return { processedTrack, applyMiddleware, currentMiddleware };
26
+ };
@@ -1,5 +1,4 @@
1
- import type { GenericMetadata, ReconnectionStatus } from "@fishjam-cloud/ts-client";
2
- import type { PeerStatus } from "../types/public";
1
+ import type { GenericMetadata } from "@fishjam-cloud/ts-client";
3
2
  export interface JoinRoomConfig<PeerMetadata extends GenericMetadata = GenericMetadata> {
4
3
  /**
5
4
  * Fishjam URL
@@ -31,9 +30,10 @@ export declare function useConnection(): {
31
30
  /**
32
31
  * Current peer connection status
33
32
  */
34
- peerStatus: PeerStatus;
33
+ peerStatus: import("..").PeerStatus;
35
34
  /**
36
35
  * Current reconnection status
37
- */ reconnectionStatus: ReconnectionStatus;
36
+ */
37
+ reconnectionStatus: import("@fishjam-cloud/ts-client").ReconnectionStatus;
38
38
  };
39
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;;;;GAIG;AACH,wBAAgB,aAAa;IAsBzB;;OAEG;eAjBF,YAAY,SAAS,eAAe,uDAIlC,cAAc,CAAC,YAAY,CAAC;IAe/B;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;EAEN"}
1
+ {"version":3,"file":"useConnection.d.ts","sourceRoot":"","sources":["../../src/hooks/useConnection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAOhE,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;IAuBzB;;OAEG;eAfF,YAAY,SAAS,eAAe,uDAIlC,cAAc,CAAC,YAAY,CAAC;IAa/B;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;EAGN"}
@@ -1,5 +1,6 @@
1
- import { useCallback } from "react";
2
- import { useFishjamContext } from "./internal/useFishjamContext";
1
+ import { useCallback, useContext } from "react";
2
+ import { FishjamClientContext } from "../contexts/fishjamClient";
3
+ import { PeerStatusContext } from "../contexts/peerStatus";
3
4
  import { useReconnection } from "./internal/useReconnection";
4
5
  /**
5
6
  * Hook allows to join or leave a room and check the current connection status.
@@ -7,14 +8,16 @@ import { useReconnection } from "./internal/useReconnection";
7
8
  * @group Hooks
8
9
  */
9
10
  export function useConnection() {
10
- const context = useFishjamContext();
11
- const client = context.fishjamClientRef.current;
11
+ const fishjamClientRef = useContext(FishjamClientContext);
12
+ if (!fishjamClientRef)
13
+ throw Error("useConnection must be used within FishjamProvider");
14
+ const peerStatus = useContext(PeerStatusContext);
15
+ const client = fishjamClientRef.current;
12
16
  const reconnectionStatus = useReconnection();
13
17
  const joinRoom = useCallback(({ url, peerToken, peerMetadata, }) => client.connect({ url, token: peerToken, peerMetadata: peerMetadata ?? {} }), [client]);
14
18
  const leaveRoom = useCallback(() => {
15
19
  client.disconnect();
16
20
  }, [client]);
17
- const peerStatus = context.peerStatus;
18
21
  return {
19
22
  /**
20
23
  * Join room and start streaming camera and microphone
@@ -30,6 +33,7 @@ export function useConnection() {
30
33
  peerStatus,
31
34
  /**
32
35
  * Current reconnection status
33
- */ reconnectionStatus,
36
+ */
37
+ reconnectionStatus,
34
38
  };
35
39
  }
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"usePeers.d.ts","sourceRoot":"","sources":["../../src/hooks/usePeers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAuB,QAAQ,EAAqC,MAAM,0BAA0B,CAAC;AAKjH,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAW,MAAM,iBAAiB,CAAC;AAE9D;;;;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;IAerG;;;OAGG;IACH;;OAEG;IACH;;;;OAIG;;EAGN"}
@@ -1,4 +1,5 @@
1
- import { useFishjamContext } from "./internal/useFishjamContext";
1
+ import { useContext } from "react";
2
+ import { FishjamClientStateContext } from "../contexts/fishjamState";
2
3
  function trackContextToTrack(track) {
3
4
  return {
4
5
  metadata: track.metadata,
@@ -34,7 +35,9 @@ function getPeerWithDistinguishedTracks(peer) {
34
35
  * @typeParam ServerMetadata Type of metadata set by the server while creating a peer.
35
36
  */
36
37
  export function usePeers() {
37
- const { clientState } = useFishjamContext();
38
+ const clientState = useContext(FishjamClientStateContext);
39
+ if (!clientState)
40
+ throw Error("usePeers must be used within FishjamProvider");
38
41
  const localPeer = clientState.localPeer
39
42
  ? getPeerWithDistinguishedTracks(clientState.localPeer)
40
43
  : null;
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"useScreenShare.d.ts","sourceRoot":"","sources":["../../src/hooks/useScreenShare.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,eAAO,MAAM,cAAc;IAKvB;;OAEG;;wBADoD,CAAC;wBAEpD,CAAC;;IACL;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAEH;;;;OAIG;;IAEH;;;;OAIG;;CAGN,CAAC"}
@@ -1,11 +1,14 @@
1
- import { useFishjamContext } from "./internal/useFishjamContext";
1
+ import { useContext } from "react";
2
+ import { ScreenshareContext } from "../contexts/screenshare";
2
3
  /**
3
4
  * Hook to enable screen sharing within a room and manage the existing stream.
4
5
  * @category Devices
5
6
  * @group Hooks
6
7
  */
7
8
  export const useScreenShare = () => {
8
- const { screenShareManager } = useFishjamContext();
9
+ const screenShareManager = useContext(ScreenshareContext);
10
+ if (!screenShareManager)
11
+ throw Error("useScreenShare must be used within FishjamProvider");
9
12
  return {
10
13
  /**
11
14
  * Invokes the screen sharing prompt in the user's browser and starts streaming upon approval.
@@ -0,0 +1,4 @@
1
+ export declare const useStatistics: () => {
2
+ getStatistics: () => Promise<RTCStatsReport>;
3
+ };
4
+ //# sourceMappingURL=useStatistics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStatistics.d.ts","sourceRoot":"","sources":["../../src/hooks/useStatistics.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa;;CAUzB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { useContext } from "react";
2
+ import { FishjamClientContext } from "../contexts/fishjamClient";
3
+ export const useStatistics = () => {
4
+ const client = useContext(FishjamClientContext);
5
+ if (!client)
6
+ throw new Error("useStatistics must be used within a FishjamProvider");
7
+ return {
8
+ /*
9
+ * Returns a low level RTCStatsReport statistics object about the connection.
10
+ */
11
+ getStatistics: () => client.current.getStatistics(),
12
+ };
13
+ };
@@ -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;IAWtE;;OAEG;uCATY,YAAY;CAY9B,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,GAAG,eAAe;IAYxF;;OAEG;uCATY,YAAY;CAY9B,CAAC"}
@@ -1,5 +1,5 @@
1
- import { useCallback } from "react";
2
- import { useFishjamContext } from "./internal/useFishjamContext";
1
+ import { useCallback, useContext } from "react";
2
+ import { FishjamClientContext } from "../contexts/fishjamClient";
3
3
  /**
4
4
  * Hook provides a method to update the metadata of the local peer.
5
5
  * @category Connection
@@ -7,7 +7,9 @@ import { useFishjamContext } from "./internal/useFishjamContext";
7
7
  * @returns
8
8
  */
9
9
  export const useUpdatePeerMetadata = () => {
10
- const { fishjamClientRef } = useFishjamContext();
10
+ const fishjamClientRef = useContext(FishjamClientContext);
11
+ if (!fishjamClientRef)
12
+ throw Error("useUpdatePeerMetadata must be used within FishjamProvider");
11
13
  const updatePeerMetadata = useCallback((peerMetadata) => {
12
14
  fishjamClientRef.current.updatePeerMetadata(peerMetadata);
13
15
  }, [fishjamClientRef]);
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"useVAD.d.ts","sourceRoot":"","sources":["../../src/hooks/useVAD.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAW,MAAM,iBAAiB,CAAC;AAEvD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,MAAM,GAAI,aAAa;IAAE,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;CAAE,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAgE9F,CAAC"}
@@ -1,6 +1,5 @@
1
- import { useEffect, useMemo, useState } from "react";
2
- import { useFishjamClientState } from "./internal/useFishjamClientState";
3
- import { useFishjamContext } from "./internal/useFishjamContext";
1
+ import { useContext, useEffect, useMemo, useState } from "react";
2
+ import { FishjamClientStateContext } from "../contexts/fishjamState";
4
3
  /**
5
4
  * Voice activity detection. Use this hook to check if voice is detected in audio track for given peer(s).
6
5
  *
@@ -19,14 +18,15 @@ import { useFishjamContext } from "./internal/useFishjamContext";
19
18
  * @returns Each key is a peerId and the boolean value indicates if voice activity is currently detected for that peer.
20
19
  */
21
20
  export const useVAD = ({ peerIds }) => {
22
- const { fishjamClientRef } = useFishjamContext();
23
- const { peers } = useFishjamClientState(fishjamClientRef.current);
24
- const micTracksWithSelectedPeerIds = useMemo(() => Object.values(peers)
21
+ const clientState = useContext(FishjamClientStateContext);
22
+ if (!clientState)
23
+ throw Error("useVAD must be used within FishjamProvider");
24
+ const micTracksWithSelectedPeerIds = useMemo(() => Object.values(clientState.peers)
25
25
  .filter((peer) => peerIds.includes(peer.id))
26
26
  .map((peer) => ({
27
27
  peerId: peer.id,
28
28
  microphoneTracks: Array.from(peer.tracks.values()).filter(({ metadata }) => metadata?.type === "microphone"),
29
- })), [peers, peerIds]);
29
+ })), [clientState.peers, peerIds]);
30
30
  const getDefaultVadStatuses = () => micTracksWithSelectedPeerIds.reduce((mappedTracks, peer) => ({
31
31
  ...mappedTracks,
32
32
  [peer.peerId]: peer.microphoneTracks.reduce((vadStatuses, track) => ({ ...vadStatuses, [track.trackId]: track.vadStatus }), {}),
package/dist/index.d.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  export { FishjamProvider, type FishjamProviderProps } from "./FishjamProvider";
2
2
  export { useCamera } from "./hooks/devices/useCamera";
3
- export { InitializeDevicesErrors, useInitializeDevices, UseInitializeDevicesParams, } from "./hooks/devices/useInitializeDevices";
3
+ export { useInitializeDevices, UseInitializeDevicesParams } from "./hooks/devices/useInitializeDevices";
4
4
  export { useMicrophone } from "./hooks/devices/useMicrophone";
5
5
  export { type JoinRoomConfig, useConnection } from "./hooks/useConnection";
6
6
  export { type PeerWithTracks, usePeers } from "./hooks/usePeers";
7
7
  export { useScreenShare } from "./hooks/useScreenShare";
8
8
  export { useUpdatePeerMetadata } from "./hooks/useUpdatePeerMetadata";
9
9
  export { useVAD } from "./hooks/useVAD";
10
- export type { BandwidthLimits, Brand, DeviceError, DeviceItem, PeerId, PeerStatus, PersistLastDeviceHandlers, SimulcastBandwidthLimits, StreamConfig, Track, TrackId, TrackMiddleware, TracksMiddleware, } from "./types/public";
10
+ export type { BandwidthLimits, Brand, DeviceError, DeviceItem, InitializeDevicesResult, InitializeDevicesStatus, PeerId, PeerStatus, PersistLastDeviceHandlers, SimulcastBandwidthLimits, StreamConfig, Track, TrackId, TrackMiddleware, TracksMiddleware, } from "./types/public";
11
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,MAAM,2BAA2B,CAAC;AACtD,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,sCAAsC,CAAC;AAC9C,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
+ {"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,uBAAuB,EACvB,uBAAuB,EACvB,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"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export { FishjamProvider } from "./FishjamProvider";
2
2
  export { useCamera } from "./hooks/devices/useCamera";
3
- export { useInitializeDevices, } from "./hooks/devices/useInitializeDevices";
3
+ export { useInitializeDevices } from "./hooks/devices/useInitializeDevices";
4
4
  export { useMicrophone } from "./hooks/devices/useMicrophone";
5
5
  export { useConnection } from "./hooks/useConnection";
6
6
  export { usePeers } from "./hooks/usePeers";
@@ -1,49 +1,17 @@
1
1
  import type { Peer } from "@fishjam-cloud/ts-client";
2
- import type { DeviceError, DeviceType, PeerId, TrackMiddleware, TracksMiddleware } from "./public";
3
- export type DevicesStatus = "OK" | "Error" | "Not requested" | "Requesting";
4
- export type MediaStatus = "OK" | "Error" | "Not requested" | "Requesting";
5
- export type DeviceManagerStatus = "uninitialized" | "initializing" | "initialized" | "error";
6
- export interface DeviceManagerState {
7
- deviceState: DeviceState;
8
- deviceStatus: DeviceManagerStatus;
9
- deviceType: DeviceType;
10
- }
11
- export type Media = {
12
- stream: MediaStream | null;
13
- track: MediaStreamTrack | null;
14
- enabled: boolean;
15
- deviceInfo: MediaDeviceInfo | null;
16
- };
17
- export type DeviceState = {
18
- media: Media | null;
19
- mediaStatus: MediaStatus;
20
- devices: MediaDeviceInfo[] | null;
21
- devicesStatus: DevicesStatus;
22
- error: DeviceError | null;
23
- currentMiddleware: TrackMiddleware | null;
2
+ import type { DeviceError, PeerId, TrackMiddleware, TracksMiddleware } from "./public";
3
+ export type AudioVideo<T> = {
4
+ audio: T;
5
+ video: T;
24
6
  };
25
7
  export type CurrentDevices = {
26
8
  videoinput: MediaDeviceInfo | null;
27
9
  audioinput: MediaDeviceInfo | null;
28
10
  };
29
- export interface MediaManager {
30
- start: (deviceId?: string) => Promise<void>;
31
- stop: () => void;
32
- disable: () => void;
33
- enable: () => void;
34
- setTrackMiddleware: (middleware: TrackMiddleware | null) => void;
35
- getMiddleware: () => TrackMiddleware | null;
36
- getMedia: () => {
37
- stream: MediaStream | null;
38
- track: MediaStreamTrack | null;
39
- enabled: boolean;
40
- } | null;
41
- getDeviceType: () => DeviceType;
42
- }
43
11
  export type ScreenShareState = ({
44
12
  stream: MediaStream;
45
13
  trackIds: {
46
- videoId: string;
14
+ videoId?: string;
47
15
  audioId?: string;
48
16
  };
49
17
  } | {
@@ -53,8 +21,9 @@ export type ScreenShareState = ({
53
21
  tracksMiddleware?: TracksMiddleware | null;
54
22
  };
55
23
  export interface TrackManager {
56
- selectDevice: (deviceId?: string) => Promise<void>;
57
- paused: boolean;
24
+ selectDevice: (deviceId?: string) => Promise<undefined | DeviceError>;
25
+ deviceTrack: MediaStreamTrack | null;
26
+ currentMiddleware: TrackMiddleware;
58
27
  setTrackMiddleware: (middleware: TrackMiddleware | null) => Promise<void>;
59
28
  /**
60
29
  * Either enables or disables the stream.
@@ -72,7 +41,7 @@ export interface TrackManager {
72
41
  * - If started: disables the media stream, pauses streaming, and stops the device.
73
42
  * - If stopped: starts the device and begins (or resumes) streaming.
74
43
  */
75
- toggleDevice: () => Promise<void>;
44
+ toggleDevice: () => Promise<undefined | DeviceError>;
76
45
  }
77
46
  export type BrandedPeer<P, S> = Omit<Peer<P, S>, "id"> & {
78
47
  id: PeerId;
@@ -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":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAErD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEvF,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI;IAAE,KAAK,EAAE,CAAC,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AAEnD,MAAM,MAAM,cAAc,GAAG;IAAE,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;IAAC,UAAU,EAAE,eAAe,GAAG,IAAI,CAAA;CAAE,CAAC;AAExG,MAAM,MAAM,gBAAgB,GAAG,CAC3B;IACE,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAClD,GACD;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,IAAI,CAAA;CAAE,CACnC,GAAG;IAAE,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;CAAE,CAAC;AAEnD,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC;IACtE,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACrC,iBAAiB,EAAE,eAAe,CAAC;IACnC,kBAAkB,EAAE,CAAC,UAAU,EAAE,eAAe,GAAG,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1E;;;;;;;OAOG;IACH,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC;;;;;;OAMG;IACH,YAAY,EAAE,MAAM,OAAO,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC;CACtD;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC"}