@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,5 +1,6 @@
1
- import type { DeviceManagerConfig, DeviceState, MediaManager, StorageConfig, DeviceError, DeviceManagerStatus } from "./types";
1
+ import type { DeviceState, MediaManager, DeviceError, DeviceManagerStatus } from "./types/internal";
2
2
  import type TypedEmitter from "typed-emitter";
3
+ import type { PersistLastDeviceHandlers } from "./types/public";
3
4
  export type DeviceManagerEvents = {
4
5
  managerStarted: (event: DeviceState & {
5
6
  constraints: MediaTrackConstraints | undefined;
@@ -20,18 +21,24 @@ export type DeviceManagerEvents = {
20
21
  deviceDisabled: (state: DeviceState) => void;
21
22
  error: (event: any, state: DeviceState) => void;
22
23
  };
24
+ export type DeviceManagerConfig = {
25
+ deviceType: "audio" | "video";
26
+ defaultConstraints: MediaTrackConstraints;
27
+ userConstraints?: boolean | MediaTrackConstraints;
28
+ storage?: boolean | PersistLastDeviceHandlers;
29
+ };
23
30
  declare const DeviceManager_base: new () => TypedEmitter<DeviceManagerEvents>;
24
31
  export declare class DeviceManager extends DeviceManager_base implements MediaManager {
25
- private constraints;
26
- private storageConfig;
32
+ private readonly constraints;
33
+ private readonly storageConfig;
27
34
  private status;
28
35
  private readonly deviceType;
29
36
  deviceState: DeviceState;
30
- constructor(deviceType: "audio" | "video", defaultConfig?: DeviceManagerConfig);
37
+ constructor({ deviceType, storage, userConstraints, defaultConstraints }: DeviceManagerConfig);
31
38
  private createStorageConfig;
32
39
  getStatus(): DeviceManagerStatus;
33
- getConstraints(currentConstraints: boolean | MediaTrackConstraints | undefined): MediaTrackConstraints | undefined;
34
- getMedia: () => import("./types").Media | null;
40
+ getConstraints(): MediaTrackConstraints | boolean;
41
+ getMedia: () => import("./types/internal").Media | null;
35
42
  getTracks: () => MediaStreamTrack[];
36
43
  initialize: (stream: MediaStream | null, track: MediaStreamTrack | null, devices: MediaDeviceInfo[], requestedMedia: boolean, error?: DeviceError | null) => DeviceState;
37
44
  private setupOnEndedCallback;
@@ -43,7 +50,6 @@ export declare class DeviceManager extends DeviceManager_base implements MediaMa
43
50
  disable(): void;
44
51
  enable(): void;
45
52
  getDeviceType: () => "audio" | "video";
46
- setConfig(storage?: boolean | StorageConfig, constraints?: boolean | MediaTrackConstraints): void;
47
53
  }
48
54
  export {};
49
55
  //# sourceMappingURL=DeviceManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DeviceManager.d.ts","sourceRoot":"","sources":["../src/DeviceManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,WAAW,EACX,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAKjB,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAI9C,MAAM,MAAM,mBAAmB,GAAG;IAChC,cAAc,EAAE,CACd,KAAK,EAAE,WAAW,GAAG;QACnB,WAAW,EAAE,qBAAqB,GAAG,SAAS,CAAC;KAChD,EACD,KAAK,EAAE,WAAW,KACf,IAAI,CAAC;IACV,kBAAkB,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACjD,cAAc,EAAE,CACd,KAAK,EAAE;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAA;KAAE,EAC7E,KAAK,EAAE,WAAW,KACf,IAAI,CAAC;IACV,WAAW,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,WAAW,CAAA;KAAE,EAAE,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC1E,YAAY,EAAE,CAAC,KAAK,EAAE,WAAW,GAAG;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,EAAE,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACxF,aAAa,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC5C,aAAa,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC5C,cAAc,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAE7C,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;CACjD,CAAC;4CAGmC,YAAY,CAAC,mBAAmB,CAAC;AADtE,qBAAa,aACX,SAAQ,kBACR,YAAW,YAAY;IAEvB,OAAO,CAAC,WAAW,CAAoC;IACvD,OAAO,CAAC,aAAa,CAAuB;IAE5C,OAAO,CAAC,MAAM,CAAwC;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAExC,WAAW,EAAE,WAAW,CAM7B;gBAEU,UAAU,EAAE,OAAO,GAAG,OAAO,EAAE,aAAa,CAAC,EAAE,mBAAmB;IAO9E,OAAO,CAAC,mBAAmB;IAMpB,SAAS,IAAI,mBAAmB;IAIhC,cAAc,CACnB,kBAAkB,EAAE,OAAO,GAAG,qBAAqB,GAAG,SAAS,GAC9D,qBAAqB,GAAG,SAAS;IAO7B,QAAQ,uCAAgC;IAExC,SAAS,2BAMd;IAEK,UAAU,WACP,WAAW,GAAG,IAAI,SACnB,gBAAgB,GAAG,IAAI,WACrB,eAAe,EAAE,kBACV,OAAO,UAChB,WAAW,GAAG,IAAI,iBAazB;IAEF,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,YAAY,CAIlB;IAEK,aAAa,IAAI,eAAe,GAAG,IAAI;IAI9C,OAAO,CAAC,cAAc;IAKT,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM;IAkFvB,IAAI;IAOV,OAAO;IAWP,MAAM;IAWN,aAAa,0BAElB;IAEK,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,aAAa,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,qBAAqB;CAIlG"}
1
+ {"version":3,"file":"DeviceManager.d.ts","sourceRoot":"","sources":["../src/DeviceManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAKpG,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAG9C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAEhE,MAAM,MAAM,mBAAmB,GAAG;IAChC,cAAc,EAAE,CACd,KAAK,EAAE,WAAW,GAAG;QACnB,WAAW,EAAE,qBAAqB,GAAG,SAAS,CAAC;KAChD,EACD,KAAK,EAAE,WAAW,KACf,IAAI,CAAC;IACV,kBAAkB,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACjD,cAAc,EAAE,CACd,KAAK,EAAE;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAA;KAAE,EAC7E,KAAK,EAAE,WAAW,KACf,IAAI,CAAC;IACV,WAAW,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,WAAW,CAAA;KAAE,EAAE,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC1E,YAAY,EAAE,CAAC,KAAK,EAAE,WAAW,GAAG;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,EAAE,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACxF,aAAa,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC5C,aAAa,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC5C,cAAc,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAE7C,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC;IAC9B,kBAAkB,EAAE,qBAAqB,CAAC;IAC1C,eAAe,CAAC,EAAE,OAAO,GAAG,qBAAqB,CAAC;IAClD,OAAO,CAAC,EAAE,OAAO,GAAG,yBAAyB,CAAC;CAC/C,CAAC;4CAGmC,YAAY,CAAC,mBAAmB,CAAC;AADtE,qBAAa,aACX,SAAQ,kBACR,YAAW,YAAY;IAEvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkC;IAC9D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmC;IAEjE,OAAO,CAAC,MAAM,CAAwC;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAExC,WAAW,EAAE,WAAW,CAM7B;gBAEU,EAAE,UAAU,EAAE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,EAAE,mBAAmB;IAO7F,OAAO,CAAC,mBAAmB;IASpB,SAAS,IAAI,mBAAmB;IAIhC,cAAc,IAAI,qBAAqB,GAAG,OAAO;IAIjD,QAAQ,gDAAgC;IAExC,SAAS,2BAMd;IAEK,UAAU,WACP,WAAW,GAAG,IAAI,SACnB,gBAAgB,GAAG,IAAI,WACrB,eAAe,EAAE,kBACV,OAAO,UAChB,WAAW,GAAG,IAAI,iBAazB;IAEF,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,YAAY,CAIlB;IAEK,aAAa,IAAI,eAAe,GAAG,IAAI;IAI9C,OAAO,CAAC,cAAc;IAIT,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM;IAgFvB,IAAI;IAOV,OAAO;IAWP,MAAM;IAWN,aAAa,0BAElB;CACH"}
@@ -1,4 +1,4 @@
1
- import { prepareMediaTrackConstraints, toMediaTrackConstraints } from "./constraints";
1
+ import { prepareMediaTrackConstraints } from "./constraints";
2
2
  import EventEmitter from "events";
3
3
  import { getDeviceInfo, getLocalStorageConfig, prepareDeviceState } from "./utils/media";
4
4
  import { parseUserMediaError } from "./utils/errors";
@@ -14,11 +14,11 @@ export class DeviceManager extends EventEmitter {
14
14
  devicesStatus: "Not requested",
15
15
  error: null,
16
16
  };
17
- constructor(deviceType, defaultConfig) {
17
+ constructor({ deviceType, storage, userConstraints, defaultConstraints }) {
18
18
  super();
19
- this.storageConfig = this.createStorageConfig(deviceType, defaultConfig?.storage);
19
+ this.storageConfig = this.createStorageConfig(deviceType, storage);
20
20
  this.deviceType = deviceType;
21
- this.constraints = toMediaTrackConstraints(defaultConfig?.trackConstraints ?? true);
21
+ this.constraints = userConstraints ?? defaultConstraints;
22
22
  }
23
23
  createStorageConfig(deviceType, storage) {
24
24
  if (storage === false)
@@ -30,12 +30,8 @@ export class DeviceManager extends EventEmitter {
30
30
  getStatus() {
31
31
  return this.status;
32
32
  }
33
- getConstraints(currentConstraints) {
34
- if (currentConstraints === false)
35
- return undefined;
36
- if (currentConstraints === undefined || currentConstraints === true)
37
- return this.constraints;
38
- return currentConstraints ?? this.constraints;
33
+ getConstraints() {
34
+ return this.constraints;
39
35
  }
40
36
  getMedia = () => this.deviceState.media;
41
37
  getTracks = () => {
@@ -69,8 +65,6 @@ export class DeviceManager extends EventEmitter {
69
65
  return this.storageConfig?.getLastDevice?.() ?? null;
70
66
  }
71
67
  saveLastDevice(info) {
72
- if (!this.storageConfig)
73
- console.warn("Device manager storage has been disabled");
74
68
  this.storageConfig?.saveLastDevice(info);
75
69
  }
76
70
  async start(deviceId) {
@@ -79,8 +73,7 @@ export class DeviceManager extends EventEmitter {
79
73
  const shouldReplaceDevice = Boolean(currentDeviceId && currentDeviceId !== newDeviceId);
80
74
  const isDeviceStopped = currentDeviceId === undefined;
81
75
  const shouldProceed = isDeviceStopped || shouldReplaceDevice;
82
- const trackConstraints = this.constraints;
83
- const exactConstraints = shouldProceed && prepareMediaTrackConstraints(newDeviceId, trackConstraints);
76
+ const exactConstraints = shouldProceed && prepareMediaTrackConstraints(newDeviceId, this.constraints);
84
77
  if (!exactConstraints)
85
78
  return;
86
79
  this.deviceState.mediaStatus = "Requesting";
@@ -158,8 +151,4 @@ export class DeviceManager extends EventEmitter {
158
151
  getDeviceType = () => {
159
152
  return this.deviceType;
160
153
  };
161
- setConfig(storage, constraints) {
162
- this.storageConfig = this.createStorageConfig(this.deviceType, storage);
163
- this.constraints = constraints ? toMediaTrackConstraints(constraints) : undefined;
164
- }
165
154
  }
@@ -1,7 +1,6 @@
1
1
  export declare const AUDIO_TRACK_CONSTRAINTS: MediaTrackConstraints;
2
2
  export declare const VIDEO_TRACK_CONSTRAINTS: MediaTrackConstraints;
3
3
  export declare const SCREEN_SHARING_MEDIA_CONSTRAINTS: MediaStreamConstraints;
4
- export declare const toMediaTrackConstraints: (constraint?: boolean | MediaTrackConstraints) => MediaTrackConstraints | undefined;
5
- export declare const prepareMediaTrackConstraints: (deviceId: string | undefined, constraints: MediaTrackConstraints | undefined) => MediaTrackConstraints | boolean;
6
- export declare const prepareConstraints: (deviceIdToStart: string | undefined, constraints: MediaTrackConstraints | undefined) => MediaTrackConstraints | undefined;
4
+ export declare const prepareMediaTrackConstraints: (deviceId: string | undefined, constraints: MediaTrackConstraints | undefined | boolean) => MediaTrackConstraints | boolean;
5
+ export declare const prepareConstraints: (deviceIdToStart: string | undefined, constraints: MediaTrackConstraints | undefined | boolean) => MediaTrackConstraints | undefined | boolean;
7
6
  //# sourceMappingURL=constraints.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constraints.d.ts","sourceRoot":"","sources":["../src/constraints.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,EAAE,qBAErC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,qBAerC,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,sBAM9C,CAAC;AAEF,eAAO,MAAM,uBAAuB,gBACrB,OAAO,GAAG,qBAAqB,KAC3C,qBAAqB,GAAG,SAK1B,CAAC;AAEF,eAAO,MAAM,4BAA4B,aAC7B,MAAM,GAAG,SAAS,eACf,qBAAqB,GAAG,SAAS,KAC7C,qBAAqB,GAAG,OAI1B,CAAC;AAEF,eAAO,MAAM,kBAAkB,oBACZ,MAAM,GAAG,SAAS,eACtB,qBAAqB,GAAG,SAAS,KAC7C,qBAAqB,GAAG,SAI1B,CAAC"}
1
+ {"version":3,"file":"constraints.d.ts","sourceRoot":"","sources":["../src/constraints.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,EAAE,qBAErC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,qBAerC,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,sBAM9C,CAAC;AAEF,eAAO,MAAM,4BAA4B,aAC7B,MAAM,GAAG,SAAS,eACf,qBAAqB,GAAG,SAAS,GAAG,OAAO,KACvD,qBAAqB,GAAG,OAM1B,CAAC;AAEF,eAAO,MAAM,kBAAkB,oBACZ,MAAM,GAAG,SAAS,eACtB,qBAAqB,GAAG,SAAS,GAAG,OAAO,KACvD,qBAAqB,GAAG,SAAS,GAAG,OAUtC,CAAC"}
@@ -24,20 +24,19 @@ export const SCREEN_SHARING_MEDIA_CONSTRAINTS = {
24
24
  height: { max: 1080, ideal: 1080 },
25
25
  },
26
26
  };
27
- export const toMediaTrackConstraints = (constraint) => {
28
- if (typeof constraint === "boolean") {
29
- return constraint ? {} : undefined;
30
- }
31
- return constraint;
32
- };
33
27
  export const prepareMediaTrackConstraints = (deviceId, constraints) => {
28
+ const trackConstraints = typeof constraints === "boolean" ? {} : constraints;
34
29
  if (!deviceId)
35
- return { ...constraints };
36
- const exactId = deviceId ? { deviceId: { exact: deviceId } } : {};
37
- return { ...constraints, ...exactId };
30
+ return { ...trackConstraints };
31
+ return { ...trackConstraints, deviceId: { exact: deviceId } };
38
32
  };
39
33
  export const prepareConstraints = (deviceIdToStart, constraints) => {
40
34
  if (!deviceIdToStart)
41
35
  return constraints;
42
- return { ...constraints, deviceId: { ideal: deviceIdToStart } };
36
+ // The resulting stream will not contain a track of this type,
37
+ // which means that the device will not be activated.
38
+ if (constraints === false)
39
+ return false;
40
+ const constraintsObj = constraints === true ? {} : constraints;
41
+ return { ...constraintsObj, deviceId: { ideal: deviceIdToStart } };
43
42
  };
@@ -1,12 +1,14 @@
1
1
  import { type PropsWithChildren } from "react";
2
- import type { DeviceManagerConfig } from "./types";
3
2
  import { type ReconnectConfig } from "@fishjam-cloud/ts-client";
3
+ import type { PersistLastDeviceHandlers } from "./types/public";
4
4
  interface FishjamProviderProps extends PropsWithChildren {
5
- config?: {
6
- reconnect?: ReconnectConfig | boolean;
7
- };
8
- deviceManagerDefaultConfig?: DeviceManagerConfig;
5
+ reconnect?: ReconnectConfig | boolean;
6
+ constraints?: Pick<MediaStreamConstraints, "audio" | "video">;
7
+ persistLastDevice?: boolean | PersistLastDeviceHandlers;
9
8
  }
10
- export declare function FishjamProvider({ children, config, deviceManagerDefaultConfig }: FishjamProviderProps): import("react/jsx-runtime").JSX.Element;
9
+ /**
10
+ * @category Components
11
+ */
12
+ export declare function FishjamProvider({ children, reconnect, constraints, persistLastDevice }: FishjamProviderProps): import("react/jsx-runtime").JSX.Element;
11
13
  export {};
12
14
  //# sourceMappingURL=fishjamProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fishjamProvider.d.ts","sourceRoot":"","sources":["../src/fishjamProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAEjE,OAAO,KAAK,EAAE,mBAAmB,EAAiD,MAAM,SAAS,CAAC;AAClG,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAO/E,UAAU,oBAAqB,SAAQ,iBAAiB;IACtD,MAAM,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,eAAe,GAAG,OAAO,CAAA;KAAE,CAAC;IACnD,0BAA0B,CAAC,EAAE,mBAAmB,CAAC;CAClD;AAED,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,0BAA0B,EAAE,EAAE,oBAAoB,2CAqCrG"}
1
+ {"version":3,"file":"fishjamProvider.d.ts","sourceRoot":"","sources":["../src/fishjamProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAGjE,OAAO,EAAiB,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAO/E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAEhE,UAAU,oBAAqB,SAAQ,iBAAiB;IACtD,SAAS,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC;IACtC,WAAW,CAAC,EAAE,IAAI,CAAC,sBAAsB,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC;IAC9D,iBAAiB,CAAC,EAAE,OAAO,GAAG,yBAAyB,CAAC;CACzD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,EAAE,oBAAoB,2CAsD5G"}
@@ -4,24 +4,39 @@ import { useTrackManager } from "./hooks/useTrackManager";
4
4
  import { FishjamClient } from "@fishjam-cloud/ts-client";
5
5
  import { FishjamContext } from "./hooks/useFishjamContext";
6
6
  import { DeviceManager } from "./DeviceManager";
7
- import { useParticipantStatus } from "./hooks/useParticipantStatus";
7
+ import { usePeerStatus } from "./hooks/usePeerStatus";
8
8
  import { useFishjamClientState } from "./hooks/useFishjamClientState";
9
- export function FishjamProvider({ children, config, deviceManagerDefaultConfig }) {
10
- const fishjamClientRef = useRef(new FishjamClient(config));
9
+ import { AUDIO_TRACK_CONSTRAINTS, VIDEO_TRACK_CONSTRAINTS } from "./constraints";
10
+ /**
11
+ * @category Components
12
+ */
13
+ export function FishjamProvider({ children, reconnect, constraints, persistLastDevice }) {
14
+ const fishjamClientRef = useRef(new FishjamClient({ reconnect }));
11
15
  const hasDevicesBeenInitializedRef = useRef(false);
12
- const videoDeviceManagerRef = useRef(new DeviceManager("video", deviceManagerDefaultConfig));
13
- const audioDeviceManagerRef = useRef(new DeviceManager("audio", deviceManagerDefaultConfig));
16
+ const storage = persistLastDevice;
17
+ const videoDeviceManagerRef = useRef(new DeviceManager({
18
+ deviceType: "video",
19
+ defaultConstraints: VIDEO_TRACK_CONSTRAINTS,
20
+ userConstraints: constraints?.video,
21
+ storage,
22
+ }));
23
+ const audioDeviceManagerRef = useRef(new DeviceManager({
24
+ deviceType: "audio",
25
+ defaultConstraints: AUDIO_TRACK_CONSTRAINTS,
26
+ userConstraints: constraints?.audio,
27
+ storage,
28
+ }));
14
29
  const screenShareState = useState({ stream: null, trackIds: null });
15
- const { peerStatus, getCurrentParticipantStatus } = useParticipantStatus(fishjamClientRef.current);
30
+ const { peerStatus, getCurrentPeerStatus } = usePeerStatus(fishjamClientRef.current);
16
31
  const videoTrackManager = useTrackManager({
17
32
  mediaManager: videoDeviceManagerRef.current,
18
33
  tsClient: fishjamClientRef.current,
19
- getCurrentParticipantStatus,
34
+ getCurrentPeerStatus,
20
35
  });
21
36
  const audioTrackManager = useTrackManager({
22
37
  mediaManager: audioDeviceManagerRef.current,
23
38
  tsClient: fishjamClientRef.current,
24
- getCurrentParticipantStatus,
39
+ getCurrentPeerStatus,
25
40
  });
26
41
  const clientState = useFishjamClientState(fishjamClientRef.current);
27
42
  const context = {
@@ -1,2 +1,6 @@
1
- export declare const useAudioDeviceManager: () => import("../../types").DeviceManagerState;
1
+ /**
2
+ *
3
+ * @category Devices
4
+ */
5
+ export declare const useAudioDeviceManager: () => import("../../types/internal").DeviceManagerState;
2
6
  //# sourceMappingURL=useAudioDeviceManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useAudioDeviceManager.d.ts","sourceRoot":"","sources":["../../../src/hooks/deviceManagers/useAudioDeviceManager.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qBAAqB,gDAKjC,CAAC"}
1
+ {"version":3,"file":"useAudioDeviceManager.d.ts","sourceRoot":"","sources":["../../../src/hooks/deviceManagers/useAudioDeviceManager.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,qBAAqB,yDAKjC,CAAC"}
@@ -1,5 +1,9 @@
1
1
  import { useFishjamContext } from "../useFishjamContext";
2
2
  import { useDeviceManager } from "./useDeviceManager";
3
+ /**
4
+ *
5
+ * @category Devices
6
+ */
3
7
  export const useAudioDeviceManager = () => {
4
8
  const { audioDeviceManagerRef } = useFishjamContext();
5
9
  const audioDeviceState = useDeviceManager(audioDeviceManagerRef.current);
@@ -1,4 +1,4 @@
1
- import type { DeviceManagerState } from "../../types";
1
+ import type { DeviceManagerState } from "../../types/internal";
2
2
  import type { DeviceManager } from "../../DeviceManager";
3
3
  export declare const useDeviceManager: (deviceManager: DeviceManager) => DeviceManagerState;
4
4
  //# sourceMappingURL=useDeviceManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDeviceManager.d.ts","sourceRoot":"","sources":["../../../src/hooks/deviceManagers/useDeviceManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAuB,MAAM,qBAAqB,CAAC;AAc9E,eAAO,MAAM,gBAAgB,kBAAmB,aAAa,uBAoC5D,CAAC"}
1
+ {"version":3,"file":"useDeviceManager.d.ts","sourceRoot":"","sources":["../../../src/hooks/deviceManagers/useDeviceManager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAuB,MAAM,qBAAqB,CAAC;AAc9E,eAAO,MAAM,gBAAgB,kBAAmB,aAAa,uBAoC5D,CAAC"}
@@ -1,2 +1,6 @@
1
- export declare const useVideoDeviceManager: () => import("../../types").DeviceManagerState;
1
+ /**
2
+ *
3
+ * @category Devices
4
+ */
5
+ export declare const useVideoDeviceManager: () => import("../../types/internal").DeviceManagerState;
2
6
  //# sourceMappingURL=useVideoDeviceManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useVideoDeviceManager.d.ts","sourceRoot":"","sources":["../../../src/hooks/deviceManagers/useVideoDeviceManager.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,qBAAqB,gDAKjC,CAAC"}
1
+ {"version":3,"file":"useVideoDeviceManager.d.ts","sourceRoot":"","sources":["../../../src/hooks/deviceManagers/useVideoDeviceManager.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,qBAAqB,yDAIjC,CAAC"}
@@ -1,5 +1,9 @@
1
1
  import { useFishjamContext } from "../useFishjamContext";
2
2
  import { useDeviceManager } from "./useDeviceManager";
3
+ /**
4
+ *
5
+ * @category Devices
6
+ */
3
7
  export const useVideoDeviceManager = () => {
4
8
  const { videoDeviceManagerRef } = useFishjamContext();
5
9
  const videoDeviceState = useDeviceManager(videoDeviceManagerRef.current);
@@ -1,9 +1,7 @@
1
1
  export { useConnect, useDisconnect } from "./useConnection";
2
2
  export { useReconnection } from "./useReconnection";
3
3
  export { useCamera, useMicrophone, useInitializeDevices } from "./useDevices";
4
- export { useParticipants } from "./useParticipants";
4
+ export { usePeers } from "./usePeers";
5
5
  export { useScreenShare } from "./useScreenShare";
6
6
  export { useStatus } from "./useStatus";
7
- export { useAudioDeviceManager } from "./deviceManagers/useAudioDeviceManager";
8
- export { useVideoDeviceManager } from "./deviceManagers/useVideoDeviceManager";
9
7
  //# sourceMappingURL=public.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/hooks/public.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC"}
1
+ {"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/hooks/public.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
@@ -1,8 +1,6 @@
1
1
  export { useConnect, useDisconnect } from "./useConnection";
2
2
  export { useReconnection } from "./useReconnection";
3
3
  export { useCamera, useMicrophone, useInitializeDevices } from "./useDevices";
4
- export { useParticipants } from "./useParticipants";
4
+ export { usePeers } from "./usePeers";
5
5
  export { useScreenShare } from "./useScreenShare";
6
6
  export { useStatus } from "./useStatus";
7
- export { useAudioDeviceManager } from "./deviceManagers/useAudioDeviceManager";
8
- export { useVideoDeviceManager } from "./deviceManagers/useVideoDeviceManager";
@@ -1,4 +1,12 @@
1
- import type { UseConnect } from "../types";
2
- export declare function useConnect(): UseConnect;
1
+ import type { ConnectConfig } from "../types/public";
2
+ /**
3
+ *
4
+ * @category Connection
5
+ */
6
+ export declare function useConnect(): (config: ConnectConfig) => Promise<void>;
7
+ /**
8
+ *
9
+ * @category Connection
10
+ */
3
11
  export declare function useDisconnect(): () => void;
4
12
  //# 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,EAAiB,UAAU,EAAE,MAAM,UAAU,CAAC;AAI1D,wBAAgB,UAAU,IAAI,UAAU,CAOvC;AAED,wBAAgB,aAAa,eAM5B"}
1
+ {"version":3,"file":"useConnection.d.ts","sourceRoot":"","sources":["../../src/hooks/useConnection.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD;;;GAGG;AACH,wBAAgB,UAAU,IAAI,CAAC,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAIrE;AAED;;;GAGG;AACH,wBAAgB,aAAa,eAM5B"}
@@ -1,9 +1,17 @@
1
1
  import { useCallback } from "react";
2
2
  import { useFishjamContext } from "./useFishjamContext";
3
+ /**
4
+ *
5
+ * @category Connection
6
+ */
3
7
  export function useConnect() {
4
8
  const client = useFishjamContext().fishjamClientRef.current;
5
9
  return useCallback((config) => client.connect({ ...config, peerMetadata: config.peerMetadata ?? {} }), [client]);
6
10
  }
11
+ /**
12
+ *
13
+ * @category Connection
14
+ */
7
15
  export function useDisconnect() {
8
16
  const client = useFishjamContext().fishjamClientRef.current;
9
17
  return useCallback(() => {
@@ -1,6 +1,18 @@
1
- import type { AudioDevice, Device } from "../types";
1
+ import type { AudioDevice, Device } from "../types/public";
2
+ /**
3
+ *
4
+ * @category Devices
5
+ */
2
6
  export declare function useCamera(): Device;
7
+ /**
8
+ *
9
+ * @category Devices
10
+ */
3
11
  export declare function useMicrophone(): AudioDevice;
12
+ /**
13
+ *
14
+ * @category Devices
15
+ */
4
16
  export declare const useInitializeDevices: () => {
5
17
  initializeDevices: () => Promise<void>;
6
18
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useDevices.d.ts","sourceRoot":"","sources":["../../src/hooks/useDevices.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAQpD,wBAAgB,SAAS,IAAI,MAAM,CAuBlC;AAED,wBAAgB,aAAa,IAAI,WAAW,CA0B3C;AAED,eAAO,MAAM,oBAAoB;;CAqDhC,CAAC"}
1
+ {"version":3,"file":"useDevices.d.ts","sourceRoot":"","sources":["../../src/hooks/useDevices.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE3D;;;GAGG;AACH,wBAAgB,SAAS,IAAI,MAAM,CAuBlC;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,WAAW,CA2B3C;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;CAqDhC,CAAC"}
@@ -5,9 +5,13 @@ import { useCallback } from "react";
5
5
  import { getAvailableMedia, getCorrectedResult } from "../mediaInitializer";
6
6
  import { useProcessedPreviewStream } from "./useProcessedPreviewStream";
7
7
  import { prepareConstraints } from "../constraints";
8
+ /**
9
+ *
10
+ * @category Devices
11
+ */
8
12
  export function useCamera() {
9
13
  const { videoTrackManager } = useFishjamContext();
10
- const { deviceState } = useVideoDeviceManager();
14
+ const { deviceState, status } = useVideoDeviceManager();
11
15
  const { currentTrack, ...trackManager } = videoTrackManager;
12
16
  const processedPreviewStream = useProcessedPreviewStream(videoTrackManager, deviceState.media?.track);
13
17
  const stream = currentTrack?.stream ?? processedPreviewStream ?? deviceState.media?.stream ?? null;
@@ -18,6 +22,7 @@ export function useCamera() {
18
22
  const activeDevice = deviceState.media?.deviceInfo ?? null;
19
23
  return {
20
24
  ...trackManager,
25
+ status,
21
26
  stream,
22
27
  devices,
23
28
  activeDevice,
@@ -26,9 +31,13 @@ export function useCamera() {
26
31
  trackId,
27
32
  };
28
33
  }
34
+ /**
35
+ *
36
+ * @category Devices
37
+ */
29
38
  export function useMicrophone() {
30
39
  const { audioTrackManager } = useFishjamContext();
31
- const { deviceState } = useAudioDeviceManager();
40
+ const { deviceState, status } = useAudioDeviceManager();
32
41
  const { currentTrack, ...trackManager } = audioTrackManager;
33
42
  const processedPreviewStream = useProcessedPreviewStream(audioTrackManager, deviceState.media?.track);
34
43
  const stream = currentTrack?.stream ?? processedPreviewStream ?? deviceState.media?.stream ?? null;
@@ -40,6 +49,7 @@ export function useMicrophone() {
40
49
  const isAudioPlaying = currentTrack?.vadStatus === "speech";
41
50
  return {
42
51
  ...trackManager,
52
+ status,
43
53
  stream,
44
54
  isStreaming,
45
55
  track,
@@ -49,6 +59,10 @@ export function useMicrophone() {
49
59
  isAudioPlaying,
50
60
  };
51
61
  }
62
+ /**
63
+ *
64
+ * @category Devices
65
+ */
52
66
  export const useInitializeDevices = () => {
53
67
  const { videoDeviceManagerRef, audioDeviceManagerRef, hasDevicesBeenInitializedRef } = useFishjamContext();
54
68
  const initializeDevices = useCallback(async () => {
@@ -58,8 +72,8 @@ export const useInitializeDevices = () => {
58
72
  const videoManager = videoDeviceManagerRef.current;
59
73
  const audioManager = audioDeviceManagerRef.current;
60
74
  const constraints = {
61
- video: videoManager.getConstraints(true),
62
- audio: audioManager.getConstraints(true),
75
+ video: videoManager.getConstraints(),
76
+ audio: audioManager.getConstraints(),
63
77
  };
64
78
  const previousDevices = {
65
79
  video: videoManager.getLastDevice(),
@@ -1,6 +1,5 @@
1
1
  import type { FishjamClient } from "@fishjam-cloud/ts-client";
2
- import type { PeerMetadata, TrackMetadata } from "../types";
3
- import type { PeerState } from "../state.types";
2
+ import type { PeerMetadata, PeerState, TrackMetadata } from "../types/internal";
4
3
  export interface FishjamClientState {
5
4
  peers: PeerState[];
6
5
  components: PeerState[];
@@ -1 +1 @@
1
- {"version":3,"file":"useFishjamClientState.d.ts","sourceRoot":"","sources":["../../src/hooks/useFishjamClientState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA0D,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACtH,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAkB,MAAM,gBAAgB,CAAC;AA0ChE,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;CACzB;AAuCD,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,GAAG,kBAAkB,CAyCnH"}
1
+ {"version":3,"file":"useFishjamClientState.d.ts","sourceRoot":"","sources":["../../src/hooks/useFishjamClientState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA0D,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACtH,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAW,aAAa,EAAE,MAAM,mBAAmB,CAAC;AA2CzF,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;CACzB;AAmCD,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,GAAG,kBAAkB,CAyCnH"}
@@ -40,7 +40,6 @@ const eventNames = [
40
40
  ];
41
41
  function trackContextToTrack(track) {
42
42
  return {
43
- rawMetadata: track.rawMetadata,
44
43
  metadata: track.metadata,
45
44
  trackId: track.trackId,
46
45
  stream: track.stream,
@@ -48,15 +47,12 @@ function trackContextToTrack(track) {
48
47
  encoding: track.encoding ?? null,
49
48
  vadStatus: track.vadStatus,
50
49
  track: track.track,
51
- metadataParsingError: track.metadataParsingError,
52
50
  };
53
51
  }
54
52
  function endpointToPeerState(peer) {
55
53
  const tracks = [...peer.tracks].reduce((acc, [, track]) => ({ ...acc, [track.trackId]: trackContextToTrack(track) }), {});
56
54
  return {
57
- rawMetadata: peer.rawMetadata,
58
55
  metadata: peer.metadata,
59
- metadataParsingError: peer.metadataParsingError,
60
56
  id: peer.id,
61
57
  tracks,
62
58
  };
@@ -1,2 +1,7 @@
1
- export declare function useFishjamClient_DO_NOT_USE(): import("@fishjam-cloud/ts-client").FishjamClient<import("..").PeerMetadata, import("..").TrackMetadata>;
1
+ /**
2
+ *
3
+ * @category Connection
4
+ * @deprecated
5
+ */
6
+ export declare function useFishjamClient_DO_NOT_USE(): import("@fishjam-cloud/ts-client").FishjamClient<import("../types/internal").PeerMetadata, import("../types/internal").TrackMetadata>;
2
7
  //# sourceMappingURL=useFishjamClient_DO_NOT_USE.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFishjamClient_DO_NOT_USE.d.ts","sourceRoot":"","sources":["../../src/hooks/useFishjamClient_DO_NOT_USE.ts"],"names":[],"mappings":"AAGA,wBAAgB,2BAA2B,4GAI1C"}
1
+ {"version":3,"file":"useFishjamClient_DO_NOT_USE.d.ts","sourceRoot":"","sources":["../../src/hooks/useFishjamClient_DO_NOT_USE.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAgB,2BAA2B,0IAI1C"}
@@ -1,5 +1,10 @@
1
1
  import { useFishjamContext } from "./useFishjamContext";
2
2
  import { useMemo } from "react";
3
+ /**
4
+ *
5
+ * @category Connection
6
+ * @deprecated
7
+ */
3
8
  export function useFishjamClient_DO_NOT_USE() {
4
9
  const client = useFishjamContext().fishjamClientRef.current;
5
10
  return useMemo(() => client, [client]);
@@ -1,16 +1,16 @@
1
1
  import type { FishjamClient } from "@fishjam-cloud/ts-client";
2
2
  import { type MutableRefObject } from "react";
3
- import type { PeerMetadata, TrackMetadata, ScreenShareState, TrackManager } from "../types";
3
+ import type { PeerMetadata, TrackMetadata, ScreenShareState, TrackManager } from "../types/internal";
4
4
  import type { DeviceManager } from "../DeviceManager";
5
- import type { ParticipantStatus } from "../state.types";
6
5
  import type { FishjamClientState } from "./useFishjamClientState";
6
+ import type { PeerStatus } from "../types/public";
7
7
  export type FishjamContextType = {
8
8
  fishjamClientRef: MutableRefObject<FishjamClient<PeerMetadata, TrackMetadata>>;
9
9
  videoDeviceManagerRef: MutableRefObject<DeviceManager>;
10
10
  audioDeviceManagerRef: MutableRefObject<DeviceManager>;
11
11
  hasDevicesBeenInitializedRef: MutableRefObject<boolean>;
12
12
  screenShareState: [ScreenShareState, React.Dispatch<React.SetStateAction<ScreenShareState>>];
13
- peerStatus: ParticipantStatus;
13
+ peerStatus: PeerStatus;
14
14
  videoTrackManager: TrackManager;
15
15
  audioTrackManager: TrackManager;
16
16
  clientState: FishjamClientState;
@@ -1 +1 @@
1
- {"version":3,"file":"useFishjamContext.d.ts","sourceRoot":"","sources":["../../src/hooks/useFishjamContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAiB,KAAK,gBAAgB,EAAc,MAAM,OAAO,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC5F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,gBAAgB,EAAE,gBAAgB,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC;IAC/E,qBAAqB,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;IACvD,qBAAqB,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;IACvD,4BAA4B,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACxD,gBAAgB,EAAE,CAAC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC7F,UAAU,EAAE,iBAAiB,CAAC;IAC9B,iBAAiB,EAAE,YAAY,CAAC;IAChC,iBAAiB,EAAE,YAAY,CAAC;IAChC,WAAW,EAAE,kBAAkB,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,cAAc,oDAAiD,CAAC;AAE7E,wBAAgB,iBAAiB,IAGb,kBAAkB,CACrC"}
1
+ {"version":3,"file":"useFishjamContext.d.ts","sourceRoot":"","sources":["../../src/hooks/useFishjamContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAiB,KAAK,gBAAgB,EAAc,MAAM,OAAO,CAAC;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACrG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,gBAAgB,EAAE,gBAAgB,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC;IAC/E,qBAAqB,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;IACvD,qBAAqB,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;IACvD,4BAA4B,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACxD,gBAAgB,EAAE,CAAC,gBAAgB,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC7F,UAAU,EAAE,UAAU,CAAC;IACvB,iBAAiB,EAAE,YAAY,CAAC;IAChC,iBAAiB,EAAE,YAAY,CAAC;IAChC,WAAW,EAAE,kBAAkB,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,cAAc,oDAAiD,CAAC;AAE7E,wBAAgB,iBAAiB,IAGb,kBAAkB,CACrC"}
@@ -0,0 +1,8 @@
1
+ import type { FishjamClient } from "@fishjam-cloud/ts-client";
2
+ import type { PeerMetadata, TrackMetadata } from "../types/internal";
3
+ import type { PeerStatus } from "../types/public";
4
+ export declare const usePeerStatus: (client: FishjamClient<PeerMetadata, TrackMetadata>) => {
5
+ readonly peerStatus: PeerStatus;
6
+ readonly getCurrentPeerStatus: () => PeerStatus;
7
+ };
8
+ //# sourceMappingURL=usePeerStatus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePeerStatus.d.ts","sourceRoot":"","sources":["../../src/hooks/usePeerStatus.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,eAAO,MAAM,aAAa,WAAY,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC;;;CA8C/E,CAAC"}