@fishjam-cloud/react-client 0.25.0-rc.3 → 0.25.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.
@@ -1,4 +1,4 @@
1
- import { type ReconnectConfig } from "@fishjam-cloud/ts-client";
1
+ import { FishjamClient, type ReconnectConfig } from "@fishjam-cloud/ts-client";
2
2
  import { type PropsWithChildren } from "react";
3
3
  import type { BandwidthLimits, PersistLastDeviceHandlers, StreamConfig } from "./types/public";
4
4
  /**
@@ -41,6 +41,10 @@ export interface FishjamProviderProps extends PropsWithChildren {
41
41
  * Enables Fishjam SDK's debug logs in the console.
42
42
  */
43
43
  debug?: boolean;
44
+ /**
45
+ * Allows to provide your own FishjamClient instance from ts-client.
46
+ */
47
+ fishjamClient?: FishjamClient;
44
48
  }
45
49
  /**
46
50
  * Provides the Fishjam Context
@@ -1 +1 @@
1
- {"version":3,"file":"FishjamProvider.d.ts","sourceRoot":"","sources":["../src/FishjamProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC1F,OAAO,EAAE,KAAK,iBAAiB,EAAmB,MAAM,OAAO,CAAC;AAkBhE,OAAO,KAAK,EAAE,eAAe,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAI/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;IAC3B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,2CAwF1D"}
1
+ {"version":3,"file":"FishjamProvider.d.ts","sourceRoot":"","sources":["../src/FishjamProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAa,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC1F,OAAO,EAAE,KAAK,iBAAiB,EAAmB,MAAM,OAAO,CAAC;AAkBhE,OAAO,KAAK,EAAE,eAAe,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAI/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;IAC3B;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;CAC/B;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,2CA0F1D"}
@@ -24,7 +24,7 @@ import { getLastDevice, saveLastDevice } from "./utils/localStorage";
24
24
  * @category Components
25
25
  */
