@fishjam-cloud/react-native-client 0.26.0-rc.0 → 0.26.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.
package/README.md CHANGED
@@ -54,6 +54,7 @@ This package depends on `@fishjam-cloud/react-native-webrtc`, which is a fork of
54
54
  ```
55
55
 
56
56
  The local development plugin (`examples/mobile-client/common/plugins`) will automatically detect the `file:` dependency and configure:
57
+
57
58
  - **iOS Podfile:** Adds `pod 'FishjamReactNativeWebrtc', :path => '...'`
58
59
  - **Android settings.gradle:** Includes local project reference
59
60
 
package/dist/index.d.ts CHANGED
@@ -5,15 +5,16 @@
5
5
  */
6
6
  import './webrtc-polyfill';
7
7
  import React from 'react';
8
- import { type FishjamProviderProps as ReactClientFishjamProviderProps, useMicrophone as useMicrophoneReactClient } from '@fishjam-cloud/react-client';
8
+ import { type FishjamProviderProps as ReactClientFishjamProviderProps } from '@fishjam-cloud/react-client';
9
9
  export { RTCView, RTCPIPView, type RTCVideoViewProps, type RTCPIPViewProps } from './overrides/RTCView';
10
- export { ScreenCapturePickerView, startPIP, stopPIP, AudioDeviceType, useCallKit, useCallKitEvent, useCallKitService, useAudioOutput, } from '@fishjam-cloud/react-native-webrtc';
10
+ export { ScreenCapturePickerView, startPIP, stopPIP, AudioDeviceType, useAudioOutput, } from '@fishjam-cloud/react-native-webrtc';
11
11
  export type { CallKitAction, CallKitConfig, MediaStream, AudioDevice, AudioOutputChangedInfo, UseAudioOutputResult, } from '@fishjam-cloud/react-native-webrtc';
12
12
  export { useForegroundService, type ForegroundServiceConfig } from './useForegroundService';
13
13
  export { useCameraPermissions, useMicrophonePermissions, type PermissionStatus } from './hooks/usePermissions';
14
- export { useCamera, useInitializeDevices, InitializeDevicesSettings, useConnection, useCustomSource, useDataChannel, useLivestreamStreamer, useLivestreamViewer, usePeers, useSandbox, useScreenShare, useUpdatePeerMetadata, useVAD, Variant, } from '@fishjam-cloud/react-client';
15
- export declare const useMicrophone: () => Omit<ReturnType<typeof useMicrophoneReactClient>, "toggleMicrophoneMute">;
16
- export type { UseInitializeDevicesParams, JoinRoomConfig, ConnectStreamerConfig, StreamerInputs, UseLivestreamStreamerResult, ConnectViewerConfig, UseLivestreamViewerResult, PeerWithTracks, RoomType, UseSandboxProps, BandwidthLimits, Brand, CustomSource, DeviceError, DeviceItem, InitializeDevicesResult, InitializeDevicesStatus, MiddlewareResult, PeerId, PeerStatus, PersistLastDeviceHandlers, SimulcastBandwidthLimits, StreamConfig, Track, TrackId, TrackMiddleware, TracksMiddleware, TracksMiddlewareResult, AuthErrorReason, JoinErrorReason, UseDataChannelResult, DataCallback, DataChannelOptions, Metadata, ReconnectConfig, ReconnectionStatus, SimulcastBandwidthLimit, SimulcastConfig, TrackBandwidthLimit, } from '@fishjam-cloud/react-client';
14
+ export { InitializeDevicesSettings, useConnection, useDataChannel, useSandbox, useUpdatePeerMetadata, useVAD, Variant, } from '@fishjam-cloud/react-client';
15
+ export { useCamera, useInitializeDevices, useMicrophone, useScreenShare, useCustomSource, useLivestreamStreamer, useLivestreamViewer, usePeers, useCallKit, useCallKitEvent, useCallKitService, } from './overrides/hooks';
16
+ export type { StreamerInputs, ConnectStreamerConfig, UseLivestreamStreamerResult, UseLivestreamViewerResult, UseCameraResult, UseMicrophoneResult, UseScreenShareResult, UseCustomSourceResult, UseInitializeDevicesReturn, Track, RemoteTrack, CustomSource, InitializeDevicesResult, PeerWithTracks, TrackFields, } from './overrides/types';
17
+ export type { UseInitializeDevicesParams, JoinRoomConfig, ConnectViewerConfig, RoomType, UseSandboxProps, BandwidthLimits, Brand, DeviceError, DeviceItem, InitializeDevicesStatus, MiddlewareResult, PeerId, PeerStatus, PersistLastDeviceHandlers, SimulcastBandwidthLimits, StreamConfig, TrackId, TrackMiddleware, TracksMiddleware, TracksMiddlewareResult, AuthErrorReason, JoinErrorReason, UseDataChannelResult, DataCallback, DataChannelOptions, Metadata, ReconnectConfig, ReconnectionStatus, SimulcastBandwidthLimit, SimulcastConfig, TrackBandwidthLimit, } from '@fishjam-cloud/react-client';
17
18
  export type FishjamProviderProps = Omit<ReactClientFishjamProviderProps, 'persistLastDevice' | 'fishjamClient'>;
18
19
  export declare function FishjamProvider(props: FishjamProviderProps): React.FunctionComponentElement<ReactClientFishjamProviderProps>;
19
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,mBAAmB,CAAC;AAC3B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAEL,KAAK,oBAAoB,IAAI,+BAA+B,EAC5D,aAAa,IAAI,wBAAwB,EAC1C,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACxG,OAAO,EACL,uBAAuB,EACvB,QAAQ,EACR,OAAO,EACP,eAAe,EACf,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,cAAc,GACf,MAAM,oCAAoC,CAAC;AAE5C,YAAY,EACV,aAAa,EACb,aAAa,EACb,WAAW,EACX,WAAW,EACX,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,oBAAoB,EAAE,KAAK,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAC5F,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/G,OAAO,EACL,SAAS,EACT,oBAAoB,EACpB,yBAAyB,EACzB,aAAa,EACb,eAAe,EACf,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,QAAQ,EACR,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,MAAM,EACN,OAAO,GACR,MAAM,6BAA6B,CAAC;AAErC,eAAO,MAAM,aAAa,EAA+B,MAAM,IAAI,CACjE,UAAU,CAAC,OAAO,wBAAwB,CAAC,EAC3C,sBAAsB,CACvB,CAAC;AAEF,YAAY,EACV,0BAA0B,EAC1B,cAAc,EACd,qBAAqB,EACrB,cAAc,EACd,2BAA2B,EAC3B,mBAAmB,EACnB,yBAAyB,EACzB,cAAc,EACd,QAAQ,EACR,eAAe,EACf,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,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACR,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,eAAe,EACf,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AAGrC,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,+BAA+B,EAAE,mBAAmB,GAAG,eAAe,CAAC,CAAC;AAChH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,mEAO1D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,mBAAmB,CAAC;AAC3B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAEL,KAAK,oBAAoB,IAAI,+BAA+B,EAC7D,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACxG,OAAO,EACL,uBAAuB,EACvB,QAAQ,EACR,OAAO,EACP,eAAe,EACf,cAAc,GACf,MAAM,oCAAoC,CAAC;AAE5C,YAAY,EACV,aAAa,EACb,aAAa,EACb,WAAW,EACX,WAAW,EACX,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,oBAAoB,EAAE,KAAK,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAC5F,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/G,OAAO,EACL,yBAAyB,EACzB,aAAa,EACb,cAAc,EACd,UAAU,EACV,qBAAqB,EACrB,MAAM,EACN,OAAO,GACR,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,SAAS,EACT,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,QAAQ,EACR,UAAU,EACV,eAAe,EACf,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,cAAc,EACd,qBAAqB,EACrB,2BAA2B,EAC3B,yBAAyB,EACzB,eAAe,EACf,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,0BAA0B,EAC1B,KAAK,EACL,WAAW,EACX,YAAY,EACZ,uBAAuB,EACvB,cAAc,EACd,WAAW,GACZ,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACV,0BAA0B,EAC1B,cAAc,EACd,mBAAmB,EACnB,QAAQ,EACR,eAAe,EACf,eAAe,EACf,KAAK,EACL,WAAW,EACX,UAAU,EACV,uBAAuB,EACvB,gBAAgB,EAChB,MAAM,EACN,UAAU,EACV,yBAAyB,EACzB,wBAAwB,EACxB,YAAY,EACZ,OAAO,EACP,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACR,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,eAAe,EACf,mBAAmB,GACpB,MAAM,6BAA6B,CAAC;AAGrC,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,+BAA+B,EAAE,mBAAmB,GAAG,eAAe,CAAC,CAAC;AAChH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,mEAO1D"}
package/dist/index.js CHANGED
@@ -10,14 +10,14 @@
10
10
  // TODO: FCE-2464 Investigate order
11
11
  import './webrtc-polyfill';
12
12
  import React from 'react';
13
- import { FishjamProvider as ReactClientFishjamProvider, useMicrophone as useMicrophoneReactClient, } from '@fishjam-cloud/react-client';
13
+ import { FishjamProvider as ReactClientFishjamProvider, } from '@fishjam-cloud/react-client';
14
14
  import { FishjamClient } from '@fishjam-cloud/ts-client';
15
15
  export { RTCView, RTCPIPView } from './overrides/RTCView';
16
- export { ScreenCapturePickerView, startPIP, stopPIP, AudioDeviceType, useCallKit, useCallKitEvent, useCallKitService, useAudioOutput, } from '@fishjam-cloud/react-native-webrtc';
16
+ export { ScreenCapturePickerView, startPIP, stopPIP, AudioDeviceType, useAudioOutput, } from '@fishjam-cloud/react-native-webrtc';
17
17
  export { useForegroundService } from './useForegroundService';
18
18
  export { useCameraPermissions, useMicrophonePermissions } from './hooks/usePermissions';
19
- export { useCamera, useInitializeDevices, useConnection, useCustomSource, useDataChannel, useLivestreamStreamer, useLivestreamViewer, usePeers, useSandbox, useScreenShare, useUpdatePeerMetadata, useVAD, Variant, } from '@fishjam-cloud/react-client';
20
- export const useMicrophone = useMicrophoneReactClient;
19
+ export { useConnection, useDataChannel, useSandbox, useUpdatePeerMetadata, useVAD, Variant, } from '@fishjam-cloud/react-client';
20
+ export { useCamera, useInitializeDevices, useMicrophone, useScreenShare, useCustomSource, useLivestreamStreamer, useLivestreamViewer, usePeers, useCallKit, useCallKitEvent, useCallKitService, } from './overrides/hooks';
21
21
  export function FishjamProvider(props) {
22
22
  const fishjamClient = new FishjamClient({ reconnect: props.reconnect, debug: props.debug, clientType: 'mobile' });
23
23
  return React.createElement(ReactClientFishjamProvider, {
@@ -1,10 +1,11 @@
1
+ import type { MediaStream as RNMediaStream } from '@fishjam-cloud/react-native-webrtc';
1
2
  import { RTCPIPView as OriginalRTCPIPView, RTCView as OriginalRTCView } from '@fishjam-cloud/react-native-webrtc';
2
3
  import type React from 'react';
3
4
  export type RTCVideoViewProps = Omit<React.ComponentPropsWithRef<typeof OriginalRTCView>, 'streamURL'> & {
4
- mediaStream: MediaStream;
5
+ mediaStream: RNMediaStream;
5
6
  };
6
7
  export type RTCPIPViewProps = Omit<React.ComponentPropsWithRef<typeof OriginalRTCPIPView>, 'streamURL'> & {
7
- mediaStream: MediaStream;
8
+ mediaStream: RNMediaStream;
8
9
  };
9
10
  export declare const RTCView: ({ ref, ...props }: RTCVideoViewProps) => import("react/jsx-runtime").JSX.Element;
10
11
  export declare const RTCPIPView: ({ ref, ...props }: RTCPIPViewProps) => import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"RTCView.d.ts","sourceRoot":"","sources":["../../src/overrides/RTCView.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,IAAI,kBAAkB,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAClH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,eAAe,CAAC,EAAE,WAAW,CAAC,GAAG;IACvG,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,kBAAkB,CAAC,EAAE,WAAW,CAAC,GAAG;IACxG,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAeF,eAAO,MAAM,OAAO,GAAI,mBAAmB,iBAAiB,4CAG3D,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,mBAAmB,eAAe,4CAG5D,CAAC"}
1
+ {"version":3,"file":"RTCView.d.ts","sourceRoot":"","sources":["../../src/overrides/RTCView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,IAAI,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACvF,OAAO,EAAE,UAAU,IAAI,kBAAkB,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,oCAAoC,CAAC;AAClH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,eAAe,CAAC,EAAE,WAAW,CAAC,GAAG;IACvG,WAAW,EAAE,aAAa,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,kBAAkB,CAAC,EAAE,WAAW,CAAC,GAAG;IACxG,WAAW,EAAE,aAAa,CAAC;CAC5B,CAAC;AAcF,eAAO,MAAM,OAAO,GAAI,mBAAmB,iBAAiB,4CAG3D,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,mBAAmB,eAAe,4CAG5D,CAAC"}
@@ -2,12 +2,11 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { RTCPIPView as OriginalRTCPIPView, RTCView as OriginalRTCView } from '@fishjam-cloud/react-native-webrtc';
3
3
  import { useMemo } from 'react';
4
4
  const convertMediaStreamToURL = (mediaStream) => {
5
- const rnMediaStream = mediaStream;
6
- if (rnMediaStream && typeof rnMediaStream.toURL === 'function') {
7
- return rnMediaStream.toURL();
5
+ if (mediaStream && typeof mediaStream.toURL === 'function') {
6
+ return mediaStream.toURL();
8
7
  }
9
8
  else {
10
- console.error('mediaStream.toURL is not a function. Make sure to use the MediaStream type from @fishjam-cloud/react-native-webrtc', rnMediaStream);
9
+ console.error('mediaStream.toURL is not a function. Make sure to use the MediaStream type from @fishjam-cloud/react-native-webrtc', mediaStream);
11
10
  return undefined;
12
11
  }
13
12
  };
@@ -0,0 +1,65 @@
1
+ import type { CallKitAction, CallKitConfig, MediaStream as RNMediaStream } from '@fishjam-cloud/react-native-webrtc';
2
+ import type { InitializeDevicesResult, PeerWithTracks, RemoteTrack, UseLivestreamStreamerResult, UseLivestreamViewerResult } from './types';
3
+ export declare function useCamera(): {
4
+ cameraStream: RNMediaStream | null;
5
+ toggleCamera: () => Promise<undefined | import("@fishjam-cloud/react-client").DeviceError>;
6
+ stopCamera: () => void;
7
+ startCamera: (deviceId?: string | null) => Promise<[MediaStreamTrack, null] | [null, import("@fishjam-cloud/react-client").DeviceError]>;
8
+ selectCamera: (deviceId: string) => Promise<undefined | import("@fishjam-cloud/react-client").DeviceError>;
9
+ activeCamera: import("@fishjam-cloud/react-client").DeviceItem | null;
10
+ currentCamera: MediaDeviceInfo | null;
11
+ isCameraOn: boolean;
12
+ currentCameraMiddleware: import("@fishjam-cloud/react-client").TrackMiddleware;
13
+ setCameraTrackMiddleware: (middleware: import("@fishjam-cloud/react-client").TrackMiddleware | null) => Promise<void>;
14
+ cameraDevices: import("@fishjam-cloud/react-client").DeviceItem[];
15
+ cameraDeviceError: import("@fishjam-cloud/react-client").DeviceError | null;
16
+ };
17
+ export declare function useMicrophone(): {
18
+ microphoneStream: RNMediaStream | null;
19
+ toggleMicrophone: () => Promise<undefined | import("@fishjam-cloud/react-client").DeviceError>;
20
+ stopMicrophone: () => void;
21
+ startMicrophone: (deviceId?: string | null) => Promise<[MediaStreamTrack, null] | [null, import("@fishjam-cloud/react-client").DeviceError]>;
22
+ selectMicrophone: (deviceId: string) => Promise<undefined | import("@fishjam-cloud/react-client").DeviceError>;
23
+ activeMicrophone: import("@fishjam-cloud/react-client").DeviceItem | null;
24
+ currentMicrophone: MediaDeviceInfo | null;
25
+ isMicrophoneOn: boolean;
26
+ isMicrophoneMuted: boolean;
27
+ currentMicrophoneMiddleware: import("@fishjam-cloud/react-client").TrackMiddleware;
28
+ setMicrophoneTrackMiddleware: (middleware: import("@fishjam-cloud/react-client").TrackMiddleware | null) => Promise<void>;
29
+ microphoneDevices: import("@fishjam-cloud/react-client").DeviceItem[];
30
+ microphoneDeviceError: import("@fishjam-cloud/react-client").DeviceError | null;
31
+ };
32
+ export declare function useScreenShare(): {
33
+ stream: RNMediaStream | null;
34
+ startStreaming: (props?: {
35
+ audioConstraints?: boolean | MediaTrackConstraints;
36
+ videoConstraints?: boolean | MediaTrackConstraints;
37
+ }) => Promise<void>;
38
+ stopStreaming: () => Promise<void>;
39
+ videoTrack: MediaStreamTrack | null;
40
+ audioTrack: MediaStreamTrack | null;
41
+ currentTracksMiddleware: import("@fishjam-cloud/react-client").TracksMiddleware | null;
42
+ setTracksMiddleware: (middleware: import("@fishjam-cloud/react-client").TracksMiddleware | null) => Promise<void>;
43
+ };
44
+ export declare function useCustomSource<T extends string>(sourceId: T): {
45
+ stream: RNMediaStream | undefined;
46
+ setStream: (newStream: RNMediaStream | null) => Promise<void>;
47
+ };
48
+ export declare function useLivestreamStreamer(): UseLivestreamStreamerResult;
49
+ export declare function useLivestreamViewer(): UseLivestreamViewerResult;
50
+ export declare function useInitializeDevices(): {
51
+ initializeDevices: (...args: Parameters<(settings?: import("@fishjam-cloud/react-client").InitializeDevicesSettings) => Promise<import("@fishjam-cloud/react-client").InitializeDevicesResult>>) => Promise<InitializeDevicesResult>;
52
+ };
53
+ export declare function usePeers<P = Record<string, unknown>, S = Record<string, unknown>>(): {
54
+ localPeer: PeerWithTracks<P, S> | null;
55
+ remotePeers: PeerWithTracks<P, S, RemoteTrack>[];
56
+ peers: PeerWithTracks<P, S, RemoteTrack>[];
57
+ };
58
+ export declare function useCallKit(): {
59
+ startCallKitSession: (config: CallKitConfig) => Promise<void>;
60
+ endCallKitSession: () => Promise<void>;
61
+ getCallKitSessionStatus: () => Promise<boolean>;
62
+ };
63
+ export declare function useCallKitService(config: CallKitConfig): void;
64
+ export declare function useCallKitEvent<T extends keyof CallKitAction>(action: T, callback: (event: CallKitAction[T]) => void): void;
65
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/overrides/hooks.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,IAAI,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAQrH,OAAO,KAAK,EAEV,uBAAuB,EACvB,cAAc,EACd,WAAW,EACX,2BAA2B,EAC3B,yBAAyB,EAC1B,MAAM,SAAS,CAAC;AAEjB,wBAAgB,SAAS;kBAIgB,aAAa,GAAG,IAAI;;;0BAtBzC,CAAC;;;;;;;;;EAwBpB;AAED,wBAAgB,aAAa;sBAIkB,aAAa,GAAG,IAAI;;;8BA9BpC,CAAC;;;;;;;;;;EAgC/B;AAED,wBAAgB,cAAc;YAID,aAAa,GAAG,IAAI;0BAzCX,CAAC;wBACjB,CAAC;wBAEvB,CAAC;;;;;;;EAwCA;AAED,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,QAAQ,EAAE,CAAC;YAIhC,aAAa,GAAG,SAAS;eACnB,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC;EAEpF;AAED,wBAAgB,qBAAqB,IAAI,2BAA2B,CAYnE;AAED,wBAAgB,mBAAmB,IAAI,yBAAyB,CAM/D;AAED,wBAAgB,oBAAoB;uBAGO,CACrC,GAAG,IAAI,EAAE,UAAU,wJAAyB,KACzC,OAAO,CAAC,uBAAuB,CAAC;EAExC;AAED,wBAAgB,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9B;IAC/C,SAAS,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IACvC,WAAW,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC;IACjD,KAAK,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC;CAC5C,CACF;AAED,wBAAgB,UAAU;;;;EAGzB;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,aAAa,QAEtD;AAED,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,QAEpH"}
@@ -0,0 +1,66 @@
1
+ import { useCamera as useCameraReactClient, useCustomSource as useCustomSourceReactClient, useInitializeDevices as useInitializeDevicesReactClient, useLivestreamStreamer as useLivestreamStreamerReactClient, useLivestreamViewer as useLivestreamViewerReactClient, useMicrophone as useMicrophoneReactClient, usePeers as usePeersReactClient, useScreenShare as useScreenShareReactClient, } from '@fishjam-cloud/react-client';
2
+ import { useCallKit as useCallKitRNWebRTC, useCallKitEvent as useCallKitEventRNWebRTC, useCallKitService as useCallKitServiceRNWebRTC, } from '@fishjam-cloud/react-native-webrtc';
3
+ import { useCallback } from 'react';
4
+ export function useCamera() {
5
+ const result = useCameraReactClient();
6
+ return {
7
+ ...result,
8
+ cameraStream: result.cameraStream,
9
+ };
10
+ }
11
+ export function useMicrophone() {
12
+ const { toggleMicrophoneMute: _, ...rest } = useMicrophoneReactClient();
13
+ return {
14
+ ...rest,
15
+ microphoneStream: rest.microphoneStream,
16
+ };
17
+ }
18
+ export function useScreenShare() {
19
+ const result = useScreenShareReactClient();
20
+ return {
21
+ ...result,
22
+ stream: result.stream,
23
+ };
24
+ }
25
+ export function useCustomSource(sourceId) {
26
+ const result = useCustomSourceReactClient(sourceId);
27
+ return {
28
+ ...result,
29
+ stream: result.stream,
30
+ setStream: result.setStream,
31
+ };
32
+ }
33
+ export function useLivestreamStreamer() {
34
+ const { connect: reactConnect, ...rest } = useLivestreamStreamerReactClient();
35
+ const connect = useCallback(async (config, urlOverride) => {
36
+ // @ts-expect-error RNMediaStream is MediaStream at runtime via webrtc polyfill
37
+ await reactConnect(config, urlOverride);
38
+ }, [reactConnect]);
39
+ return { ...rest, connect };
40
+ }
41
+ export function useLivestreamViewer() {
42
+ const { stream, ...rest } = useLivestreamViewerReactClient();
43
+ return {
44
+ ...rest,
45
+ stream: stream,
46
+ };
47
+ }
48
+ export function useInitializeDevices() {
49
+ const { initializeDevices: reactInitDevices } = useInitializeDevicesReactClient();
50
+ return {
51
+ initializeDevices: reactInitDevices,
52
+ };
53
+ }
54
+ export function usePeers() {
55
+ return usePeersReactClient();
56
+ }
57
+ export function useCallKit() {
58
+ const result = useCallKitRNWebRTC();
59
+ return { ...result };
60
+ }
61
+ export function useCallKitService(config) {
62
+ return useCallKitServiceRNWebRTC(config);
63
+ }
64
+ export function useCallKitEvent(action, callback) {
65
+ return useCallKitEventRNWebRTC(action, callback);
66
+ }
@@ -0,0 +1,58 @@
1
+ import type { CustomSource as ReactClientCustomSource, InitializeDevicesResult as ReactClientInitializeDevicesResult, PeerWithTracks as ReactClientPeerWithTracks, RemoteTrack as ReactClientRemoteTrack, Track as ReactClientTrack, useCamera as useCameraReactClient, useCustomSource as useCustomSourceReactClient, useInitializeDevices as useInitializeDevicesReactClient, UseLivestreamStreamerResult as ReactClientUseLivestreamStreamerResult, UseLivestreamViewerResult as ReactClientUseLivestreamViewerResult, useMicrophone as useMicrophoneReactClient, useScreenShare as useScreenShareReactClient } from '@fishjam-cloud/react-client';
2
+ import type { MediaStream as RNMediaStream } from '@fishjam-cloud/react-native-webrtc';
3
+ export type StreamerInputs = {
4
+ video: RNMediaStream;
5
+ audio?: RNMediaStream | null;
6
+ } | {
7
+ video?: null;
8
+ audio: RNMediaStream;
9
+ };
10
+ export type ConnectStreamerConfig = {
11
+ inputs: StreamerInputs;
12
+ token: string;
13
+ };
14
+ export type UseLivestreamStreamerResult = Omit<ReactClientUseLivestreamStreamerResult, 'connect'> & {
15
+ connect: (config: ConnectStreamerConfig, urlOverride?: string) => Promise<void>;
16
+ };
17
+ export type UseLivestreamViewerResult = Omit<ReactClientUseLivestreamViewerResult, 'stream'> & {
18
+ stream: RNMediaStream | null;
19
+ };
20
+ export type UseCameraResult = Omit<ReturnType<typeof useCameraReactClient>, 'cameraStream'> & {
21
+ cameraStream: RNMediaStream | null;
22
+ };
23
+ export type UseMicrophoneResult = Omit<ReturnType<typeof useMicrophoneReactClient>, 'toggleMicrophoneMute' | 'microphoneStream'> & {
24
+ microphoneStream: RNMediaStream | null;
25
+ };
26
+ export type UseScreenShareResult = Omit<ReturnType<typeof useScreenShareReactClient>, 'stream'> & {
27
+ stream: RNMediaStream | null;
28
+ };
29
+ export type UseCustomSourceResult = Omit<ReturnType<typeof useCustomSourceReactClient>, 'stream' | 'setStream'> & {
30
+ stream: RNMediaStream | undefined;
31
+ setStream: (newStream: RNMediaStream | null) => Promise<void>;
32
+ };
33
+ export type UseInitializeDevicesReturn = {
34
+ initializeDevices: (...args: Parameters<ReturnType<typeof useInitializeDevicesReactClient>['initializeDevices']>) => Promise<InitializeDevicesResult>;
35
+ };
36
+ export type Track = Omit<ReactClientTrack, 'stream'> & {
37
+ stream: RNMediaStream | null;
38
+ };
39
+ export type RemoteTrack = Omit<ReactClientRemoteTrack, 'stream'> & {
40
+ stream: RNMediaStream | null;
41
+ };
42
+ export type CustomSource<T extends string> = Omit<ReactClientCustomSource<T>, 'stream'> & {
43
+ stream?: RNMediaStream;
44
+ };
45
+ export type InitializeDevicesResult = Omit<ReactClientInitializeDevicesResult, 'stream'> & {
46
+ stream: RNMediaStream | null;
47
+ };
48
+ export type TrackFields = 'tracks' | 'cameraTrack' | 'microphoneTrack' | 'screenShareVideoTrack' | 'screenShareAudioTrack' | 'customVideoTracks' | 'customAudioTracks';
49
+ export type PeerWithTracks<P, S, T extends Track = Track> = Omit<ReactClientPeerWithTracks<P, S>, TrackFields> & {
50
+ tracks: T[];
51
+ cameraTrack?: T;
52
+ microphoneTrack?: T;
53
+ screenShareVideoTrack?: T;
54
+ screenShareAudioTrack?: T;
55
+ customVideoTracks: T[];
56
+ customAudioTracks: T[];
57
+ };
58
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/overrides/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -1,9 +1,7 @@
1
1
  import 'fast-text-encoding';
2
2
  import 'react-native-get-random-values';
3
3
  import 'react-native-url-polyfill/auto';
4
- import { registerGlobals } from '@fishjam-cloud/react-native-webrtc';
5
- // @ts-ignore - event-target-shim types not properly exported via package.json exports
6
- import { EventTarget } from 'event-target-shim';
4
+ import { EventTarget, registerGlobals } from '@fishjam-cloud/react-native-webrtc';
7
5
  import { patchGetUserMediaWithPermissionWarnings } from './overrides/getUserMedia';
8
6
  import { RTCPeerConnection } from './overrides/RTCPeerConnection';
9
7
  import { LocalStoragePolyfill } from './polyfills/local-storage';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fishjam-cloud/react-native-client",
3
- "version": "0.26.0-rc.0",
3
+ "version": "0.26.0",
4
4
  "description": "React Native client library for Fishjam",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Fishjam Team",
@@ -40,21 +40,22 @@
40
40
  ]
41
41
  },
42
42
  "peerDependencies": {
43
- "@fishjam-cloud/react-native-webrtc": "0.25.6",
43
+ "@fishjam-cloud/react-native-webrtc": "0.25.8",
44
44
  "expo": "*",
45
45
  "react": "*",
46
46
  "react-native": "*",
47
47
  "react-native-get-random-values": "1.11.0"
48
48
  },
49
49
  "dependencies": {
50
- "@fishjam-cloud/react-client": "0.26.0-rc.0",
51
- "@fishjam-cloud/react-native-webrtc": "0.25.6",
50
+ "@fishjam-cloud/react-client": "0.26.0",
51
+ "@fishjam-cloud/react-native-webrtc": "0.25.8",
52
52
  "fast-text-encoding": "1.0.6",
53
53
  "react-native-get-random-values": "1.11.0",
54
54
  "react-native-url-polyfill": "3.0.0"
55
55
  },
56
56
  "devDependencies": {
57
57
  "eslint-config-expo": "~9.2.0",
58
+ "eslint-import-resolver-typescript": "^3.10.1",
58
59
  "eslint-plugin-prettier": "^5.5.1",
59
60
  "expo-module-scripts": "^55.0.2",
60
61
  "typescript": "^5.8.3"