@whereby.com/media 1.17.12 → 1.17.14

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/dist/index.cjs CHANGED
@@ -4195,7 +4195,7 @@ const getMediasoupDevice = (features) => {
4195
4195
  if (features.isNodeSdk) {
4196
4196
  return new mediasoupClient.Device({ handlerFactory: Safari12_js.Safari12.createFactory() });
4197
4197
  }
4198
- let handlerName = mediasoupClient.detectDevice() || (/applecoremedia|applewebkit|safari/i.test(navigator.userAgent) ? "Safari17" : undefined);
4198
+ let handlerName = mediasoupClient.detectDevice() || (/applecoremedia|applewebkit|safari/i.test(navigator.userAgent) ? "Safari12" : undefined);
4199
4199
  if (handlerName === "Safari12" && typeof navigator === "object" && typeof navigator.userAgent === "string") {
4200
4200
  const uaParser = new uaParserJs.UAParser(navigator.userAgent);
4201
4201
  const browser = uaParser.getBrowser();
@@ -4204,8 +4204,14 @@ const getMediasoupDevice = (features) => {
4204
4204
  handlerName = "Safari17";
4205
4205
  }
4206
4206
  }
4207
- if (/iphone|ipad/i.test(navigator.userAgent))
4208
- handlerName = "Safari17";
4207
+ if (/iphone|ipad/i.test(navigator.userAgent)) {
4208
+ if (features.safari17HandlerOn) {
4209
+ handlerName = "Safari17";
4210
+ }
4211
+ else {
4212
+ handlerName = "Safari12";
4213
+ }
4214
+ }
4209
4215
  if (handlerName === "Safari17") {
4210
4216
  return new mediasoupClient.Device({ handlerFactory: Safari17.createFactory() });
4211
4217
  }
package/dist/index.d.cts CHANGED
@@ -705,6 +705,7 @@ interface SignalClient {
705
705
  displayName: string;
706
706
  id: string;
707
707
  streams: string[];
708
+ deviceId: string;
708
709
  isAudioEnabled: boolean;
709
710
  isVideoEnabled: boolean;
710
711
  role: ClientRole;
@@ -734,6 +735,8 @@ interface ChatMessage {
734
735
  text: string;
735
736
  timestamp: string;
736
737
  userId: string;
738
+ breakoutGroup?: string;
739
+ broadcast?: boolean;
737
740
  }
738
741
  interface CloudRecordingStartedEvent {
739
742
  error?: string;
@@ -769,6 +772,32 @@ interface KnockRejectedEvent {
769
772
  clientId: string;
770
773
  resolution: "rejected";
771
774
  }
775
+ interface BreakoutConfig {
776
+ assignments?: {
777
+ [key: string]: string;
778
+ } | null;
779
+ autoMoveToGroup?: boolean;
780
+ autoMoveToMain?: boolean;
781
+ breakoutEnabledAt?: string | null;
782
+ breakoutNotification?: string | null;
783
+ breakoutTimerDuration?: number;
784
+ breakoutStartedAt?: string | null;
785
+ breakoutEndedAt?: string | null;
786
+ breakoutTimerSetting?: boolean;
787
+ moveToGroupGracePeriod?: number | null;
788
+ moveToMainGracePeriod?: number | null;
789
+ enforceAssignment?: boolean;
790
+ groups?: {
791
+ [key: string]: string;
792
+ } | null;
793
+ initiatedBy?: {
794
+ clientId: string;
795
+ userId: string;
796
+ deviceId: string;
797
+ active: boolean;
798
+ } | null;
799
+ startedAt?: Date | null;
800
+ }
772
801
  interface RoomJoinedEvent {
773
802
  error?: string;
774
803
  isLocked: boolean;
@@ -784,6 +813,9 @@ interface RoomJoinedEvent {
784
813
  selfId: string;
785
814
  breakoutGroup: string | null;
786
815
  clientClaim?: string;
816
+ breakout?: BreakoutConfig;
817
+ }
818
+ interface BreakoutSessionUpdatedEvent extends BreakoutConfig {
787
819
  }
788
820
  interface RoomKnockedEvent {
789
821
  clientId: string;
@@ -859,6 +891,7 @@ interface SignalEvents {
859
891
  audio_enabled: AudioEnabledEvent;
860
892
  audio_enable_requested: AudioEnableRequestedEvent;
861
893
  breakout_group_joined: BreakoutGroupJoinedEvent;
894
+ breakout_session_updated: BreakoutSessionUpdatedEvent;
862
895
  client_left: ClientLeftEvent;
863
896
  client_kicked: ClientKickedEvent;
864
897
  client_metadata_received: ClientMetadataReceivedEvent;
@@ -1559,4 +1592,4 @@ declare class RtcStream {
1559
1592
  static getTypeFromId(id: string): string;
1560
1593
  }
1561
1594
 
1562
- export { type AddSpotlightRequest, type AudioEnableRequest, type AudioEnableRequestedEvent, type AudioEnabledEvent, BandwidthTester, type BreakoutGroupJoinedEvent, type ChatMessage, type ClientKickedEvent, type ClientLeftEvent, type ClientMetadataPayload, type ClientMetadataReceivedEvent, type ClientRole, type ClientUnableToJoinEvent, type CloudRecordingStartedEvent, type Credentials, type CustomMediaStreamTrack, EVENTS, type GetConstraintsOptions, type GetDeviceDataResult, type GetMediaConstraintsOptions, type GetStreamOptions, type GetStreamResult, type GetUpdatedDevicesResult, type IdentifyDeviceRequest, type IssuesAndMetricsByView, type JoinRoomRequest, KNOCK_MESSAGES, KalmanFilter, type KnockAcceptedEvent, type KnockRejectedEvent, type KnockRoomRequest, type KnockerLeftEvent, type LiveTranscriptionStartedEvent, type LiveTranscriptionStoppedEvent, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, type NewClientEvent, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, type RemoveSpotlightRequest, type RoleName, type RoomJoinedEvent, type RoomKnockedEvent, type RoomLockedEvent, type RoomSessionEndedEvent, type RtcClientConnectionStatusChangedPayload, RtcEventNames, type RtcEvents, type RtcLocalStreamTrackAddedPayload, type RtcLocalStreamTrackRemovedPayload, type RtcManager, type RtcManagerCreatedPayload, RtcManagerDispatcher, RtcStream, type RtcStreamAddedPayload, STREAM_TYPES, type ScreenshareStartedEvent, type ScreenshareStoppedEvent, type SendClientMetadataRequest, ServerSocket, Session, SfuV2Parser, type SignalClient, type SignalEvents, type SignalKnocker, type SignalRequests, type SocketConf, type SocketManager, type Spotlight, type SpotlightAddedEvent, type SpotlightRemovedEvent, type StatsMonitorOptions, type StatsMonitorState, type StatsSubscription, TYPES, type TrackStats, type TurnTransportProtocol, type UpdatedDeviceInfo, type UpdatedDevicesInfo, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, type VideoEnableRequest, type VideoEnableRequestedEvent, type VideoEnabledEvent, type ViewStats, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getOptimalBitrate, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, type ssrcStats, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, variance };
1595
+ export { type AddSpotlightRequest, type AudioEnableRequest, type AudioEnableRequestedEvent, type AudioEnabledEvent, BandwidthTester, type BreakoutConfig, type BreakoutGroupJoinedEvent, type BreakoutSessionUpdatedEvent, type ChatMessage, type ClientKickedEvent, type ClientLeftEvent, type ClientMetadataPayload, type ClientMetadataReceivedEvent, type ClientRole, type ClientUnableToJoinEvent, type CloudRecordingStartedEvent, type Credentials, type CustomMediaStreamTrack, EVENTS, type GetConstraintsOptions, type GetDeviceDataResult, type GetMediaConstraintsOptions, type GetStreamOptions, type GetStreamResult, type GetUpdatedDevicesResult, type IdentifyDeviceRequest, type IssuesAndMetricsByView, type JoinRoomRequest, KNOCK_MESSAGES, KalmanFilter, type KnockAcceptedEvent, type KnockRejectedEvent, type KnockRoomRequest, type KnockerLeftEvent, type LiveTranscriptionStartedEvent, type LiveTranscriptionStoppedEvent, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, type NewClientEvent, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, type RemoveSpotlightRequest, type RoleName, type RoomJoinedEvent, type RoomKnockedEvent, type RoomLockedEvent, type RoomSessionEndedEvent, type RtcClientConnectionStatusChangedPayload, RtcEventNames, type RtcEvents, type RtcLocalStreamTrackAddedPayload, type RtcLocalStreamTrackRemovedPayload, type RtcManager, type RtcManagerCreatedPayload, RtcManagerDispatcher, RtcStream, type RtcStreamAddedPayload, STREAM_TYPES, type ScreenshareStartedEvent, type ScreenshareStoppedEvent, type SendClientMetadataRequest, ServerSocket, Session, SfuV2Parser, type SignalClient, type SignalEvents, type SignalKnocker, type SignalRequests, type SocketConf, type SocketManager, type Spotlight, type SpotlightAddedEvent, type SpotlightRemovedEvent, type StatsMonitorOptions, type StatsMonitorState, type StatsSubscription, TYPES, type TrackStats, type TurnTransportProtocol, type UpdatedDeviceInfo, type UpdatedDevicesInfo, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, type VideoEnableRequest, type VideoEnableRequestedEvent, type VideoEnabledEvent, type ViewStats, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getOptimalBitrate, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, type ssrcStats, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, variance };
package/dist/index.d.mts CHANGED
@@ -705,6 +705,7 @@ interface SignalClient {
705
705
  displayName: string;
706
706
  id: string;
707
707
  streams: string[];
708
+ deviceId: string;
708
709
  isAudioEnabled: boolean;
709
710
  isVideoEnabled: boolean;
710
711
  role: ClientRole;
@@ -734,6 +735,8 @@ interface ChatMessage {
734
735
  text: string;
735
736
  timestamp: string;
736
737
  userId: string;
738
+ breakoutGroup?: string;
739
+ broadcast?: boolean;
737
740
  }
738
741
  interface CloudRecordingStartedEvent {
739
742
  error?: string;
@@ -769,6 +772,32 @@ interface KnockRejectedEvent {
769
772
  clientId: string;
770
773
  resolution: "rejected";
771
774
  }
775
+ interface BreakoutConfig {
776
+ assignments?: {
777
+ [key: string]: string;
778
+ } | null;
779
+ autoMoveToGroup?: boolean;
780
+ autoMoveToMain?: boolean;
781
+ breakoutEnabledAt?: string | null;
782
+ breakoutNotification?: string | null;
783
+ breakoutTimerDuration?: number;
784
+ breakoutStartedAt?: string | null;
785
+ breakoutEndedAt?: string | null;
786
+ breakoutTimerSetting?: boolean;
787
+ moveToGroupGracePeriod?: number | null;
788
+ moveToMainGracePeriod?: number | null;
789
+ enforceAssignment?: boolean;
790
+ groups?: {
791
+ [key: string]: string;
792
+ } | null;
793
+ initiatedBy?: {
794
+ clientId: string;
795
+ userId: string;
796
+ deviceId: string;
797
+ active: boolean;
798
+ } | null;
799
+ startedAt?: Date | null;
800
+ }
772
801
  interface RoomJoinedEvent {
773
802
  error?: string;
774
803
  isLocked: boolean;
@@ -784,6 +813,9 @@ interface RoomJoinedEvent {
784
813
  selfId: string;
785
814
  breakoutGroup: string | null;
786
815
  clientClaim?: string;
816
+ breakout?: BreakoutConfig;
817
+ }
818
+ interface BreakoutSessionUpdatedEvent extends BreakoutConfig {
787
819
  }
788
820
  interface RoomKnockedEvent {
789
821
  clientId: string;
@@ -859,6 +891,7 @@ interface SignalEvents {
859
891
  audio_enabled: AudioEnabledEvent;
860
892
  audio_enable_requested: AudioEnableRequestedEvent;
861
893
  breakout_group_joined: BreakoutGroupJoinedEvent;
894
+ breakout_session_updated: BreakoutSessionUpdatedEvent;
862
895
  client_left: ClientLeftEvent;
863
896
  client_kicked: ClientKickedEvent;
864
897
  client_metadata_received: ClientMetadataReceivedEvent;
@@ -1559,4 +1592,4 @@ declare class RtcStream {
1559
1592
  static getTypeFromId(id: string): string;
1560
1593
  }
1561
1594
 
1562
- export { type AddSpotlightRequest, type AudioEnableRequest, type AudioEnableRequestedEvent, type AudioEnabledEvent, BandwidthTester, type BreakoutGroupJoinedEvent, type ChatMessage, type ClientKickedEvent, type ClientLeftEvent, type ClientMetadataPayload, type ClientMetadataReceivedEvent, type ClientRole, type ClientUnableToJoinEvent, type CloudRecordingStartedEvent, type Credentials, type CustomMediaStreamTrack, EVENTS, type GetConstraintsOptions, type GetDeviceDataResult, type GetMediaConstraintsOptions, type GetStreamOptions, type GetStreamResult, type GetUpdatedDevicesResult, type IdentifyDeviceRequest, type IssuesAndMetricsByView, type JoinRoomRequest, KNOCK_MESSAGES, KalmanFilter, type KnockAcceptedEvent, type KnockRejectedEvent, type KnockRoomRequest, type KnockerLeftEvent, type LiveTranscriptionStartedEvent, type LiveTranscriptionStoppedEvent, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, type NewClientEvent, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, type RemoveSpotlightRequest, type RoleName, type RoomJoinedEvent, type RoomKnockedEvent, type RoomLockedEvent, type RoomSessionEndedEvent, type RtcClientConnectionStatusChangedPayload, RtcEventNames, type RtcEvents, type RtcLocalStreamTrackAddedPayload, type RtcLocalStreamTrackRemovedPayload, type RtcManager, type RtcManagerCreatedPayload, RtcManagerDispatcher, RtcStream, type RtcStreamAddedPayload, STREAM_TYPES, type ScreenshareStartedEvent, type ScreenshareStoppedEvent, type SendClientMetadataRequest, ServerSocket, Session, SfuV2Parser, type SignalClient, type SignalEvents, type SignalKnocker, type SignalRequests, type SocketConf, type SocketManager, type Spotlight, type SpotlightAddedEvent, type SpotlightRemovedEvent, type StatsMonitorOptions, type StatsMonitorState, type StatsSubscription, TYPES, type TrackStats, type TurnTransportProtocol, type UpdatedDeviceInfo, type UpdatedDevicesInfo, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, type VideoEnableRequest, type VideoEnableRequestedEvent, type VideoEnabledEvent, type ViewStats, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getOptimalBitrate, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, type ssrcStats, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, variance };
1595
+ export { type AddSpotlightRequest, type AudioEnableRequest, type AudioEnableRequestedEvent, type AudioEnabledEvent, BandwidthTester, type BreakoutConfig, type BreakoutGroupJoinedEvent, type BreakoutSessionUpdatedEvent, type ChatMessage, type ClientKickedEvent, type ClientLeftEvent, type ClientMetadataPayload, type ClientMetadataReceivedEvent, type ClientRole, type ClientUnableToJoinEvent, type CloudRecordingStartedEvent, type Credentials, type CustomMediaStreamTrack, EVENTS, type GetConstraintsOptions, type GetDeviceDataResult, type GetMediaConstraintsOptions, type GetStreamOptions, type GetStreamResult, type GetUpdatedDevicesResult, type IdentifyDeviceRequest, type IssuesAndMetricsByView, type JoinRoomRequest, KNOCK_MESSAGES, KalmanFilter, type KnockAcceptedEvent, type KnockRejectedEvent, type KnockRoomRequest, type KnockerLeftEvent, type LiveTranscriptionStartedEvent, type LiveTranscriptionStoppedEvent, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, type NewClientEvent, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, type RemoveSpotlightRequest, type RoleName, type RoomJoinedEvent, type RoomKnockedEvent, type RoomLockedEvent, type RoomSessionEndedEvent, type RtcClientConnectionStatusChangedPayload, RtcEventNames, type RtcEvents, type RtcLocalStreamTrackAddedPayload, type RtcLocalStreamTrackRemovedPayload, type RtcManager, type RtcManagerCreatedPayload, RtcManagerDispatcher, RtcStream, type RtcStreamAddedPayload, STREAM_TYPES, type ScreenshareStartedEvent, type ScreenshareStoppedEvent, type SendClientMetadataRequest, ServerSocket, Session, SfuV2Parser, type SignalClient, type SignalEvents, type SignalKnocker, type SignalRequests, type SocketConf, type SocketManager, type Spotlight, type SpotlightAddedEvent, type SpotlightRemovedEvent, type StatsMonitorOptions, type StatsMonitorState, type StatsSubscription, TYPES, type TrackStats, type TurnTransportProtocol, type UpdatedDeviceInfo, type UpdatedDevicesInfo, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, type VideoEnableRequest, type VideoEnableRequestedEvent, type VideoEnabledEvent, type ViewStats, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getOptimalBitrate, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, type ssrcStats, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, variance };
package/dist/index.d.ts CHANGED
@@ -705,6 +705,7 @@ interface SignalClient {
705
705
  displayName: string;
706
706
  id: string;
707
707
  streams: string[];
708
+ deviceId: string;
708
709
  isAudioEnabled: boolean;
709
710
  isVideoEnabled: boolean;
710
711
  role: ClientRole;
@@ -734,6 +735,8 @@ interface ChatMessage {
734
735
  text: string;
735
736
  timestamp: string;
736
737
  userId: string;
738
+ breakoutGroup?: string;
739
+ broadcast?: boolean;
737
740
  }
738
741
  interface CloudRecordingStartedEvent {
739
742
  error?: string;
@@ -769,6 +772,32 @@ interface KnockRejectedEvent {
769
772
  clientId: string;
770
773
  resolution: "rejected";
771
774
  }
775
+ interface BreakoutConfig {
776
+ assignments?: {
777
+ [key: string]: string;
778
+ } | null;
779
+ autoMoveToGroup?: boolean;
780
+ autoMoveToMain?: boolean;
781
+ breakoutEnabledAt?: string | null;
782
+ breakoutNotification?: string | null;
783
+ breakoutTimerDuration?: number;
784
+ breakoutStartedAt?: string | null;
785
+ breakoutEndedAt?: string | null;
786
+ breakoutTimerSetting?: boolean;
787
+ moveToGroupGracePeriod?: number | null;
788
+ moveToMainGracePeriod?: number | null;
789
+ enforceAssignment?: boolean;
790
+ groups?: {
791
+ [key: string]: string;
792
+ } | null;
793
+ initiatedBy?: {
794
+ clientId: string;
795
+ userId: string;
796
+ deviceId: string;
797
+ active: boolean;
798
+ } | null;
799
+ startedAt?: Date | null;
800
+ }
772
801
  interface RoomJoinedEvent {
773
802
  error?: string;
774
803
  isLocked: boolean;
@@ -784,6 +813,9 @@ interface RoomJoinedEvent {
784
813
  selfId: string;
785
814
  breakoutGroup: string | null;
786
815
  clientClaim?: string;
816
+ breakout?: BreakoutConfig;
817
+ }
818
+ interface BreakoutSessionUpdatedEvent extends BreakoutConfig {
787
819
  }
788
820
  interface RoomKnockedEvent {
789
821
  clientId: string;
@@ -859,6 +891,7 @@ interface SignalEvents {
859
891
  audio_enabled: AudioEnabledEvent;
860
892
  audio_enable_requested: AudioEnableRequestedEvent;
861
893
  breakout_group_joined: BreakoutGroupJoinedEvent;
894
+ breakout_session_updated: BreakoutSessionUpdatedEvent;
862
895
  client_left: ClientLeftEvent;
863
896
  client_kicked: ClientKickedEvent;
864
897
  client_metadata_received: ClientMetadataReceivedEvent;
@@ -1559,4 +1592,4 @@ declare class RtcStream {
1559
1592
  static getTypeFromId(id: string): string;
1560
1593
  }
1561
1594
 
1562
- export { type AddSpotlightRequest, type AudioEnableRequest, type AudioEnableRequestedEvent, type AudioEnabledEvent, BandwidthTester, type BreakoutGroupJoinedEvent, type ChatMessage, type ClientKickedEvent, type ClientLeftEvent, type ClientMetadataPayload, type ClientMetadataReceivedEvent, type ClientRole, type ClientUnableToJoinEvent, type CloudRecordingStartedEvent, type Credentials, type CustomMediaStreamTrack, EVENTS, type GetConstraintsOptions, type GetDeviceDataResult, type GetMediaConstraintsOptions, type GetStreamOptions, type GetStreamResult, type GetUpdatedDevicesResult, type IdentifyDeviceRequest, type IssuesAndMetricsByView, type JoinRoomRequest, KNOCK_MESSAGES, KalmanFilter, type KnockAcceptedEvent, type KnockRejectedEvent, type KnockRoomRequest, type KnockerLeftEvent, type LiveTranscriptionStartedEvent, type LiveTranscriptionStoppedEvent, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, type NewClientEvent, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, type RemoveSpotlightRequest, type RoleName, type RoomJoinedEvent, type RoomKnockedEvent, type RoomLockedEvent, type RoomSessionEndedEvent, type RtcClientConnectionStatusChangedPayload, RtcEventNames, type RtcEvents, type RtcLocalStreamTrackAddedPayload, type RtcLocalStreamTrackRemovedPayload, type RtcManager, type RtcManagerCreatedPayload, RtcManagerDispatcher, RtcStream, type RtcStreamAddedPayload, STREAM_TYPES, type ScreenshareStartedEvent, type ScreenshareStoppedEvent, type SendClientMetadataRequest, ServerSocket, Session, SfuV2Parser, type SignalClient, type SignalEvents, type SignalKnocker, type SignalRequests, type SocketConf, type SocketManager, type Spotlight, type SpotlightAddedEvent, type SpotlightRemovedEvent, type StatsMonitorOptions, type StatsMonitorState, type StatsSubscription, TYPES, type TrackStats, type TurnTransportProtocol, type UpdatedDeviceInfo, type UpdatedDevicesInfo, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, type VideoEnableRequest, type VideoEnableRequestedEvent, type VideoEnabledEvent, type ViewStats, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getOptimalBitrate, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, type ssrcStats, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, variance };
1595
+ export { type AddSpotlightRequest, type AudioEnableRequest, type AudioEnableRequestedEvent, type AudioEnabledEvent, BandwidthTester, type BreakoutConfig, type BreakoutGroupJoinedEvent, type BreakoutSessionUpdatedEvent, type ChatMessage, type ClientKickedEvent, type ClientLeftEvent, type ClientMetadataPayload, type ClientMetadataReceivedEvent, type ClientRole, type ClientUnableToJoinEvent, type CloudRecordingStartedEvent, type Credentials, type CustomMediaStreamTrack, EVENTS, type GetConstraintsOptions, type GetDeviceDataResult, type GetMediaConstraintsOptions, type GetStreamOptions, type GetStreamResult, type GetUpdatedDevicesResult, type IdentifyDeviceRequest, type IssuesAndMetricsByView, type JoinRoomRequest, KNOCK_MESSAGES, KalmanFilter, type KnockAcceptedEvent, type KnockRejectedEvent, type KnockRoomRequest, type KnockerLeftEvent, type LiveTranscriptionStartedEvent, type LiveTranscriptionStoppedEvent, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, type NewClientEvent, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, type RemoveSpotlightRequest, type RoleName, type RoomJoinedEvent, type RoomKnockedEvent, type RoomLockedEvent, type RoomSessionEndedEvent, type RtcClientConnectionStatusChangedPayload, RtcEventNames, type RtcEvents, type RtcLocalStreamTrackAddedPayload, type RtcLocalStreamTrackRemovedPayload, type RtcManager, type RtcManagerCreatedPayload, RtcManagerDispatcher, RtcStream, type RtcStreamAddedPayload, STREAM_TYPES, type ScreenshareStartedEvent, type ScreenshareStoppedEvent, type SendClientMetadataRequest, ServerSocket, Session, SfuV2Parser, type SignalClient, type SignalEvents, type SignalKnocker, type SignalRequests, type SocketConf, type SocketManager, type Spotlight, type SpotlightAddedEvent, type SpotlightRemovedEvent, type StatsMonitorOptions, type StatsMonitorState, type StatsSubscription, TYPES, type TrackStats, type TurnTransportProtocol, type UpdatedDeviceInfo, type UpdatedDevicesInfo, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, type VideoEnableRequest, type VideoEnableRequestedEvent, type VideoEnabledEvent, type ViewStats, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getOptimalBitrate, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, type ssrcStats, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, variance };
package/dist/index.mjs CHANGED
@@ -4169,7 +4169,7 @@ const getMediasoupDevice = (features) => {
4169
4169
  if (features.isNodeSdk) {
4170
4170
  return new Device({ handlerFactory: Safari12.createFactory() });
4171
4171
  }
4172
- let handlerName = detectDevice() || (/applecoremedia|applewebkit|safari/i.test(navigator.userAgent) ? "Safari17" : undefined);
4172
+ let handlerName = detectDevice() || (/applecoremedia|applewebkit|safari/i.test(navigator.userAgent) ? "Safari12" : undefined);
4173
4173
  if (handlerName === "Safari12" && typeof navigator === "object" && typeof navigator.userAgent === "string") {
4174
4174
  const uaParser = new UAParser(navigator.userAgent);
4175
4175
  const browser = uaParser.getBrowser();
@@ -4178,8 +4178,14 @@ const getMediasoupDevice = (features) => {
4178
4178
  handlerName = "Safari17";
4179
4179
  }
4180
4180
  }
4181
- if (/iphone|ipad/i.test(navigator.userAgent))
4182
- handlerName = "Safari17";
4181
+ if (/iphone|ipad/i.test(navigator.userAgent)) {
4182
+ if (features.safari17HandlerOn) {
4183
+ handlerName = "Safari17";
4184
+ }
4185
+ else {
4186
+ handlerName = "Safari12";
4187
+ }
4188
+ }
4183
4189
  if (handlerName === "Safari17") {
4184
4190
  return new Device({ handlerFactory: Safari17.createFactory() });
4185
4191
  }
@@ -4169,7 +4169,7 @@ const getMediasoupDevice = (features) => {
4169
4169
  if (features.isNodeSdk) {
4170
4170
  return new Device({ handlerFactory: Safari12.createFactory() });
4171
4171
  }
4172
- let handlerName = detectDevice() || (/applecoremedia|applewebkit|safari/i.test(navigator.userAgent) ? "Safari17" : undefined);
4172
+ let handlerName = detectDevice() || (/applecoremedia|applewebkit|safari/i.test(navigator.userAgent) ? "Safari12" : undefined);
4173
4173
  if (handlerName === "Safari12" && typeof navigator === "object" && typeof navigator.userAgent === "string") {
4174
4174
  const uaParser = new UAParser(navigator.userAgent);
4175
4175
  const browser = uaParser.getBrowser();
@@ -4178,8 +4178,14 @@ const getMediasoupDevice = (features) => {
4178
4178
  handlerName = "Safari17";
4179
4179
  }
4180
4180
  }
4181
- if (/iphone|ipad/i.test(navigator.userAgent))
4182
- handlerName = "Safari17";
4181
+ if (/iphone|ipad/i.test(navigator.userAgent)) {
4182
+ if (features.safari17HandlerOn) {
4183
+ handlerName = "Safari17";
4184
+ }
4185
+ else {
4186
+ handlerName = "Safari12";
4187
+ }
4188
+ }
4183
4189
  if (handlerName === "Safari17") {
4184
4190
  return new Device({ handlerFactory: Safari17.createFactory() });
4185
4191
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@whereby.com/media",
3
3
  "description": "Media library for Whereby",
4
- "version": "1.17.12",
4
+ "version": "1.17.14",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/whereby/sdk",
7
7
  "repository": {