26
26
  export function FishjamProvider(props) {
27
- const fishjamClientRef = useRef(new FishjamClient({ reconnect: props.reconnect, debug: props.debug }));
27
+ const fishjamClientRef = useRef(props.fishjamClient ?? new FishjamClient({ reconnect: props.reconnect, debug: props.debug }));
28
28
  const persistHandlers = useMemo(() => {
29
29
  if (props.persistLastDevice === false)
30
30
  return undefined;
@@ -32,7 +32,7 @@ export function FishjamProvider(props) {
32
32
  return props.persistLastDevice;
33
33
  return { getLastDevice, saveLastDevice };
34
34
  }, [props.persistLastDevice]);
35
- const logger = getLogger(props.debug ?? false);
35
+ const logger = useMemo(() => getLogger(props.debug ?? false), [props.debug]);
36
36
  const { cameraManager, microphoneManager, initializeDevices } = useMediaDevices({
37
37
  videoConstraints: props.constraints?.video ?? VIDEO_TRACK_CONSTRAINTS,
38
38
  audioConstraints: props.constraints?.audio ?? true,
@@ -0,0 +1,9 @@
1
+ import type { UseDataChannelResult } from "../types/public";
2
+ /**
3
+ * Hook for data channel operations - publish and subscribe to data.
4
+ *
5
+ * @category Connection
6
+ * @group Hooks
7
+ */
8
+ export declare function useDataChannel(): UseDataChannelResult;
9
+ //# sourceMappingURL=useDataChannel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDataChannel.d.ts","sourceRoot":"","sources":["../../src/hooks/useDataChannel.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5D;;;;;GAKG;AACH,wBAAgB,cAAc,IAAI,oBAAoB,CAsFrD"}
@@ -0,0 +1,83 @@
1
+ import { useCallback, useContext, useEffect, useState } from "react";
2
+ import { FishjamClientContext } from "../contexts/fishjamClient";
3
+ import { PeerStatusContext } from "../contexts/peerStatus";
4
+ /**
5
+ * Hook for data channel operations - publish and subscribe to data.
6
+ *
7
+ * @category Connection
8
+ * @group Hooks
9
+ */
10
+ export function useDataChannel() {
11
+ const fishjamClientRef = useContext(FishjamClientContext);
12
+ const peerStatus = useContext(PeerStatusContext);
13
+ if (!fishjamClientRef)
14
+ throw Error("useDataPublisher must be used within FishjamProvider");
15
+ const client = fishjamClientRef.current;
16
+ const [ready, setReady] = useState(false);
17
+ const [loading, setLoading] = useState(false);
18
+ const [error, setError] = useState(null);
19
+ useEffect(() => {
20
+ const publisherReady = client.getDataChannelsReadiness();
21
+ setReady(publisherReady);
22
+ const handleReady = () => {
23
+ setReady(true);
24
+ setError(null);
25
+ };
26
+ const handleDisconnect = () => {
27
+ setReady(false);
28
+ };
29
+ const handleError = (err) => {
30
+ setReady(false);
31
+ setLoading(false);
32
+ setError(err);
33
+ };
34
+ client.on("dataChannelsReady", handleReady);
35
+ client.on("dataChannelsError", handleError);
36
+ client.on("disconnected", handleDisconnect);
37
+ return () => {
38
+ client.removeListener("dataChannelsReady", handleReady);
39
+ client.removeListener("disconnected", handleDisconnect);
40
+ };
41
+ }, [client]);
42
+ const initialize = useCallback(async () => {
43
+ if (loading || ready)
44
+ return;
45
+ if (peerStatus !== "connected") {
46
+ setError(new Error("Peer is not connected"));
47
+ return;
48
+ }
49
+ try {
50
+ setLoading(true);
51
+ await client.createDataChannels();
52
+ }
53
+ catch (err) {
54
+ if (err instanceof Error) {
55
+ setError(err);
56
+ }
57
+ }
58
+ finally {
59
+ setLoading(false);
60
+ }
61
+ }, [client, peerStatus, loading, ready]);
62
+ const publishData = useCallback((data, options) => {
63
+ try {
64
+ client.publishData(data, options);
65
+ }
66
+ catch (err) {
67
+ if (err instanceof Error) {
68
+ setError(err);
69
+ }
70
+ }
71
+ }, [client]);
72
+ const subscribeData = useCallback((callback, options) => {
73
+ return client.subscribeData(callback, options);
74
+ }, [client]);
75
+ return {
76
+ publishData,
77
+ subscribeData,
78
+ initializeDataChannel: initialize,
79
+ dataChannelReady: ready,
80
+ dataChannelLoading: loading,
81
+ dataChannelError: error,
82
+ };
83
+ }
package/dist/index.d.ts CHANGED
@@ -5,6 +5,7 @@ export { useMicrophone } from "./hooks/devices/useMicrophone";
5
5
  export { InitializeDevicesSettings } from "./hooks/internal/devices/useMediaDevices";
6
6
  export { type JoinRoomConfig, useConnection } from "./hooks/useConnection";
7
7
  export { useCustomSource } from "./hooks/useCustomSource";
8
+ export { useDataChannel } from "./hooks/useDataChannel";
8
9
  export { type ConnectStreamerConfig, type StreamerInputs, useLivestreamStreamer, type UseLivestreamStreamerResult, } from "./hooks/useLivestreamStreamer";
9
10
  export { type ConnectViewerConfig, useLivestreamViewer, type UseLivestreamViewerResult, } from "./hooks/useLivestreamViewer";
10
11
  export { type PeerWithTracks, usePeers } from "./hooks/usePeers";
@@ -12,7 +13,7 @@ export { type RoomType, useSandbox, type UseSandboxProps } from "./hooks/useSand
12
13
  export { useScreenShare } from "./hooks/useScreenShare";
13
14
  export { useUpdatePeerMetadata } from "./hooks/useUpdatePeerMetadata";
14
15
  export { useVAD } from "./hooks/useVAD";
15
- export type { BandwidthLimits, Brand, CustomSource, DeviceError, DeviceItem, InitializeDevicesResult, InitializeDevicesStatus, MiddlewareResult, PeerId, PeerStatus, PersistLastDeviceHandlers, SimulcastBandwidthLimits, StreamConfig, Track, TrackId, TrackMiddleware, TracksMiddleware, TracksMiddlewareResult, } from "./types/public";
16
- export type { AuthErrorReason, JoinErrorReason, Metadata, ReconnectConfig, ReconnectionStatus, SimulcastBandwidthLimit, SimulcastConfig, TrackBandwidthLimit, } from "@fishjam-cloud/ts-client";
16
+ export type { BandwidthLimits, Brand, CustomSource, DeviceError, DeviceItem, InitializeDevicesResult, InitializeDevicesStatus, MiddlewareResult, PeerId, PeerStatus, PersistLastDeviceHandlers, SimulcastBandwidthLimits, StreamConfig, Track, TrackId, TrackMiddleware, TracksMiddleware, TracksMiddlewareResult, UseDataChannelResult, } from "./types/public";
17
+ export type { AuthErrorReason, DataCallback, DataChannelOptions, JoinErrorReason, Metadata, ReconnectConfig, ReconnectionStatus, SimulcastBandwidthLimit, SimulcastConfig, TrackBandwidthLimit, } from "@fishjam-cloud/ts-client";
17
18
  export { Variant } from "@fishjam-cloud/ts-client";
18
19
  //# 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,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AACxG,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,KAAK,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,qBAAqB,EACrB,KAAK,2BAA2B,GACjC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,KAAK,mBAAmB,EACxB,mBAAmB,EACnB,KAAK,yBAAyB,GAC/B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,KAAK,cAAc,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,KAAK,QAAQ,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrF,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,YAAY,EACZ,WAAW,EACX,UAAU,EACV,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,MAAM,EACN,UAAU,EACV,yBAAyB,EACzB,wBAAwB,EACxB,YAAY,EACZ,KAAK,EACL,OAAO,EACP,eAAe,EACf,gBAAgB,EAChB,sBAAsB,GACvB,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,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,KAAK,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,qBAAqB,EACrB,KAAK,2BAA2B,GACjC,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,KAAK,mBAAmB,EACxB,mBAAmB,EACnB,KAAK,yBAAyB,GAC/B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,KAAK,cAAc,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,KAAK,QAAQ,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrF,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,YAAY,EACZ,WAAW,EACX,UAAU,EACV,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,MAAM,EACN,UAAU,EACV,yBAAyB,EACzB,wBAAwB,EACxB,YAAY,EACZ,KAAK,EACL,OAAO,EACP,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,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
@@ -4,6 +4,7 @@ export { useInitializeDevices } from "./hooks/devices/useInitializeDevices";
4
4
  export { useMicrophone } from "./hooks/devices/useMicrophone";
5
5
  export { useConnection } from "./hooks/useConnection";
6
6
  export { useCustomSource } from "./hooks/useCustomSource";
7
+ export { useDataChannel } from "./hooks/useDataChannel";
7
8
  export { useLivestreamStreamer, } from "./hooks/useLivestreamStreamer";
8
9
  export { useLivestreamViewer, } from "./hooks/useLivestreamViewer";
9
10
  export { usePeers } from "./hooks/usePeers";
@@ -1,4 +1,4 @@
1
- import type { SimulcastConfig, TrackMetadata, Variant } from "@fishjam-cloud/ts-client";
1
+ import type { DataCallback, DataChannelOptions, SimulcastConfig, TrackMetadata, Variant } from "@fishjam-cloud/ts-client";
2
2
  export type InitializeDevicesStatus = "initialized" | "failed" | "initialized_with_errors" | "already_initialized";
3
3
  export type InitializeDevicesResult = {
4
4
  status: InitializeDevicesStatus;
@@ -80,5 +80,40 @@ export type CustomSource<T extends string> = {
80
80
  };
81
81
  stream?: MediaStream;
82
82
  };
83
+ export type UseDataChannelResult = {
84
+ /**
85
+ * Initializes the data channel.
86
+ *
87
+ * Requires that the fishjam client is already connected.
88
+ */
89
+ initializeDataChannel: () => void;
90
+ /**
91
+ * Sends binary data through a data channel.
92
+ * @param payload - The Uint8Array payload to send (first positional argument)
93
+ * @param options - Data channel options; specify `reliable: true` for guaranteed delivery or `reliable: false` for low latency
94
+ */
95
+ publishData: (payload: Uint8Array, options: DataChannelOptions) => void;
96
+ /**
97
+ * Subscribe to incoming data on a data channel.
98
+ * Can be called before or after channel creation.
99
+ * @param callback - Function called when data is received
100
+ * @param options - Specify `reliable: true` or `reliable: false` to choose channel
101
+ * @returns Unsubscribe function - call to cancel the subscription
102
+ */
103
+ subscribeData: (callback: DataCallback, options: DataChannelOptions) => () => void;
104
+ /**
105
+ * Whether data channels are connected and ready to send data.
106
+ * Resets to false on disconnect.
107
+ */
108
+ dataChannelReady: boolean;
109
+ /**
110
+ * Whether data channels are being initialized.
111
+ */
112
+ dataChannelLoading: boolean;
113
+ /**
114
+ * Error that occurred during data publisher operations, or null if no error.
115
+ */
116
+ dataChannelError: Error | null;
117
+ };
83
118
  export {};
84
119
  //# sourceMappingURL=public.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/types/public.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/types/public.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fishjamUrl.d.ts","sourceRoot":"","sources":["../../src/utils/fishjamUrl.ts"],"names":[],"mappings":"AAAA,KAAK,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC;AAEtC,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAM3D;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAOpE;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,MAAM,CAMlF;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEhE"}
1
+ {"version":3,"file":"fishjamUrl.d.ts","sourceRoot":"","sources":["../../src/utils/fishjamUrl.ts"],"names":[],"mappings":"AAAA,KAAK,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC;AAEtC,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAK3D;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAOpE;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,MAAM,CAMlF;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEhE"}
@@ -1,10 +1,8 @@
1
1
  export function resolveFishjamUrl(fishjamId) {
2
- try {
2
+ if (/^https?:\/\//.test(fishjamId)) {
3
3
  return new URL(fishjamId).href;
4
4
  }
5
- catch {
6
- return `https://fishjam.io/api/v1/connect/${fishjamId}`;
7
- }
5
+ return `https://fishjam.io/api/v1/connect/${fishjamId}`;
8
6
  }
9
7
  export function httpToWebsocketUrl(url) {
10
8
  return url.replace("https://", "wss://").replace("http://", "ws://");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fishjam-cloud/react-client",
3
- "version": "0.25.0-rc.3",
3
+ "version": "0.25.1",
4
4
  "description": "React client library for Fishjam",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Fishjam Team",
@@ -62,7 +62,7 @@
62
62
  "vitest": "^3.1.1"
63
63
  },
64
64
  "dependencies": {
65
- "@fishjam-cloud/ts-client": "0.25.0-rc.3",
65
+ "@fishjam-cloud/ts-client": "0.25.1",
66
66
  "events": "3.3.0",
67
67
  "lodash.isequal": "4.5.0"
68
68
  },
@@ -77,6 +77,5 @@
77
77
  "*.(js|ts|tsx)": [
78
78
  "yarn lint"
79
79
  ]
80
- },
81
- "stableVersion": "0.24.0"
80
+ }
82
81
  }